[
  {
    "path": ".gitattributes",
    "content": "*.js linguist-language=java\n*.css linguist-language=java\n*.html linguist-language=java\n*.jsp linguist-language=java"
  },
  {
    "path": ".gitignore",
    "content": "/target/\n.idea\n"
  },
  {
    "path": "LICENSE",
    "content": "                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "README.md",
    "content": ">该项目源码地址：https://github.com/lastwhispers/permission\n项目在线地址：http://39.105.49.50:8080/permission/login.html\n初始用户：  \n系统管理员：admin/admin   \n经理：manager/manager  \n销售主管：salemanager/salemanager  \n销售员：saler/saler  \n临时工：casual/casual\n\n#  1. 简介\n基于SSM框架简单的后台管理系统，整合spring + springmvc + shiro + mybatis + esayui。包含许多基础模块（用户管理、角色管理、菜单管理、角色权限管理、用户角色管理、日志管理、数据库监控）。\n\n# 2. 项目演示\n\n## 2.1 登录\n\n使用md5加密，shiro权限校验\n\n![登录页面](https://upload-images.jianshu.io/upload_images/5336514-35db64080a6380a3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\n\n## 2.2 用户管理\n\n**（1）ajax异步模糊搜索**\n\n![ajax异步模糊搜索](https://upload-images.jianshu.io/upload_images/5336514-f8185c6d41a9069e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\n\n![模糊搜索](https://upload-images.jianshu.io/upload_images/5336514-7c25e83056b0f550.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\n\n**（2）新增**\n\n![新增](https://upload-images.jianshu.io/upload_images/5336514-5258e07b370b2b5d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\n\n![新增成功](https://upload-images.jianshu.io/upload_images/5336514-33e7ee0115168b84.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\n\n**（3）修改**\n\n点击修改\n\n![修改](https://upload-images.jianshu.io/upload_images/5336514-8df5d8fc75e2e309.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\n\n填写修改的信息\n\n![修改成功](https://upload-images.jianshu.io/upload_images/5336514-94f68f820be65b99.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\n\n**（4）删除**\n\n选中一行，即可删除\n\n![删除](https://upload-images.jianshu.io/upload_images/5336514-ef7079816396baa5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\n\n![删除成功](https://upload-images.jianshu.io/upload_images/5336514-1cad448b9e0e88ef.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\n\n**（5）导出excel**\n\n支持excel导出\n\n![excel导出](https://upload-images.jianshu.io/upload_images/5336514-d4317323b8e74f0f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\n\n![excel](https://upload-images.jianshu.io/upload_images/5336514-2fc5491e0d47869c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\n\n**（6）excel导入**\n\n支持excel导入，并更新导入信息。\n修改excel已存在的数据，并新增一行。\n\n![修改excel](https://upload-images.jianshu.io/upload_images/5336514-09f917d627b83858.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\n\n将修改的excel导入系统\n\n![导入excel](https://upload-images.jianshu.io/upload_images/5336514-6b2fe6ebcab58851.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\n\n![上传成功](https://upload-images.jianshu.io/upload_images/5336514-94c13b6bd010db30.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\n\n![excel导入](https://upload-images.jianshu.io/upload_images/5336514-0e54cfe1d5b289cb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\n\n## 2.3 角色管理\n\n与用户管理类似。\n\n![角色管理](https://upload-images.jianshu.io/upload_images/5336514-25e2314daee40c9c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\n\n## 2.4 菜单管理\n\n菜单管理对应系统左侧的菜单，不同权限用户看到不同的菜单。\n\n![菜单管理](https://upload-images.jianshu.io/upload_images/5336514-3004f2acc7659995.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\n\n并且支持菜单的添加修改删除，以及菜单详细内容的修改。\n\n![添加修改删除](https://upload-images.jianshu.io/upload_images/5336514-f43e97d24d32e59b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\n\n![菜单详细内容](https://upload-images.jianshu.io/upload_images/5336514-0dc718b8c94bc9e0.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\n\n## 2.5 角色权限管理\n\n通过角色控制用户可以看到的菜单。\n\n![角色权限管理](https://upload-images.jianshu.io/upload_images/5336514-65bcd0482fe6524d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\n\n## 2.6 用户角色管理\n\n在该页面给用户设置角色，可以是多个角色。\n\n![初始](https://upload-images.jianshu.io/upload_images/5336514-178b4649b20edac1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\n\n![新增角色](https://upload-images.jianshu.io/upload_images/5336514-9df03afd1187fa47.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\n\n![保存成功](https://upload-images.jianshu.io/upload_images/5336514-94412e81c4101a00.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\n\n刷新页面，新增的角色生效。\n\n![image.png](https://upload-images.jianshu.io/upload_images/5336514-b6cd80ab63edb7a3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\n\n\n## 2.7 日志管理\n\n使用aop日志，记录用户的操作。刚才的操作日志，都被记录了下来。\n\n![日志管理](https://upload-images.jianshu.io/upload_images/5336514-577f9c1bfe8cdd3c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\n\n## 2.8 数据库监控\n\n集成druid的监控页面。\n\n![数据库监控](https://upload-images.jianshu.io/upload_images/5336514-6e22e68f965afdbd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\n\n\n\n# 3. 系统权限设计思路\n\n1) 每个用户登陆进去看到的菜单应该取决于他们所拥有的权限，对于不同的用户，他们进入系统后看到的菜单可能是不同的。\n\n2) 如果对每个用户都去设置权限，操作起来是非常繁琐的。实际中很多用户的权限是一样的。我们把这多个权限合起来，给它一个名称叫角色（有的系统称为“用户组”）。这样我们通过角色设置权限，即一个角色可以有多个权限（菜单项），一个权限也可以被多个角色同时拥有。在这种情况下，角色和权限之间就是典型的多对多关联\n\n3) 每个角色包含了很多权限（菜单），那么用户指定为某种角色，即拥有该角色的权限。实际中一个用户可能同时拥有多种角色，而一个角色又包含了很多个用户。那么用户与角色之间又是典型的多对多关系。\n\n4) 一个标准的权限系统包括哪些表呢？刚才我们提到了用户、角色、权限，这就是三张表。用户与角色的关系是多对多，对于多对多关系，我们通常会使用中间表来存储它们的关系。那么对应的角色与权限的关系，也会有中间表。因此，权限系统涉及的表就有5个了。\n\n![系统权限](https://upload-images.jianshu.io/upload_images/5336514-9afdb6918b86d639.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)\n\n通过用户对应的角色加载角色对应的菜单。\n集成shiro做后端url级别鉴权、方法级别鉴权，甚至方法内的鉴权。由于shiro鉴权每次都要查询数据库，所以使用redis缓存菜单信息。\n\n# 4. 日志系统设计思路\n\n使用aop环绕通知记录方法的操作。\n参考：https://www.jianshu.com/p/59ca84fadbaf\n\n# 5. 如何运行项目\n\n## 5.1 本地运行\n找到resource目录里面有redis和sql文件\n\n**第一步：启动redis和mysql**\n**第二步：导入resource/sql/permission.sql文件，不是classpath下面的reset.sql**\n**第三步：导入项目，修改db.properties中的数据库账号密码**\n**第四步：启动maven项目**\n\n## 5.2 Dockerfile\n提前打好war，或者重写Dockerfile命令构建war\n```shell script\n# 构建镜像\ndocker build -t gj/permission .\n# 运行\ndocker run -d -p 8081:8080 gj/permission\n```\n\n## 5.3 docker-compose\n提前打好war\n```shell script\n# war、dockerfile、docker-compose在同一目录\ndocker-compose up -d\n# 查看镜像\ndocker-compose ps\n# 移除镜像\ndocker-compose down\n```\n\n## 5.4 其他\n\n弹窗在adminjs/index.js的start()方法，可以修改或者关闭\njs/crud.js封装了所有的crud前端的代码\n"
  },
  {
    "path": "docker/Dockerfile",
    "content": "FROM hub.c.163.com/library/tomcat\nMAINTAINER lastwhisper lastwhisper@yeah.net\n# copy war到container的tomcat中\nCOPY permission.war /usr/local/tomcat/webapps\n"
  },
  {
    "path": "docker/docker-compose.yml",
    "content": "version: \"3\"\n\nservices:\n  permission:\n    build:\n      context: .\n      dockerfile: Dockerfile\n    ports:\n      - \"8080:8080\"\n    links:\n      - redis\n      - mysql\n\n  redis:\n    image: hub.c.163.com/library/redis:latest\n    ports:\n      - \"63790:6379\"\n    networks:\n      - my-bridge\n\n  mysql:\n    image: hub.c.163.com/library/mysql:5.7\n    environment:\n      MYSQL_ROOT_PASSWORD: 391054950.gg\n    ports:\n      - \"33060:3306\"\n    volumes:\n      - /root/mysql/db:/var/lib/mysql\n      - /root/mysql/conf/my.cnf:/etc/my.cnf\n      - /root/mysql/init:/docker-entrypoint-initdb.d/\n    networks:\n      - my-bridge\n\nvolumes:\n  mysql-data:\n\nnetworks:\n  my-bridge:\n    driver: bridge"
  },
  {
    "path": "docker/mysql/conf/my.cnf",
    "content": "[mysqld]\nuser=mysql\ndefault-storage-engine=INNODB\ncharacter-set-server=utf8\n[client]\ndefault-character-set=utf8\n[mysql]\ndefault-character-set=utf8"
  },
  {
    "path": "docker/mysql/init/init.sql",
    "content": "/*\n Navicat Premium Data Transfer\n\n Source Server         : 本地数据库-mysql5.7\n Source Server Type    : MySQL\n Source Server Version : 50724\n Source Host           : localhost:3306\n Source Schema         : permission\n\n Target Server Type    : MySQL\n Target Server Version : 50724\n File Encoding         : 65001\n\n Date: 03/05/2019 13:10:50\n*/\ncreate database permission;\nuse permission;\n\nSET NAMES utf8mb4;\nSET FOREIGN_KEY_CHECKS = 0;\n\n-- ----------------------------\n-- Table structure for log\n-- ----------------------------\nDROP TABLE IF EXISTS `log`;\nCREATE TABLE `log`  (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `operateor` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `operateType` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `operateDate` datetime(0) NULL DEFAULT NULL,\n  `operateResult` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `ip` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 51 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;\n\n-- ----------------------------\n-- Table structure for menu\n-- ----------------------------\nDROP TABLE IF EXISTS `menu`;\nCREATE TABLE `menu`  (\n  `menuid` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '1' COMMENT '编号',\n  `menuname` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '名称',\n  `url` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '对应URL',\n  `icon` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '图标样式',\n  `pid` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '上一级菜单编号',\n  `is_parent` tinyint(1) NULL DEFAULT NULL COMMENT '该菜单是否为父菜单，1为true，0为false',\n  PRIMARY KEY (`menuid`) USING BTREE\n) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;\n\n-- ----------------------------\n-- Records of menu\n-- ----------------------------\nINSERT INTO `menu` VALUES ('0', '系统菜单', '-', 'icon-sys', '-1', 1);\nINSERT INTO `menu` VALUES ('100', '系统管理', '-', 'icon-sys', '0', 1);\nINSERT INTO `menu` VALUES ('101', '用户管理', 'user.html', 'icon-log', '100', 0);\nINSERT INTO `menu` VALUES ('102', '角色管理', 'role.html', 'icon-log', '100', 0);\nINSERT INTO `menu` VALUES ('103', '菜单管理', 'menu.html', 'icon-log', '100', 1);\nINSERT INTO `menu` VALUES ('104', '角色权限管理', 'roleMenuSet.html', 'icon-log', '100', 0);\nINSERT INTO `menu` VALUES ('105', '用户角色管理', 'userRoleSet.html', 'icon-log', '100', 0);\nINSERT INTO `menu` VALUES ('106', '日志管理', 'log.html', 'icon-log', '100', 1);\nINSERT INTO `menu` VALUES ('107', '数据库监控', 'druid/index.html', 'icon-log', '100', 0);\nINSERT INTO `menu` VALUES ('200', '人事管理', '-', 'icon-sys', '0', 1);\nINSERT INTO `menu` VALUES ('201', '部门', 'dept.html', 'icon-log', '200', 0);\nINSERT INTO `menu` VALUES ('202', '员工', 'emp.html', 'icon-log', '200', 0);\nINSERT INTO `menu` VALUES ('300', '销售管理', '-', 'icon-sys', '0', 1);\nINSERT INTO `menu` VALUES ('301', '销售额统计', 'sale.html', 'icon-log', '300', 0);\nINSERT INTO `menu` VALUES ('400', '临时工管理', '-', 'icon-sys', '0', 1);\nINSERT INTO `menu` VALUES ('401', '临时工计件', 'casual.html', 'icon-log', '400', 0);\n\n-- ----------------------------\n-- Table structure for role\n-- ----------------------------\nDROP TABLE IF EXISTS `role`;\nCREATE TABLE `role`  (\n  `uuid` int(10) NOT NULL AUTO_INCREMENT COMMENT '编号',\n  `name` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '名称',\n  PRIMARY KEY (`uuid`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '角色' ROW_FORMAT = Dynamic;\n\n-- ----------------------------\n-- Records of role\n-- ----------------------------\nINSERT INTO `role` VALUES (1, '系统管理员');\nINSERT INTO `role` VALUES (2, '经理');\nINSERT INTO `role` VALUES (3, '销售主管');\nINSERT INTO `role` VALUES (4, '销售员');\nINSERT INTO `role` VALUES (5, '临时工');\n\n-- ----------------------------\n-- Table structure for role_menu\n-- ----------------------------\nDROP TABLE IF EXISTS `role_menu`;\nCREATE TABLE `role_menu`  (\n  `menuuuid` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '菜单ID',\n  `roleuuid` int(10) NULL DEFAULT NULL COMMENT '菜单ID'\n) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '角色菜单中间表' ROW_FORMAT = Dynamic;\n\n-- ----------------------------\n-- Records of role_menu\n-- ----------------------------\nINSERT INTO `role_menu` VALUES ('100', 1);\nINSERT INTO `role_menu` VALUES ('101', 1);\nINSERT INTO `role_menu` VALUES ('102', 1);\nINSERT INTO `role_menu` VALUES ('103', 1);\nINSERT INTO `role_menu` VALUES ('104', 1);\nINSERT INTO `role_menu` VALUES ('105', 1);\nINSERT INTO `role_menu` VALUES ('106', 1);\nINSERT INTO `role_menu` VALUES ('107', 1);\nINSERT INTO `role_menu` VALUES ('200', 2);\nINSERT INTO `role_menu` VALUES ('201', 2);\nINSERT INTO `role_menu` VALUES ('202', 2);\nINSERT INTO `role_menu` VALUES ('300', 3);\nINSERT INTO `role_menu` VALUES ('301', 3);\nINSERT INTO `role_menu` VALUES ('300', 4);\nINSERT INTO `role_menu` VALUES ('301', 4);\nINSERT INTO `role_menu` VALUES ('400', 5);\nINSERT INTO `role_menu` VALUES ('401', 5);\n\n-- ----------------------------\n-- Table structure for user\n-- ----------------------------\nDROP TABLE IF EXISTS `user`;\nCREATE TABLE `user`  (\n  `user_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',\n  `user_code` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '登陆名',\n  `user_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户名',\n  `user_pwd` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户密码',\n  `user_birthday` date NULL DEFAULT NULL COMMENT '出生日期',\n  PRIMARY KEY (`user_id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 269 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '用户信息表' ROW_FORMAT = Dynamic;\n\n-- ----------------------------\n-- Records of user\n-- ----------------------------\nINSERT INTO `user` VALUES (221, 'admin', '我是系统管理员', '3ef7164d1f6167cb9f2658c07d3c2f0a', '2019-04-04');\nINSERT INTO `user` VALUES (262, 'manager', '我是经理', 'bb2ec153e560c6cb94a35b370eb7a07b', '2019-05-02');\nINSERT INTO `user` VALUES (263, 'salemanager', '我是销售主管', '40fd0e9ba2e7241cb04c49a7663464c1', '2019-05-06');\nINSERT INTO `user` VALUES (264, 'saler', '我是销售员', '846366204c8cc44abdedf5f201da0b00', '2019-05-20');\nINSERT INTO `user` VALUES (265, 'casual', '我是临时工', '130131080b677e15df326f8114c426a3', '2019-05-04');\n\n-- ----------------------------\n-- Table structure for user_role\n-- ----------------------------\nDROP TABLE IF EXISTS `user_role`;\nCREATE TABLE `user_role`  (\n  `userid` int(11) NULL DEFAULT NULL COMMENT '员工编号',\n  `roleuuid` int(11) NULL DEFAULT NULL COMMENT '角色编号'\n) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '用户角色中间表' ROW_FORMAT = Dynamic;\n\n-- ----------------------------\n-- Records of user_role\n-- ----------------------------\nINSERT INTO `user_role` VALUES (265, 5);\nINSERT INTO `user_role` VALUES (264, 4);\nINSERT INTO `user_role` VALUES (263, 3);\nINSERT INTO `user_role` VALUES (262, 2);\nINSERT INTO `user_role` VALUES (221, 1);\nINSERT INTO `user_role` VALUES (221, 5);\n\nSET FOREIGN_KEY_CHECKS = 1;\n"
  },
  {
    "path": "docker/redis/Dockerfile",
    "content": "FROM hub.c.163.com/library/redis:latest\nMAINTAINER lastwhisper gaojun56@163.com\n# 安装ping、ip等\n"
  },
  {
    "path": "permission.iml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule=\"true\" type=\"JAVA_MODULE\" version=\"4\">\n  <component name=\"FacetManager\">\n    <facet type=\"web\" name=\"Web\">\n      <configuration>\n        <descriptors>\n          <deploymentDescriptor name=\"web.xml\" url=\"file://$MODULE_DIR$/src/main/webapp/WEB-INF/web.xml\" />\n        </descriptors>\n        <webroots>\n          <root url=\"file://$MODULE_DIR$/src/main/webapp\" relative=\"/\" />\n        </webroots>\n        <sourceRoots>\n          <root url=\"file://$MODULE_DIR$/src/main/java\" />\n          <root url=\"file://$MODULE_DIR$/src/main/resources\" />\n        </sourceRoots>\n      </configuration>\n    </facet>\n    <facet type=\"Spring\" name=\"Spring\">\n      <configuration />\n    </facet>\n  </component>\n  <component name=\"NewModuleRootManager\" LANGUAGE_LEVEL=\"JDK_1_8\">\n    <output url=\"file://$MODULE_DIR$/target/classes\" />\n    <output-test url=\"file://$MODULE_DIR$/target/test-classes\" />\n    <content url=\"file://$MODULE_DIR$\">\n      <sourceFolder url=\"file://$MODULE_DIR$/src/main/java\" isTestSource=\"false\" />\n      <sourceFolder url=\"file://$MODULE_DIR$/src/main/resources\" type=\"java-resource\" />\n      <sourceFolder url=\"file://$MODULE_DIR$/src/test/java\" isTestSource=\"true\" />\n      <excludeFolder url=\"file://$MODULE_DIR$/target\" />\n    </content>\n    <orderEntry type=\"inheritedJdk\" />\n    <orderEntry type=\"sourceFolder\" forTests=\"false\" />\n    <orderEntry type=\"library\" name=\"Maven: org.springframework:spring-core:4.3.18.RELEASE\" level=\"project\" />\n    <orderEntry type=\"library\" name=\"Maven: org.springframework:spring-aop:4.3.18.RELEASE\" level=\"project\" />\n    <orderEntry type=\"library\" name=\"Maven: org.springframework:spring-beans:4.3.18.RELEASE\" level=\"project\" />\n    <orderEntry type=\"library\" name=\"Maven: org.springframework:spring-web:4.3.18.RELEASE\" level=\"project\" />\n    <orderEntry type=\"library\" name=\"Maven: org.springframework:spring-context:4.3.18.RELEASE\" level=\"project\" />\n    <orderEntry type=\"library\" name=\"Maven: org.springframework:spring-webmvc:4.3.18.RELEASE\" level=\"project\" />\n    <orderEntry type=\"library\" name=\"Maven: org.springframework:spring-expression:4.3.18.RELEASE\" level=\"project\" />\n    <orderEntry type=\"library\" name=\"Maven: org.springframework:spring-jdbc:4.3.18.RELEASE\" level=\"project\" />\n    <orderEntry type=\"library\" name=\"Maven: org.springframework:spring-tx:4.3.18.RELEASE\" level=\"project\" />\n    <orderEntry type=\"library\" name=\"Maven: com.fasterxml.jackson.core:jackson-databind:2.9.10.1\" level=\"project\" />\n    <orderEntry type=\"library\" name=\"Maven: com.fasterxml.jackson.core:jackson-annotations:2.9.10\" level=\"project\" />\n    <orderEntry type=\"library\" name=\"Maven: com.fasterxml.jackson.core:jackson-core:2.9.10\" level=\"project\" />\n    <orderEntry type=\"library\" name=\"Maven: org.aspectj:aspectjrt:1.8.0\" level=\"project\" />\n    <orderEntry type=\"library\" name=\"Maven: org.aspectj:aspectjweaver:1.8.0\" level=\"project\" />\n    <orderEntry type=\"library\" name=\"Maven: org.mybatis:mybatis:3.3.0\" level=\"project\" />\n    <orderEntry type=\"library\" name=\"Maven: mysql:mysql-connector-java:5.1.26\" level=\"project\" />\n    <orderEntry type=\"library\" name=\"Maven: com.alibaba:druid:1.0.20\" level=\"project\" />\n    <orderEntry type=\"library\" name=\"Maven: org.mybatis:mybatis-spring:1.2.3\" level=\"project\" />\n    <orderEntry type=\"library\" name=\"Maven: com.github.pagehelper:pagehelper:4.1.4\" level=\"project\" />\n    <orderEntry type=\"library\" name=\"Maven: com.github.jsqlparser:jsqlparser:0.9.5\" level=\"project\" />\n    <orderEntry type=\"library\" name=\"Maven: javax.servlet:jstl:1.2\" level=\"project\" />\n    <orderEntry type=\"library\" name=\"Maven: com.alibaba:fastjson:1.2.58\" level=\"project\" />\n    <orderEntry type=\"library\" name=\"Maven: commons-fileupload:commons-fileupload:1.4\" level=\"project\" />\n    <orderEntry type=\"library\" name=\"Maven: commons-io:commons-io:2.2\" level=\"project\" />\n    <orderEntry type=\"library\" name=\"Maven: commons-logging:commons-logging:1.2\" level=\"project\" />\n    <orderEntry type=\"library\" name=\"Maven: org.apache.commons:commons-lang3:3.4\" level=\"project\" />\n    <orderEntry type=\"library\" name=\"Maven: log4j:log4j:1.2.17\" level=\"project\" />\n    <orderEntry type=\"library\" name=\"Maven: org.slf4j:slf4j-api:1.7.21\" level=\"project\" />\n    <orderEntry type=\"library\" name=\"Maven: junit:junit:4.9\" level=\"project\" />\n    <orderEntry type=\"library\" name=\"Maven: org.hamcrest:hamcrest-core:1.1\" level=\"project\" />\n    <orderEntry type=\"library\" scope=\"PROVIDED\" name=\"Maven: javax.servlet:jsp-api:2.0\" level=\"project\" />\n    <orderEntry type=\"library\" scope=\"PROVIDED\" name=\"Maven: javax.servlet:servlet-api:2.5\" level=\"project\" />\n    <orderEntry type=\"library\" name=\"Maven: redis.clients:jedis:2.7.2\" level=\"project\" />\n    <orderEntry type=\"library\" name=\"Maven: org.apache.commons:commons-pool2:2.3\" level=\"project\" />\n    <orderEntry type=\"library\" name=\"Maven: org.apache.shiro:shiro-core:1.2.3\" level=\"project\" />\n    <orderEntry type=\"library\" name=\"Maven: commons-beanutils:commons-beanutils:1.8.3\" level=\"project\" />\n    <orderEntry type=\"library\" name=\"Maven: org.apache.shiro:shiro-web:1.2.3\" level=\"project\" />\n    <orderEntry type=\"library\" name=\"Maven: org.apache.shiro:shiro-spring:1.2.3\" level=\"project\" />\n    <orderEntry type=\"library\" name=\"Maven: org.apache.shiro:shiro-aspectj:1.2.3\" level=\"project\" />\n    <orderEntry type=\"library\" name=\"Maven: org.apache.poi:poi:3.15\" level=\"project\" />\n    <orderEntry type=\"library\" name=\"Maven: commons-codec:commons-codec:1.10\" level=\"project\" />\n    <orderEntry type=\"library\" name=\"Maven: org.apache.commons:commons-collections4:4.1\" level=\"project\" />\n  </component>\n</module>"
  },
  {
    "path": "pom.xml",
    "content": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n         xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\">\n    <modelVersion>4.0.0</modelVersion>\n    <groupId>cn.lastwhisper</groupId>\n    <artifactId>permission</artifactId>\n    <version>0.0.1-SNAPSHOT</version>\n    <packaging>war</packaging>\n\n    <url>http://maven.apache.org</url>\n    <properties>\n        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>\n        <!-- Spring版本号 -->\n        <spring.version>4.3.18.RELEASE</spring.version>\n        <jackson.version>2.9.10.1</jackson.version>\n    </properties>\n    <dependencies>\n        <!-- Spring相关包 -->\n        <dependency>\n            <groupId>org.springframework</groupId>\n            <artifactId>spring-core</artifactId>\n            <version>${spring.version}</version>\n        </dependency>\n        <dependency>\n            <groupId>org.springframework</groupId>\n            <artifactId>spring-aop</artifactId>\n            <version>${spring.version}</version>\n        </dependency>\n        <dependency>\n            <groupId>org.springframework</groupId>\n            <artifactId>spring-web</artifactId>\n            <version>${spring.version}</version>\n        </dependency>\n        <dependency>\n            <groupId>org.springframework</groupId>\n            <artifactId>spring-webmvc</artifactId>\n            <version>${spring.version}</version>\n        </dependency>\n        <dependency>\n            <groupId>org.springframework</groupId>\n            <artifactId>spring-jdbc</artifactId>\n            <version>${spring.version}</version>\n        </dependency>\n        <dependency>\n            <groupId>org.springframework</groupId>\n            <artifactId>spring-tx</artifactId>\n            <version>${spring.version}</version>\n        </dependency>\n\n        <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->\n        <dependency>\n            <groupId>com.fasterxml.jackson.core</groupId>\n            <artifactId>jackson-databind</artifactId>\n            <version>${jackson.version}</version>\n        </dependency>\n        <!-- AOP相关包 -->\n        <dependency>\n            <groupId>org.aspectj</groupId>\n            <artifactId>aspectjrt</artifactId>\n            <version>1.8.0</version>\n        </dependency>\n        <dependency>\n            <groupId>org.aspectj</groupId>\n            <artifactId>aspectjweaver</artifactId>\n            <version>1.8.0</version>\n        </dependency>\n\n        <!-- MyBatis相关包 -->\n        <dependency>\n            <groupId>org.mybatis</groupId>\n            <artifactId>mybatis</artifactId>\n            <version>3.3.0</version>\n        </dependency>\n        <!-- MySQL相关包 -->\n        <dependency>\n            <groupId>mysql</groupId>\n            <artifactId>mysql-connector-java</artifactId>\n            <version>5.1.26</version>\n        </dependency>\n        <!-- 数据库连接池 -->\n        <dependency>\n            <groupId>com.alibaba</groupId>\n            <artifactId>druid</artifactId>\n            <version>1.0.20</version>\n        </dependency>\n\n        <!-- Spring集成MyBatis -->\n        <dependency>\n            <groupId>org.mybatis</groupId>\n            <artifactId>mybatis-spring</artifactId>\n            <version>1.2.3</version>\n        </dependency>\n\n        <!-- PageHelper -->\n        <dependency>\n            <groupId>com.github.pagehelper</groupId>\n            <artifactId>pagehelper</artifactId>\n            <version>4.1.4</version>\n        </dependency>\n        <!-- JSP标准标签库 -->\n        <dependency>\n            <groupId>javax.servlet</groupId>\n            <artifactId>jstl</artifactId>\n            <version>1.2</version>\n        </dependency>\n\n        <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->\n        <dependency>\n            <groupId>com.alibaba</groupId>\n            <artifactId>fastjson</artifactId>\n            <version>1.2.58</version>\n        </dependency>\n        <!-- -->\n        <dependency>\n            <groupId>commons-fileupload</groupId>\n            <artifactId>commons-fileupload</artifactId>\n            <version>1.4</version>\n        </dependency>\n\n\n        <dependency>\n            <groupId>commons-logging</groupId>\n            <artifactId>commons-logging</artifactId>\n            <version>1.2</version>\n        </dependency>\n\n        <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->\n        <dependency>\n            <groupId>org.apache.commons</groupId>\n            <artifactId>commons-lang3</artifactId>\n            <version>3.4</version>\n        </dependency>\n\n        <!-- 日志相关包 -->\n        <dependency>\n            <groupId>log4j</groupId>\n            <artifactId>log4j</artifactId>\n            <version>1.2.17</version>\n        </dependency>\n        <dependency>\n            <groupId>org.slf4j</groupId>\n            <artifactId>slf4j-api</artifactId>\n            <version>1.7.21</version>\n        </dependency>\n\n        <!-- 单元测试相关包 -->\n        <dependency>\n            <groupId>junit</groupId>\n            <artifactId>junit</artifactId>\n            <version>4.9</version>\n        </dependency>\n\n        <dependency>\n            <groupId>javax.servlet</groupId>\n            <artifactId>jsp-api</artifactId>\n            <version>2.0</version>\n            <scope>provided</scope>\n        </dependency>\n\n        <dependency>\n            <groupId>javax.servlet</groupId>\n            <artifactId>servlet-api</artifactId>\n            <version>2.5</version>\n            <scope>provided</scope>\n        </dependency>\n\n        <dependency>\n            <groupId>redis.clients</groupId>\n            <artifactId>jedis</artifactId>\n            <version>2.7.2</version>\n        </dependency>\n\n        <dependency>\n            <groupId>org.apache.shiro</groupId>\n            <artifactId>shiro-core</artifactId>\n            <version>1.2.3</version>\n        </dependency>\n        <dependency>\n            <groupId>org.apache.shiro</groupId>\n            <artifactId>shiro-web</artifactId>\n            <version>1.2.3</version>\n        </dependency>\n        <dependency>\n            <groupId>org.apache.shiro</groupId>\n            <artifactId>shiro-spring</artifactId>\n            <version>1.2.3</version>\n        </dependency>\n        <dependency>\n            <groupId>org.apache.shiro</groupId>\n            <artifactId>shiro-aspectj</artifactId>\n            <version>1.2.3</version>\n        </dependency>\n\n        <dependency>\n            <groupId>org.apache.poi</groupId>\n            <artifactId>poi</artifactId>\n            <version>3.15</version>\n        </dependency>\n\n    </dependencies>\n    <build>\n        <resources>\n            <resource>\n                <directory>src/main/java</directory>\n                <includes>\n                    <include>**/*.properties</include>\n                    <include>**/*.xml</include>\n                    <include>**/*.sql</include>\n                </includes>\n                <filtering>false</filtering>\n            </resource>\n            <resource>\n                <directory>src/main/resources</directory>\n                <includes>\n                    <include>**/*.properties</include>\n                    <include>**/*.xml</include>\n                    <include>**/*.sql</include>\n                </includes>\n                <filtering>false</filtering>\n            </resource>\n        </resources>\n        <plugins>\n            <!-- 添加添加jdk1.8插件 -->\n            <plugin>\n                <groupId>org.apache.maven.plugins</groupId>\n                <artifactId>maven-compiler-plugin</artifactId>\n                <version>3.8.1</version>\n                <configuration>\n                    <source>1.8</source>\n                    <target>1.8</target>\n                    <encoding>UTF-8</encoding>\n                </configuration>\n            </plugin>\n            <!-- 配置Tomcat插件 -->\n            <plugin>\n                <groupId>org.apache.tomcat.maven</groupId>\n                <artifactId>tomcat7-maven-plugin</artifactId>\n                <version>2.2</version>\n                <configuration>\n                    <port>8080</port>\n                    <path>/permission</path>\n                </configuration>\n            </plugin>\n            <!--\t\t\t<plugin>-->\n            <!--\t\t\t\t<groupId>org.apache.maven.plugins</groupId>-->\n            <!--\t\t\t\t<artifactId>maven-war-plugin</artifactId>-->\n            <!--\t\t\t\t<version>2.6</version>-->\n            <!--\t\t\t\t<configuration>-->\n            <!--\t\t\t\t\t<failOnMissingWebXml>false</failOnMissingWebXml>-->\n            <!--\t\t\t\t</configuration>-->\n            <!--\t\t\t</plugin>-->\n            <!-- 配置打包时跳过测试 ，首次配置使用的时候会自动联网进行下载 -->\n            <plugin>\n                <groupId>org.apache.maven.plugins</groupId>\n                <artifactId>maven-surefire-plugin</artifactId>\n                <version>3.0.0-M4</version>\n                <configuration>\n                    <skipTests>true</skipTests>\n                </configuration>\n            </plugin>\n        </plugins>\n    </build>\n</project>\n"
  },
  {
    "path": "resource/shell/delmysqldump.sh",
    "content": "#! /bin/bash\nfind /root/backformysql/ -mtime +7  -name \"*.sql\" -exec rm -rf {} \\;\n"
  },
  {
    "path": "resource/shell/mysqldump.sh",
    "content": "#! /bin/bash\necho \"mysqldump start ...\"\nmysqldump -uroot -proot -P 3306 permission > /root/backformysql/DB_permission_`date +%Y_%m_%d_%H_%M_%s`.sql\n#导出数据库结构mysqldump -uroot -d 数据库名> test.sql\n#导出表结构mysqldump -uroot -d 数据库名 表名> test.sql\necho \"mysqldump success ok !\"\n"
  },
  {
    "path": "resource/shell/permission.sh",
    "content": "#!/bin/bash\n# 还原数据库\nmysql -uroot -proot -P 3306 < reset.sql\n\n# 清空redis\ncd /usr/local/redis-5/bin/\ndb=0\n#可以用第一个参数指定需求清除的库\nif [ -n \"$1\" ];then\n        db=$1\nfi\n\n./redis-cli -h 127.0.0.1 -p 6379 -a root <<END\nselect ${db}\nflushdb\nEND\n"
  },
  {
    "path": "resource/shell/使用crontab.md",
    "content": "# crontab -e写入如下内容\n```shell script\n0 */12 * * * /root/mysqldump.sh  # 每隔12个小时备份一次数据库\n0 */2 * * * /root/permission.sh # 每隔两个小时还原一次数据库和redis\n```\n# crontab的几个服务命令\nservice crond start             //启动服务\nservice crond stop             //关闭服务\nservice crond restart         //重启服务\nservice crond reload         //重新载入配置"
  },
  {
    "path": "resource/sql/permission.sql",
    "content": "/*\n Navicat Premium Data Transfer\n\n Source Server         : 本地数据库-mysql5.7\n Source Server Type    : MySQL\n Source Server Version : 50724\n Source Host           : localhost:3306\n Source Schema         : permission\n\n Target Server Type    : MySQL\n Target Server Version : 50724\n File Encoding         : 65001\n\n Date: 03/05/2019 13:10:50\n*/\n\nSET NAMES utf8mb4;\nSET FOREIGN_KEY_CHECKS = 0;\n\n-- ----------------------------\n-- Table structure for log\n-- ----------------------------\nDROP TABLE IF EXISTS `log`;\nCREATE TABLE `log`  (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `operateor` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `operateType` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `operateDate` datetime(0) NULL DEFAULT NULL,\n  `operateResult` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `ip` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 51 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;\n\n-- ----------------------------\n-- Table structure for menu\n-- ----------------------------\nDROP TABLE IF EXISTS `menu`;\nCREATE TABLE `menu`  (\n  `menuid` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '1' COMMENT '编号',\n  `menuname` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '名称',\n  `url` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '对应URL',\n  `icon` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '图标样式',\n  `pid` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '上一级菜单编号',\n  `is_parent` tinyint(1) NULL DEFAULT NULL COMMENT '该菜单是否为父菜单，1为true，0为false',\n  PRIMARY KEY (`menuid`) USING BTREE\n) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;\n\n-- ----------------------------\n-- Records of menu\n-- ----------------------------\nINSERT INTO `menu` VALUES ('0', '系统菜单', '-', 'icon-sys', '-1', 1);\nINSERT INTO `menu` VALUES ('100', '系统管理', '-', 'icon-sys', '0', 1);\nINSERT INTO `menu` VALUES ('101', '用户管理', 'user.html', 'icon-log', '100', 0);\nINSERT INTO `menu` VALUES ('102', '角色管理', 'role.html', 'icon-log', '100', 0);\nINSERT INTO `menu` VALUES ('103', '菜单管理', 'menu.html', 'icon-log', '100', 1);\nINSERT INTO `menu` VALUES ('104', '角色权限管理', 'roleMenuSet.html', 'icon-log', '100', 0);\nINSERT INTO `menu` VALUES ('105', '用户角色管理', 'userRoleSet.html', 'icon-log', '100', 0);\nINSERT INTO `menu` VALUES ('106', '日志管理', 'log.html', 'icon-log', '100', 1);\nINSERT INTO `menu` VALUES ('107', '数据库监控', 'druid/index.html', 'icon-log', '100', 0);\nINSERT INTO `menu` VALUES ('200', '人事管理', '-', 'icon-sys', '0', 1);\nINSERT INTO `menu` VALUES ('201', '部门', 'dept.html', 'icon-log', '200', 0);\nINSERT INTO `menu` VALUES ('202', '员工', 'emp.html', 'icon-log', '200', 0);\nINSERT INTO `menu` VALUES ('300', '销售管理', '-', 'icon-sys', '0', 1);\nINSERT INTO `menu` VALUES ('301', '销售额统计', 'sale.html', 'icon-log', '300', 0);\nINSERT INTO `menu` VALUES ('400', '临时工管理', '-', 'icon-sys', '0', 1);\nINSERT INTO `menu` VALUES ('401', '临时工计件', 'casual.html', 'icon-log', '400', 0);\n\n-- ----------------------------\n-- Table structure for role\n-- ----------------------------\nDROP TABLE IF EXISTS `role`;\nCREATE TABLE `role`  (\n  `uuid` int(10) NOT NULL AUTO_INCREMENT COMMENT '编号',\n  `name` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '名称',\n  PRIMARY KEY (`uuid`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '角色' ROW_FORMAT = Dynamic;\n\n-- ----------------------------\n-- Records of role\n-- ----------------------------\nINSERT INTO `role` VALUES (1, '系统管理员');\nINSERT INTO `role` VALUES (2, '经理');\nINSERT INTO `role` VALUES (3, '销售主管');\nINSERT INTO `role` VALUES (4, '销售员');\nINSERT INTO `role` VALUES (5, '临时工');\n\n-- ----------------------------\n-- Table structure for role_menu\n-- ----------------------------\nDROP TABLE IF EXISTS `role_menu`;\nCREATE TABLE `role_menu`  (\n  `menuuuid` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '菜单ID',\n  `roleuuid` int(10) NULL DEFAULT NULL COMMENT '菜单ID'\n) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '角色菜单中间表' ROW_FORMAT = Dynamic;\n\n-- ----------------------------\n-- Records of role_menu\n-- ----------------------------\nINSERT INTO `role_menu` VALUES ('100', 1);\nINSERT INTO `role_menu` VALUES ('101', 1);\nINSERT INTO `role_menu` VALUES ('102', 1);\nINSERT INTO `role_menu` VALUES ('103', 1);\nINSERT INTO `role_menu` VALUES ('104', 1);\nINSERT INTO `role_menu` VALUES ('105', 1);\nINSERT INTO `role_menu` VALUES ('106', 1);\nINSERT INTO `role_menu` VALUES ('107', 1);\nINSERT INTO `role_menu` VALUES ('200', 2);\nINSERT INTO `role_menu` VALUES ('201', 2);\nINSERT INTO `role_menu` VALUES ('202', 2);\nINSERT INTO `role_menu` VALUES ('300', 3);\nINSERT INTO `role_menu` VALUES ('301', 3);\nINSERT INTO `role_menu` VALUES ('300', 4);\nINSERT INTO `role_menu` VALUES ('301', 4);\nINSERT INTO `role_menu` VALUES ('400', 5);\nINSERT INTO `role_menu` VALUES ('401', 5);\n\n-- ----------------------------\n-- Table structure for user\n-- ----------------------------\nDROP TABLE IF EXISTS `user`;\nCREATE TABLE `user`  (\n  `user_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',\n  `user_code` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '登陆名',\n  `user_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户名',\n  `user_pwd` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户密码',\n  `user_birthday` date NULL DEFAULT NULL COMMENT '出生日期',\n  PRIMARY KEY (`user_id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 269 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '用户信息表' ROW_FORMAT = Dynamic;\n\n-- ----------------------------\n-- Records of user\n-- ----------------------------\nINSERT INTO `user` VALUES (221, 'admin', '我是系统管理员', '3ef7164d1f6167cb9f2658c07d3c2f0a', '2019-04-04');\nINSERT INTO `user` VALUES (262, 'manager', '我是经理', 'bb2ec153e560c6cb94a35b370eb7a07b', '2019-05-02');\nINSERT INTO `user` VALUES (263, 'salemanager', '我是销售主管', '40fd0e9ba2e7241cb04c49a7663464c1', '2019-05-06');\nINSERT INTO `user` VALUES (264, 'saler', '我是销售员', '846366204c8cc44abdedf5f201da0b00', '2019-05-20');\nINSERT INTO `user` VALUES (265, 'casual', '我是临时工', '130131080b677e15df326f8114c426a3', '2019-05-04');\n\n-- ----------------------------\n-- Table structure for user_role\n-- ----------------------------\nDROP TABLE IF EXISTS `user_role`;\nCREATE TABLE `user_role`  (\n  `userid` int(11) NULL DEFAULT NULL COMMENT '员工编号',\n  `roleuuid` int(11) NULL DEFAULT NULL COMMENT '角色编号'\n) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '用户角色中间表' ROW_FORMAT = Dynamic;\n\n-- ----------------------------\n-- Records of user_role\n-- ----------------------------\nINSERT INTO `user_role` VALUES (265, 5);\nINSERT INTO `user_role` VALUES (264, 4);\nINSERT INTO `user_role` VALUES (263, 3);\nINSERT INTO `user_role` VALUES (262, 2);\nINSERT INTO `user_role` VALUES (221, 1);\nINSERT INTO `user_role` VALUES (221, 5);\n\nSET FOREIGN_KEY_CHECKS = 1;\n"
  },
  {
    "path": "src/main/java/cn/lastwhisper/core/annotation/LogAnno.java",
    "content": "package cn.lastwhisper.core.annotation;\n\nimport java.lang.annotation.ElementType;\nimport java.lang.annotation.Retention;\nimport java.lang.annotation.RetentionPolicy;\nimport java.lang.annotation.Target;\n\n/**\n * 日志注解\n * \n * @author lastwhisper\n *\n */\n@Target(ElementType.METHOD) // 方法注解\n@Retention(RetentionPolicy.RUNTIME) // 运行时可见\npublic @interface LogAnno {\n\tString operateType();// 记录日志的操作类型\n}"
  },
  {
    "path": "src/main/java/cn/lastwhisper/core/aop/LogAopAspect.java",
    "content": "package cn.lastwhisper.core.aop;\n\nimport java.lang.reflect.Method;\nimport java.sql.SQLException;\nimport java.util.Date;\n\nimport org.aspectj.lang.ProceedingJoinPoint;\nimport org.aspectj.lang.annotation.Around;\nimport org.aspectj.lang.annotation.Aspect;\nimport org.aspectj.lang.reflect.MethodSignature;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.core.annotation.Order;\nimport org.springframework.stereotype.Component;\n\nimport cn.lastwhisper.core.annotation.LogAnno;\nimport cn.lastwhisper.core.util.UserUtils;\nimport cn.lastwhisper.modular.pojo.Log;\nimport cn.lastwhisper.modular.pojo.User;\nimport cn.lastwhisper.modular.service.LogService;\n\n/**\n * AOP实现日志\n * \n * @author 最后的轻语_dd43\n * \n */\n@Order(3)\n@Component\n@Aspect\npublic class LogAopAspect {\n\t// 日志Service\n\t@Autowired\n\tprivate LogService logService;\n\n\t/**\n\t * 环绕通知记录日志通过注解匹配到需要增加日志功能的方法\n\t * \n\t * @param pjp\n\t * @return\n\t * @throws Throwable\n\t */\n\t@Around(\"@annotation(cn.lastwhisper.core.annotation.LogAnno)\")\n\tpublic Object aroundAdvice(ProceedingJoinPoint pjp) throws Throwable {\n\t\t// 1.方法执行前的处理，相当于前置通知\n\t\t// 获取方法签名\n\t\tMethodSignature methodSignature = (MethodSignature) pjp.getSignature();\n\t\t// 获取方法\n\t\tMethod method = methodSignature.getMethod();\n\t\t// 获取方法上面的注解\n\t\tLogAnno logAnno = method.getAnnotation(LogAnno.class);\n\t\t// 获取操作描述的属性值\n\t\tString operateType = logAnno.operateType();\n\t\t// 创建一个日志对象(准备记录日志)\n\t\tLog log = new Log();\n\t\tlog.setOperatetype(operateType);// 操作说明\n\n\t\t// 当前登录的用户\n\t\tUser user = UserUtils.getSubjectUser();\n\t\t// 设置操作人账号\n\t\tlog.setOperateor(user.getUser_code());\n\t\tString ip = UserUtils.getIpAddress();\n\t\tlog.setIp(ip);\n\t\tObject result = null;\n\t\ttry {\n\t\t\t// 让代理方法执行\n\t\t\tresult = pjp.proceed();\n\t\t\t// 2.相当于后置通知(方法成功执行之后走这里)\n\t\t\tlog.setOperateresult(\"正常\");// 设置操作结果\n\t\t} catch (SQLException e) {\n\t\t\t// 3.相当于异常通知部分\n\t\t\tlog.setOperateresult(\"异常\");// 设置操作结果\n\t\t} finally {\n\t\t\t// 4.相当于最终通知\n\t\t\tlog.setOperatedate(new Date());// 设置操作日期\n\t\t\tlogService.addLog(log);// 添加日志记录\n\t\t}\n\t\treturn result;\n\t}\n\n\t\n}"
  },
  {
    "path": "src/main/java/cn/lastwhisper/core/shiro/Realm.java",
    "content": "package cn.lastwhisper.core.shiro;\n\n\nimport java.util.List;\n\nimport org.apache.shiro.authc.AuthenticationException;\nimport org.apache.shiro.authc.AuthenticationInfo;\nimport org.apache.shiro.authc.AuthenticationToken;\nimport org.apache.shiro.authc.SimpleAuthenticationInfo;\nimport org.apache.shiro.authc.UsernamePasswordToken;\nimport org.apache.shiro.authz.AuthorizationInfo;\nimport org.apache.shiro.authz.SimpleAuthorizationInfo;\nimport org.apache.shiro.realm.AuthorizingRealm;\nimport org.apache.shiro.subject.PrincipalCollection;\nimport org.springframework.beans.factory.annotation.Autowired;\n\nimport cn.lastwhisper.modular.pojo.Menu;\nimport cn.lastwhisper.modular.pojo.User;\nimport cn.lastwhisper.modular.service.MenuService;\nimport cn.lastwhisper.modular.service.UserService;\n\npublic class Realm extends AuthorizingRealm {\n\t\n\t@Autowired\n\tprivate UserService userService;\n\t@Autowired\n\tprivate MenuService menusService;\n\t/**\n\t * 授权方法\n\t */\n\t@Override\n\tprotected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {\n\t\tSystem.out.println(\"授权中......\");\n\t\t//获取当前登录的用户\n\t\tUser user = (User)principals.getPrimaryPrincipal();\n\t\t//获取用户的所有菜单\n\t\tList<Menu> menus = menusService.findMenuListByUserid(user.getUser_id());\n\t\tSimpleAuthorizationInfo info = new SimpleAuthorizationInfo();\n\t\tfor (Menu menu : menus) {\n\t\t\tinfo.addStringPermission(menu.getMenuname());\n\t\t}\n\t\treturn info;\n\t}\n\n\t/**\n\t * 认证方法\n\t */\n\t@Override\n\tprotected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token)\n\t\t\tthrows AuthenticationException {\n\t\tSystem.out.println(\"认证中......\");\n\t\tUsernamePasswordToken upt = (UsernamePasswordToken)token;\n\t\tString pwd = new String(upt.getPassword());\n//\t\t// 根据用户名和密码查找用户\n\t\tUser user = userService.findUserByCodeAndPwd(upt.getUsername(), pwd);\n\t\tif(user != null) {\n\t\t\t//返回认证信息\n\t\t\t//参数1：主角，就是登陆的用户\n\t\t\t//参数2：证书，就是凭证，对应密码\n\t\t\t//参数3：当前realm的名称\n\t\t\treturn new SimpleAuthenticationInfo(user, pwd, getName());\n\t\t}\n\t\treturn null;\n\t}\n\n}\n"
  },
  {
    "path": "src/main/java/cn/lastwhisper/core/task/GoBackTask.java",
    "content": "package cn.lastwhisper.core.task;\n\nimport org.apache.ibatis.io.Resources;\nimport org.apache.ibatis.jdbc.ScriptRunner;\nimport org.apache.ibatis.session.SqlSession;\nimport org.apache.ibatis.session.SqlSessionFactory;\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\nimport org.springframework.beans.BeansException;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.context.ApplicationContext;\nimport org.springframework.context.ApplicationContextAware;\nimport org.springframework.scheduling.annotation.Scheduled;\nimport org.springframework.stereotype.Component;\nimport redis.clients.jedis.Jedis;\nimport redis.clients.jedis.JedisPool;\n\nimport java.io.IOException;\nimport java.io.Reader;\nimport java.nio.charset.StandardCharsets;\nimport java.sql.Connection;\n\n/**\n *\n * @author lastwhisper\n * @date 2020/2/16\n */\n@Component\npublic class GoBackTask implements ApplicationContextAware {\n\n    private static Logger logger = LoggerFactory.getLogger(GoBackTask.class);\n    private static ApplicationContext applicationContext;\n\n    @Autowired\n    private JedisPool jedisPool;\n\n    /**\n     * CronTrigger配置完整格式为： [秒][分][小时][日][月][周][年]\n     * (cron = \"0/2 * * * * ?\") //每两秒\n     *\n     * 每3小时重置mysql和redis\n     *\n     */\n    @Scheduled(cron = \"0 0 0/3 * * ?\")\n    public void goBack() {\n        // 清空缓存\n        flushRedis();\n        // 重置mysql\n        resetDb();\n    }\n\n    private void flushRedis() {\n        try (Jedis jedis = jedisPool.getResource()) {\n            jedis.flushAll();\n        } catch (Exception ignored) {\n        }\n    }\n\n    private void resetDb() {\n        logger.info(\"数据库重置开始\");\n        SqlSessionFactory sqlSessionFactory = (SqlSessionFactory) applicationContext.getBean(\"sqlSessionFactory\");\n        SqlSession sqlSession = sqlSessionFactory.openSession();\n        Connection conn = sqlSession.getConnection();\n        ScriptRunner runner = new ScriptRunner(conn);\n        Resources.setCharset(StandardCharsets.UTF_8); //设置字符集,不然中文乱码插入错误\n        runner.setLogWriter(null);//设置是否输出日志\n        // 绝对路径读取\n        // 从class目录下直接读取\n        Reader read;\n        try {\n            read = Resources.getResourceAsReader(\"reset.sql\");\n            runner.runScript(read);\n\n        } catch (IOException e) {\n            e.printStackTrace();\n        } finally {\n            runner.closeConnection();\n        }\n        logger.info(\"数据库重置完毕\");\n    }\n\n    @Override\n    public void setApplicationContext(ApplicationContext context) throws BeansException {\n        applicationContext = context;\n    }\n}\n"
  },
  {
    "path": "src/main/java/cn/lastwhisper/core/util/UserUtils.java",
    "content": "/**  \n * @Title:  RoleService.java   \n * @Package cn.lastwhisper.service   \n * @Description: TODO(用一句话描述该文件做什么)\n * @author:     最后的轻语_dd43   \n * @date:   2019年4月6日 下午2:45:32   \n * @version V1.0 \n */\npackage cn.lastwhisper.core.util;\n\nimport javax.servlet.http.HttpServletRequest;\n\nimport org.apache.shiro.SecurityUtils;\nimport org.springframework.web.context.request.RequestContextHolder;\nimport org.springframework.web.context.request.ServletRequestAttributes;\n\nimport cn.lastwhisper.modular.pojo.User;\n\n/**\n * \n * @ClassName:  UserUtils   \n * @Description:获取当前登录的用户  \n * @author:     最后的轻语_dd43\n * @date:       2019年4月5日\n */\npublic class UserUtils {\n\t/**\n\t * \n\t * @Title: getSubjectUser   \n\t * @Description: 获取shiro中登录的用户\n\t * @return\n\t */\n\tpublic static User getSubjectUser() {\n\t\tUser user = (User) SecurityUtils.getSubject().getPrincipal();\n\t\treturn user;\n\t}\n\t/**\n\t * \n\t * @Title: removeSubjectUser   \n\t * @Description: 从shiro中移除登录的用户\n\t * @author: 最后的轻语_dd43\n\t */\n\tpublic static void removeSubjectUser() {\n\t\tSecurityUtils.getSubject().logout();\n\t}\n\t/**\n\t * \n\t * @Title: getRequest   \n\t * @Description: 获取当前的request\n\t * @author: 最后的轻语_dd43    \n\t * @return\n\t */\n\tpublic static HttpServletRequest getRequest() {\n\t\treturn  ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes())\n\t\t\t\t.getRequest();\n\t}\n\t\n\t/**\n\t * 获取IP地址的方法\n\t * \n\t * @return\n\t */\n\tpublic static String getIpAddress() {\n\t\tHttpServletRequest request = getRequest();\n\t\tString ip = request.getHeader(\"x-forwarded-for\");\n\t\tif (ip == null || ip.length() == 0 || \"unknown\".equalsIgnoreCase(ip)) {\n\t\t\tip = request.getHeader(\"Proxy-Client-IP\");\n\t\t}\n\t\tif (ip == null || ip.length() == 0 || \"unknown\".equalsIgnoreCase(ip)) {\n\t\t\tip = request.getHeader(\"WL-Proxy-Client-IP\");\n\t\t}\n\t\tif (ip == null || ip.length() == 0 || \"unknown\".equalsIgnoreCase(ip)) {\n\t\t\tip = request.getHeader(\"HTTP_CLIENT_IP\");\n\t\t}\n\t\tif (ip == null || ip.length() == 0 || \"unknown\".equalsIgnoreCase(ip)) {\n\t\t\tip = request.getHeader(\"HTTP_X_FORWARDED_FOR\");\n\t\t}\n\t\tif (ip == null || ip.length() == 0 || \"unknown\".equalsIgnoreCase(ip)) {\n\t\t\tip = request.getRemoteAddr();\n\t\t}\n\t\treturn ip;\n\t}\n\t/**\n\t * \n\t * @Title: getSessionUser   \n\t * @Description: 获取session中登录的用户（开启shiro后失效）\n\t * @return\n\t */\n\t@Deprecated\n\tpublic static User getSessionUser() {\n\t\treturn (User)getRequest().getSession().getAttribute(\"user\");\n\t}\n\t\n\t/**\n\t * \n\t * @Title: setSessionUser   \n\t * @Description: 将当前登录的用户信息放入session（开启shiro后失效）\n\t * @param user\n\t */\n\t@Deprecated\n\tpublic static void setSessionUser(User user) {\n\t\tgetRequest().getSession().setAttribute(\"user\", user);\n\t}\n\t/**\n\t * \n\t * @Title: removeSessionUser   \n\t * @Description: 从session中移除user（开启shiro后失效）\n\t * @author: 最后的轻语_dd43\n\t */\n\t@Deprecated\n\tpublic static void removeSessionUser() {\n\t\tgetRequest().getSession().removeAttribute(\"user\");;\n\t}\n}\n"
  },
  {
    "path": "src/main/java/cn/lastwhisper/modular/controller/LogController.java",
    "content": "/**  \n * @Title:  RoleController.java   \n * @Package cn.lastwhisper.controller   \n * @Description: TODO(用一句话描述该文件做什么)\n * @author: 最后的轻语_dd43     \n * @date:   2019年4月6日 下午3:00:04   \n * @version V1.0 \n */\npackage cn.lastwhisper.modular.controller;\n\n\nimport java.util.List;\n\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.RequestMapping;\nimport org.springframework.web.bind.annotation.RequestMethod;\nimport org.springframework.web.bind.annotation.RequestParam;\nimport org.springframework.web.bind.annotation.ResponseBody;\n\nimport cn.lastwhisper.modular.vo.EasyUIDataGridResult;\nimport cn.lastwhisper.modular.pojo.Log;\nimport cn.lastwhisper.modular.service.LogService;\n\n/**\n * \n * @ClassName:  LogController   \n * @Description: 日志\n * @author:     最后的轻语_dd43\n * @date:       2019年5月1日\n */\n@Controller\npublic class LogController {\n\t@Autowired\n\tprivate LogService logService;\n\t\n\t/**\n\t * \n\t * @Title: rolelistByPage   \n\t * @Description: 返回分页日志\n\t * @author: 最后的轻语_dd43    \n\t * @param log\n\t * @param page\n\t * @param rows\n\t * @return\n\t */\n\t@RequestMapping(\"/log/loglistByPage\")\n\t@ResponseBody\n\tpublic EasyUIDataGridResult rolelistByPage(Log log,\n\t\t\t@RequestParam(value = \"page\", required = true, defaultValue = \"1\") Integer page,\n\t\t\t@RequestParam(value = \"rows\", required = true, defaultValue = \"10\") Integer rows) {\n\t\tEasyUIDataGridResult result = logService.findLoglistByPage(page, rows, log);\n\t\treturn result;\n\t}\n\t\n\t/**\n\t * \n\t * @Title: searchLogOperateor   \n\t * @Description: 模糊查询用户名\n\t * @author: 最后的轻语_dd43    \n\t * @param q\n\t * @return\n\t */\n\t@RequestMapping(value = \"/log/searchLogOperateor\", method = RequestMethod.POST)\n\t@ResponseBody\n\tpublic List<Log> searchLogOperateor(String q) {\n\t\tList<Log> operateor = logService.findLogOperateor(q);\n\t\treturn operateor;\n\t}\n\t\n\t\n}\n"
  },
  {
    "path": "src/main/java/cn/lastwhisper/modular/controller/MenuController.java",
    "content": "/**  \n * @Title:  MenuController.java   \n * @Package cn.lastwhisper.controller   \n * @Description: TODO(用一句话描述该文件做什么)\n * @author: 最后的轻语_dd43     \n * @date:   2019年4月6日 下午5:05:32   \n * @version V1.0 \n */\npackage cn.lastwhisper.modular.controller;\n\nimport java.util.List;\n\nimport cn.lastwhisper.core.annotation.LogAnno;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.RequestMapping;\nimport org.springframework.web.bind.annotation.ResponseBody;\n\nimport cn.lastwhisper.modular.vo.GlobalResult;\nimport cn.lastwhisper.modular.vo.Tree;\nimport cn.lastwhisper.core.util.UserUtils;\nimport cn.lastwhisper.modular.pojo.Menu;\nimport cn.lastwhisper.modular.pojo.User;\nimport cn.lastwhisper.modular.service.MenuService;\n\n/**   \n * @ClassName:  MenuController   \n * @Description:菜单管理\n * @author:     最后的轻语_dd43\n * @date:       2019年4月6日\n */\n@Controller\npublic class MenuController {\n\t\n\t@Autowired\n\tprivate MenuService menuService;\n\t/**\n\t * 查找所有\n\t * @author Zoe\n\t * @date 2019年2月15日下午3:46:48\n\t * @return\n\t */\n\t@RequestMapping(value=\"/menu/menulist\")\n\t@ResponseBody\n\tpublic List<Tree> findAll() {\n\t\treturn menuService.findMenuList(); \n\t}\n\t\n\t/**\n\t * 根据菜单id查找菜单，显示菜单详情\n\t * @author Zoe\n\t * @date 2019年2月15日下午8:15:02\n\t * @param menuid 主键\n\t * @return\n\t */\n\t@RequestMapping(\"/menu/menufindById\")\n\t@ResponseBody\n\tpublic List<Menu> findById(String menuid) {\n\t\treturn menuService.findMenuById(menuid);\n\t}\n\t/**\n\t * 添加数据\n\t * @author Zoe\n\t * @date 2019年2月15日下午9:47:56\n\t * @param menu 菜单对象\n\t * @return\n\t */\n\t@LogAnno(operateType = \"添加权限菜单\")\n\t@RequestMapping(value=\"/menu/menuadd\")\n\t@ResponseBody\n\tpublic GlobalResult insert(Menu menu) {\n\t\treturn menuService.addMenu(menu);\n\t}\n\t\n\t/**\n\t * 根据id删除数据[修改状态]\n\t * @author Zoe\n\t * @date 2019年2月15日下午9:47:41\n\t * @param menuid 主键\n\t * @return\n\t */\n\t@LogAnno(operateType = \"修改权限菜单\")\n\t@RequestMapping(value=\"/menu/menudelete\")\n\t@ResponseBody\n\tpublic GlobalResult deleteById(String menuid) {\n\t\treturn menuService.deleteMenuById(menuid);\n\t}\n\t\n\t/**\n\t * 根据id修改数据\n\t * @author Zoe\n\t * @date 2019年2月15日下午9:48:22\n\t * @param menu 菜单对象\n\t * @return\n\t */\n\t@LogAnno(operateType = \"更新权限菜单\")\n\t@RequestMapping(value=\"/menu/menuupdate\")\n\t@ResponseBody\n\tpublic GlobalResult updateById(Menu menu) {\n\t\treturn menuService.updateMenuById(menu);\n\t}\n\t\n\t\n\t/**\n\t * \n\t* @Title: loadMenu \n\t* @Description: 根据session中的user_id加载菜单\n\t* @return Menu\n\t* @author 最后的轻语_dd43\n\t* @date 2019年2月16日下午9:18:20\n\t */\n\t@RequestMapping(value=\"/menu/loadMenus\")\n\t@ResponseBody\n\tpublic Menu loadMenus() {\n\t\tUser user = UserUtils.getSubjectUser();\n\t\tMenu menus = null;\n\t\tif(user!=null) {\n\t\t\tmenus = menuService.findMenuByUserid(user.getUser_id());\n\t\t}\n\t\treturn menus;\n\t}\n}\n"
  },
  {
    "path": "src/main/java/cn/lastwhisper/modular/controller/RoleController.java",
    "content": "package cn.lastwhisper.modular.controller;\n\n\nimport java.util.List;\n\nimport cn.lastwhisper.core.annotation.LogAnno;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.RequestMapping;\nimport org.springframework.web.bind.annotation.RequestMethod;\nimport org.springframework.web.bind.annotation.RequestParam;\nimport org.springframework.web.bind.annotation.ResponseBody;\n\nimport cn.lastwhisper.modular.vo.EasyUIDataGridResult;\nimport cn.lastwhisper.modular.vo.EasyUIOptionalTreeNode;\nimport cn.lastwhisper.modular.vo.GlobalResult;\nimport cn.lastwhisper.modular.pojo.Role;\nimport cn.lastwhisper.modular.service.RoleService;\n\n/**   \n * @ClassName:  RoleController   \n * @Description:接收角色相关请求\n * @author:     最后的轻语_dd43\n * @date:       2019年4月6日\n */\n@Controller\npublic class RoleController {\n\t@Autowired\n\tprivate RoleService roleService;\n\t/**\n\t * \n\t* @Title: findRoleByEnble \n\t* @Description: 查询角色列表 \n\t* @param page\n\t* @param rows\n\t* @return EasyUIDataGridResult\n\t* @author 最后的轻语_dd43\n\t* @date 2019年2月14日下午6:48:36\n\t */\n\t@RequestMapping(\"/role/rolelistByPage\")\n\t@ResponseBody\n\tpublic EasyUIDataGridResult rolelistByPage(Role role,\n\t\t\t@RequestParam(value = \"page\", required = true, defaultValue = \"1\") Integer page,\n\t\t\t@RequestParam(value = \"rows\", required = true, defaultValue = \"10\") Integer rows) {\n\t\tEasyUIDataGridResult result = roleService.findRolelistByPage(page, rows, role);\n\t\treturn result;\n\t}\n\t\n\t/**\n\t * \n\t * @Title: searchRoleName   \n\t * @Description: 角色名自动补全\n\t * @param q\n\t * @return\n\t */\n\t@RequestMapping(value = \"/role/searchRoleName\", method = RequestMethod.POST)\n\t@ResponseBody\n\tpublic List<Role> searchRoleName(String q) {\n\t\tList<Role> roleName = roleService.findRoleName(q);\n\t\treturn roleName;\n\t}\n\t\n\t/**\n\t * \n\t* @Title: updateRole \n\t* @Description: 接收更新角色的数据 \n\t* @param role\n\t* @return GlobalResult\n\t* @author 最后的轻语_dd43\n\t* @date 2019年2月14日下午8:19:07\n\t */\n\t@LogAnno(operateType = \"更新角色\")\n\t@RequestMapping(value = \"/role/roleupdate\" , method = RequestMethod.POST)\n\t@ResponseBody\n\tpublic GlobalResult updateRole(Role role) {\n\t\tGlobalResult result = roleService.updateRole(role);\n\t\treturn result;\n\t}\n\t/**\n\t * \n\t* @Title: addRole \n\t* @Description: 添加角色 \n\t* @param role\n\t* @return GlobalResult\n\t* @author 最后的轻语_dd43\n\t* @date 2019年2月15日上午11:52:43\n\t */\n\t@LogAnno(operateType = \"添加角色 \")\n\t@RequestMapping(value = \"/role/roleadd\" , method = RequestMethod.POST)\n\t@ResponseBody\n\tpublic GlobalResult addRole(Role role) {\n\t\tGlobalResult result = roleService.addRole(role);\n\t\treturn result;\n\t}\n\n\t/**\n\t * 删除角色\n\t * @param role 角色\n\t */\n\t@LogAnno(operateType = \"删除角色\")\n\t@RequestMapping(value = \"/role/roledelete\" , method = RequestMethod.POST)\n\t@ResponseBody\n\tpublic GlobalResult deleteRole(Role role) {\n\t\tGlobalResult result = roleService.deleteRoleById(role.getUuid());\n\t\treturn result;\n\t}\n\t/**\n\t * \n\t* @Title: rolelistByEnble \n\t* @Description: 返回datagrid格式json \n\t* @return EasyUIDataGridResult\n\t* @author 最后的轻语_dd43\n\t* @date 2019年2月16日下午12:36:00\n\t */\n\t@RequestMapping(value = \"/role/rolelist\")\n\t@ResponseBody\n\tpublic EasyUIDataGridResult rolelist() {\n\t\tEasyUIDataGridResult result = roleService.findRoleList();\n\t\treturn result;\n\t}\n\t/**\n\t * \n\t* @Title: findRoleMenuByRoleid \n\t* @Description: 根据角色id加载对应权限菜单 \n\t* @param roleuuid\n\t* @return List<EasyUIOptionalTreeNode>\n\t* @author 最后的轻语_dd43\n\t* @date 2019年2月16日下午7:19:56\n\t */\n\t@RequestMapping(value = \"/role/findRoleMenuByRoleid\" , method = RequestMethod.POST)\n\t@ResponseBody\n\tpublic List<EasyUIOptionalTreeNode> findRoleMenuByRoleid(\n\t\t\t@RequestParam(value = \"id\", required = true)Integer roleuuid) {\n\t\treturn roleService.findRoleMenuByRoleid(roleuuid);\n\t}\n\t/**\n\t * \n\t* @Title: updateRoleMenu \n\t* @Description: 更新角色权限菜单 \n\t* @param roleuuid\n\t* @param checkedIds\n\t* @return GlobalResult\n\t* @author 最后的轻语_dd43\n\t* @date 2019年2月16日下午8:16:05\n\t */\n\t@LogAnno(operateType = \"更新角色权限菜单\")\n\t@RequestMapping(value = \"/role/updateRoleMenu\" , method = RequestMethod.POST)\n\t@ResponseBody\n\tpublic GlobalResult updateRoleMenu(\n\t\t\t@RequestParam(value = \"id\", required = true) Integer roleuuid,\n\t\t\t@RequestParam(value = \"checkedIds\", required = true) String checkedIds) {\n\t\tGlobalResult result = roleService.updateRoleMenu(roleuuid, checkedIds);\n\t\treturn result;\n\t}\n}\n"
  },
  {
    "path": "src/main/java/cn/lastwhisper/modular/controller/UserController.java",
    "content": "package cn.lastwhisper.modular.controller;\n\nimport java.io.IOException;\nimport java.sql.SQLException;\nimport java.util.Date;\nimport java.util.List;\n\nimport javax.servlet.http.HttpServletResponse;\n\nimport cn.lastwhisper.core.annotation.LogAnno;\nimport org.apache.shiro.SecurityUtils;\nimport org.apache.shiro.authc.AuthenticationException;\nimport org.apache.shiro.authc.UsernamePasswordToken;\nimport org.apache.shiro.subject.Subject;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.RequestMapping;\nimport org.springframework.web.bind.annotation.RequestMethod;\nimport org.springframework.web.bind.annotation.RequestParam;\nimport org.springframework.web.bind.annotation.ResponseBody;\nimport org.springframework.web.multipart.MultipartFile;\n\nimport cn.lastwhisper.modular.vo.EasyUIDataGridResult;\nimport cn.lastwhisper.modular.vo.EasyUIOptionalTreeNode;\nimport cn.lastwhisper.modular.vo.GlobalResult;\nimport cn.lastwhisper.core.util.UserUtils;\nimport cn.lastwhisper.modular.pojo.Log;\nimport cn.lastwhisper.modular.pojo.User;\nimport cn.lastwhisper.modular.service.LogService;\nimport cn.lastwhisper.modular.service.UserService;\n\n/**\n * \n * @ClassName: UserController\n * @Description:用户相关操作请求接收器\n * @author: 最后的轻语_dd43\n * @date: 2019年4月6日\n */\n@Controller\npublic class UserController {\n\t@Autowired\n\tprivate UserService userService;\n\t@Autowired\n\tprivate LogService logService;\n\n\t/**\n\t * \n\t * @Title: login\n\t * @Description: 用户登录\n\t * @param user_code\n\t * @param user_pwd\n\t * @return\n\t */\n\t@RequestMapping(value = \"/user/login\", method = RequestMethod.POST)\n\t@ResponseBody\n\tpublic GlobalResult login(String user_code, String user_pwd) {\n\t\ttry {\n\t\t\t// 1.创建令牌\n\t\t\tUsernamePasswordToken token = new UsernamePasswordToken(user_code, user_pwd);\n\t\t\t// 2.获取主题subject\n\t\t\tSubject subject = SecurityUtils.getSubject();\n\t\t\t// 3.执行login方法\n\t\t\tsubject.login(token);\n\t\t\t// 4.登录日志记录\n\t\t\tLog log = new Log();\n\t\t\tlog.setOperatedate(new Date());\n\t\t\tlog.setOperateor(user_code);\n\t\t\tlog.setOperateresult(\"正常\");\n\t\t\tlog.setOperatetype(\"登录\");\n\t\t\tlog.setIp(UserUtils.getIpAddress());\n\t\t\tlogService.addLog(log);\n\t\t\treturn GlobalResult.build(200, \"\");\n\t\t} catch (AuthenticationException e) {\n\t\t\te.printStackTrace();\n\t\t\treturn GlobalResult.build(400, \"账号或密码错误\");\n\t\t} catch (SQLException e) {\n\t\t\te.printStackTrace();\n\t\t\treturn GlobalResult.build(500, \"服务端错误\");\n\t\t}\n\t}\n\n\t/**\n\t * \n\t * @Title: login\n\t * @Description: TODO(这里用一句话描述这个方法的作用)\n\t * @param user 查询参数\n\t * @param page 当前页\n\t * @param rows 页面大小\n\t * @return\n\t */\n\t@RequestMapping(value = \"/user/userlistByPage\", method = RequestMethod.POST)\n\t@ResponseBody\n\tpublic EasyUIDataGridResult userlistByPage(User user,\n\t\t\t@RequestParam(value = \"page\", required = true, defaultValue = \"1\") Integer page,\n\t\t\t@RequestParam(value = \"rows\", required = true, defaultValue = \"10\") Integer rows) {\n\t\treturn userService.findUserlistByPage(user, page, rows);\n\t}\n\n\t/**\n\t * \n\t * @Title: searchUserName\n\t * @Description: 用户名自动补全\n\t * @param q\n\t * @return\n\t */\n\t@RequestMapping(value = \"/user/searchUserName\", method = RequestMethod.POST)\n\t@ResponseBody\n\tpublic List<User> searchUserName(String q) {\n\t\tList<User> userName = userService.findUserName(q);\n\t\treturn userName;\n\t}\n\n\t/**\n\t * \n\t * @Title: login\n\t * @Description: 添加用户\n\t * @param user 被添加的用户信息\n\t * @return\n\t */\n\t@LogAnno(operateType = \"添加用户\")\n\t@RequestMapping(value = \"/user/useradd\", method = RequestMethod.POST)\n\t@ResponseBody\n\tpublic GlobalResult useradd(User user) {\n\t\treturn userService.addUser(user);\n\t}\n\n\t/**\n\t * \n\t * @Title: userupdate\n\t * @Description: 更新用户信息\n\t * @param user 被修改的用户信息\n\t * @return\n\t */\n\t@LogAnno(operateType = \"更新用户\")\n\t@RequestMapping(value = \"/user/userupdate\", method = RequestMethod.POST)\n\t@ResponseBody\n\tpublic GlobalResult userupdate(User user) {\n\t\treturn userService.updateUser(user);\n\t}\n\n\t@LogAnno(operateType = \"更新密码\")\n\t@RequestMapping(value = \"/user/updatePwd\", method = RequestMethod.POST)\n\t@ResponseBody\n\tpublic GlobalResult updatePwd(String oldPwd, String newPwd) {\n\t\tUser user = UserUtils.getSubjectUser();\n\t\tGlobalResult result = userService.updatePwd(user, oldPwd, newPwd);\n\t\t// 密码修改完成后移除当前用户\n\t\tUserUtils.removeSubjectUser();\n\t\t;\n\t\treturn result;\n\t}\n\n\t/**\n\t * \n\t * @Title: userdelete\n\t * @Description: 根据user封装的条件删除用户\n\t * @param user 封装的条件\n\t * @return\n\t */\n\t@LogAnno(operateType = \"删除用户\")\n\t@RequestMapping(value = \"/user/userdelete\", method = RequestMethod.POST)\n\t@ResponseBody\n\tpublic GlobalResult userdelete(User user) {\n\t\treturn userService.deleteUser(user.getUser_id());\n\t}\n\n\t/**\n\t * \n\t * @Title: findUserRole\n\t * @Description: esayui tree默认POST方法\n\t * @param user_id\n\t * @return List<EasyUIOptionalTreeNode>\n\t * @author gj\n\t * @date 2019年2月16日下午3:23:42\n\t */\n\t@RequestMapping(value = \"/user/findUserRole\", method = { RequestMethod.POST })\n\t@ResponseBody\n\tpublic List<EasyUIOptionalTreeNode> findUserRole(@RequestParam(value = \"id\", required = true) Integer user_id) {\n\t\tList<EasyUIOptionalTreeNode> treeList = userService.findUserRole(user_id);\n\t\treturn treeList;\n\t}\n\n\t/**\n\t * \n\t * @Title: updateUserRole\n\t * @Description: 更新用户对应的权限\n\t * @param user_id\n\t * @param checkedIds\n\t * @return GlobalResult\n\t * @author gj\n\t * @date 2019年2月16日下午4:05:33\n\t */\n\t@LogAnno(operateType = \"更新用户对应角色\")\n\t@RequestMapping(value = \"/user/updateUserRole\", method = { RequestMethod.POST })\n\t@ResponseBody\n\tpublic GlobalResult updateUserRole(@RequestParam(value = \"id\", required = true) Integer user_id,\n\t\t\t@RequestParam(value = \"checkedIds\", required = true) String checkedIds) {\n\t\tGlobalResult result = userService.updateUserRole(user_id, checkedIds);\n\t\treturn result;\n\t}\n\n\t/**\n\t * \n\t * @Title: showName\n\t * @Description: 显示用户名\n\t * @return GlobalResult\n\t * @author gj\n\t * @date 2019年2月21日下午12:02:45\n\t */\n\t@RequestMapping(value = \"/user/showName\")\n\t@ResponseBody\n\tpublic GlobalResult showName() {\n\t\tGlobalResult result = null;\n\t\tif (UserUtils.getSubjectUser() == null) {\n\t\t\tresult = GlobalResult.build(400, \"用户未登录\");\n\t\t} else {\n\t\t\tresult = GlobalResult.build(200, UserUtils.getSubjectUser().getUser_name());\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * \n\t * @Title: logout\n\t * @Description: 登出\n\t * @return Map\n\t * @author gj\n\t * @date 2019年2月21日下午1:02:53\n\t */\n\t@RequestMapping(value = \"/user/logout\")\n\t@ResponseBody\n\tpublic String logout() {\n\t\t// 登录日志记录\n\t\tLog log = new Log();\n\t\tlog.setOperatedate(new Date());\n\t\tlog.setOperateor(UserUtils.getSubjectUser().getUser_code());\n\t\tlog.setOperateresult(\"正常\");\n\t\tlog.setOperatetype(\"注销\");\n\t\tlog.setIp(UserUtils.getIpAddress());\n\t\ttry {\n\t\t\tlogService.addLog(log);\n\t\t} catch (SQLException e) {\n\t\t\te.printStackTrace();\n\t\t}\n\t\t\n\t\tUserUtils.removeSubjectUser();\n\t\treturn null;\n\t}\n\n\t/**\n\t * \n\t * @Title: userexport\n\t * @Description: 根据user条件，导出对应的数据\n\t * @param user 封装的条件\n\t * @return\n\t */\n\t@LogAnno(operateType = \"导出用户信息Excel\")\n\t@RequestMapping(value = \"/user/userexport\", method = RequestMethod.POST)\n\t@ResponseBody\n\tpublic void userexport(User user, HttpServletResponse response) {\n\t\tString filename = \"Users_exportBy\" + UserUtils.getSubjectUser().getUser_name() + \".xls\";\n\t\t// 响应对象\n\t\ttry {\n\t\t\t// 设置输出流,实现下载文件\n\t\t\tresponse.setHeader(\"Content-Disposition\",\n\t\t\t\t\t\"attachment;filename=\" + new String(filename.getBytes(), \"ISO-8859-1\"));\n\n\t\t\tuserService.export(response.getOutputStream(), user);\n\t\t} catch (IOException e) {\n\t\t\te.printStackTrace();\n\t\t}\n\t}\n\n\t/**\n\t * \n\t * @Title: userdoImport\n\t * @Description: 导入用户信息excel\n\t * @author: 最后的轻语_dd43\n\t * @return\n\t */\n\t@LogAnno(operateType = \"导入用户信息Excel\")\n\t@RequestMapping(value = \"/user/userdoImport\", method = RequestMethod.POST)\n\t@ResponseBody\n\tpublic GlobalResult userdoImport(MultipartFile file) {\n\t\ttry {\n\t\t\tuserService.doImport(file.getInputStream());\n\t\t\treturn new GlobalResult(200, \"文件上传成功\", null);\n\t\t} catch (IOException e) {\n\t\t\te.printStackTrace();\n\t\t\treturn new GlobalResult(400, \"文件上传失败\", null);\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "src/main/java/cn/lastwhisper/modular/mapper/LogMapper.java",
    "content": "package cn.lastwhisper.modular.mapper;\n\nimport java.util.List;\n\nimport org.apache.ibatis.annotations.Param;\n\nimport cn.lastwhisper.modular.pojo.Log;\n\n/**   \n * @ClassName:  LogMapper   \n * @Description:TODO(这里用一句话描述这个类的作用)   \n * @author:     最后的轻语_dd43\n * @date:       2019年4月30日\n */\npublic interface LogMapper {\n\n\t/**   \n\t * @Title: insertLog   \n\t * @Description: 向数据库添加日志\n\t * @author: 最后的轻语_dd43    \n\t * @param log\n\t * @return      \n\t */\n\tint insertLog(Log log);\n\t/**\n\t * \n\t * @Title: selectUserlistByPage   \n\t * @Description: 查询\n\t * @author: 最后的轻语_dd43    \n\t * @param log\n\t * @return\n\t */\n\tpublic List<Log> selectLoglistByPage(Log log);\n\t/**\n\t * \n\t * @Title: selectLogOperateor   \n\t * @Description: 模糊查询操作人\n\t * @author: 最后的轻语_dd43    \n\t * @param operateor\n\t * @return\n\t */\n\tpublic List<Log> selectLogOperateor(@Param(\"operateor\")String operateor);\n\t\n}\n"
  },
  {
    "path": "src/main/java/cn/lastwhisper/modular/mapper/LogMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper\nPUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\"\n\"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"cn.lastwhisper.modular.mapper.LogMapper\">\n\n\t<select id=\"selectLoglistByPage\" parameterType=\"log\"\n\t\tresultType=\"log\">\n\t\tselect * from log \n\t\t<if test=\"operateor!=null\">\n\t\t\twhere \n\t\t\toperateor like CONCAT('%',#{operateor},'%' )\n\t\t</if>\n\t</select>\n\n\t<!-- 根据操作人模糊查询操作人 自动补全 -->\n\t<select id=\"selectLogOperateor\" parameterType=\"java.lang.String\"\n\t\tresultType=\"log\">\n\t\tselect distinct operateor from log \n\t\twhere \n\t\toperateor like CONCAT('%',#{operateor},'%' )\n\t</select>\n\n\t<insert id=\"insertLog\" parameterType=\"int\">\n\t\tinsert into log\n\t\tvalues(0\n\t\t<if test='operateor!=null'>\n\t\t\t,#{operateor}\n\t\t</if>\n\t\t<if test='operateor==null'>\n\t\t\t,null\n\t\t</if>\n\t\t<if test='operatetype!=null'>\n\t\t\t,#{operatetype}\n\t\t</if>\n\t\t<if test='operatetype==null'>\n\t\t\t,null\n\t\t</if>\n\t\t<if test='operatedate!=null'>\n\t\t\t,#{operatedate}\n\t\t</if>\n\t\t<if test='operatedate==null'>\n\t\t\t,null\n\t\t</if>\n\t\t<if test='operateresult!=null'>\n\t\t\t,#{operateresult}\n\t\t</if>\n\t\t<if test='operateresult==null'>\n\t\t\t,null\n\t\t</if>\n\t\t<if test='ip!=null'>\n\t\t\t,#{ip}\n\t\t</if>\n\t\t<if test='ip==null'>\n\t\t\t,null\n\t\t</if>\n\t\t);\n\t</insert>\n</mapper>"
  },
  {
    "path": "src/main/java/cn/lastwhisper/modular/mapper/MenuMapper.java",
    "content": "package cn.lastwhisper.modular.mapper;\n\nimport java.util.List;\n\nimport org.apache.ibatis.annotations.Param;\n\nimport cn.lastwhisper.modular.vo.Tree;\nimport cn.lastwhisper.modular.pojo.Menu;\n\n/**   \n * @ClassName:  MenuMapper   \n * @Description:TODO(这里用一句话描述这个类的作用)   \n * @author:     最后的轻语_dd43\n * @date:       2019年4月6日\n */\npublic interface MenuMapper {\n\t/**\n\t * \n\t * @Title: selectMenuList   \n\t * @Description: 查找所有数据\n\t * @author: 最后的轻语_dd43    \n\t * @return\n\t */\n\tList<Tree> selectMenuList();\n\n\t/**\n\t * \n\t * @Title: selectMenuById   \n\t * @Description: 根据菜单id查找菜单，显示菜单详情\n\t * @author: 最后的轻语_dd43    \n\t * @param menuid\n\t * @return\n\t */\n\tList<Menu> selectMenuById(@Param(\"menuid\") String menuid);\n\n\t/**\n\t * \n\t * @Title: insertMenu   \n\t * @Description: 添加数据\n\t * @author: 最后的轻语_dd43    \n\t * @param Menu\n\t * @return\n\t */\n\tInteger insertMenu(Menu Menu);\n\n\t/**\n\t * \n\t * @Title: deleteMenuById   \n\t * @Description: 根据id删除数据[修改状态]\n\t * @author: 最后的轻语_dd43    \n\t * @param menuid\n\t * @return\n\t */\n\tInteger deleteMenuById(String menuid);\n\n\t/**\n\t * \n\t * @Title: updateMenuById   \n\t * @Description: 根据id修改数据\n\t * @author: 最后的轻语_dd43    \n\t * @param Menu\n\t * @return\n\t */\n\tInteger updateMenuById(Menu Menu);\n\t\n\t/**\n\t * \n\t * @Title: selectMenuIdName\n\t * @Description: 根据pid获取所有权限菜单(menuid,menuname)\n\t * @return List<Menu>\n\t * @author 最后的轻语_dd43\n\t * @date 2019年2月16日下午7:05:10\n\t */\n\tpublic List<Menu> selectMenuIdName(@Param(\"pid\") String pid);\n\n\t/**\n\t * \n\t * @Title: selectMenuByUserid\n\t * @Description: 根据userid加载对应菜单\n\t * @param userid\n\t * @return List<Menu>\n\t * @author 最后的轻语_dd43\n\t * @date 2019年2月16日下午8:40:39\n\t */\n\tpublic List<Menu> selectMenuByUserid(@Param(\"userid\") Integer userid);\n\t\n\t/**\n\t * \n\t* @Title: selectMenu \n\t* @Description: 查询所有菜单的所有属性 \n\t* @param pid\n\t* @return List<Menu>\n\t* @author 最后的轻语_dd43\n\t* @date 2019年2月16日下午9:04:26\n\t */\n\tpublic List<Menu> selectMenu(@Param(\"pid\") String pid);\n\n}\n"
  },
  {
    "path": "src/main/java/cn/lastwhisper/modular/mapper/MenuMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper\nPUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\"\n\"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"cn.lastwhisper.modular.mapper.MenuMapper\">\n<!-- 初始化菜单树 -->\n    <resultMap type=\"cn.lastwhisper.modular.vo.Tree\" id=\"menuTree\">\n        <id column=\"menuid\" property=\"id\" javaType=\"java.lang.String\" />\n        <result column=\"menuname\" property=\"text\" javaType=\"java.lang.String\" />\n        <collection column=\"menuid\" property=\"children\" select=\"selectChild\"/>\n    </resultMap>\n\n<!-- 查找一级菜单 -->\n\t<!-- 先查询菜单根级目录 -->\n\t<!-- 这里的返回结果必须为resultMap，并且值为上面构建的resultMap的id的值 -->\n\t<select id=\"selectMenuList\" resultMap=\"menuTree\">\n\t\tselect * from menu where menuid='0'\n\t</select>\n<!-- 查询二级菜单 -->\n\t<select id=\"selectChild\" resultMap=\"menuTree\">\n\t\tselect * from menu where pid = #{menuid}\n\t</select>\n\t\n\t<!-- 查询所有菜单的id、name -->\n\t<select id=\"selectMenuIdName\" resultType=\"menu\">\n\t\tSELECT menuid,menuname FROM menu where pid = #{pid} \n\t</select>\n\t\n\t<!-- 查询所有菜单的所有属性 -->\n\t<select id=\"selectMenu\" resultType=\"menu\">\n\t\tSELECT menuid,menuname,url,icon,pid FROM menu where pid = #{pid} \n\t</select>\n\t\n\t<!-- 根据userid加载对应菜单 -->\n\t<select id=\"selectMenuByUserid\" resultType=\"menu\">\n\t\tSELECT \n\t\t\tDISTINCT menu.menuid,menu.menuname,menu.url,menu.icon,menu.pid\n\t\tFROM \n\t\t\tuser_role,\n\t\t\trole,\n\t\t\trole_menu,\n\t\t\tmenu  \n\t\tWHERE \n\t\t\tuser_role.roleuuid = role.uuid  \n\t\t\tAND role.uuid = role_menu.roleuuid  \n\t\t\tAND role_menu.menuuuid = menu.menuid \n\t\t\tAND user_role.userid = #{userid}\n\t</select>\n<!-- 查询菜单结束 -->\n\n<!-- 根据id查询菜单 -->\n\t<select id=\"selectMenuById\" parameterType=\"java.lang.String\" resultType=\"menu\">\n\t\tselect * from menu where menuid = #{menuid}\n\t</select>\n<!-- 插入数据 -->\n\t<insert id=\"insertMenu\" parameterType=\"menu\">\n\t\tinsert into menu values(\n\t\t<if test='menuid != null and menuid != \"\"'>\n\t\t\t#{menuid}\n\t\t</if>\n\t\t<if test='menuid == null or menuid == \"\"'>\n\t\t\tnull\n\t\t</if>\n\t\t<if test='menuname != null and menuname != \"\"'>\n\t\t\t,#{menuname}\n\t\t</if>\n\t\t<if test='menuname == null or menuname == \"\"'>\n\t\t\t,null\n\t\t</if>\n\t\t<if test='url != null and url != \"\" '>\n\t\t\t,#{url}\n\t\t</if>\n\t\t<if test='url == null or url == \"\"'>\n\t\t\t,null\n\t\t</if>\n\t\t<if test='icon != null and icon != \"\"'>\n\t\t\t,#{icon}\n\t\t</if>\n\t\t<if test='icon == null or icon == \"\"'>\n\t\t\t,null\n\t\t</if>\n\t\t<if test='pid != null and pid != \"\"'>\n\t\t\t,#{pid}\n\t\t</if>\n\t\t<if test='pid == null or pid == \"\"'>\n\t\t\t,null\n\t\t</if>\n\t\t<if test='is_parent != null'>\n\t\t\t,#{is_parent}\n\t\t</if>\n\t\t<if test='is_parent == null'>\n\t\t\t,null\n\t\t</if>\n\t\t);\n\t</insert>\n<!-- \t根据id删除数据-->\n\t<update id=\"deleteMenuById\">\n\t\tdelete from menu where menuid = #{0}\n\t</update>\n<!-- \t根据id修改数据 -->\n\t<update id=\"updateMenuById\" parameterType=\"menu\">\n\t\tupdate menu\n\t\t<trim prefix=\"set\" suffixOverrides=\",\" suffix=\"where menuid = #{menuid}\">\n\t\t\t<if test='menuname != null and menuname != \"\"'>\n\t\t\t\tmenuname = #{menuname},\n\t\t\t</if>\n\t\t\t<if test='url != null and url != \"\" '>\n\t\t\t\turl = #{url},\n\t\t\t</if>\n\t\t\t<if test='icon != null and icon != \"\"'>\n\t\t\t\ticon = #{icon},\n\t\t\t</if>\n\t\t\t<if test='pid != null and pid != \"\"'>\n\t\t\t\tpid = #{pid},\n\t\t\t</if>\n\t\t\t<if test='is_parent != null'>\n\t\t\t\tis_parent = #{is_parent}\n\t\t\t</if>\n\t\t</trim>\n\t</update>\n</mapper>"
  },
  {
    "path": "src/main/java/cn/lastwhisper/modular/mapper/RoleMapper.java",
    "content": "package cn.lastwhisper.modular.mapper;\n\nimport java.util.List;\n\nimport org.apache.ibatis.annotations.Param;\n\nimport cn.lastwhisper.modular.pojo.Role;\n\n/**\n * @ClassName: RoleMapper\n * @Description:TODO(这里用一句话描述这个类的作用)\n * @author: 最后的轻语_dd43\n * @date: 2019年4月6日\n */\npublic interface RoleMapper {\n\t/**\n\t * \n\t * @Title: selectRoleByPage\n\t * @Description: 根据条件查询所有角色\n\t * @param role\n\t * @return List<Role>\n\t * @author 最后的轻语_dd43\n\t * @date 2019年2月14日下午7:12:56\n\t */\n\tpublic List<Role> selectRolelistByPage(Role role);\n\n\t/**\n\t * \n\t * @Title: selectAllRole\n\t * @Description: 查询所有角色\n\t * @param role\n\t * @return List<Role>\n\t * @author 最后的轻语_dd43\n\t * @date 2019年2月16日下午12:28:09\n\t */\n\tpublic List<Role> selectRoleList();\n\t/**\n\t * \n\t * @Title: selectRoleName   \n\t * @Description: 查询角色，自动补全   \n\t * @param name\n\t * @return\n\t */\n\tpublic List<Role> selectRoleName(@Param(\"name\")String name);\n\n\t/**\n\t * \n\t * @Title: selectRoleMenuidByRoleid\n\t * @Description: 根据角色id获取对应的权限菜单id\n\t * @param roleuuid\n\t * @return List<Integer>\n\t * @author 最后的轻语_dd43\n\t * @date 2019年2月16日下午4:35:08\n\t */\n\tpublic List<String> selectRoleMenuidByRoleid(@Param(\"roleuuid\") Integer roleuuid);\n\n\t/**\n\t * \n\t * @Title: selectUseridByRoleuuid\n\t * @Description: 根据角色id获取对应的用户id\n\t * @param roleuuid\n\t * @return List<Integer>\n\t * @author 最后的轻语_dd43\n\t * @date 2019年2月17日上午11:18:02\n\t */\n\tpublic List<Integer> selectUseridByRoleuuid(@Param(\"roleuuid\") Integer roleuuid);\n\n\t/**\n\t * \n\t * @Title: updateRole\n\t * @Description: 更新角色信息\n\t * @param role\n\t * @return Integer\n\t * @author 最后的轻语_dd43\n\t * @date 2019年2月14日下午8:22:57\n\t */\n\tpublic Integer updateRole(Role role);\n\n\t/**\n\t * \n\t * @Title: insertRole\n\t * @Description: 添加角色\n\t * @param role\n\t * @return Integer\n\t * @author 最后的轻语_dd43\n\t * @date 2019年2月15日上午11:50:36\n\t */\n\tpublic Integer insertRole(Role role);\n\t\n\t/**\n\t * \n\t * @Title: insertRolemenu\n\t * @Description: 新增角色权限菜单关系\n\t * @param menuuuid\n\t * @param roleuuid void\n\t * @author 最后的轻语_dd43\n\t * @date 2019年2月16日下午8:07:02\n\t */\n\tpublic void insertRolemenu(@Param(\"menuuuid\") String menuuuid, @Param(\"roleuuid\") Integer roleuuid);\n\t\n\t/**\n\t * \n\t * @Title: deleteRoleByid   \n\t * @Description: 根据id删除对应角色\n\t * @param uuid\n\t * @return\n\t */\n\tpublic Integer deleteRoleById(@Param(\"uuid\") Integer uuid);\n\t\n\t/**\n\t * \n\t * @Title: deleteMenuidByRoleid\n\t * @Description: 根据roleuuid删除拥有的角色信息\n\t * @param roleuuid void\n\t * @author 最后的轻语_dd43\n\t * @date 2019年2月16日下午8:05:53\n\t */\n\tpublic void deleteMenuidByRoleid(@Param(\"roleuuid\") Integer roleuuid);\n\n}\n"
  },
  {
    "path": "src/main/java/cn/lastwhisper/modular/mapper/RoleMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper\nPUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\"\n\"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"cn.lastwhisper.modular.mapper.RoleMapper\">\n\t<!-- 查询 -->\n\t<!-- 查询所有角色role，使用name模糊查询、enabl精准查询 -->\n\t<select id=\"selectRolelistByPage\" parameterType=\"role\"\n\t\tresultType=\"role\">\n\t\tselect uuid,name from role\n\t\t<if test='name!=null'>\n\t\t\twhere\n\t\t\t<if test='name!=null'>\n\t\t\t\tname LIKE CONCAT('%',#{name},'%' )\n\t\t\t</if>\n\t\t</if>\n\t</select>\n\t<!-- 查询该角色id（roleuuid）下的菜单id（menuuid） -->\n\t<select id=\"selectRoleMenuidByRoleid\" resultType=\"string\">\n\t\tselect\n\t\trole_menu.menuuuid from role_menu WHERE\n\t\trole_menu.roleuuid=#{roleuuid}\n\t</select>\n\t<!-- 查询所有角色的uuid、name -->\n\t<select id=\"selectRoleList\" resultType=\"role\">\n\t\tSELECT uuid,name from role\n\t</select>\n\t<select id=\"selectUseridByRoleuuid\" resultType=\"int\">\n\t\tSELECT userid\n\t\tFROM user_role WHERE roleuuid = #{roleuuid}\n\t</select>\n\t\n\t<!-- 根据角色模糊查询角色 自动补全 -->\n\t<select id=\"selectRoleName\"\n\t\tparameterType=\"java.lang.String\" resultType=\"role\">\n\t\tselect name from role\n\t\twhere\n\t\tname like CONCAT('%',#{name},'%' )\n\t</select>\n\t<!-- 查询结束 -->\n\n\t<!-- 新增开始 -->\n\t\n\t<!-- 新增角色 -->\n\t<insert id=\"insertRole\" parameterType=\"role\">\n\t\tinsert into role VALUES(0,#{name})\n\t</insert>\n\t<!-- 新增角色权限菜单关系 -->\n\t<insert id=\"insertRolemenu\">\n\t\tINSERT INTO role_menu VALUES(#{menuuuid},#{roleuuid})\n\t</insert>\n\t\n\t<!-- 新增结束 -->\n\t<!-- 更新开始 -->\n\t<!-- 根据uuid更新角色 -->\n\t<update id=\"updateRole\" parameterType=\"role\" >\n\t\tUPDATE role\n\t\tSET NAME = #{name}\n\t\tWHERE\n\t\tuuid = #{uuid}\n\t</update>\n\t<!-- 更新结束 -->\n\n\t<!-- 删除开始 -->\n\t\n\t<delete id=\"deleteRoleById\">\n\t\tdelete from role where uuid = #{uuid}\n\t</delete>\n\t\n\t<!-- 根据roleuuid删除拥有的角色信息 -->\n\t<delete id=\"deleteMenuidByRoleid\">\n\t\tdelete from role_menu where roleuuid = #{roleuuid}\n\t</delete>\n\t<!-- 删除结束 -->\n</mapper>"
  },
  {
    "path": "src/main/java/cn/lastwhisper/modular/mapper/UserMapper.java",
    "content": "package cn.lastwhisper.modular.mapper;\n\nimport java.util.List;\n\nimport org.apache.ibatis.annotations.Param;\n\nimport cn.lastwhisper.modular.pojo.Role;\nimport cn.lastwhisper.modular.pojo.User;\n/**\n * \n * @ClassName:  UserMapper   \n * @Description:mybatis的接口，用于操作用户相关表  \n * @author:     最后的轻语_dd43\n * @date:       2019年4月5日\n */\npublic interface UserMapper {\n\t/**\n\t * \n\t * @Title: selectUserBycodeAndpwd   \n\t * @Description: 根据user_code和user_pwd查询user表\n\t * @param user_code 账号\n\t * @param user_pwd 密码\n\t * @return\n\t */\n\tpublic User selectUserBycodeAndpwd(@Param(\"user_code\") String user_code,\n\t\t\t@Param(\"user_pwd\") String user_pwd);\n\t/**\n\t * \n\t * @Title: selectUserList   \n\t * @Description: 查询所有用户信息   \n\t * @param user 查询条件\n\t * @return\n\t */\n\tpublic List<User> selectUserlistByPage(User user);\n\t/**\n\t * \n\t * @Title: selectUserName   \n\t * @Description: 查询用户姓名，自动补全\n\t * @param user_name\n\t * @return\n\t */\n\tpublic List<User> selectUserName(@Param(\"user_name\")String user_name);\n\t\n\t/**\n\t * \n\t * @Title: selectUserRole\n\t * @Description: 根据userid获取用户对应的角色,例如user_id=221\n\t * @return List<Role>\n\t * @author gj\n\t * @date 2019年2月16日下午2:50:20\n\t */\n\tpublic List<Role> selectUserRole(@Param(\"user_id\") Integer user_id);\n\t/**\n\t * \n\t * @Title: selectUserByUserCode   \n\t * @Description: 证据用户账号查询对应用户\n\t * @author: 最后的轻语_dd43    \n\t * @param user_code 用户账号\n\t * @return\n\t */\n\tpublic List<User> selectUserByUserCode(String user_code);\n\t\n\t/**\n\t * \n\t * @Title: insertUser   \n\t * @Description: 添加用户\n\t * @param user 用户\n\t * @return\n\t */\n\tpublic Integer insertUser(User user);\n\t\n\t/**\n\t * \n\t* @Title: addUserRole \n\t* @Description: 给用户添加角色 \n\t* @param user_id\n\t* @param roleuuid\n\t* @return int\n\t* @author gj\n\t* @date 2019年2月16日下午3:53:14\n\t */\n\tpublic void insertUserRole(@Param(\"user_id\") Integer user_id,@Param(\"roleuuid\") Integer roleuuid);\n\t/**\n\t * \n\t * @Title: updateUser   \n\t * @Description: 更新用户信息\n\t * @param user 用户信息\n\t * @return\n\t */\n\tpublic Integer updateUser(User user);\n\t\n\t/**\n\t * \n\t * @Title: updatePwd   \n\t * @Description: 更新密码\n\t * @author: 最后的轻语_dd43    \n\t * @return\n\t */\n\tpublic Integer updatePwdById(@Param(\"user_id\") Integer user_id,@Param(\"user_pwd\") String user_pwd);\n\t/**\n\t * \n\t * @Title: updateUser   \n\t * @Description: 更新用户信息根据用户账号\n\t * @param user 用户账号\n\t * @return\n\t */\n\tpublic Integer updateUserByUserCode(User user);\n\t/**\n\t * \n\t * @Title: deleteUserById   \n\t * @Description: 根据主键删除用户信息 \n\t * @param user_id 主键\n\t * @return\n\t */\n\tpublic Integer deleteUserById(@Param(\"user_id\") Integer user_id);\n\t\n\t/**\n\t * \n\t* @Title: deleteUserRole \n\t* @Description: 删除用户关联的角色id\n\t* @param user_id\n\t* @return int\n\t* @author gj\n\t* @date 2019年2月16日下午3:51:24\n\t */\n\tpublic void deleteUserRole(@Param(\"user_id\") Integer user_id);\n\n}\n"
  },
  {
    "path": "src/main/java/cn/lastwhisper/modular/mapper/UserMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper\nPUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\"\n\"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"cn.lastwhisper.modular.mapper.UserMapper\">\n\t<!-- 根据user_code和user_pwd查询user表 -->\n\t<select id=\"selectUserBycodeAndpwd\"\n\t\tparameterType=\"java.lang.String\" resultType=\"user\">\n\t\tselect * from user\n\t\twhere\n\t\tuser_code=#{user_code} and\n\t\tuser_pwd=#{user_pwd}\n\t</select>\n\n\t<select id=\"selectUserlistByPage\" parameterType=\"user\"\n\t\tresultType=\"user\">\n\t\tSELECT\n\t\t*\n\t\tFROM\n\t\tuser\n\t\t<if test=\"user_name!=null\">\n\t\t\twhere\n\t\t\tuser_name like '%${user_name}%'\n\t\t</if>\n\t</select>\n\n\t<!-- 根据用户名模糊查询用户 自动补全 -->\n\t<select id=\"selectUserName\" parameterType=\"java.lang.String\"\n\t\tresultType=\"user\">\n\t\tselect user_name from user\n\t\twhere\n\t\tuser_name like concat('%', #{user_name}, '%') \n\t</select>\n\t<!-- 查询用户对应的角色id -->\n\t<select id=\"selectUserRole\" resultType=\"role\">\n\t\tselect uuid from\n\t\tuser_role,role where user_role.userid=#{user_id} and\n\t\tuser_role.roleuuid = role.uuid;\n\t</select>\n\t<!-- 查询账号对应的用户 -->\n\t<select id=\"selectUserByUserCode\"\n\t\tparameterType=\"java.lang.String\" resultType=\"user\">\n\t\tselect\n\t\tuser_code,user_name,user_birthday from user\n\t\twhere\n\t\tuser_code =\n\t\t#{user_code}\n\t</select>\n\n\t<!-- 添加用户 -->\n\t<insert id=\"insertUser\" parameterType=\"user\">\n\t\tinsert into user\n\t\tvalues\n\t\t(0\n\t\t<if test='user_code!=null'>\n\t\t\t,#{user_code}\n\t\t</if>\n\t\t<if test='user_code==null'>\n\t\t\t,null\n\t\t</if>\n\t\t<if test='user_name!=null'>\n\t\t\t,#{user_name}\n\t\t</if>\n\t\t<if test='user_name==null'>\n\t\t\t,null\n\t\t</if>\n\t\t<if test='user_pwd!=null'>\n\t\t\t,#{user_pwd}\n\t\t</if>\n\t\t<if test='user_pwd==null'>\n\t\t\t,null\n\t\t</if>\n\t\t<if test='user_birthday!=null'>\n\t\t\t,#{user_birthday}\n\t\t</if>\n\t\t<if test='user_birthday==null'>\n\t\t\t,null\n\t\t</if>\n\t\t);\n\t</insert>\n\t<!-- 给用户添加对应角色信息 -->\n\t<insert id=\"insertUserRole\">\n\t\tinsert into user_role VALUES(#{user_id},#{roleuuid})\n\t</insert>\n\n\t<!-- 更新用户信息根据与用户编号 -->\n\t<update id=\"updateUser\" parameterType=\"user\">\n\t\tupdate user set\n\t\t<if test='user_code!=null'>\n\t\t\tuser_code = #{user_code}\n\t\t</if>\n\t\t<if test='user_name!=null'>\n\t\t\t,user_name = #{user_name}\n\t\t</if>\n\t\t<if test='user_pwd!=null'>\n\t\t\t,user_pwd = #{user_pwd}\n\t\t</if>\n\t\t<if test='user_birthday!=null'>\n\t\t\t,user_birthday = #{user_birthday}\n\t\t</if>\n\t\twhere\n\t\t<if test='user_id!=null'>\n\t\t\tuser_id = #{user_id}\n\t\t</if>\n\t</update>\n\n\t<!-- 更新用户密码 -->\n\t<update id=\"updatePwdById\" parameterType=\"user\">\n\t\tupdate user set\n\t\t<if test='user_pwd!=null'>\n\t\t\tuser_pwd = #{user_pwd}\n\t\t</if>\n\t\twhere\n\t\t<if test='user_id!=null'>\n\t\t\tuser_id = #{user_id}\n\t\t</if>\n\t</update>\n\n\t<!-- 更新用户信息根据账号 -->\n\t<update id=\"updateUserByUserCode\" parameterType=\"user\">\n\t\tupdate user set\n\t\t<if test='user_name!=null'>\n\t\t\tuser_name = #{user_name}\n\t\t</if>\n\t\t<if test='user_pwd!=null'>\n\t\t\t,user_pwd = #{user_pwd}\n\t\t</if>\n\t\t<if test='user_birthday!=null'>\n\t\t\t,user_birthday = #{user_birthday}\n\t\t</if>\n\t\twhere\n\t\t<if test='user_code!=null'>\n\t\t\tuser_code = #{user_code}\n\t\t</if>\n\t</update>\n\n\t<!-- 根据主键删除用户 -->\n\t<delete id=\"deleteUserById\">\n\t\tdelete from user where\n\t\tuser_id=#{user_id}\n\t</delete>\n\t<!-- 根据用户id删除对应角色 -->\n\t<delete id=\"deleteUserRole\">\n\t\tdelete from user_role where userid = #{user_id}\n\t</delete>\n</mapper>"
  },
  {
    "path": "src/main/java/cn/lastwhisper/modular/pojo/Log.java",
    "content": "package cn.lastwhisper.modular.pojo;\n\nimport java.util.Date;\n\npublic class Log {\n    private Integer id;\n\n    private String operateor;\n\n    private String operatetype;\n\n    private Date operatedate;\n\n    private String operateresult;\n\n    private String ip;\n\n    public Integer getId() {\n        return id;\n    }\n\n    public void setId(Integer id) {\n        this.id = id;\n    }\n\n    public String getOperateor() {\n        return operateor;\n    }\n\n    public void setOperateor(String operateor) {\n        this.operateor = operateor == null ? null : operateor.trim();\n    }\n\n    public String getOperatetype() {\n        return operatetype;\n    }\n\n    public void setOperatetype(String operatetype) {\n        this.operatetype = operatetype == null ? null : operatetype.trim();\n    }\n\n    public Date getOperatedate() {\n        return operatedate;\n    }\n\n    public void setOperatedate(Date operatedate) {\n        this.operatedate = operatedate;\n    }\n\n    public String getOperateresult() {\n        return operateresult;\n    }\n\n    public void setOperateresult(String operateresult) {\n        this.operateresult = operateresult == null ? null : operateresult.trim();\n    }\n\n\tpublic String getIp() {\n\t\treturn ip;\n\t}\n\n\tpublic void setIp(String ip) {\n\t\tthis.ip = ip;\n\t}\n   \n}"
  },
  {
    "path": "src/main/java/cn/lastwhisper/modular/pojo/Menu.java",
    "content": "/**  \n * @Title:  Menu.java   \n * @Package cn.lastwhisper.pojo   \n * @Description: TODO(用一句话描述该文件做什么)\n * @author: 最后的轻语_dd43     \n * @date:   2019年4月6日 下午3:41:53   \n * @version V1.0 \n */\npackage cn.lastwhisper.modular.pojo;\n\nimport java.util.LinkedList;\nimport java.util.List;\n\n/**\n * @ClassName: Menu\n * @Description:TODO(这里用一句话描述这个类的作用)\n * @author: 最后的轻语_dd43\n * @date: 2019年4月6日\n */\npublic class Menu {\n\tprivate String menuid;// 编号\n\tprivate String menuname;// 名称\n\tprivate String url;// 对应URL\n\tprivate String icon;// 图标样式\n\tprivate String pid;// 上一级菜单编号\n\tprivate Integer is_parent;// 该菜单是否为父菜单，1为true，0为false\n\tprivate List<Menu> menus = new LinkedList<Menu>();\n\t/**  \n\t * @Title:  getMenuid <BR>  \n\t * @Description: please write your description <BR>  \n\t * @return: String <BR>  \n\t */\n\tpublic String getMenuid() {\n\t\treturn menuid;\n\t}\n\t/**\n\t * @param menuid the menuid to set\n\t */\n\tpublic void setMenuid(String menuid) {\n\t\tthis.menuid = menuid;\n\t}\n\t/**  \n\t * @Title:  getMenuname <BR>  \n\t * @Description: please write your description <BR>  \n\t * @return: String <BR>  \n\t */\n\tpublic String getMenuname() {\n\t\treturn menuname;\n\t}\n\t/**\n\t * @param menuname the menuname to set\n\t */\n\tpublic void setMenuname(String menuname) {\n\t\tthis.menuname = menuname;\n\t}\n\t/**  \n\t * @Title:  getUrl <BR>  \n\t * @Description: please write your description <BR>  \n\t * @return: String <BR>  \n\t */\n\tpublic String getUrl() {\n\t\treturn url;\n\t}\n\t/**\n\t * @param url the url to set\n\t */\n\tpublic void setUrl(String url) {\n\t\tthis.url = url;\n\t}\n\t/**  \n\t * @Title:  getIcon <BR>  \n\t * @Description: please write your description <BR>  \n\t * @return: String <BR>  \n\t */\n\tpublic String getIcon() {\n\t\treturn icon;\n\t}\n\t/**\n\t * @param icon the icon to set\n\t */\n\tpublic void setIcon(String icon) {\n\t\tthis.icon = icon;\n\t}\n\t/**  \n\t * @Title:  getPid <BR>  \n\t * @Description: please write your description <BR>  \n\t * @return: String <BR>  \n\t */\n\tpublic String getPid() {\n\t\treturn pid;\n\t}\n\t/**\n\t * @param pid the pid to set\n\t */\n\tpublic void setPid(String pid) {\n\t\tthis.pid = pid;\n\t}\n\t/**  \n\t * @Title:  getIs_parent <BR>  \n\t * @Description: please write your description <BR>  \n\t * @return: Integer <BR>  \n\t */\n\tpublic Integer getIs_parent() {\n\t\treturn is_parent;\n\t}\n\t/**\n\t * @param is_parent the is_parent to set\n\t */\n\tpublic void setIs_parent(Integer is_parent) {\n\t\tthis.is_parent = is_parent;\n\t}\n\t/**  \n\t * @Title:  getMenus <BR>  \n\t * @Description: please write your description <BR>  \n\t * @return: List<Menu> <BR>  \n\t */\n\tpublic List<Menu> getMenus() {\n\t\treturn menus;\n\t}\n\t/**\n\t * @param menus the menus to set\n\t */\n\tpublic void setMenus(List<Menu> menus) {\n\t\tthis.menus = menus;\n\t}\n\n}\n"
  },
  {
    "path": "src/main/java/cn/lastwhisper/modular/pojo/Role.java",
    "content": "/**  \n * @Title:  Role.java   \n * @Package cn.lastwhisper.pojo   \n * @Description: TODO(用一句话描述该文件做什么)\n * @author: 最后的轻语_dd43     \n * @date:   2019年4月6日 下午2:34:44   \n * @version V1.0 \n */\npackage cn.lastwhisper.modular.pojo;\n\n/**   \n * @ClassName:  Role   \n * @Description:角色实体类\n * @author:     最后的轻语_dd43\n * @date:       2019年4月6日\n */\npublic class Role {\n\t//编号\n\tprivate Integer uuid;\n\t//名称\n\tprivate String name;\n\t/**  \n\t * @Title:  getUuid <BR>  \n\t * @Description: please write your description <BR>  \n\t * @return: Integer <BR>  \n\t */\n\tpublic Integer getUuid() {\n\t\treturn uuid;\n\t}\n\t/**\n\t * @param uuid the uuid to set\n\t */\n\tpublic void setUuid(Integer uuid) {\n\t\tthis.uuid = uuid;\n\t}\n\t/**  \n\t * @Title:  getName <BR>  \n\t * @Description: please write your description <BR>  \n\t * @return: String <BR>  \n\t */\n\tpublic String getName() {\n\t\treturn name;\n\t}\n\t/**\n\t * @param name the name to set\n\t */\n\tpublic void setName(String name) {\n\t\tthis.name = name;\n\t}\n\t\n}\n"
  },
  {
    "path": "src/main/java/cn/lastwhisper/modular/pojo/User.java",
    "content": "\npackage cn.lastwhisper.modular.pojo;\n\nimport java.io.Serializable;\nimport java.util.Date;\n\nimport org.springframework.format.annotation.DateTimeFormat;\n\nimport com.fasterxml.jackson.annotation.JsonFormat;\nimport com.fasterxml.jackson.annotation.JsonIgnore;\n\n/**\n * \n * @ClassName:  User   \n * @Description:用户实体类\n * @author:     最后的轻语_dd43\n * @date:       2019年4月5日\n */\npublic class User implements Serializable{\n\tprivate static final long serialVersionUID = 1L;\n\tprivate Integer user_id;\n\tprivate String user_name;\n\n\tprivate String user_code;\n\t//不转换json字符串\n\t@JsonIgnore\n\tprivate String user_pwd;\n\t@DateTimeFormat(pattern = \"yyyy-MM-dd\")\n\tprivate Date user_birthday;\n\tpublic Integer getUser_id() {\n\t\treturn user_id;\n\t}\n\tpublic void setUser_id(Integer user_id) {\n\t\tthis.user_id = user_id;\n\t}\n\tpublic String getUser_name() {\n\t\treturn user_name;\n\t}\n\tpublic void setUser_name(String user_name) {\n\t\tthis.user_name = user_name;\n\t}\n\tpublic String getUser_code() {\n\t\treturn user_code;\n\t}\n\tpublic void setUser_code(String user_code) {\n\t\tthis.user_code = user_code;\n\t}\n\tpublic String getUser_pwd() {\n\t\treturn user_pwd;\n\t}\n\tpublic void setUser_pwd(String user_pwd) {\n\t\tthis.user_pwd = user_pwd;\n\t}\n\t/**  \n\t * @Title:  getUser_birthday <BR>  \n\t * @Description: please write your description <BR>  \n\t * @return: Date <BR>  \n\t */\n\t@DateTimeFormat(pattern = \"yyyy-MM-dd\")\n\t@JsonFormat(pattern = \"yyyy-MM-dd\")\n\tpublic Date getUser_birthday() {\n\t\treturn user_birthday;\n\t}\n\t/**\n\t * @param user_birthday the user_birthday to set\n\t */\n\t@DateTimeFormat(pattern = \"yyyy-MM-dd\")\n\t@JsonFormat(pattern = \"yyyy-MM-dd\")\n\tpublic void setUser_birthday(Date user_birthday) {\n\t\tthis.user_birthday = user_birthday;\n\t}\n\t\n}\n"
  },
  {
    "path": "src/main/java/cn/lastwhisper/modular/service/LogService.java",
    "content": "package cn.lastwhisper.modular.service;\n\nimport java.sql.SQLException;\nimport java.util.List;\n\nimport cn.lastwhisper.modular.vo.EasyUIDataGridResult;\nimport cn.lastwhisper.modular.pojo.Log;\n\n/**\n * 日志Service\n * \n * @author lastwhisper\n *\n */\npublic interface LogService {\n    /**\n     * 增加日志\n     * @param log\n     * @return\n     * @throws SQLException\n     */\n    public boolean addLog(Log log) throws SQLException;\n\n\t/**   \n\t * @Title: findLoglistByPage   \n\t * @Description: 查询日志\n\t * @author: 最后的轻语_dd43    \n\t * @param page\n\t * @param rows\n\t * @param log\n\t * @return      \n\t */\n\tpublic EasyUIDataGridResult findLoglistByPage(Integer page, Integer rows, Log log);\n\n\t/**   \n\t * @Title: findLogOperateor   \n\t * @Description: 模糊查询用户名\n\t * @author: 最后的轻语_dd43    \n\t * @param q\n\t * @return      \n\t */\n\tpublic List<Log> findLogOperateor(String q);\n}"
  },
  {
    "path": "src/main/java/cn/lastwhisper/modular/service/MenuService.java",
    "content": "/**  \n * @Title:  MenuService.java   \n * @Package cn.lastwhisper.service   \n * @Description: TODO(用一句话描述该文件做什么)\n * @author: 最后的轻语_dd43     \n * @date:   2019年4月6日 下午5:10:15   \n * @version V1.0 \n */\npackage cn.lastwhisper.modular.service;\n\nimport java.util.List;\n\nimport cn.lastwhisper.modular.vo.GlobalResult;\nimport cn.lastwhisper.modular.vo.Tree;\nimport cn.lastwhisper.modular.pojo.Menu;\n\n/**   \n * @ClassName:  MenuService   \n * @Description:TODO(这里用一句话描述这个类的作用)   \n * @author:     最后的轻语_dd43\n * @date:       2019年4月6日\n */\npublic interface MenuService {\n\t\n\t/**\n\t * \n\t * @Title: findMenuList   \n\t * @Description: 查找所有数据\n\t * @author: 最后的轻语_dd43    \n\t * @return\n\t */\n\tList<Tree> findMenuList();\n\n\t/**\n\t * \n\t * @Title: findMenuById   \n\t * @Description: 根据菜单id查找菜单，显示菜单详情\n\t * @author: 最后的轻语_dd43    \n\t * @param menuid\n\t * @return\n\t */\n\tList<Menu> findMenuById(String menuid);\n\n\t/**\n\t * \n\t * @Title: addMenu   \n\t * @Description: 添加数据\n\t * @author: 最后的轻语_dd43    \n\t * @param Menu\n\t * @return\n\t */\n\tGlobalResult addMenu(Menu Menu);\n\t\n\t/**\n\t * \n\t * @Title: deleteMenuById   \n\t * @Description: 根据id删除数据\n\t * @author: 最后的轻语_dd43    \n\t * @param menuid\n\t * @return\n\t */\n\tGlobalResult deleteMenuById(String menuid);\n\n\t/**\n\t * \n\t * @Title: updateMenuById   \n\t * @Description: 根据id修改数据\n\t * @author: 最后的轻语_dd43    \n\t * @param Menu\n\t * @return\n\t */\n\tGlobalResult updateMenuById(Menu Menu);\n\t/**\n\t * \n\t* @Title: findMenuByUserid \n\t* @Description: 根据userid加载对应菜单 \n\t* @param userid\n\t* @return Menu\n\t* @author gj\n\t* @date 2019年2月16日下午8:43:39\n\t */\n\tMenu findMenuByUserid(Integer userid);\n\t/**\n\t * \n\t* @Title: findMenuListByUserid \n\t* @Description: 根据userid加载对应菜单无序列表 \n\t* @param userid\n\t* @return List<Menu>\n\t* @author gj\n\t* @date 2019年2月17日下午8:55:10\n\t */\n\tList<Menu> findMenuListByUserid(Integer userid);\n\n}\n"
  },
  {
    "path": "src/main/java/cn/lastwhisper/modular/service/RoleService.java",
    "content": "/**  \n * @Title:  RoleService.java   \n * @Package cn.lastwhisper.service   \n * @Description: TODO(用一句话描述该文件做什么)\n * @author:     最后的轻语_dd43   \n * @date:   2019年4月6日 下午2:45:32   \n * @version V1.0 \n */\npackage cn.lastwhisper.modular.service;\n\nimport java.util.List;\n\nimport cn.lastwhisper.modular.vo.EasyUIDataGridResult;\nimport cn.lastwhisper.modular.vo.EasyUIOptionalTreeNode;\nimport cn.lastwhisper.modular.vo.GlobalResult;\nimport cn.lastwhisper.modular.pojo.Role;\n\n\n/**\n * \n * @ClassName: RoleService \n * @Description: 处理角色相关业务\n * @author:     最后的轻语_dd43 \n * @date: 2019年2月14日 下午6:31:37\n */\npublic interface RoleService {\n\t/**\n\t * \n\t* @Title: findRoleByPage \n\t* @Description: 根据查询条件所有角色 \n\t* @param page\n\t* @param rows\n\t* @param role\n\t* @return EasyUIDataGridResult\n\t* @author 最后的轻语_dd43 \n\t* @date 2019年2月14日下午7:08:40\n\t */\n\tpublic EasyUIDataGridResult findRolelistByPage(Integer page, Integer rows,Role role);\n\t/**\n\t * \n\t* @Title: findRoleByEnble \n\t* @Description: 查询所有可用的角色 \n\t* @return EasyUIDataGridResult\n\t* @author 最后的轻语_dd43 \n\t* @date 2019年2月16日下午12:34:06\n\t */\n\tpublic EasyUIDataGridResult findRoleList();\n\t\n\t/**\n\t * \n\t * @Title: findUserName   \n\t * @Description: like查询角色名\n\t * @param q 角色名\n\t * @return\n\t */\n\tpublic List<Role> findRoleName(String q);\n\t\n\t/**\n\t * \n\t* @Title: updateRole \n\t* @Description: 更新角色的名称或者状态 \n\t* @param role\n\t* @return ManagerResult\n\t* @author 最后的轻语_dd43 \n\t* @date 2019年2月14日下午8:18:37\n\t */\n\tpublic GlobalResult updateRole(Role role);\n\t/**\n\t * \n\t* @Title: addRole \n\t* @Description: 添加角色 \n\t* @param role\n\t* @return ManagerResult\n\t* @author 最后的轻语_dd43 \n\t* @date 2019年2月14日下午10:11:23\n\t */\n\tpublic GlobalResult addRole(Role role);\n\t/**\n\t * \n\t * @Title: deleteRoleById   \n\t * @Description: 根据uuid删除角色\n\t * @param uuid\n\t * @return\n\t */\n\tpublic GlobalResult deleteRoleById(Integer uuid);\n\t\n\t/**\n\t * \n\t* @Title: findRoleMenu \n\t* @Description: 获取角色菜单权限 \n\t\t-- 1.根据角色id获取对应的权限菜单id,比如角色id roleuuid=1\n\t\tselect role_menu.menuuuid from role,role_menu WHERE role_menu.roleuuid=1;\n\t\t-- 2.获取所有权限菜单(menuid,menuname)\n\t\tSELECT menuid,menuname FROM menu;\n\t* @param roleuuid\n\t* @return List<EasyUIOptionalTreeNode>\n\t* @author 最后的轻语_dd43 \n\t* @date 2019年2月16日下午4:40:34\n\t */\n\tpublic List<EasyUIOptionalTreeNode> findRoleMenuByRoleid(Integer roleuuid);\n\t/**\n\t * \n\t* @Title: updateRoleMenu\n\t* @Description: 更新角色权限菜单 \n\t* @param roleuuid\n\t* @param checkedIds\n\t* @return ManagerResult\n\t* @author 最后的轻语_dd43 \n\t* @date 2019年2月16日下午8:10:20\n\t */\n\tpublic GlobalResult updateRoleMenu(Integer roleuuid, String checkedIds);\n}\n"
  },
  {
    "path": "src/main/java/cn/lastwhisper/modular/service/UserService.java",
    "content": "package cn.lastwhisper.modular.service;\n\nimport java.io.IOException;\nimport java.io.InputStream;\nimport java.io.OutputStream;\nimport java.util.List;\n\nimport cn.lastwhisper.modular.vo.EasyUIDataGridResult;\nimport cn.lastwhisper.modular.vo.EasyUIOptionalTreeNode;\nimport cn.lastwhisper.modular.vo.GlobalResult;\nimport cn.lastwhisper.modular.pojo.Role;\nimport cn.lastwhisper.modular.pojo.User;\n\n/**\n * \n * @ClassName:  UserService   \n * @Description:处理用户相关业务  \n * @author:     最后的轻语_dd43\n * @date:       2019年4月5日\n */\npublic interface UserService {\n\t/**\n\t * \n\t * @Title: findUserByCodeAndPwd   \n\t * @Description: 根据账号和密码查找用户\n\t * @param user_code 账号\n\t * @param user_pwd 密码\n\t * @return\n\t */\n\tpublic User findUserByCodeAndPwd(String user_code, String user_pwd);\n\t/**\n\t * \n\t * @Title: findUserList   \n\t * @Description: 查询用户分页信息  \n\t * @param page 当前页\n\t * @param rows 页面大小\n\t * @return\n\t */\n\tpublic EasyUIDataGridResult findUserlistByPage(User user,Integer page, Integer rows);\n\t/**\n\t * \n\t * @Title: findUserName   \n\t * @Description: like查询用户名\n\t * @param q 用户名\n\t * @return\n\t */\n\tpublic List<User> findUserName(String q);\n\t\n\t/**\n\t * @Title: findUserRole\n\t * @Description: 查询所有角色，并设置选中的用户角色为true \n\t * \t\t\t\t -- 1.获取用户对应的角色,例如user_id=221 select uuid\n\t *               from user_role,role where user_role.userid=221 and\n\t *               user_role.roleuuid = role.uuid and role.enble=1; \n\t *               -- 2.获取所有角色\n\t *               select uuid,name from role where role.enble=1; --\n\t *               -- 3.封装返回值将用户对应的角色设置为true,uuid、name\n\t * @param user_id\n\t * @return List<Tree>\n\t * @date 2019年2月16日下午2:56:10\n\t */\n\tList<EasyUIOptionalTreeNode> findUserRole(Integer user_id);\n\t/**\n\t * \n\t* @Title: findUserRoleByUserid \n\t* @Description: 根据用户id查询对应的角色  \n\t* @param user_id\n\t* @return List<Role>\n\t* @date 2019年2月21日下午12:08:37\n\t */\n\tList<Role> findUserRoleByUserid(Integer user_id);\n\t/**\n\t * \n\t * @Title: updateUserRole\n\t * @Description: 更新用户对应的角色\n\t * @param user_id\n\t * @param checkedIds\n\t * @return Integer\n\t * @date 2019年2月16日下午3:57:33\n\t */\n\tGlobalResult updateUserRole(Integer user_id, String checkedIds);\n\t\n\t/**\n\t * \n\t * @Title: addUser   \n\t * @Description: 添加用户\n\t * @param user 用户\n\t * @return\n\t */\n\tpublic GlobalResult addUser(User user);\n\t/**\n\t * \n\t * @Title: updateUser   \n\t * @Description: 更新用户信息\n\t * @param 用户信息\n\t * @return\n\t */\n\tpublic GlobalResult updateUser(User user);\n\t/**\n\t * \n\t * @Title: updatePwd   \n\t * @Description: 更新用户的密码\n\t * @author: 最后的轻语_dd43    \n\t * @param user 当前用户\n\t * @param oldPwd 旧密码\n\t * @param newPwd 新密码\n\t * @return\n\t */\n\tpublic GlobalResult updatePwd(User user,String oldPwd,String newPwd);\n\t/**\n\t * \n\t * @Title: deleteUser   \n\t * @Description: 删除用户   \n\t * @param userId\n\t * @return\n\t */\n\tpublic GlobalResult deleteUser(Integer user_id);\n\t\n\t/**\n\t * \n\t * @Title: export   \n\t * @Description: 导出excel\n\t * @author: 最后的轻语_dd43    \n\t * @param os\n\t * @param user\n\t */\n\tpublic void export(OutputStream os, User user);\n\t\n\t/**\n\t * \n\t * @Title: doImport   \n\t * @Description: 导入excel\n\t * @author: 最后的轻语_dd43    \n\t * @param is\n\t * @throws IOException\n\t */\n\tpublic void doImport(InputStream is) throws IOException;\n}\n"
  },
  {
    "path": "src/main/java/cn/lastwhisper/modular/service/impl/LogServiceImpl.java",
    "content": "package cn.lastwhisper.modular.service.impl;\n\nimport java.sql.SQLException;\nimport java.util.List;\n\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\nimport org.springframework.transaction.annotation.Isolation;\nimport org.springframework.transaction.annotation.Propagation;\nimport org.springframework.transaction.annotation.Transactional;\n\nimport com.github.pagehelper.PageHelper;\nimport com.github.pagehelper.PageInfo;\n\nimport cn.lastwhisper.modular.vo.EasyUIDataGridResult;\nimport cn.lastwhisper.modular.mapper.LogMapper;\nimport cn.lastwhisper.modular.pojo.Log;\nimport cn.lastwhisper.modular.service.LogService;\n\n/**\n * \n * @ClassName: LogServiceImpl\n * @Description: 日志管理\n * @author: 最后的轻语_dd43\n * @date: 2019年4月30日\n */\n@Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)\n@Service\npublic class LogServiceImpl implements LogService {\n\t@Autowired\n\tprivate LogMapper logMapper;\n\n\t@Override\n\tpublic boolean addLog(Log log) throws SQLException {\n\t\treturn logMapper.insertLog(log) > 0;\n\t}\n\n\t@Transactional(propagation = Propagation.NOT_SUPPORTED)\n\t@Override\n\tpublic EasyUIDataGridResult findLoglistByPage(Integer page, Integer rows, Log log) {\n\t\tPageHelper.startPage(page, rows);\n\t\tList<Log> list = logMapper.selectLoglistByPage(log);\n\t\tPageInfo<Log> pageInfo = new PageInfo<>(list);\n\t\tEasyUIDataGridResult result = new EasyUIDataGridResult();\n\t\tresult.setTotal((int) pageInfo.getTotal());\n\t\tresult.setRows(pageInfo.getList());\n\t\treturn result;\n\t}\n\n\t@Transactional(propagation = Propagation.NOT_SUPPORTED)\n\t@Override\n\tpublic List<Log> findLogOperateor(String q) {\n\t\treturn logMapper.selectLogOperateor(q);\n\t}\n\n}"
  },
  {
    "path": "src/main/java/cn/lastwhisper/modular/service/impl/MenuServiceImpl.java",
    "content": "\npackage cn.lastwhisper.modular.service.impl;\n\nimport cn.lastwhisper.modular.mapper.MenuMapper;\nimport cn.lastwhisper.modular.pojo.Menu;\nimport cn.lastwhisper.modular.service.MenuService;\nimport cn.lastwhisper.modular.vo.GlobalResult;\nimport cn.lastwhisper.modular.vo.Tree;\nimport com.alibaba.fastjson.JSON;\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\nimport org.springframework.transaction.annotation.Isolation;\nimport org.springframework.transaction.annotation.Propagation;\nimport org.springframework.transaction.annotation.Transactional;\nimport redis.clients.jedis.Jedis;\nimport redis.clients.jedis.JedisPool;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\n/**\n * @ClassName: MenuServiceImpl\n * @Description: 菜单相关的操作\n * @author: 最后的轻语_dd43\n * @date: 2019年4月6日\n */\n@Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)\n@Service\npublic class MenuServiceImpl implements MenuService {\n\n\tprivate static Logger logger = LoggerFactory.getLogger(MenuServiceImpl.class);\n\t\n\t@Autowired\n\tprivate MenuMapper menuMapper;\n\n\t@Autowired\n\tprivate JedisPool jedisPool;\n\n\t@Transactional(propagation = Propagation.NOT_SUPPORTED)\n\t@Override\n\tpublic List<Tree> findMenuList() {\n\t\treturn menuMapper.selectMenuList();\n\t}\n\n\t@Transactional(propagation = Propagation.NOT_SUPPORTED)\n\t@Override\n\tpublic List<Menu> findMenuById(String menuid) {\n\t\treturn menuMapper.selectMenuById(menuid);\n\t}\n\n\t@Override\n\tpublic GlobalResult addMenu(Menu menu) {\n\t\t// 设置默认添加的菜单的状态为使用中\n\t\tInteger insertCount = menuMapper.insertMenu(menu);\n\t\tif (insertCount != null && insertCount > 0) {\n\t\t\t// 更新标签为父标签\n\t\t\tMenu m = new Menu();\n\t\t\tm.setMenuid(menu.getPid());\n\t\t\tm.setIs_parent(1);\n\t\t\tif (200 == updateMenuById(m).getStatus()) {\n\t\t\t\tbatchDel();\n\t\t\t\treturn new GlobalResult(200, \"数据添加成功\", null);\n\t\t\t} else {\n\t\t\t\treturn new GlobalResult(400, \"数据添加失败\", null);\n\t\t\t}\n\t\t} else {\n\t\t\treturn new GlobalResult(400, \"数据添加失败\", null);\n\t\t}\n\t}\n\n\t/**\n\t * 根据id删除数据\n\t * \n\t * @author\n\t * @date 2019年2月15日下午9:51:50\n\t * @param menuid 主键\n\t * @return\n\t */\n\t@Override\n\tpublic GlobalResult deleteMenuById(String menuid) {\n\t\tInteger deleteCount = menuMapper.deleteMenuById(menuid);\n\t\tif (deleteCount != null && deleteCount > 0) {\n\t\t\tbatchDel();\n\t\t\treturn new GlobalResult(200, \"数据删除成功\", null);\n\t\t} else {\n\t\t\treturn new GlobalResult(400, \"数据删除失败\", null);\n\t\t}\n\t}\n\n\t/**\n\t * @author\n\t * @date 2019年2月15日下午9:51:50\n\t * @param menu\n\t * @return\n\t */\n\t@Override\n\tpublic GlobalResult updateMenuById(Menu menu) {\n\t\tInteger updateCount = menuMapper.updateMenuById(menu);\n\t\tif (updateCount != null && updateCount > 0) {\n\t\t\tbatchDel();\n\t\t\treturn new GlobalResult(200, \"数据修改成功\", null);\n\t\t} else {\n\t\t\treturn new GlobalResult(400, \"数据修改失败\", null);\n\t\t}\n\t}\n\n\t/**\n\t * 根据key前缀批量删除缓存\n\t * \n\t * @return\n\t */\n\tprivate void batchDel() {\n\t\ttry (Jedis jedis = jedisPool.getResource()) {\n\t\t\tjedis.flushAll();\n\t\t} catch (Exception ignored) {\n\t\t}\n\t}\n\n\t/**\n\t * \n\t * @Title: cloneMenu\n\t * @Description: 复制menu\n\t * @author: 最后的轻语_dd43\n\t * @param src\n\t * @return\n\t */\n\tprivate Menu cloneMenu(Menu src) {\n\t\tMenu menu = new Menu();\n\t\tmenu.setIcon(src.getIcon());\n\t\tmenu.setMenuid(src.getMenuid());\n\t\tmenu.setMenuname(src.getMenuname());\n\t\tmenu.setUrl(src.getUrl());\n\t\tmenu.setMenus(new ArrayList<Menu>());\n\t\treturn menu;\n\t}\n\n\t@Override\n\tpublic Menu findMenuByUserid(Integer userid) {\n\t\t// 从缓存中读取数据\n\t\tJedis jedis = jedisPool.getResource();\n\t\tMenu menu;\n\t\ttry {\n\t\t\tString easyuiMenusJson = jedis.get(\"menusEasyui_\" + userid);\n\t\t\tif (easyuiMenusJson == null) {\n\t\t\t\t// 获取根菜单\n\t\t\t\tList<Menu> root = menuMapper.selectMenu(\"-1\");\n\t\t\t\t// 用户下的菜单集合 找数据库\n\t\t\t\t//\t\t\tList<Menu> userMenus = menuMapper.selectMenuByUserid(userid);\n\t\t\t\t// 用户下的菜单集合 找缓存\n\t\t\t\tList<Menu> userMenus = findMenuListByUserid(userid);\n\t\t\t\t// 根菜单\n\t\t\t\tmenu = cloneMenu(root.get(0));\n\t\t\t\t// 暂存一级菜单\n\t\t\t\tMenu _m1 = null;\n\t\t\t\t// 暂存二级菜单\n\t\t\t\tMenu _m2 = null;\n\t\t\t\t// 获取全部的一级菜单\n\t\t\t\tList<Menu> parentMenus = menuMapper.selectMenu(\"0\");\n\t\t\t\t// 循环一级菜单\n\t\t\t\tfor (Menu m1 : parentMenus) {\n\t\t\t\t\t_m1 = cloneMenu(m1);\n\t\t\t\t\t// 获取当前一级菜单的所有二级菜单\n\t\t\t\t\tList<Menu> leafMenus = menuMapper.selectMenu(_m1.getMenuid());\n\t\t\t\t\t// 循环匹配二级菜单\n\t\t\t\t\tfor (Menu m2 : leafMenus) {\n\t\t\t\t\t\tfor (Menu userMenu : userMenus) {\n\t\t\t\t\t\t\tif (userMenu.getMenuid().equals(m2.getMenuid())) {\n\t\t\t\t\t\t\t\t// 将二级菜单加入一级菜单\n\t\t\t\t\t\t\t\t_m2 = cloneMenu(m2);\n\t\t\t\t\t\t\t\t_m1.getMenus().add(_m2);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// 有二级菜单我们才加进来\n\t\t\t\t\tif (_m1.getMenus().size() > 0) {\n\t\t\t\t\t\t// 把一级菜单加入到根菜单下\n\t\t\t\t\t\tmenu.getMenus().add(_m1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tlogger.debug(\"从数据库读取，设置缓存\");\n\t\t\t\t//\t\t\tSystem.out.println(\"从数据库读取，设置缓存\");\n\t\t\t\tjedis.set(\"menusEasyui_\" + userid, JSON.toJSONString(menu));\n\t\t\t} else {\n\t\t\t\tmenu = JSON.parseObject(easyuiMenusJson, Menu.class);\n\t\t\t\t//\t\t\tmenu = JSON.parseArray(easyuiMenusJson, Menu.class).get(0);\n\t\t\t\t//\t\t\tSystem.out.println(\"从缓存读取\");\n\t\t\t\tlogger.debug(\"从缓存读取\");\n\t\t\t} \n\t\t} finally {\n\t\t\tif(jedis!=null)jedis.close();\n\t\t}\n\t\treturn menu;\n\t}\n\n\t@Override\n\tpublic List<Menu> findMenuListByUserid(Integer userid) {\n\t\tJedis jedis = jedisPool.getResource();\n\t\tList<Menu> menuList;\n\t\ttry {\n\t\t\tString menuListJson = jedis.get(\"menusList_\" + userid);\n\t\t\tif (menuListJson == null) {\n\t\t\t\t// 1.从数据库中查出来，放入缓存中\n\t\t\t\tmenuList = menuMapper.selectMenuByUserid(userid);\n\t\t\t\tjedis.set(\"menusList_\" + userid, JSON.toJSONString(menuList));\n\t\t\t\tlogger.debug(\"从数据库中查询menuList\");\n\t\t\t} else {\n\t\t\t\t// 2.直接从缓存中拿\n\t\t\t\tlogger.debug(\"从缓存中查询menuList\" + menuListJson);\n\t\t\t\tmenuList = JSON.parseArray(menuListJson, Menu.class);\n\t\t\t} \n\t\t} finally {\n\t\t\tif(jedis!=null)jedis.close();\n\t\t}\n\t\treturn menuList;\n\t}\n}\n"
  },
  {
    "path": "src/main/java/cn/lastwhisper/modular/service/impl/RoleServiceImpl.java",
    "content": "/**  \n * @Title:  RoleServiceImpl.java   \n * @Package cn.lastwhisper.service.impl   \n * @Description: TODO(用一句话描述该文件做什么)\n * @author: 最后的轻语_dd43     \n * @date:   2019年4月6日 下午2:52:25   \n * @version V1.0 \n */\npackage cn.lastwhisper.modular.service.impl;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\nimport org.springframework.transaction.annotation.Isolation;\nimport org.springframework.transaction.annotation.Propagation;\nimport org.springframework.transaction.annotation.Transactional;\n\nimport com.github.pagehelper.PageHelper;\nimport com.github.pagehelper.PageInfo;\n\nimport cn.lastwhisper.core.annotation.LogAnno;\nimport cn.lastwhisper.modular.vo.EasyUIDataGridResult;\nimport cn.lastwhisper.modular.vo.EasyUIOptionalTreeNode;\nimport cn.lastwhisper.modular.vo.GlobalResult;\nimport cn.lastwhisper.modular.mapper.MenuMapper;\nimport cn.lastwhisper.modular.mapper.RoleMapper;\nimport cn.lastwhisper.modular.pojo.Menu;\nimport cn.lastwhisper.modular.pojo.Role;\nimport cn.lastwhisper.modular.service.RoleService;\nimport redis.clients.jedis.Jedis;\nimport redis.clients.jedis.JedisPool;\n\n/**\n * @ClassName: RoleServiceImpl\n * @Description:TODO(这里用一句话描述这个类的作用)\n * @author: 最后的轻语_dd43\n * @date: 2019年4月6日\n */\n@Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)\n@Service\npublic class RoleServiceImpl implements RoleService {\n\n\t@Autowired\n\tprivate RoleMapper roleMapper;\n\t@Autowired\n\tprivate MenuMapper menuMapper;\n//\t@Autowired\n//\tprivate Jedis jedis;\n\t@Autowired\n\tprivate JedisPool jedisPool;\n\t\n\t@Transactional(propagation =Propagation.NOT_SUPPORTED)\t\n\t@Override\n\tpublic EasyUIDataGridResult findRolelistByPage(Integer page, Integer rows, Role role) {\n\t\t// 1.分页查询\n\t\tPageHelper.startPage(page, rows);\n\t\tList<Role> list = roleMapper.selectRolelistByPage(role);\n\t\tPageInfo<Role> pageInfo = new PageInfo<>(list);\n\t\t// 2.封装EasyUIDataGridResult\n\t\tEasyUIDataGridResult result = new EasyUIDataGridResult();\n\t\tresult.setTotal((int) pageInfo.getTotal());\n\t\tresult.setRows(pageInfo.getList());\n\t\t// 3.返回分页的结果\n\t\treturn result;\n\t}\n\n\t@Transactional(propagation =Propagation.NOT_SUPPORTED)\n\t@Override\n\tpublic List<Role> findRoleName(String q) {\n\t\tList<Role> list = roleMapper.selectRoleName(q);\n\t\treturn list;\n\t}\n\n\t@Override\n\tpublic GlobalResult updateRole(Role role) {\n\t\ttry {\n\t\t\tif (role != null) {\n\t\t\t\tInteger row = roleMapper.updateRole(role);\n\t\t\t\tif (row > 0) {\n\t\t\t\t\treturn new GlobalResult(200, \"角色信息更新成功\", null);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (Exception e) {\n\t\t\te.printStackTrace();\n\t\t}\n\t\treturn new GlobalResult(400, \"角色信息更新失败\", null);\n\t}\n\n\t@Override\n\tpublic GlobalResult addRole(Role role) {\n\t\tif (role != null) {\n\t\t\tInteger row = roleMapper.insertRole(role);\n\t\t\tif (row > 0) {\n\t\t\t\treturn new GlobalResult(200, \"角色信息添加成功\", null);\n\t\t\t}\n\t\t}\n\t\treturn new GlobalResult(400, \"角色信息添加失败\", null);\n\t}\n\t\n\t@Transactional(propagation =Propagation.NOT_SUPPORTED)\n\t@Override\n\tpublic EasyUIDataGridResult findRoleList() {\n\t\tList<Role> list = roleMapper.selectRoleList();\n\t\tEasyUIDataGridResult result = new EasyUIDataGridResult();\n\t\tresult.setRows(list);\n\t\tresult.setTotal(list.size());\n\t\treturn result;\n\t}\n\n\t@Override\n\tpublic GlobalResult deleteRoleById(Integer uuid) {\n\t\tif (uuid == null) {\n\t\t\treturn new GlobalResult(400, \"角色id为空，添加失败！\", 400);\n\t\t}\n\t\tInteger integer = roleMapper.deleteRoleById(uuid);\n\t\tif (integer == 0) {\n\t\t\treturn new GlobalResult(400, \"用户删除失败\", null);\n\t\t} else {\n\t\t\treturn new GlobalResult(200, \"用户删除成功\", null);\n\t\t}\n\t}\n\n\t@Override\n\tpublic List<EasyUIOptionalTreeNode> findRoleMenuByRoleid(Integer roleUuid) {\n\t\t// 1.根据角色id获取角色对应的菜单id\n\t\tList<String> menuIdList = roleMapper.selectRoleMenuidByRoleid(roleUuid);\n\t\t// 2.获取一级菜单\n\t\tList<Menu> parentMenu = menuMapper.selectMenuIdName(\"0\");\n\t\t// 3.当前角色对象对应的菜单权限\n\t\tList<EasyUIOptionalTreeNode> treeList = new ArrayList<EasyUIOptionalTreeNode>();\n\t\t// 暂存一级菜单\n\t\tEasyUIOptionalTreeNode t1 = null;\n\t\t// 暂存二级菜单\n\t\tEasyUIOptionalTreeNode t2 = null;\n\t\t// 一级菜单遍历\n\t\tfor (Menu m1 : parentMenu) {\n\t\t\tt1 = new EasyUIOptionalTreeNode();\n\t\t\tt1.setId(m1.getMenuid());\n\t\t\tt1.setText(m1.getMenuname());\n\t\t\tList<Menu> leafMenu = menuMapper.selectMenuIdName(m1.getMenuid());\n\t\t\t// 二级菜单遍历\n\t\t\tfor (Menu m2 : leafMenu) {\n\t\t\t\tt2 = new EasyUIOptionalTreeNode();\n\t\t\t\tt2.setId(m2.getMenuid());\n\t\t\t\tt2.setText(m2.getMenuname());\n\t\t\t\t// 如果角色下包含有这个权限菜单，让它勾选上\n\t\t\t\tfor (String menuId : menuIdList) {\n\t\t\t\t\tif (m2.getMenuid().equals(menuId)) {\n\t\t\t\t\t\tt2.setChecked(true);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tt1.getChildren().add(t2);\n\t\t\t}\n\t\t\ttreeList.add(t1);\n\t\t}\n\t\treturn treeList;\n\t}\n\n\n\t@Override\n\tpublic GlobalResult updateRoleMenu(Integer roleuuid, String checkedIds) {\n\t\tJedis jedis = jedisPool.getResource();\n\t\ttry {\n\t\t\t// 清空角色下的权限菜单\n\t\t\troleMapper.deleteMenuidByRoleid(roleuuid);\n\t\t\t// 权限角色id\n\t\t\tif (checkedIds != null) {\n\t\t\t\tString[] ids = checkedIds.split(\",\");\n\t\t\t\tfor (String menuUuid : ids) {\n\t\t\t\t\troleMapper.insertRolemenu(menuUuid, roleuuid);\n\t\t\t\t}\n\t\t\t}\n\t\t\tList<Integer> userIdList = roleMapper.selectUseridByRoleuuid(roleuuid);\n\t\t\tfor (Integer userId : userIdList) {\n\t\t\t\t\n\t\t\t\tjedis.del(\"menusEasyui_\" + userId);\n\t\t\t\tjedis.del(\"menusList_\" + userId);\n\t\t\t}\n\t\t\tSystem.out.println(\"更新角色对应的对应的权限菜单 ，清除缓存\");\n\t\t} catch (Exception e) {\n\t\t\te.printStackTrace();\n\t\t}finally {\n\t\t\tif(jedis!=null)jedis.close();\n\t\t}\n\t\treturn GlobalResult.build(200, \"权限设置成功\");\n\t}\n}\n"
  },
  {
    "path": "src/main/java/cn/lastwhisper/modular/service/impl/UserServiceImpl.java",
    "content": "package cn.lastwhisper.modular.service.impl;\n\nimport java.io.IOException;\nimport java.io.InputStream;\nimport java.io.OutputStream;\nimport java.util.ArrayList;\nimport java.util.List;\n\nimport org.apache.poi.hssf.usermodel.HSSFCell;\nimport org.apache.poi.hssf.usermodel.HSSFCellStyle;\nimport org.apache.poi.hssf.usermodel.HSSFRow;\nimport org.apache.poi.hssf.usermodel.HSSFSheet;\nimport org.apache.poi.hssf.usermodel.HSSFWorkbook;\nimport org.apache.poi.ss.usermodel.CellType;\nimport org.apache.poi.ss.usermodel.DataFormat;\nimport org.apache.shiro.authz.annotation.RequiresPermissions;\nimport org.apache.shiro.crypto.hash.Md5Hash;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\nimport org.springframework.transaction.annotation.Isolation;\nimport org.springframework.transaction.annotation.Propagation;\nimport org.springframework.transaction.annotation.Transactional;\n\nimport com.github.pagehelper.PageHelper;\nimport com.github.pagehelper.PageInfo;\n\nimport cn.lastwhisper.core.annotation.LogAnno;\nimport cn.lastwhisper.modular.vo.EasyUIDataGridResult;\nimport cn.lastwhisper.modular.vo.EasyUIOptionalTreeNode;\nimport cn.lastwhisper.modular.vo.GlobalResult;\nimport cn.lastwhisper.modular.mapper.RoleMapper;\nimport cn.lastwhisper.modular.mapper.UserMapper;\nimport cn.lastwhisper.modular.pojo.Role;\nimport cn.lastwhisper.modular.pojo.User;\nimport cn.lastwhisper.modular.service.UserService;\nimport redis.clients.jedis.Jedis;\nimport redis.clients.jedis.JedisPool;\n\n/**\n * \n * @ClassName: UserServiceImpl\n * @Description: 用户相关\n * @author: 最后的轻语_dd43\n * @date: 2019年4月30日\n */\n@Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)\n@Service\npublic class UserServiceImpl implements UserService {\n\n\t@Autowired\n\tprivate UserMapper userMapper;\n\n\t@Autowired\n\tprivate RoleMapper roleMapper;\n\n\t@Autowired\n\tprivate JedisPool jedisPool;\n\n\t@Transactional(propagation = Propagation.NOT_SUPPORTED)\n\t@Override\n\tpublic User findUserByCodeAndPwd(String user_code, String user_pwd) {\n\t\t// 密码加密\n\t\tuser_pwd = encrypt(user_pwd, user_code);\n\t\tSystem.out.println(user_pwd);\n\t\t// 获取数据库用户信息\n\t\treturn userMapper.selectUserBycodeAndpwd(user_code, user_pwd);\n\t}\n\n\t/**\n\t * 加密\n\t * \n\t * @param source 密码\n\t * @param salt   账号\n\t */\n\tprivate String encrypt(String source, String salt) {\n\t\tint hashIterations = 2;\n\t\tMd5Hash md5 = new Md5Hash(source, salt, hashIterations);\n\t\treturn md5.toString();\n\t}\n\n\n\t@RequiresPermissions(\"用户管理\")\n\t@Override\n\tpublic GlobalResult addUser(User user) {\n\t\tif (user == null) {\n\t\t\treturn new GlobalResult(400, \"用户信息为空，添加失败！\", null);\n\t\t}\n\t\t// 密码不为空时，对密码进行加密\n\t\tif (\"\".equals(user.getUser_pwd())) {\n\t\t\tuser.setUser_pwd(null);\n\t\t} else {\n\t\t\tString user_pwd = encrypt(user.getUser_pwd(), user.getUser_code());\n\t\t\tuser.setUser_pwd(user_pwd);\n\t\t}\n\t\tInteger integer = userMapper.insertUser(user);\n\t\tif (integer == 0) {\n\t\t\treturn new GlobalResult(400, \"用户添加失败\", null);\n\t\t} else {\n\t\t\treturn new GlobalResult(200, \"用户添加成功\", null);\n\t\t}\n\t}\n\n\t@RequiresPermissions(\"用户管理\")\n\t@Override\n\tpublic GlobalResult updateUser(User user) {\n\t\tif (user == null) {\n\t\t\treturn new GlobalResult(400, \"用户信息为空，修改失败！\", 400);\n\t\t}\n\t\t// 密码不为空时，对密码进行加密\n\t\tif (\"\".equals(user.getUser_pwd())) {\n\t\t\tuser.setUser_pwd(null);\n\t\t} else {\n\t\t\tString user_pwd = encrypt(user.getUser_pwd(), user.getUser_code());\n\t\t\tuser.setUser_pwd(user_pwd);\n\t\t}\n\t\tInteger integer = userMapper.updateUser(user);\n\t\tif (integer == 0) {\n\t\t\treturn new GlobalResult(400, \"用户信息更新失败\", null);\n\t\t} else {\n\t\t\treturn new GlobalResult(200, \"用户信息更新成功\", null);\n\t\t}\n\t}\n\n\t@RequiresPermissions(\"用户管理\")\n\t@Override\n\tpublic GlobalResult deleteUser(Integer user_id) {\n\t\ttry (Jedis jedis = jedisPool.getResource()) {\n\t\t\tif (user_id == null) {\n\t\t\t\treturn new GlobalResult(400, \"用户id为空，添加失败！\", 400);\n\t\t\t}\n\t\t\tInteger integer = userMapper.deleteUserById(user_id);\n\t\t\tif (integer == 0) {\n\t\t\t\treturn new GlobalResult(400, \"用户删除失败\", null);\n\t\t\t} else {\n\t\t\t\t// 删除用户下的所有角色\n\t\t\t\tuserMapper.deleteUserRole(user_id);\n\t\t\t\t// 删除用户下的所有缓存\n\t\t\t\tjedis.del(\"menusEasyui_\" + user_id);\n\t\t\t\tjedis.del(\"menusList_\" + user_id);\n\t\t\t\treturn new GlobalResult(200, \"用户删除成功\", null);\n\t\t\t}\n\t\t}\n\t}\n\n\t@Transactional(propagation = Propagation.NOT_SUPPORTED)\n\t@Override\n\tpublic EasyUIDataGridResult findUserlistByPage(User user, Integer page, Integer rows) {\n\t\tPageHelper.startPage(page, rows);\n\t\tList<User> list = userMapper.selectUserlistByPage(user);\n\t\tPageInfo<User> pageInfo = new PageInfo<>(list);\n\t\tEasyUIDataGridResult result = new EasyUIDataGridResult();\n\t\tresult.setTotal((int) pageInfo.getTotal());\n\t\tresult.setRows(pageInfo.getList());\n\t\treturn result;\n\t}\n\n\t@Transactional(propagation = Propagation.NOT_SUPPORTED)\n\t@Override\n\tpublic List<User> findUserName(String q) {\n\t\treturn userMapper.selectUserName(q);\n\t}\n\n\t@LogAnno(operateType = \"更新用户密码\")\n\t@Override\n\tpublic GlobalResult updatePwd(User user, String oldPwd, String newPwd) {\n\t\tString msg = \"用户未登录\";\n\t\t// 用户登录了\n\t\tif (user != null) {\n\t\t\tString encryptOldPwd = encrypt(oldPwd, user.getUser_code());\n\t\t\t// 用户密码正确\n\t\t\tif (encryptOldPwd.equals(user.getUser_pwd())) {\n\t\t\t\tString user_pwd = encrypt(newPwd, user.getUser_code());\n\t\t\t\tInteger row = userMapper.updatePwdById(user.getUser_id(), user_pwd);\n\t\t\t\tif (row > 0) {\n\t\t\t\t\treturn new GlobalResult(200, \"密码修改成功\", null);\n\t\t\t\t} else {\n\t\t\t\t\tmsg = \"密码修改失败\";\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tmsg = \"密码错误\";\n\t\t\t}\n\t\t}\n\t\treturn new GlobalResult(400, msg, null);\n\t}\n\n\t@Transactional(propagation = Propagation.NOT_SUPPORTED)\n\t@Override\n\tpublic List<EasyUIOptionalTreeNode> findUserRole(Integer user_id) {\n\t\t// 1.获取当前用户的所有角色\n\t\tList<Role> userRoleList = userMapper.selectUserRole(user_id);\n\t\t// 2.获取系统中所有角色\n\t\tList<Role> roleList = roleMapper.selectRoleList();\n\t\t// 3.设置返回值\n\t\tList<EasyUIOptionalTreeNode> treeList = new ArrayList<EasyUIOptionalTreeNode>();\n\t\tEasyUIOptionalTreeNode t1 = null;\n\t\t// 4.封装返回值将用户对应的角色设置为true\n\t\tfor (Role role : roleList) {\n\t\t\tt1 = new EasyUIOptionalTreeNode();\n\t\t\tt1.setId(role.getUuid() + \"\");\n\t\t\tt1.setText(role.getName());\n\t\t\t// 如果用户拥有这个角色，设为true\n\t\t\tfor (Role userRole : userRoleList) {\n\t\t\t\tif (userRole.getUuid().equals(role.getUuid())) {\n\t\t\t\t\tt1.setChecked(true);\n\t\t\t\t}\n\t\t\t}\n\t\t\ttreeList.add(t1);\n\t\t}\n\t\treturn treeList;\n\t}\n\n\t@Transactional(propagation = Propagation.NOT_SUPPORTED)\n\t@Override\n\tpublic List<Role> findUserRoleByUserid(Integer user_id) {\n\t\treturn userMapper.selectUserRole(user_id);\n\t}\n\n\t@LogAnno(operateType = \"更新用户对应角色\")\n\t@Override\n\tpublic GlobalResult updateUserRole(Integer user_id, String checkedIds) {\n\t\ttry (Jedis jedis = jedisPool.getResource()) {\n\t\t\t// 先删除用户下的所有角色\n\t\t\tuserMapper.deleteUserRole(user_id);\n\t\t\tif (checkedIds != null) {\n\t\t\t\tString[] ids = checkedIds.split(\",\");\n\t\t\t\tfor (String roleuuid : ids) {\n\t\t\t\t\t// 设置用户的角色\n\t\t\t\t\tuserMapper.insertUserRole(user_id, Integer.parseInt(roleuuid));\n\t\t\t\t}\n\t\t\t}\n\t\t\t// 清除缓存\n\t\t\tjedis.del(\"menusEasyui_\" + user_id);\n\t\t\tjedis.del(\"menusList_\" + user_id);\n\t\t\tSystem.out.println(\"更新用户对应的角色 ，清除缓存\");\n\t\t} catch (Exception e) {\n\t\t\te.printStackTrace();\n\t\t}\n\t\treturn GlobalResult.build(200, \"保存成功\");\n\t}\n\n\t/**\n\t * 导出excel文件\n\t */\n\t@LogAnno(operateType = \"excel导出用户信息\")\n\t@Transactional(propagation = Propagation.NOT_SUPPORTED)\n\t@Override\n\tpublic void export(OutputStream os, User user) {\n\t\t// 获取所有供应商信息\n\t\tList<User> UserList = userMapper.selectUserlistByPage(user);\n\t\t// 1.创建excel工作薄\n\t\tHSSFWorkbook wk = new HSSFWorkbook();\n\t\t// 2.创建一个工作表\n\t\tHSSFSheet sheet = wk.createSheet(\"系统用户\");\n\t\t// 3.写入表头\n\t\tHSSFRow row = sheet.createRow(0);\n\t\t// 表头\n\t\tString[] headerName = { \"账号\", \"密码\", \"真实姓名 \", \"出生日期 \" };\n\t\t// 列宽\n\t\tint[] columnWidths = { 6000, 6000, 6000, 6000 };\n\t\tHSSFCell cell = null;\n\t\tfor (int i = 0; i < headerName.length; i++) {\n\t\t\t// 创建表头单元格\n\t\t\tcell = row.createCell(i);\n\t\t\t// 向表头单元格写值\n\t\t\tcell.setCellValue(headerName[i]);\n\t\t\tsheet.setColumnWidth(i, columnWidths[i]);\n\t\t}\n\t\t// 4.向内容单元格写值\n\t\tint i = 1;\n\t\tfor (User u : UserList) {\n\t\t\trow = sheet.createRow(i);\n\t\t\trow.createCell(0).setCellValue(u.getUser_code());// 账号\n\t\t\trow.createCell(1).setCellValue(\"********\");// 密码\n\t\t\tif (u.getUser_name() != null) {\n\t\t\t\trow.createCell(2).setCellValue(u.getUser_name());// \"真实姓名\n\t\t\t}\n\t\t\tif (u.getUser_birthday() != null) {\n\t\t\t\tHSSFCellStyle style_date = wk.createCellStyle();\n\t\t\t\tDataFormat df = wk.createDataFormat();\n\t\t\t\tstyle_date.setDataFormat(df.getFormat(\"yyyy-MM-dd\"));\n\t\t\t\trow.createCell(3).setCellValue(u.getUser_birthday());// 出生日期\n\t\t\t\tsheet.getRow(i).getCell(3).setCellStyle(style_date);\n\t\t\t}\n\t\t\ti++;\n\t\t}\n\t\ttry {\n\t\t\t// 写入到输出流中\n\t\t\twk.write(os);\n\t\t} catch (IOException e) {\n\t\t\te.printStackTrace();\n\t\t} finally {\n\t\t\ttry {\n\t\t\t\t// 关闭工作簿\n\t\t\t\twk.close();\n\t\t\t} catch (IOException e) {\n\t\t\t\te.printStackTrace();\n\t\t\t}\n\t\t}\n\n\t}\n\n\t/**\n\t * 数据导入\n\t */\n\t@LogAnno(operateType = \"excel导入用户信息\")\n\t@Override\n\tpublic void doImport(InputStream is) throws IOException {\n\t\tHSSFWorkbook wb = null;\n\t\ttry {\n\t\t\twb = new HSSFWorkbook(is);\n\t\t\tHSSFSheet sheet = wb.getSheetAt(0);\n\t\t\t// 读取数据\n\t\t\t// 最后一行的行号\n\t\t\tint lastRow = sheet.getLastRowNum();\n\t\t\tUser user = null;\n\t\t\tfor (int i = 1; i <= lastRow; i++) {\n\t\t\t\t// 账号\n\t\t\t\tuser = new User();\n\t\t\t\tuser.setUser_code(sheet.getRow(i).getCell(0).getStringCellValue());\n\t\t\t\t// 判断是否已经存在，通过账号来判断\n\t\t\t\tList<User> list = userMapper.selectUserByUserCode(user.getUser_code());\n\t\t\t\tif (list.size() > 0) {\n\t\t\t\t\t// 说明存在用户，需要更新\n\t\t\t\t\tuser = list.get(0);\n\t\t\t\t}\n\t\t\t\tHSSFCell cell = null;\n\t\t\t\t// 密码\n\t\t\t\tcell = sheet.getRow(i).getCell(1);\n\t\t\t\tcell.setCellType(CellType.STRING);\n\t\t\t\tif(!cell.getStringCellValue().equals(\"********\")) {\n\t\t\t\t\tuser.setUser_pwd(encrypt(cell.getStringCellValue(), user.getUser_code()));\n\t\t\t\t}\n\t\t\t\t// 真实姓名\n\t\t\t\tcell = sheet.getRow(i).getCell(2);\n\t\t\t\tcell.setCellType(CellType.STRING);\n\t\t\t\tuser.setUser_name(sheet.getRow(i).getCell(2).getStringCellValue());\n\t\t\t\t// 出生日期\n\t\t\t\tcell = sheet.getRow(i).getCell(3);\n\t\t\t\tcell.setCellType(CellType.NUMERIC);\n//\t\t\t\tSimpleDateFormat df = new SimpleDateFormat(\"yyyy-MM-dd\");\n//\t\t\t\tDate birthday = df.parse(sheet.getRow(i).getCell(3).getDateCellValue());\n\t\t\t\tuser.setUser_birthday(sheet.getRow(i).getCell(3).getDateCellValue());\n\t\t\t\tif (list.size() == 0) {\n\t\t\t\t\t// 说明不存在用户信息，需要新增\n\t\t\t\t\tuserMapper.insertUser(user);\n\t\t\t\t} else {\n\t\t\t\t\t// 更新用户信息\n\t\t\t\t\tuserMapper.updateUserByUserCode(user);\n\t\t\t\t}\n\t\t\t}\n\t\t} finally {\n\t\t\tif (null != wb) {\n\t\t\t\ttry {\n\t\t\t\t\twb.close();\n\t\t\t\t} catch (IOException e) {\n\t\t\t\t\te.printStackTrace();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n}\n"
  },
  {
    "path": "src/main/java/cn/lastwhisper/modular/vo/EasyUIDataGridResult.java",
    "content": "/**  \n * @Title:  RoleService.java   \n * @Package cn.lastwhisper.service   \n * @Description: TODO(用一句话描述该文件做什么)\n * @author:     最后的轻语_dd43   \n * @date:   2019年4月6日 下午2:45:32   \n * @version V1.0 \n */\npackage cn.lastwhisper.modular.vo;\n\nimport java.io.Serializable;\nimport java.util.List;\n/**\n * \n * @ClassName:  EasyUIDataGridResult   \n * @Description:easyui分页\n * @author:     最后的轻语_dd43\n * @date:       2019年4月6日\n */\npublic class EasyUIDataGridResult implements Serializable {\n\t\n\t/**\n\t * \n\t */\n\tprivate static final long serialVersionUID = 1L;\n\t/**\n\t * 数据库中总记录数\n\t */\n\tprivate Integer total;\n\t/**\n\t * 当前页数据\n\t */\n\tprivate List<?> rows;\n\n\tpublic Integer getTotal() {\n\t\treturn total;\n\t}\n\n\tpublic void setTotal(Integer total) {\n\t\tthis.total = total;\n\t}\n\n\tpublic List<?> getRows() {\n\t\treturn rows;\n\t}\n\n\tpublic void setRows(List<?> rows) {\n\t\tthis.rows = rows;\n\t}\n\t\n}\n"
  },
  {
    "path": "src/main/java/cn/lastwhisper/modular/vo/EasyUIOptionalTreeNode.java",
    "content": "/**  \n * @Title:  RoleService.java   \n * @Package cn.lastwhisper.service   \n * @Description: TODO(用一句话描述该文件做什么)\n * @author:     最后的轻语_dd43   \n * @date:   2019年4月6日 下午2:45:32   \n * @version V1.0 \n */\npackage cn.lastwhisper.modular.vo;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class EasyUIOptionalTreeNode {\n\tprivate String id;// 菜单id\n\tprivate String text;// 菜单名称\n\tprivate boolean checked;// 是否为选中\n\tprivate List<EasyUIOptionalTreeNode> children = new ArrayList<EasyUIOptionalTreeNode>();// 下级菜单\n\t\n\tpublic String getId() {\n\t\treturn id;\n\t}\n\tpublic void setId(String id) {\n\t\tthis.id = id;\n\t}\n\tpublic String getText() {\n\t\treturn text;\n\t}\n\tpublic void setText(String text) {\n\t\tthis.text = text;\n\t}\n\tpublic boolean isChecked() {\n\t\treturn checked;\n\t}\n\tpublic void setChecked(boolean checked) {\n\t\tthis.checked = checked;\n\t}\n\tpublic List<EasyUIOptionalTreeNode> getChildren() {\n\t\treturn children;\n\t}\n\tpublic void setChildren(List<EasyUIOptionalTreeNode> children) {\n\t\tthis.children = children;\n\t}\n\t@Override\n\tpublic String toString() {\n\t\treturn \"EasyUIOptionalTreeNode [id=\" + id + \", text=\" + text + \", checked=\" + checked + \", children=\" + children\n\t\t\t\t+ \"]\";\n\t}\n\t\n}\n"
  },
  {
    "path": "src/main/java/cn/lastwhisper/modular/vo/GlobalResult.java",
    "content": "/**  \n * @Title:  RoleService.java   \n * @Package cn.lastwhisper.service   \n * @Description: TODO(用一句话描述该文件做什么)\n * @author:     最后的轻语_dd43   \n * @date:   2019年4月6日 下午2:45:32   \n * @version V1.0 \n */\npackage cn.lastwhisper.modular.vo;\n\nimport java.io.Serializable;\n\n\n/**\n * \n * @ClassName:  GlobalResult   \n * @Description:全局返回值\n * @author:     最后的轻语_dd43\n * @date:       2019年4月5日\n */\npublic class GlobalResult implements Serializable{\n\n    /**\n\t * \n\t */\n\tprivate static final long serialVersionUID = 1L;\n\n    // 响应业务状态\n    private Integer status;\n\n    // 响应消息\n    private String msg;\n\n    // 响应中的数据\n    private Object data;\n\n    public static GlobalResult build(Integer status, String msg, Object data) {\n        return new GlobalResult(status, msg, data);\n    }\n\n    public static GlobalResult ok(Object data) {\n        return new GlobalResult(data);\n    }\n\n    public static GlobalResult ok() {\n        return new GlobalResult(null);\n    }\n\n    public GlobalResult() {\n\n    }\n\n    public static GlobalResult build(Integer status, String msg) {\n        return new GlobalResult(status, msg, null);\n    }\n\n    public GlobalResult(Integer status, String msg, Object data) {\n        this.status = status;\n        this.msg = msg;\n        this.data = data;\n    }\n\n    public GlobalResult(Object data) {\n        this.status = 200;\n        this.msg = \"OK\";\n        this.data = data;\n    }\n\n    public Boolean isOK() {\n        return this.status == 200;\n    }\n\n    public Integer getStatus() {\n        return status;\n    }\n\n    public void setStatus(Integer status) {\n        this.status = status;\n    }\n\n    public String getMsg() {\n        return msg;\n    }\n\n    public void setMsg(String msg) {\n        this.msg = msg;\n    }\n\n    public Object getData() {\n        return data;\n    }\n\n    public void setData(Object data) {\n        this.data = data;\n    }\n\n\t/* (non-Javadoc)\n\t * @see java.lang.Object#toString()\n\t */\n\t@Override\n\tpublic String toString() {\n\t\treturn \"ManagerResult [status=\" + status + \", msg=\" + msg + \", data=\" + data + \"]\";\n\t}\n    \n\n}\n"
  },
  {
    "path": "src/main/java/cn/lastwhisper/modular/vo/Tree.java",
    "content": "package cn.lastwhisper.modular.vo;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\nimport com.fasterxml.jackson.annotation.JsonIgnoreProperties;\n\nimport cn.lastwhisper.modular.pojo.Menu;\n\n@JsonIgnoreProperties(value = { \"hibernateLazyInitializer\", \"handler\" })\npublic class Tree {\n\tprivate String id;//菜单id\n\tprivate String text;//菜单名称\n\tprivate Integer status;//是否已删除\n\tprivate boolean checked;//是否为选中\n\tprivate List<Menu> children;// 下级菜单\n\tpublic Integer getStatus() {\n\t\treturn status;\n\t}\n\tpublic void setStatus(Integer status) {\n\t\tthis.status = status;\n\t}\n\tpublic String getId() {\n\t\treturn id;\n\t}\n\tpublic void setId(String id) {\n\t\tthis.id = id;\n\t}\n\tpublic String getText() {\n\t\treturn text;\n\t}\n\tpublic void setText(String text) {\n\t\tthis.text = text;\n\t}\n\tpublic boolean isChecked() {\n\t\treturn checked;\n\t}\n\tpublic void setChecked(boolean checked) {\n\t\tthis.checked = checked;\n\t}\n\tpublic List<Menu> getChildren() {\n\t\tif(null == children) {\n\t\t\tchildren = new ArrayList<>();\n\t\t}\n\t\treturn children;\n\t}\n\tpublic void setChildren(List<Menu> children) {\n\t\tthis.children = children;\n\t}\n\t@Override\n\tpublic String toString() {\n\t\treturn \"Tree [id=\" + id + \", text=\" + text + \", status=\" + status + \", checked=\" + checked + \", children=\"\n\t\t\t\t+ children + \"]\";\n\t}\n}\n\n"
  },
  {
    "path": "src/main/resources/applicationContext.xml",
    "content": "<beans xmlns=\"http://www.springframework.org/schema/beans\"\n\t   xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n\t   xmlns:context=\"http://www.springframework.org/schema/context\"\n\t   xmlns:aop=\"http://www.springframework.org/schema/aop\"\n\t   xmlns:tx=\"http://www.springframework.org/schema/tx\" xmlns:task=\"http://www.springframework.org/schema/task\"\n\t   xsi:schemaLocation=\"http://www.springframework.org/schema/beans\n\t\thttp://www.springframework.org/schema/beans/spring-beans-4.2.xsd \n\t\thttp://www.springframework.org/schema/context\n\t\thttp://www.springframework.org/schema/context/spring-context-4.2.xsd \n\t\thttp://www.springframework.org/schema/aop \n\t\thttp://www.springframework.org/schema/aop/spring-aop-4.2.xsd \n\t\thttp://www.springframework.org/schema/tx \n\t\thttp://www.springframework.org/schema/tx/spring-tx-4.2.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd\">\n\t<!-- 加载配置文件 -->\n<!--\t<context:property-placeholder location=\"classpath:db-local.properties\" />-->\n\t<context:property-placeholder location=\"classpath:db.properties\" />\n\n\t<!-- 注解开发 -->\n\t<!-- 自动扫描组件，这里要把controler下面的 controller去除，他们是在spring3-servlet.xml中配置的，如果不去除会影响事务管理的。 -->\n\t<context:component-scan\n\t\tbase-package=\"cn.lastwhisper.*\">\n\t\t<context:exclude-filter type=\"annotation\"\n\t\t\texpression=\"org.springframework.stereotype.Controller\" />\n\t</context:component-scan>\n\t<!-- 数据源，使用Druid -->\n\t<bean id=\"dataSource\"\n\t\tclass=\"com.alibaba.druid.pool.DruidDataSource\">\n\t\t<property name=\"url\" value=\"${jdbc.url}\" />\n\t\t<property name=\"username\" value=\"${jdbc.username}\" />\n\t\t<property name=\"password\" value=\"${jdbc.password}\" />\n\t\t<!-- 配置初始化大小、最小、最大 -->\n\t\t<property name=\"maxActive\" value=\"20\" />\n\t\t<property name=\"initialSize\" value=\"20\" />\n\t\t<property name=\"minIdle\" value=\"20\" />\n\t\t<!-- 配置获取连接等待超时的时间 -->\n\t\t<property name=\"maxWait\" value=\"60000\" />\n\t\t<!-- 配置间隔多久才进行一次检测，检测需要关闭的空闲连接，单位是毫秒 -->\n\t\t<property name=\"timeBetweenEvictionRunsMillis\" value=\"60000\" />\n\t\t<!-- 配置一个连接在池中最小生存的时间，单位是毫秒 -->\n\t\t<property name=\"minEvictableIdleTimeMillis\" value=\"300000\" />\n\t\t<property name=\"testWhileIdle\" value=\"true\" />\n\t\t<property name=\"testOnBorrow\" value=\"false\" />\n\t\t<property name=\"testOnReturn\" value=\"false\" />\n\t\t<!-- 打开PSCache，并且指定每个连接上PSCache的大小 -->\n\t\t<property name=\"poolPreparedStatements\" value=\"true\" />\n\t\t<property name=\"maxOpenPreparedStatements\" value=\"20\" />\n\t\t<!-- 配置监控统计拦截的filters,和防sql注入 -->\n\t\t<property name=\"filters\" value=\"stat,wall\" />\n\t</bean>\n\n\t<!-- sqlSessinFactory -->\n\t<bean id=\"sqlSessionFactory\"\n\t\tclass=\"org.mybatis.spring.SqlSessionFactoryBean\">\n\t\t<!-- 加载mybatis的配置文件 -->\n\t\t<property name=\"configLocation\"\n\t\t\tvalue=\"classpath:sqlMapConfig.xml\" />\n\t\t<!-- 数据源 -->\n\t\t<property name=\"dataSource\" ref=\"dataSource\" />\n\t</bean>\n\n\t<!-- 配置mapper扫描，并创建mapper.java的实例对象 -->\n\t<bean class=\"org.mybatis.spring.mapper.MapperScannerConfigurer\">\n\t\t<property name=\"basePackage\"\n\t\t\tvalue=\"cn.lastwhisper.modular.mapper\" />\n\t\t<property name=\"sqlSessionFactoryBeanName\"\n\t\t\tvalue=\"sqlSessionFactory\" />\n\t</bean>\n\n\n\t<!-- 事务管理器 对mybatis操作数据库事务控制，spring使用jdbc的事务控制类 -->\n\t<bean id=\"transactionManager\"\n\t\tclass=\"org.springframework.jdbc.datasource.DataSourceTransactionManager\">\n\t\t<property name=\"dataSource\" ref=\"dataSource\" />\n\t</bean>\n\n\t<!-- 开启注解AOP -->\n\t<aop:aspectj-autoproxy/>\n\t<!-- 注解方式配置事物，为了配合自定义注解 -->\n\t<tx:annotation-driven\n\t\ttransaction-manager=\"transactionManager\" proxy-target-class=\"true\"\n\t\torder=\"200\" />\n\n\t<!--开启任务调度-->\n\t<task:annotation-driven/>\n</beans>"
  },
  {
    "path": "src/main/resources/applicationContext_jedis.xml",
    "content": "﻿<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<beans xmlns=\"http://www.springframework.org/schema/beans\"\n\txmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n\txsi:schemaLocation=\"\n\t\thttp://www.springframework.org/schema/beans \n\t\thttp://www.springframework.org/schema/beans/spring-beans.xsd\">\n\n\t<!--JedisPool这个bean的构造方法需要多个参数-->\n\t<bean class=\"redis.clients.jedis.JedisPool\" id=\"jedisPool\" >\n\t\t<constructor-arg name=\"host\" value=\"${redis.host}\"/>\n\t\t<constructor-arg name=\"port\" value=\"${redis.port}\"/>\n<!--\t\t<constructor-arg name=\"password\" value=\"${redis.password}\"/>-->\n\t\t<constructor-arg name=\"timeout\" value=\"${redis.timeout}\"/>\n\t\t<constructor-arg name=\"poolConfig\" ref=\"jedisPoolConfig\"/>\n\t</bean>\n\t<bean class=\"redis.clients.jedis.JedisPoolConfig\" id=\"jedisPoolConfig\">\n\t\t<property name=\"maxIdle\" value=\"${maxIdle}\" />\n\t\t<property name=\"maxTotal\" value=\"${maxActive}\" />\n\t\t<property name=\"maxWaitMillis\" value=\"${maxWait}\" />\n\t\t<property name=\"testOnBorrow\" value=\"${testOnBorrow}\" />\n\t\t<property name=\"blockWhenExhausted\" value=\"${blockWhenExhausted}\" />\n\t</bean>\n</beans>\n\t\n"
  },
  {
    "path": "src/main/resources/applicationContext_shiro.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<beans xmlns=\"http://www.springframework.org/schema/beans\"\n       xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n       xsi:schemaLocation=\"http://www.springframework.org/schema/beans\n\t\t\t\t\t\thttp://www.springframework.org/schema/beans/spring-beans.xsd\">\n\n    <!-- shiro的过滤工厂，相当默认的加载了9个过滤器 -->\n    <bean id=\"shiroFilter\" class=\"org.apache.shiro.spring.web.ShiroFilterFactoryBean\">\n        <!-- 安全管理器，shiro核心组件(大脑) Facade模式 -->\n        <property name=\"securityManager\" ref=\"securityManager\"/>\n        <!-- 用户如果没有登陆，当他在访问资源的时候，就会自动跳转到登陆的页面 -->\n        <property name=\"loginUrl\" value=\"/login.html\"/>\n        <!-- 当用户没有访问某项资源权限的时候，跳转到该页面 -->\n        <property name=\"unauthorizedUrl\" value=\"/error.html\"/>\n        <property name=\"successUrl\" value=\"/index.html\"/>\n        <!-- 过滤链的定义：定义URL访问的时候对应的认证或授权时处理的过滤器 -->\n        <property name=\"filterChainDefinitions\">\n            <value>\n                /error.html = anon\n                /login.html = anon\n                /index.html = anon\n\n                /user.html = perms[\"用户管理\"]\n                /user/user* = perms[\"用户管理\"]\n                /role.html = perms[\"角色管理\"]\n                /role/role* = perms[\"角色管理\"]\n                /menu.html = perms[\"菜单管理\"]\n                /menu/menu* = perms[\"菜单管理\"]\n                /roleMenuSet.html = perms[\"角色权限管理\"]\n                /role/findRoleMenuByRoleid = perms[\"角色权限管理\"]\n                /role/role/updateRoleMenu = perms[\"角色权限管理\"]\n                /userRoleSet.html = perms[\"用户角色管理\"]\n                /user/findUserRole = perms[\"用户角色管理\"]\n                /user/updateUserRole = perms[\"用户角色管理\"]\n                /log.html = perms[\"日志管理\"]\n                /log/* = perms[\"日志管理\"]\n                /druid/index.html = perms[\"数据库监控\"]\n\n                /dept.html = perms[\"部门\"]\n                /emp.html = perms[\"员工\"]\n\n                /sale.html = perms[\"销售额统计\"]\n\n                /casual.html = perms[\"临时工计件\"]\n\n                /*.html = authc\n                /menu/* = authc\n                /*=authc\n            </value>\n        </property>\n    </bean>\n    <!-- 安全管理器 -->\n    <bean id=\"securityManager\" class=\"org.apache.shiro.web.mgt.DefaultWebSecurityManager\">\n        <property name=\"realm\" ref=\"realm\"/>\n    </bean>\n    <!-- 自定义的realm -->\n    <bean id=\"realm\" class=\"cn.lastwhisper.core.shiro.Realm\"/>\n\n    <!-- 启动shiro注解 -->\n    <bean class=\"org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator\"\n            depends-on=\"lifecycleBeanPostProcessor\">\n        <!-- 默认使用JDK代理 ，如被代理类没有实现接口，必须使用下列配置开启 cglib代理  -->\n        <property name=\"proxyTargetClass\" value=\"true\"/>\n    </bean>\n    <bean class=\"org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor\">\n        <property name=\"securityManager\" ref=\"securityManager\"/>\n    </bean>\n\n    <!-- 对安全管理器 增强代码 ， spring 后处理器 -->\n    <bean id=\"lifecycleBeanPostProcessor\" class=\"org.apache.shiro.spring.LifecycleBeanPostProcessor\"/>\n</beans>"
  },
  {
    "path": "src/main/resources/db-local.properties",
    "content": "jdbc.driver=com.mysql.jdbc.Driver\njdbc.url=jdbc:mysql://mysql:3306/permission\njdbc.username=root\njdbc.password=391054950.gg\n\n#ip地址\nredis.host=redis\n#端口号\nredis.port=6379\n#如果有密码\nredis.password=\n#客户端超时时间单位是毫秒 默认是2000\nredis.timeout=3000\n#最大空闲数\nmaxIdle=300\n#连接池的最大数据库连接数。设为0表示无限制,如果是jedis 2.4以后用redis.maxTotal\nmaxActive=1000\n#控制一个pool可分配多少个jedis实例,用来替换上面的redis.maxActive,如果是jedis 2.4以后用该属性\nmaxTotal=1000\n#最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。\nmaxWait=1000\n#在空闲时检查有效性, 默认false\ntestOnBorrow=false\n#连接耗尽是否阻塞,false代表抛异常,true代表阻塞直到超时,默认为true\nblockWhenExhausted=false\n \n\n#下面的不是必须的配置\n#连接的最小空闲时间 默认1800000毫秒(30分钟)\nminEvictableIdleTimeMillis=300000\n#每次释放连接的最大数目,默认3\nnumTestsPerEvictionRun=1024\n#逐出扫描的时间间隔(毫秒) 如果为负数,则不运行逐出线程, 默认-1\ntimeBetweenEvictionRunsMillis=30000\n#是否在从池中取出连接前进行检验,如果检验失败,则从池中去除连接并尝试取出另一个,数据量大的时候建议关闭\ntestWhileIdle=true\n"
  },
  {
    "path": "src/main/resources/db.properties",
    "content": "jdbc.driver=com.mysql.jdbc.Driver\njdbc.url=jdbc:mysql://mysql:3306/permission\njdbc.username=root\njdbc.password=root\n\n#ip地址\nredis.host=redis\n#端口号\nredis.port=6379\n#如果有密码\nredis.password=\n#客户端超时时间单位是毫秒 默认是2000\nredis.timeout=3000\n#最大空闲数\nmaxIdle=300\n#连接池的最大数据库连接数。设为0表示无限制,如果是jedis 2.4以后用redis.maxTotal\nmaxActive=1000\n#控制一个pool可分配多少个jedis实例,用来替换上面的redis.maxActive,如果是jedis 2.4以后用该属性\nmaxTotal=1000\n#最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。\nmaxWait=1000\n#在空闲时检查有效性, 默认false\ntestOnBorrow=false\n#连接耗尽是否阻塞,false代表抛异常,true代表阻塞直到超时,默认为true\nblockWhenExhausted=false\n \n\n#下面的不是必须的配置\n#连接的最小空闲时间 默认1800000毫秒(30分钟)\nminEvictableIdleTimeMillis=300000\n#每次释放连接的最大数目,默认3\nnumTestsPerEvictionRun=1024\n#逐出扫描的时间间隔(毫秒) 如果为负数,则不运行逐出线程, 默认-1\ntimeBetweenEvictionRunsMillis=30000\n#是否在从池中取出连接前进行检验,如果检验失败,则从池中去除连接并尝试取出另一个,数据量大的时候建议关闭\ntestWhileIdle=true\n"
  },
  {
    "path": "src/main/resources/log4j.properties",
    "content": "# Global logging configuration\\uff0c\\u5efa\\u8bae\\u5f00\\u53d1\\u73af\\u5883\\u4e2d\\u8981\\u7528debug\nlog4j.rootLogger=INFO, stdout\n# Console output...\nlog4j.appender.stdout=org.apache.log4j.ConsoleAppender\nlog4j.appender.stdout.layout=org.apache.log4j.PatternLayout\nlog4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n\n[java] view plain copy\n<span style=\"font-size:12px;\">log4j.rootLogger = ${log.level},Console,default,allfile\nlog4j.logger.com.ibatis=info\nlog4j.logger.java.sql=info\nlog4j.logger.cn.lastwhisper=info"
  },
  {
    "path": "src/main/resources/reset.sql",
    "content": "\nSET NAMES utf8mb4;\n\ntruncate table `menu`;\ntruncate table `role`;\ntruncate table `role_menu`;\ntruncate table `user`;\ntruncate table `user_role`;\n---------------------------\n-- Records of menu\n-- ----------------------------\nINSERT INTO `menu` VALUES ('0', '系统菜单', '-', 'icon-sys', '-1', 1);\nINSERT INTO `menu` VALUES ('100', '系统管理', '-', 'icon-sys', '0', 1);\nINSERT INTO `menu` VALUES ('101', '用户管理', 'user.html', 'icon-log', '100', 0);\nINSERT INTO `menu` VALUES ('102', '角色管理', 'role.html', 'icon-log', '100', 0);\nINSERT INTO `menu` VALUES ('103', '菜单管理', 'menu.html', 'icon-log', '100', 1);\nINSERT INTO `menu` VALUES ('104', '角色权限管理', 'roleMenuSet.html', 'icon-log', '100', 0);\nINSERT INTO `menu` VALUES ('105', '用户角色管理', 'userRoleSet.html', 'icon-log', '100', 0);\nINSERT INTO `menu` VALUES ('106', '日志管理', 'log.html', 'icon-log', '100', 1);\nINSERT INTO `menu` VALUES ('107', '数据库监控', 'druid/index.html', 'icon-log', '100', 0);\nINSERT INTO `menu` VALUES ('200', '人事管理', '-', 'icon-sys', '0', 1);\nINSERT INTO `menu` VALUES ('201', '部门', 'dept.html', 'icon-log', '200', 0);\nINSERT INTO `menu` VALUES ('202', '员工', 'emp.html', 'icon-log', '200', 0);\nINSERT INTO `menu` VALUES ('300', '销售管理', '-', 'icon-sys', '0', 1);\nINSERT INTO `menu` VALUES ('301', '销售额统计', 'sale.html', 'icon-log', '300', 0);\nINSERT INTO `menu` VALUES ('400', '临时工管理', '-', 'icon-sys', '0', 1);\nINSERT INTO `menu` VALUES ('401', '临时工计件', 'casual.html', 'icon-log', '400', 0);\n\n-- ----------------------------\n-- Records of role\n-- ----------------------------\nINSERT INTO `role` VALUES (1, '系统管理员');\nINSERT INTO `role` VALUES (2, '经理');\nINSERT INTO `role` VALUES (3, '销售主管');\nINSERT INTO `role` VALUES (4, '销售员');\nINSERT INTO `role` VALUES (5, '临时工');\n\n-- ----------------------------\n-- Records of role_menu\n-- ----------------------------\nINSERT INTO `role_menu` VALUES ('100', 1);\nINSERT INTO `role_menu` VALUES ('101', 1);\nINSERT INTO `role_menu` VALUES ('102', 1);\nINSERT INTO `role_menu` VALUES ('103', 1);\nINSERT INTO `role_menu` VALUES ('104', 1);\nINSERT INTO `role_menu` VALUES ('105', 1);\nINSERT INTO `role_menu` VALUES ('106', 1);\nINSERT INTO `role_menu` VALUES ('107', 1);\nINSERT INTO `role_menu` VALUES ('200', 2);\nINSERT INTO `role_menu` VALUES ('201', 2);\nINSERT INTO `role_menu` VALUES ('202', 2);\nINSERT INTO `role_menu` VALUES ('300', 3);\nINSERT INTO `role_menu` VALUES ('301', 3);\nINSERT INTO `role_menu` VALUES ('300', 4);\nINSERT INTO `role_menu` VALUES ('301', 4);\nINSERT INTO `role_menu` VALUES ('400', 5);\nINSERT INTO `role_menu` VALUES ('401', 5);\n\n-- ----------------------------\n-- Records of user\n-- ----------------------------\nINSERT INTO `user` VALUES (221, 'admin', '我是系统管理员', '3ef7164d1f6167cb9f2658c07d3c2f0a', '2019-04-04');\nINSERT INTO `user` VALUES (262, 'manager', '我是经理', 'bb2ec153e560c6cb94a35b370eb7a07b', '2019-05-02');\nINSERT INTO `user` VALUES (263, 'salemanager', '我是销售主管', '40fd0e9ba2e7241cb04c49a7663464c1', '2019-05-06');\nINSERT INTO `user` VALUES (264, 'saler', '我是销售员', '846366204c8cc44abdedf5f201da0b00', '2019-05-20');\nINSERT INTO `user` VALUES (265, 'casual', '我是临时工', '130131080b677e15df326f8114c426a3', '2019-05-04');\n\n-- ----------------------------\n-- Records of user_role\n-- ----------------------------\nINSERT INTO `user_role` VALUES (265, 5);\nINSERT INTO `user_role` VALUES (264, 4);\nINSERT INTO `user_role` VALUES (263, 3);\nINSERT INTO `user_role` VALUES (262, 2);\nINSERT INTO `user_role` VALUES (221, 1);\nINSERT INTO `user_role` VALUES (221, 5);\n"
  },
  {
    "path": "src/main/resources/springmvc.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<beans xmlns=\"http://www.springframework.org/schema/beans\"\n\txmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n\txmlns:mvc=\"http://www.springframework.org/schema/mvc\"\n\txmlns:context=\"http://www.springframework.org/schema/context\"\n\txmlns:aop=\"http://www.springframework.org/schema/aop\"\n\txmlns:tx=\"http://www.springframework.org/schema/tx\"\n\txsi:schemaLocation=\"http://www.springframework.org/schema/beans \n\t\thttp://www.springframework.org/schema/beans/spring-beans-4.2.xsd \n\t\thttp://www.springframework.org/schema/mvc \n\t\thttp://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd \n\t\thttp://www.springframework.org/schema/context \n\t\thttp://www.springframework.org/schema/context/spring-context-4.2.xsd \n\t\thttp://www.springframework.org/schema/aop \n\t\thttp://www.springframework.org/schema/aop/spring-aop-4.2.xsd \n\t\thttp://www.springframework.org/schema/tx \n\t\thttp://www.springframework.org/schema/tx/spring-tx-4.2.xsd \">\n\n\t<!-- 扫描所有的controller 但是不扫描service -->\n\t<context:component-scan\n\t\tbase-package=\"cn.lastwhisper.modular.controller\">\n\t\t<context:include-filter type=\"annotation\"\n\t\t\texpression=\"org.springframework.stereotype.Controller\" />\n\t\t<context:exclude-filter type=\"annotation\"\n\t\t\texpression=\"org.springframework.stereotype.Service\" />\n\t</context:component-scan>\n\n\t<!-- 注解实例化控制层 -->\n\t<mvc:annotation-driven />\n\n\t<!-- 配置多媒体处理器 -->\n\t<!-- 注意：这里id必须填写：multipartResolver -->\n\t<bean id=\"multipartResolver\"\n\t\tclass=\"org.springframework.web.multipart.commons.CommonsMultipartResolver\">\n\t\t<!-- 最大上传文件大小 -->\n\t\t<property name=\"maxUploadSize\" value=\"8388608\" />\n\t</bean>\n</beans>\n\t\t\n\t\t"
  },
  {
    "path": "src/main/resources/sqlMapConfig.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE configuration\nPUBLIC \"-//mybatis.org//DTD Config 3.0//EN\"\n\"http://mybatis.org/dtd/mybatis-3-config.dtd\">\n<configuration>\n\t<settings>\n\t\t<!-- 全局性设置懒加载。如果设为‘false'，则所有相关联的都会被初始化加载。 -->\n\t\t<setting name=\"lazyLoadingEnabled\" value=\"true\" />\n\t\t<!-- 当设置为‘true'的时候，懒加载的对象可能被任何懒属性全部加载。否则，每个属性都按需加载。 -->\n\t\t<setting name=\"aggressiveLazyLoading\" value=\"false\" />\n\t</settings>\n\t<!-- 配置别名 -->\n\t<typeAliases>\n\t\t<!-- 批量扫描别名 -->\n\t\t<package name=\"cn.lastwhisper.modular.pojo\" />\n\t</typeAliases>\n\t<!-- 由于整合不在此处扫描mapper包 -->\n\t<!-- 配置分页插件 -->\n    <plugins>\n        <plugin interceptor=\"com.github.pagehelper.PageHelper\">\n            <!-- 设置数据库类型 Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库-->        \n            <property name=\"dialect\" value=\"mysql\"/>\n        </plugin>\n    </plugins>\n</configuration>\n"
  },
  {
    "path": "src/main/webapp/WEB-INF/web.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<web-app xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n\txmlns=\"http://java.sun.com/xml/ns/javaee\"\n\txsi:schemaLocation=\"http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd\"\n\tversion=\"2.5\">\n\t<display-name>permission</display-name>\n\t<!-- Spring初始化 -->\n\t<listener>\n\t\t<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>\n\t</listener>\n\t<context-param>\n\t\t<param-name>contextConfigLocation</param-name>\n\t\t<param-value>classpath*:applicationContext*.xml</param-value>\n\t</context-param>\n\t\n\t\t<context-param>\n\t\t<param-name>spring.profiles.active</param-name>\n\t\t<param-value>dev</param-value>\n\t</context-param>\n\t<context-param>\n\t\t<param-name>spring.profiles.default</param-name>\n\t\t<param-value>dev</param-value>\n\t</context-param>\n\t<context-param>\n\t\t<param-name>spring.liveBeansView.mbeanDomain</param-name>\n\t\t<param-value>dev</param-value>\n\t</context-param>\n\n\t<!-- shiro过滤器 -->\n\t<filter>\n\t\t<filter-name>shiroFilter</filter-name>\n\t\t<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>\n\t</filter>\n\t<filter-mapping>\n\t\t<filter-name>shiroFilter</filter-name>\n\t\t<url-pattern>*.html</url-pattern>\n\t\t<url-pattern>*</url-pattern>\n\t</filter-mapping>\n\n\t<servlet-mapping>\n\t\t<servlet-name>default</servlet-name>\n\t\t<url-pattern>*.html</url-pattern>\n\t\t<url-pattern>/adminjs/*</url-pattern>\n\t\t<url-pattern>/css/*</url-pattern>\n\t\t<url-pattern>/images/*</url-pattern>\n\t\t<url-pattern>/js/*</url-pattern>\n\t\t<url-pattern>/ui/*</url-pattern>\n\t</servlet-mapping>\n\t<!-- springmvc初始化 -->\n\t<servlet>\n\t\t<servlet-name>springmvc</servlet-name>\n\t\t<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>\n\t\t<init-param>\n\t\t\t<param-name>contextConfigLocation</param-name>\n\t\t\t<param-value>classpath:springmvc.xml</param-value>\n\t\t</init-param>\n\t</servlet>\n\t<servlet-mapping>\n\t\t<servlet-name>springmvc</servlet-name>\n\t\t<url-pattern>/</url-pattern>\n\t</servlet-mapping>\n\t<!-- post请求utf-8编码 -->\n\t<filter>\n\t\t<filter-name>characterEncodingFilter</filter-name>\n\t\t<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>\n\t\t<init-param>\n\t\t\t<param-name>encoding</param-name>\n\t\t\t<param-value>UTF-8</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>forceEncoding</param-name>\n\t\t\t<param-value>true</param-value>\n\t\t</init-param>\n\t</filter>\n\t<filter-mapping>\n\t\t<filter-name>characterEncodingFilter</filter-name>\n\t\t<url-pattern>/*</url-pattern>\n\t</filter-mapping>\n\n\t<!-- druid监控 -->\n\t<servlet>\n\t\t<servlet-name>DruidStatView</servlet-name>\n\t\t<servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>\n\t</servlet>\n\t<servlet-mapping>\n\t\t<servlet-name>DruidStatView</servlet-name>\n\t\t<url-pattern>/druid/*</url-pattern>\n\t</servlet-mapping>\n\t\n\t<!-- 添加Web应用等监控 -->\n\t<filter>\n\t\t<filter-name>DruidWebStatFilter</filter-name>\n\t\t<filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class>\n\t\t<init-param>\n\t\t\t<param-name>exclusions</param-name>\n\t\t\t<param-value>*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>profileEnable</param-name>\n\t\t\t<param-value>true</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>principalCookieName</param-name>\n\t\t\t<param-value>USER_COOKIE</param-value>\n\t\t</init-param>\n\t\t<init-param>\n\t\t\t<param-name>principalSessionName</param-name>\n\t\t\t<param-value>USER_SESSION</param-value>\n\t\t</init-param>\n\t</filter>\n\t<filter-mapping>\n\t\t<filter-name>DruidWebStatFilter</filter-name>\n\t\t<url-pattern>/*</url-pattern>\n\t</filter-mapping>\n\n\t<welcome-file-list>\n\t\t<welcome-file>login.html</welcome-file>\n\t\t<welcome-file>index.html</welcome-file>\n\t\t<welcome-file>default.html</welcome-file>\n\t\t<welcome-file>default.htm</welcome-file>\n\t\t<welcome-file>default.jsp</welcome-file>\n\t</welcome-file-list>\n</web-app>"
  },
  {
    "path": "src/main/webapp/adminjs/index.js",
    "content": "window.onload = function () {\n    $('#loading-mask').fadeOut();\n};\nvar onlyOpenTitle = \"欢迎使用\";// 不允许关闭的标签的标题\n\nvar _menus = {\n    \"icon\": \"icon-sys\",\n    \"menuid\": \"0\",\n    \"menuname\": \"系统菜单\",\n    \"menus\": [{\n        \"icon\": \"icon-sys\",\n        \"menuid\": \"100\",\n        \"menuname\": \"基础数据\",\n        \"menus\": [{\n            \"icon\": \"icon-sys\",\n            \"menuid\": \"101\",\n            \"menuname\": \"商品类型管理\",\n            \"url\": \"goodstype.html\"\n        }, {\n            \"icon\": \"icon-sys\",\n            \"menuid\": \"102\",\n            \"menuname\": \"商品管理\",\n            \"url\": \"goods.html\"\n        }]\n    }]\n};\nvar interval = '';\n\n$(function () {\n\n    // 显示登陆用户名\n    showName();\n    // 获取菜单数据\n    $.ajax({\n        url: 'menu/loadMenus',\n        type: 'post',\n        dataType: 'json',\n        success: function (rtn) {\n            // 给菜单赋值\n            _menus = rtn;\n            InitLeftMenu();\n        }\n    });\n    // 初始化标签页\n    tabClose();\n    tabCloseEven();\n    // 安全退出\n    $('#loginOut').bind('click', function () {\n        $.ajax({\n            url: 'user/logout',\n            success: function () {\n                location.href = \"login.html\";\n            }\n        });\n    });\n\n    // 定时加载start的弹窗\n    // start();\n    // interval = window.setInterval(function () {\n    //     start();\n    // }, 7000);\n\n});\n\n/**\n * 取消定时任务\n */\nfunction cancelStart() {\n    window.clearInterval(interval);\n}\n\n/**\n * 页面加载时右下角弹出提示审批框操作\n */\nfunction start() {\n    $.messager.show({\n        title: '公告',\n        msg: '测试消息：<font size=\"4\" > 给个start呗 </font><br />' +\n            '&nbsp;&nbsp;&nbsp;<a target=\"_blank\" style=\"color:red;size:3\" href=\"https://github.com/ggb2312/Permission\" >给</a> ' +\n            '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"javascript:void(0);\">不给</a>' +\n            '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"javascript:void(0);\" onclick=\"cancelStart()\">不在弹出</a>',\n        timeout: 5000,\n        showType: 'slide',\n    });\n}\n\n/**\n * 显示登陆用户名\n */\nfunction showName() {\n    $.ajax({\n        url: 'user/showName',\n        dataType: 'json',\n        contentType: 'utf-8',\n        success: function (rtn) {\n            if (rtn.status == 200) {\n                $('#user_name').html(rtn.msg);\n            } else if (rtn.status == 400) {\n                $.messager.confirm('确认对话框', '您未登录，请先登录系统！！！', function (r) {\n                    if (r) {\n                        window.location.href = \"login.html\";\n                    } else {\n                        window.location.href = \"login.html\";\n                    }\n                });\n            }\n        }\n    });\n}\n\n// 初始化左侧\nfunction InitLeftMenu() {\n    $(\"#nav\").accordion({\n        animate: true,\n        fit: true,\n        border: true\n    });\n    var selectedPanelname = '';\n\n    $.each(_menus.menus, function (i, n) {\n        var menulist = '';\n        menulist += '<ul class=\"navlist\">';\n        $.each(n.menus, function (j, o) {\n            menulist += '<li><div ><a ref=\"' + o.menuid + '\" href=\"#\" rel=\"'\n                + o.url + '\" ><span class=\"icon ' + o.icon\n                + '\" >&nbsp;</span><span class=\"nav\">' + o.menuname\n                + '</span></a></div> ';\n\n//\t\t\t  if(o.child && o.child.length>0) {\n//\t\t\t  // li.find('div').addClass('icon-arrow');\n//\t\t\t  \n//\t\t\t  menulist += '<ul class=\"third_ul\">';\n//\t\t\t  $.each(o.child,function(k,p){ menulist += '<li><div><a\n//\t\t\t  ref=\"'+p.menuid+'\" href=\"#\" rel=\"' + p.url + '\" ><span\n//\t\t\t  class=\"icon '+p.icon+'\" >&nbsp;</span><span class=\"nav\">' +\n//\t\t\t  p.menuname + '</span></a></div> </li>' }); menulist += '</ul>'; }\n\n            menulist += '</li>';\n        })\n        menulist += '</ul>';\n\n        $('#nav').accordion('add', {\n            title: n.menuname,\n            content: menulist,\n            border: false,\n            iconCls: 'icon ' + n.icon\n        });\n\n        if (i == 0)\n            selectedPanelname = n.menuname;\n\n    });\n\n    $('#nav').accordion('select', selectedPanelname);\n\n    $('.navlist li a').click(function () {\n        var tabTitle = $(this).children('.nav').text();\n\n        var url = $(this).attr(\"rel\");\n        var menuid = $(this).attr(\"ref\");\n        var icon = $(this).find('.icon').attr('class');\n\n        var third = find(menuid);\n        if (third && third.child && third.child.length > 0) {\n            $('.third_ul').slideUp();\n\n            var ul = $(this).parent().next();\n            if (ul.is(\":hidden\"))\n                ul.slideDown();\n            else\n                ul.slideUp();\n        } else {\n            addTab(tabTitle, url, icon);\n            $('.navlist li div').removeClass(\"selected\");\n            $(this).parent().addClass(\"selected\");\n        }\n    }).hover(function () {\n        $(this).parent().addClass(\"hover\");\n    }, function () {\n        $(this).parent().removeClass(\"hover\");\n    });\n    // 选中第一个\n//\t var panels = $('#nav').accordion('panels');\n//\t var t = panels[0].panel('options').title;\n//\t $('#nav').accordion('select', t);\n}\n\n// 获取左侧导航的图标\nfunction getIcon(menuid) {\n    var icon = 'icon ';\n    $.each(_menus.menus, function (i, n) {\n        $.each(n.menus, function (j, o) {\n            if (o.menuid == menuid) {\n                icon += o.icon;\n            }\n        })\n    })\n\n    return icon;\n}\n\nfunction find(menuid) {\n    var obj = null;\n    $.each(_menus.menus, function (i, n) {\n        $.each(n.menus, function (j, o) {\n            if (o.menuid == menuid) {\n                obj = o;\n            }\n        });\n    });\n\n    return obj;\n}\n\nfunction addTab(subtitle, url, icon) {\n    if (!$('#tabs').tabs('exists', subtitle)) {\n        $('#tabs').tabs('add', {\n            title: subtitle,\n            content: createFrame(url),\n            closable: true,\n            icon: icon\n        });\n    } else {\n        $('#tabs').tabs('select', subtitle);\n        $('#mm-tabupdate').click();\n    }\n    tabClose();\n}\n\nfunction createFrame(url) {\n    var s = '<iframe scrolling=\"auto\" frameborder=\"0\"  src=\"' + url\n        + '\" style=\"width:100%;height:100%;\"></iframe>';\n    return s;\n}\n\nfunction tabClose() {\n    /* 双击关闭TAB选项卡 */\n    $(\".tabs-inner\").dblclick(function () {\n        var subtitle = $(this).children(\".tabs-closable\").text();\n        $('#tabs').tabs('close', subtitle);\n    })\n    /* 为选项卡绑定右键 */\n    $(\".tabs-inner\").bind('contextmenu', function (e) {\n        $('#mm').menu('show', {\n            left: e.pageX,\n            top: e.pageY\n        });\n\n        var subtitle = $(this).children(\".tabs-closable\").text();\n\n        $('#mm').data(\"currtab\", subtitle);\n        $('#tabs').tabs('select', subtitle);\n        return false;\n    });\n}\n\n// 绑定右键菜单事件\nfunction tabCloseEven() {\n\n    $('#mm').menu({\n        onClick: function (item) {\n            closeTab(item.id);\n        }\n    });\n\n    return false;\n}\n\nfunction closeTab(action) {\n    var alltabs = $('#tabs').tabs('tabs');\n    var currentTab = $('#tabs').tabs('getSelected');\n    var allTabtitle = [];\n    $.each(alltabs, function (i, n) {\n        allTabtitle.push($(n).panel('options').title);\n    })\n\n    switch (action) {\n        case \"refresh\":\n            var iframe = $(currentTab.panel('options').content);\n            var src = iframe.attr('src');\n            $('#tabs').tabs('update', {\n                tab: currentTab,\n                options: {\n                    content: createFrame(src)\n                }\n            })\n            break;\n        case \"close\":\n            var currtab_title = currentTab.panel('options').title;\n            $('#tabs').tabs('close', currtab_title);\n            break;\n        case \"closeall\":\n            $.each(allTabtitle, function (i, n) {\n                if (n != onlyOpenTitle) {\n                    $('#tabs').tabs('close', n);\n                }\n            });\n            break;\n        case \"closeother\":\n            var currtab_title = currentTab.panel('options').title;\n            $.each(allTabtitle, function (i, n) {\n                if (n != currtab_title && n != onlyOpenTitle) {\n                    $('#tabs').tabs('close', n);\n                }\n            });\n            break;\n        case \"closeright\":\n            var tabIndex = $('#tabs').tabs('getTabIndex', currentTab);\n\n            if (tabIndex == alltabs.length - 1) {\n                alert('亲，后边没有啦 ^@^!!');\n                return false;\n            }\n            $.each(allTabtitle, function (i, n) {\n                if (i > tabIndex) {\n                    if (n != onlyOpenTitle) {\n                        $('#tabs').tabs('close', n);\n                    }\n                }\n            });\n\n            break;\n        case \"closeleft\":\n            var tabIndex = $('#tabs').tabs('getTabIndex', currentTab);\n            if (tabIndex == 1) {\n                alert('亲，前边那个上头有人，咱惹不起哦。 ^@^!!');\n                return false;\n            }\n            $.each(allTabtitle, function (i, n) {\n                if (i < tabIndex) {\n                    if (n != onlyOpenTitle) {\n                        $('#tabs').tabs('close', n);\n                    }\n                }\n            });\n\n            break;\n        case \"exit\":\n            $('#closeMenu').menu('hide');\n            break;\n    }\n}\n\n// 弹出信息窗口 title:标题 msgString:提示信息 msgType:信息类型 [error,info,question,warning]\nfunction msgShow(title, msgString, msgType) {\n    $.messager.alert(title, msgString, msgType);\n}\n\n// 设置登录窗口\nfunction openPwd() {\n    $('#w').dialog({\n        title: '修改密码',\n        width: 300,\n        height: 180,\n        modal: true,\n        closed: true,\n        buttons: [{\n            text: '保存',\n            iconCls: 'icon-save',\n            handler: function () {\n                // 提交保存\n                var oldPwd = $('#txtOldPass').val();\n                var newPwd = $('#txtNewPass').val();\n                var rePwd = $('#txtRePass').val();\n\n                if (oldPwd === '') {\n                    $.messager.alert('提示', '原密码不能为空', 'info');\n                    return;\n                }\n\n                if (newPwd === '') {\n                    $.messager.alert('提示', '新密码不能为空', 'info');\n                    return;\n                }\n\n                if (rePwd !== newPwd) {\n                    $.messager.alert('提示', '确认密码不一致', 'info');\n                    return;\n                }\n\n                $.ajax({\n                    url: 'user/updatePwd',\n                    data: {\n                        \"oldPwd\": oldPwd,\n                        \"newPwd\": newPwd\n                    },\n                    dataType: 'json',\n                    type: 'post',\n                    success: function (rtn) {\n                        $.messager.alert('提示', rtn.msg, 'info', function () {\n                            if (rtn.status === 200) {\n                                $('#w').dialog('close');\n                                // 清空内容\n                                $('#txtOldPass').val('');\n                                $('#txtNewPass').val('');\n                                $('#txtRePass').val('');\n                            }\n                        });\n                    }\n                });\n            }\n        }, {\n            text: '关闭',\n            iconCls: 'icon-cancel',\n            handler: function () {\n\n            }\n        }]\n    });\n}\n\n// 关闭登录窗口\nfunction closePwd() {\n    $('#w').window('close');\n}\n\n// 修改密码\nfunction serverLogin() {\n    var $newpass = $('#txtNewPass');\n    var $rePass = $('#txtRePass');\n\n    if ($newpass.val() === '') {\n        msgShow('系统提示', '请输入密码！', 'warning');\n        return false;\n    }\n    if ($rePass.val() === '') {\n        msgShow('系统提示', '请在一次输入密码！', 'warning');\n        return false;\n    }\n\n    if ($newpass.val() !== $rePass.val()) {\n        msgShow('系统提示', '两次密码不一至！请重新输入', 'warning');\n        return false;\n    }\n\n    $.post('/ajax/editpassword.ashx?newpass=' + $newpass.val(), function (msg) {\n        msgShow('系统提示', '恭喜，密码修改成功！<br>您的新密码为：' + msg, 'info');\n        $newpass.val('');\n        $rePass.val('');\n        close();\n    })\n\n}\n\n$(function () {\n    openPwd();\n    $('#editpass').click(function () {\n        $('#w').window('open');\n    });\n    $('#btnEp').click(function () {\n        serverLogin();\n    });\n    $('#btnCancel').click(function () {\n        closePwd();\n    })\n\n});\n"
  },
  {
    "path": "src/main/webapp/adminjs/themes/default/accordion.css",
    "content": ".accordion{\n\tbackground:#fff;\n\toverflow:hidden;\n}\n.accordion .accordion-header{\n\tbackground:#E0ECFF;\n\tborder-top-width:0;\n\tcursor:pointer;\n}\n.accordion .accordion-header .panel-title{\n\tfont-weight:normal;\n}\n.accordion .accordion-header-selected .panel-title{\n\tfont-weight:bold;\n}\n.accordion-noborder .accordion-header{\n\tborder-width:0 0 1px;\n}\n.accordion-noborder .accordion-body{\n\tborder-width:0px;\n}\n.accordion-collapse{\n\tbackground:url('images/accordion_collapse.png') no-repeat;\n}\n.accordion-expand{\n\tbackground:url('images/accordion_expand.png') no-repeat;\n}\n"
  },
  {
    "path": "src/main/webapp/adminjs/themes/default/calendar.css",
    "content": ".calendar{\n\tbackground:#fff;\n\tborder:1px solid #A4BED4;\n\tpadding:1px;\n\toverflow:hidden;\n}\n.calendar-noborder{\n\tborder:0px;\n}\n.calendar-header{\n\tposition:relative;\n\tbackground:#E0ECFF;\n\tfont-size:12px;\n\theight:22px;\n}\n.calendar-title{\n\ttext-align:center;\n\theight:22px;\n}\n.calendar-title span{\n\tposition:relative;\n\ttop:2px;\n\tline-height:12px;\n\tdisplay:inline-block;\n\tpadding:3px;\n\tcursor:pointer;\n\t-moz-border-radius:4px;\n\t-webkit-border-radius:4px;\n}\n.calendar-prevmonth,.calendar-nextmonth,.calendar-prevyear,.calendar-nextyear{\n\tposition:absolute;\n\ttop:4px;\n\twidth:14px;\n\theight:14px;\n\tline-height:12px;\n\tcursor:pointer;\n\tfont-size:1px;\n\t-moz-border-radius:4px;\n\t-webkit-border-radius:4px;\n}\n.calendar-prevmonth{\n\tleft:20px;\n\tbackground:url('images/calendar_prevmonth.gif') no-repeat 3px 2px;\n}\n.calendar-nextmonth{\n\tright:20px;\n\tbackground:url('images/calendar_nextmonth.gif') no-repeat 3px 2px;\n}\n.calendar-prevyear{\n\tleft:3px;\n\tbackground:url('images/calendar_prevyear.gif') no-repeat 1px 2px;\n}\n.calendar-nextyear{\n\tright:3px;\n\tbackground:url('images/calendar_nextyear.gif') no-repeat 1px 2px;\n}\n.calendar-body{\n\tfont-size:12px;\n\tposition:relative;\n}\n.calendar-body table{\n\twidth:100%;\n\theight:100%;\n\tborder:1px solid #eee;\n\tfont-size:12px;\n}\n.calendar-body th,.calendar-body td{\n\ttext-align:center;\n}\n.calendar-body th{\n\tbackground:#fafafa;\n\tcolor:#888;\n}\n.calendar-day{\n\tcolor:#222;\n\tcursor:pointer;\n\tborder:1px solid #fff;\n\t-moz-border-radius:4px;\n\t-webkit-border-radius:4px;\n}\n.calendar-sunday{\n\tcolor:#CC2222;\n}\n.calendar-saturday{\n\tcolor:#00ee00;\n}\n.calendar-today{\n\tcolor:#0000ff;\n}\n.calendar-other-month{\n\topacity:0.3;\n\tfilter:alpha(opacity=30);\n}\n.calendar-hover{\n\tborder:1px solid red;\n}\n.calendar-selected{\n\tbackground:#FBEC88;\n\tborder:1px solid red;\n}\n.calendar-nav-hover{\n\tbackground-color:#FBEC88;\n}\n\n\n.calendar-menu{\n\tposition:absolute;\n\ttop:0px;\n\tleft:0px;\n\twidth:180px;\n\theight:150px;\n\tpadding:5px;\n\tfont-size:12px;\n\tbackground:#fafafa;\n\topacity:0.8;\n\tfilter:alpha(opacity=80);\n\tdisplay:none;\n\toverflow:hidden;\n}\n.calendar-menu-year-inner{\n\ttext-align:center;\n\tpadding-bottom:5px;\n}\n.calendar-menu-year{\n\twidth:40px;\n\ttext-align:center;\n\tborder:1px solid #ccc;\n\tpadding:2px;\n\tfont-weight:bold;\n}\n.calendar-menu-prev,.calendar-menu-next{\n\tdisplay:inline-block;\n\twidth:21px;\n\theight:21px;\n\tvertical-align:top;\n\tcursor:pointer;\n}\n.calendar-menu-prev{\n\tmargin-right:10px;\n\tbackground:url('images/calendar_prevyear.gif') no-repeat 5px 6px;\n}\t\n.calendar-menu-next{\n\tmargin-left:10px;\n\tbackground:url('images/calendar_nextyear.gif') no-repeat 5px 6px;\n}\n.calendar-menu-hover{\n\tbackground-color:#FBEC88;\n}\n.calendar-menu-month-inner table{\n\twidth:100%;\n\theight:100%;\n}\n.calendar-menu-month{\n\ttext-align:center;\n\tcursor:pointer;\n\tborder:1px solid #fafafa;\n\tfont-weight:bold;\n\tcolor:#666;\n\t-moz-border-radius:4px;\n\t-webkit-border-radius:4px;\n}\n"
  },
  {
    "path": "src/main/webapp/adminjs/themes/default/combo.css",
    "content": ".combo{\n\tdisplay:inline-block;\n\twhite-space:nowrap;\n\tfont-size:12px;\n\tmargin:0;\n\tpadding:0;\n\tborder:1px solid #A4BED4;\n\tbackground:#fff;\n}\n.combo-text{\n\tfont-size:12px;\n\tborder:0px;\n\tline-height:20px;\n\theight:20px;\n\tpadding:0px;\n\t*height:18px;\n\t*line-height:18px;\n\t_height:18px;\n\t_line-height:18px;\n}\n.combo-arrow{\n\tbackground:#E0ECF9 url('images/combo_arrow.gif') no-repeat 3px 4px;\n\twidth:18px;\n\theight:20px;\n\toverflow:hidden;\n\tdisplay:inline-block;\n\tvertical-align:top;\n\tcursor:pointer;\n\topacity:0.6;\n\tfilter:alpha(opacity=60);\n}\n.combo-arrow-hover{\n\topacity:1.0;\n\tfilter:alpha(opacity=100);\n}\n.combo-panel{\n\tbackground:#fff;\n\toverflow:auto;\n}\n"
  },
  {
    "path": "src/main/webapp/adminjs/themes/default/combobox.css",
    "content": ".combobox-item{\n\tpadding:2px;\n\tfont-size:12px;\n\tpadding:3px;\n\tpadding-right:0px;\n}\n.combobox-item-hover{\n\tbackground:#fafafa;\n}\n.combobox-item-selected{\n\tbackground:#FBEC88;\n}"
  },
  {
    "path": "src/main/webapp/adminjs/themes/default/datagrid.css",
    "content": ".datagrid .panel-body{\n\toverflow:hidden;\n}\n.datagrid-wrap{\n\tposition:relative;\n}\n.datagrid-view{\n\tposition:relative;\n\toverflow:hidden;\n}\n.datagrid-view1{\n\tposition:absolute;\n\toverflow:hidden;\n\tleft:0px;\n\ttop:0px;\n}\n.datagrid-view2{\n\tposition:absolute;\n\toverflow:hidden;\n\tleft:210px;\n\ttop:0px;\n}\n.datagrid-mask{\n\tposition:absolute;\n\tleft:0;\n\ttop:0;\n\tbackground:#ccc;\n\topacity:0.3;\n\tfilter:alpha(opacity=30);\n\tdisplay:none;\n}\n.datagrid-mask-msg{\n\tposition:absolute;\n\tleft:100px;\n\ttop:50px;\n\twidth:auto;\n\theight:16px;\n\tpadding:12px 5px 10px 30px;\n\tbackground:#fff url('images/pagination_loading.gif') no-repeat scroll 5px 10px;\n\tborder:2px solid #6593CF;\n\tcolor:#222;\n\tdisplay:none;\n}\n.datagrid-sort-desc .datagrid-sort-icon{\n\tpadding:2px 13px 3px 0px;\n\tbackground:url('images/datagrid_sort_desc.gif') no-repeat center center;\n}\n.datagrid-sort-asc .datagrid-sort-icon{\n\tpadding:2px 13px 3px 0px;\n\tbackground:url('images/datagrid_sort_asc.gif') no-repeat center center;\n}\n.datagrid-toolbar{\n\theight:28px;\n\tbackground:#efefef;\n\tpadding:1px 2px;\n\tborder-bottom:1px solid #ccc;\n}\n.datagrid-btn-separator{\n\tfloat:left;\n\theight:24px;\n\tborder-left:1px solid #ccc;\n\tborder-right:1px solid #fff;\n\tmargin:2px 1px;\n}\n.datagrid-pager{\n\tbackground:#efefef;\n\tborder-top:1px solid #ccc;\n\tposition:relative;\n}\n\n.datagrid-header{\n\toverflow:hidden;\n\tbackground:#fafafa url('images/datagrid_header_bg.gif') repeat-x left bottom;\n\tborder-bottom:1px solid #ccc;\n\tcursor:default;\n}\n.datagrid-header-inner{\n\tfloat:left;\n\twidth:10000px;\n}\n.datagrid-header td{\n\tborder-right:1px dotted #ccc;\n\tfont-size:12px;\n\tfont-weight:normal;\n\tbackground:#fafafa url('images/datagrid_header_bg.gif') repeat-x left bottom;\n\tborder-bottom:1px dotted #ccc;\n\tborder-top:1px dotted #fff;\n}\n.datagrid-header td.datagrid-header-over{\n\tbackground:#EBF3FD;\n}\n.datagrid-header .datagrid-cell{\n\tmargin:0;\n\tpadding:3px 4px;\n\twhite-space:nowrap;\n\tword-wrap:normal;\n\toverflow:hidden;\n\ttext-align:center;\n}\n.datagrid-header .datagrid-cell-group{\n\tmargin:0;\n\tpadding:4px 2px 4px 4px;\n\twhite-space:nowrap;\n\tword-wrap:normal;\n\toverflow:hidden;\n\ttext-align:center;\n}\n.datagrid-header-rownumber{\n\twidth:25px;\n\ttext-align:center;\n\tmargin:0px;\n\tpadding:3px 0px;\n}\n.datagrid-td-rownumber{\n\tbackground:#fafafa url('images/datagrid_header_bg.gif') repeat-x left bottom;\n}\n.datagrid-cell-rownumber{\n\twidth:25px;\n\ttext-align:center;\n\tmargin:0px;\n\tpadding:3px 0px;\n\tcolor:#000;\n}\n.datagrid-body{\n\tmargin:0;\n\tpadding:0;\n\toverflow:auto;\n\tzoom:1;\n}\n.datagrid-view1 .datagrid-body-inner{\n\tpadding-bottom:20px;\n}\n.datagrid-view1 .datagrid-body{\n\toverflow:hidden;\n}\n.datagrid-footer{\n\toverflow:hidden;\n}\n.datagrid-footer-inner{\n\tborder-top:1px solid #ccc;\n\twidth:10000px;\n\tfloat:left;\n}\n.datagrid-body td,.datagrid-footer td{\n\tfont-size:12px;\n\tborder-right:1px dotted #ccc;\n\tborder-bottom:1px dotted #ccc;\n\toverflow:hidden;\n\tpadding:0;\n\tmargin:0;\n}\n.datagrid-body .datagrid-cell,.datagrid-footer .datagrid-cell{\n\toverflow:hidden;\n\tmargin:0;\n\tpadding:0px 4px;\n\twhite-space:nowrap;\n\tword-wrap:normal;\n\theight:18px;\n\tline-height:18px;\n}\n.datagrid-row-editing .datagrid-cell{\n\theight:auto;\n}\n.datagrid-header-check{\n\tpadding:3px 6px;\n}\n.datagrid-cell-check{\n\tpadding:3px 6px;\n\tfont-size:1px;\n\toverflow:hidden;\n}\n.datagrid-header-check input{\n\tmargin:0;\n\tpadding:0;\n\twidth:15px;\n\theight:15px;\n}\n.datagrid-cell-check input{\n\tmargin:0;\n\tpadding:0;\n\twidth:15px;\n\theight:15px;\n}\n.datagrid-row{\n\theight:25px;\n}\n.datagrid-row-collapse{\n\tbackground:url('images/datagrid_row_collapse.gif') no-repeat center center;\n}\n.datagrid-row-expand{\n\tbackground:url('images/datagrid_row_expand.gif') no-repeat center center;\n}\n.datagrid-row-alt{\n\tbackground:#EEEEFF;\n}\n.datagrid-row-over{\n\tbackground:#D0E5F5;\n\tcursor:default;\n}\n.datagrid-row-selected{\n\tbackground:#FBEC88;\n}\n.datagrid-resize-proxy{\n\tposition:absolute;\n\twidth:1px;\n\ttop:0;\n\theight:10000px;\n\tbackground:red;\n\tcursor:e-resize;\n\tdisplay:none;\n}\n.datagrid-body .datagrid-editable{\n\tpadding:0;\n}\n.datagrid-body .datagrid-editable table{\n\twidth:100%;\n\theight:100%;\n}\n.datagrid-body .datagrid-editable td{\n\tborder:0;\n\tpadding:0;\n}\n.datagrid-body .datagrid-editable .datagrid-editable-input{\n\twidth:100%;\n\tfont-size:12px;\n\tborder:1px solid #A4BED4;\n\tpadding:3px 2px;\n}\n"
  },
  {
    "path": "src/main/webapp/adminjs/themes/default/datebox.css",
    "content": ".datebox .combo-arrow{\n\tbackground:url('images/datebox_arrow.png') no-repeat center center;\n}\n.datebox-calendar-inner{\n\theight:180px;\n}\n.datebox-button{\n\theight:18px;\n\tpadding:2px 5px;\n\tfont-size:12px;\n\tbackground-color:#fafafa;\n\ttext-align:center;\n}\n.datebox-current,.datebox-close{\n\tfloat:left;\n\tcolor:#888;\n\ttext-decoration:none;\n\tfont-weight:bold;\n}\n.datebox-close{\n\tfloat:right;\n}\n.datebox-ok{\n\tcolor:#888;\n\ttext-decoration:none;\n\tfont-weight:bold;\n}\n.datebox-button-hover{\n\tcolor:#A4BED4;\n}\n"
  },
  {
    "path": "src/main/webapp/adminjs/themes/default/dialog.css",
    "content": ".dialog-content{\n\toverflow:auto;\n}\n.dialog-toolbar{\n\tbackground:#fafafa;\n\tpadding:2px 5px;\n\tborder-bottom:1px solid #eee;\n}\n.dialog-tool-separator{\n\tfloat:left;\n\theight:24px;\n\tborder-left:1px solid #ccc;\n\tborder-right:1px solid #fff;\n\tmargin:2px 1px;\n}\n.dialog-button{\n\tborder-top:1px solid #eee;\n\tbackground:#fafafa;\n\tpadding:5px 5px;\n\ttext-align:right;\n}\n.dialog-button .l-btn{\n\tmargin-left:5px;\n}"
  },
  {
    "path": "src/main/webapp/adminjs/themes/default/easyui.css",
    "content": ".accordion{\n\tbackground:#fff;\n\toverflow:hidden;\n}\n.accordion .accordion-header{\n\tbackground:#E0ECFF;\n\tborder-top-width:0;\n\tcursor:pointer;\n}\n.accordion .accordion-header .panel-title{\n\tfont-weight:normal;\n}\n.accordion .accordion-header-selected .panel-title{\n\tfont-weight:bold;\n}\n.accordion-noborder .accordion-header{\n\tborder-width:0 0 1px;\n}\n.accordion-noborder .accordion-body{\n\tborder-width:0px;\n}\n.accordion-collapse{\n\tbackground:url('images/accordion_collapse.png') no-repeat;\n}\n.accordion-expand{\n\tbackground:url('images/accordion_expand.png') no-repeat;\n}\n.calendar{\n\tbackground:#fff;\n\tborder:1px solid #A4BED4;\n\tpadding:1px;\n\toverflow:hidden;\n}\n.calendar-noborder{\n\tborder:0px;\n}\n.calendar-header{\n\tposition:relative;\n\tbackground:#E0ECFF;\n\tfont-size:12px;\n\theight:22px;\n}\n.calendar-title{\n\ttext-align:center;\n\theight:22px;\n}\n.calendar-title span{\n\tposition:relative;\n\ttop:2px;\n\tline-height:12px;\n\tdisplay:inline-block;\n\tpadding:3px;\n\tcursor:pointer;\n\t-moz-border-radius:4px;\n\t-webkit-border-radius:4px;\n}\n.calendar-prevmonth,.calendar-nextmonth,.calendar-prevyear,.calendar-nextyear{\n\tposition:absolute;\n\ttop:4px;\n\twidth:14px;\n\theight:14px;\n\tline-height:12px;\n\tcursor:pointer;\n\tfont-size:1px;\n\t-moz-border-radius:4px;\n\t-webkit-border-radius:4px;\n}\n.calendar-prevmonth{\n\tleft:20px;\n\tbackground:url('images/calendar_prevmonth.gif') no-repeat 3px 2px;\n}\n.calendar-nextmonth{\n\tright:20px;\n\tbackground:url('images/calendar_nextmonth.gif') no-repeat 3px 2px;\n}\n.calendar-prevyear{\n\tleft:3px;\n\tbackground:url('images/calendar_prevyear.gif') no-repeat 1px 2px;\n}\n.calendar-nextyear{\n\tright:3px;\n\tbackground:url('images/calendar_nextyear.gif') no-repeat 1px 2px;\n}\n.calendar-body{\n\tfont-size:12px;\n\tposition:relative;\n}\n.calendar-body table{\n\twidth:100%;\n\theight:100%;\n\tborder:1px solid #eee;\n\tfont-size:12px;\n}\n.calendar-body th,.calendar-body td{\n\ttext-align:center;\n}\n.calendar-body th{\n\tbackground:#fafafa;\n\tcolor:#888;\n}\n.calendar-day{\n\tcolor:#222;\n\tcursor:pointer;\n\tborder:1px solid #fff;\n\t-moz-border-radius:4px;\n\t-webkit-border-radius:4px;\n}\n.calendar-sunday{\n\tcolor:#CC2222;\n}\n.calendar-saturday{\n\tcolor:#00ee00;\n}\n.calendar-today{\n\tcolor:#0000ff;\n}\n.calendar-other-month{\n\topacity:0.3;\n\tfilter:alpha(opacity=30);\n}\n.calendar-hover{\n\tborder:1px solid red;\n}\n.calendar-selected{\n\tbackground:#FBEC88;\n\tborder:1px solid red;\n}\n.calendar-nav-hover{\n\tbackground-color:#FBEC88;\n}\n\n\n.calendar-menu{\n\tposition:absolute;\n\ttop:0px;\n\tleft:0px;\n\twidth:180px;\n\theight:150px;\n\tpadding:5px;\n\tfont-size:12px;\n\tbackground:#fafafa;\n\topacity:0.8;\n\tfilter:alpha(opacity=80);\n\tdisplay:none;\n\toverflow:hidden;\n}\n.calendar-menu-year-inner{\n\ttext-align:center;\n\tpadding-bottom:5px;\n}\n.calendar-menu-year{\n\twidth:40px;\n\ttext-align:center;\n\tborder:1px solid #ccc;\n\tpadding:2px;\n\tfont-weight:bold;\n}\n.calendar-menu-prev,.calendar-menu-next{\n\tdisplay:inline-block;\n\twidth:21px;\n\theight:21px;\n\tvertical-align:top;\n\tcursor:pointer;\n}\n.calendar-menu-prev{\n\tmargin-right:10px;\n\tbackground:url('images/calendar_prevyear.gif') no-repeat 5px 6px;\n}\t\n.calendar-menu-next{\n\tmargin-left:10px;\n\tbackground:url('images/calendar_nextyear.gif') no-repeat 5px 6px;\n}\n.calendar-menu-hover{\n\tbackground-color:#FBEC88;\n}\n.calendar-menu-month-inner table{\n\twidth:100%;\n\theight:100%;\n}\n.calendar-menu-month{\n\ttext-align:center;\n\tcursor:pointer;\n\tborder:1px solid #fafafa;\n\tfont-weight:bold;\n\tcolor:#666;\n\t-moz-border-radius:4px;\n\t-webkit-border-radius:4px;\n}\n.combo{\n\tdisplay:inline-block;\n\twhite-space:nowrap;\n\tfont-size:12px;\n\tmargin:0;\n\tpadding:0;\n\tborder:1px solid #A4BED4;\n\tbackground:#fff;\n}\n.combo-text{\n\tfont-size:12px;\n\tborder:0px;\n\tline-height:20px;\n\theight:20px;\n\tpadding:0px;\n\t*height:18px;\n\t*line-height:18px;\n\t_height:18px;\n\t_line-height:18px;\n}\n.combo-arrow{\n\tbackground:#E0ECF9 url('images/combo_arrow.gif') no-repeat 3px 4px;\n\twidth:18px;\n\theight:20px;\n\toverflow:hidden;\n\tdisplay:inline-block;\n\tvertical-align:top;\n\tcursor:pointer;\n\topacity:0.6;\n\tfilter:alpha(opacity=60);\n}\n.combo-arrow-hover{\n\topacity:1.0;\n\tfilter:alpha(opacity=100);\n}\n.combo-panel{\n\tbackground:#fff;\n\toverflow:auto;\n}\n.combobox-item{\n\tpadding:2px;\n\tfont-size:12px;\n\tpadding:3px;\n\tpadding-right:0px;\n}\n.combobox-item-hover{\n\tbackground:#fafafa;\n}\n.combobox-item-selected{\n\tbackground:#FBEC88;\n}.datagrid .panel-body{\n\toverflow:hidden;\n}\n.datagrid-wrap{\n\tposition:relative;\n}\n.datagrid-view{\n\tposition:relative;\n\toverflow:hidden;\n}\n.datagrid-view1{\n\tposition:absolute;\n\toverflow:hidden;\n\tleft:0px;\n\ttop:0px;\n}\n.datagrid-view2{\n\tposition:absolute;\n\toverflow:hidden;\n\tleft:210px;\n\ttop:0px;\n}\n.datagrid-mask{\n\tposition:absolute;\n\tleft:0;\n\ttop:0;\n\tbackground:#ccc;\n\topacity:0.3;\n\tfilter:alpha(opacity=30);\n\tdisplay:none;\n}\n.datagrid-mask-msg{\n\tposition:absolute;\n\tleft:100px;\n\ttop:50px;\n\twidth:auto;\n\theight:16px;\n\tpadding:12px 5px 10px 30px;\n\tbackground:#fff url('images/pagination_loading.gif') no-repeat scroll 5px 10px;\n\tborder:2px solid #6593CF;\n\tcolor:#222;\n\tdisplay:none;\n}\n.datagrid-sort-desc .datagrid-sort-icon{\n\tpadding:2px 13px 3px 0px;\n\tbackground:url('images/datagrid_sort_desc.gif') no-repeat center center;\n}\n.datagrid-sort-asc .datagrid-sort-icon{\n\tpadding:2px 13px 3px 0px;\n\tbackground:url('images/datagrid_sort_asc.gif') no-repeat center center;\n}\n.datagrid-toolbar{\n\theight:28px;\n\tbackground:#efefef;\n\tpadding:1px 2px;\n\tborder-bottom:1px solid #ccc;\n}\n.datagrid-btn-separator{\n\tfloat:left;\n\theight:24px;\n\tborder-left:1px solid #ccc;\n\tborder-right:1px solid #fff;\n\tmargin:2px 1px;\n}\n.datagrid-pager{\n\tbackground:#efefef;\n\tborder-top:1px solid #ccc;\n\tposition:relative;\n}\n\n.datagrid-header{\n\toverflow:hidden;\n\tbackground:#fafafa url('images/datagrid_header_bg.gif') repeat-x left bottom;\n\tborder-bottom:1px solid #ccc;\n\tcursor:default;\n}\n.datagrid-header-inner{\n\tfloat:left;\n\twidth:10000px;\n}\n.datagrid-header td{\n\tborder-right:1px dotted #ccc;\n\tfont-size:12px;\n\tfont-weight:normal;\n\tbackground:#fafafa url('images/datagrid_header_bg.gif') repeat-x left bottom;\n\tborder-bottom:1px dotted #ccc;\n\tborder-top:1px dotted #fff;\n}\n.datagrid-header td.datagrid-header-over{\n\tbackground:#EBF3FD;\n}\n.datagrid-header .datagrid-cell{\n\tmargin:0;\n\tpadding:3px 4px;\n\twhite-space:nowrap;\n\tword-wrap:normal;\n\toverflow:hidden;\n\ttext-align:center;\n}\n.datagrid-header .datagrid-cell-group{\n\tmargin:0;\n\tpadding:4px 2px 4px 4px;\n\twhite-space:nowrap;\n\tword-wrap:normal;\n\toverflow:hidden;\n\ttext-align:center;\n}\n.datagrid-header-rownumber{\n\twidth:25px;\n\ttext-align:center;\n\tmargin:0px;\n\tpadding:3px 0px;\n}\n.datagrid-td-rownumber{\n\tbackground:#fafafa url('images/datagrid_header_bg.gif') repeat-x left bottom;\n}\n.datagrid-cell-rownumber{\n\twidth:25px;\n\ttext-align:center;\n\tmargin:0px;\n\tpadding:3px 0px;\n\tcolor:#000;\n}\n.datagrid-body{\n\tmargin:0;\n\tpadding:0;\n\toverflow:auto;\n\tzoom:1;\n}\n.datagrid-view1 .datagrid-body-inner{\n\tpadding-bottom:20px;\n}\n.datagrid-view1 .datagrid-body{\n\toverflow:hidden;\n}\n.datagrid-footer{\n\toverflow:hidden;\n}\n.datagrid-footer-inner{\n\tborder-top:1px solid #ccc;\n\twidth:10000px;\n\tfloat:left;\n}\n.datagrid-body td,.datagrid-footer td{\n\tfont-size:12px;\n\tborder-right:1px dotted #ccc;\n\tborder-bottom:1px dotted #ccc;\n\toverflow:hidden;\n\tpadding:0;\n\tmargin:0;\n}\n.datagrid-body .datagrid-cell,.datagrid-footer .datagrid-cell{\n\toverflow:hidden;\n\tmargin:0;\n\tpadding:0px 4px;\n\twhite-space:nowrap;\n\tword-wrap:normal;\n\theight:18px;\n\tline-height:18px;\n}\n.datagrid-row-editing .datagrid-cell{\n\theight:auto;\n}\n.datagrid-header-check{\n\tpadding:3px 6px;\n}\n.datagrid-cell-check{\n\tpadding:3px 6px;\n\tfont-size:1px;\n\toverflow:hidden;\n}\n.datagrid-header-check input{\n\tmargin:0;\n\tpadding:0;\n\twidth:15px;\n\theight:15px;\n}\n.datagrid-cell-check input{\n\tmargin:0;\n\tpadding:0;\n\twidth:15px;\n\theight:15px;\n}\n.datagrid-row{\n\theight:25px;\n}\n.datagrid-row-collapse{\n\tbackground:url('images/datagrid_row_collapse.gif') no-repeat center center;\n}\n.datagrid-row-expand{\n\tbackground:url('images/datagrid_row_expand.gif') no-repeat center center;\n}\n.datagrid-row-alt{\n\tbackground:#EEEEFF;\n}\n.datagrid-row-over{\n\tbackground:#D0E5F5;\n\tcursor:default;\n}\n.datagrid-row-selected{\n\tbackground:#FBEC88;\n}\n.datagrid-resize-proxy{\n\tposition:absolute;\n\twidth:1px;\n\ttop:0;\n\theight:10000px;\n\tbackground:red;\n\tcursor:e-resize;\n\tdisplay:none;\n}\n.datagrid-body .datagrid-editable{\n\tpadding:0;\n}\n.datagrid-body .datagrid-editable table{\n\twidth:100%;\n\theight:100%;\n}\n.datagrid-body .datagrid-editable td{\n\tborder:0;\n\tpadding:0;\n}\n.datagrid-body .datagrid-editable .datagrid-editable-input{\n\twidth:100%;\n\tfont-size:12px;\n\tborder:1px solid #A4BED4;\n\tpadding:3px 2px;\n}\n.datebox .combo-arrow{\n\tbackground:url('images/datebox_arrow.png') no-repeat center center;\n}\n.datebox-calendar-inner{\n\theight:180px;\n}\n.datebox-button{\n\theight:18px;\n\tpadding:2px 5px;\n\tfont-size:12px;\n\tbackground-color:#fafafa;\n\ttext-align:center;\n}\n.datebox-current,.datebox-close{\n\tfloat:left;\n\tcolor:#888;\n\ttext-decoration:none;\n\tfont-weight:bold;\n}\n.datebox-close{\n\tfloat:right;\n}\n.datebox-ok{\n\tcolor:#888;\n\ttext-decoration:none;\n\tfont-weight:bold;\n}\n.datebox-button-hover{\n\tcolor:#A4BED4;\n}\n.dialog-content{\n\toverflow:auto;\n}\n.dialog-toolbar{\n\tbackground:#fafafa;\n\tpadding:2px 5px;\n\tborder-bottom:1px solid #eee;\n}\n.dialog-tool-separator{\n\tfloat:left;\n\theight:24px;\n\tborder-left:1px solid #ccc;\n\tborder-right:1px solid #fff;\n\tmargin:2px 1px;\n}\n.dialog-button{\n\tborder-top:1px solid #eee;\n\tbackground:#fafafa;\n\tpadding:5px 5px;\n\ttext-align:right;\n}\n.dialog-button .l-btn{\n\tmargin-left:5px;\n}.layout{\n\tposition:relative;\n\toverflow:hidden;\n\tmargin:0;\n\tpadding:0;\n}\n.layout-panel{\n\tposition:absolute;\n\toverflow:hidden;\n}\n.layout-panel-east,.layout-panel-west{\n\tz-index:2;\n}\n.layout-panel-north,.layout-panel-south{\n\tz-index:3;\n}\n.layout-button-up{\n\tbackground:url('images/layout_button_up.gif') no-repeat;\n}\n.layout-button-down{\n\tbackground:url('images/layout_button_down.gif') no-repeat;\n}\n.layout-button-left{\n\tbackground:url('images/layout_button_left.gif') no-repeat;\n}\n.layout-button-right{\n\tbackground:url('images/layout_button_right.gif') no-repeat;\n}\n.layout-expand{\n\tposition:absolute;\n\tpadding:0px 5px;\n\tpadding:0px;\n\tbackground:#D2E0F2;\n\tfont-size:1px;\n\tcursor:pointer;\n\tz-index:1;\n}\n.layout-expand .panel-header{\n\tbackground:transparent;\n\tborder-bottom-width:0px;\n}\n.layout-expand .panel-header .panel-tool{\n\ttop: 5px;\n}\n.layout-expand .panel-body{\n\toverflow:hidden;\n}\n.layout-expand-over{\n\tbackground:#E1F0F2;\n}\n.layout-body{\n\toverflow:auto;\n\tbackground:#fff;\n}\n.layout-split-proxy-h{\n\tposition:absolute;\n\twidth:5px;\n\tbackground:#ccc;\n\tfont-size:1px;\n\tcursor:e-resize;\n\tdisplay:none;\n\tz-index:5;\n}\n.layout-split-proxy-v{\n\tposition:absolute;\n\theight:5px;\n\tbackground:#ccc;\n\tfont-size:1px;\n\tcursor:n-resize;\n\tdisplay:none;\n\tz-index:5;\n}\n.layout-split-north{\n\tborder-bottom:5px solid #D2E0F2;\n}\n.layout-split-south{\n\tborder-top:5px solid #D2E0F2;\n}\n.layout-split-east{\n\tborder-left:5px solid #D2E0F2;\n}\n.layout-split-west{\n\tborder-right:5px solid #D2E0F2;\n}\n.layout-mask{\n\tposition:absolute;\n\tbackground:#fafafa;\n\tfilter:alpha(opacity=10);\n\topacity:0.10;\n\tz-index:4;\n}\n\na.l-btn{\n\tcolor:#444;\n\tbackground:url('images/button_a_bg.gif') no-repeat top right;\n\tfont-size:12px;\n\ttext-decoration:none;\n\tdisplay:inline-block;\n\tzoom:1;\n\theight:24px;\n\tpadding-right:18px;\n\tcursor:pointer;\n\toutline:none;\n}\na.l-btn-plain{\n\tbackground:transparent;\n\tpadding-right:5px;\n\tborder:1px solid transparent;\n\t_border:0px solid #efefef;\n\t_padding:1px 6px 1px 1px;\n}\n\na.l-btn-disabled{\n\tcolor:#ccc;\n\topacity:0.5;\n\tfilter:alpha(opacity=50);\n\tcursor:default;\n}\na.l-btn span.l-btn-left{\n\tdisplay:inline-block;\n\tbackground:url('images/button_span_bg.gif') no-repeat top left;\n\tpadding:4px 0px 4px 18px;\n\tline-height:16px;\n\theight:16px;\n}\na.l-btn-plain span.l-btn-left{\n\tbackground:transparent;\n\tpadding-left:5px;\n}\n\na.l-btn span span.l-btn-text{\n\tdisplay:inline-block;\n\theight:16px;\n\tline-height:16px;\n\tpadding:0px;\n}\na.l-btn span span span.l-btn-empty{\n\tdisplay:inline-block;\n\tpadding:0px;\n\twidth:16px;\n}\na:hover.l-btn{\n\tbackground-position: bottom right;\n\toutline:none;\n}\na:hover.l-btn span.l-btn-left{\n\tbackground-position: bottom left;\n}\n\na:hover.l-btn-plain{\n\tborder:1px solid #7eabcd;\n\tbackground:url('images/button_plain_hover.png') repeat-x left bottom;\n\t_padding:0px 5px 0px 0px;\n\t-moz-border-radius:3px;\n\t-webkit-border-radius: 3px;\n}\na:hover.l-btn-disabled{\n\tbackground-position:top right;\n}\na:hover.l-btn-disabled span.l-btn-left{\n\tbackground-position:top left;\n}\na.l-btn .l-btn-focus{\n\toutline:#0000FF dotted thin;\n}\n.menu{\n\tposition:absolute;\n\tbackground:#f0f0f0 url('images/menu.gif') repeat-y;\n\tmargin:0;\n\tpadding:2px;\n\tborder:1px solid #ccc;\n\toverflow:hidden;\n}\n.menu-item{\n\tposition:relative;\n\tmargin:0;\n\tpadding:0;\n\theight:22px;\n\tline-height:20px;\n\toverflow:hidden;\n\tfont-size:12px;\n\tcursor:pointer;\n\tborder:1px solid transparent;\n\t_border:1px solid #f0f0f0;\n}\n.menu-text{\n\tposition:absolute;\n\tleft:28px;\n\ttop:0px;\n}\n.menu-icon{\n\tposition:absolute;\n\twidth:16px;\n\theight:16px;\n\ttop:3px;\n\tleft:2px;\n}\n.menu-rightarrow{\n\tposition: absolute;\n\twidth:4px;\n\theight:7px;\n\ttop:7px;\n\tright:5px;\n\tbackground:url('images/menu_rightarrow.png') no-repeat;\n}\n.menu-sep{\n\tmargin:3px 0px 3px 24px;\n\tline-height:2px;\n\tfont-size:2px;\n\tbackground:url('images/menu_sep.png') repeat-x;\n}\n.menu-active{\n\tborder:1px solid #7eabcd;\n\tbackground:#fafafa;\n\t-moz-border-radius:3px;\n\t-webkit-border-radius: 3px;\n}\n.menu-shadow{\n\tposition:absolute;\n\tbackground:#ddd;\n\t-moz-border-radius:5px;\n\t-webkit-border-radius: 5px;\n\t-moz-box-shadow: 2px 2px 3px rgba(0, 0, 0, 0.2);\n\t-webkit-box-shadow: 2px 2px 3px rgba(0, 0, 0, 0.2);\n\tfilter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2);\n}\n.menu-item-disabled{\n\topacity:0.5;\n\tfilter:alpha(opacity=50);\n\tcursor:default;\n}\n.menu-active-disabled{\n\tborder-color:#d3d3d3;\n}\n\n.m-btn-downarrow{\n\tdisplay:inline-block;\n\twidth:12px;\n\tline-height:14px;\n\t*line-height:15px;\n\tbackground:url('images/menu_downarrow.png') no-repeat 4px center;\n}\n\na.m-btn-active{\n\tbackground-position: bottom right;\n}\na.m-btn-active span.l-btn-left{\n\tbackground-position: bottom left;\n}\na.m-btn-plain-active{\n\tbackground:transparent;\n\tborder:1px solid #7eabcd;\n\t_padding:0px 5px 0px 0px;\n\t-moz-border-radius:3px;\n\t-webkit-border-radius: 3px;\n}\n.messager-body{\n\tpadding:5px 10px;\n}\n.messager-button{\n\ttext-align:center;\n\tpadding-top:10px;\n}\n.messager-icon{\n\tfloat:left;\n\twidth:47px;\n\theight:35px;\n}\n.messager-error{\n\tbackground:url('images/messager_error.gif') no-repeat scroll left top;\n}\n.messager-info{\n\tbackground:url('images/messager_info.gif') no-repeat scroll left top;\n}\n.messager-question{\n\tbackground:url('images/messager_question.gif') no-repeat scroll left top;\n}\n.messager-warning{\n\tbackground:url('images/messager_warning.gif') no-repeat scroll left top;\n}\n.messager-input{\n\twidth: 262px;\n\tborder:1px solid #ccc;\n}\n.messager-progress{\n\tpadding:10px;\n}\n.messager-p-msg{\n\tmargin-bottom:5px;\n}.pagination{\n\tzoom:1;\n}\n.pagination table{\n\tfloat:left;\n\theight:30px;\n}\n.pagination-btn-separator{\n\tfloat:left;\n\theight:24px;\n\tborder-left:1px solid #ccc;\n\tborder-right:1px solid #fff;\n\tmargin:3px 1px;\n}\n.pagination-num{\n\tborder:1px solid #ccc;\n\tmargin:0 2px;\n}\n.pagination-page-list{\n\tmargin:0px 6px;\n}\n.pagination-info{\n\tfloat:right;\n\tpadding-right:6px;\n\tpadding-top:8px;\n\tfont-size:12px;\n}\n.pagination span{\n\tfont-size:12px;\n}\n.pagination-first{\n\tbackground:url('images/pagination_first.gif') no-repeat;\n}\n.pagination-prev{\n\tbackground:url('images/pagination_prev.gif') no-repeat;\n}\n.pagination-next{\n\tbackground:url('images/pagination_next.gif') no-repeat;\n}\n.pagination-last{\n\tbackground:url('images/pagination_last.gif') no-repeat;\n}\n.pagination-load{\n\tbackground:url('images/pagination_load.png') no-repeat;\n}\n.pagination-loading{\n\tbackground:url('images/pagination_loading.gif') no-repeat;\n}\n.panel{\n\toverflow:hidden;\n\tfont-size:12px;\n}\n.panel-header{\n\tpadding:5px;\n\tline-height:15px;\n\tcolor:#15428b;\n\tfont-weight:bold;\n\tfont-size:12px;\n\tbackground:url('images/panel_title.png') repeat-x;\n\tposition:relative;\n\tborder:1px solid #99BBE8;\n}\n.panel-title{\n\tbackground:url('images/blank.gif') no-repeat;\n}\n.panel-header-noborder{\n\tborder-width:0px;\n\tborder-bottom:1px solid #99BBE8;\n}\n.panel-body{\n\toverflow:auto;\n\tborder:1px solid #99BBE8;\n\tborder-top-width:0px;\n}\n.panel-body-noheader{\n\tborder-top-width:1px;\n}\n.panel-body-noborder{\n\tborder-width:0px;\n}\n.panel-with-icon{\n\tpadding-left:18px;\n}\n.panel-icon{\n\tposition:absolute;\n\tleft:5px;\n\ttop:4px;\n\twidth:16px;\n\theight:16px;\n}\n\n.panel-tool{\n\tposition:absolute;\n\tright:5px;\n\ttop:4px;\n}\n.panel-tool a{\n\tdisplay:inline-block;\n\twidth:16px;\n\theight:16px;\n\topacity:0.6;\n\tfilter:alpha(opacity=60);\n\tmargin-left:2px;\n}\n.panel-tool a:hover{\n\topacity:1;\n\tfilter:alpha(opacity=100);\n}\n.panel-tool-close{\n\tbackground:url('images/panel_tools.gif') no-repeat -16px 0px;\n}\n.panel-tool-min{\n\tbackground:url('images/panel_tools.gif') no-repeat 0px 0px;\n}\n.panel-tool-max{\n\tbackground:url('images/panel_tools.gif') no-repeat 0px -16px;\n}\n.panel-tool-restore{\n\tbackground:url('images/panel_tools.gif') no-repeat -16px -16px;\n}\n.panel-tool-collapse{\n\tbackground:url('images/panel_tool_collapse.gif') no-repeat;\n}\n.panel-tool-expand{\n\tbackground:url('images/panel_tool_expand.gif') no-repeat;\n}\n.panel-loading{\n\tpadding:11px 0px 10px 30px;\n\tbackground:url('images/panel_loading.gif') no-repeat 10px 10px;\n}\n.panel-noscroll{\n\toverflow:hidden;\n}\n.progressbar{\n\tborder:1px solid #99BBE8;\n\tborder-radius:5px;\n\toverflow:hidden;\n}\n.progressbar-text{\n\ttext-align:center;\n\tcolor:#15428b;\n\tposition:absolute;\n}\n.progressbar-value{\n\tbackground-color:#FF8D40;\n\tborder-radius:5px;\n\tborder-top-right-radius:0px;\n\tborder-bottom-right-radius:0px;\n\twidth:0;\n}\n.propertygrid .datagrid-view1 .datagrid-body,.propertygrid .datagrid-group{\n\tbackground:#E0ECFF;\n}\n.propertygrid .datagrid-group{\n\theight:21px;\n\toverflow:hidden;\n}\n.propertygrid .datagrid-view1 .datagrid-body td{\n\tborder-color:#E0ECFF;\n}\n.propertygrid .datagrid-view1 .datagrid-row-over,.propertygrid .datagrid-view1 .datagrid-row-selected{\n\tbackground:#E0ECFF;\n}\n.propertygrid .datagrid-group span{\n\tcolor:#416AA3;\n\tfont-weight:bold;\n\tpadding-left:4px;\n}\n.propertygrid .datagrid-row-collapse,.propertygrid .datagrid-row-expand{\n\tbackground-position:3px center;\n}.searchbox{\n\tdisplay:inline-block;\n\twhite-space:nowrap;\n\tfont-size:12px;\n\tmargin:0;\n\tpadding:0;\n\tborder:1px solid #A4BED4;\n\tbackground:#fff;\n}\n.searchbox-text{\n\tfont-size:12px;\n\tborder:0px;\n\tline-height:20px;\n\theight:20px;\n\tpadding:0px;\n\t*height:18px;\n\t*line-height:18px;\n\t_height:18px;\n\t_line-height:18px;\n}\n.searchbox-button{\n\tbackground:url('images/searchbox_button.png') no-repeat center center;\n\twidth:18px;\n\theight:20px;\n\toverflow:hidden;\n\tdisplay:inline-block;\n\tvertical-align:top;\n\tcursor:pointer;\n\topacity:0.6;\n\tfilter:alpha(opacity=60);\n}\n.searchbox-button-hover{\n\topacity:1.0;\n\tfilter:alpha(opacity=100);\n}\n.searchbox-prompt{\n\tfont-size:12px;\n\tcolor:#ccc;\n}\n.searchbox a.l-btn-plain{\n\tbackground-color:#E0ECF9;\n\theight:20px;\n\tborder:0;\n\tpadding:0 6px 0 0;\n\tvertical-align:top;\n}\n.searchbox a.l-btn .l-btn-left{\n\tpadding:2px 0 2px 2px;\n}\n.searchbox a.l-btn-plain:hover{\n\t-moz-border-radius:0px;\n\t-webkit-border-radius: 0px;\n\tborder:0;\n\tpadding:0 6px 0 0;\n}\n.searchbox a.m-btn-plain-active{\n\t-moz-border-radius:0px;\n\t-webkit-border-radius: 0px;\n}.slider{\n}\n.slider-disabled{\n\topacity:0.5;\n\tfilter:alpha(opacity=50);\n}\n.slider-h{\n\theight:22px;\n}\n.slider-v{\n\twidth:22px;\n}\n.slider-inner{\n\tposition:relative;\n\theight:6px;\n\ttop:7px;\n\tborder:1px solid #99BBE8;\n\tbackground:#fafafa;\n\tborder-radius:3px;\n}\n.slider-handle{\n\tposition:absolute;\n\tdisplay:block;\n\toutline:none;\n\twidth:20px;\n\theight:20px;\n\ttop:-7px;\n\tmargin-left:-10px;\n\tbackground:url('images/slider_handle.png') no-repeat;\n}\n.slider-tip{\n\tposition:absolute;\n\tdisplay:inline-block;\n\tline-height:12px;\n\twhite-space:nowrap;\n\ttop:-22px;\n}\n.slider-rule{\n\tposition:relative;\n\ttop:15px;\n}\n.slider-rule span{\n\tposition:absolute;\n\tdisplay:inline-block;\n\tfont-size:0;\n\theight:5px;\n\tborder-left:1px solid #999;\n}\n.slider-rulelabel{\n\tposition:relative;\n\ttop:20px;\n}\n.slider-rulelabel span{\n\tposition:absolute;\n\tdisplay:inline-block;\n\tcolor:#999;\n}\n.slider-v .slider-inner{\n\twidth:6px;\n\tleft:7px;\n\ttop:0;\n\tfloat:left;\n}\n.slider-v .slider-handle{\n\tleft:3px;\n\tmargin-top:-10px;\n}\n.slider-v .slider-tip{\n\tleft:-10px;\n\tmargin-top:-6px;\n}\n.slider-v .slider-rule{\n\tfloat:left;\n\ttop:0;\n\tleft:16px;\n}\n.slider-v .slider-rule span{\n\twidth:5px;\n\theight:'auto';\n\tborder-left:0;\n\tborder-top:1px solid #999;\n}\n.slider-v .slider-rulelabel{\n\tfloat:left;\n\ttop:0;\n\tleft:23px;\n}\n.spinner{\n\tdisplay:inline-block;\n\twhite-space:nowrap;\n\tfont-size:12px;\n\tmargin:0;\n\tpadding:0;\n\tborder:1px solid #A4BED4;\n}\n.spinner-text{\n\tfont-size:12px;\n\tborder:0px;\n\tline-height:20px;\n\theight:20px;\n\tpadding:0px;\n\t*height:18px;\n\t*line-height:18px;\n\t_height:18px;\n\t_line-height:18px;\n}\n.spinner-arrow{\n\tdisplay:inline-block;\n\tvertical-align:top;\n\tmargin:0;\n\tpadding:0;\n}\n.spinner-arrow-up,.spinner-arrow-down{\n\tdisplay:block;\n\tbackground:#E0ECF9 url('images/spinner_arrow_up.gif') no-repeat 5px 2px;\n\tfont-size:1px;\n\twidth:18px;\n\theight:10px;\n}\n.spinner-arrow-down{\n\tbackground:#E0ECF9 url('images/spinner_arrow_down.gif') no-repeat 5px 3px;\n}\n.spinner-arrow-hover{\n\tbackground-color:#ECF9F9;\n}.s-btn-downarrow{\n\tdisplay:inline-block;\n\twidth:16px;\n\tline-height:14px;\n\t*line-height:15px;\n\tbackground:url('images/menu_downarrow.png') no-repeat 9px center;\n}\n\na.s-btn-active{\n\tbackground-position: bottom right;\n}\na.s-btn-active span.l-btn-left{\n\tbackground-position: bottom left;\n}\na.s-btn-active .s-btn-downarrow{\n\tbackground:url('images/menu_split_downarrow.png') no-repeat 4px -19px;\n}\na:hover.l-btn .s-btn-downarrow{\n\tbackground:url('images/menu_split_downarrow.png') no-repeat 4px -19px;\n}\n\na.s-btn-plain-active{\n\tbackground:transparent;\n\tborder:1px solid #7eabcd;\n\t_padding:0px 5px 0px 0px;\n\t-moz-border-radius:3px;\n\t-webkit-border-radius: 3px;\n}\na.s-btn-plain-active .s-btn-downarrow{\n\tbackground:url('images/menu_split_downarrow.png') no-repeat 4px -19px;\n}.tabs-container{\n\toverflow:hidden;\n\tbackground:#fff;\n}\n.tabs-header{\n\tborder:1px solid #8DB2E3;\n\tbackground:#E0ECFF;\n\tborder-bottom:0px;\n\tposition:relative;\n\toverflow:hidden;\n\tpadding:0px;\n\tpadding-top:2px;\n\toverflow:hidden;\n}\n.tabs-header-noborder{\n\tborder:0px;\n}\n.tabs-header-plain{\n\tborder:0px;\n\tbackground:transparent;\n}\n.tabs-scroller-left{\n\tposition:absolute;\n\tleft:0px;\n\ttop:-1px;\n\twidth:18px;\n\theight:28px!important;\n\theight:30px;\n\tborder:1px solid #8DB2E3;\n\tfont-size:1px;\n\tdisplay:none;\n\tcursor:pointer;\n\tbackground:#E0ECFF url('images/tabs_leftarrow.png') no-repeat 1px 5px;\n}\n.tabs-scroller-right{\n\tposition:absolute;\n\tright:0;\n\ttop:-1px;\n\twidth:18px;\n\theight:28px!important;\n\theight:30px;\n\tborder:1px solid #8DB2E3;\n\tfont-size:1px;\n\tdisplay:none;\n\tcursor:pointer;\n\tbackground:#E0ECFF url('images/tabs_rightarrow.png') no-repeat 2px 5px;\n}\n.tabs-tool{\n\tposition:absolute;\n\ttop:-1px;\n\tborder:1px solid #8DB2E3;\n\tpadding:1px;\n\tbackground:#E0ECFF;\n\toverflow:hidden;\n}\n.tabs-header-plain .tabs-scroller-left{\n\ttop:2px;\n\theight:25px!important;\n\theight:27px;\n}\n.tabs-header-plain .tabs-scroller-right{\n\ttop:2px;\n\theight:25px!important;\n\theight:27px;\n}\n.tabs-header-plain .tabs-tool{\n\ttop:2px;\n\tpadding-top:0;\n}\n.tabs-scroller-over{\n\tbackground-color:#ECF9F9;\n}\n.tabs-wrap{\n\tposition:relative;\n\tleft:0px;\n\toverflow:hidden;\n\twidth:100%;\n\tmargin:0px;\n\tpadding:0px;\n}\n.tabs-scrolling{\n\tmargin-left:18px;\n\tmargin-right:18px;\n}\n.tabs{\n\tlist-style-type:none;\n\theight:26px;\n\tmargin:0px;\n\tpadding:0px;\n\tpadding-left:4px;\n\tfont-size:12px;\n\twidth:5000px;\n\tborder-bottom:1px solid #8DB2E3;\n}\n.tabs li{\n\tfloat:left;\n\tdisplay:inline-block;\n\tmargin-right:4px;\n\tmargin-bottom:-1px;\n\tpadding:0;\n\tposition:relative;\n\tborder:1px solid #8DB2E3;\n\t-moz-border-radius-topleft:5px;\n\t-moz-border-radius-topright:5px;\n\t-webkit-border-top-left-radius:5px;\n\t-webkit-border-top-right-radius:5px;\n}\n.tabs li a.tabs-inner{\n\tdisplay:inline-block;\n\ttext-decoration:none;\n\tcolor:#416AA3;\n\tbackground:url('images/tabs_enabled.png') repeat-x left top;\n\tmargin:0px;\n\tpadding:0px 10px;\n\theight:25px;\n\tline-height:25px;\n\ttext-align:center;\n\twhite-space:nowrap;\n\t-moz-border-radius-topleft:5px;\n\t-moz-border-radius-topright:5px;\n\t-webkit-border-top-left-radius:5px;\n\t-webkit-border-top-right-radius:5px;\n}\n.tabs li a.tabs-inner:hover{\n\tbackground:url('images/tabs_active.png') repeat-x left bottom;\n}\n.tabs li.tabs-selected{\n\tborder:1px solid #8DB2E3;\n\tborder-bottom:1px solid #fff;\n}\n.tabs li.tabs-selected a.tabs-inner{\n\tcolor:#416AA3;\n\tfont-weight:bold;\n\tbackground:#fff;\n\tbackground:#7eabcd url('images/tabs_active.png') repeat-x left bottom;\n\toutline: none;\n}\n.tabs li.tabs-selected a:hover.tabs-inner{\n\tcursor:default;\n\tpointer:default;\n}\n.tabs-p-tool{\n\tposition:absolute;\n\tright:16px;\n\ttop:7px;\n\tdisplay:block;\n}\n.tabs-p-tool a{\n\tdisplay:inline-block;\n\tfont-size:1px;\n\twidth:12px;\n\theight:12px;\n\topacity:0.6;\n\tfilter:alpha(opacity=60);\n}\n.tabs-p-tool a:hover{\n\topacity:1;\n\tfilter:alpha(opacity=100);\n\tcursor:hand;\n\tcursor:pointer;\n\tbackground-color:#8DB2E3;\n}\n.tabs-with-icon{\n\tpadding-left:18px;\n}\n.tabs-icon{\n\tposition:absolute;\n\twidth:16px;\n\theight:16px;\n\tleft:10px;\n\ttop:5px;\n}\n.tabs-closable{\n\tpadding-right:8px;\n}\n.tabs li a.tabs-close{\n\tposition:absolute;\n\tfont-size:1px;\n\tdisplay:block;\n\tpadding:0px;\n\twidth:11px;\n\theight:11px;\n\ttop:7px;\n\tright:5px;\n\topacity:0.6;\n\tfilter:alpha(opacity=60);\n\tbackground:url('images/tabs_close.gif') no-repeat 2px 2px;\n}\n.tabs li a:hover.tabs-close{\n\topacity:1;\n\tfilter:alpha(opacity=100);\n\tcursor:hand;\n\tcursor:pointer;\n\tbackground-color:#8DB2E3;\n}\n\n\n.tabs-panels{\n\tmargin:0px;\n\tpadding:0px;\n\tborder:1px solid #8DB2E3;\n\tborder-top:0px;\n\toverflow:hidden;\n}\n.tabs-panels-noborder{\n\tborder:0px;\n}\n.tree{\n\tfont-size:12px;\n\tmargin:0;\n\tpadding:0;\n\tlist-style-type:none;\n}\n.tree li{\n\twhite-space:nowrap;\n}\n.tree li ul{\n\tlist-style-type:none;\n\tmargin:0;\n\tpadding:0;\n}\n.tree-node{\n\theight:18px;\n\twhite-space:nowrap;\n\tcursor:pointer;\n}\n.tree-indent{\n\tdisplay:inline-block;\n\twidth:16px;\n\theight:18px;\n\tvertical-align:middle;\n}\n.tree-hit{\n\tcursor:pointer;\n}\n.tree-expanded{\n\tdisplay:inline-block;\n\twidth:16px;\n\theight:18px;\n\tvertical-align:middle;\n\tbackground:url('images/tree_arrows.gif') no-repeat -18px 0px;\n}\n.tree-expanded-hover{\n\tbackground:url('images/tree_arrows.gif') no-repeat -50px 0px;\n}\n.tree-collapsed{\n\tdisplay:inline-block;\n\twidth:16px;\n\theight:18px;\n\tvertical-align:middle;\n\tbackground:url('images/tree_arrows.gif') no-repeat 0px 0px;\n}\n.tree-collapsed-hover{\n\tbackground:url('images/tree_arrows.gif') no-repeat -32px 0px;\n}\n.tree-lines .tree-expanded{\n\tbackground:url('images/tree_elbow.png') no-repeat -36px -54px;\n}\n.tree-lines .tree-collapsed{\n\tbackground:url('images/tree_elbow.png') no-repeat 0px -36px;\n}\n.tree-lines .tree-node-last .tree-expanded{\n\tbackground:url('images/tree_elbow.png') no-repeat -18px 0px;\n}\n.tree-lines .tree-node-last .tree-collapsed{\n\tbackground:url('images/tree_elbow.png') no-repeat -36px -36px;\n}\n.tree-lines .tree-root-first .tree-expanded{\n\tbackground:url('images/tree_elbow.png') no-repeat -18px -54px;\n}\n.tree-lines .tree-root-first .tree-collapsed{\n\tbackground:url('images/tree_elbow.png') no-repeat -18px -36px;\n}\n.tree-lines .tree-root-one .tree-expanded{\n\tbackground:url('images/tree_elbow.png') no-repeat 0px -18px;\n}\n.tree-lines .tree-root-one .tree-collapsed{\n\tbackground:url('images/tree_elbow.png') no-repeat 0px -72px;\n}\n.tree-line{\n\tbackground:url('images/tree_elbow.png') no-repeat 0px -54px;\n}\n.tree-join{\n\tbackground:url('images/tree_elbow.png') no-repeat -18px -18px;\n}\n.tree-joinbottom{\n\tbackground:url('images/tree_elbow.png') no-repeat 0px 0px;\n}\n.tree-folder{\n\tdisplay:inline-block;\n\tbackground:url('images/tree_folder.gif') no-repeat;\n\twidth:16px;\n\theight:18px;\n\tvertical-align:middle;\n}\n.tree-folder-open{\n\tbackground:url('images/tree_folder_open.gif') no-repeat;\n}\n.tree-file{\n\tdisplay:inline-block;\n\tbackground:url('images/tree_file.gif') no-repeat;\n\twidth:16px;\n\theight:18px;\n\tvertical-align:middle;\n}\n.tree-loading{\n\tbackground:url('images/tree_loading.gif') no-repeat;\n}\n.tree-title{\n\tdisplay:inline-block;\n\ttext-decoration:none;\n\tvertical-align:middle;\n\tpadding:1px 2px 1px 2px;\n\twhite-space:nowrap;\n}\n\n.tree-node-hover{\n\tbackground:#fafafa;\n}\n.tree-node-selected{\n\tbackground:#FBEC88;\n}\n.tree-checkbox{\n\tdisplay:inline-block;\n\twidth:16px;\n\theight:18px;\n\tvertical-align:middle;\n}\n.tree-checkbox0{\n\tbackground:url('images/tree_checkbox_0.gif') no-repeat;\n}\n.tree-checkbox1{\n\tbackground:url('images/tree_checkbox_1.gif') no-repeat;\n}\n.tree-checkbox2{\n\tbackground:url('images/tree_checkbox_2.gif') no-repeat;\n}\n.tree-node-proxy{\n\tfont-size:12px;\n\tpadding:1px 2px 1px 18px;\n\tbackground:#fafafa;\n\tborder:1px solid #ccc;\n\tz-index:9900000;\n}\n.tree-dnd-yes{\n\tbackground:url('images/tree_dnd_yes.png') no-repeat 0 center;\n}\n.tree-dnd-no{\n\tbackground:url('images/tree_dnd_no.png') no-repeat 0 center;\n}\n.tree-node-top{\n\tborder-top:1px dotted red;\n}\n.tree-node-bottom{\n\tborder-bottom:1px dotted red;\n}\n.tree-node-append .tree-title{\n\tborder:1px dotted red;\n}\n.tree-editor{\n\tborder:1px solid #ccc;\n\tfont-size:12px;\n\tline-height:16px;\n\twidth:80px;\n\tposition:absolute;\n\ttop:0;\n}\n.validatebox-invalid{\n\tbackground:#FFFFEE url('images/validatebox_warning.png') no-repeat right 1px;\n}\n.validatebox-tip{\n\tposition:absolute;\n\twidth:200px;\n\theight:auto;\n\tdisplay:none;\n\tz-index:9900000;\n}\n.validatebox-tip-content{\n\tdisplay:inline-block;\n\tposition:absolute;\n\ttop:0px;\n\tleft:10px;\n\tpadding:3px 5px;\n\tborder:1px solid #CC9933;\n\tbackground:#FFFFCC;\n\tz-index:9900001;\n\tfont-size:12px;\n}\n.validatebox-tip-pointer{\n\tbackground:url('images/validatebox_pointer.gif') no-repeat left top;\n\tdisplay:inline-block;\n\twidth:10px;\n\theight:19px;\n\tposition:absolute;\n\tleft:1px;\n\ttop:0px;\n\tz-index:9900002;\n}\n.window {\n\tfont-size:12px;\n\tposition:absolute;\n\toverflow:hidden;\n\tbackground:transparent url('images/panel_title.png');\n\tpadding:5px;\n\tborder:1px solid #99BBE8;\n\tborder-radius:5px;\n\t-moz-border-radius:5px;\n\t-webkit-border-radius: 5px;\n}\n.window-shadow{\n\tposition:absolute;\n\tbackground:#ddd;\n\tborder-radius:5px;\n\t-moz-border-radius:5px;\n\t-webkit-border-radius: 5px;\n\t-moz-box-shadow: 2px 2px 3px rgba(0, 0, 0, 0.2);\n\t-webkit-box-shadow: 2px 2px 3px rgba(0, 0, 0, 0.2);\n\tfilter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2);\n}\n.window .window-header{\n\tbackground:transparent;\n\tpadding:2px 0px 4px 0px;\n}\n.window .window-body{\n\tbackground:#fff;\n\tborder:1px solid #99BBE8;\n\tborder-top-width:0px;\n}\n.window .window-body-noheader{\n\tborder-top-width:1px;\n}\n.window .window-header .panel-icon{\n\tleft:1px;\n\ttop:1px;\n}\n.window .window-header .panel-with-icon{\n\tpadding-left:18px;\n}\n.window .window-header .panel-tool{\n\ttop:0px;\n\tright:1px;\n}\n.window-proxy{\n\tposition:absolute;\n\toverflow:hidden;\n\tborder:1px dashed #15428b;\n}\n.window-proxy-mask{\n\tposition:absolute;\n\tbackground:#fafafa;\n\tfilter:alpha(opacity=10);\n\topacity:0.10;\n}\t\n.window-mask{\n\tposition:absolute;\n\tleft:0;\n\ttop:0;\n\twidth:100%;\n\theight:100%;\n\tfilter:alpha(opacity=40);\n\topacity:0.40;\n\tbackground:#ccc;\n\tfont-size:1px;\n\t*zoom:1;\n\toverflow:hidden;\n}\n"
  },
  {
    "path": "src/main/webapp/adminjs/themes/default/layout.css",
    "content": ".layout{\n\tposition:relative;\n\toverflow:hidden;\n\tmargin:0;\n\tpadding:0;\n}\n.layout-panel{\n\tposition:absolute;\n\toverflow:hidden;\n}\n.layout-panel-east,.layout-panel-west{\n\tz-index:2;\n}\n.layout-panel-north,.layout-panel-south{\n\tz-index:3;\n}\n.layout-button-up{\n\tbackground:url('images/layout_button_up.gif') no-repeat;\n}\n.layout-button-down{\n\tbackground:url('images/layout_button_down.gif') no-repeat;\n}\n.layout-button-left{\n\tbackground:url('images/layout_button_left.gif') no-repeat;\n}\n.layout-button-right{\n\tbackground:url('images/layout_button_right.gif') no-repeat;\n}\n.layout-expand{\n\tposition:absolute;\n\tpadding:0px 5px;\n\tpadding:0px;\n\tbackground:#D2E0F2;\n\tfont-size:1px;\n\tcursor:pointer;\n\tz-index:1;\n}\n.layout-expand .panel-header{\n\tbackground:transparent;\n\tborder-bottom-width:0px;\n}\n.layout-expand .panel-header .panel-tool{\n\ttop: 5px;\n}\n.layout-expand .panel-body{\n\toverflow:hidden;\n}\n.layout-expand-over{\n\tbackground:#E1F0F2;\n}\n.layout-body{\n\toverflow:auto;\n\tbackground:#fff;\n}\n.layout-split-proxy-h{\n\tposition:absolute;\n\twidth:5px;\n\tbackground:#ccc;\n\tfont-size:1px;\n\tcursor:e-resize;\n\tdisplay:none;\n\tz-index:5;\n}\n.layout-split-proxy-v{\n\tposition:absolute;\n\theight:5px;\n\tbackground:#ccc;\n\tfont-size:1px;\n\tcursor:n-resize;\n\tdisplay:none;\n\tz-index:5;\n}\n.layout-split-north{\n\tborder-bottom:5px solid #D2E0F2;\n}\n.layout-split-south{\n\tborder-top:5px solid #D2E0F2;\n}\n.layout-split-east{\n\tborder-left:5px solid #D2E0F2;\n}\n.layout-split-west{\n\tborder-right:5px solid #D2E0F2;\n}\n.layout-mask{\n\tposition:absolute;\n\tbackground:#fafafa;\n\tfilter:alpha(opacity=10);\n\topacity:0.10;\n\tz-index:4;\n}\n\n"
  },
  {
    "path": "src/main/webapp/adminjs/themes/default/linkbutton.css",
    "content": "a.l-btn{\n\tcolor:#444;\n\tbackground:url('images/button_a_bg.gif') no-repeat top right;\n\tfont-size:12px;\n\ttext-decoration:none;\n\tdisplay:inline-block;\n\tzoom:1;\n\theight:24px;\n\tpadding-right:18px;\n\tcursor:pointer;\n\toutline:none;\n}\na.l-btn-plain{\n\tbackground:transparent;\n\tpadding-right:5px;\n\tborder:1px solid transparent;\n\t_border:0px solid #efefef;\n\t_padding:1px 6px 1px 1px;\n}\n\na.l-btn-disabled{\n\tcolor:#ccc;\n\topacity:0.5;\n\tfilter:alpha(opacity=50);\n\tcursor:default;\n}\na.l-btn span.l-btn-left{\n\tdisplay:inline-block;\n\tbackground:url('images/button_span_bg.gif') no-repeat top left;\n\tpadding:4px 0px 4px 18px;\n\tline-height:16px;\n\theight:16px;\n}\na.l-btn-plain span.l-btn-left{\n\tbackground:transparent;\n\tpadding-left:5px;\n}\n\na.l-btn span span.l-btn-text{\n\tdisplay:inline-block;\n\theight:16px;\n\tline-height:16px;\n\tpadding:0px;\n}\na.l-btn span span span.l-btn-empty{\n\tdisplay:inline-block;\n\tpadding:0px;\n\twidth:16px;\n}\na:hover.l-btn{\n\tbackground-position: bottom right;\n\toutline:none;\n}\na:hover.l-btn span.l-btn-left{\n\tbackground-position: bottom left;\n}\n\na:hover.l-btn-plain{\n\tborder:1px solid #7eabcd;\n\tbackground:url('images/button_plain_hover.png') repeat-x left bottom;\n\t_padding:0px 5px 0px 0px;\n\t-moz-border-radius:3px;\n\t-webkit-border-radius: 3px;\n}\na:hover.l-btn-disabled{\n\tbackground-position:top right;\n}\na:hover.l-btn-disabled span.l-btn-left{\n\tbackground-position:top left;\n}\na.l-btn .l-btn-focus{\n\toutline:#0000FF dotted thin;\n}\n"
  },
  {
    "path": "src/main/webapp/adminjs/themes/default/menu.css",
    "content": ".menu{\n\tposition:absolute;\n\tbackground:#f0f0f0 url('images/menu.gif') repeat-y;\n\tmargin:0;\n\tpadding:2px;\n\tborder:1px solid #ccc;\n\toverflow:hidden;\n}\n.menu-item{\n\tposition:relative;\n\tmargin:0;\n\tpadding:0;\n\theight:22px;\n\tline-height:20px;\n\toverflow:hidden;\n\tfont-size:12px;\n\tcursor:pointer;\n\tborder:1px solid transparent;\n\t_border:1px solid #f0f0f0;\n}\n.menu-text{\n\tposition:absolute;\n\tleft:28px;\n\ttop:0px;\n}\n.menu-icon{\n\tposition:absolute;\n\twidth:16px;\n\theight:16px;\n\ttop:3px;\n\tleft:2px;\n}\n.menu-rightarrow{\n\tposition: absolute;\n\twidth:4px;\n\theight:7px;\n\ttop:7px;\n\tright:5px;\n\tbackground:url('images/menu_rightarrow.png') no-repeat;\n}\n.menu-sep{\n\tmargin:3px 0px 3px 24px;\n\tline-height:2px;\n\tfont-size:2px;\n\tbackground:url('images/menu_sep.png') repeat-x;\n}\n.menu-active{\n\tborder:1px solid #7eabcd;\n\tbackground:#fafafa;\n\t-moz-border-radius:3px;\n\t-webkit-border-radius: 3px;\n}\n.menu-shadow{\n\tposition:absolute;\n\tbackground:#ddd;\n\t-moz-border-radius:5px;\n\t-webkit-border-radius: 5px;\n\t-moz-box-shadow: 2px 2px 3px rgba(0, 0, 0, 0.2);\n\t-webkit-box-shadow: 2px 2px 3px rgba(0, 0, 0, 0.2);\n\tfilter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2);\n}\n.menu-item-disabled{\n\topacity:0.5;\n\tfilter:alpha(opacity=50);\n\tcursor:default;\n}\n.menu-active-disabled{\n\tborder-color:#d3d3d3;\n}\n\n"
  },
  {
    "path": "src/main/webapp/adminjs/themes/default/menubutton.css",
    "content": ".m-btn-downarrow{\n\tdisplay:inline-block;\n\twidth:12px;\n\tline-height:14px;\n\t*line-height:15px;\n\tbackground:url('images/menu_downarrow.png') no-repeat 4px center;\n}\n\na.m-btn-active{\n\tbackground-position: bottom right;\n}\na.m-btn-active span.l-btn-left{\n\tbackground-position: bottom left;\n}\na.m-btn-plain-active{\n\tbackground:transparent;\n\tborder:1px solid #7eabcd;\n\t_padding:0px 5px 0px 0px;\n\t-moz-border-radius:3px;\n\t-webkit-border-radius: 3px;\n}\n"
  },
  {
    "path": "src/main/webapp/adminjs/themes/default/messager.css",
    "content": ".messager-body{\n\tpadding:5px 10px;\n}\n.messager-button{\n\ttext-align:center;\n\tpadding-top:10px;\n}\n.messager-icon{\n\tfloat:left;\n\twidth:47px;\n\theight:35px;\n}\n.messager-error{\n\tbackground:url('images/messager_error.gif') no-repeat scroll left top;\n}\n.messager-info{\n\tbackground:url('images/messager_info.gif') no-repeat scroll left top;\n}\n.messager-question{\n\tbackground:url('images/messager_question.gif') no-repeat scroll left top;\n}\n.messager-warning{\n\tbackground:url('images/messager_warning.gif') no-repeat scroll left top;\n}\n.messager-input{\n\twidth: 262px;\n\tborder:1px solid #ccc;\n}\n.messager-progress{\n\tpadding:10px;\n}\n.messager-p-msg{\n\tmargin-bottom:5px;\n}"
  },
  {
    "path": "src/main/webapp/adminjs/themes/default/pagination.css",
    "content": ".pagination{\n\tzoom:1;\n}\n.pagination table{\n\tfloat:left;\n\theight:30px;\n}\n.pagination-btn-separator{\n\tfloat:left;\n\theight:24px;\n\tborder-left:1px solid #ccc;\n\tborder-right:1px solid #fff;\n\tmargin:3px 1px;\n}\n.pagination-num{\n\tborder:1px solid #ccc;\n\tmargin:0 2px;\n}\n.pagination-page-list{\n\tmargin:0px 6px;\n}\n.pagination-info{\n\tfloat:right;\n\tpadding-right:6px;\n\tpadding-top:8px;\n\tfont-size:12px;\n}\n.pagination span{\n\tfont-size:12px;\n}\n.pagination-first{\n\tbackground:url('images/pagination_first.gif') no-repeat;\n}\n.pagination-prev{\n\tbackground:url('images/pagination_prev.gif') no-repeat;\n}\n.pagination-next{\n\tbackground:url('images/pagination_next.gif') no-repeat;\n}\n.pagination-last{\n\tbackground:url('images/pagination_last.gif') no-repeat;\n}\n.pagination-load{\n\tbackground:url('images/pagination_load.png') no-repeat;\n}\n.pagination-loading{\n\tbackground:url('images/pagination_loading.gif') no-repeat;\n}\n"
  },
  {
    "path": "src/main/webapp/adminjs/themes/default/panel.css",
    "content": ".panel{\n\toverflow:hidden;\n\tfont-size:12px;\n}\n.panel-header{\n\tpadding:5px;\n\tline-height:15px;\n\tcolor:#15428b;\n\tfont-weight:bold;\n\tfont-size:12px;\n\tbackground:url('images/panel_title.png') repeat-x;\n\tposition:relative;\n\tborder:1px solid #99BBE8;\n}\n.panel-title{\n\tbackground:url('images/blank.gif') no-repeat;\n}\n.panel-header-noborder{\n\tborder-width:0px;\n\tborder-bottom:1px solid #99BBE8;\n}\n.panel-body{\n\toverflow:auto;\n\tborder:1px solid #99BBE8;\n\tborder-top-width:0px;\n}\n.panel-body-noheader{\n\tborder-top-width:1px;\n}\n.panel-body-noborder{\n\tborder-width:0px;\n}\n.panel-with-icon{\n\tpadding-left:18px;\n}\n.panel-icon{\n\tposition:absolute;\n\tleft:5px;\n\ttop:4px;\n\twidth:16px;\n\theight:16px;\n}\n\n.panel-tool{\n\tposition:absolute;\n\tright:5px;\n\ttop:4px;\n}\n.panel-tool a{\n\tdisplay:inline-block;\n\twidth:16px;\n\theight:16px;\n\topacity:0.6;\n\tfilter:alpha(opacity=60);\n\tmargin-left:2px;\n}\n.panel-tool a:hover{\n\topacity:1;\n\tfilter:alpha(opacity=100);\n}\n.panel-tool-close{\n\tbackground:url('images/panel_tools.gif') no-repeat -16px 0px;\n}\n.panel-tool-min{\n\tbackground:url('images/panel_tools.gif') no-repeat 0px 0px;\n}\n.panel-tool-max{\n\tbackground:url('images/panel_tools.gif') no-repeat 0px -16px;\n}\n.panel-tool-restore{\n\tbackground:url('images/panel_tools.gif') no-repeat -16px -16px;\n}\n.panel-tool-collapse{\n\tbackground:url('images/panel_tool_collapse.gif') no-repeat;\n}\n.panel-tool-expand{\n\tbackground:url('images/panel_tool_expand.gif') no-repeat;\n}\n.panel-loading{\n\tpadding:11px 0px 10px 30px;\n\tbackground:url('images/panel_loading.gif') no-repeat 10px 10px;\n}\n.panel-noscroll{\n\toverflow:hidden;\n}\n"
  },
  {
    "path": "src/main/webapp/adminjs/themes/default/progressbar.css",
    "content": ".progressbar{\n\tborder:1px solid #99BBE8;\n\tborder-radius:5px;\n\toverflow:hidden;\n}\n.progressbar-text{\n\ttext-align:center;\n\tcolor:#15428b;\n\tposition:absolute;\n}\n.progressbar-value{\n\tbackground-color:#FF8D40;\n\tborder-radius:5px;\n\tborder-top-right-radius:0px;\n\tborder-bottom-right-radius:0px;\n\twidth:0;\n}\n"
  },
  {
    "path": "src/main/webapp/adminjs/themes/default/propertygrid.css",
    "content": ".propertygrid .datagrid-view1 .datagrid-body,.propertygrid .datagrid-group{\n\tbackground:#E0ECFF;\n}\n.propertygrid .datagrid-group{\n\theight:21px;\n\toverflow:hidden;\n}\n.propertygrid .datagrid-view1 .datagrid-body td{\n\tborder-color:#E0ECFF;\n}\n.propertygrid .datagrid-view1 .datagrid-row-over,.propertygrid .datagrid-view1 .datagrid-row-selected{\n\tbackground:#E0ECFF;\n}\n.propertygrid .datagrid-group span{\n\tcolor:#416AA3;\n\tfont-weight:bold;\n\tpadding-left:4px;\n}\n.propertygrid .datagrid-row-collapse,.propertygrid .datagrid-row-expand{\n\tbackground-position:3px center;\n}"
  },
  {
    "path": "src/main/webapp/adminjs/themes/default/searchbox.css",
    "content": ".searchbox{\n\tdisplay:inline-block;\n\twhite-space:nowrap;\n\tfont-size:12px;\n\tmargin:0;\n\tpadding:0;\n\tborder:1px solid #A4BED4;\n\tbackground:#fff;\n}\n.searchbox-text{\n\tfont-size:12px;\n\tborder:0px;\n\tline-height:20px;\n\theight:20px;\n\tpadding:0px;\n\t*height:18px;\n\t*line-height:18px;\n\t_height:18px;\n\t_line-height:18px;\n}\n.searchbox-button{\n\tbackground:url('images/searchbox_button.png') no-repeat center center;\n\twidth:18px;\n\theight:20px;\n\toverflow:hidden;\n\tdisplay:inline-block;\n\tvertical-align:top;\n\tcursor:pointer;\n\topacity:0.6;\n\tfilter:alpha(opacity=60);\n}\n.searchbox-button-hover{\n\topacity:1.0;\n\tfilter:alpha(opacity=100);\n}\n.searchbox-prompt{\n\tfont-size:12px;\n\tcolor:#ccc;\n}\n.searchbox a.l-btn-plain{\n\tbackground-color:#E0ECF9;\n\theight:20px;\n\tborder:0;\n\tpadding:0 6px 0 0;\n\tvertical-align:top;\n}\n.searchbox a.l-btn .l-btn-left{\n\tpadding:2px 0 2px 2px;\n}\n.searchbox a.l-btn-plain:hover{\n\t-moz-border-radius:0px;\n\t-webkit-border-radius: 0px;\n\tborder:0;\n\tpadding:0 6px 0 0;\n}\n.searchbox a.m-btn-plain-active{\n\t-moz-border-radius:0px;\n\t-webkit-border-radius: 0px;\n}"
  },
  {
    "path": "src/main/webapp/adminjs/themes/default/slider.css",
    "content": ".slider{\n}\n.slider-disabled{\n\topacity:0.5;\n\tfilter:alpha(opacity=50);\n}\n.slider-h{\n\theight:22px;\n}\n.slider-v{\n\twidth:22px;\n}\n.slider-inner{\n\tposition:relative;\n\theight:6px;\n\ttop:7px;\n\tborder:1px solid #99BBE8;\n\tbackground:#fafafa;\n\tborder-radius:3px;\n}\n.slider-handle{\n\tposition:absolute;\n\tdisplay:block;\n\toutline:none;\n\twidth:20px;\n\theight:20px;\n\ttop:-7px;\n\tmargin-left:-10px;\n\tbackground:url('images/slider_handle.png') no-repeat;\n}\n.slider-tip{\n\tposition:absolute;\n\tdisplay:inline-block;\n\tline-height:12px;\n\twhite-space:nowrap;\n\ttop:-22px;\n}\n.slider-rule{\n\tposition:relative;\n\ttop:15px;\n}\n.slider-rule span{\n\tposition:absolute;\n\tdisplay:inline-block;\n\tfont-size:0;\n\theight:5px;\n\tborder-left:1px solid #999;\n}\n.slider-rulelabel{\n\tposition:relative;\n\ttop:20px;\n}\n.slider-rulelabel span{\n\tposition:absolute;\n\tdisplay:inline-block;\n\tcolor:#999;\n}\n.slider-v .slider-inner{\n\twidth:6px;\n\tleft:7px;\n\ttop:0;\n\tfloat:left;\n}\n.slider-v .slider-handle{\n\tleft:3px;\n\tmargin-top:-10px;\n}\n.slider-v .slider-tip{\n\tleft:-10px;\n\tmargin-top:-6px;\n}\n.slider-v .slider-rule{\n\tfloat:left;\n\ttop:0;\n\tleft:16px;\n}\n.slider-v .slider-rule span{\n\twidth:5px;\n\theight:'auto';\n\tborder-left:0;\n\tborder-top:1px solid #999;\n}\n.slider-v .slider-rulelabel{\n\tfloat:left;\n\ttop:0;\n\tleft:23px;\n}\n"
  },
  {
    "path": "src/main/webapp/adminjs/themes/default/spinner.css",
    "content": ".spinner{\n\tdisplay:inline-block;\n\twhite-space:nowrap;\n\tfont-size:12px;\n\tmargin:0;\n\tpadding:0;\n\tborder:1px solid #A4BED4;\n}\n.spinner-text{\n\tfont-size:12px;\n\tborder:0px;\n\tline-height:20px;\n\theight:20px;\n\tpadding:0px;\n\t*height:18px;\n\t*line-height:18px;\n\t_height:18px;\n\t_line-height:18px;\n}\n.spinner-arrow{\n\tdisplay:inline-block;\n\tvertical-align:top;\n\tmargin:0;\n\tpadding:0;\n}\n.spinner-arrow-up,.spinner-arrow-down{\n\tdisplay:block;\n\tbackground:#E0ECF9 url('images/spinner_arrow_up.gif') no-repeat 5px 2px;\n\tfont-size:1px;\n\twidth:18px;\n\theight:10px;\n}\n.spinner-arrow-down{\n\tbackground:#E0ECF9 url('images/spinner_arrow_down.gif') no-repeat 5px 3px;\n}\n.spinner-arrow-hover{\n\tbackground-color:#ECF9F9;\n}"
  },
  {
    "path": "src/main/webapp/adminjs/themes/default/splitbutton.css",
    "content": ".s-btn-downarrow{\n\tdisplay:inline-block;\n\twidth:16px;\n\tline-height:14px;\n\t*line-height:15px;\n\tbackground:url('images/menu_downarrow.png') no-repeat 9px center;\n}\n\na.s-btn-active{\n\tbackground-position: bottom right;\n}\na.s-btn-active span.l-btn-left{\n\tbackground-position: bottom left;\n}\na.s-btn-active .s-btn-downarrow{\n\tbackground:url('images/menu_split_downarrow.png') no-repeat 4px -19px;\n}\na:hover.l-btn .s-btn-downarrow{\n\tbackground:url('images/menu_split_downarrow.png') no-repeat 4px -19px;\n}\n\na.s-btn-plain-active{\n\tbackground:transparent;\n\tborder:1px solid #7eabcd;\n\t_padding:0px 5px 0px 0px;\n\t-moz-border-radius:3px;\n\t-webkit-border-radius: 3px;\n}\na.s-btn-plain-active .s-btn-downarrow{\n\tbackground:url('images/menu_split_downarrow.png') no-repeat 4px -19px;\n}"
  },
  {
    "path": "src/main/webapp/adminjs/themes/default/tabs.css",
    "content": ".tabs-container{\n\toverflow:hidden;\n\tbackground:#fff;\n}\n.tabs-header{\n\tborder:1px solid #8DB2E3;\n\tbackground:#E0ECFF;\n\tborder-bottom:0px;\n\tposition:relative;\n\toverflow:hidden;\n\tpadding:0px;\n\tpadding-top:2px;\n\toverflow:hidden;\n}\n.tabs-header-noborder{\n\tborder:0px;\n}\n.tabs-header-plain{\n\tborder:0px;\n\tbackground:transparent;\n}\n.tabs-scroller-left{\n\tposition:absolute;\n\tleft:0px;\n\ttop:-1px;\n\twidth:18px;\n\theight:28px!important;\n\theight:30px;\n\tborder:1px solid #8DB2E3;\n\tfont-size:1px;\n\tdisplay:none;\n\tcursor:pointer;\n\tbackground:#E0ECFF url('images/tabs_leftarrow.png') no-repeat 1px 5px;\n}\n.tabs-scroller-right{\n\tposition:absolute;\n\tright:0;\n\ttop:-1px;\n\twidth:18px;\n\theight:28px!important;\n\theight:30px;\n\tborder:1px solid #8DB2E3;\n\tfont-size:1px;\n\tdisplay:none;\n\tcursor:pointer;\n\tbackground:#E0ECFF url('images/tabs_rightarrow.png') no-repeat 2px 5px;\n}\n.tabs-tool{\n\tposition:absolute;\n\ttop:-1px;\n\tborder:1px solid #8DB2E3;\n\tpadding:1px;\n\tbackground:#E0ECFF;\n\toverflow:hidden;\n}\n.tabs-header-plain .tabs-scroller-left{\n\ttop:2px;\n\theight:25px!important;\n\theight:27px;\n}\n.tabs-header-plain .tabs-scroller-right{\n\ttop:2px;\n\theight:25px!important;\n\theight:27px;\n}\n.tabs-header-plain .tabs-tool{\n\ttop:2px;\n\tpadding-top:0;\n}\n.tabs-scroller-over{\n\tbackground-color:#ECF9F9;\n}\n.tabs-wrap{\n\tposition:relative;\n\tleft:0px;\n\toverflow:hidden;\n\twidth:100%;\n\tmargin:0px;\n\tpadding:0px;\n}\n.tabs-scrolling{\n\tmargin-left:18px;\n\tmargin-right:18px;\n}\n.tabs{\n\tlist-style-type:none;\n\theight:26px;\n\tmargin:0px;\n\tpadding:0px;\n\tpadding-left:4px;\n\tfont-size:12px;\n\twidth:5000px;\n\tborder-bottom:1px solid #8DB2E3;\n}\n.tabs li{\n\tfloat:left;\n\tdisplay:inline-block;\n\tmargin-right:4px;\n\tmargin-bottom:-1px;\n\tpadding:0;\n\tposition:relative;\n\tborder:1px solid #8DB2E3;\n\t-moz-border-radius-topleft:5px;\n\t-moz-border-radius-topright:5px;\n\t-webkit-border-top-left-radius:5px;\n\t-webkit-border-top-right-radius:5px;\n}\n.tabs li a.tabs-inner{\n\tdisplay:inline-block;\n\ttext-decoration:none;\n\tcolor:#416AA3;\n\tbackground:url('images/tabs_enabled.png') repeat-x left top;\n\tmargin:0px;\n\tpadding:0px 10px;\n\theight:25px;\n\tline-height:25px;\n\ttext-align:center;\n\twhite-space:nowrap;\n\t-moz-border-radius-topleft:5px;\n\t-moz-border-radius-topright:5px;\n\t-webkit-border-top-left-radius:5px;\n\t-webkit-border-top-right-radius:5px;\n}\n.tabs li a.tabs-inner:hover{\n\tbackground:url('images/tabs_active.png') repeat-x left bottom;\n}\n.tabs li.tabs-selected{\n\tborder:1px solid #8DB2E3;\n\tborder-bottom:1px solid #fff;\n}\n.tabs li.tabs-selected a.tabs-inner{\n\tcolor:#416AA3;\n\tfont-weight:bold;\n\tbackground:#fff;\n\tbackground:#7eabcd url('images/tabs_active.png') repeat-x left bottom;\n\toutline: none;\n}\n.tabs li.tabs-selected a:hover.tabs-inner{\n\tcursor:default;\n\tpointer:default;\n}\n.tabs-p-tool{\n\tposition:absolute;\n\tright:16px;\n\ttop:7px;\n\tdisplay:block;\n}\n.tabs-p-tool a{\n\tdisplay:inline-block;\n\tfont-size:1px;\n\twidth:12px;\n\theight:12px;\n\topacity:0.6;\n\tfilter:alpha(opacity=60);\n}\n.tabs-p-tool a:hover{\n\topacity:1;\n\tfilter:alpha(opacity=100);\n\tcursor:hand;\n\tcursor:pointer;\n\tbackground-color:#8DB2E3;\n}\n.tabs-with-icon{\n\tpadding-left:18px;\n}\n.tabs-icon{\n\tposition:absolute;\n\twidth:16px;\n\theight:16px;\n\tleft:10px;\n\ttop:5px;\n}\n.tabs-closable{\n\tpadding-right:8px;\n}\n.tabs li a.tabs-close{\n\tposition:absolute;\n\tfont-size:1px;\n\tdisplay:block;\n\tpadding:0px;\n\twidth:11px;\n\theight:11px;\n\ttop:7px;\n\tright:5px;\n\topacity:0.6;\n\tfilter:alpha(opacity=60);\n\tbackground:url('images/tabs_close.gif') no-repeat 2px 2px;\n}\n.tabs li a:hover.tabs-close{\n\topacity:1;\n\tfilter:alpha(opacity=100);\n\tcursor:hand;\n\tcursor:pointer;\n\tbackground-color:#8DB2E3;\n}\n\n\n.tabs-panels{\n\tmargin:0px;\n\tpadding:0px;\n\tborder:1px solid #8DB2E3;\n\tborder-top:0px;\n\toverflow:hidden;\n}\n.tabs-panels-noborder{\n\tborder:0px;\n}\n"
  },
  {
    "path": "src/main/webapp/adminjs/themes/default/tree.css",
    "content": ".tree{\n\tfont-size:12px;\n\tmargin:0;\n\tpadding:0;\n\tlist-style-type:none;\n}\n.tree li{\n\twhite-space:nowrap;\n}\n.tree li ul{\n\tlist-style-type:none;\n\tmargin:0;\n\tpadding:0;\n}\n.tree-node{\n\theight:18px;\n\twhite-space:nowrap;\n\tcursor:pointer;\n}\n.tree-indent{\n\tdisplay:inline-block;\n\twidth:16px;\n\theight:18px;\n\tvertical-align:middle;\n}\n.tree-hit{\n\tcursor:pointer;\n}\n.tree-expanded{\n\tdisplay:inline-block;\n\twidth:16px;\n\theight:18px;\n\tvertical-align:middle;\n\tbackground:url('images/tree_arrows.gif') no-repeat -18px 0px;\n}\n.tree-expanded-hover{\n\tbackground:url('images/tree_arrows.gif') no-repeat -50px 0px;\n}\n.tree-collapsed{\n\tdisplay:inline-block;\n\twidth:16px;\n\theight:18px;\n\tvertical-align:middle;\n\tbackground:url('images/tree_arrows.gif') no-repeat 0px 0px;\n}\n.tree-collapsed-hover{\n\tbackground:url('images/tree_arrows.gif') no-repeat -32px 0px;\n}\n.tree-lines .tree-expanded{\n\tbackground:url('images/tree_elbow.png') no-repeat -36px -54px;\n}\n.tree-lines .tree-collapsed{\n\tbackground:url('images/tree_elbow.png') no-repeat 0px -36px;\n}\n.tree-lines .tree-node-last .tree-expanded{\n\tbackground:url('images/tree_elbow.png') no-repeat -18px 0px;\n}\n.tree-lines .tree-node-last .tree-collapsed{\n\tbackground:url('images/tree_elbow.png') no-repeat -36px -36px;\n}\n.tree-lines .tree-root-first .tree-expanded{\n\tbackground:url('images/tree_elbow.png') no-repeat -18px -54px;\n}\n.tree-lines .tree-root-first .tree-collapsed{\n\tbackground:url('images/tree_elbow.png') no-repeat -18px -36px;\n}\n.tree-lines .tree-root-one .tree-expanded{\n\tbackground:url('images/tree_elbow.png') no-repeat 0px -18px;\n}\n.tree-lines .tree-root-one .tree-collapsed{\n\tbackground:url('images/tree_elbow.png') no-repeat 0px -72px;\n}\n.tree-line{\n\tbackground:url('images/tree_elbow.png') no-repeat 0px -54px;\n}\n.tree-join{\n\tbackground:url('images/tree_elbow.png') no-repeat -18px -18px;\n}\n.tree-joinbottom{\n\tbackground:url('images/tree_elbow.png') no-repeat 0px 0px;\n}\n.tree-folder{\n\tdisplay:inline-block;\n\tbackground:url('images/tree_folder.gif') no-repeat;\n\twidth:16px;\n\theight:18px;\n\tvertical-align:middle;\n}\n.tree-folder-open{\n\tbackground:url('images/tree_folder_open.gif') no-repeat;\n}\n.tree-file{\n\tdisplay:inline-block;\n\tbackground:url('images/tree_file.gif') no-repeat;\n\twidth:16px;\n\theight:18px;\n\tvertical-align:middle;\n}\n.tree-loading{\n\tbackground:url('images/tree_loading.gif') no-repeat;\n}\n.tree-title{\n\tdisplay:inline-block;\n\ttext-decoration:none;\n\tvertical-align:middle;\n\tpadding:1px 2px 1px 2px;\n\twhite-space:nowrap;\n}\n\n.tree-node-hover{\n\tbackground:#fafafa;\n}\n.tree-node-selected{\n\tbackground:#FBEC88;\n}\n.tree-checkbox{\n\tdisplay:inline-block;\n\twidth:16px;\n\theight:18px;\n\tvertical-align:middle;\n}\n.tree-checkbox0{\n\tbackground:url('images/tree_checkbox_0.gif') no-repeat;\n}\n.tree-checkbox1{\n\tbackground:url('images/tree_checkbox_1.gif') no-repeat;\n}\n.tree-checkbox2{\n\tbackground:url('images/tree_checkbox_2.gif') no-repeat;\n}\n.tree-node-proxy{\n\tfont-size:12px;\n\tpadding:1px 2px 1px 18px;\n\tbackground:#fafafa;\n\tborder:1px solid #ccc;\n\tz-index:9900000;\n}\n.tree-dnd-yes{\n\tbackground:url('images/tree_dnd_yes.png') no-repeat 0 center;\n}\n.tree-dnd-no{\n\tbackground:url('images/tree_dnd_no.png') no-repeat 0 center;\n}\n.tree-node-top{\n\tborder-top:1px dotted red;\n}\n.tree-node-bottom{\n\tborder-bottom:1px dotted red;\n}\n.tree-node-append .tree-title{\n\tborder:1px dotted red;\n}\n.tree-editor{\n\tborder:1px solid #ccc;\n\tfont-size:12px;\n\tline-height:16px;\n\twidth:80px;\n\tposition:absolute;\n\ttop:0;\n}\n"
  },
  {
    "path": "src/main/webapp/adminjs/themes/default/validatebox.css",
    "content": ".validatebox-invalid{\n\tbackground:#FFFFEE url('images/validatebox_warning.png') no-repeat right 1px;\n}\n.validatebox-tip{\n\tposition:absolute;\n\twidth:200px;\n\theight:auto;\n\tdisplay:none;\n\tz-index:9900000;\n}\n.validatebox-tip-content{\n\tdisplay:inline-block;\n\tposition:absolute;\n\ttop:0px;\n\tleft:10px;\n\tpadding:3px 5px;\n\tborder:1px solid #CC9933;\n\tbackground:#FFFFCC;\n\tz-index:9900001;\n\tfont-size:12px;\n}\n.validatebox-tip-pointer{\n\tbackground:url('images/validatebox_pointer.gif') no-repeat left top;\n\tdisplay:inline-block;\n\twidth:10px;\n\theight:19px;\n\tposition:absolute;\n\tleft:1px;\n\ttop:0px;\n\tz-index:9900002;\n}\n"
  },
  {
    "path": "src/main/webapp/adminjs/themes/default/window.css",
    "content": ".window {\n\tfont-size:12px;\n\tposition:absolute;\n\toverflow:hidden;\n\tbackground:transparent url('images/panel_title.png');\n\tpadding:5px;\n\tborder:1px solid #99BBE8;\n\tborder-radius:5px;\n\t-moz-border-radius:5px;\n\t-webkit-border-radius: 5px;\n}\n.window-shadow{\n\tposition:absolute;\n\tbackground:#ddd;\n\tborder-radius:5px;\n\t-moz-border-radius:5px;\n\t-webkit-border-radius: 5px;\n\t-moz-box-shadow: 2px 2px 3px rgba(0, 0, 0, 0.2);\n\t-webkit-box-shadow: 2px 2px 3px rgba(0, 0, 0, 0.2);\n\tfilter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2);\n}\n.window .window-header{\n\tbackground:transparent;\n\tpadding:2px 0px 4px 0px;\n}\n.window .window-body{\n\tbackground:#fff;\n\tborder:1px solid #99BBE8;\n\tborder-top-width:0px;\n}\n.window .window-body-noheader{\n\tborder-top-width:1px;\n}\n.window .window-header .panel-icon{\n\tleft:1px;\n\ttop:1px;\n}\n.window .window-header .panel-with-icon{\n\tpadding-left:18px;\n}\n.window .window-header .panel-tool{\n\ttop:0px;\n\tright:1px;\n}\n.window-proxy{\n\tposition:absolute;\n\toverflow:hidden;\n\tborder:1px dashed #15428b;\n}\n.window-proxy-mask{\n\tposition:absolute;\n\tbackground:#fafafa;\n\tfilter:alpha(opacity=10);\n\topacity:0.10;\n}\t\n.window-mask{\n\tposition:absolute;\n\tleft:0;\n\ttop:0;\n\twidth:100%;\n\theight:100%;\n\tfilter:alpha(opacity=40);\n\topacity:0.40;\n\tbackground:#ccc;\n\tfont-size:1px;\n\t*zoom:1;\n\toverflow:hidden;\n}\n"
  },
  {
    "path": "src/main/webapp/adminjs/themes/gray/accordion.css",
    "content": ".accordion{\n\tbackground:#fff;\n\toverflow:hidden;\n}\n.accordion .accordion-header{\n\tbackground:#efefef;\n\tborder-top-width:0;\n\tcursor:pointer;\n}\n.accordion .accordion-header .panel-title{\n\tfont-weight:normal;\n}\n.accordion .accordion-header-selected .panel-title{\n\tfont-weight:bold;\n}\n.accordion-noborder .accordion-header{\n\tborder-width:0 0 1px;\n}\n.accordion-noborder .accordion-body{\n\tborder-width:0px;\n}\n.accordion-collapse{\n\tbackground:url('images/accordion_collapse.png') no-repeat;\n}\n.accordion-expand{\n\tbackground:url('images/accordion_expand.png') no-repeat;\n}\n"
  },
  {
    "path": "src/main/webapp/adminjs/themes/gray/calendar.css",
    "content": ".calendar{\n\tbackground:#fff;\n\tborder:1px solid #d3d3d3;\n\tpadding:1px;\n\toverflow:hidden;\n}\n.calendar-noborder{\n\tborder:0px;\n}\n.calendar-header{\n\tposition:relative;\n\tbackground:#efefef;\n\tfont-size:12px;\n\theight:22px;\n}\n.calendar-title{\n\ttext-align:center;\n\theight:22px;\n}\n.calendar-title span{\n\tposition:relative;\n\ttop:2px;\n\tline-height:12px;\n\tdisplay:inline-block;\n\tpadding:3px;\n\tcursor:pointer;\n\t-moz-border-radius:4px;\n\t-webkit-border-radius:4px;\n}\n.calendar-prevmonth,.calendar-nextmonth,.calendar-prevyear,.calendar-nextyear{\n\tposition:absolute;\n\ttop:4px;\n\twidth:14px;\n\theight:14px;\n\tline-height:12px;\n\tcursor:pointer;\n\tfont-size:1px;\n\t-moz-border-radius:4px;\n\t-webkit-border-radius:4px;\n}\n.calendar-prevmonth{\n\tleft:20px;\n\tbackground:url('images/calendar_prevmonth.gif') no-repeat 3px 2px;\n}\n.calendar-nextmonth{\n\tright:20px;\n\tbackground:url('images/calendar_nextmonth.gif') no-repeat 3px 2px;\n}\n.calendar-prevyear{\n\tleft:3px;\n\tbackground:url('images/calendar_prevyear.gif') no-repeat 1px 2px;\n}\n.calendar-nextyear{\n\tright:3px;\n\tbackground:url('images/calendar_nextyear.gif') no-repeat 1px 2px;\n}\n.calendar-body{\n\tfont-size:12px;\n\tposition:relative;\n}\n.calendar-body table{\n\twidth:100%;\n\theight:100%;\n\tborder:1px solid #eee;\n\tfont-size:12px;\n}\n.calendar-body th,.calendar-body td{\n\ttext-align:center;\n}\n.calendar-body th{\n\tbackground:#fafafa;\n\tcolor:#888;\n}\n.calendar-day{\n\tcolor:#222;\n\tcursor:pointer;\n\tborder:1px solid #fff;\n\t-moz-border-radius:4px;\n\t-webkit-border-radius:4px;\n}\n.calendar-sunday{\n\tcolor:#CC2222;\n}\n.calendar-saturday{\n\tcolor:#00ee00;\n}\n.calendar-today{\n\tcolor:#0000ff;\n}\n.calendar-other-month{\n\topacity:0.3;\n\tfilter:alpha(opacity=30);\n}\n.calendar-hover{\n\tborder:1px solid red;\n}\n.calendar-selected{\n\tbackground:#FBEC88;\n\tborder:1px solid red;\n}\n.calendar-nav-hover{\n\tbackground-color:#FBEC88;\n}\n\n\n.calendar-menu{\n\tposition:absolute;\n\ttop:0px;\n\tleft:0px;\n\twidth:180px;\n\theight:150px;\n\tpadding:5px;\n\tfont-size:12px;\n\tbackground:#fafafa;\n\topacity:0.8;\n\tfilter:alpha(opacity=80);\n\tdisplay:none;\n\toverflow:hidden;\n}\n.calendar-menu-year-inner{\n\ttext-align:center;\n\tpadding-bottom:5px;\n}\n.calendar-menu-year{\n\twidth:40px;\n\ttext-align:center;\n\tborder:1px solid #ccc;\n\tpadding:2px;\n\tfont-weight:bold;\n}\n.calendar-menu-prev,.calendar-menu-next{\n\tdisplay:inline-block;\n\twidth:21px;\n\theight:21px;\n\tvertical-align:top;\n\tcursor:pointer;\n}\n.calendar-menu-prev{\n\tmargin-right:10px;\n\tbackground:url('images/calendar_prevyear.gif') no-repeat 5px 6px;\n}\t\n.calendar-menu-next{\n\tmargin-left:10px;\n\tbackground:url('images/calendar_nextyear.gif') no-repeat 5px 6px;\n}\n.calendar-menu-hover{\n\tbackground-color:#FBEC88;\n}\n.calendar-menu-month-inner table{\n\twidth:100%;\n\theight:100%;\n}\n.calendar-menu-month{\n\ttext-align:center;\n\tcursor:pointer;\n\tborder:1px solid #fafafa;\n\tfont-weight:bold;\n\tcolor:#666;\n\t-moz-border-radius:4px;\n\t-webkit-border-radius:4px;\n}\n"
  },
  {
    "path": "src/main/webapp/adminjs/themes/gray/combo.css",
    "content": ".combo{\n\tdisplay:inline-block;\n\twhite-space:nowrap;\n\tfont-size:12px;\n\tmargin:0;\n\tpadding:0;\n\tborder:1px solid #d3d3d3;\n\tbackground:#fff;\n}\n.combo-text{\n\tfont-size:12px;\n\tborder:0px;\n\tline-height:20px;\n\theight:20px;\n\tpadding:0px;\n\t*height:18px;\n\t*line-height:18px;\n\t_height:18px;\n\t_line-height:18px;\n}\n.combo-arrow{\n\tbackground:#E0ECF9 url('images/combo_arrow.gif') no-repeat 3px 4px;\n\twidth:18px;\n\theight:20px;\n\toverflow:hidden;\n\tdisplay:inline-block;\n\tvertical-align:top;\n\tcursor:pointer;\n\topacity:0.6;\n\tfilter:alpha(opacity=60);\n}\n.combo-arrow-hover{\n\topacity:1.0;\n\tfilter:alpha(opacity=100);\n}\n.combo-panel{\n\tbackground:#fff;\n\toverflow:auto;\n}\n"
  },
  {
    "path": "src/main/webapp/adminjs/themes/gray/combobox.css",
    "content": ".combobox-item{\n\tpadding:2px;\n\tfont-size:12px;\n\tpadding:3px;\n\tpadding-right:0px;\n}\n.combobox-item-hover{\n\tbackground:#fafafa;\n}\n.combobox-item-selected{\n\tbackground:#FBEC88;\n}"
  },
  {
    "path": "src/main/webapp/adminjs/themes/gray/datagrid.css",
    "content": ".datagrid .panel-body{\n\toverflow:hidden;\n}\n.datagrid-wrap{\n\tposition:relative;\n}\n.datagrid-view{\n\tposition:relative;\n\toverflow:hidden;\n}\n.datagrid-view1{\n\tposition:absolute;\n\toverflow:hidden;\n\tleft:0px;\n\ttop:0px;\n}\n.datagrid-view2{\n\tposition:absolute;\n\toverflow:hidden;\n\tleft:210px;\n\ttop:0px;\n}\n.datagrid-mask{\n\tposition:absolute;\n\tleft:0;\n\ttop:0;\n\tbackground:#ccc;\n\topacity:0.3;\n\tfilter:alpha(opacity=30);\n\tdisplay:none;\n}\n.datagrid-mask-msg{\n\tposition:absolute;\n\tleft:100px;\n\ttop:50px;\n\twidth:auto;\n\theight:16px;\n\tpadding:12px 5px 10px 30px;\n\tbackground:#fff url('images/pagination_loading.gif') no-repeat scroll 5px 10px;\n\tborder:2px solid #ccc;\n\tcolor:#222;\n\tdisplay:none;\n}\n.datagrid-sort-desc .datagrid-sort-icon{\n\tpadding:2px 13px 3px 0px;\n\tbackground:url('images/datagrid_sort_desc.gif') no-repeat center center;\n}\n.datagrid-sort-asc .datagrid-sort-icon{\n\tpadding:2px 13px 3px 0px;\n\tbackground:url('images/datagrid_sort_asc.gif') no-repeat center center;\n}\n.datagrid-toolbar{\n\theight:28px;\n\tbackground:#efefef;\n\tpadding:1px 2px;\n\tborder-bottom:1px solid #ccc;\n}\n.datagrid-btn-separator{\n\tfloat:left;\n\theight:24px;\n\tborder-left:1px solid #ccc;\n\tborder-right:1px solid #fff;\n\tmargin:2px 1px;\n}\n.datagrid-pager{\n\tbackground:#efefef;\n\tborder-top:1px solid #ccc;\n\tposition:relative;\n}\n\n.datagrid-header{\n\toverflow:hidden;\n\tbackground:#fafafa url('images/datagrid_header_bg.gif') repeat-x left bottom;\n\tborder-bottom:1px solid #ccc;\n\tcursor:default;\n}\n.datagrid-header-inner{\n\tfloat:left;\n\twidth:10000px;\n}\n.datagrid-header td{\n\tborder-right:1px dotted #ccc;\n\tfont-size:12px;\n\tfont-weight:normal;\n\tbackground:#fafafa url('images/datagrid_header_bg.gif') repeat-x left bottom;\n\tborder-bottom:1px dotted #ccc;\n\tborder-top:1px dotted #fff;\n}\n.datagrid-header td.datagrid-header-over{\n\tbackground:#EBF3FD;\n}\n.datagrid-header .datagrid-cell{\n\tmargin:0;\n\tpadding:3px 4px;\n\twhite-space:nowrap;\n\tword-wrap:normal;\n\toverflow:hidden;\n\ttext-align:center;\n}\n.datagrid-header .datagrid-cell-group{\n\tmargin:0;\n\tpadding:4px 2px 4px 4px;\n\twhite-space:nowrap;\n\tword-wrap:normal;\n\toverflow:hidden;\n\ttext-align:center;\n}\n.datagrid-header-rownumber{\n\twidth:25px;\n\ttext-align:center;\n\tmargin:0px;\n\tpadding:3px 0px;\n}\n.datagrid-td-rownumber{\n\tbackground:#fafafa url('images/datagrid_header_bg.gif') repeat-x left bottom;\n}\n.datagrid-cell-rownumber{\n\twidth:25px;\n\ttext-align:center;\n\tmargin:0px;\n\tpadding:3px 0px;\n\tcolor:#000;\n}\n.datagrid-body{\n\tmargin:0;\n\tpadding:0;\n\toverflow:auto;\n\tzoom:1;\n}\n.datagrid-view1 .datagrid-body-inner{\n\tpadding-bottom:20px;\n}\n.datagrid-view1 .datagrid-body{\n\toverflow:hidden;\n}\n.datagrid-footer{\n\toverflow:hidden;\n}\n.datagrid-footer-inner{\n\tborder-top:1px solid #ccc;\n\twidth:10000px;\n\tfloat:left;\n}\n.datagrid-body td,.datagrid-footer td{\n\tfont-size:12px;\n\tborder-right:1px dotted #ccc;\n\tborder-bottom:1px dotted #ccc;\n\toverflow:hidden;\n\tpadding:0;\n\tmargin:0;\n}\n.datagrid-body .datagrid-cell,.datagrid-footer .datagrid-cell{\n\toverflow:hidden;\n\tmargin:0;\n\tpadding:0px 4px;\n\twhite-space:nowrap;\n\tword-wrap:normal;\n\theight:18px;\n\tline-height:18px;\n}\n.datagrid-row-editing .datagrid-cell{\n\theight:auto;\n}\n.datagrid-header-check{\n\tpadding:3px 6px;\n}\n.datagrid-cell-check{\n\tpadding:3px 6px;\n\tfont-size:1px;\n\toverflow:hidden;\n}\n.datagrid-header-check input{\n\tmargin:0;\n\tpadding:0;\n\twidth:15px;\n\theight:15px;\n}\n.datagrid-cell-check input{\n\tmargin:0;\n\tpadding:0;\n\twidth:15px;\n\theight:15px;\n}\n.datagrid-row{\n\theight:25px;\n}\n.datagrid-row-collapse{\n\tbackground:url('images/datagrid_row_collapse.gif') no-repeat center center;\n}\n.datagrid-row-expand{\n\tbackground:url('images/datagrid_row_expand.gif') no-repeat center center;\n}\n.datagrid-row-alt{\n\tbackground:#fafafa;\n}\n.datagrid-row-over{\n\tbackground:#efefef;\n\tcursor:default;\n}\n.datagrid-row-selected{\n\tbackground:#FBEC88;\n}\n.datagrid-resize-proxy{\n\tposition:absolute;\n\twidth:1px;\n\ttop:0;\n\theight:10000px;\n\tbackground:red;\n\tcursor:e-resize;\n\tdisplay:none;\n}\n.datagrid-body .datagrid-editable{\n\tpadding:0;\n}\n.datagrid-body .datagrid-editable table{\n\twidth:100%;\n\theight:100%;\n}\n.datagrid-body .datagrid-editable td{\n\tborder:0;\n\tpadding:0;\n}\n.datagrid-body .datagrid-editable .datagrid-editable-input{\n\twidth:100%;\n\tfont-size:12px;\n\tborder:1px solid #ccc;\n\tpadding:3px 2px;\n}\n"
  },
  {
    "path": "src/main/webapp/adminjs/themes/gray/datebox.css",
    "content": ".datebox .combo-arrow{\n\tbackground:url('images/datebox_arrow.png') no-repeat center center;\n}\n.datebox-calendar-inner{\n\theight:180px;\n}\n.datebox-button{\n\theight:18px;\n\tpadding:2px 5px;\n\tfont-size:12px;\n\tbackground-color:#fafafa;\n\ttext-align:center;\n}\n.datebox-current,.datebox-close{\n\tfloat:left;\n\tcolor:#888;\n\ttext-decoration:none;\n\tfont-weight:bold;\n}\n.datebox-close{\n\tfloat:right;\n}\n.datebox-ok{\n\tcolor:#888;\n\ttext-decoration:none;\n\tfont-weight:bold;\n}\n.datebox-button-hover{\n\tcolor:#A4BED4;\n}\n"
  },
  {
    "path": "src/main/webapp/adminjs/themes/gray/dialog.css",
    "content": ".dialog-content{\n\toverflow:auto;\n}\n.dialog-toolbar{\n\tbackground:#fafafa;\n\tpadding:2px 5px;\n\tborder-bottom:1px solid #eee;\n}\n.dialog-tool-separator{\n\tfloat:left;\n\theight:24px;\n\tborder-left:1px solid #ccc;\n\tborder-right:1px solid #fff;\n\tmargin:2px 1px;\n}\n.dialog-button{\n\tborder-top:1px solid #eee;\n\tbackground:#fafafa;\n\tpadding:5px 5px;\n\ttext-align:right;\n}\n.dialog-button .l-btn{\n\tmargin-left:5px;\n}"
  },
  {
    "path": "src/main/webapp/adminjs/themes/gray/easyui.css",
    "content": ".accordion{\n\tbackground:#fff;\n\toverflow:hidden;\n}\n.accordion .accordion-header{\n\tbackground:#efefef;\n\tborder-top-width:0;\n\tcursor:pointer;\n}\n.accordion .accordion-header .panel-title{\n\tfont-weight:normal;\n}\n.accordion .accordion-header-selected .panel-title{\n\tfont-weight:bold;\n}\n.accordion-noborder .accordion-header{\n\tborder-width:0 0 1px;\n}\n.accordion-noborder .accordion-body{\n\tborder-width:0px;\n}\n.accordion-collapse{\n\tbackground:url('images/accordion_collapse.png') no-repeat;\n}\n.accordion-expand{\n\tbackground:url('images/accordion_expand.png') no-repeat;\n}\n.calendar{\n\tbackground:#fff;\n\tborder:1px solid #d3d3d3;\n\tpadding:1px;\n\toverflow:hidden;\n}\n.calendar-noborder{\n\tborder:0px;\n}\n.calendar-header{\n\tposition:relative;\n\tbackground:#efefef;\n\tfont-size:12px;\n\theight:22px;\n}\n.calendar-title{\n\ttext-align:center;\n\theight:22px;\n}\n.calendar-title span{\n\tposition:relative;\n\ttop:2px;\n\tline-height:12px;\n\tdisplay:inline-block;\n\tpadding:3px;\n\tcursor:pointer;\n\t-moz-border-radius:4px;\n\t-webkit-border-radius:4px;\n}\n.calendar-prevmonth,.calendar-nextmonth,.calendar-prevyear,.calendar-nextyear{\n\tposition:absolute;\n\ttop:4px;\n\twidth:14px;\n\theight:14px;\n\tline-height:12px;\n\tcursor:pointer;\n\tfont-size:1px;\n\t-moz-border-radius:4px;\n\t-webkit-border-radius:4px;\n}\n.calendar-prevmonth{\n\tleft:20px;\n\tbackground:url('images/calendar_prevmonth.gif') no-repeat 3px 2px;\n}\n.calendar-nextmonth{\n\tright:20px;\n\tbackground:url('images/calendar_nextmonth.gif') no-repeat 3px 2px;\n}\n.calendar-prevyear{\n\tleft:3px;\n\tbackground:url('images/calendar_prevyear.gif') no-repeat 1px 2px;\n}\n.calendar-nextyear{\n\tright:3px;\n\tbackground:url('images/calendar_nextyear.gif') no-repeat 1px 2px;\n}\n.calendar-body{\n\tfont-size:12px;\n\tposition:relative;\n}\n.calendar-body table{\n\twidth:100%;\n\theight:100%;\n\tborder:1px solid #eee;\n\tfont-size:12px;\n}\n.calendar-body th,.calendar-body td{\n\ttext-align:center;\n}\n.calendar-body th{\n\tbackground:#fafafa;\n\tcolor:#888;\n}\n.calendar-day{\n\tcolor:#222;\n\tcursor:pointer;\n\tborder:1px solid #fff;\n\t-moz-border-radius:4px;\n\t-webkit-border-radius:4px;\n}\n.calendar-sunday{\n\tcolor:#CC2222;\n}\n.calendar-saturday{\n\tcolor:#00ee00;\n}\n.calendar-today{\n\tcolor:#0000ff;\n}\n.calendar-other-month{\n\topacity:0.3;\n\tfilter:alpha(opacity=30);\n}\n.calendar-hover{\n\tborder:1px solid red;\n}\n.calendar-selected{\n\tbackground:#FBEC88;\n\tborder:1px solid red;\n}\n.calendar-nav-hover{\n\tbackground-color:#FBEC88;\n}\n\n\n.calendar-menu{\n\tposition:absolute;\n\ttop:0px;\n\tleft:0px;\n\twidth:180px;\n\theight:150px;\n\tpadding:5px;\n\tfont-size:12px;\n\tbackground:#fafafa;\n\topacity:0.8;\n\tfilter:alpha(opacity=80);\n\tdisplay:none;\n\toverflow:hidden;\n}\n.calendar-menu-year-inner{\n\ttext-align:center;\n\tpadding-bottom:5px;\n}\n.calendar-menu-year{\n\twidth:40px;\n\ttext-align:center;\n\tborder:1px solid #ccc;\n\tpadding:2px;\n\tfont-weight:bold;\n}\n.calendar-menu-prev,.calendar-menu-next{\n\tdisplay:inline-block;\n\twidth:21px;\n\theight:21px;\n\tvertical-align:top;\n\tcursor:pointer;\n}\n.calendar-menu-prev{\n\tmargin-right:10px;\n\tbackground:url('images/calendar_prevyear.gif') no-repeat 5px 6px;\n}\t\n.calendar-menu-next{\n\tmargin-left:10px;\n\tbackground:url('images/calendar_nextyear.gif') no-repeat 5px 6px;\n}\n.calendar-menu-hover{\n\tbackground-color:#FBEC88;\n}\n.calendar-menu-month-inner table{\n\twidth:100%;\n\theight:100%;\n}\n.calendar-menu-month{\n\ttext-align:center;\n\tcursor:pointer;\n\tborder:1px solid #fafafa;\n\tfont-weight:bold;\n\tcolor:#666;\n\t-moz-border-radius:4px;\n\t-webkit-border-radius:4px;\n}\n.combo{\n\tdisplay:inline-block;\n\twhite-space:nowrap;\n\tfont-size:12px;\n\tmargin:0;\n\tpadding:0;\n\tborder:1px solid #d3d3d3;\n\tbackground:#fff;\n}\n.combo-text{\n\tfont-size:12px;\n\tborder:0px;\n\tline-height:20px;\n\theight:20px;\n\tpadding:0px;\n\t*height:18px;\n\t*line-height:18px;\n\t_height:18px;\n\t_line-height:18px;\n}\n.combo-arrow{\n\tbackground:#E0ECF9 url('images/combo_arrow.gif') no-repeat 3px 4px;\n\twidth:18px;\n\theight:20px;\n\toverflow:hidden;\n\tdisplay:inline-block;\n\tvertical-align:top;\n\tcursor:pointer;\n\topacity:0.6;\n\tfilter:alpha(opacity=60);\n}\n.combo-arrow-hover{\n\topacity:1.0;\n\tfilter:alpha(opacity=100);\n}\n.combo-panel{\n\tbackground:#fff;\n\toverflow:auto;\n}\n.combobox-item{\n\tpadding:2px;\n\tfont-size:12px;\n\tpadding:3px;\n\tpadding-right:0px;\n}\n.combobox-item-hover{\n\tbackground:#fafafa;\n}\n.combobox-item-selected{\n\tbackground:#FBEC88;\n}.datagrid .panel-body{\n\toverflow:hidden;\n}\n.datagrid-wrap{\n\tposition:relative;\n}\n.datagrid-view{\n\tposition:relative;\n\toverflow:hidden;\n}\n.datagrid-view1{\n\tposition:absolute;\n\toverflow:hidden;\n\tleft:0px;\n\ttop:0px;\n}\n.datagrid-view2{\n\tposition:absolute;\n\toverflow:hidden;\n\tleft:210px;\n\ttop:0px;\n}\n.datagrid-mask{\n\tposition:absolute;\n\tleft:0;\n\ttop:0;\n\tbackground:#ccc;\n\topacity:0.3;\n\tfilter:alpha(opacity=30);\n\tdisplay:none;\n}\n.datagrid-mask-msg{\n\tposition:absolute;\n\tleft:100px;\n\ttop:50px;\n\twidth:auto;\n\theight:16px;\n\tpadding:12px 5px 10px 30px;\n\tbackground:#fff url('images/pagination_loading.gif') no-repeat scroll 5px 10px;\n\tborder:2px solid #ccc;\n\tcolor:#222;\n\tdisplay:none;\n}\n.datagrid-sort-desc .datagrid-sort-icon{\n\tpadding:2px 13px 3px 0px;\n\tbackground:url('images/datagrid_sort_desc.gif') no-repeat center center;\n}\n.datagrid-sort-asc .datagrid-sort-icon{\n\tpadding:2px 13px 3px 0px;\n\tbackground:url('images/datagrid_sort_asc.gif') no-repeat center center;\n}\n.datagrid-toolbar{\n\theight:28px;\n\tbackground:#efefef;\n\tpadding:1px 2px;\n\tborder-bottom:1px solid #ccc;\n}\n.datagrid-btn-separator{\n\tfloat:left;\n\theight:24px;\n\tborder-left:1px solid #ccc;\n\tborder-right:1px solid #fff;\n\tmargin:2px 1px;\n}\n.datagrid-pager{\n\tbackground:#efefef;\n\tborder-top:1px solid #ccc;\n\tposition:relative;\n}\n\n.datagrid-header{\n\toverflow:hidden;\n\tbackground:#fafafa url('images/datagrid_header_bg.gif') repeat-x left bottom;\n\tborder-bottom:1px solid #ccc;\n\tcursor:default;\n}\n.datagrid-header-inner{\n\tfloat:left;\n\twidth:10000px;\n}\n.datagrid-header td{\n\tborder-right:1px dotted #ccc;\n\tfont-size:12px;\n\tfont-weight:normal;\n\tbackground:#fafafa url('images/datagrid_header_bg.gif') repeat-x left bottom;\n\tborder-bottom:1px dotted #ccc;\n\tborder-top:1px dotted #fff;\n}\n.datagrid-header td.datagrid-header-over{\n\tbackground:#EBF3FD;\n}\n.datagrid-header .datagrid-cell{\n\tmargin:0;\n\tpadding:3px 4px;\n\twhite-space:nowrap;\n\tword-wrap:normal;\n\toverflow:hidden;\n\ttext-align:center;\n}\n.datagrid-header .datagrid-cell-group{\n\tmargin:0;\n\tpadding:4px 2px 4px 4px;\n\twhite-space:nowrap;\n\tword-wrap:normal;\n\toverflow:hidden;\n\ttext-align:center;\n}\n.datagrid-header-rownumber{\n\twidth:25px;\n\ttext-align:center;\n\tmargin:0px;\n\tpadding:3px 0px;\n}\n.datagrid-td-rownumber{\n\tbackground:#fafafa url('images/datagrid_header_bg.gif') repeat-x left bottom;\n}\n.datagrid-cell-rownumber{\n\twidth:25px;\n\ttext-align:center;\n\tmargin:0px;\n\tpadding:3px 0px;\n\tcolor:#000;\n}\n.datagrid-body{\n\tmargin:0;\n\tpadding:0;\n\toverflow:auto;\n\tzoom:1;\n}\n.datagrid-view1 .datagrid-body-inner{\n\tpadding-bottom:20px;\n}\n.datagrid-view1 .datagrid-body{\n\toverflow:hidden;\n}\n.datagrid-footer{\n\toverflow:hidden;\n}\n.datagrid-footer-inner{\n\tborder-top:1px solid #ccc;\n\twidth:10000px;\n\tfloat:left;\n}\n.datagrid-body td,.datagrid-footer td{\n\tfont-size:12px;\n\tborder-right:1px dotted #ccc;\n\tborder-bottom:1px dotted #ccc;\n\toverflow:hidden;\n\tpadding:0;\n\tmargin:0;\n}\n.datagrid-body .datagrid-cell,.datagrid-footer .datagrid-cell{\n\toverflow:hidden;\n\tmargin:0;\n\tpadding:0px 4px;\n\twhite-space:nowrap;\n\tword-wrap:normal;\n\theight:18px;\n\tline-height:18px;\n}\n.datagrid-row-editing .datagrid-cell{\n\theight:auto;\n}\n.datagrid-header-check{\n\tpadding:3px 6px;\n}\n.datagrid-cell-check{\n\tpadding:3px 6px;\n\tfont-size:1px;\n\toverflow:hidden;\n}\n.datagrid-header-check input{\n\tmargin:0;\n\tpadding:0;\n\twidth:15px;\n\theight:15px;\n}\n.datagrid-cell-check input{\n\tmargin:0;\n\tpadding:0;\n\twidth:15px;\n\theight:15px;\n}\n.datagrid-row{\n\theight:25px;\n}\n.datagrid-row-collapse{\n\tbackground:url('images/datagrid_row_collapse.gif') no-repeat center center;\n}\n.datagrid-row-expand{\n\tbackground:url('images/datagrid_row_expand.gif') no-repeat center center;\n}\n.datagrid-row-alt{\n\tbackground:#fafafa;\n}\n.datagrid-row-over{\n\tbackground:#efefef;\n\tcursor:default;\n}\n.datagrid-row-selected{\n\tbackground:#FBEC88;\n}\n.datagrid-resize-proxy{\n\tposition:absolute;\n\twidth:1px;\n\ttop:0;\n\theight:10000px;\n\tbackground:red;\n\tcursor:e-resize;\n\tdisplay:none;\n}\n.datagrid-body .datagrid-editable{\n\tpadding:0;\n}\n.datagrid-body .datagrid-editable table{\n\twidth:100%;\n\theight:100%;\n}\n.datagrid-body .datagrid-editable td{\n\tborder:0;\n\tpadding:0;\n}\n.datagrid-body .datagrid-editable .datagrid-editable-input{\n\twidth:100%;\n\tfont-size:12px;\n\tborder:1px solid #ccc;\n\tpadding:3px 2px;\n}\n.datebox .combo-arrow{\n\tbackground:url('images/datebox_arrow.png') no-repeat center center;\n}\n.datebox-calendar-inner{\n\theight:180px;\n}\n.datebox-button{\n\theight:18px;\n\tpadding:2px 5px;\n\tfont-size:12px;\n\tbackground-color:#fafafa;\n\ttext-align:center;\n}\n.datebox-current,.datebox-close{\n\tfloat:left;\n\tcolor:#888;\n\ttext-decoration:none;\n\tfont-weight:bold;\n}\n.datebox-close{\n\tfloat:right;\n}\n.datebox-ok{\n\tcolor:#888;\n\ttext-decoration:none;\n\tfont-weight:bold;\n}\n.datebox-button-hover{\n\tcolor:#A4BED4;\n}\n.dialog-content{\n\toverflow:auto;\n}\n.dialog-toolbar{\n\tbackground:#fafafa;\n\tpadding:2px 5px;\n\tborder-bottom:1px solid #eee;\n}\n.dialog-tool-separator{\n\tfloat:left;\n\theight:24px;\n\tborder-left:1px solid #ccc;\n\tborder-right:1px solid #fff;\n\tmargin:2px 1px;\n}\n.dialog-button{\n\tborder-top:1px solid #eee;\n\tbackground:#fafafa;\n\tpadding:5px 5px;\n\ttext-align:right;\n}\n.dialog-button .l-btn{\n\tmargin-left:5px;\n}.layout{\n\tposition:relative;\n\toverflow:hidden;\n\tmargin:0;\n\tpadding:0;\n}\n.layout-panel{\n\tposition:absolute;\n\toverflow:hidden;\n}\n.layout-panel-east,.layout-panel-west{\n\tz-index:2;\n}\n.layout-panel-north,.layout-panel-south{\n\tz-index:3;\n}\n.layout-button-up{\n\tbackground:url('images/layout_button_up.gif') no-repeat;\n}\n.layout-button-down{\n\tbackground:url('images/layout_button_down.gif') no-repeat;\n}\n.layout-button-left{\n\tbackground:url('images/layout_button_left.gif') no-repeat;\n}\n.layout-button-right{\n\tbackground:url('images/layout_button_right.gif') no-repeat;\n}\n.layout-expand{\n\tposition:absolute;\n\tpadding:0px 5px;\n\tpadding:0px;\n\tbackground:#efefef;\n\tfont-size:1px;\n\tcursor:pointer;\n\tz-index:1;\n}\n.layout-expand .panel-header{\n\tbackground:transparent;\n\tborder-bottom-width:0px;\n}\n.layout-expand .panel-header .panel-tool{\n\ttop: 5px;\n}\n.layout-expand .panel-body{\n\toverflow:hidden;\n}\n.layout-expand-over{\n\tbackground:#fafafa;\n}\n.layout-body{\n\toverflow:auto;\n\tbackground:#fff;\n}\n.layout-split-proxy-h{\n\tposition:absolute;\n\twidth:5px;\n\tbackground:#ccc;\n\tfont-size:1px;\n\tcursor:e-resize;\n\tdisplay:none;\n\tz-index:5;\n}\n.layout-split-proxy-v{\n\tposition:absolute;\n\theight:5px;\n\tbackground:#ccc;\n\tfont-size:1px;\n\tcursor:n-resize;\n\tdisplay:none;\n\tz-index:5;\n}\n.layout-split-north{\n\tborder-bottom:5px solid #efefef;\n}\n.layout-split-south{\n\tborder-top:5px solid #efefef;\n}\n.layout-split-east{\n\tborder-left:5px solid #efefef;\n}\n.layout-split-west{\n\tborder-right:5px solid #efefef;\n}\n.layout-mask{\n\tposition:absolute;\n\tbackground:#fafafa;\n\tfilter:alpha(opacity=10);\n\topacity:0.10;\n\tz-index:4;\n}\n\na.l-btn{\n\tcolor:#444;\n\tbackground:url('images/button_a_bg.gif') no-repeat top right;\n\tfont-size:12px;\n\ttext-decoration:none;\n\tdisplay:inline-block;\n\tzoom:1;\n\theight:24px;\n\tpadding-right:18px;\n\tcursor:pointer;\n\toutline:none;\n}\na.l-btn-plain{\n\tbackground:transparent;\n\tpadding-right:5px;\n\tborder:1px solid transparent;\n\t_border:0px solid #efefef;\n\t_padding:1px 6px 1px 1px;\n}\n\na.l-btn-disabled{\n\tcolor:#ccc;\n\topacity:0.5;\n\tfilter:alpha(opacity=50);\n\tcursor:default;\n}\na.l-btn span.l-btn-left{\n\tdisplay:inline-block;\n\tbackground:url('images/button_span_bg.gif') no-repeat top left;\n\tpadding:4px 0px 4px 18px;\n\tline-height:16px;\n\theight:16px;\n}\na.l-btn-plain span.l-btn-left{\n\tbackground:transparent;\n\tpadding-left:5px;\n}\n\na.l-btn span span.l-btn-text{\n\tdisplay:inline-block;\n\theight:16px;\n\tline-height:16px;\n\tpadding:0px;\n}\na.l-btn span span span.l-btn-empty{\n\tdisplay:inline-block;\n\tpadding:0px;\n\twidth:16px;\n}\na:hover.l-btn{\n\tbackground-position: bottom right;\n\toutline:none;\n}\na:hover.l-btn span.l-btn-left{\n\tbackground-position: bottom left;\n}\n\na:hover.l-btn-plain{\n\tborder:1px solid #d3d3d3;\n\tbackground:url('images/button_plain_hover.png') repeat-x left bottom;\n\t_padding:0px 5px 0px 0px;\n\t-moz-border-radius:3px;\n\t-webkit-border-radius: 3px;\n}\na:hover.l-btn-disabled{\n\tbackground-position:top right;\n}\na:hover.l-btn-disabled span.l-btn-left{\n\tbackground-position:top left;\n}\na.l-btn .l-btn-focus{\n\toutline:#000 dotted thin;\n}\n.menu{\n\tposition:absolute;\n\tbackground:#f0f0f0 url('images/menu.gif') repeat-y;\n\tmargin:0;\n\tpadding:2px;\n\tborder:1px solid #ccc;\n\toverflow:hidden;\n}\n.menu-item{\n\tposition:relative;\n\tmargin:0;\n\tpadding:0;\n\theight:22px;\n\tline-height:20px;\n\toverflow:hidden;\n\tfont-size:12px;\n\tcursor:pointer;\n\tborder:1px solid transparent;\n\t_border:1px solid #f0f0f0;\n}\n.menu-text{\n\tposition:absolute;\n\tleft:28px;\n\ttop:0px;\n}\n.menu-icon{\n\tposition:absolute;\n\twidth:16px;\n\theight:16px;\n\ttop:3px;\n\tleft:2px;\n}\n.menu-rightarrow{\n\tposition: absolute;\n\twidth:4px;\n\theight:7px;\n\ttop:7px;\n\tright:5px;\n\tbackground:url('images/menu_rightarrow.png') no-repeat;\n}\n.menu-sep{\n\tmargin:3px 0px 3px 24px;\n\tline-height:2px;\n\tfont-size:2px;\n\tbackground:url('images/menu_sep.png') repeat-x;\n}\n.menu-active{\n\tborder:1px solid #d3d3d3;\n\tbackground:#fafafa;\n\t-moz-border-radius:3px;\n\t-webkit-border-radius: 3px;\n}\n.menu-shadow{\n\tposition:absolute;\n\tbackground:#ddd;\n\t-moz-border-radius:5px;\n\t-webkit-border-radius: 5px;\n\t-moz-box-shadow: 2px 2px 3px rgba(0, 0, 0, 0.2);\n\t-webkit-box-shadow: 2px 2px 3px rgba(0, 0, 0, 0.2);\n\tfilter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2);\n}\n.menu-item-disabled{\n\topacity:0.5;\n\tfilter:alpha(opacity=50);\n\tcursor:default;\n}\n.menu-active-disabled{\n\tborder-color:#d3d3d3;\n}\n.m-btn-downarrow{\n\tdisplay:inline-block;\n\twidth:12px;\n\tline-height:14px;\n\t*line-height:15px;\n\tbackground:url('images/menu_downarrow.png') no-repeat 4px center;\n}\n\na.m-btn-active{\n\tbackground-position: bottom right;\n}\na.m-btn-active span.l-btn-left{\n\tbackground-position: bottom left;\n}\na.m-btn-plain-active{\n\tbackground:transparent;\n\tborder:1px solid #d3d3d3;\n\t_padding:0px 5px 0px 0px;\n\t-moz-border-radius:3px;\n\t-webkit-border-radius: 3px;\n}\n.messager-body{\n\tpadding:5px 10px;\n}\n.messager-button{\n\ttext-align:center;\n\tpadding-top:10px;\n}\n.messager-icon{\n\tfloat:left;\n\twidth:47px;\n\theight:35px;\n}\n.messager-error{\n\tbackground:url('images/messager_error.gif') no-repeat scroll left top;\n}\n.messager-info{\n\tbackground:url('images/messager_info.gif') no-repeat scroll left top;\n}\n.messager-question{\n\tbackground:url('images/messager_question.gif') no-repeat scroll left top;\n}\n.messager-warning{\n\tbackground:url('images/messager_warning.gif') no-repeat scroll left top;\n}\n.messager-input{\n\twidth: 262px;\n\tborder:1px solid #ccc;\n}\n.messager-progress{\n\tpadding:10px;\n}\n.messager-p-msg{\n\tmargin-bottom:5px;\n}.pagination{\n\tzoom:1;\n}\n.pagination table{\n\tfloat:left;\n\theight:30px;\n}\n.pagination-btn-separator{\n\tfloat:left;\n\theight:24px;\n\tborder-left:1px solid #ccc;\n\tborder-right:1px solid #fff;\n\tmargin:3px 1px;\n}\n.pagination-num{\n\tborder:1px solid #ccc;\n\tmargin:0 2px;\n}\n.pagination-page-list{\n\tmargin:0px 6px;\n}\n.pagination-info{\n\tfloat:right;\n\tpadding-right:6px;\n\tpadding-top:8px;\n\tfont-size:12px;\n}\n.pagination span{\n\tfont-size:12px;\n}\n.pagination-first{\n\tbackground:url('images/pagination_first.gif') no-repeat;\n}\n.pagination-prev{\n\tbackground:url('images/pagination_prev.gif') no-repeat;\n}\n.pagination-next{\n\tbackground:url('images/pagination_next.gif') no-repeat;\n}\n.pagination-last{\n\tbackground:url('images/pagination_last.gif') no-repeat;\n}\n.pagination-load{\n\tbackground:url('images/pagination_load.png') no-repeat;\n}\n.pagination-loading{\n\tbackground:url('images/pagination_loading.gif') no-repeat;\n}\n.panel{\n\toverflow:hidden;\n\tfont-size:12px;\n}\n.panel-header{\n\tpadding:5px;\n\tline-height:15px;\n\tcolor:#3F3F3F;\n\tfont-weight:bold;\n\tfont-size:12px;\n\tbackground:url('images/panel_title.gif') repeat-x;\n\tposition:relative;\n\tborder:1px solid #D3D3D3;\n}\n.panel-title{\n\tbackground:url('images/blank.gif') no-repeat;\n}\n.panel-header-noborder{\n\tborder-width:0px;\n\tborder-bottom:1px solid #D3D3D3;\n}\n.panel-body{\n\toverflow:auto;\n\tborder:1px solid #D3D3D3;\n\tborder-top-width:0px;\n}\n.panel-body-noheader{\n\tborder-top-width:1px;\n}\n.panel-body-noborder{\n\tborder-width:0px;\n}\n.panel-with-icon{\n\tpadding-left:18px;\n}\n.panel-icon{\n\tposition:absolute;\n\tleft:5px;\n\ttop:4px;\n\twidth:16px;\n\theight:16px;\n}\n\n.panel-tool{\n\tposition:absolute;\n\tright:5px;\n\ttop:4px;\n}\n.panel-tool a{\n\tdisplay:inline-block;\n\twidth:16px;\n\theight:16px;\n\topacity:0.6;\n\tfilter:alpha(opacity=60);\n\tmargin-left:2px;\n}\n.panel-tool a:hover{\n\topacity:1;\n\tfilter:alpha(opacity=100);\n}\n.panel-tool-close{\n\tbackground:url('images/panel_tools.gif') no-repeat -16px 0px;\n}\n.panel-tool-min{\n\tbackground:url('images/panel_tools.gif') no-repeat 0px 0px;\n}\n.panel-tool-max{\n\tbackground:url('images/panel_tools.gif') no-repeat 0px -16px;\n}\n.panel-tool-restore{\n\tbackground:url('images/panel_tools.gif') no-repeat -16px -16px;\n}\n.panel-tool-collapse{\n\tbackground:url('images/panel_tool_collapse.gif') no-repeat;\n}\n.panel-tool-expand{\n\tbackground:url('images/panel_tool_expand.gif') no-repeat;\n}\n.panel-loading{\n\tpadding:11px 0px 10px 30px;\n\tbackground:url('images/panel_loading.gif') no-repeat 10px 10px;\n}\n.panel-noscroll{\n\toverflow:hidden;\n}\n.progressbar{\n\tborder:1px solid #D3D3D3;\n\tborder-radius:5px;\n\toverflow:hidden;\n}\n.progressbar-text{\n\ttext-align:center;\n\tcolor:#3F3F3F;\n\tposition:absolute;\n}\n.progressbar-value{\n\tbackground-color:#eee;\n\tborder-radius:5px;\n\tborder-top-right-radius:0px;\n\tborder-bottom-right-radius:0px;\n\twidth:0;\n}\n.propertygrid .datagrid-view1 .datagrid-body,.propertygrid .datagrid-group{\n\tbackground:#fafafa;\n}\n.propertygrid .datagrid-group{\n\theight:21px;\n\toverflow:hidden;\n}\n.propertygrid .datagrid-view1 .datagrid-body td{\n\tborder-color:#fafafa;\n}\n.propertygrid .datagrid-view1 .datagrid-row-over,.propertygrid .datagrid-view1 .datagrid-row-selected{\n\tbackground:#fafafa;\n}\n.propertygrid .datagrid-group span{\n\tcolor:#3F3F3F;\n\tfont-weight:bold;\n\tpadding-left:4px;\n}\n.propertygrid .datagrid-row-collapse,.propertygrid .datagrid-row-expand{\n\tbackground-position:3px center;\n}.searchbox{\n\tdisplay:inline-block;\n\twhite-space:nowrap;\n\tfont-size:12px;\n\tmargin:0;\n\tpadding:0;\n\tborder:1px solid #d3d3d3;\n\tbackground:#fff;\n}\n.searchbox-text{\n\tfont-size:12px;\n\tborder:0px;\n\tline-height:20px;\n\theight:20px;\n\tpadding:0px;\n\t*height:18px;\n\t*line-height:18px;\n\t_height:18px;\n\t_line-height:18px;\n}\n.searchbox-button{\n\tbackground:url('images/searchbox_button.png') no-repeat center center;\n\twidth:18px;\n\theight:20px;\n\toverflow:hidden;\n\tdisplay:inline-block;\n\tvertical-align:top;\n\tcursor:pointer;\n\topacity:0.6;\n\tfilter:alpha(opacity=60);\n}\n.searchbox-button-hover{\n\topacity:1.0;\n\tfilter:alpha(opacity=100);\n}\n.searchbox-prompt{\n\tfont-size:12px;\n\tcolor:#ccc;\n}\n.searchbox a.l-btn-plain{\n\tbackground-color:#efefef;\n\theight:20px;\n\tborder:0;\n\tpadding:0 6px 0 0;\n\tvertical-align:top;\n}\n.searchbox a.l-btn .l-btn-left{\n\tpadding:2px 0 2px 2px;\n}\n.searchbox a.l-btn-plain:hover{\n\t-moz-border-radius:0px;\n\t-webkit-border-radius: 0px;\n\tborder:0;\n\tpadding:0 6px 0 0;\n}\n.searchbox a.m-btn-plain-active{\n\t-moz-border-radius:0px;\n\t-webkit-border-radius: 0px;\n}.slider{\n}\n.slider-disabled{\n\topacity:0.5;\n\tfilter:alpha(opacity=50);\n}\n.slider-h{\n\theight:22px;\n}\n.slider-v{\n\twidth:22px;\n}\n.slider-inner{\n\tposition:relative;\n\theight:6px;\n\ttop:7px;\n\tborder:1px solid #D3D3D3;\n\tbackground:#fafafa;\n\tborder-radius:3px;\n}\n.slider-handle{\n\tposition:absolute;\n\tdisplay:block;\n\toutline:none;\n\twidth:20px;\n\theight:20px;\n\ttop:-7px;\n\tmargin-left:-10px;\n\tbackground:url('images/slider_handle.png') no-repeat;\n}\n.slider-tip{\n\tposition:absolute;\n\tdisplay:inline-block;\n\tline-height:12px;\n\twhite-space:nowrap;\n\ttop:-22px;\n}\n.slider-rule{\n\tposition:relative;\n\ttop:15px;\n}\n.slider-rule span{\n\tposition:absolute;\n\tdisplay:inline-block;\n\tfont-size:0;\n\theight:5px;\n\tborder-left:1px solid #999;\n}\n.slider-rulelabel{\n\tposition:relative;\n\ttop:20px;\n}\n.slider-rulelabel span{\n\tposition:absolute;\n\tdisplay:inline-block;\n\tcolor:#999;\n}\n.slider-v .slider-inner{\n\twidth:6px;\n\tleft:7px;\n\ttop:0;\n\tfloat:left;\n}\n.slider-v .slider-handle{\n\tleft:3px;\n\tmargin-top:-10px;\n}\n.slider-v .slider-tip{\n\tleft:-10px;\n\tmargin-top:-6px;\n}\n.slider-v .slider-rule{\n\tfloat:left;\n\ttop:0;\n\tleft:16px;\n}\n.slider-v .slider-rule span{\n\twidth:5px;\n\theight:'auto';\n\tborder-left:0;\n\tborder-top:1px solid #999;\n}\n.slider-v .slider-rulelabel{\n\tfloat:left;\n\ttop:0;\n\tleft:23px;\n}\n.spinner{\n\tdisplay:inline-block;\n\twhite-space:nowrap;\n\tfont-size:12px;\n\tmargin:0;\n\tpadding:0;\n\tborder:1px solid #d3d3d3;\n}\n.spinner-text{\n\tfont-size:12px;\n\tborder:0px;\n\tline-height:20px;\n\theight:20px;\n\tpadding:0px;\n\t*height:18px;\n\t*line-height:18px;\n\t_height:18px;\n\t_line-height:18px;\n}\n.spinner-arrow{\n\tdisplay:inline-block;\n\tvertical-align:top;\n\tmargin:0;\n\tpadding:0;\n}\n.spinner-arrow-up,.spinner-arrow-down{\n\tdisplay:block;\n\tbackground:#E0ECF9 url('images/spinner_arrow_up.gif') no-repeat 5px 2px;\n\tfont-size:1px;\n\twidth:18px;\n\theight:10px;\n}\n.spinner-arrow-down{\n\tbackground:#E0ECF9 url('images/spinner_arrow_down.gif') no-repeat 5px 3px;\n}\n.spinner-arrow-hover{\n\tbackground-color:#ECF9F9;\n}.s-btn-downarrow{\n\tdisplay:inline-block;\n\twidth:16px;\n\tline-height:14px;\n\t*line-height:15px;\n\tbackground:url('images/menu_downarrow.png') no-repeat 9px center;\n}\n\na.s-btn-active{\n\tbackground-position: bottom right;\n}\na.s-btn-active span.l-btn-left{\n\tbackground-position: bottom left;\n}\na.s-btn-active .s-btn-downarrow{\n\tbackground:url('images/menu_split_downarrow.png') no-repeat 4px -19px;\n}\na:hover.l-btn .s-btn-downarrow{\n\tbackground:url('images/menu_split_downarrow.png') no-repeat 4px -19px;\n}\n\na.s-btn-plain-active{\n\tbackground:transparent;\n\tborder:1px solid #d3d3d3;\n\t_padding:0px 5px 0px 0px;\n\t-moz-border-radius:3px;\n\t-webkit-border-radius: 3px;\n}\na.s-btn-plain-active .s-btn-downarrow{\n\tbackground:url('images/menu_split_downarrow.png') no-repeat 4px -19px;\n}.tabs-container{\n\toverflow:hidden;\n\tbackground:#fff;\n}\n.tabs-header{\n\tborder:1px solid #D3D3D3;\n\tbackground:#efefef;\n\tborder-bottom:0px;\n\tposition:relative;\n\toverflow:hidden;\n\tpadding:0px;\n\tpadding-top:2px;\n\toverflow:hidden;\n}\n.tabs-header-noborder{\n\tborder:0px;\n}\n.tabs-header-plain{\n\tborder:0px;\n\tbackground:transparent;\n}\n.tabs-scroller-left{\n\tposition:absolute;\n\tleft:0px;\n\ttop:-1px;\n\twidth:18px;\n\theight:28px!important;\n\theight:30px;\n\tborder:1px solid #D3D3D3;\n\tfont-size:1px;\n\tdisplay:none;\n\tcursor:pointer;\n\tbackground:#efefef url('images/tabs_leftarrow.png') no-repeat 1px 5px;\n}\n.tabs-scroller-right{\n\tposition:absolute;\n\tright:0;\n\ttop:-1px;\n\twidth:18px;\n\theight:28px!important;\n\theight:30px;\n\tborder:1px solid #D3D3D3;\n\tfont-size:1px;\n\tdisplay:none;\n\tcursor:pointer;\n\tbackground:#efefef url('images/tabs_rightarrow.png') no-repeat 2px 5px;\n}\n.tabs-tool{\n\tposition:absolute;\n\ttop:-1px;\n\tborder:1px solid #D3D3D3;\n\tpadding:1px;\n\tbackground:#efefef;\n\toverflow:hidden;\n}\n.tabs-header-plain .tabs-scroller-left{\n\ttop:2px;\n\theight:25px!important;\n\theight:27px;\n}\n.tabs-header-plain .tabs-scroller-right{\n\ttop:2px;\n\theight:25px!important;\n\theight:27px;\n}\n.tabs-header-plain .tabs-tool{\n\ttop:2px;\n\tpadding-top:0;\n}\n.tabs-scroller-over{\n\tbackground-color:#fafafa;\n}\n.tabs-wrap{\n\tposition:relative;\n\tleft:0px;\n\toverflow:hidden;\n\twidth:100%;\n\tmargin:0px;\n\tpadding:0px;\n}\n.tabs-scrolling{\n\tmargin-left:18px;\n\tmargin-right:18px;\n}\n.tabs{\n\tlist-style-type:none;\n\theight:26px;\n\tmargin:0px;\n\tpadding:0px;\n\tpadding-left:4px;\n\tfont-size:12px;\n\twidth:5000px;\n\tborder-bottom:1px solid #D3D3D3;\n}\n.tabs li{\n\tfloat:left;\n\tdisplay:inline-block;\n\tmargin-right:4px;\n\tmargin-bottom:-1px;\n\tpadding:0;\n\tposition:relative;\n\tborder:1px solid #D3D3D3;\n\t-moz-border-radius-topleft:5px;\n\t-moz-border-radius-topright:5px;\n\t-webkit-border-top-left-radius:5px;\n\t-webkit-border-top-right-radius:5px;\n}\n.tabs li a.tabs-inner{\n\tdisplay:inline-block;\n\ttext-decoration:none;\n\tcolor:#3F3F3F;\n\tbackground:url('images/tabs_enabled.gif') repeat-x left top;\n\tmargin:0px;\n\tpadding:0px 10px;\n\theight:25px;\n\tline-height:25px;\n\ttext-align:center;\n\twhite-space:nowrap;\n\t-moz-border-radius-topleft:5px;\n\t-moz-border-radius-topright:5px;\n\t-webkit-border-top-left-radius:5px;\n\t-webkit-border-top-right-radius:5px;\n}\n.tabs li a.tabs-inner:hover{\n\tbackground:#fff;\n}\n.tabs li.tabs-selected{\n\tborder:1px solid #D3D3D3;\n\tborder-bottom:1px solid #fff;\n}\n.tabs li.tabs-selected a.tabs-inner{\n\tcolor:#3F3F3F;\n\tfont-weight:bold;\n\tbackground:#fff;\n\tbackground:#fff;\n\toutline: none;\n}\n.tabs li.tabs-selected a:hover.tabs-inner{\n\tcursor:default;\n\tpointer:default;\n}\n.tabs-p-tool{\n\tposition:absolute;\n\tright:16px;\n\ttop:7px;\n\tdisplay:block;\n}\n.tabs-p-tool a{\n\tdisplay:inline-block;\n\tfont-size:1px;\n\twidth:12px;\n\theight:12px;\n\topacity:0.6;\n\tfilter:alpha(opacity=60);\n}\n.tabs-p-tool a:hover{\n\topacity:1;\n\tfilter:alpha(opacity=100);\n\tcursor:hand;\n\tcursor:pointer;\n\tbackground-color:#D3D3D3;\n}\n.tabs-with-icon{\n\tpadding-left:18px;\n}\n.tabs-icon{\n\tposition:absolute;\n\twidth:16px;\n\theight:16px;\n\tleft:10px;\n\ttop:5px;\n}\n.tabs-closable{\n\tpadding-right:8px;\n}\n.tabs li a.tabs-close{\n\tposition:absolute;\n\tfont-size:1px;\n\tdisplay:block;\n\tpadding:0px;\n\twidth:11px;\n\theight:11px;\n\ttop:7px;\n\tright:5px;\n\topacity:0.6;\n\tfilter:alpha(opacity=60);\n\tbackground:url('images/tabs_close.gif') no-repeat 2px 2px;\n}\n.tabs li a:hover.tabs-close{\n\topacity:1;\n\tfilter:alpha(opacity=100);\n\tcursor:hand;\n\tcursor:pointer;\n\tbackground-color:#D3D3D3;\n}\n\n\n.tabs-panels{\n\tmargin:0px;\n\tpadding:0px;\n\tborder:1px solid #D3D3D3;\n\tborder-top:0px;\n\toverflow:hidden;\n}\n.tabs-panels-noborder{\n\tborder:0px;\n}\n.tree{\n\tfont-size:12px;\n\tmargin:0;\n\tpadding:0;\n\tlist-style-type:none;\n}\n.tree li{\n\twhite-space:nowrap;\n}\n.tree li ul{\n\tlist-style-type:none;\n\tmargin:0;\n\tpadding:0;\n}\n.tree-node{\n\theight:18px;\n\twhite-space:nowrap;\n\tcursor:pointer;\n}\n.tree-indent{\n\tdisplay:inline-block;\n\twidth:16px;\n\theight:18px;\n\tvertical-align:middle;\n}\n.tree-hit{\n\tcursor:pointer;\n}\n.tree-expanded{\n\tdisplay:inline-block;\n\twidth:16px;\n\theight:18px;\n\tvertical-align:middle;\n\tbackground:url('images/tree_arrows.gif') no-repeat -18px 0px;\n}\n.tree-expanded-hover{\n\tbackground:url('images/tree_arrows.gif') no-repeat -50px 0px;\n}\n.tree-collapsed{\n\tdisplay:inline-block;\n\twidth:16px;\n\theight:18px;\n\tvertical-align:middle;\n\tbackground:url('images/tree_arrows.gif') no-repeat 0px 0px;\n}\n.tree-collapsed-hover{\n\tbackground:url('images/tree_arrows.gif') no-repeat -32px 0px;\n}\n.tree-lines .tree-expanded{\n\tbackground:url('images/tree_elbow.png') no-repeat -36px -54px;\n}\n.tree-lines .tree-collapsed{\n\tbackground:url('images/tree_elbow.png') no-repeat 0px -36px;\n}\n.tree-lines .tree-node-last .tree-expanded{\n\tbackground:url('images/tree_elbow.png') no-repeat -18px 0px;\n}\n.tree-lines .tree-node-last .tree-collapsed{\n\tbackground:url('images/tree_elbow.png') no-repeat -36px -36px;\n}\n.tree-lines .tree-root-first .tree-expanded{\n\tbackground:url('images/tree_elbow.png') no-repeat -18px -54px;\n}\n.tree-lines .tree-root-first .tree-collapsed{\n\tbackground:url('images/tree_elbow.png') no-repeat -18px -36px;\n}\n.tree-lines .tree-root-one .tree-expanded{\n\tbackground:url('images/tree_elbow.png') no-repeat 0px -18px;\n}\n.tree-lines .tree-root-one .tree-collapsed{\n\tbackground:url('images/tree_elbow.png') no-repeat 0px -72px;\n}\n.tree-line{\n\tbackground:url('images/tree_elbow.png') no-repeat 0px -54px;\n}\n.tree-join{\n\tbackground:url('images/tree_elbow.png') no-repeat -18px -18px;\n}\n.tree-joinbottom{\n\tbackground:url('images/tree_elbow.png') no-repeat 0px 0px;\n}\n.tree-folder{\n\tdisplay:inline-block;\n\tbackground:url('images/tree_folder.gif') no-repeat;\n\twidth:16px;\n\theight:18px;\n\tvertical-align:middle;\n}\n.tree-folder-open{\n\tbackground:url('images/tree_folder_open.gif') no-repeat;\n}\n.tree-file{\n\tdisplay:inline-block;\n\tbackground:url('images/tree_file.gif') no-repeat;\n\twidth:16px;\n\theight:18px;\n\tvertical-align:middle;\n}\n.tree-loading{\n\tbackground:url('images/tree_loading.gif') no-repeat;\n}\n.tree-title{\n\tdisplay:inline-block;\n\ttext-decoration:none;\n\tvertical-align:middle;\n\tpadding:1px 2px 1px 2px;\n\twhite-space:nowrap;\n}\n\n.tree-node-hover{\n\tbackground:#fafafa;\n}\n.tree-node-selected{\n\tbackground:#FBEC88;\n}\n.tree-checkbox{\n\tdisplay:inline-block;\n\twidth:16px;\n\theight:18px;\n\tvertical-align:middle;\n}\n.tree-checkbox0{\n\tbackground:url('images/tree_checkbox_0.gif') no-repeat;\n}\n.tree-checkbox1{\n\tbackground:url('images/tree_checkbox_1.gif') no-repeat;\n}\n.tree-checkbox2{\n\tbackground:url('images/tree_checkbox_2.gif') no-repeat;\n}\n.tree-node-proxy{\n\tfont-size:12px;\n\tpadding:1px 2px 1px 18px;\n\tbackground:#fafafa;\n\tborder:1px solid #ccc;\n\tz-index:9900000;\n}\n.tree-dnd-yes{\n\tbackground:url('images/tree_dnd_yes.png') no-repeat 0 center;\n}\n.tree-dnd-no{\n\tbackground:url('images/tree_dnd_no.png') no-repeat 0 center;\n}\n.tree-node-top{\n\tborder-top:1px dotted red;\n}\n.tree-node-bottom{\n\tborder-bottom:1px dotted red;\n}\n.tree-node-append .tree-title{\n\tborder:1px dotted red;\n}\n.tree-editor{\n\tborder:1px solid #ccc;\n\tfont-size:12px;\n\tline-height:16px;\n\twidth:80px;\n\tposition:absolute;\n\ttop:0;\n}\n.validatebox-invalid{\n\tbackground:#FFFFEE url('images/validatebox_warning.png') no-repeat right 1px;\n}\n.validatebox-tip{\n\tposition:absolute;\n\twidth:200px;\n\theight:auto;\n\tdisplay:none;\n\tz-index:9900000;\n}\n.validatebox-tip-content{\n\tdisplay:inline-block;\n\tposition:absolute;\n\ttop:0px;\n\tleft:10px;\n\tpadding:3px 5px;\n\tborder:1px solid #CC9933;\n\tbackground:#FFFFCC;\n\tz-index:9900001;\n\tfont-size:12px;\n}\n.validatebox-tip-pointer{\n\tbackground:url('images/validatebox_pointer.gif') no-repeat left top;\n\tdisplay:inline-block;\n\twidth:10px;\n\theight:19px;\n\tposition:absolute;\n\tleft:1px;\n\ttop:0px;\n\tz-index:9900002;\n}\n.window {\n\tfont-size:12px;\n\tposition:absolute;\n\toverflow:hidden;\n\tbackground:#eee url('images/panel_title.gif') repeat-x;\n\tpadding:5px;\n\tborder:1px solid #D3D3D3;\n\tborder-radius:5px;\n\t-moz-border-radius:5px;\n\t-webkit-border-radius: 5px;\n}\n.window-shadow{\n\tposition:absolute;\n\tbackground:#ddd;\n\tborder-radius:5px;\n\t-moz-border-radius:5px;\n\t-webkit-border-radius: 5px;\n\t-moz-box-shadow: 2px 2px 3px rgba(0, 0, 0, 0.2);\n\t-webkit-box-shadow: 2px 2px 3px rgba(0, 0, 0, 0.2);\n\tfilter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2);\n}\n.window .window-header{\n\tbackground:transparent;\n\tpadding:2px 0px 4px 0px;\n}\n.window .window-body{\n\tbackground:#fff;\n\tborder:1px solid #D3D3D3;\n\tborder-top-width:0px;\n}\n.window .window-body-noheader{\n\tborder-top-width:1px;\n}\n.window .window-header .panel-icon{\n\tleft:1px;\n\ttop:1px;\n}\n.window .window-header .panel-with-icon{\n\tpadding-left:18px;\n}\n.window .window-header .panel-tool{\n\ttop:0px;\n\tright:1px;\n}\n.window-proxy{\n\tposition:absolute;\n\toverflow:hidden;\n\tborder:1px dashed #3F3F3F;\n}\n.window-proxy-mask{\n\tposition:absolute;\n\tbackground:#fafafa;\n\tfilter:alpha(opacity=10);\n\topacity:0.10;\n}\t\n.window-mask{\n\tposition:absolute;\n\tleft:0;\n\ttop:0;\n\twidth:100%;\n\theight:100%;\n\tfilter:alpha(opacity=40);\n\topacity:0.40;\n\tbackground:#ccc;\n\tfont-size:1px;\n\t*zoom:1;\n\toverflow:hidden;\n}\n"
  },
  {
    "path": "src/main/webapp/adminjs/themes/gray/layout.css",
    "content": ".layout{\n\tposition:relative;\n\toverflow:hidden;\n\tmargin:0;\n\tpadding:0;\n}\n.layout-panel{\n\tposition:absolute;\n\toverflow:hidden;\n}\n.layout-panel-east,.layout-panel-west{\n\tz-index:2;\n}\n.layout-panel-north,.layout-panel-south{\n\tz-index:3;\n}\n.layout-button-up{\n\tbackground:url('images/layout_button_up.gif') no-repeat;\n}\n.layout-button-down{\n\tbackground:url('images/layout_button_down.gif') no-repeat;\n}\n.layout-button-left{\n\tbackground:url('images/layout_button_left.gif') no-repeat;\n}\n.layout-button-right{\n\tbackground:url('images/layout_button_right.gif') no-repeat;\n}\n.layout-expand{\n\tposition:absolute;\n\tpadding:0px 5px;\n\tpadding:0px;\n\tbackground:#efefef;\n\tfont-size:1px;\n\tcursor:pointer;\n\tz-index:1;\n}\n.layout-expand .panel-header{\n\tbackground:transparent;\n\tborder-bottom-width:0px;\n}\n.layout-expand .panel-header .panel-tool{\n\ttop: 5px;\n}\n.layout-expand .panel-body{\n\toverflow:hidden;\n}\n.layout-expand-over{\n\tbackground:#fafafa;\n}\n.layout-body{\n\toverflow:auto;\n\tbackground:#fff;\n}\n.layout-split-proxy-h{\n\tposition:absolute;\n\twidth:5px;\n\tbackground:#ccc;\n\tfont-size:1px;\n\tcursor:e-resize;\n\tdisplay:none;\n\tz-index:5;\n}\n.layout-split-proxy-v{\n\tposition:absolute;\n\theight:5px;\n\tbackground:#ccc;\n\tfont-size:1px;\n\tcursor:n-resize;\n\tdisplay:none;\n\tz-index:5;\n}\n.layout-split-north{\n\tborder-bottom:5px solid #efefef;\n}\n.layout-split-south{\n\tborder-top:5px solid #efefef;\n}\n.layout-split-east{\n\tborder-left:5px solid #efefef;\n}\n.layout-split-west{\n\tborder-right:5px solid #efefef;\n}\n.layout-mask{\n\tposition:absolute;\n\tbackground:#fafafa;\n\tfilter:alpha(opacity=10);\n\topacity:0.10;\n\tz-index:4;\n}\n\n"
  },
  {
    "path": "src/main/webapp/adminjs/themes/gray/linkbutton.css",
    "content": "a.l-btn{\n\tcolor:#444;\n\tbackground:url('images/button_a_bg.gif') no-repeat top right;\n\tfont-size:12px;\n\ttext-decoration:none;\n\tdisplay:inline-block;\n\tzoom:1;\n\theight:24px;\n\tpadding-right:18px;\n\tcursor:pointer;\n\toutline:none;\n}\na.l-btn-plain{\n\tbackground:transparent;\n\tpadding-right:5px;\n\tborder:1px solid transparent;\n\t_border:0px solid #efefef;\n\t_padding:1px 6px 1px 1px;\n}\n\na.l-btn-disabled{\n\tcolor:#ccc;\n\topacity:0.5;\n\tfilter:alpha(opacity=50);\n\tcursor:default;\n}\na.l-btn span.l-btn-left{\n\tdisplay:inline-block;\n\tbackground:url('images/button_span_bg.gif') no-repeat top left;\n\tpadding:4px 0px 4px 18px;\n\tline-height:16px;\n\theight:16px;\n}\na.l-btn-plain span.l-btn-left{\n\tbackground:transparent;\n\tpadding-left:5px;\n}\n\na.l-btn span span.l-btn-text{\n\tdisplay:inline-block;\n\theight:16px;\n\tline-height:16px;\n\tpadding:0px;\n}\na.l-btn span span span.l-btn-empty{\n\tdisplay:inline-block;\n\tpadding:0px;\n\twidth:16px;\n}\na:hover.l-btn{\n\tbackground-position: bottom right;\n\toutline:none;\n}\na:hover.l-btn span.l-btn-left{\n\tbackground-position: bottom left;\n}\n\na:hover.l-btn-plain{\n\tborder:1px solid #d3d3d3;\n\tbackground:url('images/button_plain_hover.png') repeat-x left bottom;\n\t_padding:0px 5px 0px 0px;\n\t-moz-border-radius:3px;\n\t-webkit-border-radius: 3px;\n}\na:hover.l-btn-disabled{\n\tbackground-position:top right;\n}\na:hover.l-btn-disabled span.l-btn-left{\n\tbackground-position:top left;\n}\na.l-btn .l-btn-focus{\n\toutline:#000 dotted thin;\n}\n"
  },
  {
    "path": "src/main/webapp/adminjs/themes/gray/menu.css",
    "content": ".menu{\n\tposition:absolute;\n\tbackground:#f0f0f0 url('images/menu.gif') repeat-y;\n\tmargin:0;\n\tpadding:2px;\n\tborder:1px solid #ccc;\n\toverflow:hidden;\n}\n.menu-item{\n\tposition:relative;\n\tmargin:0;\n\tpadding:0;\n\theight:22px;\n\tline-height:20px;\n\toverflow:hidden;\n\tfont-size:12px;\n\tcursor:pointer;\n\tborder:1px solid transparent;\n\t_border:1px solid #f0f0f0;\n}\n.menu-text{\n\tposition:absolute;\n\tleft:28px;\n\ttop:0px;\n}\n.menu-icon{\n\tposition:absolute;\n\twidth:16px;\n\theight:16px;\n\ttop:3px;\n\tleft:2px;\n}\n.menu-rightarrow{\n\tposition: absolute;\n\twidth:4px;\n\theight:7px;\n\ttop:7px;\n\tright:5px;\n\tbackground:url('images/menu_rightarrow.png') no-repeat;\n}\n.menu-sep{\n\tmargin:3px 0px 3px 24px;\n\tline-height:2px;\n\tfont-size:2px;\n\tbackground:url('images/menu_sep.png') repeat-x;\n}\n.menu-active{\n\tborder:1px solid #d3d3d3;\n\tbackground:#fafafa;\n\t-moz-border-radius:3px;\n\t-webkit-border-radius: 3px;\n}\n.menu-shadow{\n\tposition:absolute;\n\tbackground:#ddd;\n\t-moz-border-radius:5px;\n\t-webkit-border-radius: 5px;\n\t-moz-box-shadow: 2px 2px 3px rgba(0, 0, 0, 0.2);\n\t-webkit-box-shadow: 2px 2px 3px rgba(0, 0, 0, 0.2);\n\tfilter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2);\n}\n.menu-item-disabled{\n\topacity:0.5;\n\tfilter:alpha(opacity=50);\n\tcursor:default;\n}\n.menu-active-disabled{\n\tborder-color:#d3d3d3;\n}\n"
  },
  {
    "path": "src/main/webapp/adminjs/themes/gray/menubutton.css",
    "content": ".m-btn-downarrow{\n\tdisplay:inline-block;\n\twidth:12px;\n\tline-height:14px;\n\t*line-height:15px;\n\tbackground:url('images/menu_downarrow.png') no-repeat 4px center;\n}\n\na.m-btn-active{\n\tbackground-position: bottom right;\n}\na.m-btn-active span.l-btn-left{\n\tbackground-position: bottom left;\n}\na.m-btn-plain-active{\n\tbackground:transparent;\n\tborder:1px solid #d3d3d3;\n\t_padding:0px 5px 0px 0px;\n\t-moz-border-radius:3px;\n\t-webkit-border-radius: 3px;\n}\n"
  },
  {
    "path": "src/main/webapp/adminjs/themes/gray/messager.css",
    "content": ".messager-body{\n\tpadding:5px 10px;\n}\n.messager-button{\n\ttext-align:center;\n\tpadding-top:10px;\n}\n.messager-icon{\n\tfloat:left;\n\twidth:47px;\n\theight:35px;\n}\n.messager-error{\n\tbackground:url('images/messager_error.gif') no-repeat scroll left top;\n}\n.messager-info{\n\tbackground:url('images/messager_info.gif') no-repeat scroll left top;\n}\n.messager-question{\n\tbackground:url('images/messager_question.gif') no-repeat scroll left top;\n}\n.messager-warning{\n\tbackground:url('images/messager_warning.gif') no-repeat scroll left top;\n}\n.messager-input{\n\twidth: 262px;\n\tborder:1px solid #ccc;\n}\n.messager-progress{\n\tpadding:10px;\n}\n.messager-p-msg{\n\tmargin-bottom:5px;\n}"
  },
  {
    "path": "src/main/webapp/adminjs/themes/gray/pagination.css",
    "content": ".pagination{\n\tzoom:1;\n}\n.pagination table{\n\tfloat:left;\n\theight:30px;\n}\n.pagination-btn-separator{\n\tfloat:left;\n\theight:24px;\n\tborder-left:1px solid #ccc;\n\tborder-right:1px solid #fff;\n\tmargin:3px 1px;\n}\n.pagination-num{\n\tborder:1px solid #ccc;\n\tmargin:0 2px;\n}\n.pagination-page-list{\n\tmargin:0px 6px;\n}\n.pagination-info{\n\tfloat:right;\n\tpadding-right:6px;\n\tpadding-top:8px;\n\tfont-size:12px;\n}\n.pagination span{\n\tfont-size:12px;\n}\n.pagination-first{\n\tbackground:url('images/pagination_first.gif') no-repeat;\n}\n.pagination-prev{\n\tbackground:url('images/pagination_prev.gif') no-repeat;\n}\n.pagination-next{\n\tbackground:url('images/pagination_next.gif') no-repeat;\n}\n.pagination-last{\n\tbackground:url('images/pagination_last.gif') no-repeat;\n}\n.pagination-load{\n\tbackground:url('images/pagination_load.png') no-repeat;\n}\n.pagination-loading{\n\tbackground:url('images/pagination_loading.gif') no-repeat;\n}\n"
  },
  {
    "path": "src/main/webapp/adminjs/themes/gray/panel.css",
    "content": ".panel{\n\toverflow:hidden;\n\tfont-size:12px;\n}\n.panel-header{\n\tpadding:5px;\n\tline-height:15px;\n\tcolor:#3F3F3F;\n\tfont-weight:bold;\n\tfont-size:12px;\n\tbackground:url('images/panel_title.gif') repeat-x;\n\tposition:relative;\n\tborder:1px solid #D3D3D3;\n}\n.panel-title{\n\tbackground:url('images/blank.gif') no-repeat;\n}\n.panel-header-noborder{\n\tborder-width:0px;\n\tborder-bottom:1px solid #D3D3D3;\n}\n.panel-body{\n\toverflow:auto;\n\tborder:1px solid #D3D3D3;\n\tborder-top-width:0px;\n}\n.panel-body-noheader{\n\tborder-top-width:1px;\n}\n.panel-body-noborder{\n\tborder-width:0px;\n}\n.panel-with-icon{\n\tpadding-left:18px;\n}\n.panel-icon{\n\tposition:absolute;\n\tleft:5px;\n\ttop:4px;\n\twidth:16px;\n\theight:16px;\n}\n\n.panel-tool{\n\tposition:absolute;\n\tright:5px;\n\ttop:4px;\n}\n.panel-tool a{\n\tdisplay:inline-block;\n\twidth:16px;\n\theight:16px;\n\topacity:0.6;\n\tfilter:alpha(opacity=60);\n\tmargin-left:2px;\n}\n.panel-tool a:hover{\n\topacity:1;\n\tfilter:alpha(opacity=100);\n}\n.panel-tool-close{\n\tbackground:url('images/panel_tools.gif') no-repeat -16px 0px;\n}\n.panel-tool-min{\n\tbackground:url('images/panel_tools.gif') no-repeat 0px 0px;\n}\n.panel-tool-max{\n\tbackground:url('images/panel_tools.gif') no-repeat 0px -16px;\n}\n.panel-tool-restore{\n\tbackground:url('images/panel_tools.gif') no-repeat -16px -16px;\n}\n.panel-tool-collapse{\n\tbackground:url('images/panel_tool_collapse.gif') no-repeat;\n}\n.panel-tool-expand{\n\tbackground:url('images/panel_tool_expand.gif') no-repeat;\n}\n.panel-loading{\n\tpadding:11px 0px 10px 30px;\n\tbackground:url('images/panel_loading.gif') no-repeat 10px 10px;\n}\n.panel-noscroll{\n\toverflow:hidden;\n}\n"
  },
  {
    "path": "src/main/webapp/adminjs/themes/gray/progressbar.css",
    "content": ".progressbar{\n\tborder:1px solid #D3D3D3;\n\tborder-radius:5px;\n\toverflow:hidden;\n}\n.progressbar-text{\n\ttext-align:center;\n\tcolor:#3F3F3F;\n\tposition:absolute;\n}\n.progressbar-value{\n\tbackground-color:#eee;\n\tborder-radius:5px;\n\tborder-top-right-radius:0px;\n\tborder-bottom-right-radius:0px;\n\twidth:0;\n}\n"
  },
  {
    "path": "src/main/webapp/adminjs/themes/gray/propertygrid.css",
    "content": ".propertygrid .datagrid-view1 .datagrid-body,.propertygrid .datagrid-group{\n\tbackground:#fafafa;\n}\n.propertygrid .datagrid-group{\n\theight:21px;\n\toverflow:hidden;\n}\n.propertygrid .datagrid-view1 .datagrid-body td{\n\tborder-color:#fafafa;\n}\n.propertygrid .datagrid-view1 .datagrid-row-over,.propertygrid .datagrid-view1 .datagrid-row-selected{\n\tbackground:#fafafa;\n}\n.propertygrid .datagrid-group span{\n\tcolor:#3F3F3F;\n\tfont-weight:bold;\n\tpadding-left:4px;\n}\n.propertygrid .datagrid-row-collapse,.propertygrid .datagrid-row-expand{\n\tbackground-position:3px center;\n}"
  },
  {
    "path": "src/main/webapp/adminjs/themes/gray/searchbox.css",
    "content": ".searchbox{\n\tdisplay:inline-block;\n\twhite-space:nowrap;\n\tfont-size:12px;\n\tmargin:0;\n\tpadding:0;\n\tborder:1px solid #d3d3d3;\n\tbackground:#fff;\n}\n.searchbox-text{\n\tfont-size:12px;\n\tborder:0px;\n\tline-height:20px;\n\theight:20px;\n\tpadding:0px;\n\t*height:18px;\n\t*line-height:18px;\n\t_height:18px;\n\t_line-height:18px;\n}\n.searchbox-button{\n\tbackground:url('images/searchbox_button.png') no-repeat center center;\n\twidth:18px;\n\theight:20px;\n\toverflow:hidden;\n\tdisplay:inline-block;\n\tvertical-align:top;\n\tcursor:pointer;\n\topacity:0.6;\n\tfilter:alpha(opacity=60);\n}\n.searchbox-button-hover{\n\topacity:1.0;\n\tfilter:alpha(opacity=100);\n}\n.searchbox-prompt{\n\tfont-size:12px;\n\tcolor:#ccc;\n}\n.searchbox a.l-btn-plain{\n\tbackground-color:#efefef;\n\theight:20px;\n\tborder:0;\n\tpadding:0 6px 0 0;\n\tvertical-align:top;\n}\n.searchbox a.l-btn .l-btn-left{\n\tpadding:2px 0 2px 2px;\n}\n.searchbox a.l-btn-plain:hover{\n\t-moz-border-radius:0px;\n\t-webkit-border-radius: 0px;\n\tborder:0;\n\tpadding:0 6px 0 0;\n}\n.searchbox a.m-btn-plain-active{\n\t-moz-border-radius:0px;\n\t-webkit-border-radius: 0px;\n}"
  },
  {
    "path": "src/main/webapp/adminjs/themes/gray/slider.css",
    "content": ".slider{\n}\n.slider-disabled{\n\topacity:0.5;\n\tfilter:alpha(opacity=50);\n}\n.slider-h{\n\theight:22px;\n}\n.slider-v{\n\twidth:22px;\n}\n.slider-inner{\n\tposition:relative;\n\theight:6px;\n\ttop:7px;\n\tborder:1px solid #D3D3D3;\n\tbackground:#fafafa;\n\tborder-radius:3px;\n}\n.slider-handle{\n\tposition:absolute;\n\tdisplay:block;\n\toutline:none;\n\twidth:20px;\n\theight:20px;\n\ttop:-7px;\n\tmargin-left:-10px;\n\tbackground:url('images/slider_handle.png') no-repeat;\n}\n.slider-tip{\n\tposition:absolute;\n\tdisplay:inline-block;\n\tline-height:12px;\n\twhite-space:nowrap;\n\ttop:-22px;\n}\n.slider-rule{\n\tposition:relative;\n\ttop:15px;\n}\n.slider-rule span{\n\tposition:absolute;\n\tdisplay:inline-block;\n\tfont-size:0;\n\theight:5px;\n\tborder-left:1px solid #999;\n}\n.slider-rulelabel{\n\tposition:relative;\n\ttop:20px;\n}\n.slider-rulelabel span{\n\tposition:absolute;\n\tdisplay:inline-block;\n\tcolor:#999;\n}\n.slider-v .slider-inner{\n\twidth:6px;\n\tleft:7px;\n\ttop:0;\n\tfloat:left;\n}\n.slider-v .slider-handle{\n\tleft:3px;\n\tmargin-top:-10px;\n}\n.slider-v .slider-tip{\n\tleft:-10px;\n\tmargin-top:-6px;\n}\n.slider-v .slider-rule{\n\tfloat:left;\n\ttop:0;\n\tleft:16px;\n}\n.slider-v .slider-rule span{\n\twidth:5px;\n\theight:'auto';\n\tborder-left:0;\n\tborder-top:1px solid #999;\n}\n.slider-v .slider-rulelabel{\n\tfloat:left;\n\ttop:0;\n\tleft:23px;\n}\n"
  },
  {
    "path": "src/main/webapp/adminjs/themes/gray/spinner.css",
    "content": ".spinner{\n\tdisplay:inline-block;\n\twhite-space:nowrap;\n\tfont-size:12px;\n\tmargin:0;\n\tpadding:0;\n\tborder:1px solid #d3d3d3;\n}\n.spinner-text{\n\tfont-size:12px;\n\tborder:0px;\n\tline-height:20px;\n\theight:20px;\n\tpadding:0px;\n\t*height:18px;\n\t*line-height:18px;\n\t_height:18px;\n\t_line-height:18px;\n}\n.spinner-arrow{\n\tdisplay:inline-block;\n\tvertical-align:top;\n\tmargin:0;\n\tpadding:0;\n}\n.spinner-arrow-up,.spinner-arrow-down{\n\tdisplay:block;\n\tbackground:#E0ECF9 url('images/spinner_arrow_up.gif') no-repeat 5px 2px;\n\tfont-size:1px;\n\twidth:18px;\n\theight:10px;\n}\n.spinner-arrow-down{\n\tbackground:#E0ECF9 url('images/spinner_arrow_down.gif') no-repeat 5px 3px;\n}\n.spinner-arrow-hover{\n\tbackground-color:#ECF9F9;\n}"
  },
  {
    "path": "src/main/webapp/adminjs/themes/gray/splitbutton.css",
    "content": ".s-btn-downarrow{\n\tdisplay:inline-block;\n\twidth:16px;\n\tline-height:14px;\n\t*line-height:15px;\n\tbackground:url('images/menu_downarrow.png') no-repeat 9px center;\n}\n\na.s-btn-active{\n\tbackground-position: bottom right;\n}\na.s-btn-active span.l-btn-left{\n\tbackground-position: bottom left;\n}\na.s-btn-active .s-btn-downarrow{\n\tbackground:url('images/menu_split_downarrow.png') no-repeat 4px -19px;\n}\na:hover.l-btn .s-btn-downarrow{\n\tbackground:url('images/menu_split_downarrow.png') no-repeat 4px -19px;\n}\n\na.s-btn-plain-active{\n\tbackground:transparent;\n\tborder:1px solid #d3d3d3;\n\t_padding:0px 5px 0px 0px;\n\t-moz-border-radius:3px;\n\t-webkit-border-radius: 3px;\n}\na.s-btn-plain-active .s-btn-downarrow{\n\tbackground:url('images/menu_split_downarrow.png') no-repeat 4px -19px;\n}"
  },
  {
    "path": "src/main/webapp/adminjs/themes/gray/tabs.css",
    "content": ".tabs-container{\n\toverflow:hidden;\n\tbackground:#fff;\n}\n.tabs-header{\n\tborder:1px solid #D3D3D3;\n\tbackground:#efefef;\n\tborder-bottom:0px;\n\tposition:relative;\n\toverflow:hidden;\n\tpadding:0px;\n\tpadding-top:2px;\n\toverflow:hidden;\n}\n.tabs-header-noborder{\n\tborder:0px;\n}\n.tabs-header-plain{\n\tborder:0px;\n\tbackground:transparent;\n}\n.tabs-scroller-left{\n\tposition:absolute;\n\tleft:0px;\n\ttop:-1px;\n\twidth:18px;\n\theight:28px!important;\n\theight:30px;\n\tborder:1px solid #D3D3D3;\n\tfont-size:1px;\n\tdisplay:none;\n\tcursor:pointer;\n\tbackground:#efefef url('images/tabs_leftarrow.png') no-repeat 1px 5px;\n}\n.tabs-scroller-right{\n\tposition:absolute;\n\tright:0;\n\ttop:-1px;\n\twidth:18px;\n\theight:28px!important;\n\theight:30px;\n\tborder:1px solid #D3D3D3;\n\tfont-size:1px;\n\tdisplay:none;\n\tcursor:pointer;\n\tbackground:#efefef url('images/tabs_rightarrow.png') no-repeat 2px 5px;\n}\n.tabs-tool{\n\tposition:absolute;\n\ttop:-1px;\n\tborder:1px solid #D3D3D3;\n\tpadding:1px;\n\tbackground:#efefef;\n\toverflow:hidden;\n}\n.tabs-header-plain .tabs-scroller-left{\n\ttop:2px;\n\theight:25px!important;\n\theight:27px;\n}\n.tabs-header-plain .tabs-scroller-right{\n\ttop:2px;\n\theight:25px!important;\n\theight:27px;\n}\n.tabs-header-plain .tabs-tool{\n\ttop:2px;\n\tpadding-top:0;\n}\n.tabs-scroller-over{\n\tbackground-color:#fafafa;\n}\n.tabs-wrap{\n\tposition:relative;\n\tleft:0px;\n\toverflow:hidden;\n\twidth:100%;\n\tmargin:0px;\n\tpadding:0px;\n}\n.tabs-scrolling{\n\tmargin-left:18px;\n\tmargin-right:18px;\n}\n.tabs{\n\tlist-style-type:none;\n\theight:26px;\n\tmargin:0px;\n\tpadding:0px;\n\tpadding-left:4px;\n\tfont-size:12px;\n\twidth:5000px;\n\tborder-bottom:1px solid #D3D3D3;\n}\n.tabs li{\n\tfloat:left;\n\tdisplay:inline-block;\n\tmargin-right:4px;\n\tmargin-bottom:-1px;\n\tpadding:0;\n\tposition:relative;\n\tborder:1px solid #D3D3D3;\n\t-moz-border-radius-topleft:5px;\n\t-moz-border-radius-topright:5px;\n\t-webkit-border-top-left-radius:5px;\n\t-webkit-border-top-right-radius:5px;\n}\n.tabs li a.tabs-inner{\n\tdisplay:inline-block;\n\ttext-decoration:none;\n\tcolor:#3F3F3F;\n\tbackground:url('images/tabs_enabled.gif') repeat-x left top;\n\tmargin:0px;\n\tpadding:0px 10px;\n\theight:25px;\n\tline-height:25px;\n\ttext-align:center;\n\twhite-space:nowrap;\n\t-moz-border-radius-topleft:5px;\n\t-moz-border-radius-topright:5px;\n\t-webkit-border-top-left-radius:5px;\n\t-webkit-border-top-right-radius:5px;\n}\n.tabs li a.tabs-inner:hover{\n\tbackground:#fff;\n}\n.tabs li.tabs-selected{\n\tborder:1px solid #D3D3D3;\n\tborder-bottom:1px solid #fff;\n}\n.tabs li.tabs-selected a.tabs-inner{\n\tcolor:#3F3F3F;\n\tfont-weight:bold;\n\tbackground:#fff;\n\tbackground:#fff;\n\toutline: none;\n}\n.tabs li.tabs-selected a:hover.tabs-inner{\n\tcursor:default;\n\tpointer:default;\n}\n.tabs-p-tool{\n\tposition:absolute;\n\tright:16px;\n\ttop:7px;\n\tdisplay:block;\n}\n.tabs-p-tool a{\n\tdisplay:inline-block;\n\tfont-size:1px;\n\twidth:12px;\n\theight:12px;\n\topacity:0.6;\n\tfilter:alpha(opacity=60);\n}\n.tabs-p-tool a:hover{\n\topacity:1;\n\tfilter:alpha(opacity=100);\n\tcursor:hand;\n\tcursor:pointer;\n\tbackground-color:#D3D3D3;\n}\n.tabs-with-icon{\n\tpadding-left:18px;\n}\n.tabs-icon{\n\tposition:absolute;\n\twidth:16px;\n\theight:16px;\n\tleft:10px;\n\ttop:5px;\n}\n.tabs-closable{\n\tpadding-right:8px;\n}\n.tabs li a.tabs-close{\n\tposition:absolute;\n\tfont-size:1px;\n\tdisplay:block;\n\tpadding:0px;\n\twidth:11px;\n\theight:11px;\n\ttop:7px;\n\tright:5px;\n\topacity:0.6;\n\tfilter:alpha(opacity=60);\n\tbackground:url('images/tabs_close.gif') no-repeat 2px 2px;\n}\n.tabs li a:hover.tabs-close{\n\topacity:1;\n\tfilter:alpha(opacity=100);\n\tcursor:hand;\n\tcursor:pointer;\n\tbackground-color:#D3D3D3;\n}\n\n\n.tabs-panels{\n\tmargin:0px;\n\tpadding:0px;\n\tborder:1px solid #D3D3D3;\n\tborder-top:0px;\n\toverflow:hidden;\n}\n.tabs-panels-noborder{\n\tborder:0px;\n}\n"
  },
  {
    "path": "src/main/webapp/adminjs/themes/gray/tree.css",
    "content": ".tree{\n\tfont-size:12px;\n\tmargin:0;\n\tpadding:0;\n\tlist-style-type:none;\n}\n.tree li{\n\twhite-space:nowrap;\n}\n.tree li ul{\n\tlist-style-type:none;\n\tmargin:0;\n\tpadding:0;\n}\n.tree-node{\n\theight:18px;\n\twhite-space:nowrap;\n\tcursor:pointer;\n}\n.tree-indent{\n\tdisplay:inline-block;\n\twidth:16px;\n\theight:18px;\n\tvertical-align:middle;\n}\n.tree-hit{\n\tcursor:pointer;\n}\n.tree-expanded{\n\tdisplay:inline-block;\n\twidth:16px;\n\theight:18px;\n\tvertical-align:middle;\n\tbackground:url('images/tree_arrows.gif') no-repeat -18px 0px;\n}\n.tree-expanded-hover{\n\tbackground:url('images/tree_arrows.gif') no-repeat -50px 0px;\n}\n.tree-collapsed{\n\tdisplay:inline-block;\n\twidth:16px;\n\theight:18px;\n\tvertical-align:middle;\n\tbackground:url('images/tree_arrows.gif') no-repeat 0px 0px;\n}\n.tree-collapsed-hover{\n\tbackground:url('images/tree_arrows.gif') no-repeat -32px 0px;\n}\n.tree-lines .tree-expanded{\n\tbackground:url('images/tree_elbow.png') no-repeat -36px -54px;\n}\n.tree-lines .tree-collapsed{\n\tbackground:url('images/tree_elbow.png') no-repeat 0px -36px;\n}\n.tree-lines .tree-node-last .tree-expanded{\n\tbackground:url('images/tree_elbow.png') no-repeat -18px 0px;\n}\n.tree-lines .tree-node-last .tree-collapsed{\n\tbackground:url('images/tree_elbow.png') no-repeat -36px -36px;\n}\n.tree-lines .tree-root-first .tree-expanded{\n\tbackground:url('images/tree_elbow.png') no-repeat -18px -54px;\n}\n.tree-lines .tree-root-first .tree-collapsed{\n\tbackground:url('images/tree_elbow.png') no-repeat -18px -36px;\n}\n.tree-lines .tree-root-one .tree-expanded{\n\tbackground:url('images/tree_elbow.png') no-repeat 0px -18px;\n}\n.tree-lines .tree-root-one .tree-collapsed{\n\tbackground:url('images/tree_elbow.png') no-repeat 0px -72px;\n}\n.tree-line{\n\tbackground:url('images/tree_elbow.png') no-repeat 0px -54px;\n}\n.tree-join{\n\tbackground:url('images/tree_elbow.png') no-repeat -18px -18px;\n}\n.tree-joinbottom{\n\tbackground:url('images/tree_elbow.png') no-repeat 0px 0px;\n}\n.tree-folder{\n\tdisplay:inline-block;\n\tbackground:url('images/tree_folder.gif') no-repeat;\n\twidth:16px;\n\theight:18px;\n\tvertical-align:middle;\n}\n.tree-folder-open{\n\tbackground:url('images/tree_folder_open.gif') no-repeat;\n}\n.tree-file{\n\tdisplay:inline-block;\n\tbackground:url('images/tree_file.gif') no-repeat;\n\twidth:16px;\n\theight:18px;\n\tvertical-align:middle;\n}\n.tree-loading{\n\tbackground:url('images/tree_loading.gif') no-repeat;\n}\n.tree-title{\n\tdisplay:inline-block;\n\ttext-decoration:none;\n\tvertical-align:middle;\n\tpadding:1px 2px 1px 2px;\n\twhite-space:nowrap;\n}\n\n.tree-node-hover{\n\tbackground:#fafafa;\n}\n.tree-node-selected{\n\tbackground:#FBEC88;\n}\n.tree-checkbox{\n\tdisplay:inline-block;\n\twidth:16px;\n\theight:18px;\n\tvertical-align:middle;\n}\n.tree-checkbox0{\n\tbackground:url('images/tree_checkbox_0.gif') no-repeat;\n}\n.tree-checkbox1{\n\tbackground:url('images/tree_checkbox_1.gif') no-repeat;\n}\n.tree-checkbox2{\n\tbackground:url('images/tree_checkbox_2.gif') no-repeat;\n}\n.tree-node-proxy{\n\tfont-size:12px;\n\tpadding:1px 2px 1px 18px;\n\tbackground:#fafafa;\n\tborder:1px solid #ccc;\n\tz-index:9900000;\n}\n.tree-dnd-yes{\n\tbackground:url('images/tree_dnd_yes.png') no-repeat 0 center;\n}\n.tree-dnd-no{\n\tbackground:url('images/tree_dnd_no.png') no-repeat 0 center;\n}\n.tree-node-top{\n\tborder-top:1px dotted red;\n}\n.tree-node-bottom{\n\tborder-bottom:1px dotted red;\n}\n.tree-node-append .tree-title{\n\tborder:1px dotted red;\n}\n.tree-editor{\n\tborder:1px solid #ccc;\n\tfont-size:12px;\n\tline-height:16px;\n\twidth:80px;\n\tposition:absolute;\n\ttop:0;\n}\n"
  },
  {
    "path": "src/main/webapp/adminjs/themes/gray/validatebox.css",
    "content": ".validatebox-invalid{\n\tbackground:#FFFFEE url('images/validatebox_warning.png') no-repeat right 1px;\n}\n.validatebox-tip{\n\tposition:absolute;\n\twidth:200px;\n\theight:auto;\n\tdisplay:none;\n\tz-index:9900000;\n}\n.validatebox-tip-content{\n\tdisplay:inline-block;\n\tposition:absolute;\n\ttop:0px;\n\tleft:10px;\n\tpadding:3px 5px;\n\tborder:1px solid #CC9933;\n\tbackground:#FFFFCC;\n\tz-index:9900001;\n\tfont-size:12px;\n}\n.validatebox-tip-pointer{\n\tbackground:url('images/validatebox_pointer.gif') no-repeat left top;\n\tdisplay:inline-block;\n\twidth:10px;\n\theight:19px;\n\tposition:absolute;\n\tleft:1px;\n\ttop:0px;\n\tz-index:9900002;\n}\n"
  },
  {
    "path": "src/main/webapp/adminjs/themes/gray/window.css",
    "content": ".window {\n\tfont-size:12px;\n\tposition:absolute;\n\toverflow:hidden;\n\tbackground:#eee url('images/panel_title.gif') repeat-x;\n\tpadding:5px;\n\tborder:1px solid #D3D3D3;\n\tborder-radius:5px;\n\t-moz-border-radius:5px;\n\t-webkit-border-radius: 5px;\n}\n.window-shadow{\n\tposition:absolute;\n\tbackground:#ddd;\n\tborder-radius:5px;\n\t-moz-border-radius:5px;\n\t-webkit-border-radius: 5px;\n\t-moz-box-shadow: 2px 2px 3px rgba(0, 0, 0, 0.2);\n\t-webkit-box-shadow: 2px 2px 3px rgba(0, 0, 0, 0.2);\n\tfilter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2);\n}\n.window .window-header{\n\tbackground:transparent;\n\tpadding:2px 0px 4px 0px;\n}\n.window .window-body{\n\tbackground:#fff;\n\tborder:1px solid #D3D3D3;\n\tborder-top-width:0px;\n}\n.window .window-body-noheader{\n\tborder-top-width:1px;\n}\n.window .window-header .panel-icon{\n\tleft:1px;\n\ttop:1px;\n}\n.window .window-header .panel-with-icon{\n\tpadding-left:18px;\n}\n.window .window-header .panel-tool{\n\ttop:0px;\n\tright:1px;\n}\n.window-proxy{\n\tposition:absolute;\n\toverflow:hidden;\n\tborder:1px dashed #3F3F3F;\n}\n.window-proxy-mask{\n\tposition:absolute;\n\tbackground:#fafafa;\n\tfilter:alpha(opacity=10);\n\topacity:0.10;\n}\t\n.window-mask{\n\tposition:absolute;\n\tleft:0;\n\ttop:0;\n\twidth:100%;\n\theight:100%;\n\tfilter:alpha(opacity=40);\n\topacity:0.40;\n\tbackground:#ccc;\n\tfont-size:1px;\n\t*zoom:1;\n\toverflow:hidden;\n}\n"
  },
  {
    "path": "src/main/webapp/adminjs/themes/icon.css",
    "content": ".icon-blank{\n\tbackground:url('icons/blank.gif') no-repeat;\n}\n.icon-add{\n\tbackground:url('icons/edit_add.png') no-repeat;\n}\n.icon-edit{\n\tbackground:url('icons/pencil.png') no-repeat;\n}\n.icon-remove{\n\tbackground:url('icons/edit_remove.png') no-repeat;\n}\n.icon-save{\n\tbackground:url('icons/filesave.png') no-repeat;\n}\n.icon-cut{\n\tbackground:url('icons/cut.png') no-repeat;\n}\n.icon-ok{\n\tbackground:url('icons/ok.png') no-repeat;\n}\n.icon-no{\n\tbackground:url('icons/no.png') no-repeat;\n}\n.icon-cancel{\n\tbackground:url('icons/cancel.png') no-repeat;\n}\n.icon-reload{\n\tbackground:url('icons/reload.png') no-repeat;\n}\n.icon-search{\n\tbackground:url('icons/search.png') no-repeat;\n}\n.icon-print{\n\tbackground:url('icons/print.png') no-repeat;\n}\n.icon-help{\n\tbackground:url('icons/help.png') no-repeat;\n}\n.icon-undo{\n\tbackground:url('icons/undo.png') no-repeat;\n}\n.icon-redo{\n\tbackground:url('icons/redo.png') no-repeat;\n}\n.icon-back{\n\tbackground:url('icons/back.png') no-repeat;\n}\n.icon-sum{\n\tbackground:url('icons/sum.png') no-repeat;\n}\n.icon-tip{\n\tbackground:url('icons/tip.png') no-repeat;\n}\n\n.icon-mini-add{\n\tbackground:url('icons/mini_add.png') no-repeat 2px 2px;\n}\n.icon-mini-edit{\n\tbackground:url('icons/mini_edit.png') no-repeat 2px 2px;\n}\n.icon-mini-refresh{\n\tbackground:url('icons/mini_refresh.png') no-repeat 3px 2px;\n}"
  },
  {
    "path": "src/main/webapp/casual.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n<meta charset=\"UTF-8\">\n<title>临时工计件页面</title>\n</head>\n<body>\n临时工计件页面\n</body>\n</html>"
  },
  {
    "path": "src/main/webapp/css/default.css",
    "content": "﻿*{font-size:12px; font-family:Tahoma,Verdana,微软雅黑,新宋体}\nbody{background:#D2E0F2; }\na{ color:Black; text-decoration:none;}\na:hover{ color:Red; text-decoration:underline;}\n.textbox03 {border: #878787 1px solid;padding: 4px 3px;font:Verdana, Geneva, sans-serif,宋体;line-height: 14px; background-color: #fff;  height: auto; font-size: 14px;  font-weight: bold; width: 190px; }\n\n.txt01{font:Verdana, Geneva, sans-serif,宋体;padding:3px 2px 2px 2px; border-width:1px; border-color:#ddd;  color:#000;}\n.txt {border: #878787 1px solid;padding: 4px 3px;font:Verdana, Geneva, sans-serif,宋体;line-height: 14px; background-color: #fff;  height: auto; font-size: 14px;}\n.footer{text-align:center;color:#15428B; margin:0px; padding:0px;line-height:23px; font-weight:bold;}\n\n.head a{color:White;text-decoration:underline;}\n\n.navlist{list-style-type:none;margin:0px; padding:10px;}\n.navlist li{ padding:0px;}\n.navlist li a{line-height:24px;}\n.navlist li div{margin:2px 0px;padding-left:10px;padding-top:2px; border:1px dashed #ffffff;}\n.navlist li div.hover{border:1px dashed #99BBE8; background:#E0ECFF;cursor:pointer;}\n.navlist li div.hover a{color:#416AA3;}\n.navlist li div.selected{border:1px solid #99BBE8; background:#E0ECFF;cursor:default;}\n.navlist li div.selected a{color:#416AA3; font-weight:bold;}\n\n\n.third_ul{ list-style-type:none;margin:0px; padding:0px; display:none;}\n.third_ul li{ padding-left:20px;}\n\n.icon{ background:url(../images/tabicons.png) no-repeat;width:18px; line-height:18px; display:inline-block;}\n.icon-sys{ background-position:0px -200px;}\n.icon-set{ background-position:-380px -200px;}\n.icon-add{background-position: -20px 0px;}\n\n.icon-nav{background-position: -100px -20px; }\n.icon-users{background-position: -100px -480px;}\n.icon-role{background-position: -360px -200px;}\n.icon-set{background-position: -380px -200px;}\n.icon-log{background-position: -380px -80px;}\n\n.icon-delete{ background-position:-140px -120px;}\n.icon-edit{ background-position:-380px -320px;}\n.icon-magic{ background-position:0px -500px;}\n.icon-database{ background-position:-20px -140px;}\n\n\n.icon-arrow{ background:url('../images/arrow.gif') no-repeat right;}\n"
  },
  {
    "path": "src/main/webapp/css/login.css",
    "content": "/* CSS Document */\n/* Download by http://www.codefans.net\n* Basic Cascading Style Sheet\n* Intructions: none\n* Version: 1.0\n* Updated: 2013-03-12\n* Author: Zhang Ziyang\n* Contact:\n* QQ:1060927929\n* Email:zzy85620987@163.com\n*/\n\n@charset \"utf-8\";\n/***********************CSS RESET*********************/\nbody,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,   \nform,fieldset,input,textarea,p,blockquote,th,td {   \n    padding: 0;   \n    margin: 0;   \n}   \ntable {   \n    border-collapse: collapse;   \n    border-spacing: 0;   \n}   \nfieldset,img {   \n    border: 0;   \n}   \naddress,caption,cite,code,dfn,em,strong,th,var {   \n    font-weight: normal;   \n    font-style: normal;   \n}   \nol,ul {   \n    list-style: none;   \n}   \ncaption,th {   \n    text-align: left;\n    text-indent:10px;\n}   \nh1,h2,h3,h4,h5,h6 {   \n    font-weight: normal;   \n    font-size: 100%;   \n}   \nq:before,q:after {   \n    content:'';   \n}   \nabbr,acronym { border: 0;   \n}  \n\n\n.clear{\n    clear:both;\n}\n\nbody{\n    background:url(../../images/linen-lt.png);\n    font:12px \"microsoft yahei\";\n    color: #565656;\n}\ninput[type=\"button\"],\ninput[type=\"submit\"],\ninput[type=\"reset\"] {\n     background-color: transparent;\n                padding: 0;  \n                border: 0;\n}\n\nh1.title {\n    font: 32px \"microsoft yahei\";\n    margin:10px 20px;\n    color:#666;\n}\n/* Forms */\ninput[type=text],\ninput[type=password],\ntextarea {\n    background: #fafafa;\n/*    -moz-box-shadow: inset 1px 1px 10px rgba(0,0,0,0.1);\n    -webkit-box-shadow: inset 1px 1px 10px rgba(0,0,0,0.1);\n    box-shadow: inset 1px 1px 10px rgba(0,0,0,0.1);*/\n    border: 1px solid #ddd;\n    color: #888;\n    outline:none;\n}\n::-webkit-scrollbar{width:12px;height:12px}\n::-webkit-scrollbar-button:vertical{display:none}\n::-webkit-scrollbar-track:vertical{background-color:black}\n::-webkit-scrollbar-track-piece{background: #FDFDFD;}\n::-webkit-scrollbar-thumb:vertical{background-color:#8E8E8E;border-radius:5px}\n::-webkit-scrollbar-thumb:vertical:hover{background-color:#3B3B3B}\n::-webkit-scrollbar-corner:vertical{background-color:#535353}\n::-webkit-scrollbar-resizer:vertical{background-color:#FF6E00}\n\n@-webkit-keyframes animate-cloud {\n  from {\n    background-position: 600px 100%;\n  }\n  to {\n    background-position: 0 100%;\n  }\n}\n@-moz-keyframes animate-cloud {\n  from {\n    background-position: 600px 100%;\n  }\n  to {\n    background-position: 0 100%;\n  }\n}\n@-ms-keyframes animate-cloud {\n  from {\n    background-position: 600px 100%;\n  }\n  to {\n    background-position: 0 100%;\n  }\n}\n@-o-keyframes animate-cloud {\n  from {\n    background-position: 600px 100%;\n  }\n  to {\n    background-position: 0 100%;\n  }\n}\n\nhtml{\n\theight: 100%;\n}\nbody{\n   background:url(../images/cloud.png) 0 bottom repeat-x  #049ec4;\n  -webkit-animation: animate-cloud 20s linear infinite;\n  -moz-animation: animate-cloud 20s linear infinite;\n  -ms-animation: animate-cloud 20s linear infinite;\n  -o-animation: animate-cloud 20s linear infinite;\n  animation: animate-cloud 20s linear infinite;\n  width: 100%;\n  height: auto;\n}\n\n.signup_container{\n\twidth:560px;\n\theight: auto;\n\tmargin:9% auto 0;\n\tpadding-bottom: 20px;\n\tbackground: #EDEDED;\n\ttext-align: center;\n\tborder-radius: 8px;\n\tbox-shadow: 1px 2px 4px rgba(0,0,0,0.6);\n\t-webkit-user-select:none;\n\t-ms-user-select:none;\n}\n\n\nh1.signup_title{\n\twidth: 100%;\n\theight:70px;\n\tfont: 26px/1.4 \"microsoft yahei\";\n\ttext-align: center;\n\ttext-indent:0px;\n\tletter-spacing:3px;\n\tcolor:#FDFDFD;\n\tline-height: 70px;\n\tborder-top-left-radius: 6px;\n\tborder-top-right-radius: 6px;\n\tbackground-color: #003399;\n}\n\n.signup_container img{\n\tmargin:20px 0 0;\n}\n\n.signup_container .copyright{\n\tmargin:20px 0;\n\tcolor: #ABABAB;\n}\n\n.signup_forms{\n\twidth:260px;\n\tmargin:30px auto 0;\n\tpadding: 0;\n\ttext-align: left;\n\tborder: 1px solid #ccc;\n\tborder-radius: 8px;\n\tbox-shadow: inset 0 1px 3px rgba(0,0,0,0.36),0 1px 0 rgba(255,255,255,0.15);\n}\n\n.signup_forms .form_row {\n\tposition:relative;\n\tborder-top:1px solid #CCC;\n\tborder-top:1px solid rgba(0,0,0,0.12);\n}\n\n.signup_forms label {\n\tdisplay:none\n}\n\n.signup_forms input{\n\twidth:100%;\n\tpadding: 10px 0;\n\ttext-indent: 40px;\n\tdisplay:block;\n\tmargin:0;\n\tborder:0;\n\toutline: none;\n\tfont:bold 14px/1.4 \"microsoft yahei\";\n\tline-height:25px;\n\tcolor: #888;\n}\n\n\n#signup_name{\n\tbackground: url('../images/i1.png') no-repeat 9px 15px;\n}\n#signup_password{\n\tbackground: url('../images/i2.png') no-repeat 9px 15px;\n}\n#signup_select{\n   background: url('../images/i3.png') no-repeat 9px 12px;\n}\n\n\n#d{\n\tposition: absolute;\n\tright: 10px;\n\ttop: -14px;\n\tcursor: pointer;\n}\n#userInfo {margin-top:10px}\n#admin{\n\tmargin-top:32px;\n\tbackground: #FFF;\n\tpadding: 5px;\n}\n\n\n.form_row ul{\n\tbackground: #EDEDED;\n\twidth: 216px;\n\tposition: absolute;\n\tdisplay:none;\n\tborder:1px solid #CCC;\n\tborder-top: none;\n\tcursor: pointer;\n}\n\n.form_row li{\n\twidth: 100%;\n\tpadding: 6px 0;\n\tline-height: 25px;\n\ttext-indent:30px;\n}\n\n.form_row li:hover{\n\tbackground:#19B4EA;\n\tcolor: #FFF;\n}\n\n.login-btn-set{\n\twidth:260px;\n\theight: auto;\n\toverflow: hidden;\n\tmargin:10px auto;\n}\n.login-btn{\n\tdisplay: block;\n\tfloat: right;\n\tbackground: url(../images/login_btn.png) no-repeat;\n\twidth: 157px;\n\theight:41px;\n}\n\n.login-btn:hover{\n\tbackground-position: 0 -48px;\n}\n\n.login-btn:active{\n\tbackground-position: 0 -96px;\n}\n\n.login-btn-set .rem{\n\tdisplay: block;\n\tfloat: left;\n\tmargin:15px 6px;\n\tbackground: url(../images/remember.png) no-repeat;\n\tbackground-position: -2px -23px;\t\n\twidth:90px;\n\theight: 22px;\n\tcursor: pointer;\n}\n.login-btn-set .rem.selected{\n\tbackground-position: 0 0;\n}\n\n.tip{\n\tbackground: url(../images/tip.png) no-repeat;\n\twidth:32px;\n\theight:32px;\n\tposition: absolute;\n\tright: -36px;\n\ttop:5px;\n}\n\n.tip.ok{\n\tbackground-position: 0 0;\n}\n\n.tip.error{\n\tbackground-position: 0 -34px;\n}\n"
  },
  {
    "path": "src/main/webapp/css/table.css",
    "content": "table.hovertable {\n\tfont-family: verdana,arial,sans-serif;\n\tfont-size:9px;\n\tcolor:#333333;\n\twidth:100%;\n\tborder-collapse: collapse;\n}\ntable.hovertable th {\n\t\n\tborder-width: 1px;\n\tpadding: 8px;\n\tborder-style: solid;\n\tborder-color: #a9c6c9;\n}\ntable.hovertable td.bg {\n\tbackground-color:#ebf2ff;\n}\n\ntable.hovertable td {\n\tpadding: 4px;\n\tborder:1px solid #95B8E7;\n}\n\ntable.hovertable td.noBorderBottom {\n    border-bottom:0px;\n}"
  },
  {
    "path": "src/main/webapp/dept.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n<meta charset=\"UTF-8\">\n<title>部门管理</title>\n</head>\n<body>\n部门管理页面\n</body>\n</html>"
  },
  {
    "path": "src/main/webapp/emp.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n<meta charset=\"UTF-8\">\n<title>员工管理页面</title>\n</head>\n<body>\n员工管理\n</body>\n</html>"
  },
  {
    "path": "src/main/webapp/error.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n<meta charset=\"UTF-8\">\n<title>Insert title here</title>\n</head>\n<body>\n权限不足\n</body>\n</html>"
  },
  {
    "path": "src/main/webapp/index.html",
    "content": "﻿<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n        \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head id=\"Head1\">\n    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>\n    <title>基于SSM框架的后台权限管理系统</title>\n    <link href=\"css/default.css\" rel=\"stylesheet\" type=\"text/css\"/>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"adminjs/themes/default/easyui.css\"/>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"adminjs/themes/icon.css\"/>\n    <script type=\"text/javascript\" src=\"adminjs/jquery-1.7.2.min.js\"></script>\n    <script type=\"text/javascript\" src=\"adminjs/jquery.easyui.1.2.6.min.js\"></script>\n    <script type=\"text/javascript\" src='adminjs/index.js'></script>\n</head>\n<body class=\"easyui-layout\" style=\"overflow-y: hidden\" fit=\"true\" scroll=\"no\">\n<noscript>\n    <div style=\" position:absolute; z-index:100000; height:2046px;top:0px;left:0px; width:100%; background:white; text-align:center;\">\n        <img src=\"images/noscript.gif\" alt='抱歉，请开启脚本支持！'/>\n    </div>\n</noscript>\n\n<div id=\"loading-mask\"\n     style=\"position:absolute;top:0px; left:0px; width:100%; height:100%; background:#D2E0F2; z-index:20000\">\n    <div id=\"pageloading\"\n         style=\"position:absolute; top:50%; left:50%; margin:-120px 0px 0px -120px; text-align:center;  border:2px solid #8DB2E3; width:200px; height:40px;  font-size:14px;padding:10px; font-weight:bold; background:#fff; color:#15428B;\">\n        <img src=\"images/loading.gif\" align=\"absmiddle\"/> 正在加载中,请稍候...\n    </div>\n</div>\n\n<div region=\"north\" split=\"true\" border=\"false\" style=\"overflow: hidden; height: 30px;\n        background: url(images/layout-browser-hd-bg.gif) #7f99be repeat-x center 50%;\n        line-height: 20px;color: #fff; font-family: Verdana, 微软雅黑,黑体\">\n    <span style=\"float:right; padding-right:20px;\" class=\"head\">欢迎 <span id=\"user_name\"></span> <a href=\"#\"\n                                                                                                   id=\"editpass\">修改密码</a> <a\n            href=\"#\" id=\"loginOut\">安全退出</a></span>\n    <span style=\"padding-left:10px; font-size: 16px; \"><img src=\"images/blocks.gif\" width=\"20\" height=\"20\"\n                                                            align=\"absmiddle\"/> 管理系统</span>\n</div>\n<div region=\"south\" split=\"true\" style=\"height: 30px; background: #D2E0F2; \">\n    <div class=\"footer\"><a href=\"https://github.com/ggb2312/Permission\" style=\"color: red\">基于easyui的权限管理系统v1.0</a></div>\n</div>\n<div region=\"west\" split=\"true\" title=\"导航菜单\" style=\"width:180px;\" id=\"west\">\n    <div id=\"nav\">\n        <!--  导航内容 -->\n    </div>\n</div>\n<div id=\"mainPanle\" region=\"center\" style=\"background: #eee; overflow-y:hidden\">\n    <div id=\"tabs\" class=\"easyui-tabs\" fit=\"true\" border=\"false\">\n        <div title=\"欢迎使用\" style=\"padding:20px;overflow:hidden; color:red; \">\n            <h1 style=\"font-size:24px;\"></h1>\n            <h1 style=\"font-size:24px;\"></h1>\n            <h1 style=\"font-size:24px;\"></h1>\n            <h1 style=\"font-size:24px;\"></h1>\n        </div>\n    </div>\n</div>\n\n<!--修改密码窗口-->\n<!--修改密码窗口-->\n<div id=\"w\" class=\"easyui-dialog\">\n    <div class=\"easyui-layout\" fit=\"true\">\n        <div region=\"center\" border=\"false\" style=\"padding: 10px; background: #fff;\">\n            <table cellpadding=3>\n                <tr>\n                    <td>旧密码：</td>\n                    <td><input id=\"txtOldPass\" type=\"password\" class=\"txt01\"/></td>\n                </tr>\n                <tr>\n                    <td>新密码：</td>\n                    <td><input id=\"txtNewPass\" type=\"password\" class=\"txt01\"/></td>\n                </tr>\n                <tr>\n                    <td>确认密码：</td>\n                    <td><input id=\"txtRePass\" type=\"password\" class=\"txt01\"/></td>\n                </tr>\n            </table>\n        </div>\n    </div>\n</div>\n<div id=\"mm\" class=\"easyui-menu\" style=\"width:150px;\">\n    <div id=\"tabupdate\">刷新</div>\n    <div class=\"menu-sep\"></div>\n    <div id=\"close\">关闭</div>\n    <div id=\"closeall\">全部关闭</div>\n    <div id=\"closeother\">除此之外全部关闭</div>\n    <div class=\"menu-sep\"></div>\n    <div id=\"closeright\">当前页右侧全部关闭</div>\n    <div id=\"closeleft\">当前页左侧全部关闭</div>\n    <div class=\"menu-sep\"></div>\n    <div id=\"exit\">退出</div>\n</div>\n\n\n</body>\n</html>"
  },
  {
    "path": "src/main/webapp/js/config.js",
    "content": "var baseName = \"permission\""
  },
  {
    "path": "src/main/webapp/js/crud.js",
    "content": "/**\n * esayui通用增删改查以及导入导出\n */\n//提交的方法名称\nvar method = \"\";\nvar listParam = \"\";\nvar saveParam = \"\";\n$(function() {\n\t// 加载表格数据\n\t$('#grid').datagrid({\n\t\turl : name + 'listByPage' + listParam,\n\t\tidField : idField,//指明哪一个字段是标识字段。\n\t\ttitle : title,\n\t\tcolumns : columns,\n\t\tfrozenColumns : [ [ {\n\t\t\tfield : 'ck',\n\t\t\tcheckbox : true\n\t\t}, {\n\t\t\ttitle : '编号',\n\t\t\tfield : idField,\n\t\t\tsortable : true,\n\t\t\twidth:100\n\t\t} ] ],\n\t\tfitColumns:true,\n\t\ticonCls : 'icon-tip',\n\t\tsingleSelect : true,// 如果为true，则只允许选择一行。\n\t\tpagination : true,// 如果为true，则在DataGrid控件底部显示分页工具栏。\n\t\tstriped : true,// 是否显示斑马线效果。\n\t\tcollapsible : true,\t//定义是否显示可折叠按钮。\n\t\trownumbers : true,//如果为true，则显示一个行号列。\n\t\tnowrap : true,//如果为true，则在同一行中显示数据。设置为true可以提高加载性能。\n\t\tsortName : idField,//定义哪些列可以进行排序。\n\t\tsortOrder : 'asc',//定义列的排序顺序，只能是'asc'或'desc'。\n\t\tremoteSort : false,//定义从服务器对数据进行排序。\n\t\tloading : true,//显示载入状态。\n\t\tloadMsg : '数据加载中...',// 在从远程站点加载数据的时候显示提示消息。\n\t\tpageNumber : 1,// 在设置分页属性的时候初始化页码。\n\t\tpageSize : 50,// 在设置分页属性的时候初始化页面大小。\n\t\tpageList : [ 10, 20, 30, 40, 50 ],//在设置分页属性的时候 初始化页面大小选择列表。\n\t\ttoolbar : [ {\n\t\t\ttext : '新增',\n\t\t\ticonCls : 'icon-add',\n\t\t\thandler : function() {\n\t\t\t\t// 打开前清空表单\n\t\t\t\t$('#editForm').form('clear');\n\t\t\t\t// 设置保存按钮提交的方法为add\n\t\t\t\tmethod = \"add\";\n\t\t\t\t// 关闭编辑窗口\n\t\t\t\t$('#editDlg').dialog('open');\n\t\t\t}\n\t\t}, '-', {\n\t\t\ttext : '修改',\n\t\t\ticonCls : 'icon-edit',\n\t\t\thandler : function() {\n\t\t\t\tedit();\n\t\t\t}\n\t\t}, '-', {\n\t\t\ttext : '删除',\n\t\t\ticonCls : 'icon-cut',\n\t\t\thandler : function() {\n\t\t\t\t// 获取被选中行的数据\n\t\t\t\tvar selected = $('#grid').datagrid('getSelected');\n\t\t\t\tdel(selected);\n\t\t\t}\n\t\t}, '-', {\n\t\t\ttext : '导出',\n\t\t\ticonCls : 'icon-excel',\n\t\t\thandler : function() {\n\t\t\t\tvar formData = $('#searchForm').serializeJSON();\n\t\t\t\t// 下载文件\n\t\t\t\t$.download(name + \"export\" + listParam, formData);\n\t\t\t}\n\t\t}, '-', {\n\t\t\ttext : '导入',\n\t\t\ticonCls : 'icon-save',\n\t\t\thandler : function() {\n\t\t\t\t$('#importDlg').dialog('open');\n\t\t\t}\n\t\t} ],\n\t\tonDblClickRow : function() {\n\t\t\tedit();\n\t\t},\n\t});\n\n\tvar h = 300;\n\tvar w = 400;\n\tif (typeof (height) != \"undefined\") {\n\t\th = height;\n\t}\n\tif (typeof (width) != \"undefined\") {\n\t\tw = width;\n\t}\n\t// 初始化编辑窗口\n\t$('#editDlg').dialog({\n\t\ttitle : '编辑',// 窗口标题\n\t\twidth : w,// 窗口宽度\n\t\theight : h,// 窗口高度\n\t\tclosed : true,// 窗口是是否为关闭状态, true：表示关闭\n\t\tmodal : true\n\t// 模式窗口\n\t});\n\n\t// 点击保存按钮\n\t$('#btnSave').bind('click', function() {\n\t\t// 做表单字段验证，当所有字段都有效的时候返回true。该方法使用validatebox(验证框)插件。\n\t\tvar isValid = $('#editForm').form('validate');\n\t\tif (isValid == false) {\n\t\t\treturn;\n\t\t}\n\t\tvar formData = $('#editForm').serializeJSON();\n\t\t$.ajax({\n\t\t\turl : name + method + saveParam,\n\t\t\tdata : formData,\n\t\t\tdataType : 'json',\n\t\t\ttype : 'post',\n\t\t\tsuccess : function(rtn) {\n\t\t\t\t$.messager.alert(\"提示\", rtn.msg, 'info', function() {\n\t\t\t\t\tif (rtn.status == 200) {\n\t\t\t\t\t\t// 成功的话，我们要关闭窗口\n\t\t\t\t\t\t$('#editDlg').dialog('close');\n\t\t\t\t\t\t// 刷新表格数据\n\t\t\t\t\t\t$('#grid').datagrid('reload');\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t});\n\n\t// 判断是否有导入的功能\n\tvar importForm = document.getElementById('importForm');\n\tif (importForm) {\n\t\t$('#importDlg').dialog(\n\t\t\t\t{\n\t\t\t\t\ttitle : '导入数据',\n\t\t\t\t\twidth : 330,\n\t\t\t\t\theight : 106,\n\t\t\t\t\tmodal : true,\n\t\t\t\t\tclosed : true,\n\t\t\t\t\tbuttons : [ {\n\t\t\t\t\t\ttext : '导入',\n\t\t\t\t\t\thandler : function() {\n\t\t\t\t\t\t\t$.ajax({\n\t\t\t\t\t\t\t\turl : name + 'doImport',\n\t\t\t\t\t\t\t\tdata : new FormData($('#importForm')[0]),\n\t\t\t\t\t\t\t\ttype : 'post',\n\t\t\t\t\t\t\t\tprocessData : false,\n\t\t\t\t\t\t\t\tcontentType : false,\n\t\t\t\t\t\t\t\tdataType : 'json',\n\t\t\t\t\t\t\t\tsuccess : function(data) {\n\t\t\t\t\t\t\t\t\t$.messager.alert('提示', data.msg,\n\t\t\t\t\t\t\t\t\t\t\t'info', function() {\n\t\t\t\t\t\t\t\t\t\t\t\tif (data.status==200) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t$('#importDlg').dialog('close');\n\t\t\t\t\t\t\t\t\t\t\t\t\t$('#importForm').form('clear');\n\t\t\t\t\t\t\t\t\t\t\t\t\t$('#grid').datagrid('reload');\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t} ]\n\t\t\t\t});\n\t}\n\n});\n\n/**\n * 删除\n */\nfunction del(selected) {\n\t$.messager.confirm(\"确认\", \"确认要删除吗？\", function(yes) {\n\t\tif (yes) {\n\t\t\t$.ajax({\n\t\t\t\turl : name + 'delete',\n\t\t\t\tdata : selected,\n\t\t\t\tdataType : 'json',\n\t\t\t\ttype : 'post',\n\t\t\t\tsuccess : function(rtn) {\n\t\t\t\t\t$.messager.alert(\"提示\", rtn.msg, 'info', function() {\n\t\t\t\t\t\t// 刷新表格数据\n\t\t\t\t\t\t$('#grid').datagrid('reload');\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n}\n\nfunction edit() {\n\t// 清空表单内容\n\t$('#editForm').form('clear');\n\t// 设置保存按钮提交的方法为update\n\tmethod = \"update\";\n\t// 弹出窗口\n\t$('#editDlg').dialog('open');\n\t// 获取被选中行的数据\n\tvar selected = $('#grid').datagrid('getSelected');\n\t// 加载数据\n\t$('#editForm').form('load', selected);\n}\n"
  },
  {
    "path": "src/main/webapp/js/download.js",
    "content": "// Ajax 文件下载\n$.download = function(url, data){    // 获得url和data\n    var inputs = '';    \n    $.each(data, function(name, value) {        \t\n        inputs+='<input type=\"hidden\" name=\"'+ name +'\" value=\"'+ value +'\" />'; \n    }); \n    $('<form action=\"'+ url +'\" method=\"post\">'+inputs+'</form>')\n    .appendTo('body').submit().remove();        \n};"
  },
  {
    "path": "src/main/webapp/js/menu.js",
    "content": "$(function() {\n\tloadTree();\n\t// 添加数据对话框\n\t$('#insertDlg').dialog({\n\t\ttitle : '添加数据',\n\t\twidth : 360,\n\t\theight : 200,\n\t\tclosed : true,\n\t\tmodal : true,\n\t\tbuttons : [ {\n\t\t\ttext : '保存',\n\t\t\thandler : function() {\n\t\t\t\t// 访问后台数据\n\t\t\t\tinsertData();\n\t\t\t}\n\t\t}, {\n\t\t\ttext : '关闭',\n\t\t\thandler : function() {\n\t\t\t\t// 关闭对话框\n\t\t\t\t$(\"#insertDlg\").dialog('close');\n\t\t\t}\n\t\t} ]\n\t});\n\t// 修改数据对话框\n\t$('#updateDlg').dialog({\n\t\ttitle : '修改数据',\n\t\twidth : 400,\n\t\theight : 260,\n\t\tclosed : true,\n\t\tmodal : true,\n\t\tbuttons : [ {\n\t\t\ttext : '保存',\n\t\t\thandler : function() {\n\t\t\t\t// 访问后台数据\n\t\t\t\tupdateData();\n\t\t\t}\n\t\t}, {\n\t\t\ttext : '关闭',\n\t\t\thandler : function() {\n\t\t\t\t// 关闭对话框\n\t\t\t\t$(\"#updateDlg\").dialog('close');\n\t\t\t}\n\t\t} ]\n\t});\n\t// 右键菜单\n\t$('#mm').menu({\n\t\tonClick : function(item) {\n\t\t\tvar rowData = $('#grid').datagrid('getData').rows[0];\n\t\t\tswitch (item.text) {\n\t\t\tcase '添加':\n\t\t\t\t// 获取当前被选中的节点\n\t\t\t\tvar selected = $('#tt').tree('getSelected');\n\t\t\t\tvar children = selected.children;\n\t\t\t\tif(children.length==0){\n\t\t\t\t\t$.messager.alert(\"提示\", \"该菜单目录暂时不支持三级以上的菜单\", 'warning');\n\t\t\t\t}else{\n\t\t\t\t\t$(\"#insertDlg\").dialog('open');\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase '修改':\n\t\t\t\t$(\"#updateDlg\").dialog('open');\n\t\t\t\t// 填充后台数据\n\t\t\t\tif (rowData.is_parent == 1) {\n\t\t\t\t\trowData.is_parent = '是';\n\t\t\t\t} else if (rowData.is_parent == 0) {\n\t\t\t\t\trowData.is_parent = '否';\n\t\t\t\t}\n\t\t\t\t$('#updateForm').form('load', rowData);\n\t\t\t\tbreak;\n\t\t\tcase '重命名':\n\t\t\t\t$(\"#renameDlg\").dialog('open');\n\t\t\t\t// 填充后台数据\n\t\t\t\t$('#renameForm').form('load', rowData);\n\t\t\t\tbreak;\n\t\t\tcase '删除':\n\t\t\t\tdeleteData(item.id);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t});\n\t// 菜单重命名\n\t$('#renameDlg').dialog({\n\t\ttitle : '菜单重命名',\n\t\twidth : 250,\n\t\theight : 100,\n\t\tclosed : true,\n\t\tmodal : true,\n\t\tbuttons : [ {\n\t\t\ttext : '保存',\n\t\t\thandler : function() {\n\t\t\t\t// 访问后台数据\n\t\t\t\trenameMenu();\n\t\t\t}\n\t\t}, {\n\t\t\ttext : '关闭',\n\t\t\thandler : function() {\n\t\t\t\t// 关闭对话框\n\t\t\t\t$(\"#renameDlg\").dialog('close');\n\t\t\t}\n\t\t} ]\n\t});\n});\n\n/**\n * 加载两侧菜单\n */\nfunction loadTree() {\n\t$.ajax({\n\t\ttype : 'POST',\n\t\turl : 'menu/menulist',\n\t\tdataType : 'json',\n\t\tsuccess : function(rtn) {\n\t\t\tdisposeTree(rtn);\n\t\t}\n\t});\n}\n/**\n * 处理左侧菜单\n */\nfunction disposeTree(data) {\n\t// 加载左侧菜单\n\t$('#tt').tree({\n\t\tdata : data,\n\t\tonContextMenu : function(e, node) {\n\t\t\te.preventDefault();\n\t\t\tvar rowData = $('#grid').datagrid('getRows')[0];\n\t\t\tif (rowData != null) {\n\t\t\t\t// 找到菜单项\n\t\t\t\tvar item = $('#mm').menu('findItem', '删除');\n\t\t\t\tif (1 == rowData.is_parent) {\n\t\t\t\t\tif (item) {\n\t\t\t\t\t\t// 移除菜单项\n\t\t\t\t\t\t$('#mm').menu('removeItem', item.target);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (item == null) {\n\t\t\t\t\t\t// 追加一个顶部菜单\n\t\t\t\t\t\t$('#mm').menu('appendItem', {\n\t\t\t\t\t\t\ttext : '删除',\n\t\t\t\t\t\t\ticonCls : 'icon-cut',\n\t\t\t\t\t\t\tonClick : function(item) {\n\t\t\t\t\t\t\t\tdeleteData(rowData.id);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// 显示快捷菜单\n\t\t\t\t$('#mm').menu('show', {\n\t\t\t\t\tleft : e.pageX,\n\t\t\t\t\ttop : e.pageY\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t$.messager.alert(\"提示\", \"请选中后操作\", 'warning');\n\t\t\t}\n\t\t},\n\t\tonClick : function(node) {\n\t\t\t// 显示子菜单到datagrid\n\t\t\tloadDataGrid(node.id);\n\t\t}\n\t});\n}\n\n/**\n * 加载表格数据 menuid：菜单id\n */\nfunction loadDataGrid(menuid) {\n\t$('#grid').datagrid({\n\t\turl : 'menu/menufindById?menuid=' + menuid,\n\t\tcolumns : [ [ {\n\t\t\tfield : 'menuid',\n\t\t\ttitle : '编号',\n\t\t\twidth : 100\n\t\t}, {\n\t\t\tfield : 'menuname',\n\t\t\ttitle : '名称',\n\t\t\twidth : 100\n\t\t}, {\n\t\t\tfield : 'url',\n\t\t\ttitle : '对应URL',\n\t\t\twidth : 100\n\t\t}, {\n\t\t\tfield : 'icon',\n\t\t\ttitle : '图标样式',\n\t\t\twidth : 100\n\t\t}, {\n\t\t\tfield : 'pid',\n\t\t\ttitle : '上级菜单编号',\n\t\t\twidth : 100,\n\t\t}, {\n\t\t\tfield : 'is_parent',\n\t\t\ttitle : '是否为父菜单',\n\t\t\twidth : 100,\n\t\t\tformatter : function(value, rowData, index) {\n\t\t\t\tif (rowData.is_parent == 1) {\n\t\t\t\t\treturn '是';\n\t\t\t\t} else {\n\t\t\t\t\treturn '否';\n\t\t\t\t}\n\t\t\t}\n\t\t} ] ],\n\t\tloading : true,\n\t\tstriped : true,\n\t\trownumbers : true,\n\t\tsingleSelect : true\n\t});\n\t$('#grid').datagrid({\n\t\ttoolbar : [ {\n\t\t\ticonCls : 'icon-add',\n\t\t\ttext : '添加',\n\t\t\thandler : function() {\n\t\t\t\t// 打开添加窗口\n\t\t\t\tvar selected = $('#tt').tree('getSelected');\n\t\t\t\tvar children = selected.children;\n\t\t\t\tif(children.length==0){\n\t\t\t\t\t$.messager.alert(\"提示\", \"该菜单目录暂时不支持三级以上的菜单\", 'warning');\n\t\t\t\t}else{\n\t\t\t\t\t$(\"#insertDlg\").dialog('open');\n\t\t\t\t}\n\t\t\t}\n\t\t}, '-', {\n\t\t\ticonCls : 'icon-save',\n\t\t\ttext : '修改',\n\t\t\thandler : function() {\n\t\t\t\tvar rowData = $('#grid').datagrid('getSelected');\n\t\t\t\tif (null != rowData) {\n\t\t\t\t\t// 打开修改窗口\n\t\t\t\t\t$('#updateDlg').dialog('open');\n\t\t\t\t\t// 填充后台数据\n\t\t\t\t\tif (rowData.is_parent == 1) {\n\t\t\t\t\t\trowData.is_parent = '是';\n\t\t\t\t\t} else if(rowData.is_parent == 0){\n\t\t\t\t\t\trowData.is_parent = '否';\n\t\t\t\t\t}\n\t\t\t\t\t$('#updateForm').form('load', rowData);\n\t\t\t\t} else {\n\t\t\t\t\t$.messager.alert(\"提示\", \"请选中要修改的行\", 'error');\n\t\t\t\t}\n\t\t\t}\n\t\t}, '-', {\n\t\t\ticonCls : 'icon-cut',\n\t\t\ttext : '删除',\n\t\t\thandler : function() {\n\t\t\t\t// 删除\n\t\t\t\tvar rowData = $('#tt').tree('getSelected');\n\t\t\t\tif (null != rowData) {\n\t\t\t\t\tif (rowData.id % 100 == 0) {\n\t\t\t\t\t\t$.messager.alert(\"提示\", \"父级菜单不可删除\", 'error');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdeleteData(rowData.id);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t$.messager.alert(\"提示\", \"请选中要删除数据\", 'error');\n\t\t\t\t}\n\t\t\t}\n\t\t} ],\n\t\tonDblClickRow : function(rowIndex, rowData) {\n\t\t\t// 打开修改窗口\n\t\t\t$('#updateDlg').dialog('open');\n\t\t\t// 填充后台数据\n\t\t\tif (rowData.is_parent == 1) {\n\t\t\t\trowData.is_parent = '是';\n\t\t\t} else if (rowData.is_parent == 0){\n\t\t\t\trowData.is_parent = '否';\n\t\t\t}\n\t\t\t$('#updateForm').form('load', rowData);\n\t\t}\n\t});\n}\n\n/**\n * 添加数据\n */\nfunction insertData() {\n\tvar rowData = $('#grid').datagrid('getData').rows[0];\n\t// 提交添加数据的表单\n\tvar formData = $('#insertForm').serializeJSON();\n\tformData.pid = rowData.menuid;\n\tformData.is_parent = rowData.is_parent;\n\t$.ajax({\n\t\ttype : 'POST',\n\t\turl : 'menu/menuadd',\n\t\tdata : formData,\n\t\tdataType : 'json',\n\t\tsuccess : function(data) {\n\t\t\t$.messager.alert(\"提示\", data.msg, 'info', function() {\n\t\t\t\tif (data.status == 200) {\n\t\t\t\t\t// 刷新表格数据\n\t\t\t\t\t$('#grid').datagrid('reload');\n\t\t\t\t\t// 刷新树形菜单\n\t\t\t\t\tloadTree();\n\t\t\t\t\t// 关闭对话框\n\t\t\t\t\t$('#insertDlg').dialog('close');\n\t\t\t\t\t// 清除表单数据\n\t\t\t\t\t$('#insertForm').form('clear');\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n}\n\n/**\n * 删除数据\n */\nfunction deleteData(menuid) {\n\tvar gridData = $('#grid').datagrid('getData').rows[0];\n\t$.messager.confirm('警告', '确认要删除“' + gridData.menuname + '”菜单吗?',function(r) {\n\t\t\t\tif (r) {\n\t\t\t\t\t$.ajax({\n\t\t\t\t\t\ttype : 'POST',\n\t\t\t\t\t\turl : 'menu/menudelete',\n\t\t\t\t\t\tdata : {\n\t\t\t\t\t\t\t'menuid' : menuid\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdataType : 'json',\n\t\t\t\t\t\tsuccess : function(data) {\n\t\t\t\t\t\t\t$.messager.alert(\"提示\", data.msg, 'info',function() {\n\t\t\t\t\t\t\t\t\t\t\t\tif (data.status == 200) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t// 刷新表格数据\n//\t\t\t\t\t\t\t\t\t\t\t\t\t$('#grid').datagrid('deleteRow', 0);\n//\t\t\t\t\t\t\t\t\t\t\t\t\tloadDataGrid();\n\t\t\t\t\t\t\t\t\t\t\t\t\t// 刷新树形菜单\n\t\t\t\t\t\t\t\t\t\t\t\t\tloadTree();\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n}\n\n/**\n * 修改数据\n */\nfunction updateData() {\n\tvar formData = $('#updateForm').serializeJSON();\n\tif(formData.is_parent == '是'){\n\t\tformData.is_parent = 1;\n\t} else{\n\t\tformData.is_parent = 0;\n\t}\n\t$.ajax({\n\t\ttype : 'POST',\n\t\turl : 'menu/menuupdate',\n\t\tdata : formData,\n\t\tdataType : 'json',\n\t\tsuccess : function(data) {\n\t\t\t$.messager.alert(\"提示\", data.msg, 'info', function() {\n\t\t\t\tif (data.status == 200) {\n\t\t\t\t// 刷新表格数据\n\t\t\t\t$('#grid').datagrid('reload');\n\t\t\t\t// 刷新树形菜单\n\t\t\t\tloadTree();\n\t\t\t\t// 关闭对话框\n\t\t\t\t$('#updateDlg').dialog('close');\n\t\t\t\t// 清除表单数据\n\t\t\t\t$('#updateForm').form('clear');\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n}\n/**\n * 重命名菜单\n */\nfunction renameMenu() {\n\tvar formData = $('#renameForm').serializeJSON();\n\tformData.menuid = $('#tt').tree('getSelected').id;\n\t$.ajax({\n\t\ttype : 'POST',\n\t\turl : 'menu/menuupdateById',\n\t\tdata : formData,\n\t\tdataType : 'json',\n\t\tsuccess : function(data) {\n\t\t\t$.messager.alert(\"提示\", data.msg, 'info', function() {\n\t\t\t\tif (data.status == 200) {\n\t\t\t\t\t// 刷新表格数据\n\t\t\t\t\t$('#grid').datagrid('reload');\n\t\t\t\t\t// 刷新树形菜单\n\t\t\t\t\tloadTree();\n\t\t\t\t\t// 关闭对话框\n\t\t\t\t\t$('#renameDlg').dialog('close');\n\t\t\t\t\t// 清除表单数据\n\t\t\t\t\t$('#renameForm').form('clear');\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n}"
  },
  {
    "path": "src/main/webapp/js/roleMenuSet.js",
    "content": "/**\n * \n */\n$(function() {\n\t$('#grid').datagrid({    \n\t    url:'role/rolelistByPage',\n\t    frozenColumns : [ [ {\n\t\t\tfield : 'ck',\n\t\t\tcheckbox : true\n\t\t}, {\n\t\t\ttitle : '编号',\n\t\t\tfield : 'uuid',\n\t\t\tsortable : true,\n\t\t\twidth:100\n\t\t} ] ],\n\t    columns:[[    \n\t        {field:'name',title:'名称',width:100} \n\t    ]],\n\t    singleSelect : true,// 如果为true，则只允许选择一行。\n\t\tpagination : true,// 如果为true，则在DataGrid控件底部显示分页工具栏。\n\t\tstriped : true,// 是否显示斑马线效果。\n\t\tcollapsible : true,\t//定义是否显示可折叠按钮。\n\t\trownumbers : true,//如果为true，则显示一个行号列。\n\t\tnowrap : true,//如果为true，则在同一行中显示数据。设置为true可以提高加载性能。\n\t\tsortName : 'uuid',//定义哪些列可以进行排序。\n\t\tsortOrder : 'desc',//定义列的排序顺序，只能是'asc'或'desc'。\n\t\tremoteSort : false,//定义从服务器对数据进行排序。\n\t\tloading : true,//显示载入状态。\n\t\tloadMsg : '数据加载中...',// 在从远程站点加载数据的时候显示提示消息。\n\t\tpageNumber : 1,// 在设置分页属性的时候初始化页码。\n\t\tpageSize : 50,// 在设置分页属性的时候初始化页面大小。\n\t\tpageList : [ 10, 20, 30, 40, 50 ],//在设置分页属性的时候 初始化页面大小选择列表。\n\t    onClickRow:function(rowIndex, rowData){\n\t    \t$('#tree').tree({    \n\t    \t    url:'role/findRoleMenuByRoleid?id=' + rowData.uuid,\n\t    \t    animate:false,\n\t    \t    checkbox:true\n\t    \t}); \n\t    }\n\t});  \n\t$('#btnSave').bind(\"click\",function(){\n\t\t//角色id\n\t\tvar uuid = $('#grid').datagrid(\"getSelected\").uuid;\n\t\tvar nodes = $('#tree').tree('getChecked');\n\t\tvar checkedIds = new Array();\n\t\t$.each(nodes,function(i,node){\n\t\t\tcheckedIds.push(node.id);\n\t\t})\n\t\t//权限菜单对应id\n\t\tcheckedIds = checkedIds.join(\",\");\n\t\tvar formData = {'id':uuid,'checkedIds':checkedIds};\n\t\t$.ajax({\n\t\t\turl: 'role/updateRoleMenu',\n\t\t\tdata: formData,\n\t\t\tdataType: 'json',\n\t\t\ttype: 'post',\n\t\t\tsuccess:function(data){\n\t\t\t\t$.messager.alert(\"提示\",data.msg,'info',function(){\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t});\n})\n"
  },
  {
    "path": "src/main/webapp/js/search.js",
    "content": "/**\n * esayui通用搜索\n */\n$(function() {\n\t// 自动补全\n\t$('#inputtable').combobox(\n\t\t\t{\n\t\t\t\tprompt : '输入关键字后自动搜索',\n\t\t\t\tmode : 'remote',\n\t\t\t\turl : _url,// _url,_value已经在各自的js文件中定义\n\t\t\t\tvalueField : _value,\n\t\t\t\ttextField : _value,\n\t\t\t\tpanelHeight : 'auto',\n\t\t\t\tpanelMaxHeight : 150,\n\t\t\t\teditable : true,\n\t\t\t\thasDownArrow : false,\n\t\t\t\tonBeforeLoad : function(param) {\n\t\t\t\t\tif (param == null || param.q == null\n\t\t\t\t\t\t\t|| param.q.replace(/ /g, '') == '') {\n\t\t\t\t\t\tvar value = $(this).combobox('getValue');\n\t\t\t\t\t\tif (value) {// 修改的时候才会出现q为空而value不为空\n\t\t\t\t\t\t\tparam.id = value;\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t//回车事件绑定 搜索框是esayui动态生成的<input type=\"text\" class=\"combo-text validatebox-text\" autocomplete=\"off\" style=\"width: 167px; height: 20px; line-height: 20px;\">\n    $('.combo-text').bind('keyup', function(event) {\n        if (event.keyCode == \"13\") {\n            //回车执行查询\n        \t//$('#btnSearch').click();\n        \treloadgrid();\n        }\n    });\n\t// 点击查询按钮\n\t$('#btnSearch').bind('click', function() {\n\t\treloadgrid();\n\t});\n\n\t// 点击重置按钮\n\t$('#btnReset').bind('click', function() {\n\t\t$('#searchForm').form('clear');\n\t});\n\t\n\tfunction reloadgrid() {\n\t\t// 把表单数据转换成json对象\n\t\tvar formData = $('#searchForm').serializeJSON();\n\t\t$('#grid').datagrid('load', formData);\n\t}\n})"
  },
  {
    "path": "src/main/webapp/js/userRoleSet.js",
    "content": "$(function() {\n\t$('#grid').datagrid({\n\t\turl : 'user/userlistByPage',\n\t\tfrozenColumns : [ [ {\n\t\t\tfield : 'ck',\n\t\t\tcheckbox : true\n\t\t}, {\n\t\t\ttitle : '编号',\n\t\t\tfield : 'user_id',\n\t\t\tsortable : true,\n\t\t\twidth : 100\n\t\t} ] ],\n\t\tcolumns : [ [ {\n\t\t\tfield : 'user_code',\n\t\t\ttitle : '账号',\n\t\t\twidth : 100\n\t\t}, {\n\t\t\tfield : 'user_name',\n\t\t\ttitle : '姓名',\n\t\t\twidth : 100\n\t\t} ] ],\n\t\tsingleSelect : true,// 如果为true，则只允许选择一行。\n\t\tpagination : true,// 如果为true，则在DataGrid控件底部显示分页工具栏。\n\t\tstriped : true,// 是否显示斑马线效果。\n\t\tcollapsible : true, // 定义是否显示可折叠按钮。\n\t\trownumbers : true,// 如果为true，则显示一个行号列。\n\t\tnowrap : true,// 如果为true，则在同一行中显示数据。设置为true可以提高加载性能。\n\t\tsortName : 'user_id',// 定义哪些列可以进行排序。\n\t\tsortOrder : 'desc',// 定义列的排序顺序，只能是'asc'或'desc'。\n\t\tremoteSort : false,// 定义从服务器对数据进行排序。\n\t\tloading : true,//显示载入状态。\n\t\tloadMsg : '数据加载中...',// 在从远程站点加载数据的时候显示提示消息。\n\t\tpageNumber : 1,// 在设置分页属性的时候初始化页码。\n\t\tpageSize : 50,// 在设置分页属性的时候初始化页面大小。\n\t\tpageList : [ 10, 20, 30, 40, 50 ],// 在设置分页属性的时候 初始化页面大小选择列表。\n\t\tonClickRow : function(rowIndex, rowData) {\n\t\t\t$('#tree').tree({\n\t\t\t\turl : 'user/findUserRole?id=' + rowData.user_id,\n\t\t\t\tanimate : true,\n\t\t\t\tcheckbox : true\n\t\t\t});\n\t\t}\n\t});\n\t$('#btnSave').bind(\"click\", function() {\n\t\t// 角色id\n\t\tvar user_id = $('#grid').datagrid(\"getSelected\").user_id;\n\t\t// 选择的节点\n\t\tvar nodes = $('#tree').tree('getChecked');\n\t\tvar checkedIds = new Array();\n\t\t$.each(nodes, function(i, node) {\n\t\t\tcheckedIds.push(node.id);\n\t\t})\n\t\t// 权限菜单对应id\n\t\tcheckedIds = checkedIds.join(\",\");\n\t\tvar formData = {\n\t\t\t'id' : user_id,\n\t\t\t'checkedIds' : checkedIds\n\t\t};\n\t\t$.ajax({\n\t\t\turl : 'user/updateUserRole',\n\t\t\tdata : formData,\n\t\t\tdataType : 'json',\n\t\t\ttype : 'post',\n\t\t\tsuccess : function(data) {\n\t\t\t\t$.messager.alert(\"提示\", data.msg, 'info', function() {\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t});\n})\n"
  },
  {
    "path": "src/main/webapp/log.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n<meta charset=\"UTF-8\">\n<title>角色管理</title>\n<link rel=\"stylesheet\" type=\"text/css\"\n\thref=\"ui/themes/default/easyui.css\">\n<link rel=\"stylesheet\" type=\"text/css\" href=\"ui/themes/icon.css\">\n<script type=\"text/javascript\" src=\"ui/jquery.min.js\"></script>\n<script type=\"text/javascript\" src=\"ui/jquery.easyui.min.js\"></script>\n<script type=\"text/javascript\" src=\"ui/locale/easyui-lang-zh_CN.js\"></script>\n<script type=\"text/javascript\" src='ui/jquery.serializejson.min.js'></script>\n<script type=\"text/javascript\" src=\"js/crud.js\"></script>\n<script type=\"text/javascript\" src=\"js/search.js\"></script>\n<script type=\"text/javascript\" src=\"ui/date.js\"></script>\n<script type=\"text/javascript\">\n\t//用于search.js自动补全\n\tvar _url = 'log/searchLogOperateor';\n\tvar _value = 'operateor';\n\t//用于crud.js的esayui初始参数\n\tvar name = \"log/log\";\n\tvar title = '日志管理';\n\tvar idField = 'id';\n\tvar columns = [ [ {\n\t\tfield : 'operateor',\n\t\ttitle : '操作人',\n\t\twidth : 100\n\t}, {\n\t\tfield : 'operatetype',\n\t\ttitle : '操作',\n\t\twidth : 100\n\t}, {\n\t\tfield : 'operatedate',\n\t\ttitle : '操作日期',\n\t\twidth : 100,\n\t\tformatter : function(value) {\n\t\t\treturn new Date(value).Format(\"yyyy-MM-dd hh:mm:ss\");\n\t\t}\n\t}, {\n\t\tfield : 'operateresult',\n\t\ttitle : '操作结果',\n\t\twidth : 100\n\t} , {\n\t\tfield : 'ip',\n\t\ttitle : 'ip地址',\n\t\twidth : 100\n\t} ] ];\n</script>\n</head>\n<body class=\"easyui-layout\">\n\t<!--搜索区  -->\n\t<div data-options=\"region:'north',title:'查询'\"\n\t\tstyle=\"padding: 4px; background-color: #eee; height: 80px\">\n\t\t<form id=\"searchForm\">\n\t\t\t<table cellpadding=\"5\">\n\t\t\t\t<tr>\n\t\t\t\t\t<td>操作人 ：</td>\n\t\t\t\t\t<td><input name=\"name\" class=\"easyui-combobox\" id=\"inputtable\" /></td>\n\t\t\t\t\t<td><a class=\"easyui-linkbutton\"\n\t\t\t\t\t\tdata-options=\"iconCls:'icon-search'\" id=\"btnSearch\">查询</a></td>\n\t\t\t\t\t<td><a class=\"easyui-linkbutton\"\n\t\t\t\t\t\tdata-options=\"iconCls:'icon-remove'\" id=\"btnReset\">重置</a></td>\n\t\t\t</table>\n\t\t</form>\n\t</div>\n\t<!-- 数据表格区 -->\n\t<div data-options=\"region:'center',collapsible:true,split:true\"\n\t\tstyle=\"width: 600px;\">\n\t\t<table id=\"grid\"></table>\n\t</div>\n</body>\n</html>\n"
  },
  {
    "path": "src/main/webapp/login.html",
    "content": "﻿<!DOCTYPE html>\n<html>\n<head>\n<meta charset=\"UTF-8\">\n<title>基于SSM框架的后台权限管理系统</title>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"css/login.css\"/>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"ui/themes/default/easyui.css\">\n<link rel=\"stylesheet\" type=\"text/css\" href=\"ui/themes/icon.css\">\n<script type=\"text/javascript\" src=\"ui/jquery.min.js\"></script>\n<script type=\"text/javascript\" src=\"ui/jquery.easyui.min.js\"></script>\n<script type=\"text/javascript\" src=\"ui/locale/easyui-lang-zh_CN.js\"></script>\n<script type=\"text/javascript\" src=\"ui/jquery.serializejson.min.js\"></script>\n<script type=\"text/javascript\" src=\"js/config.js\"></script>\n<script type=\"text/javascript\">\n/**\n * 登陆\n */\nfunction login(){\n\tvar formdata = $('#loginform').serializeJSON();\n\t//提交登陆验证\n\t$.ajax({\n\t\turl: 'user/login',\n\t\tdata:formdata,\n\t\tdataType: 'json',\n\t\ttype: 'post',\n\t\tsuccess:function(rtn){\n\t\t\t//登陆成功\n\t\t\tif(rtn.status==200){\n\t\t\t\tlocation.href=\"index.html\";\n\t\t\t}else{\n\t\t\t\t$.messager.alert('提示',rtn.msg,'info');\n\t\t\t}\n\t\t}\n\t});\n}\n</script>\n</head>\n<body>\n<div class='signup_container'>\n<div class=\"w-load\"><div class=\"spin\"></div></div>\n    <h1 class='signup_title'>基于easyui的权限管理系统</h1>\n    <div id=\"userInfo\">\n    \t<span style=\"float:left; margin-left:40px; height:200px; border:0px solid red\"><img src='images/erp.jpg' id='admin'/></span>\n        <span style=\"float:left; margin-left:40px; height:200px; border:0px solid red\">\n            <div id=\"signup_forms\" class=\"signup_forms clearfix\">\n                  <form class=\"signup_form_form\" id=\"loginform\" method=\"post\" >\n                          <div class=\"form_row first_row\">\n                              <label for=\"signup_name\">请输入用户名</label>\n                              <input type=\"text\" name=\"user_code\" placeholder=\"请输入用户名\" id=\"signup_name\" value=\"admin\" >\n                          </div>\n                          <div class=\"form_row\">\n                              <label for=\"signup_password\">请输入密码</label>\n                              <input type=\"password\" name=\"user_pwd\" placeholder=\"请输入密码\" id=\"signup_password\" value=\"admin\" >\n                          </div>\n                 </form>\n            </div> \n            <div id=\"foo\"></div>\n                \t<br/>      \n        </span>\n    </div>\n    \n    \n\n    <div class=\"login-btn-set\"><div class='rem'>记住我</div> <a href='javascript:login()' class='login-btn'></a></div>\n</div>\n\n</body>\n\n\n\n</html>"
  },
  {
    "path": "src/main/webapp/menu.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n<meta charset=\"UTF-8\">\n<title>菜单管理</title>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"ui/themes/default/easyui.css\">\n<link rel=\"stylesheet\" type=\"text/css\" href=\"ui/themes/icon.css\">\n<script type=\"text/javascript\" src=\"ui/jquery.min.js\"></script>\n<script type=\"text/javascript\" src=\"ui/jquery.easyui.min.js\"></script>\n<script type=\"text/javascript\" src=\"ui/locale/easyui-lang-zh_CN.js\"></script>\n<script type=\"text/javascript\" src=\"ui/jquery.serializejson.min.js\"></script>\n<script type=\"text/javascript\" src=\"js/menu.js\"></script>\n</head>\n<body class=\"easyui-layout\">\n\t<!-- 适应父容器大小 -->\n\t<div data-options=\"region:'west',title:'使用中',split:true\"\n\t\tstyle=\"width: 210%;\">\n\t\t<ul id=\"tt\"></ul>\n\t</div>\n\t<div data-options=\"region:'center'\">\n\t\t<table id=\"grid\"></table>\n\t</div>\n\t<!-- 添加表单 -->\n\t<div id=\"insertDlg\">\n\t\t<form id=\"insertForm\" method=\"post\">\n\t\t\t<table style=\"width: 300px; text-align: center;\">\n\t\t\t\t<tr>\n\t\t\t\t\t<td align=\"right\">编号:</td>\n\t\t\t\t\t<td align=\"left\"><input type=\"text\" class=\"easyui-numberbox\"\n\t\t\t\t\t\tname=\"menuid\" /></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td align=\"right\">名称:</td>\n\t\t\t\t\t<td align=\"left\"><input name=\"menuname\" type=\"text\" /></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td align=\"right\">对应URL:</td>\n\t\t\t\t\t<td align=\"left\"><input name=\"url\" type=\"text\" /></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td align=\"right\">图标样式:</td>\n\t\t\t\t\t<td align=\"left\">\n<!-- \t\t\t\t\t\t<input name=\"icon\" type=\"text\" /> -->\n\t\t\t\t\t\t<select id=\"icon\" class=\"easyui-combobox\" \n\t\t\t\t\t\t\t\tdata-options=\"panelHeight:'100',required:true\" editable=\"false\" name=\"icon\">   \n\t\t\t\t\t\t    <option value=\"icon-log\">icon-log</option>   \n\t\t\t\t\t\t    <option value=\"icon-sys\">icon-sys</option>   \n\t\t\t\t\t\t</select> \n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t</form>\n\t</div>\n\t<!-- 修改表单 -->\n\t<div id=\"updateDlg\">\n\t\t<form id=\"updateForm\" method=\"post\">\n\t\t\t<table style=\"text-align: center;\">\n\t\t\t\t<tr>\n\t\t\t\t\t<td align=\"right\">编号:</td>\n\t\t\t\t\t<td align=\"left\"><input type=\"text\" class=\"easyui-numberbox\"\n\t\t\t\t\t\tname=\"menuid\" /></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td align=\"right\">名称:</td>\n\t\t\t\t\t<td align=\"left\"><input name=\"menuname\" type=\"text\" /></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td align=\"right\">对应URL:</td>\n\t\t\t\t\t<td align=\"left\"><input name=\"url\" type=\"text\" /></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td align=\"right\">图标样式:</td>\n\t\t\t\t\t<td align=\"left\">\n<!-- \t\t\t\t\t\t<input id=\"icon\" name=\"icon\" type=\"text\" /> -->\n\t\t\t\t\t\t<select id=\"icon\" class=\"easyui-combobox\" \n\t\t\t\t\t\t\t\tdata-options=\"panelHeight:'100',required:true\" editable=\"false\" name=\"icon\">   \n\t\t\t\t\t\t    <option value=\"icon-log\">icon-log</option>   \n\t\t\t\t\t\t    <option value=\"icon-sys\">icon-sys</option>   \n\t\t\t\t\t\t</select> \n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td align=\"right\">上级菜单编号:</td>\n\t\t\t\t\t<td align=\"left\">\n\t\t\t\t\t\t<input id=\"pid\" name=\"pid\" type=\"text\"readOnly />\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td align=\"right\">是否是父菜单:</td>\n\t\t\t\t\t<td align=\"left\">\n\t\t\t\t\t\t<select id=\"is_parent\" class=\"easyui-combobox\" \n\t\t\t\t\t\t\t\tdata-options=\"panelHeight:'100',required:true\" editable=\"false\" name=\"is_parent\">   \n\t\t\t\t\t\t    <option value=\"0\">否</option>   \n\t\t\t\t\t\t    <option value=\"1\">是</option>   \n\t\t\t\t\t\t</select> \n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t</form>\n\t</div>\n\t<!-- 树形菜单的右键设置 -->\n\t<div id=\"mm\" class=\"easyui-menu\" style=\"width: 120px;\">\n\t\t<div data-options=\"iconCls:'icon-add'\">添加</div>\n\t\t<div data-options=\"iconCls:'icon-save'\">修改</div>\n\t\t<div data-options=\"iconCls:'icon-undo'\">重命名</div>\n\t</div>\n\t<!-- 树形菜单右键重命名设置 -->\n\t<div id=\"renameDlg\">\n\t\t<form id=\"renameForm\" method=\"post\">\n\t\t\t新名称:<input type=\"text\" name=\"menuname\" />\n\t\t</form>\n\t</div>\n</body>\n</html>"
  },
  {
    "path": "src/main/webapp/role.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n<meta charset=\"UTF-8\">\n<title>角色管理</title>\n<link rel=\"stylesheet\" type=\"text/css\"\n\thref=\"ui/themes/default/easyui.css\">\n<link rel=\"stylesheet\" type=\"text/css\" href=\"ui/themes/icon.css\">\n<script type=\"text/javascript\" src=\"ui/jquery.min.js\"></script>\n<script type=\"text/javascript\" src=\"ui/jquery.easyui.min.js\"></script>\n<script type=\"text/javascript\" src=\"ui/locale/easyui-lang-zh_CN.js\"></script>\n<script type=\"text/javascript\" src='ui/jquery.serializejson.min.js'></script>\n<script type=\"text/javascript\" src=\"js/crud.js\"></script>\n<script type=\"text/javascript\" src=\"js/search.js\"></script>\n<script type=\"text/javascript\">\n\t//用于search.js自动补全\n\tvar _url = 'role/searchRoleName';\n\tvar _value = 'name';\n\t//用于crud.js的esayui初始参数\n\tvar name = \"role/role\";\n\tvar title = '角色管理';\n\tvar idField = 'uuid';\n\tvar columns = [ [ {\n\t\tfield : 'name',\n\t\ttitle : '名称',\n\t\twidth : 100\n\t} ] ];\n</script>\n</head>\n<body class=\"easyui-layout\">\n\t<!--搜索区  -->\n\t<div data-options=\"region:'north',title:'查询'\"\n\t\tstyle=\"padding: 4px; background-color: #eee; height: 80px\">\n\t\t<form id=\"searchForm\">\n\t\t\t<table cellpadding=\"5\">\n\t\t\t\t<tr>\n\t\t\t\t\t<td>角色名 ：</td>\n\t\t\t\t\t<td><input name=\"name\" class=\"easyui-combobox\" id=\"inputtable\" /></td>\n\t\t\t\t\t<td><a class=\"easyui-linkbutton\"\n\t\t\t\t\t\tdata-options=\"iconCls:'icon-search'\" id=\"btnSearch\">查询</a></td>\n\t\t\t\t\t<td><a class=\"easyui-linkbutton\"\n\t\t\t\t\t\tdata-options=\"iconCls:'icon-remove'\" id=\"btnReset\">重置</a></td>\n\t\t\t</table>\n\t\t</form>\n\t</div>\n\t<!-- 数据表格区 -->\n\t<div data-options=\"region:'center',collapsible:true,split:true\"\n\t\tstyle=\"width: 600px;\">\n\t\t<table id=\"grid\"></table>\n\t</div>\n\t<!-- 添加、修改 -->\n\t<div id=\"editDlg\" class=\"easyui-window\" data-options=\"closed:true\">\n\t\t<form id=\"editForm\">\n\t\t\t<input name=\"uuid\" type=\"hidden\">\n\n\t\t\t<table>\n\t\t\t\t<tr>\n\t\t\t\t\t<td>名称</td>\n\t\t\t\t\t<td><input name=\"name\"></td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t\t<button id=\"btnSave\" type=\"button\">保存</button>\n\t\t</form>\n\t</div>\n</body>\n</html>\n"
  },
  {
    "path": "src/main/webapp/roleMenuSet.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n<meta charset=\"UTF-8\">\n<title>角色权限设置</title>\n<link rel=\"stylesheet\" type=\"text/css\"\n\thref=\"ui/themes/default/easyui.css\">\n<link rel=\"stylesheet\" type=\"text/css\" href=\"ui/themes/icon.css\">\n<script type=\"text/javascript\" src=\"ui/jquery.min.js\"></script>\n<script type=\"text/javascript\" src=\"ui/jquery.easyui.min.js\"></script>\n<script type=\"text/javascript\" src=\"ui/locale/easyui-lang-zh_CN.js\"></script>\n<script type=\"text/javascript\" src='ui/jquery.serializejson.min.js'></script>\n<script type=\"text/javascript\" src=\"js/roleMenuSet.js\"></script>\n<script type=\"text/javascript\" src=\"js/search.js\"></script>\n<script type=\"text/javascript\">\n\t//用于search.js自动补全\n\tvar _url='role/searchRoleName';\n\tvar _value='name';\n</script>\n</head>\n<body class=\"easyui-layout\">\n\t<div data-options=\"region:'center',title:'角色列表'\"\n\t\tstyle=\"width: 600px;padding: 4px; background-color: #eee\">\n\t\t<!--搜索区  -->\n\t\t<div data-options=\"region:'north',title:'查询'\"\n\t\t\tstyle=\"padding: 4px; background-color: #eee; height: 40px\">\n\t\t\t<form id=\"searchForm\">\n\t\t\t\t<table cellpadding=\"5\">\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td>角色名：</td>\n\t\t\t\t\t\t<td><input name=\"name\" class=\"easyui-combobox\"\n\t\t\t\t\t\t\tid=\"inputtable\" /></td>\n\t\t\t\t\t\t<td><a class=\"easyui-linkbutton\"\n\t\t\t\t\t\t\tdata-options=\"iconCls:'icon-search'\" id=\"btnSearch\">查询</a></td>\n\t\t\t\t\t\t<td><a class=\"easyui-linkbutton\"\n\t\t\t\t\t\t\tdata-options=\"iconCls:'icon-remove'\" id=\"btnReset\">重置</a></td>\n\t\t\t\t\t</tr>\n\t\t\t\t</table>\n\t\t\t</form>\n\t\t</div>\n\t\t<div style=\"height: 4px;\"></div>\n\t\t<table id=\"grid\"></table>\n\t</div>\n\t<div data-options=\"region:'east',title:'权限列表',split:true\"\n\t\tstyle=\"width: 500px;\">\n\t\t<ul id=\"tree\"></ul>\n\t\t<button id=\"btnSave\">保存</button>\n\t</div>\n\n</body>\n</html>"
  },
  {
    "path": "src/main/webapp/sale.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n<meta charset=\"UTF-8\">\n<title>销售额统计页面</title>\n</head>\n<body>\n销售额统计页面\n</body>\n</html>"
  },
  {
    "path": "src/main/webapp/ui/date.js",
    "content": "// 对Date的扩展，将 Date 转化为指定格式的String   \n// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符，   \n// 年(y)可以用 1-4 个占位符，毫秒(S)只能用 1 个占位符(是 1-3 位的数字)   \n// 例子：   \n// (new Date()).Format(\"yyyy-MM-dd hh:mm:ss.S\") ==> 2006-07-02 08:09:04.423   \n// (new Date()).Format(\"yyyy-M-d h:m:s.S\")      ==> 2006-7-2 8:9:4.18   \nDate.prototype.Format = function(fmt)   \n{ //author: meizz   \n\tif(isNaN(this.getDate()))\n\t{\n\t\treturn \"\";\n\t}\n\t\n  var o = {   \n    \"M+\" : this.getMonth()+1,                 //月份   \n    \"d+\" : this.getDate(),                    //日   \n    \"h+\" : this.getHours(),                   //小时   \n    \"m+\" : this.getMinutes(),                 //分   \n    \"s+\" : this.getSeconds(),                 //秒   \n    \"q+\" : Math.floor((this.getMonth()+3)/3), //季度   \n    \"S\"  : this.getMilliseconds()             //毫秒   \n  };   \n  if(/(y+)/.test(fmt))   \n    fmt=fmt.replace(RegExp.$1, (this.getFullYear()+\"\").substr(4 - RegExp.$1.length));   \n  for(var k in o)   \n    if(new RegExp(\"(\"+ k +\")\").test(fmt))   \n  fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : ((\"00\"+ o[k]).substr((\"\"+ o[k]).length)));   \n  return fmt;   \n} "
  },
  {
    "path": "src/main/webapp/ui/download.js",
    "content": "// Ajax 文件下载\n$.download = function(url, data){    // 获得url和data\n    var inputs = '';    \n    $.each(data, function(name, value) {        \t\n        inputs+='<input type=\"hidden\" name=\"'+ name +'\" value=\"'+ value +'\" />'; \n    }); \n    $('<form action=\"'+ url +'\" method=\"post\">'+inputs+'</form>')\n    .appendTo('body').submit().remove();        \n};"
  },
  {
    "path": "src/main/webapp/ui/easyloader.js",
    "content": "﻿/**\n * jQuery EasyUI 1.3.5\n * \n * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved.\n *\n * Licensed under the GPL or commercial licenses\n * To use it on other terms please contact us: info@jeasyui.com\n * http://www.gnu.org/licenses/gpl.txt\n * http://www.jeasyui.com/license_commercial.php\n *\n */\n(function(){\nvar _1={draggable:{js:\"jquery.draggable.js\"},droppable:{js:\"jquery.droppable.js\"},resizable:{js:\"jquery.resizable.js\"},linkbutton:{js:\"jquery.linkbutton.js\",css:\"linkbutton.css\"},progressbar:{js:\"jquery.progressbar.js\",css:\"progressbar.css\"},tooltip:{js:\"jquery.tooltip.js\",css:\"tooltip.css\"},pagination:{js:\"jquery.pagination.js\",css:\"pagination.css\",dependencies:[\"linkbutton\"]},datagrid:{js:\"jquery.datagrid.js\",css:\"datagrid.css\",dependencies:[\"panel\",\"resizable\",\"linkbutton\",\"pagination\"]},treegrid:{js:\"jquery.treegrid.js\",css:\"tree.css\",dependencies:[\"datagrid\"]},propertygrid:{js:\"jquery.propertygrid.js\",css:\"propertygrid.css\",dependencies:[\"datagrid\"]},panel:{js:\"jquery.panel.js\",css:\"panel.css\"},window:{js:\"jquery.window.js\",css:\"window.css\",dependencies:[\"resizable\",\"draggable\",\"panel\"]},dialog:{js:\"jquery.dialog.js\",css:\"dialog.css\",dependencies:[\"linkbutton\",\"window\"]},messager:{js:\"jquery.messager.js\",css:\"messager.css\",dependencies:[\"linkbutton\",\"window\",\"progressbar\"]},layout:{js:\"jquery.layout.js\",css:\"layout.css\",dependencies:[\"resizable\",\"panel\"]},form:{js:\"jquery.form.js\"},menu:{js:\"jquery.menu.js\",css:\"menu.css\"},tabs:{js:\"jquery.tabs.js\",css:\"tabs.css\",dependencies:[\"panel\",\"linkbutton\"]},menubutton:{js:\"jquery.menubutton.js\",css:\"menubutton.css\",dependencies:[\"linkbutton\",\"menu\"]},splitbutton:{js:\"jquery.splitbutton.js\",css:\"splitbutton.css\",dependencies:[\"menubutton\"]},accordion:{js:\"jquery.accordion.js\",css:\"accordion.css\",dependencies:[\"panel\"]},calendar:{js:\"jquery.calendar.js\",css:\"calendar.css\"},combo:{js:\"jquery.combo.js\",css:\"combo.css\",dependencies:[\"panel\",\"validatebox\"]},combobox:{js:\"jquery.combobox.js\",css:\"combobox.css\",dependencies:[\"combo\"]},combotree:{js:\"jquery.combotree.js\",dependencies:[\"combo\",\"tree\"]},combogrid:{js:\"jquery.combogrid.js\",dependencies:[\"combo\",\"datagrid\"]},validatebox:{js:\"jquery.validatebox.js\",css:\"validatebox.css\",dependencies:[\"tooltip\"]},numberbox:{js:\"jquery.numberbox.js\",dependencies:[\"validatebox\"]},searchbox:{js:\"jquery.searchbox.js\",css:\"searchbox.css\",dependencies:[\"menubutton\"]},spinner:{js:\"jquery.spinner.js\",css:\"spinner.css\",dependencies:[\"validatebox\"]},numberspinner:{js:\"jquery.numberspinner.js\",dependencies:[\"spinner\",\"numberbox\"]},timespinner:{js:\"jquery.timespinner.js\",dependencies:[\"spinner\"]},tree:{js:\"jquery.tree.js\",css:\"tree.css\",dependencies:[\"draggable\",\"droppable\"]},datebox:{js:\"jquery.datebox.js\",css:\"datebox.css\",dependencies:[\"calendar\",\"combo\"]},datetimebox:{js:\"jquery.datetimebox.js\",dependencies:[\"datebox\",\"timespinner\"]},slider:{js:\"jquery.slider.js\",dependencies:[\"draggable\"]},tooltip:{js:\"jquery.tooltip.js\"},parser:{js:\"jquery.parser.js\"}};\nvar _2={\"af\":\"easyui-lang-af.js\",\"ar\":\"easyui-lang-ar.js\",\"bg\":\"easyui-lang-bg.js\",\"ca\":\"easyui-lang-ca.js\",\"cs\":\"easyui-lang-cs.js\",\"cz\":\"easyui-lang-cz.js\",\"da\":\"easyui-lang-da.js\",\"de\":\"easyui-lang-de.js\",\"el\":\"easyui-lang-el.js\",\"en\":\"easyui-lang-en.js\",\"es\":\"easyui-lang-es.js\",\"fr\":\"easyui-lang-fr.js\",\"it\":\"easyui-lang-it.js\",\"jp\":\"easyui-lang-jp.js\",\"nl\":\"easyui-lang-nl.js\",\"pl\":\"easyui-lang-pl.js\",\"pt_BR\":\"easyui-lang-pt_BR.js\",\"ru\":\"easyui-lang-ru.js\",\"sv_SE\":\"easyui-lang-sv_SE.js\",\"tr\":\"easyui-lang-tr.js\",\"zh_CN\":\"easyui-lang-zh_CN.js\",\"zh_TW\":\"easyui-lang-zh_TW.js\"};\nvar _3={};\nfunction _4(_5,_6){\nvar _7=false;\nvar _8=document.createElement(\"script\");\n_8.type=\"text/javascript\";\n_8.language=\"javascript\";\n_8.src=_5;\n_8.onload=_8.onreadystatechange=function(){\nif(!_7&&(!_8.readyState||_8.readyState==\"loaded\"||_8.readyState==\"complete\")){\n_7=true;\n_8.onload=_8.onreadystatechange=null;\nif(_6){\n_6.call(_8);\n}\n}\n};\ndocument.getElementsByTagName(\"head\")[0].appendChild(_8);\n};\nfunction _9(_a,_b){\n_4(_a,function(){\ndocument.getElementsByTagName(\"head\")[0].removeChild(this);\nif(_b){\n_b();\n}\n});\n};\nfunction _c(_d,_e){\nvar _f=document.createElement(\"link\");\n_f.rel=\"stylesheet\";\n_f.type=\"text/css\";\n_f.media=\"screen\";\n_f.href=_d;\ndocument.getElementsByTagName(\"head\")[0].appendChild(_f);\nif(_e){\n_e.call(_f);\n}\n};\nfunction _10(_11,_12){\n_3[_11]=\"loading\";\nvar _13=_1[_11];\nvar _14=\"loading\";\nvar _15=(easyloader.css&&_13[\"css\"])?\"loading\":\"loaded\";\nif(easyloader.css&&_13[\"css\"]){\nif(/^http/i.test(_13[\"css\"])){\nvar url=_13[\"css\"];\n}else{\nvar url=easyloader.base+\"themes/\"+easyloader.theme+\"/\"+_13[\"css\"];\n}\n_c(url,function(){\n_15=\"loaded\";\nif(_14==\"loaded\"&&_15==\"loaded\"){\n_16();\n}\n});\n}\nif(/^http/i.test(_13[\"js\"])){\nvar url=_13[\"js\"];\n}else{\nvar url=easyloader.base+\"plugins/\"+_13[\"js\"];\n}\n_4(url,function(){\n_14=\"loaded\";\nif(_14==\"loaded\"&&_15==\"loaded\"){\n_16();\n}\n});\nfunction _16(){\n_3[_11]=\"loaded\";\neasyloader.onProgress(_11);\nif(_12){\n_12();\n}\n};\n};\nfunction _17(_18,_19){\nvar mm=[];\nvar _1a=false;\nif(typeof _18==\"string\"){\nadd(_18);\n}else{\nfor(var i=0;i<_18.length;i++){\nadd(_18[i]);\n}\n}\nfunction add(_1b){\nif(!_1[_1b]){\nreturn;\n}\nvar d=_1[_1b][\"dependencies\"];\nif(d){\nfor(var i=0;i<d.length;i++){\nadd(d[i]);\n}\n}\nmm.push(_1b);\n};\nfunction _1c(){\nif(_19){\n_19();\n}\neasyloader.onLoad(_18);\n};\nvar _1d=0;\nfunction _1e(){\nif(mm.length){\nvar m=mm[0];\nif(!_3[m]){\n_1a=true;\n_10(m,function(){\nmm.shift();\n_1e();\n});\n}else{\nif(_3[m]==\"loaded\"){\nmm.shift();\n_1e();\n}else{\nif(_1d<easyloader.timeout){\n_1d+=10;\nsetTimeout(arguments.callee,10);\n}\n}\n}\n}else{\nif(easyloader.locale&&_1a==true&&_2[easyloader.locale]){\nvar url=easyloader.base+\"locale/\"+_2[easyloader.locale];\n_9(url,function(){\n_1c();\n});\n}else{\n_1c();\n}\n}\n};\n_1e();\n};\neasyloader={modules:_1,locales:_2,base:\".\",theme:\"default\",css:true,locale:null,timeout:2000,load:function(_1f,_20){\nif(/\\.css$/i.test(_1f)){\nif(/^http/i.test(_1f)){\n_c(_1f,_20);\n}else{\n_c(easyloader.base+_1f,_20);\n}\n}else{\nif(/\\.js$/i.test(_1f)){\nif(/^http/i.test(_1f)){\n_4(_1f,_20);\n}else{\n_4(easyloader.base+_1f,_20);\n}\n}else{\n_17(_1f,_20);\n}\n}\n},onProgress:function(_21){\n},onLoad:function(_22){\n}};\nvar _23=document.getElementsByTagName(\"script\");\nfor(var i=0;i<_23.length;i++){\nvar src=_23[i].src;\nif(!src){\ncontinue;\n}\nvar m=src.match(/easyloader\\.js(\\W|$)/i);\nif(m){\neasyloader.base=src.substring(0,m.index);\n}\n}\nwindow.using=easyloader.load;\nif(window.jQuery){\njQuery(function(){\neasyloader.load(\"parser\",function(){\njQuery.parser.parse();\n});\n});\n}\n})();\n\n"
  },
  {
    "path": "src/main/webapp/ui/locale/easyui-lang-af.js",
    "content": "if ($.fn.pagination){\n\t$.fn.pagination.defaults.beforePageText = 'Bladsy';\n\t$.fn.pagination.defaults.afterPageText = 'Van {pages}';\n\t$.fn.pagination.defaults.displayMsg = 'Wys (from) tot (to) van (total) items';\n}\nif ($.fn.datagrid){\n\t$.fn.datagrid.defaults.loadMsg = 'Verwerking, wag asseblief ...';\n}\nif ($.fn.treegrid && $.fn.datagrid){\n\t$.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg;\n}\nif ($.messager){\n\t$.messager.defaults.ok = 'Ok';\n\t$.messager.defaults.cancel = 'Die styl';\n}\nif ($.fn.validatebox){\n\t$.fn.validatebox.defaults.missingMessage = \"Die veld is verpligtend.\";\n\t$.fn.validatebox.defaults.rules.email.message = \"Gee 'n geldige e-pos adres.\";\n\t$.fn.validatebox.defaults.rules.url.message = \"Gee 'n geldige URL nie.\";\n\t$.fn.validatebox.defaults.rules.length.message = \"Voer 'n waarde tussen {0} en {1}.\";\n}\nif ($.fn.numberbox){\n\t$.fn.numberbox.defaults.missingMessage = 'Die veld is verpligtend.';\n}\nif ($.fn.combobox){\n\t$.fn.combobox.defaults.missingMessage = 'Die veld is verpligtend.';\n}\nif ($.fn.combotree){\n\t$.fn.combotree.defaults.missingMessage = 'Die veld is verpligtend.';\n}\nif ($.fn.combogrid){\n\t$.fn.combogrid.defaults.missingMessage = 'Die veld is verpligtend.';\n}\nif ($.fn.calendar){\n\t$.fn.calendar.defaults.weeks = ['S','M','T','W','T','F','S'];\n\t$.fn.calendar.defaults.months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n}\nif ($.fn.datebox){\n\t$.fn.datebox.defaults.currentText = 'Vandag';\n\t$.fn.datebox.defaults.closeText = 'Sluit';\n\t$.fn.datebox.defaults.okText = 'Ok';\n\t$.fn.datebox.defaults.missingMessage = 'Die veld is verpligtend.';\n}\nif ($.fn.datetimebox && $.fn.datebox){\n\t$.extend($.fn.datetimebox.defaults,{\n\t\tcurrentText: $.fn.datebox.defaults.currentText,\n\t\tcloseText: $.fn.datebox.defaults.closeText,\n\t\tokText: $.fn.datebox.defaults.okText,\n\t\tmissingMessage: $.fn.datebox.defaults.missingMessage\n\t});\n}\n"
  },
  {
    "path": "src/main/webapp/ui/locale/easyui-lang-ar.js",
    "content": "if ($.fn.pagination){\n\t$.fn.pagination.defaults.beforePageText = 'صفحة';\n\t$.fn.pagination.defaults.afterPageText = 'من {pages}';\n\t$.fn.pagination.defaults.displayMsg = 'عرض {from} إلى {to} من {total} عنصر';\n}\nif ($.fn.datagrid){\n\t$.fn.datagrid.defaults.loadMsg = 'معالجة, الرجاء الإنتظار ...';\n}\nif ($.fn.treegrid && $.fn.datagrid){\n\t$.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg;\n}\nif ($.messager){\n\t$.messager.defaults.ok = 'موافق';\n\t$.messager.defaults.cancel = 'إلغاء';\n}\nif ($.fn.validatebox){\n\t$.fn.validatebox.defaults.missingMessage = 'هذا الحقل مطلوب.';\n\t$.fn.validatebox.defaults.rules.email.message = 'الرجاء إدخال بريد إلكتروني صحيح.';\n\t$.fn.validatebox.defaults.rules.url.message = 'الرجاء إدخال رابط صحيح.';\n\t$.fn.validatebox.defaults.rules.length.message = 'الرجاء إدخال قيمة بين {0} و {1}.';\n\t$.fn.validatebox.defaults.rules.remote.message = 'الرجاء التأكد من الحقل.';\n}\nif ($.fn.numberbox){\n\t$.fn.numberbox.defaults.missingMessage = 'هذا الحقل مطلوب.';\n}\nif ($.fn.combobox){\n\t$.fn.combobox.defaults.missingMessage = 'هذا الحقل مطلوب.';\n}\nif ($.fn.combotree){\n\t$.fn.combotree.defaults.missingMessage = 'هذا الحقل مطلوب.';\n}\nif ($.fn.combogrid){\n\t$.fn.combogrid.defaults.missingMessage = 'هذا الحقل مطلوب.';\n}\nif ($.fn.calendar){\n\t$.fn.calendar.defaults.weeks = ['S','M','T','W','T','F','S'];\n\t$.fn.calendar.defaults.months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n}\nif ($.fn.datebox){\n\t$.fn.datebox.defaults.currentText = 'اليوم';\n\t$.fn.datebox.defaults.closeText = 'إغلاق';\n\t$.fn.datebox.defaults.okText = 'موافق';\n\t$.fn.datebox.defaults.missingMessage = 'هذا الحقل مطلوب.';\n}\nif ($.fn.datetimebox && $.fn.datebox){\n\t$.extend($.fn.datetimebox.defaults,{\n\t\tcurrentText: $.fn.datebox.defaults.currentText,\n\t\tcloseText: $.fn.datebox.defaults.closeText,\n\t\tokText: $.fn.datebox.defaults.okText,\n\t\tmissingMessage: $.fn.datebox.defaults.missingMessage\n\t});\n}\n"
  },
  {
    "path": "src/main/webapp/ui/locale/easyui-lang-bg.js",
    "content": "if ($.fn.pagination){\n\t$.fn.pagination.defaults.beforePageText = 'Страница';\n\t$.fn.pagination.defaults.afterPageText = 'от {pages}';\n\t$.fn.pagination.defaults.displayMsg = 'Показани {from} за {to} от {total} продукти';\n}\nif ($.fn.datagrid){\n\t$.fn.datagrid.defaults.loadMsg = 'Обработка, моля изчакайте ...';\n}\nif ($.fn.treegrid && $.fn.datagrid){\n\t$.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg;\n}\nif ($.messager){\n\t$.messager.defaults.ok = 'Добре';\n\t$.messager.defaults.cancel = 'Задрасквам';\n}\nif ($.fn.validatebox){\n\t$.fn.validatebox.defaults.missingMessage = 'Това поле е задължително.';\n\t$.fn.validatebox.defaults.rules.email.message = 'Моля, въведете валиден имейл адрес.';\n\t$.fn.validatebox.defaults.rules.url.message = 'Моля въведете валиден URL.';\n\t$.fn.validatebox.defaults.rules.length.message = 'Моля, въведете стойност между {0} и {1}.';\n}\nif ($.fn.numberbox){\n\t$.fn.numberbox.defaults.missingMessage = 'Това поле е задължително.';\n}\nif ($.fn.combobox){\n\t$.fn.combobox.defaults.missingMessage = 'Това поле е задължително.';\n}\nif ($.fn.combotree){\n\t$.fn.combotree.defaults.missingMessage = 'Това поле е задължително.';\n}\nif ($.fn.combogrid){\n\t$.fn.combogrid.defaults.missingMessage = 'Това поле е задължително.';\n}\nif ($.fn.calendar){\n\t$.fn.calendar.defaults.weeks = ['S','M','T','W','T','F','S'];\n\t$.fn.calendar.defaults.months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n}\nif ($.fn.datebox){\n\t$.fn.datebox.defaults.currentText = 'Днес';\n\t$.fn.datebox.defaults.closeText = 'Близо';\n\t$.fn.datebox.defaults.okText = 'Добре';\n\t$.fn.datebox.defaults.missingMessage = 'Това поле е задължително.';\n}\nif ($.fn.datetimebox && $.fn.datebox){\n\t$.extend($.fn.datetimebox.defaults,{\n\t\tcurrentText: $.fn.datebox.defaults.currentText,\n\t\tcloseText: $.fn.datebox.defaults.closeText,\n\t\tokText: $.fn.datebox.defaults.okText,\n\t\tmissingMessage: $.fn.datebox.defaults.missingMessage\n\t});\n}\n"
  },
  {
    "path": "src/main/webapp/ui/locale/easyui-lang-ca.js",
    "content": "if ($.fn.pagination){\n\t$.fn.pagination.defaults.beforePageText = 'Pàgina';\n\t$.fn.pagination.defaults.afterPageText = 'de {pages}';\n\t$.fn.pagination.defaults.displayMsg = \"Veient {from} a {to} de {total} d'articles\";\n}\nif ($.fn.datagrid){\n\t$.fn.datagrid.defaults.loadMsg = 'Elaboració, si us plau esperi ...';\n}\nif ($.fn.treegrid && $.fn.datagrid){\n\t$.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg;\n}\nif ($.messager){\n\t$.messager.defaults.ok = 'Ok';\n\t$.messager.defaults.cancel = 'Cancel';\n}\nif ($.fn.validatebox){\n\t$.fn.validatebox.defaults.missingMessage = 'Aquest camp és obligatori.';\n\t$.fn.validatebox.defaults.rules.email.message = 'Introduïu una adreça de correu electrònic vàlida.';\n\t$.fn.validatebox.defaults.rules.url.message = 'Si us plau, introduïu un URL vàlida.';\n\t$.fn.validatebox.defaults.rules.length.message = 'Si us plau, introduïu un valor entre {0} i {1}.';\n}\nif ($.fn.numberbox){\n\t$.fn.numberbox.defaults.missingMessage = 'Aquest camp és obligatori.';\n}\nif ($.fn.combobox){\n\t$.fn.combobox.defaults.missingMessage = 'Aquest camp és obligatori.';\n}\nif ($.fn.combotree){\n\t$.fn.combotree.defaults.missingMessage = 'Aquest camp és obligatori.';\n}\nif ($.fn.combogrid){\n\t$.fn.combogrid.defaults.missingMessage = 'Aquest camp és obligatori.';\n}\nif ($.fn.calendar){\n\t$.fn.calendar.defaults.weeks = ['S','M','T','W','T','F','S'];\n\t$.fn.calendar.defaults.months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n}\nif ($.fn.datebox){\n\t$.fn.datebox.defaults.currentText = 'Avui';\n\t$.fn.datebox.defaults.closeText = 'Tancar';\n\t$.fn.datebox.defaults.okText = 'Ok';\n\t$.fn.datebox.defaults.missingMessage = 'Aquest camp és obligatori.';\n}\nif ($.fn.datetimebox && $.fn.datebox){\n\t$.extend($.fn.datetimebox.defaults,{\n\t\tcurrentText: $.fn.datebox.defaults.currentText,\n\t\tcloseText: $.fn.datebox.defaults.closeText,\n\t\tokText: $.fn.datebox.defaults.okText,\n\t\tmissingMessage: $.fn.datebox.defaults.missingMessage\n\t});\n}\n"
  },
  {
    "path": "src/main/webapp/ui/locale/easyui-lang-cs.js",
    "content": "if ($.fn.pagination){\n\t$.fn.pagination.defaults.beforePageText = 'Strana';\n\t$.fn.pagination.defaults.afterPageText = 'z {pages}';\n\t$.fn.pagination.defaults.displayMsg = 'Zobrazuji {from} do {to} z {total} položky';\n}\nif ($.fn.datagrid){\n\t$.fn.datagrid.defaults.loadMsg = 'Zpracování, čekejte prosím ...';\n}\nif ($.fn.treegrid && $.fn.datagrid){\n\t$.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg;\n}\nif ($.messager){\n\t$.messager.defaults.ok = 'Ok';\n\t$.messager.defaults.cancel = 'Zrušit';\n}\nif ($.fn.validatebox){\n\t$.fn.validatebox.defaults.missingMessage = 'Toto pole je vyžadováno.';\n\t$.fn.validatebox.defaults.rules.email.message = 'Zadejte prosím platnou e-mailovou adresu.';\n\t$.fn.validatebox.defaults.rules.url.message = 'Zadejte prosím platnou adresu URL.';\n\t$.fn.validatebox.defaults.rules.length.message = 'Prosím, zadejte hodnotu mezi {0} a {1}.';\n}\nif ($.fn.numberbox){\n\t$.fn.numberbox.defaults.missingMessage = 'Toto pole je vyžadováno.';\n}\nif ($.fn.combobox){\n\t$.fn.combobox.defaults.missingMessage = 'Toto pole je vyžadováno.';\n}\nif ($.fn.combotree){\n\t$.fn.combotree.defaults.missingMessage = 'Toto pole je vyžadováno.';\n}\nif ($.fn.combogrid){\n\t$.fn.combogrid.defaults.missingMessage = 'Toto pole je vyžadováno.';\n}\nif ($.fn.calendar){\n\t$.fn.calendar.defaults.weeks = ['S','M','T','W','T','F','S'];\n\t$.fn.calendar.defaults.months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n}\nif ($.fn.datebox){\n\t$.fn.datebox.defaults.currentText = 'Dnes';\n\t$.fn.datebox.defaults.closeText = 'Zavřít';\n\t$.fn.datebox.defaults.okText = 'Ok';\n\t$.fn.datebox.defaults.missingMessage = 'Toto pole je vyžadováno.';\n}\nif ($.fn.datetimebox && $.fn.datebox){\n\t$.extend($.fn.datetimebox.defaults,{\n\t\tcurrentText: $.fn.datebox.defaults.currentText,\n\t\tcloseText: $.fn.datebox.defaults.closeText,\n\t\tokText: $.fn.datebox.defaults.okText,\n\t\tmissingMessage: $.fn.datebox.defaults.missingMessage\n\t});\n}\n"
  },
  {
    "path": "src/main/webapp/ui/locale/easyui-lang-cz.js",
    "content": "if ($.fn.pagination){\n\t$.fn.pagination.defaults.beforePageText = 'Strana';\n\t$.fn.pagination.defaults.afterPageText = 'z {pages}';\n\t$.fn.pagination.defaults.displayMsg = 'Zobrazuji záznam {from} až {to} z {total}.';\n}\nif ($.fn.datagrid){\n\t$.fn.datagrid.defaults.loadMsg = 'Pracuji, čekejte prosím…';\n}\nif ($.fn.treegrid && $.fn.datagrid){\n\t$.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg;\n}\nif ($.messager){\n\t$.messager.defaults.ok = 'Ok';\n\t$.messager.defaults.cancel = 'Zrušit';\n}\nif ($.fn.validatebox){\n\t$.fn.validatebox.defaults.missingMessage = 'Toto pole je vyžadováno.';\n\t$.fn.validatebox.defaults.rules.email.message = 'Zadejte, prosím, platnou e-mailovou adresu.';\n\t$.fn.validatebox.defaults.rules.url.message = 'Zadejte, prosím, platnou adresu URL.';\n\t$.fn.validatebox.defaults.rules.length.message = 'Zadejte, prosím, hodnotu mezi {0} a {1}.';\n}\nif ($.fn.numberbox){\n\t$.fn.numberbox.defaults.missingMessage = 'Toto pole je vyžadováno.';\n}\nif ($.fn.combobox){\n\t$.fn.combobox.defaults.missingMessage = 'Toto pole je vyžadováno.';\n}\nif ($.fn.combotree){\n\t$.fn.combotree.defaults.missingMessage = 'Toto pole je vyžadováno.';\n}\nif ($.fn.combogrid){\n\t$.fn.combogrid.defaults.missingMessage = 'Toto pole je vyžadováno.';\n}\nif ($.fn.calendar){\n\t$.fn.calendar.defaults.weeks = ['N','P','Ú','S','Č','P','S']; //neděle pondělí úterý středa čtvrtek pátek sobota\n\t$.fn.calendar.defaults.months = ['led', 'únr', 'bře', 'dub', 'kvě', 'čvn', 'čvc', 'srp', 'zář', 'říj', 'lis', 'pro']; //leden únor březen duben květen červen červenec srpen září říjen listopad prosinec\n}\nif ($.fn.datebox){\n\t$.fn.datebox.defaults.currentText = 'Dnes';\n\t$.fn.datebox.defaults.closeText = 'Zavřít';\n\t$.fn.datebox.defaults.okText = 'Ok';\n\t$.fn.datebox.defaults.missingMessage = 'Toto pole je vyžadováno.';\n}\nif ($.fn.datetimebox && $.fn.datebox){\n\t$.extend($.fn.datetimebox.defaults,{\n\t\tcurrentText: $.fn.datebox.defaults.currentText,\n\t\tcloseText: $.fn.datebox.defaults.closeText,\n\t\tokText: $.fn.datebox.defaults.okText,\n\t\tmissingMessage: $.fn.datebox.defaults.missingMessage\n\t});\n}\n"
  },
  {
    "path": "src/main/webapp/ui/locale/easyui-lang-da.js",
    "content": "if ($.fn.pagination){\n\t$.fn.pagination.defaults.beforePageText = 'Page';\n\t$.fn.pagination.defaults.afterPageText = 'af {pages}';\n\t$.fn.pagination.defaults.displayMsg = 'Viser {from} til {to} af {total} poster';\n}\nif ($.fn.datagrid){\n\t$.fn.datagrid.defaults.loadMsg = 'Behandling, vent venligst ...';\n}\nif ($.fn.treegrid && $.fn.datagrid){\n\t$.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg;\n}\nif ($.messager){\n\t$.messager.defaults.ok = 'Ok';\n\t$.messager.defaults.cancel = 'Annuller';\n}\nif ($.fn.validatebox){\n\t$.fn.validatebox.defaults.missingMessage = 'Dette felt er påkrævet.';\n\t$.fn.validatebox.defaults.rules.email.message = 'Angiv en gyldig e-mail-adresse.';\n\t$.fn.validatebox.defaults.rules.url.message = 'Angiv en gyldig webadresse.';\n\t$.fn.validatebox.defaults.rules.length.message = 'Angiv en værdi mellem {0} og {1}.';\n}\nif ($.fn.numberbox){\n\t$.fn.numberbox.defaults.missingMessage = 'Dette felt er påkrævet.';\n}\nif ($.fn.combobox){\n\t$.fn.combobox.defaults.missingMessage = 'Dette felt er påkrævet.';\n}\nif ($.fn.combotree){\n\t$.fn.combotree.defaults.missingMessage = 'Dette felt er påkrævet.';\n}\nif ($.fn.combogrid){\n\t$.fn.combogrid.defaults.missingMessage = 'Dette felt er påkrævet.';\n}\nif ($.fn.calendar){\n\t$.fn.calendar.defaults.weeks = ['S','M','T','W','T','F','S'];\n\t$.fn.calendar.defaults.months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n}\nif ($.fn.datebox){\n\t$.fn.datebox.defaults.currentText = 'I dag';\n\t$.fn.datebox.defaults.closeText = 'Luk';\n\t$.fn.datebox.defaults.okText = 'Ok';\n\t$.fn.datebox.defaults.missingMessage = 'Dette felt er påkrævet.';\n}\nif ($.fn.datetimebox && $.fn.datebox){\n\t$.extend($.fn.datetimebox.defaults,{\n\t\tcurrentText: $.fn.datebox.defaults.currentText,\n\t\tcloseText: $.fn.datebox.defaults.closeText,\n\t\tokText: $.fn.datebox.defaults.okText,\n\t\tmissingMessage: $.fn.datebox.defaults.missingMessage\n\t});\n}\n"
  },
  {
    "path": "src/main/webapp/ui/locale/easyui-lang-de.js",
    "content": "if ($.fn.pagination){\n\t$.fn.pagination.defaults.beforePageText = 'Seite';\n\t$.fn.pagination.defaults.afterPageText = 'von {pages}';\n\t$.fn.pagination.defaults.displayMsg = '{from} bis {to} von {total} Datensätzen';\n}\nif ($.fn.datagrid){\n\t$.fn.datagrid.defaults.loadMsg = 'Verarbeitung läuft, bitte warten ...';\n}\nif ($.fn.treegrid && $.fn.datagrid){\n\t$.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg;\n}\nif ($.messager){\n\t$.messager.defaults.ok = 'OK';\n\t$.messager.defaults.cancel = 'Abbruch';\n}\nif ($.fn.validatebox){\n\t$.fn.validatebox.defaults.missingMessage = 'Dieses Feld wird benötigt.';\n\t$.fn.validatebox.defaults.rules.email.message = 'Bitte geben Sie eine gültige E-Mail-Adresse ein.';\n\t$.fn.validatebox.defaults.rules.url.message = 'Bitte geben Sie eine gültige URL ein.';\n\t$.fn.validatebox.defaults.rules.length.message = 'Bitte geben Sie einen Wert zwischen {0} und {1} ein.';\n}\nif ($.fn.numberbox){\n\t$.fn.numberbox.defaults.missingMessage = 'Dieses Feld wird benötigt.';\n}\nif ($.fn.combobox){\n\t$.fn.combobox.defaults.missingMessage = 'Dieses Feld wird benötigt.';\n}\nif ($.fn.combotree){\n\t$.fn.combotree.defaults.missingMessage = 'Dieses Feld wird benötigt.';\n}\nif ($.fn.combogrid){\n\t$.fn.combogrid.defaults.missingMessage = 'Dieses Feld wird benötigt.';\n}\nif ($.fn.calendar){\n\t$.fn.calendar.defaults.firstDay = 1;\n\t$.fn.calendar.defaults.weeks  = ['S','M','D','M','D','F','S'];\n\t$.fn.calendar.defaults.months = ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'];\n}\nif ($.fn.datebox){\n\t$.fn.datebox.defaults.currentText = 'Heute';\n\t$.fn.datebox.defaults.closeText = 'Schließen';\n\t$.fn.datebox.defaults.okText = 'OK';\n\t$.fn.datebox.defaults.missingMessage = 'Dieses Feld wird benötigt.';\n\t$.fn.datebox.defaults.formatter = function(date){\n\t\tvar y = date.getFullYear();\n\t\tvar m = date.getMonth()+1;\n\t\tvar d = date.getDate();\n\t\treturn (d<10?('0'+d):d)+'.'+(m<10?('0'+m):m)+'.'+y;\n\t};\n\t$.fn.datebox.defaults.parser = function(s){\n\t\tif (!s) return new Date();\n\t\tvar ss = s.split('.');\n\t\tvar m = parseInt(ss[1],10);\n\t\tvar d = parseInt(ss[0],10);\n\t\tvar y = parseInt(ss[2],10);\n\t\tif (!isNaN(y) && !isNaN(m) && !isNaN(d)){\n\t\t\treturn new Date(y,m-1,d);\n\t\t} else {\n\t\t\treturn new Date();\n\t\t}\n\t};\n}\nif ($.fn.datetimebox && $.fn.datebox){\n\t$.extend($.fn.datetimebox.defaults,{\n\t\tcurrentText: $.fn.datebox.defaults.currentText,\n\t\tcloseText: $.fn.datebox.defaults.closeText,\n\t\tokText: $.fn.datebox.defaults.okText,\n\t\tmissingMessage: $.fn.datebox.defaults.missingMessage\n\t});\n}\n"
  },
  {
    "path": "src/main/webapp/ui/locale/easyui-lang-el.js",
    "content": "if ($.fn.pagination){\n\t$.fn.pagination.defaults.beforePageText = 'Σελίδα';\n\t$.fn.pagination.defaults.afterPageText = 'από {pages}';\n\t$.fn.pagination.defaults.displayMsg = 'Εμφάνιση {from} εώς {to} από {total} αντικείμενα';\n}\nif ($.fn.datagrid){\n\t$.fn.datagrid.defaults.loadMsg = 'Γίνεται Επεξεργασία, Παρακαλώ Περιμένετε ...';\n}\nif ($.fn.treegrid && $.fn.datagrid){\n\t$.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg;\n}\nif ($.messager){\n\t$.messager.defaults.ok = 'Εντάξει';\n\t$.messager.defaults.cancel = 'Άκυρο';\n}\nif ($.fn.validatebox){\n\t$.fn.validatebox.defaults.missingMessage = 'Το πεδίο είναι υποχρεωτικό.';\n\t$.fn.validatebox.defaults.rules.email.message = 'Παρακαλώ εισάγετε σωστή Ηλ.Διεύθυνση.';\n\t$.fn.validatebox.defaults.rules.url.message = 'Παρακαλώ εισάγετε σωστό σύνδεσμο.';\n\t$.fn.validatebox.defaults.rules.length.message = 'Παρακαλώ εισάγετε τιμή μεταξύ {0} και {1}.';\n\t$.fn.validatebox.defaults.rules.remote.message = 'Παρακαλώ διορθώστε αυτό το πεδίο.';\n}\nif ($.fn.numberbox){\n\t$.fn.numberbox.defaults.missingMessage = 'Το πεδίο είναι υποχρεωτικό.';\n}\nif ($.fn.combobox){\n\t$.fn.combobox.defaults.missingMessage = 'Το πεδίο είναι υποχρεωτικό.';\n}\nif ($.fn.combotree){\n\t$.fn.combotree.defaults.missingMessage = 'Το πεδίο είναι υποχρεωτικό.';\n}\nif ($.fn.combogrid){\n\t$.fn.combogrid.defaults.missingMessage = 'Το πεδίο είναι υποχρεωτικό.';\n}\nif ($.fn.calendar){\n\t$.fn.calendar.defaults.weeks = ['Κυρ','Δευ','Τρι','Τετ','Πεμ','Παρ','Σαβ'];\n\t$.fn.calendar.defaults.months = ['Ιαν', 'Φεβ', 'Μαρ', 'Απρ', 'Μαϊ', 'Ιου', 'Ιου', 'Αυγ', 'Σεπ', 'Οκτ', 'Νοε', 'Δεκ'];\n}\nif ($.fn.datebox){\n\t$.fn.datebox.defaults.currentText = 'Σήμερα';\n\t$.fn.datebox.defaults.closeText = 'Κλείσιμο';\n\t$.fn.datebox.defaults.okText = 'Εντάξει';\n\t$.fn.datebox.defaults.missingMessage = 'Το πεδίο είναι υποχρεωτικό.';\n}\nif ($.fn.datetimebox && $.fn.datebox){\n\t$.extend($.fn.datetimebox.defaults,{\n\t\tcurrentText: $.fn.datebox.defaults.currentText,\n\t\tcloseText: $.fn.datebox.defaults.closeText,\n\t\tokText: $.fn.datebox.defaults.okText,\n\t\tmissingMessage: $.fn.datebox.defaults.missingMessage\n\t});\n}\n"
  },
  {
    "path": "src/main/webapp/ui/locale/easyui-lang-en.js",
    "content": "if ($.fn.pagination){\n\t$.fn.pagination.defaults.beforePageText = 'Page';\n\t$.fn.pagination.defaults.afterPageText = 'of {pages}';\n\t$.fn.pagination.defaults.displayMsg = 'Displaying {from} to {to} of {total} items';\n}\nif ($.fn.datagrid){\n\t$.fn.datagrid.defaults.loadMsg = 'Processing, please wait ...';\n}\nif ($.fn.treegrid && $.fn.datagrid){\n\t$.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg;\n}\nif ($.messager){\n\t$.messager.defaults.ok = 'Ok';\n\t$.messager.defaults.cancel = 'Cancel';\n}\nif ($.fn.validatebox){\n\t$.fn.validatebox.defaults.missingMessage = 'This field is required.';\n\t$.fn.validatebox.defaults.rules.email.message = 'Please enter a valid email address.';\n\t$.fn.validatebox.defaults.rules.url.message = 'Please enter a valid URL.';\n\t$.fn.validatebox.defaults.rules.length.message = 'Please enter a value between {0} and {1}.';\n\t$.fn.validatebox.defaults.rules.remote.message = 'Please fix this field.';\n}\nif ($.fn.numberbox){\n\t$.fn.numberbox.defaults.missingMessage = 'This field is required.';\n}\nif ($.fn.combobox){\n\t$.fn.combobox.defaults.missingMessage = 'This field is required.';\n}\nif ($.fn.combotree){\n\t$.fn.combotree.defaults.missingMessage = 'This field is required.';\n}\nif ($.fn.combogrid){\n\t$.fn.combogrid.defaults.missingMessage = 'This field is required.';\n}\nif ($.fn.calendar){\n\t$.fn.calendar.defaults.weeks = ['S','M','T','W','T','F','S'];\n\t$.fn.calendar.defaults.months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n}\nif ($.fn.datebox){\n\t$.fn.datebox.defaults.currentText = 'Today';\n\t$.fn.datebox.defaults.closeText = 'Close';\n\t$.fn.datebox.defaults.okText = 'Ok';\n\t$.fn.datebox.defaults.missingMessage = 'This field is required.';\n}\nif ($.fn.datetimebox && $.fn.datebox){\n\t$.extend($.fn.datetimebox.defaults,{\n\t\tcurrentText: $.fn.datebox.defaults.currentText,\n\t\tcloseText: $.fn.datebox.defaults.closeText,\n\t\tokText: $.fn.datebox.defaults.okText,\n\t\tmissingMessage: $.fn.datebox.defaults.missingMessage\n\t});\n}\n"
  },
  {
    "path": "src/main/webapp/ui/locale/easyui-lang-es.js",
    "content": "if ($.fn.pagination){\n\t$.fn.pagination.defaults.beforePageText = 'P&aacute;gina';\n\t$.fn.pagination.defaults.afterPageText = 'de {pages}';\n\t$.fn.pagination.defaults.displayMsg = 'Mostrando {from} a {to} de {total} elementos';\n}\nif ($.fn.datagrid){\n\t$.fn.datagrid.defaults.loadMsg = 'Procesando, por favor espere ...';\n}\nif ($.fn.treegrid && $.fn.datagrid){\n\t$.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg;\n}\nif ($.messager){\n\t$.messager.defaults.ok = 'Aceptar';\n\t$.messager.defaults.cancel = 'Cancelar';\n}\nif ($.fn.validatebox){\n\t$.fn.validatebox.defaults.missingMessage = 'Este campo es obligatorio.';\n\t$.fn.validatebox.defaults.rules.email.message = 'Por favor ingrese una direcci&oacute;n de correo v&aacute;lida.';\n\t$.fn.validatebox.defaults.rules.url.message = 'Por favor ingrese una URL v&aacute;lida.';\n\t$.fn.validatebox.defaults.rules.length.message = 'Por favor ingrese un valor entre {0} y {1}.';\n\t$.fn.validatebox.defaults.rules.remote.message = 'Por favor corrija este campo.';\n}\nif ($.fn.numberbox){\n\t$.fn.numberbox.defaults.missingMessage = 'Este campo es obligatorio.';\n}\nif ($.fn.combobox){\n\t$.fn.combobox.defaults.missingMessage = 'Este campo es obligatorio.';\n}\nif ($.fn.combotree){\n\t$.fn.combotree.defaults.missingMessage = 'Este campo es obligatorio.';\n}\nif ($.fn.combogrid){\n\t$.fn.combogrid.defaults.missingMessage = 'Este campo es obligatorio.';\n}\nif ($.fn.calendar){\n\t$.fn.calendar.defaults.weeks = ['Do','Lu','Ma','Mi','Ju','Vi','S&aacute;'];\n\t$.fn.calendar.defaults.months = ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic'];\n}\nif ($.fn.datebox){\n\t$.fn.datebox.defaults.currentText = 'Hoy';\n\t$.fn.datebox.defaults.closeText = 'Cerrar';\n\t$.fn.datebox.defaults.okText = 'Aceptar';\n\t$.fn.datebox.defaults.missingMessage = 'Este campo es obligatorio.';\n}\nif ($.fn.datetimebox && $.fn.datebox){\n\t$.extend($.fn.datetimebox.defaults,{\n\t\tcurrentText: $.fn.datebox.defaults.currentText,\n\t\tcloseText: $.fn.datebox.defaults.closeText,\n\t\tokText: $.fn.datebox.defaults.okText,\n\t\tmissingMessage: $.fn.datebox.defaults.missingMessage\n\t});\n}\n"
  },
  {
    "path": "src/main/webapp/ui/locale/easyui-lang-fr.js",
    "content": "if ($.fn.pagination){\n\t$.fn.pagination.defaults.beforePageText = 'Page';\n\t$.fn.pagination.defaults.afterPageText = 'de {pages}';\n\t$.fn.pagination.defaults.displayMsg = 'Affichage de {from} et {to} au {total} des articles';\n}\nif ($.fn.datagrid){\n\t$.fn.datagrid.defaults.loadMsg = \"Traitement, s'il vous plaît patienter ...\";\n}\nif ($.fn.treegrid && $.fn.datagrid){\n\t$.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg;\n}\nif ($.messager){\n\t$.messager.defaults.ok = 'Ok';\n\t$.messager.defaults.cancel = 'Annuler';\n}\nif ($.fn.validatebox){\n\t$.fn.validatebox.defaults.missingMessage = 'Ce champ est obligatoire.';\n\t$.fn.validatebox.defaults.rules.email.message = \"S'il vous plaît entrer une adresse email valide.\";\n\t$.fn.validatebox.defaults.rules.url.message = \"S'il vous plaît entrer une URL valide.\";\n\t$.fn.validatebox.defaults.rules.length.message = \"S'il vous plaît entrez une valeur comprise entre {0} et {1}.\";\n}\nif ($.fn.numberbox){\n\t$.fn.numberbox.defaults.missingMessage = 'Ce champ est obligatoire.';\n}\nif ($.fn.combobox){\n\t$.fn.combobox.defaults.missingMessage = 'Ce champ est obligatoire.';\n}\nif ($.fn.combotree){\n\t$.fn.combotree.defaults.missingMessage = 'Ce champ est obligatoire.';\n}\nif ($.fn.combogrid){\n\t$.fn.combogrid.defaults.missingMessage = 'Ce champ est obligatoire.';\n}\nif ($.fn.calendar){\n\t$.fn.calendar.defaults.weeks = ['S','M','T','W','T','F','S'];\n\t$.fn.calendar.defaults.months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n}\nif ($.fn.datebox){\n\t$.fn.datebox.defaults.currentText = \"Aujourd'hui\";\n\t$.fn.datebox.defaults.closeText = 'Fermer';\n\t$.fn.datebox.defaults.okText = 'Ok';\n\t$.fn.datebox.defaults.missingMessage = 'Ce champ est obligatoire.';\n}\nif ($.fn.datetimebox && $.fn.datebox){\n\t$.extend($.fn.datetimebox.defaults,{\n\t\tcurrentText: $.fn.datebox.defaults.currentText,\n\t\tcloseText: $.fn.datebox.defaults.closeText,\n\t\tokText: $.fn.datebox.defaults.okText,\n\t\tmissingMessage: $.fn.datebox.defaults.missingMessage\n\t});\n}\n"
  },
  {
    "path": "src/main/webapp/ui/locale/easyui-lang-it.js",
    "content": "if ($.fn.pagination){\n\t$.fn.pagination.defaults.beforePageText = 'Pagina';\n\t$.fn.pagination.defaults.afterPageText = 'di {pages}';\n\t$.fn.pagination.defaults.displayMsg = 'Visualizzazione {from} a {to} di {total} elementi';\n}\nif ($.fn.datagrid){\n\t$.fn.datagrid.defaults.loadMsg = 'In lavorazione, attendere ...';\n}\nif ($.fn.treegrid && $.fn.datagrid){\n\t$.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg;\n}\nif ($.messager){\n\t$.messager.defaults.ok = 'Ok';\n\t$.messager.defaults.cancel = 'Annulla';\n}\nif ($.fn.validatebox){\n\t$.fn.validatebox.defaults.missingMessage = 'Questo campo è richiesto.';\n\t$.fn.validatebox.defaults.rules.email.message = 'Inserisci un indirizzo email valido.';\n\t$.fn.validatebox.defaults.rules.url.message = 'Inserisci un URL valido.';\n\t$.fn.validatebox.defaults.rules.length.message = 'Inserisci un valore tra {0} e {1}.';\n\t$.fn.validatebox.defaults.rules.remote.message = 'Aggiusta questo campo.';\n}\nif ($.fn.numberbox){\n\t$.fn.numberbox.defaults.missingMessage = 'Questo campo è richiesto.';\n}\nif ($.fn.combobox){\n\t$.fn.combobox.defaults.missingMessage = 'Questo campo è richiesto.';\n}\nif ($.fn.combotree){\n\t$.fn.combotree.defaults.missingMessage = 'Questo campo è richiesto.';\n}\nif ($.fn.combogrid){\n\t$.fn.combogrid.defaults.missingMessage = 'Questo campo è richiesto.';\n}\nif ($.fn.calendar){\n\t$.fn.calendar.defaults.weeks = ['S','M','T','W','T','F','S'];\n\t$.fn.calendar.defaults.months = ['Gen', 'Feb', 'Mar', 'Apr', 'Mag', 'Giu', 'Lug', 'Ago', 'Set', 'Ott', 'Nov', 'Dic'];\n}\nif ($.fn.datebox){\n\t$.fn.datebox.defaults.currentText = 'Oggi';\n\t$.fn.datebox.defaults.closeText = 'Chiudi';\n\t$.fn.datebox.defaults.okText = 'Ok';\n\t$.fn.datebox.defaults.missingMessage = 'Questo campo è richiesto.';\n}\nif ($.fn.datetimebox && $.fn.datebox){\n\t$.extend($.fn.datetimebox.defaults,{\n\t\tcurrentText: $.fn.datebox.defaults.currentText,\n\t\tcloseText: $.fn.datebox.defaults.closeText,\n\t\tokText: $.fn.datebox.defaults.okText,\n\t\tmissingMessage: $.fn.datebox.defaults.missingMessage\n\t});\n}\n"
  },
  {
    "path": "src/main/webapp/ui/locale/easyui-lang-jp.js",
    "content": "if ($.fn.pagination){\n\t$.fn.pagination.defaults.beforePageText = 'ページ';\n\t$.fn.pagination.defaults.afterPageText = '{pages} 中';\n\t$.fn.pagination.defaults.displayMsg = '全 {total} アイテム中 {from} から {to} を表示中';\n}\nif ($.fn.datagrid){\n\t$.fn.datagrid.defaults.loadMsg = '処理中です。少々お待ちください...';\n}\nif ($.fn.treegrid && $.fn.datagrid){\n\t$.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg;\n}\nif ($.messager){\n\t$.messager.defaults.ok = 'OK';\n\t$.messager.defaults.cancel = 'キャンセル';\n}\nif ($.fn.validatebox){\n\t$.fn.validatebox.defaults.missingMessage = '入力は必須です。';\n\t$.fn.validatebox.defaults.rules.email.message = '正しいメールアドレスを入力してください。';\n\t$.fn.validatebox.defaults.rules.url.message = '正しいURLを入力してください。';\n\t$.fn.validatebox.defaults.rules.length.message = '{0} から {1} の範囲の正しい値を入力してください。';\n\t$.fn.validatebox.defaults.rules.remote.message = 'このフィールドを修正してください。';\n}\nif ($.fn.numberbox){\n\t$.fn.numberbox.defaults.missingMessage = '入力は必須です。';\n}\nif ($.fn.combobox){\n\t$.fn.combobox.defaults.missingMessage = '入力は必須です。';\n}\nif ($.fn.combotree){\n\t$.fn.combotree.defaults.missingMessage = '入力は必須です。';\n}\nif ($.fn.combogrid){\n\t$.fn.combogrid.defaults.missingMessage = '入力は必須です。';\n}\nif ($.fn.calendar){\n\t$.fn.calendar.defaults.weeks = ['日','月','火','水','木','金','土'];\n\t$.fn.calendar.defaults.months = ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'];\n}\nif ($.fn.datebox){\n\t$.fn.datebox.defaults.currentText = '今日';\n\t$.fn.datebox.defaults.closeText = '閉じる';\n\t$.fn.datebox.defaults.okText = 'OK';\n\t$.fn.datebox.defaults.missingMessage = '入力は必須です。';\n}\nif ($.fn.datetimebox && $.fn.datebox){\n\t$.extend($.fn.datetimebox.defaults,{\n\t\tcurrentText: $.fn.datebox.defaults.currentText,\n\t\tcloseText: $.fn.datebox.defaults.closeText,\n\t\tokText: $.fn.datebox.defaults.okText,\n\t\tmissingMessage: $.fn.datebox.defaults.missingMessage\n\t});\n}\n"
  },
  {
    "path": "src/main/webapp/ui/locale/easyui-lang-nl.js",
    "content": "if ($.fn.pagination){\n\t$.fn.pagination.defaults.beforePageText = 'Pagina';\n\t$.fn.pagination.defaults.afterPageText = 'van {pages}';\n\t$.fn.pagination.defaults.displayMsg = 'Tonen van {from} tot {to} van de {total} items';\n}\nif ($.fn.datagrid){\n\t$.fn.datagrid.defaults.loadMsg = 'Verwerking, even geduld ...';\n}\nif ($.fn.treegrid && $.fn.datagrid){\n\t$.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg;\n}\nif ($.messager){\n\t$.messager.defaults.ok = 'Ok';\n\t$.messager.defaults.cancel = 'Annuleren';\n}\nif ($.fn.validatebox){\n\t$.fn.validatebox.defaults.missingMessage = 'Dit veld is verplicht.';\n\t$.fn.validatebox.defaults.rules.email.message = 'Geef een geldig e-mailadres.';\n\t$.fn.validatebox.defaults.rules.url.message = 'Vul een geldige URL.';\n\t$.fn.validatebox.defaults.rules.length.message = 'Voer een waarde tussen {0} en {1}.';\n}\nif ($.fn.numberbox){\n\t$.fn.numberbox.defaults.missingMessage = 'Dit veld is verplicht.';\n}\nif ($.fn.combobox){\n\t$.fn.combobox.defaults.missingMessage = 'Dit veld is verplicht.';\n}\nif ($.fn.combotree){\n\t$.fn.combotree.defaults.missingMessage = 'Dit veld is verplicht.';\n}\nif ($.fn.combogrid){\n\t$.fn.combogrid.defaults.missingMessage = 'Dit veld is verplicht.';\n}\nif ($.fn.calendar){\n\t$.fn.calendar.defaults.weeks = ['S','M','T','W','T','F','S'];\n\t$.fn.calendar.defaults.months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n}\nif ($.fn.datebox){\n\t$.fn.datebox.defaults.currentText = 'Vandaag';\n\t$.fn.datebox.defaults.closeText = 'Dicht';\n\t$.fn.datebox.defaults.okText = 'Ok';\n\t$.fn.datebox.defaults.missingMessage = 'Dit veld is verplicht.';\n}\nif ($.fn.datetimebox && $.fn.datebox){\n\t$.extend($.fn.datetimebox.defaults,{\n\t\tcurrentText: $.fn.datebox.defaults.currentText,\n\t\tcloseText: $.fn.datebox.defaults.closeText,\n\t\tokText: $.fn.datebox.defaults.okText,\n\t\tmissingMessage: $.fn.datebox.defaults.missingMessage\n\t});\n}\n"
  },
  {
    "path": "src/main/webapp/ui/locale/easyui-lang-pl.js",
    "content": "if ($.fn.pagination){\n\t$.fn.pagination.defaults.beforePageText = 'Strona';\n\t$.fn.pagination.defaults.afterPageText = 'z {pages}';\n\t$.fn.pagination.defaults.displayMsg = 'Wyświetlono elementy od {from} do {to} z {total}';\n}\nif ($.fn.datagrid){\n\t$.fn.datagrid.defaults.loadMsg = 'Przetwarzanie, proszę czekać ...';\n}\nif ($.fn.treegrid && $.fn.datagrid){\n\t$.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg;\n}\nif ($.messager){\n\t$.messager.defaults.ok = 'Ok';\n\t$.messager.defaults.cancel = 'Cancel';\n}\nif ($.fn.validatebox){\n\t$.fn.validatebox.defaults.missingMessage = 'To pole jest wymagane.';\n\t$.fn.validatebox.defaults.rules.email.message = 'Wprowadź poprawny adres email.';\n\t$.fn.validatebox.defaults.rules.url.message = 'Wprowadź poprawny adres URL.';\n\t$.fn.validatebox.defaults.rules.length.message = 'Wprowadź wartość z zakresu od {0} do {1}.';\n\t$.fn.validatebox.defaults.rules.remote.message = 'Proszę poprawić to pole.';\n}\nif ($.fn.numberbox){\n\t$.fn.numberbox.defaults.missingMessage = 'To pole jest wymagane.';\n}\nif ($.fn.combobox){\n\t$.fn.combobox.defaults.missingMessage = 'To pole jest wymagane.';\n}\nif ($.fn.combotree){\n\t$.fn.combotree.defaults.missingMessage = 'To pole jest wymagane.';\n}\nif ($.fn.combogrid){\n\t$.fn.combogrid.defaults.missingMessage = 'To pole jest wymagane.';\n}\nif ($.fn.calendar){\n\t$.fn.calendar.defaults.weeks = ['N','P','W','Ś','C','P','S'];\n\t$.fn.calendar.defaults.months = ['Sty', 'Lut', 'Mar', 'Kwi', 'Maj', 'Cze', 'Lip', 'Sie', 'Wrz', 'Paź', 'Lis', 'Gru'];\n}\nif ($.fn.datebox){\n\t$.fn.datebox.defaults.currentText = 'Dzisiaj';\n\t$.fn.datebox.defaults.closeText = 'Zamknij';\n\t$.fn.datebox.defaults.okText = 'Ok';\n\t$.fn.datebox.defaults.missingMessage = 'To pole jest wymagane.';\n}\nif ($.fn.datetimebox && $.fn.datebox){\n\t$.extend($.fn.datetimebox.defaults,{\n\t\tcurrentText: $.fn.datebox.defaults.currentText,\n\t\tcloseText: $.fn.datebox.defaults.closeText,\n\t\tokText: $.fn.datebox.defaults.okText,\n\t\tmissingMessage: $.fn.datebox.defaults.missingMessage\n\t});\n}\n"
  },
  {
    "path": "src/main/webapp/ui/locale/easyui-lang-pt_BR.js",
    "content": "if ($.fn.pagination){\n\t$.fn.pagination.defaults.beforePageText = 'Página';\n\t$.fn.pagination.defaults.afterPageText = 'de {pages}';\n\t$.fn.pagination.defaults.displayMsg = 'Mostrando {from} a {to} de {total} itens';\n}\nif ($.fn.datagrid){\n\t$.fn.datagrid.defaults.loadMsg = 'Processando, aguarde ...';\n}\nif ($.fn.treegrid && $.fn.datagrid){\n\t$.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg;\n}\nif ($.messager){\n\t$.messager.defaults.ok = 'Ok';\n\t$.messager.defaults.cancel = 'Cancelar';\n}\nif ($.fn.validatebox){\n\t$.fn.validatebox.defaults.missingMessage = 'Esse campo é requerido.';\n\t$.fn.validatebox.defaults.rules.email.message = 'Insira um endereço de email válido.';\n\t$.fn.validatebox.defaults.rules.url.message = 'Insira uma URL válida.';\n\t$.fn.validatebox.defaults.rules.length.message = 'Insira uma valor entre {0} e {1}.';\n\t$.fn.validatebox.defaults.rules.remote.message = 'Corrija esse campo.';\n}\nif ($.fn.numberbox){\n\t$.fn.numberbox.defaults.missingMessage = 'Esse campo é requerido.';\n}\nif ($.fn.combobox){\n\t$.fn.combobox.defaults.missingMessage = 'Esse campo é requerido.';\n}\nif ($.fn.combotree){\n\t$.fn.combotree.defaults.missingMessage = 'Esse campo é requerido.';\n}\nif ($.fn.combogrid){\n\t$.fn.combogrid.defaults.missingMessage = 'Esse campo é requerido.';\n}\nif ($.fn.calendar){\n\t$.fn.calendar.defaults.weeks = ['D','S','T','Q','Q','S','S'];\n\t$.fn.calendar.defaults.months = ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez'];\n}\nif ($.fn.datebox){\n\t$.fn.datebox.defaults.currentText = 'Hoje';\n\t$.fn.datebox.defaults.closeText = 'Fechar';\n\t$.fn.datebox.defaults.okText = 'Ok';\n\t$.fn.datebox.defaults.missingMessage = 'Esse campo é requerido.';\n}\nif ($.fn.datetimebox && $.fn.datebox){\n\t$.extend($.fn.datetimebox.defaults,{\n\t\tcurrentText: $.fn.datebox.defaults.currentText,\n\t\tcloseText: $.fn.datebox.defaults.closeText,\n\t\tokText: $.fn.datebox.defaults.okText,\n\t\tmissingMessage: $.fn.datebox.defaults.missingMessage\n\t});\n}\n"
  },
  {
    "path": "src/main/webapp/ui/locale/easyui-lang-ru.js",
    "content": "if ($.fn.pagination){\n\t$.fn.pagination.defaults.beforePageText = 'Страница';\n\t$.fn.pagination.defaults.afterPageText = 'из {pages}';\n\t$.fn.pagination.defaults.displayMsg = 'Просмотр {from} до {to} из {total} записей';\n}\nif ($.fn.datagrid){\n\t$.fn.datagrid.defaults.loadMsg = 'Обрабатывается, пожалуйста ждите ...';\n}\nif ($.fn.treegrid && $.fn.datagrid){\n\t$.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg;\n}\nif ($.messager){\n\t$.messager.defaults.ok = 'Ок';\n\t$.messager.defaults.cancel = 'Закрыть';\n}\nif ($.fn.validatebox){\n\t$.fn.validatebox.defaults.missingMessage = 'Это поле необходимо.';\n\t$.fn.validatebox.defaults.rules.email.message = 'Пожалуйста введите корректный e-mail адрес.';\n\t$.fn.validatebox.defaults.rules.url.message = 'Пожалуйста введите корректный URL.';\n\t$.fn.validatebox.defaults.rules.length.message = 'Пожалуйста введите зачение между {0} и {1}.';\n\t$.fn.validatebox.defaults.rules.remote.message = 'Пожалуйста исправте это поле.';\n}\nif ($.fn.numberbox){\n\t$.fn.numberbox.defaults.missingMessage = 'Это поле необходимо.';\n}\nif ($.fn.combobox){\n\t$.fn.combobox.defaults.missingMessage = 'Это поле необходимо.';\n}\nif ($.fn.combotree){\n\t$.fn.combotree.defaults.missingMessage = 'Это поле необходимо.';\n}\nif ($.fn.combogrid){\n\t$.fn.combogrid.defaults.missingMessage = 'Это поле необходимо.';\n}\nif ($.fn.calendar){\n\t$.fn.calendar.defaults.firstDay = 1;\n\t$.fn.calendar.defaults.weeks  = ['В','П','В','С','Ч','П','С'];\n\t$.fn.calendar.defaults.months = ['Янв', 'Фев', 'Мар', 'Апр', 'Май', 'Июн', 'Июл', 'Авг', 'Сен', 'Окт', 'Ноя', 'Дек'];\n}\nif ($.fn.datebox){\n\t$.fn.datebox.defaults.currentText = 'Сегодня';\n\t$.fn.datebox.defaults.closeText = 'Закрыть';\n\t$.fn.datebox.defaults.okText = 'Ок';\n\t$.fn.datebox.defaults.missingMessage = 'Это поле необходимо.';\n}\nif ($.fn.datetimebox && $.fn.datebox){\n\t$.extend($.fn.datetimebox.defaults,{\n\t\tcurrentText: $.fn.datebox.defaults.currentText,\n\t\tcloseText: $.fn.datebox.defaults.closeText,\n\t\tokText: $.fn.datebox.defaults.okText,\n\t\tmissingMessage: $.fn.datebox.defaults.missingMessage\n\t});\n}\n"
  },
  {
    "path": "src/main/webapp/ui/locale/easyui-lang-sv_SE.js",
    "content": "if ($.fn.pagination) {\n    $.fn.pagination.defaults.beforePageText = 'Sida';\n    $.fn.pagination.defaults.afterPageText = 'av {pages}';\n    $.fn.pagination.defaults.displayMsg = 'Visar {from} till {to} av {total} poster';\n}\nif ($.fn.datagrid) {\n    $.fn.datagrid.defaults.loadMsg = 'Bearbetar, vänligen vänta ...';\n}\nif ($.fn.treegrid && $.fn.datagrid) {\n    $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg;\n}\nif ($.messager) {\n    $.messager.defaults.ok = 'Ok';\n    $.messager.defaults.cancel = 'Avbryt';\n}\nif ($.fn.validatebox) {\n    $.fn.validatebox.defaults.missingMessage = 'Detta fält är obligatoriskt.';\n    $.fn.validatebox.defaults.rules.email.message = 'Vänligen ange en korrekt e-post adress.';\n    $.fn.validatebox.defaults.rules.url.message = 'Vänligen ange en korrekt URL.';\n    $.fn.validatebox.defaults.rules.length.message = 'Vänligen ange ett nummer mellan {0} och {1}.';\n    $.fn.validatebox.defaults.rules.remote.message = 'Vänligen åtgärda detta fält.';\n}\nif ($.fn.numberbox) {\n    $.fn.numberbox.defaults.missingMessage = 'Detta fält är obligatoriskt.';\n}\nif ($.fn.combobox) {\n    $.fn.combobox.defaults.missingMessage = 'Detta fält är obligatoriskt.';\n}\nif ($.fn.combotree) {\n    $.fn.combotree.defaults.missingMessage = 'Detta fält är obligatoriskt.';\n}\nif ($.fn.combogrid) {\n    $.fn.combogrid.defaults.missingMessage = 'Detta fält är obligatoriskt.';\n}\nif ($.fn.calendar) {\n    $.fn.calendar.defaults.weeks = ['Sön', 'Mån', 'Tis', 'Ons', 'Tors', 'Fre', 'Lör'];\n    $.fn.calendar.defaults.months = ['Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec'];\n}\nif ($.fn.datebox) {\n    $.fn.datebox.defaults.currentText = 'I dag';\n    $.fn.datebox.defaults.closeText = 'Stäng';\n    $.fn.datebox.defaults.okText = 'Ok';\n    $.fn.datebox.defaults.missingMessage = 'Detta fält är obligatoriskt.';\n}\nif ($.fn.datetimebox && $.fn.datebox) {\n    $.extend($.fn.datetimebox.defaults, {\n        currentText: $.fn.datebox.defaults.currentText,\n        closeText: $.fn.datebox.defaults.closeText,\n        okText: $.fn.datebox.defaults.okText,\n        missingMessage: $.fn.datebox.defaults.missingMessage\n    });\n}\n"
  },
  {
    "path": "src/main/webapp/ui/locale/easyui-lang-tr.js",
    "content": "if ($.fn.pagination){\n    $.fn.pagination.defaults.beforePageText = 'Sayfa';\n    $.fn.pagination.defaults.afterPageText = ' / {pages}';\n    $.fn.pagination.defaults.displayMsg = '{from} ile {to} arası gösteriliyor, toplam {total} kayıt';\n}\nif ($.fn.datagrid){\n    $.fn.panel.defaults.loadingMessage = \"Yükleniyor...\";\n}\n\nif ($.fn.datagrid){\n    $.fn.datagrid.defaults.loadingMessage = \"Yükleniyor...\";\n    $.fn.datagrid.defaults.loadMsg = 'İşleminiz Yapılıyor, lütfen bekleyin ...';\n}\nif ($.fn.treegrid && $.fn.datagrid){\n    $.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg;\n}\nif ($.messager){\n    $.messager.defaults.ok = 'Tamam';\n    $.messager.defaults.cancel = 'İptal';\n}\nif ($.fn.validatebox){\n    $.fn.validatebox.defaults.missingMessage = 'Bu alan zorunludur.';\n    $.fn.validatebox.defaults.rules.email.message = 'Lütfen geçerli bir email adresi giriniz.';\n    $.fn.validatebox.defaults.rules.url.message = 'Lütfen geçerli bir URL giriniz.';\n    $.fn.validatebox.defaults.rules.length.message = 'Lütfen {0} ile {1} arasında bir değer giriniz.';\n    $.fn.validatebox.defaults.rules.remote.message = 'Lütfen bu alanı düzeltiniz.';\n}\nif ($.fn.numberbox){\n    $.fn.numberbox.defaults.missingMessage = 'Bu alan zorunludur.';\n}\nif ($.fn.combobox){\n    $.fn.combobox.defaults.missingMessage = 'Bu alan zorunludur.';\n}\nif ($.fn.combotree){\n    $.fn.combotree.defaults.missingMessage = 'Bu alan zorunludur.';\n}\nif ($.fn.combogrid){\n    $.fn.combogrid.defaults.missingMessage = 'Bu alan zorunludur.';\n}\nif ($.fn.calendar){\n    $.fn.calendar.defaults.weeks = ['Pz','Pt','Sa','Ça','Pe','Cu','Ct'];\n    $.fn.calendar.defaults.months = ['Oca', 'Şub', 'Mar', 'Nis', 'May', 'Haz', 'Tem', 'Ağu', 'Eyl', 'Eki', 'Kas', 'Ara'];\n}\nif ($.fn.datebox){\n    $.fn.datebox.defaults.currentText = 'Bugün';\n    $.fn.datebox.defaults.closeText = 'Kapat';\n    $.fn.datebox.defaults.okText = 'Tamam';\n    $.fn.datebox.defaults.missingMessage = 'Bu alan zorunludur.';\n}\nif ($.fn.datetimebox && $.fn.datebox){\n    $.extend($.fn.datetimebox.defaults,{\n        currentText: $.fn.datebox.defaults.currentText,\n        closeText: $.fn.datebox.defaults.closeText,\n        okText: $.fn.datebox.defaults.okText,\n        missingMessage: $.fn.datebox.defaults.missingMessage\n    });\n    \n    $.fn.datebox.defaults.formatter=function(date){\n        var y=date.getFullYear();\n        var m=date.getMonth()+1;\n        var d=date.getDate();\n        if(m<10){m=\"0\"+m;}\n        if(d<10){d=\"0\"+d;}\n        return d+\".\"+m+\".\"+y;\n    };\n}\n"
  },
  {
    "path": "src/main/webapp/ui/locale/easyui-lang-zh_CN.js",
    "content": "if ($.fn.pagination){\n\t$.fn.pagination.defaults.beforePageText = '第';\n\t$.fn.pagination.defaults.afterPageText = '共{pages}页';\n\t$.fn.pagination.defaults.displayMsg = '显示{from}到{to},共{total}记录';\n}\nif ($.fn.datagrid){\n\t$.fn.datagrid.defaults.loadMsg = '正在处理，请稍待。。。';\n}\nif ($.fn.treegrid && $.fn.datagrid){\n\t$.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg;\n}\nif ($.messager){\n\t$.messager.defaults.ok = '确定';\n\t$.messager.defaults.cancel = '取消';\n}\nif ($.fn.validatebox){\n\t$.fn.validatebox.defaults.missingMessage = '该输入项为必输项';\n\t$.fn.validatebox.defaults.rules.email.message = '请输入有效的电子邮件地址';\n\t$.fn.validatebox.defaults.rules.url.message = '请输入有效的URL地址';\n\t$.fn.validatebox.defaults.rules.length.message = '输入内容长度必须介于{0}和{1}之间';\n\t$.fn.validatebox.defaults.rules.remote.message = '请修正该字段';\n}\nif ($.fn.numberbox){\n\t$.fn.numberbox.defaults.missingMessage = '该输入项为必输项';\n}\nif ($.fn.combobox){\n\t$.fn.combobox.defaults.missingMessage = '该输入项为必输项';\n}\nif ($.fn.combotree){\n\t$.fn.combotree.defaults.missingMessage = '该输入项为必输项';\n}\nif ($.fn.combogrid){\n\t$.fn.combogrid.defaults.missingMessage = '该输入项为必输项';\n}\nif ($.fn.calendar){\n\t$.fn.calendar.defaults.weeks = ['日','一','二','三','四','五','六'];\n\t$.fn.calendar.defaults.months = ['一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月'];\n}\nif ($.fn.datebox){\n\t$.fn.datebox.defaults.currentText = '今天';\n\t$.fn.datebox.defaults.closeText = '关闭';\n\t$.fn.datebox.defaults.okText = '确定';\n\t$.fn.datebox.defaults.missingMessage = '该输入项为必输项';\n\t$.fn.datebox.defaults.formatter = function(date){\n\t\tvar y = date.getFullYear();\n\t\tvar m = date.getMonth()+1;\n\t\tvar d = date.getDate();\n\t\treturn y+'-'+(m<10?('0'+m):m)+'-'+(d<10?('0'+d):d);\n\t};\n\t$.fn.datebox.defaults.parser = function(s){\n\t\tif (!s) return new Date();\n\t\tvar ss = s.split('-');\n\t\tvar y = parseInt(ss[0],10);\n\t\tvar m = parseInt(ss[1],10);\n\t\tvar d = parseInt(ss[2],10);\n\t\tif (!isNaN(y) && !isNaN(m) && !isNaN(d)){\n\t\t\treturn new Date(y,m-1,d);\n\t\t} else {\n\t\t\treturn new Date();\n\t\t}\n\t};\n}\nif ($.fn.datetimebox && $.fn.datebox){\n\t$.extend($.fn.datetimebox.defaults,{\n\t\tcurrentText: $.fn.datebox.defaults.currentText,\n\t\tcloseText: $.fn.datebox.defaults.closeText,\n\t\tokText: $.fn.datebox.defaults.okText,\n\t\tmissingMessage: $.fn.datebox.defaults.missingMessage\n\t});\n}\n"
  },
  {
    "path": "src/main/webapp/ui/locale/easyui-lang-zh_TW.js",
    "content": "if ($.fn.pagination){\n\t$.fn.pagination.defaults.beforePageText = '第';\n\t$.fn.pagination.defaults.afterPageText = '共{pages}頁';\n\t$.fn.pagination.defaults.displayMsg = '顯示{from}到{to},共{total}記錄';\n}\nif ($.fn.datagrid){\n\t$.fn.datagrid.defaults.loadMsg = '正在處理，請稍待。。。';\n}\nif ($.fn.treegrid && $.fn.datagrid){\n\t$.fn.treegrid.defaults.loadMsg = $.fn.datagrid.defaults.loadMsg;\n}\nif ($.messager){\n\t$.messager.defaults.ok = '確定';\n\t$.messager.defaults.cancel = '取消';\n}\nif ($.fn.validatebox){\n\t$.fn.validatebox.defaults.missingMessage = '該輸入項為必輸項';\n\t$.fn.validatebox.defaults.rules.email.message = '請輸入有效的電子郵件地址';\n\t$.fn.validatebox.defaults.rules.url.message = '請輸入有效的URL地址';\n\t$.fn.validatebox.defaults.rules.length.message = '輸入內容長度必須介於{0}和{1}之間';\n\t$.fn.validatebox.defaults.rules.remote.message = '請修正此欄位';\n}\nif ($.fn.numberbox){\n\t$.fn.numberbox.defaults.missingMessage = '該輸入項為必輸項';\n}\nif ($.fn.combobox){\n\t$.fn.combobox.defaults.missingMessage = '該輸入項為必輸項';\n}\nif ($.fn.combotree){\n\t$.fn.combotree.defaults.missingMessage = '該輸入項為必輸項';\n}\nif ($.fn.combogrid){\n\t$.fn.combogrid.defaults.missingMessage = '該輸入項為必輸項';\n}\nif ($.fn.calendar){\n\t$.fn.calendar.defaults.weeks = ['日','一','二','三','四','五','六'];\n\t$.fn.calendar.defaults.months = ['一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月'];\n}\nif ($.fn.datebox){\n\t$.fn.datebox.defaults.currentText = '今天';\n\t$.fn.datebox.defaults.closeText = '關閉';\n\t$.fn.datebox.defaults.okText = '確定';\n\t$.fn.datebox.defaults.missingMessage = '該輸入項為必輸項';\n}\nif ($.fn.datetimebox && $.fn.datebox){\n\t$.extend($.fn.datetimebox.defaults,{\n\t\tcurrentText: $.fn.datebox.defaults.currentText,\n\t\tcloseText: $.fn.datebox.defaults.closeText,\n\t\tokText: $.fn.datebox.defaults.okText,\n\t\tmissingMessage: $.fn.datebox.defaults.missingMessage\n\t});\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/black/accordion.css",
    "content": ".accordion {\n  overflow: hidden;\n  border-width: 1px;\n  border-style: solid;\n}\n.accordion .accordion-header {\n  border-width: 0 0 1px;\n  cursor: pointer;\n}\n.accordion .accordion-body {\n  border-width: 0 0 1px;\n}\n.accordion-noborder {\n  border-width: 0;\n}\n.accordion-noborder .accordion-header {\n  border-width: 0 0 1px;\n}\n.accordion-noborder .accordion-body {\n  border-width: 0 0 1px;\n}\n.accordion-collapse {\n  background: url('images/accordion_arrows.png') no-repeat 0 0;\n}\n.accordion-expand {\n  background: url('images/accordion_arrows.png') no-repeat -16px 0;\n}\n.accordion {\n  background: #666;\n  border-color: #000;\n}\n.accordion .accordion-header {\n  background: #3d3d3d;\n  filter: none;\n}\n.accordion .accordion-header-selected {\n  background: #0052A3;\n}\n.accordion .accordion-header-selected .panel-title {\n  color: #fff;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/black/calendar.css",
    "content": ".calendar {\n  border-width: 1px;\n  border-style: solid;\n  padding: 1px;\n  overflow: hidden;\n}\n.calendar table {\n  border-collapse: separate;\n  font-size: 12px;\n  width: 100%;\n  height: 100%;\n}\n.calendar table td,\n.calendar table th {\n  font-size: 12px;\n}\n.calendar-noborder {\n  border: 0;\n}\n.calendar-header {\n  position: relative;\n  height: 22px;\n}\n.calendar-title {\n  text-align: center;\n  height: 22px;\n}\n.calendar-title span {\n  position: relative;\n  display: inline-block;\n  top: 2px;\n  padding: 0 3px;\n  height: 18px;\n  line-height: 18px;\n  font-size: 12px;\n  cursor: pointer;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.calendar-prevmonth,\n.calendar-nextmonth,\n.calendar-prevyear,\n.calendar-nextyear {\n  position: absolute;\n  top: 50%;\n  margin-top: -7px;\n  width: 14px;\n  height: 14px;\n  cursor: pointer;\n  font-size: 1px;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.calendar-prevmonth {\n  left: 20px;\n  background: url('images/calendar_arrows.png') no-repeat -18px -2px;\n}\n.calendar-nextmonth {\n  right: 20px;\n  background: url('images/calendar_arrows.png') no-repeat -34px -2px;\n}\n.calendar-prevyear {\n  left: 3px;\n  background: url('images/calendar_arrows.png') no-repeat -1px -2px;\n}\n.calendar-nextyear {\n  right: 3px;\n  background: url('images/calendar_arrows.png') no-repeat -49px -2px;\n}\n.calendar-body {\n  position: relative;\n}\n.calendar-body th,\n.calendar-body td {\n  text-align: center;\n}\n.calendar-day {\n  border: 0;\n  padding: 1px;\n  cursor: pointer;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.calendar-other-month {\n  opacity: 0.3;\n  filter: alpha(opacity=30);\n}\n.calendar-menu {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 180px;\n  height: 150px;\n  padding: 5px;\n  font-size: 12px;\n  display: none;\n  overflow: hidden;\n}\n.calendar-menu-year-inner {\n  text-align: center;\n  padding-bottom: 5px;\n}\n.calendar-menu-year {\n  width: 40px;\n  text-align: center;\n  border-width: 1px;\n  border-style: solid;\n  margin: 0;\n  padding: 2px;\n  font-weight: bold;\n  font-size: 12px;\n}\n.calendar-menu-prev,\n.calendar-menu-next {\n  display: inline-block;\n  width: 21px;\n  height: 21px;\n  vertical-align: top;\n  cursor: pointer;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.calendar-menu-prev {\n  margin-right: 10px;\n  background: url('images/calendar_arrows.png') no-repeat 2px 2px;\n}\n.calendar-menu-next {\n  margin-left: 10px;\n  background: url('images/calendar_arrows.png') no-repeat -45px 2px;\n}\n.calendar-menu-month {\n  text-align: center;\n  cursor: pointer;\n  font-weight: bold;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.calendar-body th,\n.calendar-menu-month {\n  color: #ffffff;\n}\n.calendar-day {\n  color: #fff;\n}\n.calendar-sunday {\n  color: #CC2222;\n}\n.calendar-saturday {\n  color: #00ee00;\n}\n.calendar-today {\n  color: #0000ff;\n}\n.calendar-menu-year {\n  border-color: #000;\n}\n.calendar {\n  border-color: #000;\n}\n.calendar-header {\n  background: #3d3d3d;\n}\n.calendar-body,\n.calendar-menu {\n  background: #666;\n}\n.calendar-body th {\n  background: #555;\n}\n.calendar-hover,\n.calendar-nav-hover,\n.calendar-menu-hover {\n  background-color: #777;\n  color: #fff;\n}\n.calendar-hover {\n  border: 1px solid #555;\n  padding: 0;\n}\n.calendar-selected {\n  background-color: #0052A3;\n  color: #fff;\n  border: 1px solid #00458a;\n  padding: 0;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/black/combo.css",
    "content": ".combo {\n  display: inline-block;\n  white-space: nowrap;\n  margin: 0;\n  padding: 0;\n  border-width: 1px;\n  border-style: solid;\n  overflow: hidden;\n  vertical-align: middle;\n}\n.combo .combo-text {\n  font-size: 12px;\n  border: 0px;\n  line-height: 20px;\n  height: 20px;\n  margin: 0;\n  padding: 0px 2px;\n  *margin-top: -1px;\n  *height: 18px;\n  *line-height: 18px;\n  _height: 18px;\n  _line-height: 18px;\n  vertical-align: baseline;\n}\n.combo-arrow {\n  width: 18px;\n  height: 20px;\n  overflow: hidden;\n  display: inline-block;\n  vertical-align: top;\n  cursor: pointer;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.combo-arrow-hover {\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n}\n.combo-panel {\n  overflow: auto;\n}\n.combo-arrow {\n  background: url('images/combo_arrow.png') no-repeat center center;\n}\n.combo,\n.combo-panel {\n  background-color: #666;\n}\n.combo {\n  border-color: #000;\n  background-color: #666;\n}\n.combo-arrow {\n  background-color: #3d3d3d;\n}\n.combo-arrow-hover {\n  background-color: #777;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/black/combobox.css",
    "content": ".combobox-item,\n.combobox-group {\n  font-size: 12px;\n  padding: 3px;\n  padding-right: 0px;\n}\n.combobox-item-disabled {\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n}\n.combobox-gitem {\n  padding-left: 10px;\n}\n.combobox-group {\n  font-weight: bold;\n}\n.combobox-item-hover {\n  background-color: #777;\n  color: #fff;\n}\n.combobox-item-selected {\n  background-color: #0052A3;\n  color: #fff;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/black/datagrid.css",
    "content": ".datagrid .panel-body {\n  overflow: hidden;\n  position: relative;\n}\n.datagrid-view {\n  position: relative;\n  overflow: hidden;\n}\n.datagrid-view1,\n.datagrid-view2 {\n  position: absolute;\n  overflow: hidden;\n  top: 0;\n}\n.datagrid-view1 {\n  left: 0;\n}\n.datagrid-view2 {\n  right: 0;\n}\n.datagrid-mask {\n  position: absolute;\n  left: 0;\n  top: 0;\n  width: 100%;\n  height: 100%;\n  opacity: 0.3;\n  filter: alpha(opacity=30);\n  display: none;\n}\n.datagrid-mask-msg {\n  position: absolute;\n  top: 50%;\n  margin-top: -20px;\n  padding: 12px 5px 10px 30px;\n  width: auto;\n  height: 16px;\n  border-width: 2px;\n  border-style: solid;\n  display: none;\n}\n.datagrid-sort-icon {\n  padding: 0;\n}\n.datagrid-toolbar {\n  height: auto;\n  padding: 1px 2px;\n  border-width: 0 0 1px 0;\n  border-style: solid;\n}\n.datagrid-btn-separator {\n  float: left;\n  height: 24px;\n  border-left: 1px solid #444;\n  border-right: 1px solid #777;\n  margin: 2px 1px;\n}\n.datagrid .datagrid-pager {\n  display: block;\n  margin: 0;\n  border-width: 1px 0 0 0;\n  border-style: solid;\n}\n.datagrid .datagrid-pager-top {\n  border-width: 0 0 1px 0;\n}\n.datagrid-header {\n  overflow: hidden;\n  cursor: default;\n  border-width: 0 0 1px 0;\n  border-style: solid;\n}\n.datagrid-header-inner {\n  float: left;\n  width: 10000px;\n}\n.datagrid-header-row,\n.datagrid-row {\n  height: 25px;\n}\n.datagrid-header td,\n.datagrid-body td,\n.datagrid-footer td {\n  border-width: 0 1px 1px 0;\n  border-style: dotted;\n  margin: 0;\n  padding: 0;\n}\n.datagrid-cell,\n.datagrid-cell-group,\n.datagrid-header-rownumber,\n.datagrid-cell-rownumber {\n  margin: 0;\n  padding: 0 4px;\n  white-space: nowrap;\n  word-wrap: normal;\n  overflow: hidden;\n  height: 18px;\n  line-height: 18px;\n  font-size: 12px;\n}\n.datagrid-header .datagrid-cell {\n  height: auto;\n}\n.datagrid-header .datagrid-cell span {\n  font-size: 12px;\n}\n.datagrid-cell-group {\n  text-align: center;\n}\n.datagrid-header-rownumber,\n.datagrid-cell-rownumber {\n  width: 25px;\n  text-align: center;\n  margin: 0;\n  padding: 0;\n}\n.datagrid-body {\n  margin: 0;\n  padding: 0;\n  overflow: auto;\n  zoom: 1;\n}\n.datagrid-view1 .datagrid-body-inner {\n  padding-bottom: 20px;\n}\n.datagrid-view1 .datagrid-body {\n  overflow: hidden;\n}\n.datagrid-footer {\n  overflow: hidden;\n}\n.datagrid-footer-inner {\n  border-width: 1px 0 0 0;\n  border-style: solid;\n  width: 10000px;\n  float: left;\n}\n.datagrid-row-editing .datagrid-cell {\n  height: auto;\n}\n.datagrid-header-check,\n.datagrid-cell-check {\n  padding: 0;\n  width: 27px;\n  height: 18px;\n  font-size: 1px;\n  text-align: center;\n  overflow: hidden;\n}\n.datagrid-header-check input,\n.datagrid-cell-check input {\n  margin: 0;\n  padding: 0;\n  width: 15px;\n  height: 18px;\n}\n.datagrid-resize-proxy {\n  position: absolute;\n  width: 1px;\n  height: 10000px;\n  top: 0;\n  cursor: e-resize;\n  display: none;\n}\n.datagrid-body .datagrid-editable {\n  margin: 0;\n  padding: 0;\n}\n.datagrid-body .datagrid-editable table {\n  width: 100%;\n  height: 100%;\n}\n.datagrid-body .datagrid-editable td {\n  border: 0;\n  margin: 0;\n  padding: 0;\n}\n.datagrid-body .datagrid-editable .datagrid-editable-input {\n  margin: 0;\n  padding: 2px;\n  border-width: 1px;\n  border-style: solid;\n}\n.datagrid-sort-desc .datagrid-sort-icon {\n  padding: 0 13px 0 0;\n  background: url('images/datagrid_icons.png') no-repeat -16px center;\n}\n.datagrid-sort-asc .datagrid-sort-icon {\n  padding: 0 13px 0 0;\n  background: url('images/datagrid_icons.png') no-repeat 0px center;\n}\n.datagrid-row-collapse {\n  background: url('images/datagrid_icons.png') no-repeat -48px center;\n}\n.datagrid-row-expand {\n  background: url('images/datagrid_icons.png') no-repeat -32px center;\n}\n.datagrid-mask-msg {\n  background: #666 url('images/loading.gif') no-repeat scroll 5px center;\n}\n.datagrid-header,\n.datagrid-td-rownumber {\n  background-color: #444;\n  background: -webkit-linear-gradient(top,#4c4c4c 0,#3f3f3f 100%);\n  background: -moz-linear-gradient(top,#4c4c4c 0,#3f3f3f 100%);\n  background: -o-linear-gradient(top,#4c4c4c 0,#3f3f3f 100%);\n  background: linear-gradient(to bottom,#4c4c4c 0,#3f3f3f 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#4c4c4c,endColorstr=#3f3f3f,GradientType=0);\n}\n.datagrid-cell-rownumber {\n  color: #fff;\n}\n.datagrid-resize-proxy {\n  background: #cccccc;\n}\n.datagrid-mask {\n  background: #000;\n}\n.datagrid-mask-msg {\n  border-color: #000;\n}\n.datagrid-toolbar,\n.datagrid-pager {\n  background: #555;\n}\n.datagrid-header,\n.datagrid-toolbar,\n.datagrid-pager,\n.datagrid-footer-inner {\n  border-color: #222;\n}\n.datagrid-header td,\n.datagrid-body td,\n.datagrid-footer td {\n  border-color: #222;\n}\n.datagrid-htable,\n.datagrid-btable,\n.datagrid-ftable {\n  color: #fff;\n  border-collapse: separate;\n}\n.datagrid-row-alt {\n  background: #555;\n}\n.datagrid-row-over,\n.datagrid-header td.datagrid-header-over {\n  background: #777;\n  color: #fff;\n  cursor: default;\n}\n.datagrid-row-selected {\n  background: #0052A3;\n  color: #fff;\n}\n.datagrid-body .datagrid-editable .datagrid-editable-input {\n  border-color: #000;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/black/datebox.css",
    "content": ".datebox-calendar-inner {\n  height: 180px;\n}\n.datebox-button {\n  height: 18px;\n  padding: 2px 5px;\n  text-align: center;\n}\n.datebox-button a {\n  font-size: 12px;\n  font-weight: bold;\n  text-decoration: none;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.datebox-button a:hover {\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n}\n.datebox-current,\n.datebox-close {\n  float: left;\n}\n.datebox-close {\n  float: right;\n}\n.datebox .combo-arrow {\n  background-image: url('images/datebox_arrow.png');\n  background-position: center center;\n}\n.datebox-button {\n  background-color: #555;\n}\n.datebox-button a {\n  color: #fff;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/black/dialog.css",
    "content": ".dialog-content {\n  overflow: auto;\n}\n.dialog-toolbar {\n  padding: 2px 5px;\n}\n.dialog-tool-separator {\n  float: left;\n  height: 24px;\n  border-left: 1px solid #444;\n  border-right: 1px solid #777;\n  margin: 2px 1px;\n}\n.dialog-button {\n  padding: 5px;\n  text-align: right;\n}\n.dialog-button .l-btn {\n  margin-left: 5px;\n}\n.dialog-toolbar,\n.dialog-button {\n  background: #555;\n}\n.dialog-toolbar {\n  border-bottom: 1px solid #222;\n}\n.dialog-button {\n  border-top: 1px solid #222;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/black/easyui.css",
    "content": ".panel {\n  overflow: hidden;\n  text-align: left;\n  margin: 0;\n  border: 0;\n  -moz-border-radius: 0 0 0 0;\n  -webkit-border-radius: 0 0 0 0;\n  border-radius: 0 0 0 0;\n}\n.panel-header,\n.panel-body {\n  border-width: 1px;\n  border-style: solid;\n}\n.panel-header {\n  padding: 5px;\n  position: relative;\n}\n.panel-title {\n  background: url('images/blank.gif') no-repeat;\n}\n.panel-header-noborder {\n  border-width: 0 0 1px 0;\n}\n.panel-body {\n  overflow: auto;\n  border-top-width: 0;\n  padding: 0;\n}\n.panel-body-noheader {\n  border-top-width: 1px;\n}\n.panel-body-noborder {\n  border-width: 0px;\n}\n.panel-with-icon {\n  padding-left: 18px;\n}\n.panel-icon,\n.panel-tool {\n  position: absolute;\n  top: 50%;\n  margin-top: -8px;\n  height: 16px;\n  overflow: hidden;\n}\n.panel-icon {\n  left: 5px;\n  width: 16px;\n}\n.panel-tool {\n  right: 5px;\n  width: auto;\n}\n.panel-tool a {\n  display: inline-block;\n  width: 16px;\n  height: 16px;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n  margin: 0 0 0 2px;\n  vertical-align: top;\n}\n.panel-tool a:hover {\n  opacity: 1;\n  filter: alpha(opacity=100);\n  background-color: #777;\n  -moz-border-radius: 3px 3px 3px 3px;\n  -webkit-border-radius: 3px 3px 3px 3px;\n  border-radius: 3px 3px 3px 3px;\n}\n.panel-loading {\n  padding: 11px 0px 10px 30px;\n}\n.panel-noscroll {\n  overflow: hidden;\n}\n.panel-fit,\n.panel-fit body {\n  height: 100%;\n  margin: 0;\n  padding: 0;\n  border: 0;\n  overflow: hidden;\n}\n.panel-loading {\n  background: url('images/loading.gif') no-repeat 10px 10px;\n}\n.panel-tool-close {\n  background: url('images/panel_tools.png') no-repeat -16px 0px;\n}\n.panel-tool-min {\n  background: url('images/panel_tools.png') no-repeat 0px 0px;\n}\n.panel-tool-max {\n  background: url('images/panel_tools.png') no-repeat 0px -16px;\n}\n.panel-tool-restore {\n  background: url('images/panel_tools.png') no-repeat -16px -16px;\n}\n.panel-tool-collapse {\n  background: url('images/panel_tools.png') no-repeat -32px 0;\n}\n.panel-tool-expand {\n  background: url('images/panel_tools.png') no-repeat -32px -16px;\n}\n.panel-header,\n.panel-body {\n  border-color: #000;\n}\n.panel-header {\n  background-color: #3d3d3d;\n  background: -webkit-linear-gradient(top,#454545 0,#383838 100%);\n  background: -moz-linear-gradient(top,#454545 0,#383838 100%);\n  background: -o-linear-gradient(top,#454545 0,#383838 100%);\n  background: linear-gradient(to bottom,#454545 0,#383838 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#454545,endColorstr=#383838,GradientType=0);\n}\n.panel-body {\n  background-color: #666;\n  color: #fff;\n  font-size: 12px;\n}\n.panel-title {\n  font-size: 12px;\n  font-weight: bold;\n  color: #fff;\n  height: 16px;\n  line-height: 16px;\n}\n.accordion {\n  overflow: hidden;\n  border-width: 1px;\n  border-style: solid;\n}\n.accordion .accordion-header {\n  border-width: 0 0 1px;\n  cursor: pointer;\n}\n.accordion .accordion-body {\n  border-width: 0 0 1px;\n}\n.accordion-noborder {\n  border-width: 0;\n}\n.accordion-noborder .accordion-header {\n  border-width: 0 0 1px;\n}\n.accordion-noborder .accordion-body {\n  border-width: 0 0 1px;\n}\n.accordion-collapse {\n  background: url('images/accordion_arrows.png') no-repeat 0 0;\n}\n.accordion-expand {\n  background: url('images/accordion_arrows.png') no-repeat -16px 0;\n}\n.accordion {\n  background: #666;\n  border-color: #000;\n}\n.accordion .accordion-header {\n  background: #3d3d3d;\n  filter: none;\n}\n.accordion .accordion-header-selected {\n  background: #0052A3;\n}\n.accordion .accordion-header-selected .panel-title {\n  color: #fff;\n}\n.window {\n  overflow: hidden;\n  padding: 5px;\n  border-width: 1px;\n  border-style: solid;\n}\n.window .window-header {\n  background: transparent;\n  padding: 0px 0px 6px 0px;\n}\n.window .window-body {\n  border-width: 1px;\n  border-style: solid;\n  border-top-width: 0px;\n}\n.window .window-body-noheader {\n  border-top-width: 1px;\n}\n.window .window-header .panel-icon,\n.window .window-header .panel-tool {\n  top: 50%;\n  margin-top: -11px;\n}\n.window .window-header .panel-icon {\n  left: 1px;\n}\n.window .window-header .panel-tool {\n  right: 1px;\n}\n.window .window-header .panel-with-icon {\n  padding-left: 18px;\n}\n.window-proxy {\n  position: absolute;\n  overflow: hidden;\n}\n.window-proxy-mask {\n  position: absolute;\n  filter: alpha(opacity=5);\n  opacity: 0.05;\n}\n.window-mask {\n  position: absolute;\n  left: 0;\n  top: 0;\n  width: 100%;\n  height: 100%;\n  filter: alpha(opacity=40);\n  opacity: 0.40;\n  font-size: 1px;\n  *zoom: 1;\n  overflow: hidden;\n}\n.window,\n.window-shadow {\n  position: absolute;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.window-shadow {\n  background: #777;\n  -moz-box-shadow: 2px 2px 3px #787878;\n  -webkit-box-shadow: 2px 2px 3px #787878;\n  box-shadow: 2px 2px 3px #787878;\n  filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2);\n}\n.window,\n.window .window-body {\n  border-color: #000;\n}\n.window {\n  background-color: #3d3d3d;\n  background: -webkit-linear-gradient(top,#454545 0,#383838 20%);\n  background: -moz-linear-gradient(top,#454545 0,#383838 20%);\n  background: -o-linear-gradient(top,#454545 0,#383838 20%);\n  background: linear-gradient(to bottom,#454545 0,#383838 20%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#454545,endColorstr=#383838,GradientType=0);\n}\n.window-proxy {\n  border: 1px dashed #000;\n}\n.window-proxy-mask,\n.window-mask {\n  background: #000;\n}\n.dialog-content {\n  overflow: auto;\n}\n.dialog-toolbar {\n  padding: 2px 5px;\n}\n.dialog-tool-separator {\n  float: left;\n  height: 24px;\n  border-left: 1px solid #444;\n  border-right: 1px solid #777;\n  margin: 2px 1px;\n}\n.dialog-button {\n  padding: 5px;\n  text-align: right;\n}\n.dialog-button .l-btn {\n  margin-left: 5px;\n}\n.dialog-toolbar,\n.dialog-button {\n  background: #555;\n}\n.dialog-toolbar {\n  border-bottom: 1px solid #222;\n}\n.dialog-button {\n  border-top: 1px solid #222;\n}\n.combo {\n  display: inline-block;\n  white-space: nowrap;\n  margin: 0;\n  padding: 0;\n  border-width: 1px;\n  border-style: solid;\n  overflow: hidden;\n  vertical-align: middle;\n}\n.combo .combo-text {\n  font-size: 12px;\n  border: 0px;\n  line-height: 20px;\n  height: 20px;\n  margin: 0;\n  padding: 0px 2px;\n  *margin-top: -1px;\n  *height: 18px;\n  *line-height: 18px;\n  _height: 18px;\n  _line-height: 18px;\n  vertical-align: baseline;\n}\n.combo-arrow {\n  width: 18px;\n  height: 20px;\n  overflow: hidden;\n  display: inline-block;\n  vertical-align: top;\n  cursor: pointer;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.combo-arrow-hover {\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n}\n.combo-panel {\n  overflow: auto;\n}\n.combo-arrow {\n  background: url('images/combo_arrow.png') no-repeat center center;\n}\n.combo,\n.combo-panel {\n  background-color: #666;\n}\n.combo {\n  border-color: #000;\n  background-color: #666;\n}\n.combo-arrow {\n  background-color: #3d3d3d;\n}\n.combo-arrow-hover {\n  background-color: #777;\n}\n.combobox-item,\n.combobox-group {\n  font-size: 12px;\n  padding: 3px;\n  padding-right: 0px;\n}\n.combobox-item-disabled {\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n}\n.combobox-gitem {\n  padding-left: 10px;\n}\n.combobox-group {\n  font-weight: bold;\n}\n.combobox-item-hover {\n  background-color: #777;\n  color: #fff;\n}\n.combobox-item-selected {\n  background-color: #0052A3;\n  color: #fff;\n}\n.layout {\n  position: relative;\n  overflow: hidden;\n  margin: 0;\n  padding: 0;\n  z-index: 0;\n}\n.layout-panel {\n  position: absolute;\n  overflow: hidden;\n}\n.layout-panel-east,\n.layout-panel-west {\n  z-index: 2;\n}\n.layout-panel-north,\n.layout-panel-south {\n  z-index: 3;\n}\n.layout-expand {\n  position: absolute;\n  padding: 0px;\n  font-size: 1px;\n  cursor: pointer;\n  z-index: 1;\n}\n.layout-expand .panel-header,\n.layout-expand .panel-body {\n  background: transparent;\n  filter: none;\n  overflow: hidden;\n}\n.layout-expand .panel-header {\n  border-bottom-width: 0px;\n}\n.layout-split-proxy-h,\n.layout-split-proxy-v {\n  position: absolute;\n  font-size: 1px;\n  display: none;\n  z-index: 5;\n}\n.layout-split-proxy-h {\n  width: 5px;\n  cursor: e-resize;\n}\n.layout-split-proxy-v {\n  height: 5px;\n  cursor: n-resize;\n}\n.layout-mask {\n  position: absolute;\n  background: #fafafa;\n  filter: alpha(opacity=10);\n  opacity: 0.10;\n  z-index: 4;\n}\n.layout-button-up {\n  background: url('images/layout_arrows.png') no-repeat -16px -16px;\n}\n.layout-button-down {\n  background: url('images/layout_arrows.png') no-repeat -16px 0;\n}\n.layout-button-left {\n  background: url('images/layout_arrows.png') no-repeat 0 0;\n}\n.layout-button-right {\n  background: url('images/layout_arrows.png') no-repeat 0 -16px;\n}\n.layout-split-proxy-h,\n.layout-split-proxy-v {\n  background-color: #cccccc;\n}\n.layout-split-north {\n  border-bottom: 5px solid #444;\n}\n.layout-split-south {\n  border-top: 5px solid #444;\n}\n.layout-split-east {\n  border-left: 5px solid #444;\n}\n.layout-split-west {\n  border-right: 5px solid #444;\n}\n.layout-expand {\n  background-color: #3d3d3d;\n}\n.layout-expand-over {\n  background-color: #3d3d3d;\n}\n.tabs-container {\n  overflow: hidden;\n}\n.tabs-header {\n  border-width: 1px;\n  border-style: solid;\n  border-bottom-width: 0;\n  position: relative;\n  padding: 0;\n  padding-top: 2px;\n  overflow: hidden;\n}\n.tabs-header-plain {\n  border: 0;\n  background: transparent;\n}\n.tabs-scroller-left,\n.tabs-scroller-right {\n  position: absolute;\n  top: auto;\n  bottom: 0;\n  width: 18px;\n  font-size: 1px;\n  display: none;\n  cursor: pointer;\n  border-width: 1px;\n  border-style: solid;\n}\n.tabs-scroller-left {\n  left: 0;\n}\n.tabs-scroller-right {\n  right: 0;\n}\n.tabs-tool {\n  position: absolute;\n  bottom: 0;\n  padding: 1px;\n  overflow: hidden;\n  border-width: 1px;\n  border-style: solid;\n}\n.tabs-header-plain .tabs-tool {\n  padding: 0 1px;\n}\n.tabs-wrap {\n  position: relative;\n  left: 0;\n  overflow: hidden;\n  width: 100%;\n  margin: 0;\n  padding: 0;\n}\n.tabs-scrolling {\n  margin-left: 18px;\n  margin-right: 18px;\n}\n.tabs-disabled {\n  opacity: 0.3;\n  filter: alpha(opacity=30);\n}\n.tabs {\n  list-style-type: none;\n  height: 26px;\n  margin: 0px;\n  padding: 0px;\n  padding-left: 4px;\n  width: 5000px;\n  border-style: solid;\n  border-width: 0 0 1px 0;\n}\n.tabs li {\n  float: left;\n  display: inline-block;\n  margin: 0 4px -1px 0;\n  padding: 0;\n  position: relative;\n  border: 0;\n}\n.tabs li a.tabs-inner {\n  display: inline-block;\n  text-decoration: none;\n  margin: 0;\n  padding: 0 10px;\n  height: 25px;\n  line-height: 25px;\n  text-align: center;\n  white-space: nowrap;\n  border-width: 1px;\n  border-style: solid;\n  -moz-border-radius: 5px 5px 0 0;\n  -webkit-border-radius: 5px 5px 0 0;\n  border-radius: 5px 5px 0 0;\n}\n.tabs li.tabs-selected a.tabs-inner {\n  font-weight: bold;\n  outline: none;\n}\n.tabs li.tabs-selected a:hover.tabs-inner {\n  cursor: default;\n  pointer: default;\n}\n.tabs li a.tabs-close,\n.tabs-p-tool {\n  position: absolute;\n  font-size: 1px;\n  display: block;\n  height: 12px;\n  padding: 0;\n  top: 50%;\n  margin-top: -6px;\n  overflow: hidden;\n}\n.tabs li a.tabs-close {\n  width: 12px;\n  right: 5px;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.tabs-p-tool {\n  right: 16px;\n}\n.tabs-p-tool a {\n  display: inline-block;\n  font-size: 1px;\n  width: 12px;\n  height: 12px;\n  margin: 0;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.tabs li a:hover.tabs-close,\n.tabs-p-tool a:hover {\n  opacity: 1;\n  filter: alpha(opacity=100);\n  cursor: hand;\n  cursor: pointer;\n}\n.tabs-with-icon {\n  padding-left: 18px;\n}\n.tabs-icon {\n  position: absolute;\n  width: 16px;\n  height: 16px;\n  left: 10px;\n  top: 50%;\n  margin-top: -8px;\n}\n.tabs-title {\n  font-size: 12px;\n}\n.tabs-closable {\n  padding-right: 8px;\n}\n.tabs-panels {\n  margin: 0px;\n  padding: 0px;\n  border-width: 1px;\n  border-style: solid;\n  border-top-width: 0;\n  overflow: hidden;\n}\n.tabs-header-bottom {\n  border-width: 0 1px 1px 1px;\n  padding: 0 0 2px 0;\n}\n.tabs-header-bottom .tabs {\n  border-width: 1px 0 0 0;\n}\n.tabs-header-bottom .tabs li {\n  margin: -1px 4px 0 0;\n}\n.tabs-header-bottom .tabs li a.tabs-inner {\n  -moz-border-radius: 0 0 5px 5px;\n  -webkit-border-radius: 0 0 5px 5px;\n  border-radius: 0 0 5px 5px;\n}\n.tabs-header-bottom .tabs-tool {\n  top: 0;\n}\n.tabs-header-bottom .tabs-scroller-left,\n.tabs-header-bottom .tabs-scroller-right {\n  top: 0;\n  bottom: auto;\n}\n.tabs-panels-top {\n  border-width: 1px 1px 0 1px;\n}\n.tabs-header-left {\n  float: left;\n  border-width: 1px 0 1px 1px;\n  padding: 0;\n}\n.tabs-header-right {\n  float: right;\n  border-width: 1px 1px 1px 0;\n  padding: 0;\n}\n.tabs-header-left .tabs-wrap,\n.tabs-header-right .tabs-wrap {\n  height: 100%;\n}\n.tabs-header-left .tabs {\n  height: 100%;\n  padding: 4px 0 0 4px;\n  border-width: 0 1px 0 0;\n}\n.tabs-header-right .tabs {\n  height: 100%;\n  padding: 4px 4px 0 0;\n  border-width: 0 0 0 1px;\n}\n.tabs-header-left .tabs li,\n.tabs-header-right .tabs li {\n  display: block;\n  width: 100%;\n  position: relative;\n}\n.tabs-header-left .tabs li {\n  left: auto;\n  right: 0;\n  margin: 0 -1px 4px 0;\n  float: right;\n}\n.tabs-header-right .tabs li {\n  left: 0;\n  right: auto;\n  margin: 0 0 4px -1px;\n  float: left;\n}\n.tabs-header-left .tabs li a.tabs-inner {\n  display: block;\n  text-align: left;\n  -moz-border-radius: 5px 0 0 5px;\n  -webkit-border-radius: 5px 0 0 5px;\n  border-radius: 5px 0 0 5px;\n}\n.tabs-header-right .tabs li a.tabs-inner {\n  display: block;\n  text-align: left;\n  -moz-border-radius: 0 5px 5px 0;\n  -webkit-border-radius: 0 5px 5px 0;\n  border-radius: 0 5px 5px 0;\n}\n.tabs-panels-right {\n  float: right;\n  border-width: 1px 1px 1px 0;\n}\n.tabs-panels-left {\n  float: left;\n  border-width: 1px 0 1px 1px;\n}\n.tabs-header-noborder,\n.tabs-panels-noborder {\n  border: 0px;\n}\n.tabs-header-plain {\n  border: 0px;\n  background: transparent;\n}\n.tabs-scroller-left {\n  background: #3d3d3d url('images/tabs_icons.png') no-repeat 1px center;\n}\n.tabs-scroller-right {\n  background: #3d3d3d url('images/tabs_icons.png') no-repeat -15px center;\n}\n.tabs li a.tabs-close {\n  background: url('images/tabs_icons.png') no-repeat -34px center;\n}\n.tabs li a.tabs-inner:hover {\n  background: #777;\n  color: #fff;\n  filter: none;\n}\n.tabs li.tabs-selected a.tabs-inner {\n  background-color: #666;\n  color: #fff;\n  background: -webkit-linear-gradient(top,#454545 0,#666 100%);\n  background: -moz-linear-gradient(top,#454545 0,#666 100%);\n  background: -o-linear-gradient(top,#454545 0,#666 100%);\n  background: linear-gradient(to bottom,#454545 0,#666 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#454545,endColorstr=#666,GradientType=0);\n}\n.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner {\n  background: -webkit-linear-gradient(top,#666 0,#454545 100%);\n  background: -moz-linear-gradient(top,#666 0,#454545 100%);\n  background: -o-linear-gradient(top,#666 0,#454545 100%);\n  background: linear-gradient(to bottom,#666 0,#454545 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#666,endColorstr=#454545,GradientType=0);\n}\n.tabs-header-left .tabs li.tabs-selected a.tabs-inner {\n  background: -webkit-linear-gradient(left,#454545 0,#666 100%);\n  background: -moz-linear-gradient(left,#454545 0,#666 100%);\n  background: -o-linear-gradient(left,#454545 0,#666 100%);\n  background: linear-gradient(to right,#454545 0,#666 100%);\n  background-repeat: repeat-y;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#454545,endColorstr=#666,GradientType=1);\n}\n.tabs-header-right .tabs li.tabs-selected a.tabs-inner {\n  background: -webkit-linear-gradient(left,#666 0,#454545 100%);\n  background: -moz-linear-gradient(left,#666 0,#454545 100%);\n  background: -o-linear-gradient(left,#666 0,#454545 100%);\n  background: linear-gradient(to right,#666 0,#454545 100%);\n  background-repeat: repeat-y;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#666,endColorstr=#454545,GradientType=1);\n}\n.tabs li a.tabs-inner {\n  color: #fff;\n  background-color: #3d3d3d;\n  background: -webkit-linear-gradient(top,#454545 0,#383838 100%);\n  background: -moz-linear-gradient(top,#454545 0,#383838 100%);\n  background: -o-linear-gradient(top,#454545 0,#383838 100%);\n  background: linear-gradient(to bottom,#454545 0,#383838 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#454545,endColorstr=#383838,GradientType=0);\n}\n.tabs-header,\n.tabs-tool {\n  background-color: #3d3d3d;\n}\n.tabs-header-plain {\n  background: transparent;\n}\n.tabs-header,\n.tabs-scroller-left,\n.tabs-scroller-right,\n.tabs-tool,\n.tabs,\n.tabs-panels,\n.tabs li a.tabs-inner,\n.tabs li.tabs-selected a.tabs-inner,\n.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner,\n.tabs-header-left .tabs li.tabs-selected a.tabs-inner,\n.tabs-header-right .tabs li.tabs-selected a.tabs-inner {\n  border-color: #000;\n}\n.tabs-p-tool a:hover,\n.tabs li a:hover.tabs-close,\n.tabs-scroller-over {\n  background-color: #777;\n}\n.tabs li.tabs-selected a.tabs-inner {\n  border-bottom: 1px solid #666;\n}\n.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner {\n  border-top: 1px solid #666;\n}\n.tabs-header-left .tabs li.tabs-selected a.tabs-inner {\n  border-right: 1px solid #666;\n}\n.tabs-header-right .tabs li.tabs-selected a.tabs-inner {\n  border-left: 1px solid #666;\n}\na.l-btn {\n  background-position: right 0;\n  text-decoration: none;\n  display: inline-block;\n  zoom: 1;\n  height: 24px;\n  padding-right: 18px;\n  cursor: pointer;\n  outline: none;\n}\na.l-btn-plain {\n  border: 0;\n  padding: 1px 6px 1px 1px;\n}\na.l-btn-disabled {\n  color: #ccc;\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n  cursor: default;\n}\na.l-btn span.l-btn-left {\n  display: inline-block;\n  background-position: 0 -48px;\n  padding: 0 0 0 18px;\n  line-height: 24px;\n  height: 24px;\n}\na.l-btn-plain span.l-btn-left {\n  padding-left: 5px;\n}\na.l-btn span span.l-btn-text {\n  position: relative;\n  display: inline-block;\n  vertical-align: top;\n  top: 4px;\n  width: auto;\n  height: 16px;\n  line-height: 16px;\n  font-size: 12px;\n  padding: 0;\n  margin: 0;\n}\na.l-btn span span.l-btn-icon-left {\n  padding: 0 0 0 20px;\n  background-position: left center;\n}\na.l-btn span span.l-btn-icon-right {\n  padding: 0 20px 0 0;\n  background-position: right center;\n}\na.l-btn span span span.l-btn-empty {\n  display: inline-block;\n  margin: 0;\n  padding: 0;\n  width: 16px;\n}\na:hover.l-btn {\n  background-position: right -24px;\n  outline: none;\n  text-decoration: none;\n}\na:hover.l-btn span.l-btn-left {\n  background-position: 0 bottom;\n}\na:hover.l-btn-plain {\n  padding: 0 5px 0 0;\n}\na:hover.l-btn-disabled {\n  background-position: right 0;\n}\na:hover.l-btn-disabled span.l-btn-left {\n  background-position: 0 -48px;\n}\na.l-btn .l-btn-focus {\n  outline: #0000FF dotted thin;\n}\na.l-btn {\n  color: #fff;\n  background-image: url('images/linkbutton_bg.png');\n  background-repeat: no-repeat;\n  background: #777;\n  background-repeat: repeat-x;\n  border: 1px solid #555;\n  background: -webkit-linear-gradient(top,#919191 0,#6a6a6a 100%);\n  background: -moz-linear-gradient(top,#919191 0,#6a6a6a 100%);\n  background: -o-linear-gradient(top,#919191 0,#6a6a6a 100%);\n  background: linear-gradient(to bottom,#919191 0,#6a6a6a 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#919191,endColorstr=#6a6a6a,GradientType=0);\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\na.l-btn span.l-btn-left {\n  background-image: url('images/linkbutton_bg.png');\n  background-repeat: no-repeat;\n  background-image: none;\n}\na:hover.l-btn {\n  background: #777;\n  color: #fff;\n  border: 1px solid #555;\n  filter: none;\n}\na.l-btn-plain,\na.l-btn-plain span.l-btn-left {\n  background: transparent;\n  border: 0;\n  filter: none;\n}\na:hover.l-btn-plain {\n  background: #777;\n  color: #fff;\n  border: 1px solid #555;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\na.l-btn-disabled,\na:hover.l-btn-disabled {\n  color: #fff;\n  filter: alpha(opacity=50);\n  background: #777;\n  color: #fff;\n  background: -webkit-linear-gradient(top,#919191 0,#6a6a6a 100%);\n  background: -moz-linear-gradient(top,#919191 0,#6a6a6a 100%);\n  background: -o-linear-gradient(top,#919191 0,#6a6a6a 100%);\n  background: linear-gradient(to bottom,#919191 0,#6a6a6a 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#919191,endColorstr=#6a6a6a,GradientType=0);\n  filter: alpha(opacity=50) progid:DXImageTransform.Microsoft.gradient(startColorstr=#919191,endColorstr=#6a6a6a,GradientType=0);\n}\na.l-btn-plain-disabled,\na:hover.l-btn-plain-disabled {\n  background: transparent;\n  filter: alpha(opacity=50);\n}\na.l-btn-selected,\na:hover.l-btn-selected {\n  background-position: right -24px;\n  background: #000;\n  filter: none;\n}\na.l-btn-selected span.l-btn-left,\na:hover.l-btn-selected span.l-btn-left {\n  background-position: 0 bottom;\n  background-image: none;\n}\na.l-btn-plain-selected,\na:hover.l-btn-plain-selected {\n  background: #000;\n}\n.datagrid .panel-body {\n  overflow: hidden;\n  position: relative;\n}\n.datagrid-view {\n  position: relative;\n  overflow: hidden;\n}\n.datagrid-view1,\n.datagrid-view2 {\n  position: absolute;\n  overflow: hidden;\n  top: 0;\n}\n.datagrid-view1 {\n  left: 0;\n}\n.datagrid-view2 {\n  right: 0;\n}\n.datagrid-mask {\n  position: absolute;\n  left: 0;\n  top: 0;\n  width: 100%;\n  height: 100%;\n  opacity: 0.3;\n  filter: alpha(opacity=30);\n  display: none;\n}\n.datagrid-mask-msg {\n  position: absolute;\n  top: 50%;\n  margin-top: -20px;\n  padding: 12px 5px 10px 30px;\n  width: auto;\n  height: 16px;\n  border-width: 2px;\n  border-style: solid;\n  display: none;\n}\n.datagrid-sort-icon {\n  padding: 0;\n}\n.datagrid-toolbar {\n  height: auto;\n  padding: 1px 2px;\n  border-width: 0 0 1px 0;\n  border-style: solid;\n}\n.datagrid-btn-separator {\n  float: left;\n  height: 24px;\n  border-left: 1px solid #444;\n  border-right: 1px solid #777;\n  margin: 2px 1px;\n}\n.datagrid .datagrid-pager {\n  display: block;\n  margin: 0;\n  border-width: 1px 0 0 0;\n  border-style: solid;\n}\n.datagrid .datagrid-pager-top {\n  border-width: 0 0 1px 0;\n}\n.datagrid-header {\n  overflow: hidden;\n  cursor: default;\n  border-width: 0 0 1px 0;\n  border-style: solid;\n}\n.datagrid-header-inner {\n  float: left;\n  width: 10000px;\n}\n.datagrid-header-row,\n.datagrid-row {\n  height: 25px;\n}\n.datagrid-header td,\n.datagrid-body td,\n.datagrid-footer td {\n  border-width: 0 1px 1px 0;\n  border-style: dotted;\n  margin: 0;\n  padding: 0;\n}\n.datagrid-cell,\n.datagrid-cell-group,\n.datagrid-header-rownumber,\n.datagrid-cell-rownumber {\n  margin: 0;\n  padding: 0 4px;\n  white-space: nowrap;\n  word-wrap: normal;\n  overflow: hidden;\n  height: 18px;\n  line-height: 18px;\n  font-size: 12px;\n}\n.datagrid-header .datagrid-cell {\n  height: auto;\n}\n.datagrid-header .datagrid-cell span {\n  font-size: 12px;\n}\n.datagrid-cell-group {\n  text-align: center;\n}\n.datagrid-header-rownumber,\n.datagrid-cell-rownumber {\n  width: 25px;\n  text-align: center;\n  margin: 0;\n  padding: 0;\n}\n.datagrid-body {\n  margin: 0;\n  padding: 0;\n  overflow: auto;\n  zoom: 1;\n}\n.datagrid-view1 .datagrid-body-inner {\n  padding-bottom: 20px;\n}\n.datagrid-view1 .datagrid-body {\n  overflow: hidden;\n}\n.datagrid-footer {\n  overflow: hidden;\n}\n.datagrid-footer-inner {\n  border-width: 1px 0 0 0;\n  border-style: solid;\n  width: 10000px;\n  float: left;\n}\n.datagrid-row-editing .datagrid-cell {\n  height: auto;\n}\n.datagrid-header-check,\n.datagrid-cell-check {\n  padding: 0;\n  width: 27px;\n  height: 18px;\n  font-size: 1px;\n  text-align: center;\n  overflow: hidden;\n}\n.datagrid-header-check input,\n.datagrid-cell-check input {\n  margin: 0;\n  padding: 0;\n  width: 15px;\n  height: 18px;\n}\n.datagrid-resize-proxy {\n  position: absolute;\n  width: 1px;\n  height: 10000px;\n  top: 0;\n  cursor: e-resize;\n  display: none;\n}\n.datagrid-body .datagrid-editable {\n  margin: 0;\n  padding: 0;\n}\n.datagrid-body .datagrid-editable table {\n  width: 100%;\n  height: 100%;\n}\n.datagrid-body .datagrid-editable td {\n  border: 0;\n  margin: 0;\n  padding: 0;\n}\n.datagrid-body .datagrid-editable .datagrid-editable-input {\n  margin: 0;\n  padding: 2px;\n  border-width: 1px;\n  border-style: solid;\n}\n.datagrid-sort-desc .datagrid-sort-icon {\n  padding: 0 13px 0 0;\n  background: url('images/datagrid_icons.png') no-repeat -16px center;\n}\n.datagrid-sort-asc .datagrid-sort-icon {\n  padding: 0 13px 0 0;\n  background: url('images/datagrid_icons.png') no-repeat 0px center;\n}\n.datagrid-row-collapse {\n  background: url('images/datagrid_icons.png') no-repeat -48px center;\n}\n.datagrid-row-expand {\n  background: url('images/datagrid_icons.png') no-repeat -32px center;\n}\n.datagrid-mask-msg {\n  background: #666 url('images/loading.gif') no-repeat scroll 5px center;\n}\n.datagrid-header,\n.datagrid-td-rownumber {\n  background-color: #444;\n  background: -webkit-linear-gradient(top,#4c4c4c 0,#3f3f3f 100%);\n  background: -moz-linear-gradient(top,#4c4c4c 0,#3f3f3f 100%);\n  background: -o-linear-gradient(top,#4c4c4c 0,#3f3f3f 100%);\n  background: linear-gradient(to bottom,#4c4c4c 0,#3f3f3f 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#4c4c4c,endColorstr=#3f3f3f,GradientType=0);\n}\n.datagrid-cell-rownumber {\n  color: #fff;\n}\n.datagrid-resize-proxy {\n  background: #cccccc;\n}\n.datagrid-mask {\n  background: #000;\n}\n.datagrid-mask-msg {\n  border-color: #000;\n}\n.datagrid-toolbar,\n.datagrid-pager {\n  background: #555;\n}\n.datagrid-header,\n.datagrid-toolbar,\n.datagrid-pager,\n.datagrid-footer-inner {\n  border-color: #222;\n}\n.datagrid-header td,\n.datagrid-body td,\n.datagrid-footer td {\n  border-color: #222;\n}\n.datagrid-htable,\n.datagrid-btable,\n.datagrid-ftable {\n  color: #fff;\n  border-collapse: separate;\n}\n.datagrid-row-alt {\n  background: #555;\n}\n.datagrid-row-over,\n.datagrid-header td.datagrid-header-over {\n  background: #777;\n  color: #fff;\n  cursor: default;\n}\n.datagrid-row-selected {\n  background: #0052A3;\n  color: #fff;\n}\n.datagrid-body .datagrid-editable .datagrid-editable-input {\n  border-color: #000;\n}\n.propertygrid .datagrid-view1 .datagrid-body td {\n  padding-bottom: 1px;\n  border-width: 0 1px 0 0;\n}\n.propertygrid .datagrid-group {\n  height: 21px;\n  overflow: hidden;\n  border-width: 0 0 1px 0;\n  border-style: solid;\n}\n.propertygrid .datagrid-group span {\n  font-weight: bold;\n}\n.propertygrid .datagrid-view1 .datagrid-body td {\n  border-color: #222;\n}\n.propertygrid .datagrid-view1 .datagrid-group {\n  border-color: #3d3d3d;\n}\n.propertygrid .datagrid-view2 .datagrid-group {\n  border-color: #222;\n}\n.propertygrid .datagrid-group,\n.propertygrid .datagrid-view1 .datagrid-body,\n.propertygrid .datagrid-view1 .datagrid-row-over,\n.propertygrid .datagrid-view1 .datagrid-row-selected {\n  background: #3d3d3d;\n}\n.pagination {\n  zoom: 1;\n}\n.pagination table {\n  float: left;\n  height: 30px;\n}\n.pagination td {\n  border: 0;\n}\n.pagination-btn-separator {\n  float: left;\n  height: 24px;\n  border-left: 1px solid #444;\n  border-right: 1px solid #777;\n  margin: 3px 1px;\n}\n.pagination .pagination-num {\n  border-width: 1px;\n  border-style: solid;\n  margin: 0 2px;\n  padding: 2px;\n  width: 2em;\n  height: auto;\n}\n.pagination-page-list {\n  margin: 0px 6px;\n  padding: 1px 2px;\n  width: auto;\n  height: auto;\n  border-width: 1px;\n  border-style: solid;\n}\n.pagination-info {\n  float: right;\n  margin: 0 6px 0 0;\n  padding: 0;\n  height: 30px;\n  line-height: 30px;\n  font-size: 12px;\n}\n.pagination span {\n  font-size: 12px;\n}\na.pagination-link {\n  padding: 1px;\n}\na.pagination-link span.l-btn-left {\n  padding-left: 0;\n}\na.pagination-link span span.l-btn-text {\n  width: 24px;\n  text-align: center;\n}\na:hover.pagination-link {\n  padding: 0;\n}\n.pagination-first {\n  background: url('images/pagination_icons.png') no-repeat 0 center;\n}\n.pagination-prev {\n  background: url('images/pagination_icons.png') no-repeat -16px center;\n}\n.pagination-next {\n  background: url('images/pagination_icons.png') no-repeat -32px center;\n}\n.pagination-last {\n  background: url('images/pagination_icons.png') no-repeat -48px center;\n}\n.pagination-load {\n  background: url('images/pagination_icons.png') no-repeat -64px center;\n}\n.pagination-loading {\n  background: url('images/loading.gif') no-repeat center center;\n}\n.pagination-page-list,\n.pagination .pagination-num {\n  border-color: #000;\n}\n.calendar {\n  border-width: 1px;\n  border-style: solid;\n  padding: 1px;\n  overflow: hidden;\n}\n.calendar table {\n  border-collapse: separate;\n  font-size: 12px;\n  width: 100%;\n  height: 100%;\n}\n.calendar table td,\n.calendar table th {\n  font-size: 12px;\n}\n.calendar-noborder {\n  border: 0;\n}\n.calendar-header {\n  position: relative;\n  height: 22px;\n}\n.calendar-title {\n  text-align: center;\n  height: 22px;\n}\n.calendar-title span {\n  position: relative;\n  display: inline-block;\n  top: 2px;\n  padding: 0 3px;\n  height: 18px;\n  line-height: 18px;\n  font-size: 12px;\n  cursor: pointer;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.calendar-prevmonth,\n.calendar-nextmonth,\n.calendar-prevyear,\n.calendar-nextyear {\n  position: absolute;\n  top: 50%;\n  margin-top: -7px;\n  width: 14px;\n  height: 14px;\n  cursor: pointer;\n  font-size: 1px;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.calendar-prevmonth {\n  left: 20px;\n  background: url('images/calendar_arrows.png') no-repeat -18px -2px;\n}\n.calendar-nextmonth {\n  right: 20px;\n  background: url('images/calendar_arrows.png') no-repeat -34px -2px;\n}\n.calendar-prevyear {\n  left: 3px;\n  background: url('images/calendar_arrows.png') no-repeat -1px -2px;\n}\n.calendar-nextyear {\n  right: 3px;\n  background: url('images/calendar_arrows.png') no-repeat -49px -2px;\n}\n.calendar-body {\n  position: relative;\n}\n.calendar-body th,\n.calendar-body td {\n  text-align: center;\n}\n.calendar-day {\n  border: 0;\n  padding: 1px;\n  cursor: pointer;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.calendar-other-month {\n  opacity: 0.3;\n  filter: alpha(opacity=30);\n}\n.calendar-menu {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 180px;\n  height: 150px;\n  padding: 5px;\n  font-size: 12px;\n  display: none;\n  overflow: hidden;\n}\n.calendar-menu-year-inner {\n  text-align: center;\n  padding-bottom: 5px;\n}\n.calendar-menu-year {\n  width: 40px;\n  text-align: center;\n  border-width: 1px;\n  border-style: solid;\n  margin: 0;\n  padding: 2px;\n  font-weight: bold;\n  font-size: 12px;\n}\n.calendar-menu-prev,\n.calendar-menu-next {\n  display: inline-block;\n  width: 21px;\n  height: 21px;\n  vertical-align: top;\n  cursor: pointer;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.calendar-menu-prev {\n  margin-right: 10px;\n  background: url('images/calendar_arrows.png') no-repeat 2px 2px;\n}\n.calendar-menu-next {\n  margin-left: 10px;\n  background: url('images/calendar_arrows.png') no-repeat -45px 2px;\n}\n.calendar-menu-month {\n  text-align: center;\n  cursor: pointer;\n  font-weight: bold;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.calendar-body th,\n.calendar-menu-month {\n  color: #ffffff;\n}\n.calendar-day {\n  color: #fff;\n}\n.calendar-sunday {\n  color: #CC2222;\n}\n.calendar-saturday {\n  color: #00ee00;\n}\n.calendar-today {\n  color: #0000ff;\n}\n.calendar-menu-year {\n  border-color: #000;\n}\n.calendar {\n  border-color: #000;\n}\n.calendar-header {\n  background: #3d3d3d;\n}\n.calendar-body,\n.calendar-menu {\n  background: #666;\n}\n.calendar-body th {\n  background: #555;\n}\n.calendar-hover,\n.calendar-nav-hover,\n.calendar-menu-hover {\n  background-color: #777;\n  color: #fff;\n}\n.calendar-hover {\n  border: 1px solid #555;\n  padding: 0;\n}\n.calendar-selected {\n  background-color: #0052A3;\n  color: #fff;\n  border: 1px solid #00458a;\n  padding: 0;\n}\n.datebox-calendar-inner {\n  height: 180px;\n}\n.datebox-button {\n  height: 18px;\n  padding: 2px 5px;\n  text-align: center;\n}\n.datebox-button a {\n  font-size: 12px;\n  font-weight: bold;\n  text-decoration: none;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.datebox-button a:hover {\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n}\n.datebox-current,\n.datebox-close {\n  float: left;\n}\n.datebox-close {\n  float: right;\n}\n.datebox .combo-arrow {\n  background-image: url('images/datebox_arrow.png');\n  background-position: center center;\n}\n.datebox-button {\n  background-color: #555;\n}\n.datebox-button a {\n  color: #fff;\n}\n.spinner {\n  display: inline-block;\n  white-space: nowrap;\n  margin: 0;\n  padding: 0;\n  border-width: 1px;\n  border-style: solid;\n  overflow: hidden;\n  vertical-align: middle;\n}\n.spinner .spinner-text {\n  font-size: 12px;\n  border: 0px;\n  line-height: 20px;\n  height: 20px;\n  margin: 0;\n  padding: 0 2px;\n  *margin-top: -1px;\n  *height: 18px;\n  *line-height: 18px;\n  _height: 18px;\n  _line-height: 18px;\n  vertical-align: baseline;\n}\n.spinner-arrow {\n  display: inline-block;\n  overflow: hidden;\n  vertical-align: top;\n  margin: 0;\n  padding: 0;\n}\n.spinner-arrow-up,\n.spinner-arrow-down {\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n  display: block;\n  font-size: 1px;\n  width: 18px;\n  height: 10px;\n}\n.spinner-arrow-hover {\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n}\n.spinner-arrow-up {\n  background: url('images/spinner_arrows.png') no-repeat 1px center;\n}\n.spinner-arrow-down {\n  background: url('images/spinner_arrows.png') no-repeat -15px center;\n}\n.spinner {\n  border-color: #000;\n}\n.spinner-arrow {\n  background-color: #3d3d3d;\n}\n.spinner-arrow-hover {\n  background-color: #777;\n}\n.progressbar {\n  border-width: 1px;\n  border-style: solid;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n  overflow: hidden;\n  position: relative;\n}\n.progressbar-text {\n  text-align: center;\n  position: absolute;\n}\n.progressbar-value {\n  position: relative;\n  overflow: hidden;\n  width: 0;\n  -moz-border-radius: 5px 0 0 5px;\n  -webkit-border-radius: 5px 0 0 5px;\n  border-radius: 5px 0 0 5px;\n}\n.progressbar {\n  border-color: #000;\n}\n.progressbar-text {\n  color: #fff;\n  font-size: 12px;\n}\n.progressbar-value .progressbar-text {\n  background-color: #0052A3;\n  color: #fff;\n}\n.searchbox {\n  display: inline-block;\n  white-space: nowrap;\n  margin: 0;\n  padding: 0;\n  border-width: 1px;\n  border-style: solid;\n  overflow: hidden;\n}\n.searchbox .searchbox-text {\n  font-size: 12px;\n  border: 0;\n  margin: 0;\n  padding: 0;\n  line-height: 20px;\n  height: 20px;\n  *margin-top: -1px;\n  *height: 18px;\n  *line-height: 18px;\n  _height: 18px;\n  _line-height: 18px;\n  vertical-align: baseline;\n}\n.searchbox .searchbox-prompt {\n  font-size: 12px;\n  color: #ccc;\n}\n.searchbox-button {\n  width: 18px;\n  height: 20px;\n  overflow: hidden;\n  display: inline-block;\n  vertical-align: top;\n  cursor: pointer;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.searchbox-button-hover {\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n}\n.searchbox a.l-btn-plain {\n  height: 20px;\n  border: 0;\n  padding: 0 6px 0 0;\n  vertical-align: top;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n  -moz-border-radius: 0 0 0 0;\n  -webkit-border-radius: 0 0 0 0;\n  border-radius: 0 0 0 0;\n}\n.searchbox a.l-btn .l-btn-left {\n  padding: 0 0 0 4px;\n}\n.searchbox a.l-btn .l-btn-text {\n  position: static;\n  vertical-align: top;\n}\n.searchbox a.l-btn-plain:hover {\n  border: 0;\n  padding: 0 6px 0 0;\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n  -moz-border-radius: 0 0 0 0;\n  -webkit-border-radius: 0 0 0 0;\n  border-radius: 0 0 0 0;\n}\n.searchbox a.m-btn-plain-active {\n  -moz-border-radius: 0 0 0 0;\n  -webkit-border-radius: 0 0 0 0;\n  border-radius: 0 0 0 0;\n}\n.searchbox-button {\n  background: url('images/searchbox_button.png') no-repeat center center;\n}\n.searchbox {\n  border-color: #000;\n  background-color: #fff;\n}\n.searchbox a.l-btn-plain {\n  background: #3d3d3d;\n}\n.slider-disabled {\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n}\n.slider-h {\n  height: 22px;\n}\n.slider-v {\n  width: 22px;\n}\n.slider-inner {\n  position: relative;\n  height: 6px;\n  top: 7px;\n  border-width: 1px;\n  border-style: solid;\n  border-radius: 5px;\n}\n.slider-handle {\n  position: absolute;\n  display: block;\n  outline: none;\n  width: 20px;\n  height: 20px;\n  top: -7px;\n  margin-left: -10px;\n}\n.slider-tip {\n  position: absolute;\n  display: inline-block;\n  line-height: 12px;\n  font-size: 12px;\n  white-space: nowrap;\n  top: -22px;\n}\n.slider-rule {\n  position: relative;\n  top: 15px;\n}\n.slider-rule span {\n  position: absolute;\n  display: inline-block;\n  font-size: 0;\n  height: 5px;\n  border-width: 0 0 0 1px;\n  border-style: solid;\n}\n.slider-rulelabel {\n  position: relative;\n  top: 20px;\n}\n.slider-rulelabel span {\n  position: absolute;\n  display: inline-block;\n  font-size: 12px;\n}\n.slider-v .slider-inner {\n  width: 6px;\n  left: 7px;\n  top: 0;\n  float: left;\n}\n.slider-v .slider-handle {\n  left: 3px;\n  margin-top: -10px;\n}\n.slider-v .slider-tip {\n  left: -10px;\n  margin-top: -6px;\n}\n.slider-v .slider-rule {\n  float: left;\n  top: 0;\n  left: 16px;\n}\n.slider-v .slider-rule span {\n  width: 5px;\n  height: 'auto';\n  border-left: 0;\n  border-width: 1px 0 0 0;\n  border-style: solid;\n}\n.slider-v .slider-rulelabel {\n  float: left;\n  top: 0;\n  left: 23px;\n}\n.slider-handle {\n  background: url('images/slider_handle.png') no-repeat;\n}\n.slider-inner {\n  border-color: #000;\n  background: #3d3d3d;\n}\n.slider-rule span {\n  border-color: #000;\n}\n.slider-rulelabel span {\n  color: #fff;\n}\n.menu {\n  position: absolute;\n  margin: 0;\n  padding: 2px;\n  border-width: 1px;\n  border-style: solid;\n  overflow: hidden;\n}\n.menu-item {\n  position: relative;\n  margin: 0;\n  padding: 0;\n  overflow: hidden;\n  white-space: nowrap;\n  cursor: pointer;\n  border-width: 1px;\n  border-style: solid;\n}\n.menu-text {\n  height: 20px;\n  line-height: 20px;\n  float: left;\n  padding-left: 28px;\n}\n.menu-icon {\n  position: absolute;\n  width: 16px;\n  height: 16px;\n  left: 2px;\n  top: 50%;\n  margin-top: -8px;\n}\n.menu-rightarrow {\n  position: absolute;\n  width: 16px;\n  height: 16px;\n  right: 0;\n  top: 50%;\n  margin-top: -8px;\n}\n.menu-line {\n  position: absolute;\n  left: 26px;\n  top: 0;\n  height: 2000px;\n  font-size: 1px;\n}\n.menu-sep {\n  margin: 3px 0px 3px 25px;\n  font-size: 1px;\n}\n.menu-active {\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.menu-item-disabled {\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n  cursor: default;\n}\n.menu-text,\n.menu-text span {\n  font-size: 12px;\n}\n.menu-shadow {\n  position: absolute;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n  background: #777;\n  -moz-box-shadow: 2px 2px 3px #787878;\n  -webkit-box-shadow: 2px 2px 3px #787878;\n  box-shadow: 2px 2px 3px #787878;\n  filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2);\n}\n.menu-rightarrow {\n  background: url('images/menu_arrows.png') no-repeat -32px center;\n}\n.menu-line {\n  border-left: 1px solid #444;\n  border-right: 1px solid #777;\n}\n.menu-sep {\n  border-top: 1px solid #444;\n  border-bottom: 1px solid #777;\n}\n.menu {\n  background-color: #666;\n  border-color: #444;\n  color: #fff;\n}\n.menu-content {\n  background: #666;\n}\n.menu-item {\n  border-color: transparent;\n  _border-color: #666;\n}\n.menu-active {\n  border-color: #555;\n  color: #fff;\n  background: #777;\n}\n.menu-active-disabled {\n  border-color: transparent;\n  background: transparent;\n  color: #fff;\n}\n.m-btn-downarrow {\n  display: inline-block;\n  width: 16px;\n  height: 16px;\n  line-height: 16px;\n  font-size: 12px;\n  _vertical-align: middle;\n}\na.m-btn-active {\n  background-position: bottom right;\n}\na.m-btn-active span.l-btn-left {\n  background-position: bottom left;\n}\na.m-btn-plain-active {\n  background: transparent;\n  padding: 0 5px 0 0;\n  border-width: 1px;\n  border-style: solid;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.m-btn-downarrow {\n  background: url('images/menu_arrows.png') no-repeat 2px center;\n}\na.m-btn-plain-active {\n  border-color: #555;\n  background-color: #777;\n  color: #fff;\n}\n.s-btn-downarrow {\n  display: inline-block;\n  margin: 0 0 0 4px;\n  padding: 0 0 0 1px;\n  width: 14px;\n  height: 16px;\n  line-height: 16px;\n  border-width: 0;\n  border-style: solid;\n  font-size: 12px;\n  _vertical-align: middle;\n}\na.s-btn-active {\n  background-position: bottom right;\n}\na.s-btn-active span.l-btn-left {\n  background-position: bottom left;\n}\na.s-btn-plain-active {\n  background: transparent;\n  padding: 0 5px 0 0;\n  border-width: 1px;\n  border-style: solid;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.s-btn-downarrow {\n  background: url('images/menu_arrows.png') no-repeat 2px center;\n  border-color: #cccccc;\n}\na:hover.l-btn .s-btn-downarrow,\na.s-btn-active .s-btn-downarrow,\na.s-btn-plain-active .s-btn-downarrow {\n  background-position: 1px center;\n  padding: 0;\n  border-width: 0 0 0 1px;\n}\na.s-btn-plain-active {\n  border-color: #555;\n  background-color: #777;\n  color: #fff;\n}\n.messager-body {\n  padding: 10px;\n  overflow: hidden;\n}\n.messager-button {\n  text-align: center;\n  padding-top: 10px;\n}\n.messager-icon {\n  float: left;\n  width: 32px;\n  height: 32px;\n  margin: 0 10px 10px 0;\n}\n.messager-error {\n  background: url('images/messager_icons.png') no-repeat scroll -64px 0;\n}\n.messager-info {\n  background: url('images/messager_icons.png') no-repeat scroll 0 0;\n}\n.messager-question {\n  background: url('images/messager_icons.png') no-repeat scroll -32px 0;\n}\n.messager-warning {\n  background: url('images/messager_icons.png') no-repeat scroll -96px 0;\n}\n.messager-progress {\n  padding: 10px;\n}\n.messager-p-msg {\n  margin-bottom: 5px;\n}\n.messager-body .messager-input {\n  width: 100%;\n  padding: 1px 0;\n  border: 1px solid #000;\n}\n.tree {\n  margin: 0;\n  padding: 0;\n  list-style-type: none;\n}\n.tree li {\n  white-space: nowrap;\n}\n.tree li ul {\n  list-style-type: none;\n  margin: 0;\n  padding: 0;\n}\n.tree-node {\n  height: 18px;\n  white-space: nowrap;\n  cursor: pointer;\n}\n.tree-hit {\n  cursor: pointer;\n}\n.tree-expanded,\n.tree-collapsed,\n.tree-folder,\n.tree-file,\n.tree-checkbox,\n.tree-indent {\n  display: inline-block;\n  width: 16px;\n  height: 18px;\n  vertical-align: top;\n  overflow: hidden;\n}\n.tree-expanded {\n  background: url('images/tree_icons.png') no-repeat -18px 0px;\n}\n.tree-expanded-hover {\n  background: url('images/tree_icons.png') no-repeat -50px 0px;\n}\n.tree-collapsed {\n  background: url('images/tree_icons.png') no-repeat 0px 0px;\n}\n.tree-collapsed-hover {\n  background: url('images/tree_icons.png') no-repeat -32px 0px;\n}\n.tree-lines .tree-expanded,\n.tree-lines .tree-root-first .tree-expanded {\n  background: url('images/tree_icons.png') no-repeat -144px 0;\n}\n.tree-lines .tree-collapsed,\n.tree-lines .tree-root-first .tree-collapsed {\n  background: url('images/tree_icons.png') no-repeat -128px 0;\n}\n.tree-lines .tree-node-last .tree-expanded,\n.tree-lines .tree-root-one .tree-expanded {\n  background: url('images/tree_icons.png') no-repeat -80px 0;\n}\n.tree-lines .tree-node-last .tree-collapsed,\n.tree-lines .tree-root-one .tree-collapsed {\n  background: url('images/tree_icons.png') no-repeat -64px 0;\n}\n.tree-line {\n  background: url('images/tree_icons.png') no-repeat -176px 0;\n}\n.tree-join {\n  background: url('images/tree_icons.png') no-repeat -192px 0;\n}\n.tree-joinbottom {\n  background: url('images/tree_icons.png') no-repeat -160px 0;\n}\n.tree-folder {\n  background: url('images/tree_icons.png') no-repeat -208px 0;\n}\n.tree-folder-open {\n  background: url('images/tree_icons.png') no-repeat -224px 0;\n}\n.tree-file {\n  background: url('images/tree_icons.png') no-repeat -240px 0;\n}\n.tree-loading {\n  background: url('images/loading.gif') no-repeat center center;\n}\n.tree-checkbox0 {\n  background: url('images/tree_icons.png') no-repeat -208px -18px;\n}\n.tree-checkbox1 {\n  background: url('images/tree_icons.png') no-repeat -224px -18px;\n}\n.tree-checkbox2 {\n  background: url('images/tree_icons.png') no-repeat -240px -18px;\n}\n.tree-title {\n  font-size: 12px;\n  display: inline-block;\n  text-decoration: none;\n  vertical-align: top;\n  white-space: nowrap;\n  padding: 0 2px;\n  height: 18px;\n  line-height: 18px;\n}\n.tree-node-proxy {\n  font-size: 12px;\n  line-height: 20px;\n  padding: 0 2px 0 20px;\n  border-width: 1px;\n  border-style: solid;\n  z-index: 9900000;\n}\n.tree-dnd-icon {\n  display: inline-block;\n  position: absolute;\n  width: 16px;\n  height: 18px;\n  left: 2px;\n  top: 50%;\n  margin-top: -9px;\n}\n.tree-dnd-yes {\n  background: url('images/tree_icons.png') no-repeat -256px 0;\n}\n.tree-dnd-no {\n  background: url('images/tree_icons.png') no-repeat -256px -18px;\n}\n.tree-node-top {\n  border-top: 1px dotted red;\n}\n.tree-node-bottom {\n  border-bottom: 1px dotted red;\n}\n.tree-node-append .tree-title {\n  border: 1px dotted red;\n}\n.tree-editor {\n  border: 1px solid #ccc;\n  font-size: 12px;\n  height: 14px !important;\n  height: 18px;\n  line-height: 14px;\n  padding: 1px 2px;\n  width: 80px;\n  position: absolute;\n  top: 0;\n}\n.tree-node-proxy {\n  background-color: #666;\n  color: #fff;\n  border-color: #000;\n}\n.tree-node-hover {\n  background: #777;\n  color: #fff;\n}\n.tree-node-selected {\n  background: #0052A3;\n  color: #fff;\n}\n.validatebox-invalid {\n  background-image: url('images/validatebox_warning.png');\n  background-repeat: no-repeat;\n  background-position: right center;\n  border-color: #ffa8a8;\n  background-color: #fff3f3;\n  color: #000;\n}\n.tooltip {\n  position: absolute;\n  display: none;\n  z-index: 9900000;\n  outline: none;\n  opacity: 1;\n  filter: alpha(opacity=100);\n  padding: 5px;\n  border-width: 1px;\n  border-style: solid;\n  border-radius: 5px;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.tooltip-content {\n  font-size: 12px;\n}\n.tooltip-arrow-outer,\n.tooltip-arrow {\n  position: absolute;\n  width: 0;\n  height: 0;\n  line-height: 0;\n  font-size: 0;\n  border-style: solid;\n  border-width: 6px;\n  border-color: transparent;\n  _border-color: tomato;\n  _filter: chroma(color=tomato);\n}\n.tooltip-right .tooltip-arrow-outer {\n  left: 0;\n  top: 50%;\n  margin: -6px 0 0 -13px;\n}\n.tooltip-right .tooltip-arrow {\n  left: 0;\n  top: 50%;\n  margin: -6px 0 0 -12px;\n}\n.tooltip-left .tooltip-arrow-outer {\n  right: 0;\n  top: 50%;\n  margin: -6px -13px 0 0;\n}\n.tooltip-left .tooltip-arrow {\n  right: 0;\n  top: 50%;\n  margin: -6px -12px 0 0;\n}\n.tooltip-top .tooltip-arrow-outer {\n  bottom: 0;\n  left: 50%;\n  margin: 0 0 -13px -6px;\n}\n.tooltip-top .tooltip-arrow {\n  bottom: 0;\n  left: 50%;\n  margin: 0 0 -12px -6px;\n}\n.tooltip-bottom .tooltip-arrow-outer {\n  top: 0;\n  left: 50%;\n  margin: -13px 0 0 -6px;\n}\n.tooltip-bottom .tooltip-arrow {\n  top: 0;\n  left: 50%;\n  margin: -12px 0 0 -6px;\n}\n.tooltip {\n  background-color: #666;\n  border-color: #000;\n  color: #fff;\n}\n.tooltip-right .tooltip-arrow-outer {\n  border-right-color: #000;\n}\n.tooltip-right .tooltip-arrow {\n  border-right-color: #666;\n}\n.tooltip-left .tooltip-arrow-outer {\n  border-left-color: #000;\n}\n.tooltip-left .tooltip-arrow {\n  border-left-color: #666;\n}\n.tooltip-top .tooltip-arrow-outer {\n  border-top-color: #000;\n}\n.tooltip-top .tooltip-arrow {\n  border-top-color: #666;\n}\n.tooltip-bottom .tooltip-arrow-outer {\n  border-bottom-color: #000;\n}\n.tooltip-bottom .tooltip-arrow {\n  border-bottom-color: #666;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/black/layout.css",
    "content": ".layout {\n  position: relative;\n  overflow: hidden;\n  margin: 0;\n  padding: 0;\n  z-index: 0;\n}\n.layout-panel {\n  position: absolute;\n  overflow: hidden;\n}\n.layout-panel-east,\n.layout-panel-west {\n  z-index: 2;\n}\n.layout-panel-north,\n.layout-panel-south {\n  z-index: 3;\n}\n.layout-expand {\n  position: absolute;\n  padding: 0px;\n  font-size: 1px;\n  cursor: pointer;\n  z-index: 1;\n}\n.layout-expand .panel-header,\n.layout-expand .panel-body {\n  background: transparent;\n  filter: none;\n  overflow: hidden;\n}\n.layout-expand .panel-header {\n  border-bottom-width: 0px;\n}\n.layout-split-proxy-h,\n.layout-split-proxy-v {\n  position: absolute;\n  font-size: 1px;\n  display: none;\n  z-index: 5;\n}\n.layout-split-proxy-h {\n  width: 5px;\n  cursor: e-resize;\n}\n.layout-split-proxy-v {\n  height: 5px;\n  cursor: n-resize;\n}\n.layout-mask {\n  position: absolute;\n  background: #fafafa;\n  filter: alpha(opacity=10);\n  opacity: 0.10;\n  z-index: 4;\n}\n.layout-button-up {\n  background: url('images/layout_arrows.png') no-repeat -16px -16px;\n}\n.layout-button-down {\n  background: url('images/layout_arrows.png') no-repeat -16px 0;\n}\n.layout-button-left {\n  background: url('images/layout_arrows.png') no-repeat 0 0;\n}\n.layout-button-right {\n  background: url('images/layout_arrows.png') no-repeat 0 -16px;\n}\n.layout-split-proxy-h,\n.layout-split-proxy-v {\n  background-color: #cccccc;\n}\n.layout-split-north {\n  border-bottom: 5px solid #444;\n}\n.layout-split-south {\n  border-top: 5px solid #444;\n}\n.layout-split-east {\n  border-left: 5px solid #444;\n}\n.layout-split-west {\n  border-right: 5px solid #444;\n}\n.layout-expand {\n  background-color: #3d3d3d;\n}\n.layout-expand-over {\n  background-color: #3d3d3d;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/black/linkbutton.css",
    "content": "a.l-btn {\n  background-position: right 0;\n  text-decoration: none;\n  display: inline-block;\n  zoom: 1;\n  height: 24px;\n  padding-right: 18px;\n  cursor: pointer;\n  outline: none;\n}\na.l-btn-plain {\n  border: 0;\n  padding: 1px 6px 1px 1px;\n}\na.l-btn-disabled {\n  color: #ccc;\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n  cursor: default;\n}\na.l-btn span.l-btn-left {\n  display: inline-block;\n  background-position: 0 -48px;\n  padding: 0 0 0 18px;\n  line-height: 24px;\n  height: 24px;\n}\na.l-btn-plain span.l-btn-left {\n  padding-left: 5px;\n}\na.l-btn span span.l-btn-text {\n  position: relative;\n  display: inline-block;\n  vertical-align: top;\n  top: 4px;\n  width: auto;\n  height: 16px;\n  line-height: 16px;\n  font-size: 12px;\n  padding: 0;\n  margin: 0;\n}\na.l-btn span span.l-btn-icon-left {\n  padding: 0 0 0 20px;\n  background-position: left center;\n}\na.l-btn span span.l-btn-icon-right {\n  padding: 0 20px 0 0;\n  background-position: right center;\n}\na.l-btn span span span.l-btn-empty {\n  display: inline-block;\n  margin: 0;\n  padding: 0;\n  width: 16px;\n}\na:hover.l-btn {\n  background-position: right -24px;\n  outline: none;\n  text-decoration: none;\n}\na:hover.l-btn span.l-btn-left {\n  background-position: 0 bottom;\n}\na:hover.l-btn-plain {\n  padding: 0 5px 0 0;\n}\na:hover.l-btn-disabled {\n  background-position: right 0;\n}\na:hover.l-btn-disabled span.l-btn-left {\n  background-position: 0 -48px;\n}\na.l-btn .l-btn-focus {\n  outline: #0000FF dotted thin;\n}\na.l-btn {\n  color: #fff;\n  background-image: url('images/linkbutton_bg.png');\n  background-repeat: no-repeat;\n  background: #777;\n  background-repeat: repeat-x;\n  border: 1px solid #555;\n  background: -webkit-linear-gradient(top,#919191 0,#6a6a6a 100%);\n  background: -moz-linear-gradient(top,#919191 0,#6a6a6a 100%);\n  background: -o-linear-gradient(top,#919191 0,#6a6a6a 100%);\n  background: linear-gradient(to bottom,#919191 0,#6a6a6a 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#919191,endColorstr=#6a6a6a,GradientType=0);\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\na.l-btn span.l-btn-left {\n  background-image: url('images/linkbutton_bg.png');\n  background-repeat: no-repeat;\n  background-image: none;\n}\na:hover.l-btn {\n  background: #777;\n  color: #fff;\n  border: 1px solid #555;\n  filter: none;\n}\na.l-btn-plain,\na.l-btn-plain span.l-btn-left {\n  background: transparent;\n  border: 0;\n  filter: none;\n}\na:hover.l-btn-plain {\n  background: #777;\n  color: #fff;\n  border: 1px solid #555;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\na.l-btn-disabled,\na:hover.l-btn-disabled {\n  color: #fff;\n  filter: alpha(opacity=50);\n  background: #777;\n  color: #fff;\n  background: -webkit-linear-gradient(top,#919191 0,#6a6a6a 100%);\n  background: -moz-linear-gradient(top,#919191 0,#6a6a6a 100%);\n  background: -o-linear-gradient(top,#919191 0,#6a6a6a 100%);\n  background: linear-gradient(to bottom,#919191 0,#6a6a6a 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#919191,endColorstr=#6a6a6a,GradientType=0);\n  filter: alpha(opacity=50) progid:DXImageTransform.Microsoft.gradient(startColorstr=#919191,endColorstr=#6a6a6a,GradientType=0);\n}\na.l-btn-plain-disabled,\na:hover.l-btn-plain-disabled {\n  background: transparent;\n  filter: alpha(opacity=50);\n}\na.l-btn-selected,\na:hover.l-btn-selected {\n  background-position: right -24px;\n  background: #000;\n  filter: none;\n}\na.l-btn-selected span.l-btn-left,\na:hover.l-btn-selected span.l-btn-left {\n  background-position: 0 bottom;\n  background-image: none;\n}\na.l-btn-plain-selected,\na:hover.l-btn-plain-selected {\n  background: #000;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/black/menu.css",
    "content": ".menu {\n  position: absolute;\n  margin: 0;\n  padding: 2px;\n  border-width: 1px;\n  border-style: solid;\n  overflow: hidden;\n}\n.menu-item {\n  position: relative;\n  margin: 0;\n  padding: 0;\n  overflow: hidden;\n  white-space: nowrap;\n  cursor: pointer;\n  border-width: 1px;\n  border-style: solid;\n}\n.menu-text {\n  height: 20px;\n  line-height: 20px;\n  float: left;\n  padding-left: 28px;\n}\n.menu-icon {\n  position: absolute;\n  width: 16px;\n  height: 16px;\n  left: 2px;\n  top: 50%;\n  margin-top: -8px;\n}\n.menu-rightarrow {\n  position: absolute;\n  width: 16px;\n  height: 16px;\n  right: 0;\n  top: 50%;\n  margin-top: -8px;\n}\n.menu-line {\n  position: absolute;\n  left: 26px;\n  top: 0;\n  height: 2000px;\n  font-size: 1px;\n}\n.menu-sep {\n  margin: 3px 0px 3px 25px;\n  font-size: 1px;\n}\n.menu-active {\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.menu-item-disabled {\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n  cursor: default;\n}\n.menu-text,\n.menu-text span {\n  font-size: 12px;\n}\n.menu-shadow {\n  position: absolute;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n  background: #777;\n  -moz-box-shadow: 2px 2px 3px #787878;\n  -webkit-box-shadow: 2px 2px 3px #787878;\n  box-shadow: 2px 2px 3px #787878;\n  filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2);\n}\n.menu-rightarrow {\n  background: url('images/menu_arrows.png') no-repeat -32px center;\n}\n.menu-line {\n  border-left: 1px solid #444;\n  border-right: 1px solid #777;\n}\n.menu-sep {\n  border-top: 1px solid #444;\n  border-bottom: 1px solid #777;\n}\n.menu {\n  background-color: #666;\n  border-color: #444;\n  color: #fff;\n}\n.menu-content {\n  background: #666;\n}\n.menu-item {\n  border-color: transparent;\n  _border-color: #666;\n}\n.menu-active {\n  border-color: #555;\n  color: #fff;\n  background: #777;\n}\n.menu-active-disabled {\n  border-color: transparent;\n  background: transparent;\n  color: #fff;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/black/menubutton.css",
    "content": ".m-btn-downarrow {\n  display: inline-block;\n  width: 16px;\n  height: 16px;\n  line-height: 16px;\n  font-size: 12px;\n  _vertical-align: middle;\n}\na.m-btn-active {\n  background-position: bottom right;\n}\na.m-btn-active span.l-btn-left {\n  background-position: bottom left;\n}\na.m-btn-plain-active {\n  background: transparent;\n  padding: 0 5px 0 0;\n  border-width: 1px;\n  border-style: solid;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.m-btn-downarrow {\n  background: url('images/menu_arrows.png') no-repeat 2px center;\n}\na.m-btn-plain-active {\n  border-color: #555;\n  background-color: #777;\n  color: #fff;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/black/messager.css",
    "content": ".messager-body {\n  padding: 10px;\n  overflow: hidden;\n}\n.messager-button {\n  text-align: center;\n  padding-top: 10px;\n}\n.messager-icon {\n  float: left;\n  width: 32px;\n  height: 32px;\n  margin: 0 10px 10px 0;\n}\n.messager-error {\n  background: url('images/messager_icons.png') no-repeat scroll -64px 0;\n}\n.messager-info {\n  background: url('images/messager_icons.png') no-repeat scroll 0 0;\n}\n.messager-question {\n  background: url('images/messager_icons.png') no-repeat scroll -32px 0;\n}\n.messager-warning {\n  background: url('images/messager_icons.png') no-repeat scroll -96px 0;\n}\n.messager-progress {\n  padding: 10px;\n}\n.messager-p-msg {\n  margin-bottom: 5px;\n}\n.messager-body .messager-input {\n  width: 100%;\n  padding: 1px 0;\n  border: 1px solid #000;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/black/pagination.css",
    "content": ".pagination {\n  zoom: 1;\n}\n.pagination table {\n  float: left;\n  height: 30px;\n}\n.pagination td {\n  border: 0;\n}\n.pagination-btn-separator {\n  float: left;\n  height: 24px;\n  border-left: 1px solid #444;\n  border-right: 1px solid #777;\n  margin: 3px 1px;\n}\n.pagination .pagination-num {\n  border-width: 1px;\n  border-style: solid;\n  margin: 0 2px;\n  padding: 2px;\n  width: 2em;\n  height: auto;\n}\n.pagination-page-list {\n  margin: 0px 6px;\n  padding: 1px 2px;\n  width: auto;\n  height: auto;\n  border-width: 1px;\n  border-style: solid;\n}\n.pagination-info {\n  float: right;\n  margin: 0 6px 0 0;\n  padding: 0;\n  height: 30px;\n  line-height: 30px;\n  font-size: 12px;\n}\n.pagination span {\n  font-size: 12px;\n}\na.pagination-link {\n  padding: 1px;\n}\na.pagination-link span.l-btn-left {\n  padding-left: 0;\n}\na.pagination-link span span.l-btn-text {\n  width: 24px;\n  text-align: center;\n}\na:hover.pagination-link {\n  padding: 0;\n}\n.pagination-first {\n  background: url('images/pagination_icons.png') no-repeat 0 center;\n}\n.pagination-prev {\n  background: url('images/pagination_icons.png') no-repeat -16px center;\n}\n.pagination-next {\n  background: url('images/pagination_icons.png') no-repeat -32px center;\n}\n.pagination-last {\n  background: url('images/pagination_icons.png') no-repeat -48px center;\n}\n.pagination-load {\n  background: url('images/pagination_icons.png') no-repeat -64px center;\n}\n.pagination-loading {\n  background: url('images/loading.gif') no-repeat center center;\n}\n.pagination-page-list,\n.pagination .pagination-num {\n  border-color: #000;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/black/panel.css",
    "content": ".panel {\n  overflow: hidden;\n  text-align: left;\n  margin: 0;\n  border: 0;\n  -moz-border-radius: 0 0 0 0;\n  -webkit-border-radius: 0 0 0 0;\n  border-radius: 0 0 0 0;\n}\n.panel-header,\n.panel-body {\n  border-width: 1px;\n  border-style: solid;\n}\n.panel-header {\n  padding: 5px;\n  position: relative;\n}\n.panel-title {\n  background: url('images/blank.gif') no-repeat;\n}\n.panel-header-noborder {\n  border-width: 0 0 1px 0;\n}\n.panel-body {\n  overflow: auto;\n  border-top-width: 0;\n  padding: 0;\n}\n.panel-body-noheader {\n  border-top-width: 1px;\n}\n.panel-body-noborder {\n  border-width: 0px;\n}\n.panel-with-icon {\n  padding-left: 18px;\n}\n.panel-icon,\n.panel-tool {\n  position: absolute;\n  top: 50%;\n  margin-top: -8px;\n  height: 16px;\n  overflow: hidden;\n}\n.panel-icon {\n  left: 5px;\n  width: 16px;\n}\n.panel-tool {\n  right: 5px;\n  width: auto;\n}\n.panel-tool a {\n  display: inline-block;\n  width: 16px;\n  height: 16px;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n  margin: 0 0 0 2px;\n  vertical-align: top;\n}\n.panel-tool a:hover {\n  opacity: 1;\n  filter: alpha(opacity=100);\n  background-color: #777;\n  -moz-border-radius: 3px 3px 3px 3px;\n  -webkit-border-radius: 3px 3px 3px 3px;\n  border-radius: 3px 3px 3px 3px;\n}\n.panel-loading {\n  padding: 11px 0px 10px 30px;\n}\n.panel-noscroll {\n  overflow: hidden;\n}\n.panel-fit,\n.panel-fit body {\n  height: 100%;\n  margin: 0;\n  padding: 0;\n  border: 0;\n  overflow: hidden;\n}\n.panel-loading {\n  background: url('images/loading.gif') no-repeat 10px 10px;\n}\n.panel-tool-close {\n  background: url('images/panel_tools.png') no-repeat -16px 0px;\n}\n.panel-tool-min {\n  background: url('images/panel_tools.png') no-repeat 0px 0px;\n}\n.panel-tool-max {\n  background: url('images/panel_tools.png') no-repeat 0px -16px;\n}\n.panel-tool-restore {\n  background: url('images/panel_tools.png') no-repeat -16px -16px;\n}\n.panel-tool-collapse {\n  background: url('images/panel_tools.png') no-repeat -32px 0;\n}\n.panel-tool-expand {\n  background: url('images/panel_tools.png') no-repeat -32px -16px;\n}\n.panel-header,\n.panel-body {\n  border-color: #000;\n}\n.panel-header {\n  background-color: #3d3d3d;\n  background: -webkit-linear-gradient(top,#454545 0,#383838 100%);\n  background: -moz-linear-gradient(top,#454545 0,#383838 100%);\n  background: -o-linear-gradient(top,#454545 0,#383838 100%);\n  background: linear-gradient(to bottom,#454545 0,#383838 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#454545,endColorstr=#383838,GradientType=0);\n}\n.panel-body {\n  background-color: #666;\n  color: #fff;\n  font-size: 12px;\n}\n.panel-title {\n  font-size: 12px;\n  font-weight: bold;\n  color: #fff;\n  height: 16px;\n  line-height: 16px;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/black/progressbar.css",
    "content": ".progressbar {\n  border-width: 1px;\n  border-style: solid;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n  overflow: hidden;\n  position: relative;\n}\n.progressbar-text {\n  text-align: center;\n  position: absolute;\n}\n.progressbar-value {\n  position: relative;\n  overflow: hidden;\n  width: 0;\n  -moz-border-radius: 5px 0 0 5px;\n  -webkit-border-radius: 5px 0 0 5px;\n  border-radius: 5px 0 0 5px;\n}\n.progressbar {\n  border-color: #000;\n}\n.progressbar-text {\n  color: #fff;\n  font-size: 12px;\n}\n.progressbar-value .progressbar-text {\n  background-color: #0052A3;\n  color: #fff;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/black/propertygrid.css",
    "content": ".propertygrid .datagrid-view1 .datagrid-body td {\n  padding-bottom: 1px;\n  border-width: 0 1px 0 0;\n}\n.propertygrid .datagrid-group {\n  height: 21px;\n  overflow: hidden;\n  border-width: 0 0 1px 0;\n  border-style: solid;\n}\n.propertygrid .datagrid-group span {\n  font-weight: bold;\n}\n.propertygrid .datagrid-view1 .datagrid-body td {\n  border-color: #222;\n}\n.propertygrid .datagrid-view1 .datagrid-group {\n  border-color: #3d3d3d;\n}\n.propertygrid .datagrid-view2 .datagrid-group {\n  border-color: #222;\n}\n.propertygrid .datagrid-group,\n.propertygrid .datagrid-view1 .datagrid-body,\n.propertygrid .datagrid-view1 .datagrid-row-over,\n.propertygrid .datagrid-view1 .datagrid-row-selected {\n  background: #3d3d3d;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/black/searchbox.css",
    "content": ".searchbox {\n  display: inline-block;\n  white-space: nowrap;\n  margin: 0;\n  padding: 0;\n  border-width: 1px;\n  border-style: solid;\n  overflow: hidden;\n}\n.searchbox .searchbox-text {\n  font-size: 12px;\n  border: 0;\n  margin: 0;\n  padding: 0;\n  line-height: 20px;\n  height: 20px;\n  *margin-top: -1px;\n  *height: 18px;\n  *line-height: 18px;\n  _height: 18px;\n  _line-height: 18px;\n  vertical-align: baseline;\n}\n.searchbox .searchbox-prompt {\n  font-size: 12px;\n  color: #ccc;\n}\n.searchbox-button {\n  width: 18px;\n  height: 20px;\n  overflow: hidden;\n  display: inline-block;\n  vertical-align: top;\n  cursor: pointer;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.searchbox-button-hover {\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n}\n.searchbox a.l-btn-plain {\n  height: 20px;\n  border: 0;\n  padding: 0 6px 0 0;\n  vertical-align: top;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n  -moz-border-radius: 0 0 0 0;\n  -webkit-border-radius: 0 0 0 0;\n  border-radius: 0 0 0 0;\n}\n.searchbox a.l-btn .l-btn-left {\n  padding: 0 0 0 4px;\n}\n.searchbox a.l-btn .l-btn-text {\n  position: static;\n  vertical-align: top;\n}\n.searchbox a.l-btn-plain:hover {\n  border: 0;\n  padding: 0 6px 0 0;\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n  -moz-border-radius: 0 0 0 0;\n  -webkit-border-radius: 0 0 0 0;\n  border-radius: 0 0 0 0;\n}\n.searchbox a.m-btn-plain-active {\n  -moz-border-radius: 0 0 0 0;\n  -webkit-border-radius: 0 0 0 0;\n  border-radius: 0 0 0 0;\n}\n.searchbox-button {\n  background: url('images/searchbox_button.png') no-repeat center center;\n}\n.searchbox {\n  border-color: #000;\n  background-color: #fff;\n}\n.searchbox a.l-btn-plain {\n  background: #3d3d3d;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/black/slider.css",
    "content": ".slider-disabled {\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n}\n.slider-h {\n  height: 22px;\n}\n.slider-v {\n  width: 22px;\n}\n.slider-inner {\n  position: relative;\n  height: 6px;\n  top: 7px;\n  border-width: 1px;\n  border-style: solid;\n  border-radius: 5px;\n}\n.slider-handle {\n  position: absolute;\n  display: block;\n  outline: none;\n  width: 20px;\n  height: 20px;\n  top: -7px;\n  margin-left: -10px;\n}\n.slider-tip {\n  position: absolute;\n  display: inline-block;\n  line-height: 12px;\n  font-size: 12px;\n  white-space: nowrap;\n  top: -22px;\n}\n.slider-rule {\n  position: relative;\n  top: 15px;\n}\n.slider-rule span {\n  position: absolute;\n  display: inline-block;\n  font-size: 0;\n  height: 5px;\n  border-width: 0 0 0 1px;\n  border-style: solid;\n}\n.slider-rulelabel {\n  position: relative;\n  top: 20px;\n}\n.slider-rulelabel span {\n  position: absolute;\n  display: inline-block;\n  font-size: 12px;\n}\n.slider-v .slider-inner {\n  width: 6px;\n  left: 7px;\n  top: 0;\n  float: left;\n}\n.slider-v .slider-handle {\n  left: 3px;\n  margin-top: -10px;\n}\n.slider-v .slider-tip {\n  left: -10px;\n  margin-top: -6px;\n}\n.slider-v .slider-rule {\n  float: left;\n  top: 0;\n  left: 16px;\n}\n.slider-v .slider-rule span {\n  width: 5px;\n  height: 'auto';\n  border-left: 0;\n  border-width: 1px 0 0 0;\n  border-style: solid;\n}\n.slider-v .slider-rulelabel {\n  float: left;\n  top: 0;\n  left: 23px;\n}\n.slider-handle {\n  background: url('images/slider_handle.png') no-repeat;\n}\n.slider-inner {\n  border-color: #000;\n  background: #3d3d3d;\n}\n.slider-rule span {\n  border-color: #000;\n}\n.slider-rulelabel span {\n  color: #fff;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/black/spinner.css",
    "content": ".spinner {\n  display: inline-block;\n  white-space: nowrap;\n  margin: 0;\n  padding: 0;\n  border-width: 1px;\n  border-style: solid;\n  overflow: hidden;\n  vertical-align: middle;\n}\n.spinner .spinner-text {\n  font-size: 12px;\n  border: 0px;\n  line-height: 20px;\n  height: 20px;\n  margin: 0;\n  padding: 0 2px;\n  *margin-top: -1px;\n  *height: 18px;\n  *line-height: 18px;\n  _height: 18px;\n  _line-height: 18px;\n  vertical-align: baseline;\n}\n.spinner-arrow {\n  display: inline-block;\n  overflow: hidden;\n  vertical-align: top;\n  margin: 0;\n  padding: 0;\n}\n.spinner-arrow-up,\n.spinner-arrow-down {\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n  display: block;\n  font-size: 1px;\n  width: 18px;\n  height: 10px;\n}\n.spinner-arrow-hover {\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n}\n.spinner-arrow-up {\n  background: url('images/spinner_arrows.png') no-repeat 1px center;\n}\n.spinner-arrow-down {\n  background: url('images/spinner_arrows.png') no-repeat -15px center;\n}\n.spinner {\n  border-color: #000;\n}\n.spinner-arrow {\n  background-color: #3d3d3d;\n}\n.spinner-arrow-hover {\n  background-color: #777;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/black/splitbutton.css",
    "content": ".s-btn-downarrow {\n  display: inline-block;\n  margin: 0 0 0 4px;\n  padding: 0 0 0 1px;\n  width: 14px;\n  height: 16px;\n  line-height: 16px;\n  border-width: 0;\n  border-style: solid;\n  font-size: 12px;\n  _vertical-align: middle;\n}\na.s-btn-active {\n  background-position: bottom right;\n}\na.s-btn-active span.l-btn-left {\n  background-position: bottom left;\n}\na.s-btn-plain-active {\n  background: transparent;\n  padding: 0 5px 0 0;\n  border-width: 1px;\n  border-style: solid;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.s-btn-downarrow {\n  background: url('images/menu_arrows.png') no-repeat 2px center;\n  border-color: #cccccc;\n}\na:hover.l-btn .s-btn-downarrow,\na.s-btn-active .s-btn-downarrow,\na.s-btn-plain-active .s-btn-downarrow {\n  background-position: 1px center;\n  padding: 0;\n  border-width: 0 0 0 1px;\n}\na.s-btn-plain-active {\n  border-color: #555;\n  background-color: #777;\n  color: #fff;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/black/tabs.css",
    "content": ".tabs-container {\n  overflow: hidden;\n}\n.tabs-header {\n  border-width: 1px;\n  border-style: solid;\n  border-bottom-width: 0;\n  position: relative;\n  padding: 0;\n  padding-top: 2px;\n  overflow: hidden;\n}\n.tabs-header-plain {\n  border: 0;\n  background: transparent;\n}\n.tabs-scroller-left,\n.tabs-scroller-right {\n  position: absolute;\n  top: auto;\n  bottom: 0;\n  width: 18px;\n  font-size: 1px;\n  display: none;\n  cursor: pointer;\n  border-width: 1px;\n  border-style: solid;\n}\n.tabs-scroller-left {\n  left: 0;\n}\n.tabs-scroller-right {\n  right: 0;\n}\n.tabs-tool {\n  position: absolute;\n  bottom: 0;\n  padding: 1px;\n  overflow: hidden;\n  border-width: 1px;\n  border-style: solid;\n}\n.tabs-header-plain .tabs-tool {\n  padding: 0 1px;\n}\n.tabs-wrap {\n  position: relative;\n  left: 0;\n  overflow: hidden;\n  width: 100%;\n  margin: 0;\n  padding: 0;\n}\n.tabs-scrolling {\n  margin-left: 18px;\n  margin-right: 18px;\n}\n.tabs-disabled {\n  opacity: 0.3;\n  filter: alpha(opacity=30);\n}\n.tabs {\n  list-style-type: none;\n  height: 26px;\n  margin: 0px;\n  padding: 0px;\n  padding-left: 4px;\n  width: 5000px;\n  border-style: solid;\n  border-width: 0 0 1px 0;\n}\n.tabs li {\n  float: left;\n  display: inline-block;\n  margin: 0 4px -1px 0;\n  padding: 0;\n  position: relative;\n  border: 0;\n}\n.tabs li a.tabs-inner {\n  display: inline-block;\n  text-decoration: none;\n  margin: 0;\n  padding: 0 10px;\n  height: 25px;\n  line-height: 25px;\n  text-align: center;\n  white-space: nowrap;\n  border-width: 1px;\n  border-style: solid;\n  -moz-border-radius: 5px 5px 0 0;\n  -webkit-border-radius: 5px 5px 0 0;\n  border-radius: 5px 5px 0 0;\n}\n.tabs li.tabs-selected a.tabs-inner {\n  font-weight: bold;\n  outline: none;\n}\n.tabs li.tabs-selected a:hover.tabs-inner {\n  cursor: default;\n  pointer: default;\n}\n.tabs li a.tabs-close,\n.tabs-p-tool {\n  position: absolute;\n  font-size: 1px;\n  display: block;\n  height: 12px;\n  padding: 0;\n  top: 50%;\n  margin-top: -6px;\n  overflow: hidden;\n}\n.tabs li a.tabs-close {\n  width: 12px;\n  right: 5px;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.tabs-p-tool {\n  right: 16px;\n}\n.tabs-p-tool a {\n  display: inline-block;\n  font-size: 1px;\n  width: 12px;\n  height: 12px;\n  margin: 0;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.tabs li a:hover.tabs-close,\n.tabs-p-tool a:hover {\n  opacity: 1;\n  filter: alpha(opacity=100);\n  cursor: hand;\n  cursor: pointer;\n}\n.tabs-with-icon {\n  padding-left: 18px;\n}\n.tabs-icon {\n  position: absolute;\n  width: 16px;\n  height: 16px;\n  left: 10px;\n  top: 50%;\n  margin-top: -8px;\n}\n.tabs-title {\n  font-size: 12px;\n}\n.tabs-closable {\n  padding-right: 8px;\n}\n.tabs-panels {\n  margin: 0px;\n  padding: 0px;\n  border-width: 1px;\n  border-style: solid;\n  border-top-width: 0;\n  overflow: hidden;\n}\n.tabs-header-bottom {\n  border-width: 0 1px 1px 1px;\n  padding: 0 0 2px 0;\n}\n.tabs-header-bottom .tabs {\n  border-width: 1px 0 0 0;\n}\n.tabs-header-bottom .tabs li {\n  margin: -1px 4px 0 0;\n}\n.tabs-header-bottom .tabs li a.tabs-inner {\n  -moz-border-radius: 0 0 5px 5px;\n  -webkit-border-radius: 0 0 5px 5px;\n  border-radius: 0 0 5px 5px;\n}\n.tabs-header-bottom .tabs-tool {\n  top: 0;\n}\n.tabs-header-bottom .tabs-scroller-left,\n.tabs-header-bottom .tabs-scroller-right {\n  top: 0;\n  bottom: auto;\n}\n.tabs-panels-top {\n  border-width: 1px 1px 0 1px;\n}\n.tabs-header-left {\n  float: left;\n  border-width: 1px 0 1px 1px;\n  padding: 0;\n}\n.tabs-header-right {\n  float: right;\n  border-width: 1px 1px 1px 0;\n  padding: 0;\n}\n.tabs-header-left .tabs-wrap,\n.tabs-header-right .tabs-wrap {\n  height: 100%;\n}\n.tabs-header-left .tabs {\n  height: 100%;\n  padding: 4px 0 0 4px;\n  border-width: 0 1px 0 0;\n}\n.tabs-header-right .tabs {\n  height: 100%;\n  padding: 4px 4px 0 0;\n  border-width: 0 0 0 1px;\n}\n.tabs-header-left .tabs li,\n.tabs-header-right .tabs li {\n  display: block;\n  width: 100%;\n  position: relative;\n}\n.tabs-header-left .tabs li {\n  left: auto;\n  right: 0;\n  margin: 0 -1px 4px 0;\n  float: right;\n}\n.tabs-header-right .tabs li {\n  left: 0;\n  right: auto;\n  margin: 0 0 4px -1px;\n  float: left;\n}\n.tabs-header-left .tabs li a.tabs-inner {\n  display: block;\n  text-align: left;\n  -moz-border-radius: 5px 0 0 5px;\n  -webkit-border-radius: 5px 0 0 5px;\n  border-radius: 5px 0 0 5px;\n}\n.tabs-header-right .tabs li a.tabs-inner {\n  display: block;\n  text-align: left;\n  -moz-border-radius: 0 5px 5px 0;\n  -webkit-border-radius: 0 5px 5px 0;\n  border-radius: 0 5px 5px 0;\n}\n.tabs-panels-right {\n  float: right;\n  border-width: 1px 1px 1px 0;\n}\n.tabs-panels-left {\n  float: left;\n  border-width: 1px 0 1px 1px;\n}\n.tabs-header-noborder,\n.tabs-panels-noborder {\n  border: 0px;\n}\n.tabs-header-plain {\n  border: 0px;\n  background: transparent;\n}\n.tabs-scroller-left {\n  background: #3d3d3d url('images/tabs_icons.png') no-repeat 1px center;\n}\n.tabs-scroller-right {\n  background: #3d3d3d url('images/tabs_icons.png') no-repeat -15px center;\n}\n.tabs li a.tabs-close {\n  background: url('images/tabs_icons.png') no-repeat -34px center;\n}\n.tabs li a.tabs-inner:hover {\n  background: #777;\n  color: #fff;\n  filter: none;\n}\n.tabs li.tabs-selected a.tabs-inner {\n  background-color: #666;\n  color: #fff;\n  background: -webkit-linear-gradient(top,#454545 0,#666 100%);\n  background: -moz-linear-gradient(top,#454545 0,#666 100%);\n  background: -o-linear-gradient(top,#454545 0,#666 100%);\n  background: linear-gradient(to bottom,#454545 0,#666 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#454545,endColorstr=#666,GradientType=0);\n}\n.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner {\n  background: -webkit-linear-gradient(top,#666 0,#454545 100%);\n  background: -moz-linear-gradient(top,#666 0,#454545 100%);\n  background: -o-linear-gradient(top,#666 0,#454545 100%);\n  background: linear-gradient(to bottom,#666 0,#454545 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#666,endColorstr=#454545,GradientType=0);\n}\n.tabs-header-left .tabs li.tabs-selected a.tabs-inner {\n  background: -webkit-linear-gradient(left,#454545 0,#666 100%);\n  background: -moz-linear-gradient(left,#454545 0,#666 100%);\n  background: -o-linear-gradient(left,#454545 0,#666 100%);\n  background: linear-gradient(to right,#454545 0,#666 100%);\n  background-repeat: repeat-y;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#454545,endColorstr=#666,GradientType=1);\n}\n.tabs-header-right .tabs li.tabs-selected a.tabs-inner {\n  background: -webkit-linear-gradient(left,#666 0,#454545 100%);\n  background: -moz-linear-gradient(left,#666 0,#454545 100%);\n  background: -o-linear-gradient(left,#666 0,#454545 100%);\n  background: linear-gradient(to right,#666 0,#454545 100%);\n  background-repeat: repeat-y;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#666,endColorstr=#454545,GradientType=1);\n}\n.tabs li a.tabs-inner {\n  color: #fff;\n  background-color: #3d3d3d;\n  background: -webkit-linear-gradient(top,#454545 0,#383838 100%);\n  background: -moz-linear-gradient(top,#454545 0,#383838 100%);\n  background: -o-linear-gradient(top,#454545 0,#383838 100%);\n  background: linear-gradient(to bottom,#454545 0,#383838 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#454545,endColorstr=#383838,GradientType=0);\n}\n.tabs-header,\n.tabs-tool {\n  background-color: #3d3d3d;\n}\n.tabs-header-plain {\n  background: transparent;\n}\n.tabs-header,\n.tabs-scroller-left,\n.tabs-scroller-right,\n.tabs-tool,\n.tabs,\n.tabs-panels,\n.tabs li a.tabs-inner,\n.tabs li.tabs-selected a.tabs-inner,\n.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner,\n.tabs-header-left .tabs li.tabs-selected a.tabs-inner,\n.tabs-header-right .tabs li.tabs-selected a.tabs-inner {\n  border-color: #000;\n}\n.tabs-p-tool a:hover,\n.tabs li a:hover.tabs-close,\n.tabs-scroller-over {\n  background-color: #777;\n}\n.tabs li.tabs-selected a.tabs-inner {\n  border-bottom: 1px solid #666;\n}\n.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner {\n  border-top: 1px solid #666;\n}\n.tabs-header-left .tabs li.tabs-selected a.tabs-inner {\n  border-right: 1px solid #666;\n}\n.tabs-header-right .tabs li.tabs-selected a.tabs-inner {\n  border-left: 1px solid #666;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/black/tooltip.css",
    "content": ".tooltip {\n  position: absolute;\n  display: none;\n  z-index: 9900000;\n  outline: none;\n  opacity: 1;\n  filter: alpha(opacity=100);\n  padding: 5px;\n  border-width: 1px;\n  border-style: solid;\n  border-radius: 5px;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.tooltip-content {\n  font-size: 12px;\n}\n.tooltip-arrow-outer,\n.tooltip-arrow {\n  position: absolute;\n  width: 0;\n  height: 0;\n  line-height: 0;\n  font-size: 0;\n  border-style: solid;\n  border-width: 6px;\n  border-color: transparent;\n  _border-color: tomato;\n  _filter: chroma(color=tomato);\n}\n.tooltip-right .tooltip-arrow-outer {\n  left: 0;\n  top: 50%;\n  margin: -6px 0 0 -13px;\n}\n.tooltip-right .tooltip-arrow {\n  left: 0;\n  top: 50%;\n  margin: -6px 0 0 -12px;\n}\n.tooltip-left .tooltip-arrow-outer {\n  right: 0;\n  top: 50%;\n  margin: -6px -13px 0 0;\n}\n.tooltip-left .tooltip-arrow {\n  right: 0;\n  top: 50%;\n  margin: -6px -12px 0 0;\n}\n.tooltip-top .tooltip-arrow-outer {\n  bottom: 0;\n  left: 50%;\n  margin: 0 0 -13px -6px;\n}\n.tooltip-top .tooltip-arrow {\n  bottom: 0;\n  left: 50%;\n  margin: 0 0 -12px -6px;\n}\n.tooltip-bottom .tooltip-arrow-outer {\n  top: 0;\n  left: 50%;\n  margin: -13px 0 0 -6px;\n}\n.tooltip-bottom .tooltip-arrow {\n  top: 0;\n  left: 50%;\n  margin: -12px 0 0 -6px;\n}\n.tooltip {\n  background-color: #666;\n  border-color: #000;\n  color: #fff;\n}\n.tooltip-right .tooltip-arrow-outer {\n  border-right-color: #000;\n}\n.tooltip-right .tooltip-arrow {\n  border-right-color: #666;\n}\n.tooltip-left .tooltip-arrow-outer {\n  border-left-color: #000;\n}\n.tooltip-left .tooltip-arrow {\n  border-left-color: #666;\n}\n.tooltip-top .tooltip-arrow-outer {\n  border-top-color: #000;\n}\n.tooltip-top .tooltip-arrow {\n  border-top-color: #666;\n}\n.tooltip-bottom .tooltip-arrow-outer {\n  border-bottom-color: #000;\n}\n.tooltip-bottom .tooltip-arrow {\n  border-bottom-color: #666;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/black/tree.css",
    "content": ".tree {\n  margin: 0;\n  padding: 0;\n  list-style-type: none;\n}\n.tree li {\n  white-space: nowrap;\n}\n.tree li ul {\n  list-style-type: none;\n  margin: 0;\n  padding: 0;\n}\n.tree-node {\n  height: 18px;\n  white-space: nowrap;\n  cursor: pointer;\n}\n.tree-hit {\n  cursor: pointer;\n}\n.tree-expanded,\n.tree-collapsed,\n.tree-folder,\n.tree-file,\n.tree-checkbox,\n.tree-indent {\n  display: inline-block;\n  width: 16px;\n  height: 18px;\n  vertical-align: top;\n  overflow: hidden;\n}\n.tree-expanded {\n  background: url('images/tree_icons.png') no-repeat -18px 0px;\n}\n.tree-expanded-hover {\n  background: url('images/tree_icons.png') no-repeat -50px 0px;\n}\n.tree-collapsed {\n  background: url('images/tree_icons.png') no-repeat 0px 0px;\n}\n.tree-collapsed-hover {\n  background: url('images/tree_icons.png') no-repeat -32px 0px;\n}\n.tree-lines .tree-expanded,\n.tree-lines .tree-root-first .tree-expanded {\n  background: url('images/tree_icons.png') no-repeat -144px 0;\n}\n.tree-lines .tree-collapsed,\n.tree-lines .tree-root-first .tree-collapsed {\n  background: url('images/tree_icons.png') no-repeat -128px 0;\n}\n.tree-lines .tree-node-last .tree-expanded,\n.tree-lines .tree-root-one .tree-expanded {\n  background: url('images/tree_icons.png') no-repeat -80px 0;\n}\n.tree-lines .tree-node-last .tree-collapsed,\n.tree-lines .tree-root-one .tree-collapsed {\n  background: url('images/tree_icons.png') no-repeat -64px 0;\n}\n.tree-line {\n  background: url('images/tree_icons.png') no-repeat -176px 0;\n}\n.tree-join {\n  background: url('images/tree_icons.png') no-repeat -192px 0;\n}\n.tree-joinbottom {\n  background: url('images/tree_icons.png') no-repeat -160px 0;\n}\n.tree-folder {\n  background: url('images/tree_icons.png') no-repeat -208px 0;\n}\n.tree-folder-open {\n  background: url('images/tree_icons.png') no-repeat -224px 0;\n}\n.tree-file {\n  background: url('images/tree_icons.png') no-repeat -240px 0;\n}\n.tree-loading {\n  background: url('images/loading.gif') no-repeat center center;\n}\n.tree-checkbox0 {\n  background: url('images/tree_icons.png') no-repeat -208px -18px;\n}\n.tree-checkbox1 {\n  background: url('images/tree_icons.png') no-repeat -224px -18px;\n}\n.tree-checkbox2 {\n  background: url('images/tree_icons.png') no-repeat -240px -18px;\n}\n.tree-title {\n  font-size: 12px;\n  display: inline-block;\n  text-decoration: none;\n  vertical-align: top;\n  white-space: nowrap;\n  padding: 0 2px;\n  height: 18px;\n  line-height: 18px;\n}\n.tree-node-proxy {\n  font-size: 12px;\n  line-height: 20px;\n  padding: 0 2px 0 20px;\n  border-width: 1px;\n  border-style: solid;\n  z-index: 9900000;\n}\n.tree-dnd-icon {\n  display: inline-block;\n  position: absolute;\n  width: 16px;\n  height: 18px;\n  left: 2px;\n  top: 50%;\n  margin-top: -9px;\n}\n.tree-dnd-yes {\n  background: url('images/tree_icons.png') no-repeat -256px 0;\n}\n.tree-dnd-no {\n  background: url('images/tree_icons.png') no-repeat -256px -18px;\n}\n.tree-node-top {\n  border-top: 1px dotted red;\n}\n.tree-node-bottom {\n  border-bottom: 1px dotted red;\n}\n.tree-node-append .tree-title {\n  border: 1px dotted red;\n}\n.tree-editor {\n  border: 1px solid #ccc;\n  font-size: 12px;\n  height: 14px !important;\n  height: 18px;\n  line-height: 14px;\n  padding: 1px 2px;\n  width: 80px;\n  position: absolute;\n  top: 0;\n}\n.tree-node-proxy {\n  background-color: #666;\n  color: #fff;\n  border-color: #000;\n}\n.tree-node-hover {\n  background: #777;\n  color: #fff;\n}\n.tree-node-selected {\n  background: #0052A3;\n  color: #fff;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/black/validatebox.css",
    "content": ".validatebox-invalid {\n  background-image: url('images/validatebox_warning.png');\n  background-repeat: no-repeat;\n  background-position: right center;\n  border-color: #ffa8a8;\n  background-color: #fff3f3;\n  color: #000;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/black/window.css",
    "content": ".window {\n  overflow: hidden;\n  padding: 5px;\n  border-width: 1px;\n  border-style: solid;\n}\n.window .window-header {\n  background: transparent;\n  padding: 0px 0px 6px 0px;\n}\n.window .window-body {\n  border-width: 1px;\n  border-style: solid;\n  border-top-width: 0px;\n}\n.window .window-body-noheader {\n  border-top-width: 1px;\n}\n.window .window-header .panel-icon,\n.window .window-header .panel-tool {\n  top: 50%;\n  margin-top: -11px;\n}\n.window .window-header .panel-icon {\n  left: 1px;\n}\n.window .window-header .panel-tool {\n  right: 1px;\n}\n.window .window-header .panel-with-icon {\n  padding-left: 18px;\n}\n.window-proxy {\n  position: absolute;\n  overflow: hidden;\n}\n.window-proxy-mask {\n  position: absolute;\n  filter: alpha(opacity=5);\n  opacity: 0.05;\n}\n.window-mask {\n  position: absolute;\n  left: 0;\n  top: 0;\n  width: 100%;\n  height: 100%;\n  filter: alpha(opacity=40);\n  opacity: 0.40;\n  font-size: 1px;\n  *zoom: 1;\n  overflow: hidden;\n}\n.window,\n.window-shadow {\n  position: absolute;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.window-shadow {\n  background: #777;\n  -moz-box-shadow: 2px 2px 3px #787878;\n  -webkit-box-shadow: 2px 2px 3px #787878;\n  box-shadow: 2px 2px 3px #787878;\n  filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2);\n}\n.window,\n.window .window-body {\n  border-color: #000;\n}\n.window {\n  background-color: #3d3d3d;\n  background: -webkit-linear-gradient(top,#454545 0,#383838 20%);\n  background: -moz-linear-gradient(top,#454545 0,#383838 20%);\n  background: -o-linear-gradient(top,#454545 0,#383838 20%);\n  background: linear-gradient(to bottom,#454545 0,#383838 20%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#454545,endColorstr=#383838,GradientType=0);\n}\n.window-proxy {\n  border: 1px dashed #000;\n}\n.window-proxy-mask,\n.window-mask {\n  background: #000;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/bootstrap/accordion.css",
    "content": ".accordion {\n  overflow: hidden;\n  border-width: 1px;\n  border-style: solid;\n}\n.accordion .accordion-header {\n  border-width: 0 0 1px;\n  cursor: pointer;\n}\n.accordion .accordion-body {\n  border-width: 0 0 1px;\n}\n.accordion-noborder {\n  border-width: 0;\n}\n.accordion-noborder .accordion-header {\n  border-width: 0 0 1px;\n}\n.accordion-noborder .accordion-body {\n  border-width: 0 0 1px;\n}\n.accordion-collapse {\n  background: url('images/accordion_arrows.png') no-repeat 0 0;\n}\n.accordion-expand {\n  background: url('images/accordion_arrows.png') no-repeat -16px 0;\n}\n.accordion {\n  background: #ffffff;\n  border-color: #D4D4D4;\n}\n.accordion .accordion-header {\n  background: #F2F2F2;\n  filter: none;\n}\n.accordion .accordion-header-selected {\n  background: #0081c2;\n}\n.accordion .accordion-header-selected .panel-title {\n  color: #fff;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/bootstrap/calendar.css",
    "content": ".calendar {\n  border-width: 1px;\n  border-style: solid;\n  padding: 1px;\n  overflow: hidden;\n}\n.calendar table {\n  border-collapse: separate;\n  font-size: 12px;\n  width: 100%;\n  height: 100%;\n}\n.calendar table td,\n.calendar table th {\n  font-size: 12px;\n}\n.calendar-noborder {\n  border: 0;\n}\n.calendar-header {\n  position: relative;\n  height: 22px;\n}\n.calendar-title {\n  text-align: center;\n  height: 22px;\n}\n.calendar-title span {\n  position: relative;\n  display: inline-block;\n  top: 2px;\n  padding: 0 3px;\n  height: 18px;\n  line-height: 18px;\n  font-size: 12px;\n  cursor: pointer;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.calendar-prevmonth,\n.calendar-nextmonth,\n.calendar-prevyear,\n.calendar-nextyear {\n  position: absolute;\n  top: 50%;\n  margin-top: -7px;\n  width: 14px;\n  height: 14px;\n  cursor: pointer;\n  font-size: 1px;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.calendar-prevmonth {\n  left: 20px;\n  background: url('images/calendar_arrows.png') no-repeat -18px -2px;\n}\n.calendar-nextmonth {\n  right: 20px;\n  background: url('images/calendar_arrows.png') no-repeat -34px -2px;\n}\n.calendar-prevyear {\n  left: 3px;\n  background: url('images/calendar_arrows.png') no-repeat -1px -2px;\n}\n.calendar-nextyear {\n  right: 3px;\n  background: url('images/calendar_arrows.png') no-repeat -49px -2px;\n}\n.calendar-body {\n  position: relative;\n}\n.calendar-body th,\n.calendar-body td {\n  text-align: center;\n}\n.calendar-day {\n  border: 0;\n  padding: 1px;\n  cursor: pointer;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.calendar-other-month {\n  opacity: 0.3;\n  filter: alpha(opacity=30);\n}\n.calendar-menu {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 180px;\n  height: 150px;\n  padding: 5px;\n  font-size: 12px;\n  display: none;\n  overflow: hidden;\n}\n.calendar-menu-year-inner {\n  text-align: center;\n  padding-bottom: 5px;\n}\n.calendar-menu-year {\n  width: 40px;\n  text-align: center;\n  border-width: 1px;\n  border-style: solid;\n  margin: 0;\n  padding: 2px;\n  font-weight: bold;\n  font-size: 12px;\n}\n.calendar-menu-prev,\n.calendar-menu-next {\n  display: inline-block;\n  width: 21px;\n  height: 21px;\n  vertical-align: top;\n  cursor: pointer;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.calendar-menu-prev {\n  margin-right: 10px;\n  background: url('images/calendar_arrows.png') no-repeat 2px 2px;\n}\n.calendar-menu-next {\n  margin-left: 10px;\n  background: url('images/calendar_arrows.png') no-repeat -45px 2px;\n}\n.calendar-menu-month {\n  text-align: center;\n  cursor: pointer;\n  font-weight: bold;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.calendar-body th,\n.calendar-menu-month {\n  color: #808080;\n}\n.calendar-day {\n  color: #333;\n}\n.calendar-sunday {\n  color: #CC2222;\n}\n.calendar-saturday {\n  color: #00ee00;\n}\n.calendar-today {\n  color: #0000ff;\n}\n.calendar-menu-year {\n  border-color: #D4D4D4;\n}\n.calendar {\n  border-color: #D4D4D4;\n}\n.calendar-header {\n  background: #F2F2F2;\n}\n.calendar-body,\n.calendar-menu {\n  background: #ffffff;\n}\n.calendar-body th {\n  background: #F5F5F5;\n}\n.calendar-hover,\n.calendar-nav-hover,\n.calendar-menu-hover {\n  background-color: #e6e6e6;\n  color: #00438a;\n}\n.calendar-hover {\n  border: 1px solid #ddd;\n  padding: 0;\n}\n.calendar-selected {\n  background-color: #0081c2;\n  color: #fff;\n  border: 1px solid #0070a9;\n  padding: 0;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/bootstrap/combo.css",
    "content": ".combo {\n  display: inline-block;\n  white-space: nowrap;\n  margin: 0;\n  padding: 0;\n  border-width: 1px;\n  border-style: solid;\n  overflow: hidden;\n  vertical-align: middle;\n}\n.combo .combo-text {\n  font-size: 12px;\n  border: 0px;\n  line-height: 20px;\n  height: 20px;\n  margin: 0;\n  padding: 0px 2px;\n  *margin-top: -1px;\n  *height: 18px;\n  *line-height: 18px;\n  _height: 18px;\n  _line-height: 18px;\n  vertical-align: baseline;\n}\n.combo-arrow {\n  width: 18px;\n  height: 20px;\n  overflow: hidden;\n  display: inline-block;\n  vertical-align: top;\n  cursor: pointer;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.combo-arrow-hover {\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n}\n.combo-panel {\n  overflow: auto;\n}\n.combo-arrow {\n  background: url('images/combo_arrow.png') no-repeat center center;\n}\n.combo,\n.combo-panel {\n  background-color: #ffffff;\n}\n.combo {\n  border-color: #D4D4D4;\n  background-color: #ffffff;\n}\n.combo-arrow {\n  background-color: #F2F2F2;\n}\n.combo-arrow-hover {\n  background-color: #e6e6e6;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/bootstrap/combobox.css",
    "content": ".combobox-item,\n.combobox-group {\n  font-size: 12px;\n  padding: 3px;\n  padding-right: 0px;\n}\n.combobox-item-disabled {\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n}\n.combobox-gitem {\n  padding-left: 10px;\n}\n.combobox-group {\n  font-weight: bold;\n}\n.combobox-item-hover {\n  background-color: #e6e6e6;\n  color: #00438a;\n}\n.combobox-item-selected {\n  background-color: #0081c2;\n  color: #fff;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/bootstrap/datagrid.css",
    "content": ".datagrid .panel-body {\n  overflow: hidden;\n  position: relative;\n}\n.datagrid-view {\n  position: relative;\n  overflow: hidden;\n}\n.datagrid-view1,\n.datagrid-view2 {\n  position: absolute;\n  overflow: hidden;\n  top: 0;\n}\n.datagrid-view1 {\n  left: 0;\n}\n.datagrid-view2 {\n  right: 0;\n}\n.datagrid-mask {\n  position: absolute;\n  left: 0;\n  top: 0;\n  width: 100%;\n  height: 100%;\n  opacity: 0.3;\n  filter: alpha(opacity=30);\n  display: none;\n}\n.datagrid-mask-msg {\n  position: absolute;\n  top: 50%;\n  margin-top: -20px;\n  padding: 12px 5px 10px 30px;\n  width: auto;\n  height: 16px;\n  border-width: 2px;\n  border-style: solid;\n  display: none;\n}\n.datagrid-sort-icon {\n  padding: 0;\n}\n.datagrid-toolbar {\n  height: auto;\n  padding: 1px 2px;\n  border-width: 0 0 1px 0;\n  border-style: solid;\n}\n.datagrid-btn-separator {\n  float: left;\n  height: 24px;\n  border-left: 1px solid #ccc;\n  border-right: 1px solid #fff;\n  margin: 2px 1px;\n}\n.datagrid .datagrid-pager {\n  display: block;\n  margin: 0;\n  border-width: 1px 0 0 0;\n  border-style: solid;\n}\n.datagrid .datagrid-pager-top {\n  border-width: 0 0 1px 0;\n}\n.datagrid-header {\n  overflow: hidden;\n  cursor: default;\n  border-width: 0 0 1px 0;\n  border-style: solid;\n}\n.datagrid-header-inner {\n  float: left;\n  width: 10000px;\n}\n.datagrid-header-row,\n.datagrid-row {\n  height: 25px;\n}\n.datagrid-header td,\n.datagrid-body td,\n.datagrid-footer td {\n  border-width: 0 1px 1px 0;\n  border-style: dotted;\n  margin: 0;\n  padding: 0;\n}\n.datagrid-cell,\n.datagrid-cell-group,\n.datagrid-header-rownumber,\n.datagrid-cell-rownumber {\n  margin: 0;\n  padding: 0 4px;\n  white-space: nowrap;\n  word-wrap: normal;\n  overflow: hidden;\n  height: 18px;\n  line-height: 18px;\n  font-size: 12px;\n}\n.datagrid-header .datagrid-cell {\n  height: auto;\n}\n.datagrid-header .datagrid-cell span {\n  font-size: 12px;\n}\n.datagrid-cell-group {\n  text-align: center;\n}\n.datagrid-header-rownumber,\n.datagrid-cell-rownumber {\n  width: 25px;\n  text-align: center;\n  margin: 0;\n  padding: 0;\n}\n.datagrid-body {\n  margin: 0;\n  padding: 0;\n  overflow: auto;\n  zoom: 1;\n}\n.datagrid-view1 .datagrid-body-inner {\n  padding-bottom: 20px;\n}\n.datagrid-view1 .datagrid-body {\n  overflow: hidden;\n}\n.datagrid-footer {\n  overflow: hidden;\n}\n.datagrid-footer-inner {\n  border-width: 1px 0 0 0;\n  border-style: solid;\n  width: 10000px;\n  float: left;\n}\n.datagrid-row-editing .datagrid-cell {\n  height: auto;\n}\n.datagrid-header-check,\n.datagrid-cell-check {\n  padding: 0;\n  width: 27px;\n  height: 18px;\n  font-size: 1px;\n  text-align: center;\n  overflow: hidden;\n}\n.datagrid-header-check input,\n.datagrid-cell-check input {\n  margin: 0;\n  padding: 0;\n  width: 15px;\n  height: 18px;\n}\n.datagrid-resize-proxy {\n  position: absolute;\n  width: 1px;\n  height: 10000px;\n  top: 0;\n  cursor: e-resize;\n  display: none;\n}\n.datagrid-body .datagrid-editable {\n  margin: 0;\n  padding: 0;\n}\n.datagrid-body .datagrid-editable table {\n  width: 100%;\n  height: 100%;\n}\n.datagrid-body .datagrid-editable td {\n  border: 0;\n  margin: 0;\n  padding: 0;\n}\n.datagrid-body .datagrid-editable .datagrid-editable-input {\n  margin: 0;\n  padding: 2px;\n  border-width: 1px;\n  border-style: solid;\n}\n.datagrid-sort-desc .datagrid-sort-icon {\n  padding: 0 13px 0 0;\n  background: url('images/datagrid_icons.png') no-repeat -16px center;\n}\n.datagrid-sort-asc .datagrid-sort-icon {\n  padding: 0 13px 0 0;\n  background: url('images/datagrid_icons.png') no-repeat 0px center;\n}\n.datagrid-row-collapse {\n  background: url('images/datagrid_icons.png') no-repeat -48px center;\n}\n.datagrid-row-expand {\n  background: url('images/datagrid_icons.png') no-repeat -32px center;\n}\n.datagrid-mask-msg {\n  background: #ffffff url('images/loading.gif') no-repeat scroll 5px center;\n}\n.datagrid-header,\n.datagrid-td-rownumber {\n  background-color: #F2F2F2;\n  background: -webkit-linear-gradient(top,#ffffff 0,#F2F2F2 100%);\n  background: -moz-linear-gradient(top,#ffffff 0,#F2F2F2 100%);\n  background: -o-linear-gradient(top,#ffffff 0,#F2F2F2 100%);\n  background: linear-gradient(to bottom,#ffffff 0,#F2F2F2 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#F2F2F2,GradientType=0);\n}\n.datagrid-cell-rownumber {\n  color: #333;\n}\n.datagrid-resize-proxy {\n  background: #bbb;\n}\n.datagrid-mask {\n  background: #ccc;\n}\n.datagrid-mask-msg {\n  border-color: #D4D4D4;\n}\n.datagrid-toolbar,\n.datagrid-pager {\n  background: #F5F5F5;\n}\n.datagrid-header,\n.datagrid-toolbar,\n.datagrid-pager,\n.datagrid-footer-inner {\n  border-color: #e6e6e6;\n}\n.datagrid-header td,\n.datagrid-body td,\n.datagrid-footer td {\n  border-color: #ccc;\n}\n.datagrid-htable,\n.datagrid-btable,\n.datagrid-ftable {\n  color: #333;\n  border-collapse: separate;\n}\n.datagrid-row-alt {\n  background: #F5F5F5;\n}\n.datagrid-row-over,\n.datagrid-header td.datagrid-header-over {\n  background: #e6e6e6;\n  color: #00438a;\n  cursor: default;\n}\n.datagrid-row-selected {\n  background: #0081c2;\n  color: #fff;\n}\n.datagrid-body .datagrid-editable .datagrid-editable-input {\n  border-color: #D4D4D4;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/bootstrap/datebox.css",
    "content": ".datebox-calendar-inner {\n  height: 180px;\n}\n.datebox-button {\n  height: 18px;\n  padding: 2px 5px;\n  text-align: center;\n}\n.datebox-button a {\n  font-size: 12px;\n  font-weight: bold;\n  text-decoration: none;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.datebox-button a:hover {\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n}\n.datebox-current,\n.datebox-close {\n  float: left;\n}\n.datebox-close {\n  float: right;\n}\n.datebox .combo-arrow {\n  background-image: url('images/datebox_arrow.png');\n  background-position: center center;\n}\n.datebox-button {\n  background-color: #F5F5F5;\n}\n.datebox-button a {\n  color: #444;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/bootstrap/dialog.css",
    "content": ".dialog-content {\n  overflow: auto;\n}\n.dialog-toolbar {\n  padding: 2px 5px;\n}\n.dialog-tool-separator {\n  float: left;\n  height: 24px;\n  border-left: 1px solid #ccc;\n  border-right: 1px solid #fff;\n  margin: 2px 1px;\n}\n.dialog-button {\n  padding: 5px;\n  text-align: right;\n}\n.dialog-button .l-btn {\n  margin-left: 5px;\n}\n.dialog-toolbar,\n.dialog-button {\n  background: #F5F5F5;\n}\n.dialog-toolbar {\n  border-bottom: 1px solid #e6e6e6;\n}\n.dialog-button {\n  border-top: 1px solid #e6e6e6;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/bootstrap/easyui.css",
    "content": ".panel {\n  overflow: hidden;\n  text-align: left;\n  margin: 0;\n  border: 0;\n  -moz-border-radius: 0 0 0 0;\n  -webkit-border-radius: 0 0 0 0;\n  border-radius: 0 0 0 0;\n}\n.panel-header,\n.panel-body {\n  border-width: 1px;\n  border-style: solid;\n}\n.panel-header {\n  padding: 5px;\n  position: relative;\n}\n.panel-title {\n  background: url('images/blank.gif') no-repeat;\n}\n.panel-header-noborder {\n  border-width: 0 0 1px 0;\n}\n.panel-body {\n  overflow: auto;\n  border-top-width: 0;\n  padding: 0;\n}\n.panel-body-noheader {\n  border-top-width: 1px;\n}\n.panel-body-noborder {\n  border-width: 0px;\n}\n.panel-with-icon {\n  padding-left: 18px;\n}\n.panel-icon,\n.panel-tool {\n  position: absolute;\n  top: 50%;\n  margin-top: -8px;\n  height: 16px;\n  overflow: hidden;\n}\n.panel-icon {\n  left: 5px;\n  width: 16px;\n}\n.panel-tool {\n  right: 5px;\n  width: auto;\n}\n.panel-tool a {\n  display: inline-block;\n  width: 16px;\n  height: 16px;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n  margin: 0 0 0 2px;\n  vertical-align: top;\n}\n.panel-tool a:hover {\n  opacity: 1;\n  filter: alpha(opacity=100);\n  background-color: #e6e6e6;\n  -moz-border-radius: 3px 3px 3px 3px;\n  -webkit-border-radius: 3px 3px 3px 3px;\n  border-radius: 3px 3px 3px 3px;\n}\n.panel-loading {\n  padding: 11px 0px 10px 30px;\n}\n.panel-noscroll {\n  overflow: hidden;\n}\n.panel-fit,\n.panel-fit body {\n  height: 100%;\n  margin: 0;\n  padding: 0;\n  border: 0;\n  overflow: hidden;\n}\n.panel-loading {\n  background: url('images/loading.gif') no-repeat 10px 10px;\n}\n.panel-tool-close {\n  background: url('images/panel_tools.png') no-repeat -16px 0px;\n}\n.panel-tool-min {\n  background: url('images/panel_tools.png') no-repeat 0px 0px;\n}\n.panel-tool-max {\n  background: url('images/panel_tools.png') no-repeat 0px -16px;\n}\n.panel-tool-restore {\n  background: url('images/panel_tools.png') no-repeat -16px -16px;\n}\n.panel-tool-collapse {\n  background: url('images/panel_tools.png') no-repeat -32px 0;\n}\n.panel-tool-expand {\n  background: url('images/panel_tools.png') no-repeat -32px -16px;\n}\n.panel-header,\n.panel-body {\n  border-color: #D4D4D4;\n}\n.panel-header {\n  background-color: #F2F2F2;\n  background: -webkit-linear-gradient(top,#ffffff 0,#F2F2F2 100%);\n  background: -moz-linear-gradient(top,#ffffff 0,#F2F2F2 100%);\n  background: -o-linear-gradient(top,#ffffff 0,#F2F2F2 100%);\n  background: linear-gradient(to bottom,#ffffff 0,#F2F2F2 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#F2F2F2,GradientType=0);\n}\n.panel-body {\n  background-color: #ffffff;\n  color: #333;\n  font-size: 12px;\n}\n.panel-title {\n  font-size: 12px;\n  font-weight: bold;\n  color: #777;\n  height: 16px;\n  line-height: 16px;\n}\n.accordion {\n  overflow: hidden;\n  border-width: 1px;\n  border-style: solid;\n}\n.accordion .accordion-header {\n  border-width: 0 0 1px;\n  cursor: pointer;\n}\n.accordion .accordion-body {\n  border-width: 0 0 1px;\n}\n.accordion-noborder {\n  border-width: 0;\n}\n.accordion-noborder .accordion-header {\n  border-width: 0 0 1px;\n}\n.accordion-noborder .accordion-body {\n  border-width: 0 0 1px;\n}\n.accordion-collapse {\n  background: url('images/accordion_arrows.png') no-repeat 0 0;\n}\n.accordion-expand {\n  background: url('images/accordion_arrows.png') no-repeat -16px 0;\n}\n.accordion {\n  background: #ffffff;\n  border-color: #D4D4D4;\n}\n.accordion .accordion-header {\n  background: #F2F2F2;\n  filter: none;\n}\n.accordion .accordion-header-selected {\n  background: #0081c2;\n}\n.accordion .accordion-header-selected .panel-title {\n  color: #fff;\n}\n.window {\n  overflow: hidden;\n  padding: 5px;\n  border-width: 1px;\n  border-style: solid;\n}\n.window .window-header {\n  background: transparent;\n  padding: 0px 0px 6px 0px;\n}\n.window .window-body {\n  border-width: 1px;\n  border-style: solid;\n  border-top-width: 0px;\n}\n.window .window-body-noheader {\n  border-top-width: 1px;\n}\n.window .window-header .panel-icon,\n.window .window-header .panel-tool {\n  top: 50%;\n  margin-top: -11px;\n}\n.window .window-header .panel-icon {\n  left: 1px;\n}\n.window .window-header .panel-tool {\n  right: 1px;\n}\n.window .window-header .panel-with-icon {\n  padding-left: 18px;\n}\n.window-proxy {\n  position: absolute;\n  overflow: hidden;\n}\n.window-proxy-mask {\n  position: absolute;\n  filter: alpha(opacity=5);\n  opacity: 0.05;\n}\n.window-mask {\n  position: absolute;\n  left: 0;\n  top: 0;\n  width: 100%;\n  height: 100%;\n  filter: alpha(opacity=40);\n  opacity: 0.40;\n  font-size: 1px;\n  *zoom: 1;\n  overflow: hidden;\n}\n.window,\n.window-shadow {\n  position: absolute;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.window-shadow {\n  background: #ccc;\n  -moz-box-shadow: 2px 2px 3px #cccccc;\n  -webkit-box-shadow: 2px 2px 3px #cccccc;\n  box-shadow: 2px 2px 3px #cccccc;\n  filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2);\n}\n.window,\n.window .window-body {\n  border-color: #D4D4D4;\n}\n.window {\n  background-color: #F2F2F2;\n  background: -webkit-linear-gradient(top,#ffffff 0,#F2F2F2 20%);\n  background: -moz-linear-gradient(top,#ffffff 0,#F2F2F2 20%);\n  background: -o-linear-gradient(top,#ffffff 0,#F2F2F2 20%);\n  background: linear-gradient(to bottom,#ffffff 0,#F2F2F2 20%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#F2F2F2,GradientType=0);\n}\n.window-proxy {\n  border: 1px dashed #D4D4D4;\n}\n.window-proxy-mask,\n.window-mask {\n  background: #ccc;\n}\n.dialog-content {\n  overflow: auto;\n}\n.dialog-toolbar {\n  padding: 2px 5px;\n}\n.dialog-tool-separator {\n  float: left;\n  height: 24px;\n  border-left: 1px solid #ccc;\n  border-right: 1px solid #fff;\n  margin: 2px 1px;\n}\n.dialog-button {\n  padding: 5px;\n  text-align: right;\n}\n.dialog-button .l-btn {\n  margin-left: 5px;\n}\n.dialog-toolbar,\n.dialog-button {\n  background: #F5F5F5;\n}\n.dialog-toolbar {\n  border-bottom: 1px solid #e6e6e6;\n}\n.dialog-button {\n  border-top: 1px solid #e6e6e6;\n}\n.combo {\n  display: inline-block;\n  white-space: nowrap;\n  margin: 0;\n  padding: 0;\n  border-width: 1px;\n  border-style: solid;\n  overflow: hidden;\n  vertical-align: middle;\n}\n.combo .combo-text {\n  font-size: 12px;\n  border: 0px;\n  line-height: 20px;\n  height: 20px;\n  margin: 0;\n  padding: 0px 2px;\n  *margin-top: -1px;\n  *height: 18px;\n  *line-height: 18px;\n  _height: 18px;\n  _line-height: 18px;\n  vertical-align: baseline;\n}\n.combo-arrow {\n  width: 18px;\n  height: 20px;\n  overflow: hidden;\n  display: inline-block;\n  vertical-align: top;\n  cursor: pointer;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.combo-arrow-hover {\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n}\n.combo-panel {\n  overflow: auto;\n}\n.combo-arrow {\n  background: url('images/combo_arrow.png') no-repeat center center;\n}\n.combo,\n.combo-panel {\n  background-color: #ffffff;\n}\n.combo {\n  border-color: #D4D4D4;\n  background-color: #ffffff;\n}\n.combo-arrow {\n  background-color: #F2F2F2;\n}\n.combo-arrow-hover {\n  background-color: #e6e6e6;\n}\n.combobox-item,\n.combobox-group {\n  font-size: 12px;\n  padding: 3px;\n  padding-right: 0px;\n}\n.combobox-item-disabled {\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n}\n.combobox-gitem {\n  padding-left: 10px;\n}\n.combobox-group {\n  font-weight: bold;\n}\n.combobox-item-hover {\n  background-color: #e6e6e6;\n  color: #00438a;\n}\n.combobox-item-selected {\n  background-color: #0081c2;\n  color: #fff;\n}\n.layout {\n  position: relative;\n  overflow: hidden;\n  margin: 0;\n  padding: 0;\n  z-index: 0;\n}\n.layout-panel {\n  position: absolute;\n  overflow: hidden;\n}\n.layout-panel-east,\n.layout-panel-west {\n  z-index: 2;\n}\n.layout-panel-north,\n.layout-panel-south {\n  z-index: 3;\n}\n.layout-expand {\n  position: absolute;\n  padding: 0px;\n  font-size: 1px;\n  cursor: pointer;\n  z-index: 1;\n}\n.layout-expand .panel-header,\n.layout-expand .panel-body {\n  background: transparent;\n  filter: none;\n  overflow: hidden;\n}\n.layout-expand .panel-header {\n  border-bottom-width: 0px;\n}\n.layout-split-proxy-h,\n.layout-split-proxy-v {\n  position: absolute;\n  font-size: 1px;\n  display: none;\n  z-index: 5;\n}\n.layout-split-proxy-h {\n  width: 5px;\n  cursor: e-resize;\n}\n.layout-split-proxy-v {\n  height: 5px;\n  cursor: n-resize;\n}\n.layout-mask {\n  position: absolute;\n  background: #fafafa;\n  filter: alpha(opacity=10);\n  opacity: 0.10;\n  z-index: 4;\n}\n.layout-button-up {\n  background: url('images/layout_arrows.png') no-repeat -16px -16px;\n}\n.layout-button-down {\n  background: url('images/layout_arrows.png') no-repeat -16px 0;\n}\n.layout-button-left {\n  background: url('images/layout_arrows.png') no-repeat 0 0;\n}\n.layout-button-right {\n  background: url('images/layout_arrows.png') no-repeat 0 -16px;\n}\n.layout-split-proxy-h,\n.layout-split-proxy-v {\n  background-color: #bbb;\n}\n.layout-split-north {\n  border-bottom: 5px solid #eee;\n}\n.layout-split-south {\n  border-top: 5px solid #eee;\n}\n.layout-split-east {\n  border-left: 5px solid #eee;\n}\n.layout-split-west {\n  border-right: 5px solid #eee;\n}\n.layout-expand {\n  background-color: #F2F2F2;\n}\n.layout-expand-over {\n  background-color: #F2F2F2;\n}\n.tabs-container {\n  overflow: hidden;\n}\n.tabs-header {\n  border-width: 1px;\n  border-style: solid;\n  border-bottom-width: 0;\n  position: relative;\n  padding: 0;\n  padding-top: 2px;\n  overflow: hidden;\n}\n.tabs-header-plain {\n  border: 0;\n  background: transparent;\n}\n.tabs-scroller-left,\n.tabs-scroller-right {\n  position: absolute;\n  top: auto;\n  bottom: 0;\n  width: 18px;\n  font-size: 1px;\n  display: none;\n  cursor: pointer;\n  border-width: 1px;\n  border-style: solid;\n}\n.tabs-scroller-left {\n  left: 0;\n}\n.tabs-scroller-right {\n  right: 0;\n}\n.tabs-tool {\n  position: absolute;\n  bottom: 0;\n  padding: 1px;\n  overflow: hidden;\n  border-width: 1px;\n  border-style: solid;\n}\n.tabs-header-plain .tabs-tool {\n  padding: 0 1px;\n}\n.tabs-wrap {\n  position: relative;\n  left: 0;\n  overflow: hidden;\n  width: 100%;\n  margin: 0;\n  padding: 0;\n}\n.tabs-scrolling {\n  margin-left: 18px;\n  margin-right: 18px;\n}\n.tabs-disabled {\n  opacity: 0.3;\n  filter: alpha(opacity=30);\n}\n.tabs {\n  list-style-type: none;\n  height: 26px;\n  margin: 0px;\n  padding: 0px;\n  padding-left: 4px;\n  width: 5000px;\n  border-style: solid;\n  border-width: 0 0 1px 0;\n}\n.tabs li {\n  float: left;\n  display: inline-block;\n  margin: 0 4px -1px 0;\n  padding: 0;\n  position: relative;\n  border: 0;\n}\n.tabs li a.tabs-inner {\n  display: inline-block;\n  text-decoration: none;\n  margin: 0;\n  padding: 0 10px;\n  height: 25px;\n  line-height: 25px;\n  text-align: center;\n  white-space: nowrap;\n  border-width: 1px;\n  border-style: solid;\n  -moz-border-radius: 5px 5px 0 0;\n  -webkit-border-radius: 5px 5px 0 0;\n  border-radius: 5px 5px 0 0;\n}\n.tabs li.tabs-selected a.tabs-inner {\n  font-weight: bold;\n  outline: none;\n}\n.tabs li.tabs-selected a:hover.tabs-inner {\n  cursor: default;\n  pointer: default;\n}\n.tabs li a.tabs-close,\n.tabs-p-tool {\n  position: absolute;\n  font-size: 1px;\n  display: block;\n  height: 12px;\n  padding: 0;\n  top: 50%;\n  margin-top: -6px;\n  overflow: hidden;\n}\n.tabs li a.tabs-close {\n  width: 12px;\n  right: 5px;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.tabs-p-tool {\n  right: 16px;\n}\n.tabs-p-tool a {\n  display: inline-block;\n  font-size: 1px;\n  width: 12px;\n  height: 12px;\n  margin: 0;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.tabs li a:hover.tabs-close,\n.tabs-p-tool a:hover {\n  opacity: 1;\n  filter: alpha(opacity=100);\n  cursor: hand;\n  cursor: pointer;\n}\n.tabs-with-icon {\n  padding-left: 18px;\n}\n.tabs-icon {\n  position: absolute;\n  width: 16px;\n  height: 16px;\n  left: 10px;\n  top: 50%;\n  margin-top: -8px;\n}\n.tabs-title {\n  font-size: 12px;\n}\n.tabs-closable {\n  padding-right: 8px;\n}\n.tabs-panels {\n  margin: 0px;\n  padding: 0px;\n  border-width: 1px;\n  border-style: solid;\n  border-top-width: 0;\n  overflow: hidden;\n}\n.tabs-header-bottom {\n  border-width: 0 1px 1px 1px;\n  padding: 0 0 2px 0;\n}\n.tabs-header-bottom .tabs {\n  border-width: 1px 0 0 0;\n}\n.tabs-header-bottom .tabs li {\n  margin: -1px 4px 0 0;\n}\n.tabs-header-bottom .tabs li a.tabs-inner {\n  -moz-border-radius: 0 0 5px 5px;\n  -webkit-border-radius: 0 0 5px 5px;\n  border-radius: 0 0 5px 5px;\n}\n.tabs-header-bottom .tabs-tool {\n  top: 0;\n}\n.tabs-header-bottom .tabs-scroller-left,\n.tabs-header-bottom .tabs-scroller-right {\n  top: 0;\n  bottom: auto;\n}\n.tabs-panels-top {\n  border-width: 1px 1px 0 1px;\n}\n.tabs-header-left {\n  float: left;\n  border-width: 1px 0 1px 1px;\n  padding: 0;\n}\n.tabs-header-right {\n  float: right;\n  border-width: 1px 1px 1px 0;\n  padding: 0;\n}\n.tabs-header-left .tabs-wrap,\n.tabs-header-right .tabs-wrap {\n  height: 100%;\n}\n.tabs-header-left .tabs {\n  height: 100%;\n  padding: 4px 0 0 4px;\n  border-width: 0 1px 0 0;\n}\n.tabs-header-right .tabs {\n  height: 100%;\n  padding: 4px 4px 0 0;\n  border-width: 0 0 0 1px;\n}\n.tabs-header-left .tabs li,\n.tabs-header-right .tabs li {\n  display: block;\n  width: 100%;\n  position: relative;\n}\n.tabs-header-left .tabs li {\n  left: auto;\n  right: 0;\n  margin: 0 -1px 4px 0;\n  float: right;\n}\n.tabs-header-right .tabs li {\n  left: 0;\n  right: auto;\n  margin: 0 0 4px -1px;\n  float: left;\n}\n.tabs-header-left .tabs li a.tabs-inner {\n  display: block;\n  text-align: left;\n  -moz-border-radius: 5px 0 0 5px;\n  -webkit-border-radius: 5px 0 0 5px;\n  border-radius: 5px 0 0 5px;\n}\n.tabs-header-right .tabs li a.tabs-inner {\n  display: block;\n  text-align: left;\n  -moz-border-radius: 0 5px 5px 0;\n  -webkit-border-radius: 0 5px 5px 0;\n  border-radius: 0 5px 5px 0;\n}\n.tabs-panels-right {\n  float: right;\n  border-width: 1px 1px 1px 0;\n}\n.tabs-panels-left {\n  float: left;\n  border-width: 1px 0 1px 1px;\n}\n.tabs-header-noborder,\n.tabs-panels-noborder {\n  border: 0px;\n}\n.tabs-header-plain {\n  border: 0px;\n  background: transparent;\n}\n.tabs-scroller-left {\n  background: #F2F2F2 url('images/tabs_icons.png') no-repeat 1px center;\n}\n.tabs-scroller-right {\n  background: #F2F2F2 url('images/tabs_icons.png') no-repeat -15px center;\n}\n.tabs li a.tabs-close {\n  background: url('images/tabs_icons.png') no-repeat -34px center;\n}\n.tabs li a.tabs-inner:hover {\n  background: #e6e6e6;\n  color: #00438a;\n  filter: none;\n}\n.tabs li.tabs-selected a.tabs-inner {\n  background-color: #ffffff;\n  color: #777;\n  background: -webkit-linear-gradient(top,#ffffff 0,#ffffff 100%);\n  background: -moz-linear-gradient(top,#ffffff 0,#ffffff 100%);\n  background: -o-linear-gradient(top,#ffffff 0,#ffffff 100%);\n  background: linear-gradient(to bottom,#ffffff 0,#ffffff 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#ffffff,GradientType=0);\n}\n.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner {\n  background: -webkit-linear-gradient(top,#ffffff 0,#ffffff 100%);\n  background: -moz-linear-gradient(top,#ffffff 0,#ffffff 100%);\n  background: -o-linear-gradient(top,#ffffff 0,#ffffff 100%);\n  background: linear-gradient(to bottom,#ffffff 0,#ffffff 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#ffffff,GradientType=0);\n}\n.tabs-header-left .tabs li.tabs-selected a.tabs-inner {\n  background: -webkit-linear-gradient(left,#ffffff 0,#ffffff 100%);\n  background: -moz-linear-gradient(left,#ffffff 0,#ffffff 100%);\n  background: -o-linear-gradient(left,#ffffff 0,#ffffff 100%);\n  background: linear-gradient(to right,#ffffff 0,#ffffff 100%);\n  background-repeat: repeat-y;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#ffffff,GradientType=1);\n}\n.tabs-header-right .tabs li.tabs-selected a.tabs-inner {\n  background: -webkit-linear-gradient(left,#ffffff 0,#ffffff 100%);\n  background: -moz-linear-gradient(left,#ffffff 0,#ffffff 100%);\n  background: -o-linear-gradient(left,#ffffff 0,#ffffff 100%);\n  background: linear-gradient(to right,#ffffff 0,#ffffff 100%);\n  background-repeat: repeat-y;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#ffffff,GradientType=1);\n}\n.tabs li a.tabs-inner {\n  color: #777;\n  background-color: #F2F2F2;\n  background: -webkit-linear-gradient(top,#ffffff 0,#F2F2F2 100%);\n  background: -moz-linear-gradient(top,#ffffff 0,#F2F2F2 100%);\n  background: -o-linear-gradient(top,#ffffff 0,#F2F2F2 100%);\n  background: linear-gradient(to bottom,#ffffff 0,#F2F2F2 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#F2F2F2,GradientType=0);\n}\n.tabs-header,\n.tabs-tool {\n  background-color: #F2F2F2;\n}\n.tabs-header-plain {\n  background: transparent;\n}\n.tabs-header,\n.tabs-scroller-left,\n.tabs-scroller-right,\n.tabs-tool,\n.tabs,\n.tabs-panels,\n.tabs li a.tabs-inner,\n.tabs li.tabs-selected a.tabs-inner,\n.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner,\n.tabs-header-left .tabs li.tabs-selected a.tabs-inner,\n.tabs-header-right .tabs li.tabs-selected a.tabs-inner {\n  border-color: #D4D4D4;\n}\n.tabs-p-tool a:hover,\n.tabs li a:hover.tabs-close,\n.tabs-scroller-over {\n  background-color: #e6e6e6;\n}\n.tabs li.tabs-selected a.tabs-inner {\n  border-bottom: 1px solid #ffffff;\n}\n.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner {\n  border-top: 1px solid #ffffff;\n}\n.tabs-header-left .tabs li.tabs-selected a.tabs-inner {\n  border-right: 1px solid #ffffff;\n}\n.tabs-header-right .tabs li.tabs-selected a.tabs-inner {\n  border-left: 1px solid #ffffff;\n}\na.l-btn {\n  background-position: right 0;\n  text-decoration: none;\n  display: inline-block;\n  zoom: 1;\n  height: 24px;\n  padding-right: 18px;\n  cursor: pointer;\n  outline: none;\n}\na.l-btn-plain {\n  border: 0;\n  padding: 1px 6px 1px 1px;\n}\na.l-btn-disabled {\n  color: #ccc;\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n  cursor: default;\n}\na.l-btn span.l-btn-left {\n  display: inline-block;\n  background-position: 0 -48px;\n  padding: 0 0 0 18px;\n  line-height: 24px;\n  height: 24px;\n}\na.l-btn-plain span.l-btn-left {\n  padding-left: 5px;\n}\na.l-btn span span.l-btn-text {\n  position: relative;\n  display: inline-block;\n  vertical-align: top;\n  top: 4px;\n  width: auto;\n  height: 16px;\n  line-height: 16px;\n  font-size: 12px;\n  padding: 0;\n  margin: 0;\n}\na.l-btn span span.l-btn-icon-left {\n  padding: 0 0 0 20px;\n  background-position: left center;\n}\na.l-btn span span.l-btn-icon-right {\n  padding: 0 20px 0 0;\n  background-position: right center;\n}\na.l-btn span span span.l-btn-empty {\n  display: inline-block;\n  margin: 0;\n  padding: 0;\n  width: 16px;\n}\na:hover.l-btn {\n  background-position: right -24px;\n  outline: none;\n  text-decoration: none;\n}\na:hover.l-btn span.l-btn-left {\n  background-position: 0 bottom;\n}\na:hover.l-btn-plain {\n  padding: 0 5px 0 0;\n}\na:hover.l-btn-disabled {\n  background-position: right 0;\n}\na:hover.l-btn-disabled span.l-btn-left {\n  background-position: 0 -48px;\n}\na.l-btn .l-btn-focus {\n  outline: #0000FF dotted thin;\n}\na.l-btn {\n  color: #444;\n  background-image: url('images/linkbutton_bg.png');\n  background-repeat: no-repeat;\n  background: #f5f5f5;\n  background-repeat: repeat-x;\n  border: 1px solid #bbb;\n  background: -webkit-linear-gradient(top,#ffffff 0,#e6e6e6 100%);\n  background: -moz-linear-gradient(top,#ffffff 0,#e6e6e6 100%);\n  background: -o-linear-gradient(top,#ffffff 0,#e6e6e6 100%);\n  background: linear-gradient(to bottom,#ffffff 0,#e6e6e6 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#e6e6e6,GradientType=0);\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\na.l-btn span.l-btn-left {\n  background-image: url('images/linkbutton_bg.png');\n  background-repeat: no-repeat;\n  background-image: none;\n}\na:hover.l-btn {\n  background: #e6e6e6;\n  color: #00438a;\n  border: 1px solid #ddd;\n  filter: none;\n}\na.l-btn-plain,\na.l-btn-plain span.l-btn-left {\n  background: transparent;\n  border: 0;\n  filter: none;\n}\na:hover.l-btn-plain {\n  background: #e6e6e6;\n  color: #00438a;\n  border: 1px solid #ddd;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\na.l-btn-disabled,\na:hover.l-btn-disabled {\n  color: #444;\n  filter: alpha(opacity=50);\n  background: #f5f5f5;\n  color: #444;\n  background: -webkit-linear-gradient(top,#ffffff 0,#e6e6e6 100%);\n  background: -moz-linear-gradient(top,#ffffff 0,#e6e6e6 100%);\n  background: -o-linear-gradient(top,#ffffff 0,#e6e6e6 100%);\n  background: linear-gradient(to bottom,#ffffff 0,#e6e6e6 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#e6e6e6,GradientType=0);\n  filter: alpha(opacity=50) progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#e6e6e6,GradientType=0);\n}\na.l-btn-plain-disabled,\na:hover.l-btn-plain-disabled {\n  background: transparent;\n  filter: alpha(opacity=50);\n}\na.l-btn-selected,\na:hover.l-btn-selected {\n  background-position: right -24px;\n  background: #ddd;\n  filter: none;\n}\na.l-btn-selected span.l-btn-left,\na:hover.l-btn-selected span.l-btn-left {\n  background-position: 0 bottom;\n  background-image: none;\n}\na.l-btn-plain-selected,\na:hover.l-btn-plain-selected {\n  background: #ddd;\n}\n.datagrid .panel-body {\n  overflow: hidden;\n  position: relative;\n}\n.datagrid-view {\n  position: relative;\n  overflow: hidden;\n}\n.datagrid-view1,\n.datagrid-view2 {\n  position: absolute;\n  overflow: hidden;\n  top: 0;\n}\n.datagrid-view1 {\n  left: 0;\n}\n.datagrid-view2 {\n  right: 0;\n}\n.datagrid-mask {\n  position: absolute;\n  left: 0;\n  top: 0;\n  width: 100%;\n  height: 100%;\n  opacity: 0.3;\n  filter: alpha(opacity=30);\n  display: none;\n}\n.datagrid-mask-msg {\n  position: absolute;\n  top: 50%;\n  margin-top: -20px;\n  padding: 12px 5px 10px 30px;\n  width: auto;\n  height: 16px;\n  border-width: 2px;\n  border-style: solid;\n  display: none;\n}\n.datagrid-sort-icon {\n  padding: 0;\n}\n.datagrid-toolbar {\n  height: auto;\n  padding: 1px 2px;\n  border-width: 0 0 1px 0;\n  border-style: solid;\n}\n.datagrid-btn-separator {\n  float: left;\n  height: 24px;\n  border-left: 1px solid #ccc;\n  border-right: 1px solid #fff;\n  margin: 2px 1px;\n}\n.datagrid .datagrid-pager {\n  display: block;\n  margin: 0;\n  border-width: 1px 0 0 0;\n  border-style: solid;\n}\n.datagrid .datagrid-pager-top {\n  border-width: 0 0 1px 0;\n}\n.datagrid-header {\n  overflow: hidden;\n  cursor: default;\n  border-width: 0 0 1px 0;\n  border-style: solid;\n}\n.datagrid-header-inner {\n  float: left;\n  width: 10000px;\n}\n.datagrid-header-row,\n.datagrid-row {\n  height: 25px;\n}\n.datagrid-header td,\n.datagrid-body td,\n.datagrid-footer td {\n  border-width: 0 1px 1px 0;\n  border-style: dotted;\n  margin: 0;\n  padding: 0;\n}\n.datagrid-cell,\n.datagrid-cell-group,\n.datagrid-header-rownumber,\n.datagrid-cell-rownumber {\n  margin: 0;\n  padding: 0 4px;\n  white-space: nowrap;\n  word-wrap: normal;\n  overflow: hidden;\n  height: 18px;\n  line-height: 18px;\n  font-size: 12px;\n}\n.datagrid-header .datagrid-cell {\n  height: auto;\n}\n.datagrid-header .datagrid-cell span {\n  font-size: 12px;\n}\n.datagrid-cell-group {\n  text-align: center;\n}\n.datagrid-header-rownumber,\n.datagrid-cell-rownumber {\n  width: 25px;\n  text-align: center;\n  margin: 0;\n  padding: 0;\n}\n.datagrid-body {\n  margin: 0;\n  padding: 0;\n  overflow: auto;\n  zoom: 1;\n}\n.datagrid-view1 .datagrid-body-inner {\n  padding-bottom: 20px;\n}\n.datagrid-view1 .datagrid-body {\n  overflow: hidden;\n}\n.datagrid-footer {\n  overflow: hidden;\n}\n.datagrid-footer-inner {\n  border-width: 1px 0 0 0;\n  border-style: solid;\n  width: 10000px;\n  float: left;\n}\n.datagrid-row-editing .datagrid-cell {\n  height: auto;\n}\n.datagrid-header-check,\n.datagrid-cell-check {\n  padding: 0;\n  width: 27px;\n  height: 18px;\n  font-size: 1px;\n  text-align: center;\n  overflow: hidden;\n}\n.datagrid-header-check input,\n.datagrid-cell-check input {\n  margin: 0;\n  padding: 0;\n  width: 15px;\n  height: 18px;\n}\n.datagrid-resize-proxy {\n  position: absolute;\n  width: 1px;\n  height: 10000px;\n  top: 0;\n  cursor: e-resize;\n  display: none;\n}\n.datagrid-body .datagrid-editable {\n  margin: 0;\n  padding: 0;\n}\n.datagrid-body .datagrid-editable table {\n  width: 100%;\n  height: 100%;\n}\n.datagrid-body .datagrid-editable td {\n  border: 0;\n  margin: 0;\n  padding: 0;\n}\n.datagrid-body .datagrid-editable .datagrid-editable-input {\n  margin: 0;\n  padding: 2px;\n  border-width: 1px;\n  border-style: solid;\n}\n.datagrid-sort-desc .datagrid-sort-icon {\n  padding: 0 13px 0 0;\n  background: url('images/datagrid_icons.png') no-repeat -16px center;\n}\n.datagrid-sort-asc .datagrid-sort-icon {\n  padding: 0 13px 0 0;\n  background: url('images/datagrid_icons.png') no-repeat 0px center;\n}\n.datagrid-row-collapse {\n  background: url('images/datagrid_icons.png') no-repeat -48px center;\n}\n.datagrid-row-expand {\n  background: url('images/datagrid_icons.png') no-repeat -32px center;\n}\n.datagrid-mask-msg {\n  background: #ffffff url('images/loading.gif') no-repeat scroll 5px center;\n}\n.datagrid-header,\n.datagrid-td-rownumber {\n  background-color: #F2F2F2;\n  background: -webkit-linear-gradient(top,#ffffff 0,#F2F2F2 100%);\n  background: -moz-linear-gradient(top,#ffffff 0,#F2F2F2 100%);\n  background: -o-linear-gradient(top,#ffffff 0,#F2F2F2 100%);\n  background: linear-gradient(to bottom,#ffffff 0,#F2F2F2 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#F2F2F2,GradientType=0);\n}\n.datagrid-cell-rownumber {\n  color: #333;\n}\n.datagrid-resize-proxy {\n  background: #bbb;\n}\n.datagrid-mask {\n  background: #ccc;\n}\n.datagrid-mask-msg {\n  border-color: #D4D4D4;\n}\n.datagrid-toolbar,\n.datagrid-pager {\n  background: #F5F5F5;\n}\n.datagrid-header,\n.datagrid-toolbar,\n.datagrid-pager,\n.datagrid-footer-inner {\n  border-color: #e6e6e6;\n}\n.datagrid-header td,\n.datagrid-body td,\n.datagrid-footer td {\n  border-color: #ccc;\n}\n.datagrid-htable,\n.datagrid-btable,\n.datagrid-ftable {\n  color: #333;\n  border-collapse: separate;\n}\n.datagrid-row-alt {\n  background: #F5F5F5;\n}\n.datagrid-row-over,\n.datagrid-header td.datagrid-header-over {\n  background: #e6e6e6;\n  color: #00438a;\n  cursor: default;\n}\n.datagrid-row-selected {\n  background: #0081c2;\n  color: #fff;\n}\n.datagrid-body .datagrid-editable .datagrid-editable-input {\n  border-color: #D4D4D4;\n}\n.propertygrid .datagrid-view1 .datagrid-body td {\n  padding-bottom: 1px;\n  border-width: 0 1px 0 0;\n}\n.propertygrid .datagrid-group {\n  height: 21px;\n  overflow: hidden;\n  border-width: 0 0 1px 0;\n  border-style: solid;\n}\n.propertygrid .datagrid-group span {\n  font-weight: bold;\n}\n.propertygrid .datagrid-view1 .datagrid-body td {\n  border-color: #e6e6e6;\n}\n.propertygrid .datagrid-view1 .datagrid-group {\n  border-color: #F2F2F2;\n}\n.propertygrid .datagrid-view2 .datagrid-group {\n  border-color: #e6e6e6;\n}\n.propertygrid .datagrid-group,\n.propertygrid .datagrid-view1 .datagrid-body,\n.propertygrid .datagrid-view1 .datagrid-row-over,\n.propertygrid .datagrid-view1 .datagrid-row-selected {\n  background: #F2F2F2;\n}\n.pagination {\n  zoom: 1;\n}\n.pagination table {\n  float: left;\n  height: 30px;\n}\n.pagination td {\n  border: 0;\n}\n.pagination-btn-separator {\n  float: left;\n  height: 24px;\n  border-left: 1px solid #ccc;\n  border-right: 1px solid #fff;\n  margin: 3px 1px;\n}\n.pagination .pagination-num {\n  border-width: 1px;\n  border-style: solid;\n  margin: 0 2px;\n  padding: 2px;\n  width: 2em;\n  height: auto;\n}\n.pagination-page-list {\n  margin: 0px 6px;\n  padding: 1px 2px;\n  width: auto;\n  height: auto;\n  border-width: 1px;\n  border-style: solid;\n}\n.pagination-info {\n  float: right;\n  margin: 0 6px 0 0;\n  padding: 0;\n  height: 30px;\n  line-height: 30px;\n  font-size: 12px;\n}\n.pagination span {\n  font-size: 12px;\n}\na.pagination-link {\n  padding: 1px;\n}\na.pagination-link span.l-btn-left {\n  padding-left: 0;\n}\na.pagination-link span span.l-btn-text {\n  width: 24px;\n  text-align: center;\n}\na:hover.pagination-link {\n  padding: 0;\n}\n.pagination-first {\n  background: url('images/pagination_icons.png') no-repeat 0 center;\n}\n.pagination-prev {\n  background: url('images/pagination_icons.png') no-repeat -16px center;\n}\n.pagination-next {\n  background: url('images/pagination_icons.png') no-repeat -32px center;\n}\n.pagination-last {\n  background: url('images/pagination_icons.png') no-repeat -48px center;\n}\n.pagination-load {\n  background: url('images/pagination_icons.png') no-repeat -64px center;\n}\n.pagination-loading {\n  background: url('images/loading.gif') no-repeat center center;\n}\n.pagination-page-list,\n.pagination .pagination-num {\n  border-color: #D4D4D4;\n}\n.calendar {\n  border-width: 1px;\n  border-style: solid;\n  padding: 1px;\n  overflow: hidden;\n}\n.calendar table {\n  border-collapse: separate;\n  font-size: 12px;\n  width: 100%;\n  height: 100%;\n}\n.calendar table td,\n.calendar table th {\n  font-size: 12px;\n}\n.calendar-noborder {\n  border: 0;\n}\n.calendar-header {\n  position: relative;\n  height: 22px;\n}\n.calendar-title {\n  text-align: center;\n  height: 22px;\n}\n.calendar-title span {\n  position: relative;\n  display: inline-block;\n  top: 2px;\n  padding: 0 3px;\n  height: 18px;\n  line-height: 18px;\n  font-size: 12px;\n  cursor: pointer;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.calendar-prevmonth,\n.calendar-nextmonth,\n.calendar-prevyear,\n.calendar-nextyear {\n  position: absolute;\n  top: 50%;\n  margin-top: -7px;\n  width: 14px;\n  height: 14px;\n  cursor: pointer;\n  font-size: 1px;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.calendar-prevmonth {\n  left: 20px;\n  background: url('images/calendar_arrows.png') no-repeat -18px -2px;\n}\n.calendar-nextmonth {\n  right: 20px;\n  background: url('images/calendar_arrows.png') no-repeat -34px -2px;\n}\n.calendar-prevyear {\n  left: 3px;\n  background: url('images/calendar_arrows.png') no-repeat -1px -2px;\n}\n.calendar-nextyear {\n  right: 3px;\n  background: url('images/calendar_arrows.png') no-repeat -49px -2px;\n}\n.calendar-body {\n  position: relative;\n}\n.calendar-body th,\n.calendar-body td {\n  text-align: center;\n}\n.calendar-day {\n  border: 0;\n  padding: 1px;\n  cursor: pointer;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.calendar-other-month {\n  opacity: 0.3;\n  filter: alpha(opacity=30);\n}\n.calendar-menu {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 180px;\n  height: 150px;\n  padding: 5px;\n  font-size: 12px;\n  display: none;\n  overflow: hidden;\n}\n.calendar-menu-year-inner {\n  text-align: center;\n  padding-bottom: 5px;\n}\n.calendar-menu-year {\n  width: 40px;\n  text-align: center;\n  border-width: 1px;\n  border-style: solid;\n  margin: 0;\n  padding: 2px;\n  font-weight: bold;\n  font-size: 12px;\n}\n.calendar-menu-prev,\n.calendar-menu-next {\n  display: inline-block;\n  width: 21px;\n  height: 21px;\n  vertical-align: top;\n  cursor: pointer;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.calendar-menu-prev {\n  margin-right: 10px;\n  background: url('images/calendar_arrows.png') no-repeat 2px 2px;\n}\n.calendar-menu-next {\n  margin-left: 10px;\n  background: url('images/calendar_arrows.png') no-repeat -45px 2px;\n}\n.calendar-menu-month {\n  text-align: center;\n  cursor: pointer;\n  font-weight: bold;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.calendar-body th,\n.calendar-menu-month {\n  color: #808080;\n}\n.calendar-day {\n  color: #333;\n}\n.calendar-sunday {\n  color: #CC2222;\n}\n.calendar-saturday {\n  color: #00ee00;\n}\n.calendar-today {\n  color: #0000ff;\n}\n.calendar-menu-year {\n  border-color: #D4D4D4;\n}\n.calendar {\n  border-color: #D4D4D4;\n}\n.calendar-header {\n  background: #F2F2F2;\n}\n.calendar-body,\n.calendar-menu {\n  background: #ffffff;\n}\n.calendar-body th {\n  background: #F5F5F5;\n}\n.calendar-hover,\n.calendar-nav-hover,\n.calendar-menu-hover {\n  background-color: #e6e6e6;\n  color: #00438a;\n}\n.calendar-hover {\n  border: 1px solid #ddd;\n  padding: 0;\n}\n.calendar-selected {\n  background-color: #0081c2;\n  color: #fff;\n  border: 1px solid #0070a9;\n  padding: 0;\n}\n.datebox-calendar-inner {\n  height: 180px;\n}\n.datebox-button {\n  height: 18px;\n  padding: 2px 5px;\n  text-align: center;\n}\n.datebox-button a {\n  font-size: 12px;\n  font-weight: bold;\n  text-decoration: none;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.datebox-button a:hover {\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n}\n.datebox-current,\n.datebox-close {\n  float: left;\n}\n.datebox-close {\n  float: right;\n}\n.datebox .combo-arrow {\n  background-image: url('images/datebox_arrow.png');\n  background-position: center center;\n}\n.datebox-button {\n  background-color: #F5F5F5;\n}\n.datebox-button a {\n  color: #444;\n}\n.spinner {\n  display: inline-block;\n  white-space: nowrap;\n  margin: 0;\n  padding: 0;\n  border-width: 1px;\n  border-style: solid;\n  overflow: hidden;\n  vertical-align: middle;\n}\n.spinner .spinner-text {\n  font-size: 12px;\n  border: 0px;\n  line-height: 20px;\n  height: 20px;\n  margin: 0;\n  padding: 0 2px;\n  *margin-top: -1px;\n  *height: 18px;\n  *line-height: 18px;\n  _height: 18px;\n  _line-height: 18px;\n  vertical-align: baseline;\n}\n.spinner-arrow {\n  display: inline-block;\n  overflow: hidden;\n  vertical-align: top;\n  margin: 0;\n  padding: 0;\n}\n.spinner-arrow-up,\n.spinner-arrow-down {\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n  display: block;\n  font-size: 1px;\n  width: 18px;\n  height: 10px;\n}\n.spinner-arrow-hover {\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n}\n.spinner-arrow-up {\n  background: url('images/spinner_arrows.png') no-repeat 1px center;\n}\n.spinner-arrow-down {\n  background: url('images/spinner_arrows.png') no-repeat -15px center;\n}\n.spinner {\n  border-color: #D4D4D4;\n}\n.spinner-arrow {\n  background-color: #F2F2F2;\n}\n.spinner-arrow-hover {\n  background-color: #e6e6e6;\n}\n.progressbar {\n  border-width: 1px;\n  border-style: solid;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n  overflow: hidden;\n  position: relative;\n}\n.progressbar-text {\n  text-align: center;\n  position: absolute;\n}\n.progressbar-value {\n  position: relative;\n  overflow: hidden;\n  width: 0;\n  -moz-border-radius: 5px 0 0 5px;\n  -webkit-border-radius: 5px 0 0 5px;\n  border-radius: 5px 0 0 5px;\n}\n.progressbar {\n  border-color: #D4D4D4;\n}\n.progressbar-text {\n  color: #333;\n  font-size: 12px;\n}\n.progressbar-value .progressbar-text {\n  background-color: #0081c2;\n  color: #fff;\n}\n.searchbox {\n  display: inline-block;\n  white-space: nowrap;\n  margin: 0;\n  padding: 0;\n  border-width: 1px;\n  border-style: solid;\n  overflow: hidden;\n}\n.searchbox .searchbox-text {\n  font-size: 12px;\n  border: 0;\n  margin: 0;\n  padding: 0;\n  line-height: 20px;\n  height: 20px;\n  *margin-top: -1px;\n  *height: 18px;\n  *line-height: 18px;\n  _height: 18px;\n  _line-height: 18px;\n  vertical-align: baseline;\n}\n.searchbox .searchbox-prompt {\n  font-size: 12px;\n  color: #ccc;\n}\n.searchbox-button {\n  width: 18px;\n  height: 20px;\n  overflow: hidden;\n  display: inline-block;\n  vertical-align: top;\n  cursor: pointer;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.searchbox-button-hover {\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n}\n.searchbox a.l-btn-plain {\n  height: 20px;\n  border: 0;\n  padding: 0 6px 0 0;\n  vertical-align: top;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n  -moz-border-radius: 0 0 0 0;\n  -webkit-border-radius: 0 0 0 0;\n  border-radius: 0 0 0 0;\n}\n.searchbox a.l-btn .l-btn-left {\n  padding: 0 0 0 4px;\n}\n.searchbox a.l-btn .l-btn-text {\n  position: static;\n  vertical-align: top;\n}\n.searchbox a.l-btn-plain:hover {\n  border: 0;\n  padding: 0 6px 0 0;\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n  -moz-border-radius: 0 0 0 0;\n  -webkit-border-radius: 0 0 0 0;\n  border-radius: 0 0 0 0;\n}\n.searchbox a.m-btn-plain-active {\n  -moz-border-radius: 0 0 0 0;\n  -webkit-border-radius: 0 0 0 0;\n  border-radius: 0 0 0 0;\n}\n.searchbox-button {\n  background: url('images/searchbox_button.png') no-repeat center center;\n}\n.searchbox {\n  border-color: #D4D4D4;\n  background-color: #fff;\n}\n.searchbox a.l-btn-plain {\n  background: #F2F2F2;\n}\n.slider-disabled {\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n}\n.slider-h {\n  height: 22px;\n}\n.slider-v {\n  width: 22px;\n}\n.slider-inner {\n  position: relative;\n  height: 6px;\n  top: 7px;\n  border-width: 1px;\n  border-style: solid;\n  border-radius: 5px;\n}\n.slider-handle {\n  position: absolute;\n  display: block;\n  outline: none;\n  width: 20px;\n  height: 20px;\n  top: -7px;\n  margin-left: -10px;\n}\n.slider-tip {\n  position: absolute;\n  display: inline-block;\n  line-height: 12px;\n  font-size: 12px;\n  white-space: nowrap;\n  top: -22px;\n}\n.slider-rule {\n  position: relative;\n  top: 15px;\n}\n.slider-rule span {\n  position: absolute;\n  display: inline-block;\n  font-size: 0;\n  height: 5px;\n  border-width: 0 0 0 1px;\n  border-style: solid;\n}\n.slider-rulelabel {\n  position: relative;\n  top: 20px;\n}\n.slider-rulelabel span {\n  position: absolute;\n  display: inline-block;\n  font-size: 12px;\n}\n.slider-v .slider-inner {\n  width: 6px;\n  left: 7px;\n  top: 0;\n  float: left;\n}\n.slider-v .slider-handle {\n  left: 3px;\n  margin-top: -10px;\n}\n.slider-v .slider-tip {\n  left: -10px;\n  margin-top: -6px;\n}\n.slider-v .slider-rule {\n  float: left;\n  top: 0;\n  left: 16px;\n}\n.slider-v .slider-rule span {\n  width: 5px;\n  height: 'auto';\n  border-left: 0;\n  border-width: 1px 0 0 0;\n  border-style: solid;\n}\n.slider-v .slider-rulelabel {\n  float: left;\n  top: 0;\n  left: 23px;\n}\n.slider-handle {\n  background: url('images/slider_handle.png') no-repeat;\n}\n.slider-inner {\n  border-color: #D4D4D4;\n  background: #F2F2F2;\n}\n.slider-rule span {\n  border-color: #D4D4D4;\n}\n.slider-rulelabel span {\n  color: #333;\n}\n.menu {\n  position: absolute;\n  margin: 0;\n  padding: 2px;\n  border-width: 1px;\n  border-style: solid;\n  overflow: hidden;\n}\n.menu-item {\n  position: relative;\n  margin: 0;\n  padding: 0;\n  overflow: hidden;\n  white-space: nowrap;\n  cursor: pointer;\n  border-width: 1px;\n  border-style: solid;\n}\n.menu-text {\n  height: 20px;\n  line-height: 20px;\n  float: left;\n  padding-left: 28px;\n}\n.menu-icon {\n  position: absolute;\n  width: 16px;\n  height: 16px;\n  left: 2px;\n  top: 50%;\n  margin-top: -8px;\n}\n.menu-rightarrow {\n  position: absolute;\n  width: 16px;\n  height: 16px;\n  right: 0;\n  top: 50%;\n  margin-top: -8px;\n}\n.menu-line {\n  position: absolute;\n  left: 26px;\n  top: 0;\n  height: 2000px;\n  font-size: 1px;\n}\n.menu-sep {\n  margin: 3px 0px 3px 25px;\n  font-size: 1px;\n}\n.menu-active {\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.menu-item-disabled {\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n  cursor: default;\n}\n.menu-text,\n.menu-text span {\n  font-size: 12px;\n}\n.menu-shadow {\n  position: absolute;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n  background: #ccc;\n  -moz-box-shadow: 2px 2px 3px #cccccc;\n  -webkit-box-shadow: 2px 2px 3px #cccccc;\n  box-shadow: 2px 2px 3px #cccccc;\n  filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2);\n}\n.menu-rightarrow {\n  background: url('images/menu_arrows.png') no-repeat -32px center;\n}\n.menu-line {\n  border-left: 1px solid #ccc;\n  border-right: 1px solid #fff;\n}\n.menu-sep {\n  border-top: 1px solid #ccc;\n  border-bottom: 1px solid #fff;\n}\n.menu {\n  background-color: #fff;\n  border-color: #e6e6e6;\n  color: #333;\n}\n.menu-content {\n  background: #ffffff;\n}\n.menu-item {\n  border-color: transparent;\n  _border-color: #fff;\n}\n.menu-active {\n  border-color: #ddd;\n  color: #00438a;\n  background: #e6e6e6;\n}\n.menu-active-disabled {\n  border-color: transparent;\n  background: transparent;\n  color: #333;\n}\n.m-btn-downarrow {\n  display: inline-block;\n  width: 16px;\n  height: 16px;\n  line-height: 16px;\n  font-size: 12px;\n  _vertical-align: middle;\n}\na.m-btn-active {\n  background-position: bottom right;\n}\na.m-btn-active span.l-btn-left {\n  background-position: bottom left;\n}\na.m-btn-plain-active {\n  background: transparent;\n  padding: 0 5px 0 0;\n  border-width: 1px;\n  border-style: solid;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.m-btn-downarrow {\n  background: url('images/menu_arrows.png') no-repeat 2px center;\n}\na.m-btn-plain-active {\n  border-color: #ddd;\n  background-color: #e6e6e6;\n  color: #00438a;\n}\n.s-btn-downarrow {\n  display: inline-block;\n  margin: 0 0 0 4px;\n  padding: 0 0 0 1px;\n  width: 14px;\n  height: 16px;\n  line-height: 16px;\n  border-width: 0;\n  border-style: solid;\n  font-size: 12px;\n  _vertical-align: middle;\n}\na.s-btn-active {\n  background-position: bottom right;\n}\na.s-btn-active span.l-btn-left {\n  background-position: bottom left;\n}\na.s-btn-plain-active {\n  background: transparent;\n  padding: 0 5px 0 0;\n  border-width: 1px;\n  border-style: solid;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.s-btn-downarrow {\n  background: url('images/menu_arrows.png') no-repeat 2px center;\n  border-color: #bbb;\n}\na:hover.l-btn .s-btn-downarrow,\na.s-btn-active .s-btn-downarrow,\na.s-btn-plain-active .s-btn-downarrow {\n  background-position: 1px center;\n  padding: 0;\n  border-width: 0 0 0 1px;\n}\na.s-btn-plain-active {\n  border-color: #ddd;\n  background-color: #e6e6e6;\n  color: #00438a;\n}\n.messager-body {\n  padding: 10px;\n  overflow: hidden;\n}\n.messager-button {\n  text-align: center;\n  padding-top: 10px;\n}\n.messager-icon {\n  float: left;\n  width: 32px;\n  height: 32px;\n  margin: 0 10px 10px 0;\n}\n.messager-error {\n  background: url('images/messager_icons.png') no-repeat scroll -64px 0;\n}\n.messager-info {\n  background: url('images/messager_icons.png') no-repeat scroll 0 0;\n}\n.messager-question {\n  background: url('images/messager_icons.png') no-repeat scroll -32px 0;\n}\n.messager-warning {\n  background: url('images/messager_icons.png') no-repeat scroll -96px 0;\n}\n.messager-progress {\n  padding: 10px;\n}\n.messager-p-msg {\n  margin-bottom: 5px;\n}\n.messager-body .messager-input {\n  width: 100%;\n  padding: 1px 0;\n  border: 1px solid #D4D4D4;\n}\n.tree {\n  margin: 0;\n  padding: 0;\n  list-style-type: none;\n}\n.tree li {\n  white-space: nowrap;\n}\n.tree li ul {\n  list-style-type: none;\n  margin: 0;\n  padding: 0;\n}\n.tree-node {\n  height: 18px;\n  white-space: nowrap;\n  cursor: pointer;\n}\n.tree-hit {\n  cursor: pointer;\n}\n.tree-expanded,\n.tree-collapsed,\n.tree-folder,\n.tree-file,\n.tree-checkbox,\n.tree-indent {\n  display: inline-block;\n  width: 16px;\n  height: 18px;\n  vertical-align: top;\n  overflow: hidden;\n}\n.tree-expanded {\n  background: url('images/tree_icons.png') no-repeat -18px 0px;\n}\n.tree-expanded-hover {\n  background: url('images/tree_icons.png') no-repeat -50px 0px;\n}\n.tree-collapsed {\n  background: url('images/tree_icons.png') no-repeat 0px 0px;\n}\n.tree-collapsed-hover {\n  background: url('images/tree_icons.png') no-repeat -32px 0px;\n}\n.tree-lines .tree-expanded,\n.tree-lines .tree-root-first .tree-expanded {\n  background: url('images/tree_icons.png') no-repeat -144px 0;\n}\n.tree-lines .tree-collapsed,\n.tree-lines .tree-root-first .tree-collapsed {\n  background: url('images/tree_icons.png') no-repeat -128px 0;\n}\n.tree-lines .tree-node-last .tree-expanded,\n.tree-lines .tree-root-one .tree-expanded {\n  background: url('images/tree_icons.png') no-repeat -80px 0;\n}\n.tree-lines .tree-node-last .tree-collapsed,\n.tree-lines .tree-root-one .tree-collapsed {\n  background: url('images/tree_icons.png') no-repeat -64px 0;\n}\n.tree-line {\n  background: url('images/tree_icons.png') no-repeat -176px 0;\n}\n.tree-join {\n  background: url('images/tree_icons.png') no-repeat -192px 0;\n}\n.tree-joinbottom {\n  background: url('images/tree_icons.png') no-repeat -160px 0;\n}\n.tree-folder {\n  background: url('images/tree_icons.png') no-repeat -208px 0;\n}\n.tree-folder-open {\n  background: url('images/tree_icons.png') no-repeat -224px 0;\n}\n.tree-file {\n  background: url('images/tree_icons.png') no-repeat -240px 0;\n}\n.tree-loading {\n  background: url('images/loading.gif') no-repeat center center;\n}\n.tree-checkbox0 {\n  background: url('images/tree_icons.png') no-repeat -208px -18px;\n}\n.tree-checkbox1 {\n  background: url('images/tree_icons.png') no-repeat -224px -18px;\n}\n.tree-checkbox2 {\n  background: url('images/tree_icons.png') no-repeat -240px -18px;\n}\n.tree-title {\n  font-size: 12px;\n  display: inline-block;\n  text-decoration: none;\n  vertical-align: top;\n  white-space: nowrap;\n  padding: 0 2px;\n  height: 18px;\n  line-height: 18px;\n}\n.tree-node-proxy {\n  font-size: 12px;\n  line-height: 20px;\n  padding: 0 2px 0 20px;\n  border-width: 1px;\n  border-style: solid;\n  z-index: 9900000;\n}\n.tree-dnd-icon {\n  display: inline-block;\n  position: absolute;\n  width: 16px;\n  height: 18px;\n  left: 2px;\n  top: 50%;\n  margin-top: -9px;\n}\n.tree-dnd-yes {\n  background: url('images/tree_icons.png') no-repeat -256px 0;\n}\n.tree-dnd-no {\n  background: url('images/tree_icons.png') no-repeat -256px -18px;\n}\n.tree-node-top {\n  border-top: 1px dotted red;\n}\n.tree-node-bottom {\n  border-bottom: 1px dotted red;\n}\n.tree-node-append .tree-title {\n  border: 1px dotted red;\n}\n.tree-editor {\n  border: 1px solid #ccc;\n  font-size: 12px;\n  height: 14px !important;\n  height: 18px;\n  line-height: 14px;\n  padding: 1px 2px;\n  width: 80px;\n  position: absolute;\n  top: 0;\n}\n.tree-node-proxy {\n  background-color: #ffffff;\n  color: #333;\n  border-color: #D4D4D4;\n}\n.tree-node-hover {\n  background: #e6e6e6;\n  color: #00438a;\n}\n.tree-node-selected {\n  background: #0081c2;\n  color: #fff;\n}\n.validatebox-invalid {\n  background-image: url('images/validatebox_warning.png');\n  background-repeat: no-repeat;\n  background-position: right center;\n  border-color: #ffa8a8;\n  background-color: #fff3f3;\n  color: #000;\n}\n.tooltip {\n  position: absolute;\n  display: none;\n  z-index: 9900000;\n  outline: none;\n  opacity: 1;\n  filter: alpha(opacity=100);\n  padding: 5px;\n  border-width: 1px;\n  border-style: solid;\n  border-radius: 5px;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.tooltip-content {\n  font-size: 12px;\n}\n.tooltip-arrow-outer,\n.tooltip-arrow {\n  position: absolute;\n  width: 0;\n  height: 0;\n  line-height: 0;\n  font-size: 0;\n  border-style: solid;\n  border-width: 6px;\n  border-color: transparent;\n  _border-color: tomato;\n  _filter: chroma(color=tomato);\n}\n.tooltip-right .tooltip-arrow-outer {\n  left: 0;\n  top: 50%;\n  margin: -6px 0 0 -13px;\n}\n.tooltip-right .tooltip-arrow {\n  left: 0;\n  top: 50%;\n  margin: -6px 0 0 -12px;\n}\n.tooltip-left .tooltip-arrow-outer {\n  right: 0;\n  top: 50%;\n  margin: -6px -13px 0 0;\n}\n.tooltip-left .tooltip-arrow {\n  right: 0;\n  top: 50%;\n  margin: -6px -12px 0 0;\n}\n.tooltip-top .tooltip-arrow-outer {\n  bottom: 0;\n  left: 50%;\n  margin: 0 0 -13px -6px;\n}\n.tooltip-top .tooltip-arrow {\n  bottom: 0;\n  left: 50%;\n  margin: 0 0 -12px -6px;\n}\n.tooltip-bottom .tooltip-arrow-outer {\n  top: 0;\n  left: 50%;\n  margin: -13px 0 0 -6px;\n}\n.tooltip-bottom .tooltip-arrow {\n  top: 0;\n  left: 50%;\n  margin: -12px 0 0 -6px;\n}\n.tooltip {\n  background-color: #ffffff;\n  border-color: #D4D4D4;\n  color: #333;\n}\n.tooltip-right .tooltip-arrow-outer {\n  border-right-color: #D4D4D4;\n}\n.tooltip-right .tooltip-arrow {\n  border-right-color: #ffffff;\n}\n.tooltip-left .tooltip-arrow-outer {\n  border-left-color: #D4D4D4;\n}\n.tooltip-left .tooltip-arrow {\n  border-left-color: #ffffff;\n}\n.tooltip-top .tooltip-arrow-outer {\n  border-top-color: #D4D4D4;\n}\n.tooltip-top .tooltip-arrow {\n  border-top-color: #ffffff;\n}\n.tooltip-bottom .tooltip-arrow-outer {\n  border-bottom-color: #D4D4D4;\n}\n.tooltip-bottom .tooltip-arrow {\n  border-bottom-color: #ffffff;\n}\n.tabs-panels {\n  border-color: transparent;\n}\n.tabs li a.tabs-inner {\n  border-color: transparent;\n  background: transparent;\n  filter: none;\n  color: #0088CC;\n}\n.menu-active {\n  background-color: #0081C2;\n  border-color: #0081C2;\n  color: #fff;\n}\n.menu-active-disabled {\n  border-color: transparent;\n  background: transparent;\n  color: #333;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/bootstrap/layout.css",
    "content": ".layout {\n  position: relative;\n  overflow: hidden;\n  margin: 0;\n  padding: 0;\n  z-index: 0;\n}\n.layout-panel {\n  position: absolute;\n  overflow: hidden;\n}\n.layout-panel-east,\n.layout-panel-west {\n  z-index: 2;\n}\n.layout-panel-north,\n.layout-panel-south {\n  z-index: 3;\n}\n.layout-expand {\n  position: absolute;\n  padding: 0px;\n  font-size: 1px;\n  cursor: pointer;\n  z-index: 1;\n}\n.layout-expand .panel-header,\n.layout-expand .panel-body {\n  background: transparent;\n  filter: none;\n  overflow: hidden;\n}\n.layout-expand .panel-header {\n  border-bottom-width: 0px;\n}\n.layout-split-proxy-h,\n.layout-split-proxy-v {\n  position: absolute;\n  font-size: 1px;\n  display: none;\n  z-index: 5;\n}\n.layout-split-proxy-h {\n  width: 5px;\n  cursor: e-resize;\n}\n.layout-split-proxy-v {\n  height: 5px;\n  cursor: n-resize;\n}\n.layout-mask {\n  position: absolute;\n  background: #fafafa;\n  filter: alpha(opacity=10);\n  opacity: 0.10;\n  z-index: 4;\n}\n.layout-button-up {\n  background: url('images/layout_arrows.png') no-repeat -16px -16px;\n}\n.layout-button-down {\n  background: url('images/layout_arrows.png') no-repeat -16px 0;\n}\n.layout-button-left {\n  background: url('images/layout_arrows.png') no-repeat 0 0;\n}\n.layout-button-right {\n  background: url('images/layout_arrows.png') no-repeat 0 -16px;\n}\n.layout-split-proxy-h,\n.layout-split-proxy-v {\n  background-color: #bbb;\n}\n.layout-split-north {\n  border-bottom: 5px solid #eee;\n}\n.layout-split-south {\n  border-top: 5px solid #eee;\n}\n.layout-split-east {\n  border-left: 5px solid #eee;\n}\n.layout-split-west {\n  border-right: 5px solid #eee;\n}\n.layout-expand {\n  background-color: #F2F2F2;\n}\n.layout-expand-over {\n  background-color: #F2F2F2;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/bootstrap/linkbutton.css",
    "content": "a.l-btn {\n  background-position: right 0;\n  text-decoration: none;\n  display: inline-block;\n  zoom: 1;\n  height: 24px;\n  padding-right: 18px;\n  cursor: pointer;\n  outline: none;\n}\na.l-btn-plain {\n  border: 0;\n  padding: 1px 6px 1px 1px;\n}\na.l-btn-disabled {\n  color: #ccc;\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n  cursor: default;\n}\na.l-btn span.l-btn-left {\n  display: inline-block;\n  background-position: 0 -48px;\n  padding: 0 0 0 18px;\n  line-height: 24px;\n  height: 24px;\n}\na.l-btn-plain span.l-btn-left {\n  padding-left: 5px;\n}\na.l-btn span span.l-btn-text {\n  position: relative;\n  display: inline-block;\n  vertical-align: top;\n  top: 4px;\n  width: auto;\n  height: 16px;\n  line-height: 16px;\n  font-size: 12px;\n  padding: 0;\n  margin: 0;\n}\na.l-btn span span.l-btn-icon-left {\n  padding: 0 0 0 20px;\n  background-position: left center;\n}\na.l-btn span span.l-btn-icon-right {\n  padding: 0 20px 0 0;\n  background-position: right center;\n}\na.l-btn span span span.l-btn-empty {\n  display: inline-block;\n  margin: 0;\n  padding: 0;\n  width: 16px;\n}\na:hover.l-btn {\n  background-position: right -24px;\n  outline: none;\n  text-decoration: none;\n}\na:hover.l-btn span.l-btn-left {\n  background-position: 0 bottom;\n}\na:hover.l-btn-plain {\n  padding: 0 5px 0 0;\n}\na:hover.l-btn-disabled {\n  background-position: right 0;\n}\na:hover.l-btn-disabled span.l-btn-left {\n  background-position: 0 -48px;\n}\na.l-btn .l-btn-focus {\n  outline: #0000FF dotted thin;\n}\na.l-btn {\n  color: #444;\n  background-image: url('images/linkbutton_bg.png');\n  background-repeat: no-repeat;\n  background: #f5f5f5;\n  background-repeat: repeat-x;\n  border: 1px solid #bbb;\n  background: -webkit-linear-gradient(top,#ffffff 0,#e6e6e6 100%);\n  background: -moz-linear-gradient(top,#ffffff 0,#e6e6e6 100%);\n  background: -o-linear-gradient(top,#ffffff 0,#e6e6e6 100%);\n  background: linear-gradient(to bottom,#ffffff 0,#e6e6e6 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#e6e6e6,GradientType=0);\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\na.l-btn span.l-btn-left {\n  background-image: url('images/linkbutton_bg.png');\n  background-repeat: no-repeat;\n  background-image: none;\n}\na:hover.l-btn {\n  background: #e6e6e6;\n  color: #00438a;\n  border: 1px solid #ddd;\n  filter: none;\n}\na.l-btn-plain,\na.l-btn-plain span.l-btn-left {\n  background: transparent;\n  border: 0;\n  filter: none;\n}\na:hover.l-btn-plain {\n  background: #e6e6e6;\n  color: #00438a;\n  border: 1px solid #ddd;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\na.l-btn-disabled,\na:hover.l-btn-disabled {\n  color: #444;\n  filter: alpha(opacity=50);\n  background: #f5f5f5;\n  color: #444;\n  background: -webkit-linear-gradient(top,#ffffff 0,#e6e6e6 100%);\n  background: -moz-linear-gradient(top,#ffffff 0,#e6e6e6 100%);\n  background: -o-linear-gradient(top,#ffffff 0,#e6e6e6 100%);\n  background: linear-gradient(to bottom,#ffffff 0,#e6e6e6 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#e6e6e6,GradientType=0);\n  filter: alpha(opacity=50) progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#e6e6e6,GradientType=0);\n}\na.l-btn-plain-disabled,\na:hover.l-btn-plain-disabled {\n  background: transparent;\n  filter: alpha(opacity=50);\n}\na.l-btn-selected,\na:hover.l-btn-selected {\n  background-position: right -24px;\n  background: #ddd;\n  filter: none;\n}\na.l-btn-selected span.l-btn-left,\na:hover.l-btn-selected span.l-btn-left {\n  background-position: 0 bottom;\n  background-image: none;\n}\na.l-btn-plain-selected,\na:hover.l-btn-plain-selected {\n  background: #ddd;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/bootstrap/menu.css",
    "content": ".menu {\n  position: absolute;\n  margin: 0;\n  padding: 2px;\n  border-width: 1px;\n  border-style: solid;\n  overflow: hidden;\n}\n.menu-item {\n  position: relative;\n  margin: 0;\n  padding: 0;\n  overflow: hidden;\n  white-space: nowrap;\n  cursor: pointer;\n  border-width: 1px;\n  border-style: solid;\n}\n.menu-text {\n  height: 20px;\n  line-height: 20px;\n  float: left;\n  padding-left: 28px;\n}\n.menu-icon {\n  position: absolute;\n  width: 16px;\n  height: 16px;\n  left: 2px;\n  top: 50%;\n  margin-top: -8px;\n}\n.menu-rightarrow {\n  position: absolute;\n  width: 16px;\n  height: 16px;\n  right: 0;\n  top: 50%;\n  margin-top: -8px;\n}\n.menu-line {\n  position: absolute;\n  left: 26px;\n  top: 0;\n  height: 2000px;\n  font-size: 1px;\n}\n.menu-sep {\n  margin: 3px 0px 3px 25px;\n  font-size: 1px;\n}\n.menu-active {\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.menu-item-disabled {\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n  cursor: default;\n}\n.menu-text,\n.menu-text span {\n  font-size: 12px;\n}\n.menu-shadow {\n  position: absolute;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n  background: #ccc;\n  -moz-box-shadow: 2px 2px 3px #cccccc;\n  -webkit-box-shadow: 2px 2px 3px #cccccc;\n  box-shadow: 2px 2px 3px #cccccc;\n  filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2);\n}\n.menu-rightarrow {\n  background: url('images/menu_arrows.png') no-repeat -32px center;\n}\n.menu-line {\n  border-left: 1px solid #ccc;\n  border-right: 1px solid #fff;\n}\n.menu-sep {\n  border-top: 1px solid #ccc;\n  border-bottom: 1px solid #fff;\n}\n.menu {\n  background-color: #fff;\n  border-color: #e6e6e6;\n  color: #333;\n}\n.menu-content {\n  background: #ffffff;\n}\n.menu-item {\n  border-color: transparent;\n  _border-color: #fff;\n}\n.menu-active {\n  border-color: #ddd;\n  color: #00438a;\n  background: #e6e6e6;\n}\n.menu-active-disabled {\n  border-color: transparent;\n  background: transparent;\n  color: #333;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/bootstrap/menubutton.css",
    "content": ".m-btn-downarrow {\n  display: inline-block;\n  width: 16px;\n  height: 16px;\n  line-height: 16px;\n  font-size: 12px;\n  _vertical-align: middle;\n}\na.m-btn-active {\n  background-position: bottom right;\n}\na.m-btn-active span.l-btn-left {\n  background-position: bottom left;\n}\na.m-btn-plain-active {\n  background: transparent;\n  padding: 0 5px 0 0;\n  border-width: 1px;\n  border-style: solid;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.m-btn-downarrow {\n  background: url('images/menu_arrows.png') no-repeat 2px center;\n}\na.m-btn-plain-active {\n  border-color: #ddd;\n  background-color: #e6e6e6;\n  color: #00438a;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/bootstrap/messager.css",
    "content": ".messager-body {\n  padding: 10px;\n  overflow: hidden;\n}\n.messager-button {\n  text-align: center;\n  padding-top: 10px;\n}\n.messager-icon {\n  float: left;\n  width: 32px;\n  height: 32px;\n  margin: 0 10px 10px 0;\n}\n.messager-error {\n  background: url('images/messager_icons.png') no-repeat scroll -64px 0;\n}\n.messager-info {\n  background: url('images/messager_icons.png') no-repeat scroll 0 0;\n}\n.messager-question {\n  background: url('images/messager_icons.png') no-repeat scroll -32px 0;\n}\n.messager-warning {\n  background: url('images/messager_icons.png') no-repeat scroll -96px 0;\n}\n.messager-progress {\n  padding: 10px;\n}\n.messager-p-msg {\n  margin-bottom: 5px;\n}\n.messager-body .messager-input {\n  width: 100%;\n  padding: 1px 0;\n  border: 1px solid #D4D4D4;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/bootstrap/pagination.css",
    "content": ".pagination {\n  zoom: 1;\n}\n.pagination table {\n  float: left;\n  height: 30px;\n}\n.pagination td {\n  border: 0;\n}\n.pagination-btn-separator {\n  float: left;\n  height: 24px;\n  border-left: 1px solid #ccc;\n  border-right: 1px solid #fff;\n  margin: 3px 1px;\n}\n.pagination .pagination-num {\n  border-width: 1px;\n  border-style: solid;\n  margin: 0 2px;\n  padding: 2px;\n  width: 2em;\n  height: auto;\n}\n.pagination-page-list {\n  margin: 0px 6px;\n  padding: 1px 2px;\n  width: auto;\n  height: auto;\n  border-width: 1px;\n  border-style: solid;\n}\n.pagination-info {\n  float: right;\n  margin: 0 6px 0 0;\n  padding: 0;\n  height: 30px;\n  line-height: 30px;\n  font-size: 12px;\n}\n.pagination span {\n  font-size: 12px;\n}\na.pagination-link {\n  padding: 1px;\n}\na.pagination-link span.l-btn-left {\n  padding-left: 0;\n}\na.pagination-link span span.l-btn-text {\n  width: 24px;\n  text-align: center;\n}\na:hover.pagination-link {\n  padding: 0;\n}\n.pagination-first {\n  background: url('images/pagination_icons.png') no-repeat 0 center;\n}\n.pagination-prev {\n  background: url('images/pagination_icons.png') no-repeat -16px center;\n}\n.pagination-next {\n  background: url('images/pagination_icons.png') no-repeat -32px center;\n}\n.pagination-last {\n  background: url('images/pagination_icons.png') no-repeat -48px center;\n}\n.pagination-load {\n  background: url('images/pagination_icons.png') no-repeat -64px center;\n}\n.pagination-loading {\n  background: url('images/loading.gif') no-repeat center center;\n}\n.pagination-page-list,\n.pagination .pagination-num {\n  border-color: #D4D4D4;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/bootstrap/panel.css",
    "content": ".panel {\n  overflow: hidden;\n  text-align: left;\n  margin: 0;\n  border: 0;\n  -moz-border-radius: 0 0 0 0;\n  -webkit-border-radius: 0 0 0 0;\n  border-radius: 0 0 0 0;\n}\n.panel-header,\n.panel-body {\n  border-width: 1px;\n  border-style: solid;\n}\n.panel-header {\n  padding: 5px;\n  position: relative;\n}\n.panel-title {\n  background: url('images/blank.gif') no-repeat;\n}\n.panel-header-noborder {\n  border-width: 0 0 1px 0;\n}\n.panel-body {\n  overflow: auto;\n  border-top-width: 0;\n  padding: 0;\n}\n.panel-body-noheader {\n  border-top-width: 1px;\n}\n.panel-body-noborder {\n  border-width: 0px;\n}\n.panel-with-icon {\n  padding-left: 18px;\n}\n.panel-icon,\n.panel-tool {\n  position: absolute;\n  top: 50%;\n  margin-top: -8px;\n  height: 16px;\n  overflow: hidden;\n}\n.panel-icon {\n  left: 5px;\n  width: 16px;\n}\n.panel-tool {\n  right: 5px;\n  width: auto;\n}\n.panel-tool a {\n  display: inline-block;\n  width: 16px;\n  height: 16px;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n  margin: 0 0 0 2px;\n  vertical-align: top;\n}\n.panel-tool a:hover {\n  opacity: 1;\n  filter: alpha(opacity=100);\n  background-color: #e6e6e6;\n  -moz-border-radius: 3px 3px 3px 3px;\n  -webkit-border-radius: 3px 3px 3px 3px;\n  border-radius: 3px 3px 3px 3px;\n}\n.panel-loading {\n  padding: 11px 0px 10px 30px;\n}\n.panel-noscroll {\n  overflow: hidden;\n}\n.panel-fit,\n.panel-fit body {\n  height: 100%;\n  margin: 0;\n  padding: 0;\n  border: 0;\n  overflow: hidden;\n}\n.panel-loading {\n  background: url('images/loading.gif') no-repeat 10px 10px;\n}\n.panel-tool-close {\n  background: url('images/panel_tools.png') no-repeat -16px 0px;\n}\n.panel-tool-min {\n  background: url('images/panel_tools.png') no-repeat 0px 0px;\n}\n.panel-tool-max {\n  background: url('images/panel_tools.png') no-repeat 0px -16px;\n}\n.panel-tool-restore {\n  background: url('images/panel_tools.png') no-repeat -16px -16px;\n}\n.panel-tool-collapse {\n  background: url('images/panel_tools.png') no-repeat -32px 0;\n}\n.panel-tool-expand {\n  background: url('images/panel_tools.png') no-repeat -32px -16px;\n}\n.panel-header,\n.panel-body {\n  border-color: #D4D4D4;\n}\n.panel-header {\n  background-color: #F2F2F2;\n  background: -webkit-linear-gradient(top,#ffffff 0,#F2F2F2 100%);\n  background: -moz-linear-gradient(top,#ffffff 0,#F2F2F2 100%);\n  background: -o-linear-gradient(top,#ffffff 0,#F2F2F2 100%);\n  background: linear-gradient(to bottom,#ffffff 0,#F2F2F2 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#F2F2F2,GradientType=0);\n}\n.panel-body {\n  background-color: #ffffff;\n  color: #333;\n  font-size: 12px;\n}\n.panel-title {\n  font-size: 12px;\n  font-weight: bold;\n  color: #777;\n  height: 16px;\n  line-height: 16px;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/bootstrap/progressbar.css",
    "content": ".progressbar {\n  border-width: 1px;\n  border-style: solid;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n  overflow: hidden;\n  position: relative;\n}\n.progressbar-text {\n  text-align: center;\n  position: absolute;\n}\n.progressbar-value {\n  position: relative;\n  overflow: hidden;\n  width: 0;\n  -moz-border-radius: 5px 0 0 5px;\n  -webkit-border-radius: 5px 0 0 5px;\n  border-radius: 5px 0 0 5px;\n}\n.progressbar {\n  border-color: #D4D4D4;\n}\n.progressbar-text {\n  color: #333;\n  font-size: 12px;\n}\n.progressbar-value .progressbar-text {\n  background-color: #0081c2;\n  color: #fff;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/bootstrap/propertygrid.css",
    "content": ".propertygrid .datagrid-view1 .datagrid-body td {\n  padding-bottom: 1px;\n  border-width: 0 1px 0 0;\n}\n.propertygrid .datagrid-group {\n  height: 21px;\n  overflow: hidden;\n  border-width: 0 0 1px 0;\n  border-style: solid;\n}\n.propertygrid .datagrid-group span {\n  font-weight: bold;\n}\n.propertygrid .datagrid-view1 .datagrid-body td {\n  border-color: #e6e6e6;\n}\n.propertygrid .datagrid-view1 .datagrid-group {\n  border-color: #F2F2F2;\n}\n.propertygrid .datagrid-view2 .datagrid-group {\n  border-color: #e6e6e6;\n}\n.propertygrid .datagrid-group,\n.propertygrid .datagrid-view1 .datagrid-body,\n.propertygrid .datagrid-view1 .datagrid-row-over,\n.propertygrid .datagrid-view1 .datagrid-row-selected {\n  background: #F2F2F2;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/bootstrap/searchbox.css",
    "content": ".searchbox {\n  display: inline-block;\n  white-space: nowrap;\n  margin: 0;\n  padding: 0;\n  border-width: 1px;\n  border-style: solid;\n  overflow: hidden;\n}\n.searchbox .searchbox-text {\n  font-size: 12px;\n  border: 0;\n  margin: 0;\n  padding: 0;\n  line-height: 20px;\n  height: 20px;\n  *margin-top: -1px;\n  *height: 18px;\n  *line-height: 18px;\n  _height: 18px;\n  _line-height: 18px;\n  vertical-align: baseline;\n}\n.searchbox .searchbox-prompt {\n  font-size: 12px;\n  color: #ccc;\n}\n.searchbox-button {\n  width: 18px;\n  height: 20px;\n  overflow: hidden;\n  display: inline-block;\n  vertical-align: top;\n  cursor: pointer;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.searchbox-button-hover {\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n}\n.searchbox a.l-btn-plain {\n  height: 20px;\n  border: 0;\n  padding: 0 6px 0 0;\n  vertical-align: top;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n  -moz-border-radius: 0 0 0 0;\n  -webkit-border-radius: 0 0 0 0;\n  border-radius: 0 0 0 0;\n}\n.searchbox a.l-btn .l-btn-left {\n  padding: 0 0 0 4px;\n}\n.searchbox a.l-btn .l-btn-text {\n  position: static;\n  vertical-align: top;\n}\n.searchbox a.l-btn-plain:hover {\n  border: 0;\n  padding: 0 6px 0 0;\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n  -moz-border-radius: 0 0 0 0;\n  -webkit-border-radius: 0 0 0 0;\n  border-radius: 0 0 0 0;\n}\n.searchbox a.m-btn-plain-active {\n  -moz-border-radius: 0 0 0 0;\n  -webkit-border-radius: 0 0 0 0;\n  border-radius: 0 0 0 0;\n}\n.searchbox-button {\n  background: url('images/searchbox_button.png') no-repeat center center;\n}\n.searchbox {\n  border-color: #D4D4D4;\n  background-color: #fff;\n}\n.searchbox a.l-btn-plain {\n  background: #F2F2F2;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/bootstrap/slider.css",
    "content": ".slider-disabled {\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n}\n.slider-h {\n  height: 22px;\n}\n.slider-v {\n  width: 22px;\n}\n.slider-inner {\n  position: relative;\n  height: 6px;\n  top: 7px;\n  border-width: 1px;\n  border-style: solid;\n  border-radius: 5px;\n}\n.slider-handle {\n  position: absolute;\n  display: block;\n  outline: none;\n  width: 20px;\n  height: 20px;\n  top: -7px;\n  margin-left: -10px;\n}\n.slider-tip {\n  position: absolute;\n  display: inline-block;\n  line-height: 12px;\n  font-size: 12px;\n  white-space: nowrap;\n  top: -22px;\n}\n.slider-rule {\n  position: relative;\n  top: 15px;\n}\n.slider-rule span {\n  position: absolute;\n  display: inline-block;\n  font-size: 0;\n  height: 5px;\n  border-width: 0 0 0 1px;\n  border-style: solid;\n}\n.slider-rulelabel {\n  position: relative;\n  top: 20px;\n}\n.slider-rulelabel span {\n  position: absolute;\n  display: inline-block;\n  font-size: 12px;\n}\n.slider-v .slider-inner {\n  width: 6px;\n  left: 7px;\n  top: 0;\n  float: left;\n}\n.slider-v .slider-handle {\n  left: 3px;\n  margin-top: -10px;\n}\n.slider-v .slider-tip {\n  left: -10px;\n  margin-top: -6px;\n}\n.slider-v .slider-rule {\n  float: left;\n  top: 0;\n  left: 16px;\n}\n.slider-v .slider-rule span {\n  width: 5px;\n  height: 'auto';\n  border-left: 0;\n  border-width: 1px 0 0 0;\n  border-style: solid;\n}\n.slider-v .slider-rulelabel {\n  float: left;\n  top: 0;\n  left: 23px;\n}\n.slider-handle {\n  background: url('images/slider_handle.png') no-repeat;\n}\n.slider-inner {\n  border-color: #D4D4D4;\n  background: #F2F2F2;\n}\n.slider-rule span {\n  border-color: #D4D4D4;\n}\n.slider-rulelabel span {\n  color: #333;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/bootstrap/spinner.css",
    "content": ".spinner {\n  display: inline-block;\n  white-space: nowrap;\n  margin: 0;\n  padding: 0;\n  border-width: 1px;\n  border-style: solid;\n  overflow: hidden;\n  vertical-align: middle;\n}\n.spinner .spinner-text {\n  font-size: 12px;\n  border: 0px;\n  line-height: 20px;\n  height: 20px;\n  margin: 0;\n  padding: 0 2px;\n  *margin-top: -1px;\n  *height: 18px;\n  *line-height: 18px;\n  _height: 18px;\n  _line-height: 18px;\n  vertical-align: baseline;\n}\n.spinner-arrow {\n  display: inline-block;\n  overflow: hidden;\n  vertical-align: top;\n  margin: 0;\n  padding: 0;\n}\n.spinner-arrow-up,\n.spinner-arrow-down {\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n  display: block;\n  font-size: 1px;\n  width: 18px;\n  height: 10px;\n}\n.spinner-arrow-hover {\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n}\n.spinner-arrow-up {\n  background: url('images/spinner_arrows.png') no-repeat 1px center;\n}\n.spinner-arrow-down {\n  background: url('images/spinner_arrows.png') no-repeat -15px center;\n}\n.spinner {\n  border-color: #D4D4D4;\n}\n.spinner-arrow {\n  background-color: #F2F2F2;\n}\n.spinner-arrow-hover {\n  background-color: #e6e6e6;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/bootstrap/splitbutton.css",
    "content": ".s-btn-downarrow {\n  display: inline-block;\n  margin: 0 0 0 4px;\n  padding: 0 0 0 1px;\n  width: 14px;\n  height: 16px;\n  line-height: 16px;\n  border-width: 0;\n  border-style: solid;\n  font-size: 12px;\n  _vertical-align: middle;\n}\na.s-btn-active {\n  background-position: bottom right;\n}\na.s-btn-active span.l-btn-left {\n  background-position: bottom left;\n}\na.s-btn-plain-active {\n  background: transparent;\n  padding: 0 5px 0 0;\n  border-width: 1px;\n  border-style: solid;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.s-btn-downarrow {\n  background: url('images/menu_arrows.png') no-repeat 2px center;\n  border-color: #bbb;\n}\na:hover.l-btn .s-btn-downarrow,\na.s-btn-active .s-btn-downarrow,\na.s-btn-plain-active .s-btn-downarrow {\n  background-position: 1px center;\n  padding: 0;\n  border-width: 0 0 0 1px;\n}\na.s-btn-plain-active {\n  border-color: #ddd;\n  background-color: #e6e6e6;\n  color: #00438a;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/bootstrap/tabs.css",
    "content": ".tabs-container {\n  overflow: hidden;\n}\n.tabs-header {\n  border-width: 1px;\n  border-style: solid;\n  border-bottom-width: 0;\n  position: relative;\n  padding: 0;\n  padding-top: 2px;\n  overflow: hidden;\n}\n.tabs-header-plain {\n  border: 0;\n  background: transparent;\n}\n.tabs-scroller-left,\n.tabs-scroller-right {\n  position: absolute;\n  top: auto;\n  bottom: 0;\n  width: 18px;\n  font-size: 1px;\n  display: none;\n  cursor: pointer;\n  border-width: 1px;\n  border-style: solid;\n}\n.tabs-scroller-left {\n  left: 0;\n}\n.tabs-scroller-right {\n  right: 0;\n}\n.tabs-tool {\n  position: absolute;\n  bottom: 0;\n  padding: 1px;\n  overflow: hidden;\n  border-width: 1px;\n  border-style: solid;\n}\n.tabs-header-plain .tabs-tool {\n  padding: 0 1px;\n}\n.tabs-wrap {\n  position: relative;\n  left: 0;\n  overflow: hidden;\n  width: 100%;\n  margin: 0;\n  padding: 0;\n}\n.tabs-scrolling {\n  margin-left: 18px;\n  margin-right: 18px;\n}\n.tabs-disabled {\n  opacity: 0.3;\n  filter: alpha(opacity=30);\n}\n.tabs {\n  list-style-type: none;\n  height: 26px;\n  margin: 0px;\n  padding: 0px;\n  padding-left: 4px;\n  width: 5000px;\n  border-style: solid;\n  border-width: 0 0 1px 0;\n}\n.tabs li {\n  float: left;\n  display: inline-block;\n  margin: 0 4px -1px 0;\n  padding: 0;\n  position: relative;\n  border: 0;\n}\n.tabs li a.tabs-inner {\n  display: inline-block;\n  text-decoration: none;\n  margin: 0;\n  padding: 0 10px;\n  height: 25px;\n  line-height: 25px;\n  text-align: center;\n  white-space: nowrap;\n  border-width: 1px;\n  border-style: solid;\n  -moz-border-radius: 5px 5px 0 0;\n  -webkit-border-radius: 5px 5px 0 0;\n  border-radius: 5px 5px 0 0;\n}\n.tabs li.tabs-selected a.tabs-inner {\n  font-weight: bold;\n  outline: none;\n}\n.tabs li.tabs-selected a:hover.tabs-inner {\n  cursor: default;\n  pointer: default;\n}\n.tabs li a.tabs-close,\n.tabs-p-tool {\n  position: absolute;\n  font-size: 1px;\n  display: block;\n  height: 12px;\n  padding: 0;\n  top: 50%;\n  margin-top: -6px;\n  overflow: hidden;\n}\n.tabs li a.tabs-close {\n  width: 12px;\n  right: 5px;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.tabs-p-tool {\n  right: 16px;\n}\n.tabs-p-tool a {\n  display: inline-block;\n  font-size: 1px;\n  width: 12px;\n  height: 12px;\n  margin: 0;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.tabs li a:hover.tabs-close,\n.tabs-p-tool a:hover {\n  opacity: 1;\n  filter: alpha(opacity=100);\n  cursor: hand;\n  cursor: pointer;\n}\n.tabs-with-icon {\n  padding-left: 18px;\n}\n.tabs-icon {\n  position: absolute;\n  width: 16px;\n  height: 16px;\n  left: 10px;\n  top: 50%;\n  margin-top: -8px;\n}\n.tabs-title {\n  font-size: 12px;\n}\n.tabs-closable {\n  padding-right: 8px;\n}\n.tabs-panels {\n  margin: 0px;\n  padding: 0px;\n  border-width: 1px;\n  border-style: solid;\n  border-top-width: 0;\n  overflow: hidden;\n}\n.tabs-header-bottom {\n  border-width: 0 1px 1px 1px;\n  padding: 0 0 2px 0;\n}\n.tabs-header-bottom .tabs {\n  border-width: 1px 0 0 0;\n}\n.tabs-header-bottom .tabs li {\n  margin: -1px 4px 0 0;\n}\n.tabs-header-bottom .tabs li a.tabs-inner {\n  -moz-border-radius: 0 0 5px 5px;\n  -webkit-border-radius: 0 0 5px 5px;\n  border-radius: 0 0 5px 5px;\n}\n.tabs-header-bottom .tabs-tool {\n  top: 0;\n}\n.tabs-header-bottom .tabs-scroller-left,\n.tabs-header-bottom .tabs-scroller-right {\n  top: 0;\n  bottom: auto;\n}\n.tabs-panels-top {\n  border-width: 1px 1px 0 1px;\n}\n.tabs-header-left {\n  float: left;\n  border-width: 1px 0 1px 1px;\n  padding: 0;\n}\n.tabs-header-right {\n  float: right;\n  border-width: 1px 1px 1px 0;\n  padding: 0;\n}\n.tabs-header-left .tabs-wrap,\n.tabs-header-right .tabs-wrap {\n  height: 100%;\n}\n.tabs-header-left .tabs {\n  height: 100%;\n  padding: 4px 0 0 4px;\n  border-width: 0 1px 0 0;\n}\n.tabs-header-right .tabs {\n  height: 100%;\n  padding: 4px 4px 0 0;\n  border-width: 0 0 0 1px;\n}\n.tabs-header-left .tabs li,\n.tabs-header-right .tabs li {\n  display: block;\n  width: 100%;\n  position: relative;\n}\n.tabs-header-left .tabs li {\n  left: auto;\n  right: 0;\n  margin: 0 -1px 4px 0;\n  float: right;\n}\n.tabs-header-right .tabs li {\n  left: 0;\n  right: auto;\n  margin: 0 0 4px -1px;\n  float: left;\n}\n.tabs-header-left .tabs li a.tabs-inner {\n  display: block;\n  text-align: left;\n  -moz-border-radius: 5px 0 0 5px;\n  -webkit-border-radius: 5px 0 0 5px;\n  border-radius: 5px 0 0 5px;\n}\n.tabs-header-right .tabs li a.tabs-inner {\n  display: block;\n  text-align: left;\n  -moz-border-radius: 0 5px 5px 0;\n  -webkit-border-radius: 0 5px 5px 0;\n  border-radius: 0 5px 5px 0;\n}\n.tabs-panels-right {\n  float: right;\n  border-width: 1px 1px 1px 0;\n}\n.tabs-panels-left {\n  float: left;\n  border-width: 1px 0 1px 1px;\n}\n.tabs-header-noborder,\n.tabs-panels-noborder {\n  border: 0px;\n}\n.tabs-header-plain {\n  border: 0px;\n  background: transparent;\n}\n.tabs-scroller-left {\n  background: #F2F2F2 url('images/tabs_icons.png') no-repeat 1px center;\n}\n.tabs-scroller-right {\n  background: #F2F2F2 url('images/tabs_icons.png') no-repeat -15px center;\n}\n.tabs li a.tabs-close {\n  background: url('images/tabs_icons.png') no-repeat -34px center;\n}\n.tabs li a.tabs-inner:hover {\n  background: #e6e6e6;\n  color: #00438a;\n  filter: none;\n}\n.tabs li.tabs-selected a.tabs-inner {\n  background-color: #ffffff;\n  color: #777;\n  background: -webkit-linear-gradient(top,#ffffff 0,#ffffff 100%);\n  background: -moz-linear-gradient(top,#ffffff 0,#ffffff 100%);\n  background: -o-linear-gradient(top,#ffffff 0,#ffffff 100%);\n  background: linear-gradient(to bottom,#ffffff 0,#ffffff 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#ffffff,GradientType=0);\n}\n.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner {\n  background: -webkit-linear-gradient(top,#ffffff 0,#ffffff 100%);\n  background: -moz-linear-gradient(top,#ffffff 0,#ffffff 100%);\n  background: -o-linear-gradient(top,#ffffff 0,#ffffff 100%);\n  background: linear-gradient(to bottom,#ffffff 0,#ffffff 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#ffffff,GradientType=0);\n}\n.tabs-header-left .tabs li.tabs-selected a.tabs-inner {\n  background: -webkit-linear-gradient(left,#ffffff 0,#ffffff 100%);\n  background: -moz-linear-gradient(left,#ffffff 0,#ffffff 100%);\n  background: -o-linear-gradient(left,#ffffff 0,#ffffff 100%);\n  background: linear-gradient(to right,#ffffff 0,#ffffff 100%);\n  background-repeat: repeat-y;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#ffffff,GradientType=1);\n}\n.tabs-header-right .tabs li.tabs-selected a.tabs-inner {\n  background: -webkit-linear-gradient(left,#ffffff 0,#ffffff 100%);\n  background: -moz-linear-gradient(left,#ffffff 0,#ffffff 100%);\n  background: -o-linear-gradient(left,#ffffff 0,#ffffff 100%);\n  background: linear-gradient(to right,#ffffff 0,#ffffff 100%);\n  background-repeat: repeat-y;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#ffffff,GradientType=1);\n}\n.tabs li a.tabs-inner {\n  color: #777;\n  background-color: #F2F2F2;\n  background: -webkit-linear-gradient(top,#ffffff 0,#F2F2F2 100%);\n  background: -moz-linear-gradient(top,#ffffff 0,#F2F2F2 100%);\n  background: -o-linear-gradient(top,#ffffff 0,#F2F2F2 100%);\n  background: linear-gradient(to bottom,#ffffff 0,#F2F2F2 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#F2F2F2,GradientType=0);\n}\n.tabs-header,\n.tabs-tool {\n  background-color: #F2F2F2;\n}\n.tabs-header-plain {\n  background: transparent;\n}\n.tabs-header,\n.tabs-scroller-left,\n.tabs-scroller-right,\n.tabs-tool,\n.tabs,\n.tabs-panels,\n.tabs li a.tabs-inner,\n.tabs li.tabs-selected a.tabs-inner,\n.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner,\n.tabs-header-left .tabs li.tabs-selected a.tabs-inner,\n.tabs-header-right .tabs li.tabs-selected a.tabs-inner {\n  border-color: #D4D4D4;\n}\n.tabs-p-tool a:hover,\n.tabs li a:hover.tabs-close,\n.tabs-scroller-over {\n  background-color: #e6e6e6;\n}\n.tabs li.tabs-selected a.tabs-inner {\n  border-bottom: 1px solid #ffffff;\n}\n.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner {\n  border-top: 1px solid #ffffff;\n}\n.tabs-header-left .tabs li.tabs-selected a.tabs-inner {\n  border-right: 1px solid #ffffff;\n}\n.tabs-header-right .tabs li.tabs-selected a.tabs-inner {\n  border-left: 1px solid #ffffff;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/bootstrap/tooltip.css",
    "content": ".tooltip {\n  position: absolute;\n  display: none;\n  z-index: 9900000;\n  outline: none;\n  opacity: 1;\n  filter: alpha(opacity=100);\n  padding: 5px;\n  border-width: 1px;\n  border-style: solid;\n  border-radius: 5px;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.tooltip-content {\n  font-size: 12px;\n}\n.tooltip-arrow-outer,\n.tooltip-arrow {\n  position: absolute;\n  width: 0;\n  height: 0;\n  line-height: 0;\n  font-size: 0;\n  border-style: solid;\n  border-width: 6px;\n  border-color: transparent;\n  _border-color: tomato;\n  _filter: chroma(color=tomato);\n}\n.tooltip-right .tooltip-arrow-outer {\n  left: 0;\n  top: 50%;\n  margin: -6px 0 0 -13px;\n}\n.tooltip-right .tooltip-arrow {\n  left: 0;\n  top: 50%;\n  margin: -6px 0 0 -12px;\n}\n.tooltip-left .tooltip-arrow-outer {\n  right: 0;\n  top: 50%;\n  margin: -6px -13px 0 0;\n}\n.tooltip-left .tooltip-arrow {\n  right: 0;\n  top: 50%;\n  margin: -6px -12px 0 0;\n}\n.tooltip-top .tooltip-arrow-outer {\n  bottom: 0;\n  left: 50%;\n  margin: 0 0 -13px -6px;\n}\n.tooltip-top .tooltip-arrow {\n  bottom: 0;\n  left: 50%;\n  margin: 0 0 -12px -6px;\n}\n.tooltip-bottom .tooltip-arrow-outer {\n  top: 0;\n  left: 50%;\n  margin: -13px 0 0 -6px;\n}\n.tooltip-bottom .tooltip-arrow {\n  top: 0;\n  left: 50%;\n  margin: -12px 0 0 -6px;\n}\n.tooltip {\n  background-color: #ffffff;\n  border-color: #D4D4D4;\n  color: #333;\n}\n.tooltip-right .tooltip-arrow-outer {\n  border-right-color: #D4D4D4;\n}\n.tooltip-right .tooltip-arrow {\n  border-right-color: #ffffff;\n}\n.tooltip-left .tooltip-arrow-outer {\n  border-left-color: #D4D4D4;\n}\n.tooltip-left .tooltip-arrow {\n  border-left-color: #ffffff;\n}\n.tooltip-top .tooltip-arrow-outer {\n  border-top-color: #D4D4D4;\n}\n.tooltip-top .tooltip-arrow {\n  border-top-color: #ffffff;\n}\n.tooltip-bottom .tooltip-arrow-outer {\n  border-bottom-color: #D4D4D4;\n}\n.tooltip-bottom .tooltip-arrow {\n  border-bottom-color: #ffffff;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/bootstrap/tree.css",
    "content": ".tree {\n  margin: 0;\n  padding: 0;\n  list-style-type: none;\n}\n.tree li {\n  white-space: nowrap;\n}\n.tree li ul {\n  list-style-type: none;\n  margin: 0;\n  padding: 0;\n}\n.tree-node {\n  height: 18px;\n  white-space: nowrap;\n  cursor: pointer;\n}\n.tree-hit {\n  cursor: pointer;\n}\n.tree-expanded,\n.tree-collapsed,\n.tree-folder,\n.tree-file,\n.tree-checkbox,\n.tree-indent {\n  display: inline-block;\n  width: 16px;\n  height: 18px;\n  vertical-align: top;\n  overflow: hidden;\n}\n.tree-expanded {\n  background: url('images/tree_icons.png') no-repeat -18px 0px;\n}\n.tree-expanded-hover {\n  background: url('images/tree_icons.png') no-repeat -50px 0px;\n}\n.tree-collapsed {\n  background: url('images/tree_icons.png') no-repeat 0px 0px;\n}\n.tree-collapsed-hover {\n  background: url('images/tree_icons.png') no-repeat -32px 0px;\n}\n.tree-lines .tree-expanded,\n.tree-lines .tree-root-first .tree-expanded {\n  background: url('images/tree_icons.png') no-repeat -144px 0;\n}\n.tree-lines .tree-collapsed,\n.tree-lines .tree-root-first .tree-collapsed {\n  background: url('images/tree_icons.png') no-repeat -128px 0;\n}\n.tree-lines .tree-node-last .tree-expanded,\n.tree-lines .tree-root-one .tree-expanded {\n  background: url('images/tree_icons.png') no-repeat -80px 0;\n}\n.tree-lines .tree-node-last .tree-collapsed,\n.tree-lines .tree-root-one .tree-collapsed {\n  background: url('images/tree_icons.png') no-repeat -64px 0;\n}\n.tree-line {\n  background: url('images/tree_icons.png') no-repeat -176px 0;\n}\n.tree-join {\n  background: url('images/tree_icons.png') no-repeat -192px 0;\n}\n.tree-joinbottom {\n  background: url('images/tree_icons.png') no-repeat -160px 0;\n}\n.tree-folder {\n  background: url('images/tree_icons.png') no-repeat -208px 0;\n}\n.tree-folder-open {\n  background: url('images/tree_icons.png') no-repeat -224px 0;\n}\n.tree-file {\n  background: url('images/tree_icons.png') no-repeat -240px 0;\n}\n.tree-loading {\n  background: url('images/loading.gif') no-repeat center center;\n}\n.tree-checkbox0 {\n  background: url('images/tree_icons.png') no-repeat -208px -18px;\n}\n.tree-checkbox1 {\n  background: url('images/tree_icons.png') no-repeat -224px -18px;\n}\n.tree-checkbox2 {\n  background: url('images/tree_icons.png') no-repeat -240px -18px;\n}\n.tree-title {\n  font-size: 12px;\n  display: inline-block;\n  text-decoration: none;\n  vertical-align: top;\n  white-space: nowrap;\n  padding: 0 2px;\n  height: 18px;\n  line-height: 18px;\n}\n.tree-node-proxy {\n  font-size: 12px;\n  line-height: 20px;\n  padding: 0 2px 0 20px;\n  border-width: 1px;\n  border-style: solid;\n  z-index: 9900000;\n}\n.tree-dnd-icon {\n  display: inline-block;\n  position: absolute;\n  width: 16px;\n  height: 18px;\n  left: 2px;\n  top: 50%;\n  margin-top: -9px;\n}\n.tree-dnd-yes {\n  background: url('images/tree_icons.png') no-repeat -256px 0;\n}\n.tree-dnd-no {\n  background: url('images/tree_icons.png') no-repeat -256px -18px;\n}\n.tree-node-top {\n  border-top: 1px dotted red;\n}\n.tree-node-bottom {\n  border-bottom: 1px dotted red;\n}\n.tree-node-append .tree-title {\n  border: 1px dotted red;\n}\n.tree-editor {\n  border: 1px solid #ccc;\n  font-size: 12px;\n  height: 14px !important;\n  height: 18px;\n  line-height: 14px;\n  padding: 1px 2px;\n  width: 80px;\n  position: absolute;\n  top: 0;\n}\n.tree-node-proxy {\n  background-color: #ffffff;\n  color: #333;\n  border-color: #D4D4D4;\n}\n.tree-node-hover {\n  background: #e6e6e6;\n  color: #00438a;\n}\n.tree-node-selected {\n  background: #0081c2;\n  color: #fff;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/bootstrap/validatebox.css",
    "content": ".validatebox-invalid {\n  background-image: url('images/validatebox_warning.png');\n  background-repeat: no-repeat;\n  background-position: right center;\n  border-color: #ffa8a8;\n  background-color: #fff3f3;\n  color: #000;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/bootstrap/window.css",
    "content": ".window {\n  overflow: hidden;\n  padding: 5px;\n  border-width: 1px;\n  border-style: solid;\n}\n.window .window-header {\n  background: transparent;\n  padding: 0px 0px 6px 0px;\n}\n.window .window-body {\n  border-width: 1px;\n  border-style: solid;\n  border-top-width: 0px;\n}\n.window .window-body-noheader {\n  border-top-width: 1px;\n}\n.window .window-header .panel-icon,\n.window .window-header .panel-tool {\n  top: 50%;\n  margin-top: -11px;\n}\n.window .window-header .panel-icon {\n  left: 1px;\n}\n.window .window-header .panel-tool {\n  right: 1px;\n}\n.window .window-header .panel-with-icon {\n  padding-left: 18px;\n}\n.window-proxy {\n  position: absolute;\n  overflow: hidden;\n}\n.window-proxy-mask {\n  position: absolute;\n  filter: alpha(opacity=5);\n  opacity: 0.05;\n}\n.window-mask {\n  position: absolute;\n  left: 0;\n  top: 0;\n  width: 100%;\n  height: 100%;\n  filter: alpha(opacity=40);\n  opacity: 0.40;\n  font-size: 1px;\n  *zoom: 1;\n  overflow: hidden;\n}\n.window,\n.window-shadow {\n  position: absolute;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.window-shadow {\n  background: #ccc;\n  -moz-box-shadow: 2px 2px 3px #cccccc;\n  -webkit-box-shadow: 2px 2px 3px #cccccc;\n  box-shadow: 2px 2px 3px #cccccc;\n  filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2);\n}\n.window,\n.window .window-body {\n  border-color: #D4D4D4;\n}\n.window {\n  background-color: #F2F2F2;\n  background: -webkit-linear-gradient(top,#ffffff 0,#F2F2F2 20%);\n  background: -moz-linear-gradient(top,#ffffff 0,#F2F2F2 20%);\n  background: -o-linear-gradient(top,#ffffff 0,#F2F2F2 20%);\n  background: linear-gradient(to bottom,#ffffff 0,#F2F2F2 20%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#F2F2F2,GradientType=0);\n}\n.window-proxy {\n  border: 1px dashed #D4D4D4;\n}\n.window-proxy-mask,\n.window-mask {\n  background: #ccc;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/default/accordion.css",
    "content": ".accordion {\n  overflow: hidden;\n  border-width: 1px;\n  border-style: solid;\n}\n.accordion .accordion-header {\n  border-width: 0 0 1px;\n  cursor: pointer;\n}\n.accordion .accordion-body {\n  border-width: 0 0 1px;\n}\n.accordion-noborder {\n  border-width: 0;\n}\n.accordion-noborder .accordion-header {\n  border-width: 0 0 1px;\n}\n.accordion-noborder .accordion-body {\n  border-width: 0 0 1px;\n}\n.accordion-collapse {\n  background: url('images/accordion_arrows.png') no-repeat 0 0;\n}\n.accordion-expand {\n  background: url('images/accordion_arrows.png') no-repeat -16px 0;\n}\n.accordion {\n  background: #ffffff;\n  border-color: #95B8E7;\n}\n.accordion .accordion-header {\n  background: #E0ECFF;\n  filter: none;\n}\n.accordion .accordion-header-selected {\n  background: #FBEC88;\n}\n.accordion .accordion-header-selected .panel-title {\n  color: #000000;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/default/calendar.css",
    "content": ".calendar {\n  border-width: 1px;\n  border-style: solid;\n  padding: 1px;\n  overflow: hidden;\n}\n.calendar table {\n  border-collapse: separate;\n  font-size: 12px;\n  width: 100%;\n  height: 100%;\n}\n.calendar table td,\n.calendar table th {\n  font-size: 12px;\n}\n.calendar-noborder {\n  border: 0;\n}\n.calendar-header {\n  position: relative;\n  height: 22px;\n}\n.calendar-title {\n  text-align: center;\n  height: 22px;\n}\n.calendar-title span {\n  position: relative;\n  display: inline-block;\n  top: 2px;\n  padding: 0 3px;\n  height: 18px;\n  line-height: 18px;\n  font-size: 12px;\n  cursor: pointer;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.calendar-prevmonth,\n.calendar-nextmonth,\n.calendar-prevyear,\n.calendar-nextyear {\n  position: absolute;\n  top: 50%;\n  margin-top: -7px;\n  width: 14px;\n  height: 14px;\n  cursor: pointer;\n  font-size: 1px;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.calendar-prevmonth {\n  left: 20px;\n  background: url('images/calendar_arrows.png') no-repeat -18px -2px;\n}\n.calendar-nextmonth {\n  right: 20px;\n  background: url('images/calendar_arrows.png') no-repeat -34px -2px;\n}\n.calendar-prevyear {\n  left: 3px;\n  background: url('images/calendar_arrows.png') no-repeat -1px -2px;\n}\n.calendar-nextyear {\n  right: 3px;\n  background: url('images/calendar_arrows.png') no-repeat -49px -2px;\n}\n.calendar-body {\n  position: relative;\n}\n.calendar-body th,\n.calendar-body td {\n  text-align: center;\n}\n.calendar-day {\n  border: 0;\n  padding: 1px;\n  cursor: pointer;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.calendar-other-month {\n  opacity: 0.3;\n  filter: alpha(opacity=30);\n}\n.calendar-menu {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 180px;\n  height: 150px;\n  padding: 5px;\n  font-size: 12px;\n  display: none;\n  overflow: hidden;\n}\n.calendar-menu-year-inner {\n  text-align: center;\n  padding-bottom: 5px;\n}\n.calendar-menu-year {\n  width: 40px;\n  text-align: center;\n  border-width: 1px;\n  border-style: solid;\n  margin: 0;\n  padding: 2px;\n  font-weight: bold;\n  font-size: 12px;\n}\n.calendar-menu-prev,\n.calendar-menu-next {\n  display: inline-block;\n  width: 21px;\n  height: 21px;\n  vertical-align: top;\n  cursor: pointer;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.calendar-menu-prev {\n  margin-right: 10px;\n  background: url('images/calendar_arrows.png') no-repeat 2px 2px;\n}\n.calendar-menu-next {\n  margin-left: 10px;\n  background: url('images/calendar_arrows.png') no-repeat -45px 2px;\n}\n.calendar-menu-month {\n  text-align: center;\n  cursor: pointer;\n  font-weight: bold;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.calendar-body th,\n.calendar-menu-month {\n  color: #4d4d4d;\n}\n.calendar-day {\n  color: #000000;\n}\n.calendar-sunday {\n  color: #CC2222;\n}\n.calendar-saturday {\n  color: #00ee00;\n}\n.calendar-today {\n  color: #0000ff;\n}\n.calendar-menu-year {\n  border-color: #95B8E7;\n}\n.calendar {\n  border-color: #95B8E7;\n}\n.calendar-header {\n  background: #E0ECFF;\n}\n.calendar-body,\n.calendar-menu {\n  background: #ffffff;\n}\n.calendar-body th {\n  background: #F4F4F4;\n}\n.calendar-hover,\n.calendar-nav-hover,\n.calendar-menu-hover {\n  background-color: #eaf2ff;\n  color: #000000;\n}\n.calendar-hover {\n  border: 1px solid #b7d2ff;\n  padding: 0;\n}\n.calendar-selected {\n  background-color: #FBEC88;\n  color: #000000;\n  border: 1px solid #E2C608;\n  padding: 0;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/default/combo.css",
    "content": ".combo {\n  display: inline-block;\n  white-space: nowrap;\n  margin: 0;\n  padding: 0;\n  border-width: 1px;\n  border-style: solid;\n  overflow: hidden;\n  vertical-align: middle;\n}\n.combo .combo-text {\n  font-size: 12px;\n  border: 0px;\n  line-height: 20px;\n  height: 20px;\n  margin: 0;\n  padding: 0px 2px;\n  *margin-top: -1px;\n  *height: 18px;\n  *line-height: 18px;\n  _height: 18px;\n  _line-height: 18px;\n  vertical-align: baseline;\n}\n.combo-arrow {\n  width: 18px;\n  height: 20px;\n  overflow: hidden;\n  display: inline-block;\n  vertical-align: top;\n  cursor: pointer;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.combo-arrow-hover {\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n}\n.combo-panel {\n  overflow: auto;\n}\n.combo-arrow {\n  background: url('images/combo_arrow.png') no-repeat center center;\n}\n.combo,\n.combo-panel {\n  background-color: #ffffff;\n}\n.combo {\n  border-color: #95B8E7;\n  background-color: #ffffff;\n}\n.combo-arrow {\n  background-color: #E0ECFF;\n}\n.combo-arrow-hover {\n  background-color: #eaf2ff;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/default/combobox.css",
    "content": ".combobox-item,\n.combobox-group {\n  font-size: 12px;\n  padding: 3px;\n  padding-right: 0px;\n}\n.combobox-item-disabled {\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n}\n.combobox-gitem {\n  padding-left: 10px;\n}\n.combobox-group {\n  font-weight: bold;\n}\n.combobox-item-hover {\n  background-color: #eaf2ff;\n  color: #000000;\n}\n.combobox-item-selected {\n  background-color: #FBEC88;\n  color: #000000;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/default/datagrid.css",
    "content": ".datagrid .panel-body {\n  overflow: hidden;\n  position: relative;\n}\n.datagrid-view {\n  position: relative;\n  overflow: hidden;\n}\n.datagrid-view1,\n.datagrid-view2 {\n  position: absolute;\n  overflow: hidden;\n  top: 0;\n}\n.datagrid-view1 {\n  left: 0;\n}\n.datagrid-view2 {\n  right: 0;\n}\n.datagrid-mask {\n  position: absolute;\n  left: 0;\n  top: 0;\n  width: 100%;\n  height: 100%;\n  opacity: 0.3;\n  filter: alpha(opacity=30);\n  display: none;\n}\n.datagrid-mask-msg {\n  position: absolute;\n  top: 50%;\n  margin-top: -20px;\n  padding: 12px 5px 10px 30px;\n  width: auto;\n  height: 16px;\n  border-width: 2px;\n  border-style: solid;\n  display: none;\n}\n.datagrid-sort-icon {\n  padding: 0;\n}\n.datagrid-toolbar {\n  height: auto;\n  padding: 1px 2px;\n  border-width: 0 0 1px 0;\n  border-style: solid;\n}\n.datagrid-btn-separator {\n  float: left;\n  height: 24px;\n  border-left: 1px solid #ccc;\n  border-right: 1px solid #fff;\n  margin: 2px 1px;\n}\n.datagrid .datagrid-pager {\n  display: block;\n  margin: 0;\n  border-width: 1px 0 0 0;\n  border-style: solid;\n}\n.datagrid .datagrid-pager-top {\n  border-width: 0 0 1px 0;\n}\n.datagrid-header {\n  overflow: hidden;\n  cursor: default;\n  border-width: 0 0 1px 0;\n  border-style: solid;\n}\n.datagrid-header-inner {\n  float: left;\n  width: 10000px;\n}\n.datagrid-header-row,\n.datagrid-row {\n  height: 25px;\n}\n.datagrid-header td,\n.datagrid-body td,\n.datagrid-footer td {\n  border-width: 0 1px 1px 0;\n  border-style: dotted;\n  margin: 0;\n  padding: 0;\n}\n.datagrid-cell,\n.datagrid-cell-group,\n.datagrid-header-rownumber,\n.datagrid-cell-rownumber {\n  margin: 0;\n  padding: 0 4px;\n  white-space: nowrap;\n  word-wrap: normal;\n  overflow: hidden;\n  height: 18px;\n  line-height: 18px;\n  font-size: 12px;\n}\n.datagrid-header .datagrid-cell {\n  height: auto;\n}\n.datagrid-header .datagrid-cell span {\n  font-size: 12px;\n}\n.datagrid-cell-group {\n  text-align: center;\n}\n.datagrid-header-rownumber,\n.datagrid-cell-rownumber {\n  width: 25px;\n  text-align: center;\n  margin: 0;\n  padding: 0;\n}\n.datagrid-body {\n  margin: 0;\n  padding: 0;\n  overflow: auto;\n  zoom: 1;\n}\n.datagrid-view1 .datagrid-body-inner {\n  padding-bottom: 20px;\n}\n.datagrid-view1 .datagrid-body {\n  overflow: hidden;\n}\n.datagrid-footer {\n  overflow: hidden;\n}\n.datagrid-footer-inner {\n  border-width: 1px 0 0 0;\n  border-style: solid;\n  width: 10000px;\n  float: left;\n}\n.datagrid-row-editing .datagrid-cell {\n  height: auto;\n}\n.datagrid-header-check,\n.datagrid-cell-check {\n  padding: 0;\n  width: 27px;\n  height: 18px;\n  font-size: 1px;\n  text-align: center;\n  overflow: hidden;\n}\n.datagrid-header-check input,\n.datagrid-cell-check input {\n  margin: 0;\n  padding: 0;\n  width: 15px;\n  height: 18px;\n}\n.datagrid-resize-proxy {\n  position: absolute;\n  width: 1px;\n  height: 10000px;\n  top: 0;\n  cursor: e-resize;\n  display: none;\n}\n.datagrid-body .datagrid-editable {\n  margin: 0;\n  padding: 0;\n}\n.datagrid-body .datagrid-editable table {\n  width: 100%;\n  height: 100%;\n}\n.datagrid-body .datagrid-editable td {\n  border: 0;\n  margin: 0;\n  padding: 0;\n}\n.datagrid-body .datagrid-editable .datagrid-editable-input {\n  margin: 0;\n  padding: 2px;\n  border-width: 1px;\n  border-style: solid;\n}\n.datagrid-sort-desc .datagrid-sort-icon {\n  padding: 0 13px 0 0;\n  background: url('images/datagrid_icons.png') no-repeat -16px center;\n}\n.datagrid-sort-asc .datagrid-sort-icon {\n  padding: 0 13px 0 0;\n  background: url('images/datagrid_icons.png') no-repeat 0px center;\n}\n.datagrid-row-collapse {\n  background: url('images/datagrid_icons.png') no-repeat -48px center;\n}\n.datagrid-row-expand {\n  background: url('images/datagrid_icons.png') no-repeat -32px center;\n}\n.datagrid-mask-msg {\n  background: #ffffff url('images/loading.gif') no-repeat scroll 5px center;\n}\n.datagrid-header,\n.datagrid-td-rownumber {\n  background-color: #efefef;\n  background: -webkit-linear-gradient(top,#F9F9F9 0,#efefef 100%);\n  background: -moz-linear-gradient(top,#F9F9F9 0,#efefef 100%);\n  background: -o-linear-gradient(top,#F9F9F9 0,#efefef 100%);\n  background: linear-gradient(to bottom,#F9F9F9 0,#efefef 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#F9F9F9,endColorstr=#efefef,GradientType=0);\n}\n.datagrid-cell-rownumber {\n  color: #000000;\n}\n.datagrid-resize-proxy {\n  background: #aac5e7;\n}\n.datagrid-mask {\n  background: #ccc;\n}\n.datagrid-mask-msg {\n  border-color: #95B8E7;\n}\n.datagrid-toolbar,\n.datagrid-pager {\n  background: #F4F4F4;\n}\n.datagrid-header,\n.datagrid-toolbar,\n.datagrid-pager,\n.datagrid-footer-inner {\n  border-color: #dddddd;\n}\n.datagrid-header td,\n.datagrid-body td,\n.datagrid-footer td {\n  border-color: #ccc;\n}\n.datagrid-htable,\n.datagrid-btable,\n.datagrid-ftable {\n  color: #000000;\n  border-collapse: separate;\n}\n.datagrid-row-alt {\n  background: #fafafa;\n}\n.datagrid-row-over,\n.datagrid-header td.datagrid-header-over {\n  background: #eaf2ff;\n  color: #000000;\n  cursor: default;\n}\n.datagrid-row-selected {\n  background: #FBEC88;\n  color: #000000;\n}\n.datagrid-body .datagrid-editable .datagrid-editable-input {\n  border-color: #95B8E7;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/default/datebox.css",
    "content": ".datebox-calendar-inner {\n  height: 180px;\n}\n.datebox-button {\n  height: 18px;\n  padding: 2px 5px;\n  text-align: center;\n}\n.datebox-button a {\n  font-size: 12px;\n  font-weight: bold;\n  text-decoration: none;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.datebox-button a:hover {\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n}\n.datebox-current,\n.datebox-close {\n  float: left;\n}\n.datebox-close {\n  float: right;\n}\n.datebox .combo-arrow {\n  background-image: url('images/datebox_arrow.png');\n  background-position: center center;\n}\n.datebox-button {\n  background-color: #F4F4F4;\n}\n.datebox-button a {\n  color: #444;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/default/dialog.css",
    "content": ".dialog-content {\n  overflow: auto;\n}\n.dialog-toolbar {\n  padding: 2px 5px;\n}\n.dialog-tool-separator {\n  float: left;\n  height: 24px;\n  border-left: 1px solid #ccc;\n  border-right: 1px solid #fff;\n  margin: 2px 1px;\n}\n.dialog-button {\n  padding: 5px;\n  text-align: right;\n}\n.dialog-button .l-btn {\n  margin-left: 5px;\n}\n.dialog-toolbar,\n.dialog-button {\n  background: #F4F4F4;\n}\n.dialog-toolbar {\n  border-bottom: 1px solid #dddddd;\n}\n.dialog-button {\n  border-top: 1px solid #dddddd;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/default/easyui.css",
    "content": ".panel {\n  overflow: hidden;\n  text-align: left;\n  margin: 0;\n  border: 0;\n  -moz-border-radius: 0 0 0 0;\n  -webkit-border-radius: 0 0 0 0;\n  border-radius: 0 0 0 0;\n}\n.panel-header,\n.panel-body {\n  border-width: 1px;\n  border-style: solid;\n}\n.panel-header {\n  padding: 5px;\n  position: relative;\n}\n.panel-title {\n  background: url('images/blank.gif') no-repeat;\n}\n.panel-header-noborder {\n  border-width: 0 0 1px 0;\n}\n.panel-body {\n  overflow: auto;\n  border-top-width: 0;\n  padding: 0;\n}\n.panel-body-noheader {\n  border-top-width: 1px;\n}\n.panel-body-noborder {\n  border-width: 0px;\n}\n.panel-with-icon {\n  padding-left: 18px;\n}\n.panel-icon,\n.panel-tool {\n  position: absolute;\n  top: 50%;\n  margin-top: -8px;\n  height: 16px;\n  overflow: hidden;\n}\n.panel-icon {\n  left: 5px;\n  width: 16px;\n}\n.panel-tool {\n  right: 5px;\n  width: auto;\n}\n.panel-tool a {\n  display: inline-block;\n  width: 16px;\n  height: 16px;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n  margin: 0 0 0 2px;\n  vertical-align: top;\n}\n.panel-tool a:hover {\n  opacity: 1;\n  filter: alpha(opacity=100);\n  background-color: #eaf2ff;\n  -moz-border-radius: 3px 3px 3px 3px;\n  -webkit-border-radius: 3px 3px 3px 3px;\n  border-radius: 3px 3px 3px 3px;\n}\n.panel-loading {\n  padding: 11px 0px 10px 30px;\n}\n.panel-noscroll {\n  overflow: hidden;\n}\n.panel-fit,\n.panel-fit body {\n  height: 100%;\n  margin: 0;\n  padding: 0;\n  border: 0;\n  overflow: hidden;\n}\n.panel-loading {\n  background: url('images/loading.gif') no-repeat 10px 10px;\n}\n.panel-tool-close {\n  background: url('images/panel_tools.png') no-repeat -16px 0px;\n}\n.panel-tool-min {\n  background: url('images/panel_tools.png') no-repeat 0px 0px;\n}\n.panel-tool-max {\n  background: url('images/panel_tools.png') no-repeat 0px -16px;\n}\n.panel-tool-restore {\n  background: url('images/panel_tools.png') no-repeat -16px -16px;\n}\n.panel-tool-collapse {\n  background: url('images/panel_tools.png') no-repeat -32px 0;\n}\n.panel-tool-expand {\n  background: url('images/panel_tools.png') no-repeat -32px -16px;\n}\n.panel-header,\n.panel-body {\n  border-color: #95B8E7;\n}\n.panel-header {\n  background-color: #E0ECFF;\n  background: -webkit-linear-gradient(top,#EFF5FF 0,#E0ECFF 100%);\n  background: -moz-linear-gradient(top,#EFF5FF 0,#E0ECFF 100%);\n  background: -o-linear-gradient(top,#EFF5FF 0,#E0ECFF 100%);\n  background: linear-gradient(to bottom,#EFF5FF 0,#E0ECFF 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#EFF5FF,endColorstr=#E0ECFF,GradientType=0);\n}\n.panel-body {\n  background-color: #ffffff;\n  color: #000000;\n  font-size: 12px;\n}\n.panel-title {\n  font-size: 12px;\n  font-weight: bold;\n  color: #0E2D5F;\n  height: 16px;\n  line-height: 16px;\n}\n.accordion {\n  overflow: hidden;\n  border-width: 1px;\n  border-style: solid;\n}\n.accordion .accordion-header {\n  border-width: 0 0 1px;\n  cursor: pointer;\n}\n.accordion .accordion-body {\n  border-width: 0 0 1px;\n}\n.accordion-noborder {\n  border-width: 0;\n}\n.accordion-noborder .accordion-header {\n  border-width: 0 0 1px;\n}\n.accordion-noborder .accordion-body {\n  border-width: 0 0 1px;\n}\n.accordion-collapse {\n  background: url('images/accordion_arrows.png') no-repeat 0 0;\n}\n.accordion-expand {\n  background: url('images/accordion_arrows.png') no-repeat -16px 0;\n}\n.accordion {\n  background: #ffffff;\n  border-color: #95B8E7;\n}\n.accordion .accordion-header {\n  background: #E0ECFF;\n  filter: none;\n}\n.accordion .accordion-header-selected {\n  background: #FBEC88;\n}\n.accordion .accordion-header-selected .panel-title {\n  color: #000000;\n}\n.window {\n  overflow: hidden;\n  padding: 5px;\n  border-width: 1px;\n  border-style: solid;\n}\n.window .window-header {\n  background: transparent;\n  padding: 0px 0px 6px 0px;\n}\n.window .window-body {\n  border-width: 1px;\n  border-style: solid;\n  border-top-width: 0px;\n}\n.window .window-body-noheader {\n  border-top-width: 1px;\n}\n.window .window-header .panel-icon,\n.window .window-header .panel-tool {\n  top: 50%;\n  margin-top: -11px;\n}\n.window .window-header .panel-icon {\n  left: 1px;\n}\n.window .window-header .panel-tool {\n  right: 1px;\n}\n.window .window-header .panel-with-icon {\n  padding-left: 18px;\n}\n.window-proxy {\n  position: absolute;\n  overflow: hidden;\n}\n.window-proxy-mask {\n  position: absolute;\n  filter: alpha(opacity=5);\n  opacity: 0.05;\n}\n.window-mask {\n  position: absolute;\n  left: 0;\n  top: 0;\n  width: 100%;\n  height: 100%;\n  filter: alpha(opacity=40);\n  opacity: 0.40;\n  font-size: 1px;\n  *zoom: 1;\n  overflow: hidden;\n}\n.window,\n.window-shadow {\n  position: absolute;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.window-shadow {\n  background: #ccc;\n  -moz-box-shadow: 2px 2px 3px #cccccc;\n  -webkit-box-shadow: 2px 2px 3px #cccccc;\n  box-shadow: 2px 2px 3px #cccccc;\n  filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2);\n}\n.window,\n.window .window-body {\n  border-color: #95B8E7;\n}\n.window {\n  background-color: #E0ECFF;\n  background: -webkit-linear-gradient(top,#EFF5FF 0,#E0ECFF 20%);\n  background: -moz-linear-gradient(top,#EFF5FF 0,#E0ECFF 20%);\n  background: -o-linear-gradient(top,#EFF5FF 0,#E0ECFF 20%);\n  background: linear-gradient(to bottom,#EFF5FF 0,#E0ECFF 20%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#EFF5FF,endColorstr=#E0ECFF,GradientType=0);\n}\n.window-proxy {\n  border: 1px dashed #95B8E7;\n}\n.window-proxy-mask,\n.window-mask {\n  background: #ccc;\n}\n.dialog-content {\n  overflow: auto;\n}\n.dialog-toolbar {\n  padding: 2px 5px;\n}\n.dialog-tool-separator {\n  float: left;\n  height: 24px;\n  border-left: 1px solid #ccc;\n  border-right: 1px solid #fff;\n  margin: 2px 1px;\n}\n.dialog-button {\n  padding: 5px;\n  text-align: right;\n}\n.dialog-button .l-btn {\n  margin-left: 5px;\n}\n.dialog-toolbar,\n.dialog-button {\n  background: #F4F4F4;\n}\n.dialog-toolbar {\n  border-bottom: 1px solid #dddddd;\n}\n.dialog-button {\n  border-top: 1px solid #dddddd;\n}\n.combo {\n  display: inline-block;\n  white-space: nowrap;\n  margin: 0;\n  padding: 0;\n  border-width: 1px;\n  border-style: solid;\n  overflow: hidden;\n  vertical-align: middle;\n}\n.combo .combo-text {\n  font-size: 12px;\n  border: 0px;\n  line-height: 20px;\n  height: 20px;\n  margin: 0;\n  padding: 0px 2px;\n  *margin-top: -1px;\n  *height: 18px;\n  *line-height: 18px;\n  _height: 18px;\n  _line-height: 18px;\n  vertical-align: baseline;\n}\n.combo-arrow {\n  width: 18px;\n  height: 20px;\n  overflow: hidden;\n  display: inline-block;\n  vertical-align: top;\n  cursor: pointer;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.combo-arrow-hover {\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n}\n.combo-panel {\n  overflow: auto;\n}\n.combo-arrow {\n  background: url('images/combo_arrow.png') no-repeat center center;\n}\n.combo,\n.combo-panel {\n  background-color: #ffffff;\n}\n.combo {\n  border-color: #95B8E7;\n  background-color: #ffffff;\n}\n.combo-arrow {\n  background-color: #E0ECFF;\n}\n.combo-arrow-hover {\n  background-color: #eaf2ff;\n}\n.combobox-item,\n.combobox-group {\n  font-size: 12px;\n  padding: 3px;\n  padding-right: 0px;\n}\n.combobox-item-disabled {\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n}\n.combobox-gitem {\n  padding-left: 10px;\n}\n.combobox-group {\n  font-weight: bold;\n}\n.combobox-item-hover {\n  background-color: #eaf2ff;\n  color: #000000;\n}\n.combobox-item-selected {\n  background-color: #FBEC88;\n  color: #000000;\n}\n.layout {\n  position: relative;\n  overflow: hidden;\n  margin: 0;\n  padding: 0;\n  z-index: 0;\n}\n.layout-panel {\n  position: absolute;\n  overflow: hidden;\n}\n.layout-panel-east,\n.layout-panel-west {\n  z-index: 2;\n}\n.layout-panel-north,\n.layout-panel-south {\n  z-index: 3;\n}\n.layout-expand {\n  position: absolute;\n  padding: 0px;\n  font-size: 1px;\n  cursor: pointer;\n  z-index: 1;\n}\n.layout-expand .panel-header,\n.layout-expand .panel-body {\n  background: transparent;\n  filter: none;\n  overflow: hidden;\n}\n.layout-expand .panel-header {\n  border-bottom-width: 0px;\n}\n.layout-split-proxy-h,\n.layout-split-proxy-v {\n  position: absolute;\n  font-size: 1px;\n  display: none;\n  z-index: 5;\n}\n.layout-split-proxy-h {\n  width: 5px;\n  cursor: e-resize;\n}\n.layout-split-proxy-v {\n  height: 5px;\n  cursor: n-resize;\n}\n.layout-mask {\n  position: absolute;\n  background: #fafafa;\n  filter: alpha(opacity=10);\n  opacity: 0.10;\n  z-index: 4;\n}\n.layout-button-up {\n  background: url('images/layout_arrows.png') no-repeat -16px -16px;\n}\n.layout-button-down {\n  background: url('images/layout_arrows.png') no-repeat -16px 0;\n}\n.layout-button-left {\n  background: url('images/layout_arrows.png') no-repeat 0 0;\n}\n.layout-button-right {\n  background: url('images/layout_arrows.png') no-repeat 0 -16px;\n}\n.layout-split-proxy-h,\n.layout-split-proxy-v {\n  background-color: #aac5e7;\n}\n.layout-split-north {\n  border-bottom: 5px solid #E6EEF8;\n}\n.layout-split-south {\n  border-top: 5px solid #E6EEF8;\n}\n.layout-split-east {\n  border-left: 5px solid #E6EEF8;\n}\n.layout-split-west {\n  border-right: 5px solid #E6EEF8;\n}\n.layout-expand {\n  background-color: #E0ECFF;\n}\n.layout-expand-over {\n  background-color: #E0ECFF;\n}\n.tabs-container {\n  overflow: hidden;\n}\n.tabs-header {\n  border-width: 1px;\n  border-style: solid;\n  border-bottom-width: 0;\n  position: relative;\n  padding: 0;\n  padding-top: 2px;\n  overflow: hidden;\n}\n.tabs-header-plain {\n  border: 0;\n  background: transparent;\n}\n.tabs-scroller-left,\n.tabs-scroller-right {\n  position: absolute;\n  top: auto;\n  bottom: 0;\n  width: 18px;\n  font-size: 1px;\n  display: none;\n  cursor: pointer;\n  border-width: 1px;\n  border-style: solid;\n}\n.tabs-scroller-left {\n  left: 0;\n}\n.tabs-scroller-right {\n  right: 0;\n}\n.tabs-tool {\n  position: absolute;\n  bottom: 0;\n  padding: 1px;\n  overflow: hidden;\n  border-width: 1px;\n  border-style: solid;\n}\n.tabs-header-plain .tabs-tool {\n  padding: 0 1px;\n}\n.tabs-wrap {\n  position: relative;\n  left: 0;\n  overflow: hidden;\n  width: 100%;\n  margin: 0;\n  padding: 0;\n}\n.tabs-scrolling {\n  margin-left: 18px;\n  margin-right: 18px;\n}\n.tabs-disabled {\n  opacity: 0.3;\n  filter: alpha(opacity=30);\n}\n.tabs {\n  list-style-type: none;\n  height: 26px;\n  margin: 0px;\n  padding: 0px;\n  padding-left: 4px;\n  width: 5000px;\n  border-style: solid;\n  border-width: 0 0 1px 0;\n}\n.tabs li {\n  float: left;\n  display: inline-block;\n  margin: 0 4px -1px 0;\n  padding: 0;\n  position: relative;\n  border: 0;\n}\n.tabs li a.tabs-inner {\n  display: inline-block;\n  text-decoration: none;\n  margin: 0;\n  padding: 0 10px;\n  height: 25px;\n  line-height: 25px;\n  text-align: center;\n  white-space: nowrap;\n  border-width: 1px;\n  border-style: solid;\n  -moz-border-radius: 5px 5px 0 0;\n  -webkit-border-radius: 5px 5px 0 0;\n  border-radius: 5px 5px 0 0;\n}\n.tabs li.tabs-selected a.tabs-inner {\n  font-weight: bold;\n  outline: none;\n}\n.tabs li.tabs-selected a:hover.tabs-inner {\n  cursor: default;\n  pointer: default;\n}\n.tabs li a.tabs-close,\n.tabs-p-tool {\n  position: absolute;\n  font-size: 1px;\n  display: block;\n  height: 12px;\n  padding: 0;\n  top: 50%;\n  margin-top: -6px;\n  overflow: hidden;\n}\n.tabs li a.tabs-close {\n  width: 12px;\n  right: 5px;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.tabs-p-tool {\n  right: 16px;\n}\n.tabs-p-tool a {\n  display: inline-block;\n  font-size: 1px;\n  width: 12px;\n  height: 12px;\n  margin: 0;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.tabs li a:hover.tabs-close,\n.tabs-p-tool a:hover {\n  opacity: 1;\n  filter: alpha(opacity=100);\n  cursor: hand;\n  cursor: pointer;\n}\n.tabs-with-icon {\n  padding-left: 18px;\n}\n.tabs-icon {\n  position: absolute;\n  width: 16px;\n  height: 16px;\n  left: 10px;\n  top: 50%;\n  margin-top: -8px;\n}\n.tabs-title {\n  font-size: 12px;\n}\n.tabs-closable {\n  padding-right: 8px;\n}\n.tabs-panels {\n  margin: 0px;\n  padding: 0px;\n  border-width: 1px;\n  border-style: solid;\n  border-top-width: 0;\n  overflow: hidden;\n}\n.tabs-header-bottom {\n  border-width: 0 1px 1px 1px;\n  padding: 0 0 2px 0;\n}\n.tabs-header-bottom .tabs {\n  border-width: 1px 0 0 0;\n}\n.tabs-header-bottom .tabs li {\n  margin: -1px 4px 0 0;\n}\n.tabs-header-bottom .tabs li a.tabs-inner {\n  -moz-border-radius: 0 0 5px 5px;\n  -webkit-border-radius: 0 0 5px 5px;\n  border-radius: 0 0 5px 5px;\n}\n.tabs-header-bottom .tabs-tool {\n  top: 0;\n}\n.tabs-header-bottom .tabs-scroller-left,\n.tabs-header-bottom .tabs-scroller-right {\n  top: 0;\n  bottom: auto;\n}\n.tabs-panels-top {\n  border-width: 1px 1px 0 1px;\n}\n.tabs-header-left {\n  float: left;\n  border-width: 1px 0 1px 1px;\n  padding: 0;\n}\n.tabs-header-right {\n  float: right;\n  border-width: 1px 1px 1px 0;\n  padding: 0;\n}\n.tabs-header-left .tabs-wrap,\n.tabs-header-right .tabs-wrap {\n  height: 100%;\n}\n.tabs-header-left .tabs {\n  height: 100%;\n  padding: 4px 0 0 4px;\n  border-width: 0 1px 0 0;\n}\n.tabs-header-right .tabs {\n  height: 100%;\n  padding: 4px 4px 0 0;\n  border-width: 0 0 0 1px;\n}\n.tabs-header-left .tabs li,\n.tabs-header-right .tabs li {\n  display: block;\n  width: 100%;\n  position: relative;\n}\n.tabs-header-left .tabs li {\n  left: auto;\n  right: 0;\n  margin: 0 -1px 4px 0;\n  float: right;\n}\n.tabs-header-right .tabs li {\n  left: 0;\n  right: auto;\n  margin: 0 0 4px -1px;\n  float: left;\n}\n.tabs-header-left .tabs li a.tabs-inner {\n  display: block;\n  text-align: left;\n  -moz-border-radius: 5px 0 0 5px;\n  -webkit-border-radius: 5px 0 0 5px;\n  border-radius: 5px 0 0 5px;\n}\n.tabs-header-right .tabs li a.tabs-inner {\n  display: block;\n  text-align: left;\n  -moz-border-radius: 0 5px 5px 0;\n  -webkit-border-radius: 0 5px 5px 0;\n  border-radius: 0 5px 5px 0;\n}\n.tabs-panels-right {\n  float: right;\n  border-width: 1px 1px 1px 0;\n}\n.tabs-panels-left {\n  float: left;\n  border-width: 1px 0 1px 1px;\n}\n.tabs-header-noborder,\n.tabs-panels-noborder {\n  border: 0px;\n}\n.tabs-header-plain {\n  border: 0px;\n  background: transparent;\n}\n.tabs-scroller-left {\n  background: #E0ECFF url('images/tabs_icons.png') no-repeat 1px center;\n}\n.tabs-scroller-right {\n  background: #E0ECFF url('images/tabs_icons.png') no-repeat -15px center;\n}\n.tabs li a.tabs-close {\n  background: url('images/tabs_icons.png') no-repeat -34px center;\n}\n.tabs li a.tabs-inner:hover {\n  background: #eaf2ff;\n  color: #000000;\n  filter: none;\n}\n.tabs li.tabs-selected a.tabs-inner {\n  background-color: #ffffff;\n  color: #0E2D5F;\n  background: -webkit-linear-gradient(top,#EFF5FF 0,#ffffff 100%);\n  background: -moz-linear-gradient(top,#EFF5FF 0,#ffffff 100%);\n  background: -o-linear-gradient(top,#EFF5FF 0,#ffffff 100%);\n  background: linear-gradient(to bottom,#EFF5FF 0,#ffffff 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#EFF5FF,endColorstr=#ffffff,GradientType=0);\n}\n.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner {\n  background: -webkit-linear-gradient(top,#ffffff 0,#EFF5FF 100%);\n  background: -moz-linear-gradient(top,#ffffff 0,#EFF5FF 100%);\n  background: -o-linear-gradient(top,#ffffff 0,#EFF5FF 100%);\n  background: linear-gradient(to bottom,#ffffff 0,#EFF5FF 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#EFF5FF,GradientType=0);\n}\n.tabs-header-left .tabs li.tabs-selected a.tabs-inner {\n  background: -webkit-linear-gradient(left,#EFF5FF 0,#ffffff 100%);\n  background: -moz-linear-gradient(left,#EFF5FF 0,#ffffff 100%);\n  background: -o-linear-gradient(left,#EFF5FF 0,#ffffff 100%);\n  background: linear-gradient(to right,#EFF5FF 0,#ffffff 100%);\n  background-repeat: repeat-y;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#EFF5FF,endColorstr=#ffffff,GradientType=1);\n}\n.tabs-header-right .tabs li.tabs-selected a.tabs-inner {\n  background: -webkit-linear-gradient(left,#ffffff 0,#EFF5FF 100%);\n  background: -moz-linear-gradient(left,#ffffff 0,#EFF5FF 100%);\n  background: -o-linear-gradient(left,#ffffff 0,#EFF5FF 100%);\n  background: linear-gradient(to right,#ffffff 0,#EFF5FF 100%);\n  background-repeat: repeat-y;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#EFF5FF,GradientType=1);\n}\n.tabs li a.tabs-inner {\n  color: #0E2D5F;\n  background-color: #E0ECFF;\n  background: -webkit-linear-gradient(top,#EFF5FF 0,#E0ECFF 100%);\n  background: -moz-linear-gradient(top,#EFF5FF 0,#E0ECFF 100%);\n  background: -o-linear-gradient(top,#EFF5FF 0,#E0ECFF 100%);\n  background: linear-gradient(to bottom,#EFF5FF 0,#E0ECFF 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#EFF5FF,endColorstr=#E0ECFF,GradientType=0);\n}\n.tabs-header,\n.tabs-tool {\n  background-color: #E0ECFF;\n}\n.tabs-header-plain {\n  background: transparent;\n}\n.tabs-header,\n.tabs-scroller-left,\n.tabs-scroller-right,\n.tabs-tool,\n.tabs,\n.tabs-panels,\n.tabs li a.tabs-inner,\n.tabs li.tabs-selected a.tabs-inner,\n.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner,\n.tabs-header-left .tabs li.tabs-selected a.tabs-inner,\n.tabs-header-right .tabs li.tabs-selected a.tabs-inner {\n  border-color: #95B8E7;\n}\n.tabs-p-tool a:hover,\n.tabs li a:hover.tabs-close,\n.tabs-scroller-over {\n  background-color: #eaf2ff;\n}\n.tabs li.tabs-selected a.tabs-inner {\n  border-bottom: 1px solid #ffffff;\n}\n.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner {\n  border-top: 1px solid #ffffff;\n}\n.tabs-header-left .tabs li.tabs-selected a.tabs-inner {\n  border-right: 1px solid #ffffff;\n}\n.tabs-header-right .tabs li.tabs-selected a.tabs-inner {\n  border-left: 1px solid #ffffff;\n}\na.l-btn {\n  background-position: right 0;\n  text-decoration: none;\n  display: inline-block;\n  zoom: 1;\n  height: 24px;\n  padding-right: 18px;\n  cursor: pointer;\n  outline: none;\n}\na.l-btn-plain {\n  border: 0;\n  padding: 1px 6px 1px 1px;\n}\na.l-btn-disabled {\n  color: #ccc;\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n  cursor: default;\n}\na.l-btn span.l-btn-left {\n  display: inline-block;\n  background-position: 0 -48px;\n  padding: 0 0 0 18px;\n  line-height: 24px;\n  height: 24px;\n}\na.l-btn-plain span.l-btn-left {\n  padding-left: 5px;\n}\na.l-btn span span.l-btn-text {\n  position: relative;\n  display: inline-block;\n  vertical-align: top;\n  top: 4px;\n  width: auto;\n  height: 16px;\n  line-height: 16px;\n  font-size: 12px;\n  padding: 0;\n  margin: 0;\n}\na.l-btn span span.l-btn-icon-left {\n  padding: 0 0 0 20px;\n  background-position: left center;\n}\na.l-btn span span.l-btn-icon-right {\n  padding: 0 20px 0 0;\n  background-position: right center;\n}\na.l-btn span span span.l-btn-empty {\n  display: inline-block;\n  margin: 0;\n  padding: 0;\n  width: 16px;\n}\na:hover.l-btn {\n  background-position: right -24px;\n  outline: none;\n  text-decoration: none;\n}\na:hover.l-btn span.l-btn-left {\n  background-position: 0 bottom;\n}\na:hover.l-btn-plain {\n  padding: 0 5px 0 0;\n}\na:hover.l-btn-disabled {\n  background-position: right 0;\n}\na:hover.l-btn-disabled span.l-btn-left {\n  background-position: 0 -48px;\n}\na.l-btn .l-btn-focus {\n  outline: #0000FF dotted thin;\n}\na.l-btn {\n  color: #444;\n  background-image: url('images/linkbutton_bg.png');\n  background-repeat: no-repeat;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\na.l-btn span.l-btn-left {\n  background-image: url('images/linkbutton_bg.png');\n  background-repeat: no-repeat;\n}\na.l-btn-plain,\na.l-btn-plain span.l-btn-left {\n  background: transparent;\n  border: 0;\n  filter: none;\n}\na:hover.l-btn-plain {\n  background: #eaf2ff;\n  color: #000000;\n  border: 1px solid #b7d2ff;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\na.l-btn-disabled,\na:hover.l-btn-disabled {\n  color: #444;\n  filter: alpha(opacity=50);\n}\na.l-btn-plain-disabled,\na:hover.l-btn-plain-disabled {\n  background: transparent;\n  filter: alpha(opacity=50);\n}\na.l-btn-selected,\na:hover.l-btn-selected {\n  background-position: right -24px;\n}\na.l-btn-selected span.l-btn-left,\na:hover.l-btn-selected span.l-btn-left {\n  background-position: 0 bottom;\n}\na.l-btn-plain-selected,\na:hover.l-btn-plain-selected {\n  background: #ddd;\n}\n.datagrid .panel-body {\n  overflow: hidden;\n  position: relative;\n}\n.datagrid-view {\n  position: relative;\n  overflow: hidden;\n}\n.datagrid-view1,\n.datagrid-view2 {\n  position: absolute;\n  overflow: hidden;\n  top: 0;\n}\n.datagrid-view1 {\n  left: 0;\n}\n.datagrid-view2 {\n  right: 0;\n}\n.datagrid-mask {\n  position: absolute;\n  left: 0;\n  top: 0;\n  width: 100%;\n  height: 100%;\n  opacity: 0.3;\n  filter: alpha(opacity=30);\n  display: none;\n}\n.datagrid-mask-msg {\n  position: absolute;\n  top: 50%;\n  margin-top: -20px;\n  padding: 12px 5px 10px 30px;\n  width: auto;\n  height: 16px;\n  border-width: 2px;\n  border-style: solid;\n  display: none;\n}\n.datagrid-sort-icon {\n  padding: 0;\n}\n.datagrid-toolbar {\n  height: auto;\n  padding: 1px 2px;\n  border-width: 0 0 1px 0;\n  border-style: solid;\n}\n.datagrid-btn-separator {\n  float: left;\n  height: 24px;\n  border-left: 1px solid #ccc;\n  border-right: 1px solid #fff;\n  margin: 2px 1px;\n}\n.datagrid .datagrid-pager {\n  display: block;\n  margin: 0;\n  border-width: 1px 0 0 0;\n  border-style: solid;\n}\n.datagrid .datagrid-pager-top {\n  border-width: 0 0 1px 0;\n}\n.datagrid-header {\n  overflow: hidden;\n  cursor: default;\n  border-width: 0 0 1px 0;\n  border-style: solid;\n}\n.datagrid-header-inner {\n  float: left;\n  width: 10000px;\n}\n.datagrid-header-row,\n.datagrid-row {\n  height: 25px;\n}\n.datagrid-header td,\n.datagrid-body td,\n.datagrid-footer td {\n  border-width: 0 1px 1px 0;\n  border-style: dotted;\n  margin: 0;\n  padding: 0;\n}\n.datagrid-cell,\n.datagrid-cell-group,\n.datagrid-header-rownumber,\n.datagrid-cell-rownumber {\n  margin: 0;\n  padding: 0 4px;\n  white-space: nowrap;\n  word-wrap: normal;\n  overflow: hidden;\n  height: 18px;\n  line-height: 18px;\n  font-size: 12px;\n}\n.datagrid-header .datagrid-cell {\n  height: auto;\n}\n.datagrid-header .datagrid-cell span {\n  font-size: 12px;\n}\n.datagrid-cell-group {\n  text-align: center;\n}\n.datagrid-header-rownumber,\n.datagrid-cell-rownumber {\n  width: 25px;\n  text-align: center;\n  margin: 0;\n  padding: 0;\n}\n.datagrid-body {\n  margin: 0;\n  padding: 0;\n  overflow: auto;\n  zoom: 1;\n}\n.datagrid-view1 .datagrid-body-inner {\n  padding-bottom: 20px;\n}\n.datagrid-view1 .datagrid-body {\n  overflow: hidden;\n}\n.datagrid-footer {\n  overflow: hidden;\n}\n.datagrid-footer-inner {\n  border-width: 1px 0 0 0;\n  border-style: solid;\n  width: 10000px;\n  float: left;\n}\n.datagrid-row-editing .datagrid-cell {\n  height: auto;\n}\n.datagrid-header-check,\n.datagrid-cell-check {\n  padding: 0;\n  width: 27px;\n  height: 18px;\n  font-size: 1px;\n  text-align: center;\n  overflow: hidden;\n}\n.datagrid-header-check input,\n.datagrid-cell-check input {\n  margin: 0;\n  padding: 0;\n  width: 15px;\n  height: 18px;\n}\n.datagrid-resize-proxy {\n  position: absolute;\n  width: 1px;\n  height: 10000px;\n  top: 0;\n  cursor: e-resize;\n  display: none;\n}\n.datagrid-body .datagrid-editable {\n  margin: 0;\n  padding: 0;\n}\n.datagrid-body .datagrid-editable table {\n  width: 100%;\n  height: 100%;\n}\n.datagrid-body .datagrid-editable td {\n  border: 0;\n  margin: 0;\n  padding: 0;\n}\n.datagrid-body .datagrid-editable .datagrid-editable-input {\n  margin: 0;\n  padding: 2px;\n  border-width: 1px;\n  border-style: solid;\n}\n.datagrid-sort-desc .datagrid-sort-icon {\n  padding: 0 13px 0 0;\n  background: url('images/datagrid_icons.png') no-repeat -16px center;\n}\n.datagrid-sort-asc .datagrid-sort-icon {\n  padding: 0 13px 0 0;\n  background: url('images/datagrid_icons.png') no-repeat 0px center;\n}\n.datagrid-row-collapse {\n  background: url('images/datagrid_icons.png') no-repeat -48px center;\n}\n.datagrid-row-expand {\n  background: url('images/datagrid_icons.png') no-repeat -32px center;\n}\n.datagrid-mask-msg {\n  background: #ffffff url('images/loading.gif') no-repeat scroll 5px center;\n}\n.datagrid-header,\n.datagrid-td-rownumber {\n  background-color: #efefef;\n  background: -webkit-linear-gradient(top,#F9F9F9 0,#efefef 100%);\n  background: -moz-linear-gradient(top,#F9F9F9 0,#efefef 100%);\n  background: -o-linear-gradient(top,#F9F9F9 0,#efefef 100%);\n  background: linear-gradient(to bottom,#F9F9F9 0,#efefef 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#F9F9F9,endColorstr=#efefef,GradientType=0);\n}\n.datagrid-cell-rownumber {\n  color: #000000;\n}\n.datagrid-resize-proxy {\n  background: #aac5e7;\n}\n.datagrid-mask {\n  background: #ccc;\n}\n.datagrid-mask-msg {\n  border-color: #95B8E7;\n}\n.datagrid-toolbar,\n.datagrid-pager {\n  background: #F4F4F4;\n}\n.datagrid-header,\n.datagrid-toolbar,\n.datagrid-pager,\n.datagrid-footer-inner {\n  border-color: #dddddd;\n}\n.datagrid-header td,\n.datagrid-body td,\n.datagrid-footer td {\n  border-color: #ccc;\n}\n.datagrid-htable,\n.datagrid-btable,\n.datagrid-ftable {\n  color: #000000;\n  border-collapse: separate;\n}\n.datagrid-row-alt {\n  background: #fafafa;\n}\n.datagrid-row-over,\n.datagrid-header td.datagrid-header-over {\n  background: #eaf2ff;\n  color: #000000;\n  cursor: default;\n}\n.datagrid-row-selected {\n  background: #FBEC88;\n  color: #000000;\n}\n.datagrid-body .datagrid-editable .datagrid-editable-input {\n  border-color: #95B8E7;\n}\n.propertygrid .datagrid-view1 .datagrid-body td {\n  padding-bottom: 1px;\n  border-width: 0 1px 0 0;\n}\n.propertygrid .datagrid-group {\n  height: 21px;\n  overflow: hidden;\n  border-width: 0 0 1px 0;\n  border-style: solid;\n}\n.propertygrid .datagrid-group span {\n  font-weight: bold;\n}\n.propertygrid .datagrid-view1 .datagrid-body td {\n  border-color: #dddddd;\n}\n.propertygrid .datagrid-view1 .datagrid-group {\n  border-color: #E0ECFF;\n}\n.propertygrid .datagrid-view2 .datagrid-group {\n  border-color: #dddddd;\n}\n.propertygrid .datagrid-group,\n.propertygrid .datagrid-view1 .datagrid-body,\n.propertygrid .datagrid-view1 .datagrid-row-over,\n.propertygrid .datagrid-view1 .datagrid-row-selected {\n  background: #E0ECFF;\n}\n.pagination {\n  zoom: 1;\n}\n.pagination table {\n  float: left;\n  height: 30px;\n}\n.pagination td {\n  border: 0;\n}\n.pagination-btn-separator {\n  float: left;\n  height: 24px;\n  border-left: 1px solid #ccc;\n  border-right: 1px solid #fff;\n  margin: 3px 1px;\n}\n.pagination .pagination-num {\n  border-width: 1px;\n  border-style: solid;\n  margin: 0 2px;\n  padding: 2px;\n  width: 2em;\n  height: auto;\n}\n.pagination-page-list {\n  margin: 0px 6px;\n  padding: 1px 2px;\n  width: auto;\n  height: auto;\n  border-width: 1px;\n  border-style: solid;\n}\n.pagination-info {\n  float: right;\n  margin: 0 6px 0 0;\n  padding: 0;\n  height: 30px;\n  line-height: 30px;\n  font-size: 12px;\n}\n.pagination span {\n  font-size: 12px;\n}\na.pagination-link {\n  padding: 1px;\n}\na.pagination-link span.l-btn-left {\n  padding-left: 0;\n}\na.pagination-link span span.l-btn-text {\n  width: 24px;\n  text-align: center;\n}\na:hover.pagination-link {\n  padding: 0;\n}\n.pagination-first {\n  background: url('images/pagination_icons.png') no-repeat 0 center;\n}\n.pagination-prev {\n  background: url('images/pagination_icons.png') no-repeat -16px center;\n}\n.pagination-next {\n  background: url('images/pagination_icons.png') no-repeat -32px center;\n}\n.pagination-last {\n  background: url('images/pagination_icons.png') no-repeat -48px center;\n}\n.pagination-load {\n  background: url('images/pagination_icons.png') no-repeat -64px center;\n}\n.pagination-loading {\n  background: url('images/loading.gif') no-repeat center center;\n}\n.pagination-page-list,\n.pagination .pagination-num {\n  border-color: #95B8E7;\n}\n.calendar {\n  border-width: 1px;\n  border-style: solid;\n  padding: 1px;\n  overflow: hidden;\n}\n.calendar table {\n  border-collapse: separate;\n  font-size: 12px;\n  width: 100%;\n  height: 100%;\n}\n.calendar table td,\n.calendar table th {\n  font-size: 12px;\n}\n.calendar-noborder {\n  border: 0;\n}\n.calendar-header {\n  position: relative;\n  height: 22px;\n}\n.calendar-title {\n  text-align: center;\n  height: 22px;\n}\n.calendar-title span {\n  position: relative;\n  display: inline-block;\n  top: 2px;\n  padding: 0 3px;\n  height: 18px;\n  line-height: 18px;\n  font-size: 12px;\n  cursor: pointer;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.calendar-prevmonth,\n.calendar-nextmonth,\n.calendar-prevyear,\n.calendar-nextyear {\n  position: absolute;\n  top: 50%;\n  margin-top: -7px;\n  width: 14px;\n  height: 14px;\n  cursor: pointer;\n  font-size: 1px;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.calendar-prevmonth {\n  left: 20px;\n  background: url('images/calendar_arrows.png') no-repeat -18px -2px;\n}\n.calendar-nextmonth {\n  right: 20px;\n  background: url('images/calendar_arrows.png') no-repeat -34px -2px;\n}\n.calendar-prevyear {\n  left: 3px;\n  background: url('images/calendar_arrows.png') no-repeat -1px -2px;\n}\n.calendar-nextyear {\n  right: 3px;\n  background: url('images/calendar_arrows.png') no-repeat -49px -2px;\n}\n.calendar-body {\n  position: relative;\n}\n.calendar-body th,\n.calendar-body td {\n  text-align: center;\n}\n.calendar-day {\n  border: 0;\n  padding: 1px;\n  cursor: pointer;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.calendar-other-month {\n  opacity: 0.3;\n  filter: alpha(opacity=30);\n}\n.calendar-menu {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 180px;\n  height: 150px;\n  padding: 5px;\n  font-size: 12px;\n  display: none;\n  overflow: hidden;\n}\n.calendar-menu-year-inner {\n  text-align: center;\n  padding-bottom: 5px;\n}\n.calendar-menu-year {\n  width: 40px;\n  text-align: center;\n  border-width: 1px;\n  border-style: solid;\n  margin: 0;\n  padding: 2px;\n  font-weight: bold;\n  font-size: 12px;\n}\n.calendar-menu-prev,\n.calendar-menu-next {\n  display: inline-block;\n  width: 21px;\n  height: 21px;\n  vertical-align: top;\n  cursor: pointer;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.calendar-menu-prev {\n  margin-right: 10px;\n  background: url('images/calendar_arrows.png') no-repeat 2px 2px;\n}\n.calendar-menu-next {\n  margin-left: 10px;\n  background: url('images/calendar_arrows.png') no-repeat -45px 2px;\n}\n.calendar-menu-month {\n  text-align: center;\n  cursor: pointer;\n  font-weight: bold;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.calendar-body th,\n.calendar-menu-month {\n  color: #4d4d4d;\n}\n.calendar-day {\n  color: #000000;\n}\n.calendar-sunday {\n  color: #CC2222;\n}\n.calendar-saturday {\n  color: #00ee00;\n}\n.calendar-today {\n  color: #0000ff;\n}\n.calendar-menu-year {\n  border-color: #95B8E7;\n}\n.calendar {\n  border-color: #95B8E7;\n}\n.calendar-header {\n  background: #E0ECFF;\n}\n.calendar-body,\n.calendar-menu {\n  background: #ffffff;\n}\n.calendar-body th {\n  background: #F4F4F4;\n}\n.calendar-hover,\n.calendar-nav-hover,\n.calendar-menu-hover {\n  background-color: #eaf2ff;\n  color: #000000;\n}\n.calendar-hover {\n  border: 1px solid #b7d2ff;\n  padding: 0;\n}\n.calendar-selected {\n  background-color: #FBEC88;\n  color: #000000;\n  border: 1px solid #E2C608;\n  padding: 0;\n}\n.datebox-calendar-inner {\n  height: 180px;\n}\n.datebox-button {\n  height: 18px;\n  padding: 2px 5px;\n  text-align: center;\n}\n.datebox-button a {\n  font-size: 12px;\n  font-weight: bold;\n  text-decoration: none;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.datebox-button a:hover {\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n}\n.datebox-current,\n.datebox-close {\n  float: left;\n}\n.datebox-close {\n  float: right;\n}\n.datebox .combo-arrow {\n  background-image: url('images/datebox_arrow.png');\n  background-position: center center;\n}\n.datebox-button {\n  background-color: #F4F4F4;\n}\n.datebox-button a {\n  color: #444;\n}\n.spinner {\n  display: inline-block;\n  white-space: nowrap;\n  margin: 0;\n  padding: 0;\n  border-width: 1px;\n  border-style: solid;\n  overflow: hidden;\n  vertical-align: middle;\n}\n.spinner .spinner-text {\n  font-size: 12px;\n  border: 0px;\n  line-height: 20px;\n  height: 20px;\n  margin: 0;\n  padding: 0 2px;\n  *margin-top: -1px;\n  *height: 18px;\n  *line-height: 18px;\n  _height: 18px;\n  _line-height: 18px;\n  vertical-align: baseline;\n}\n.spinner-arrow {\n  display: inline-block;\n  overflow: hidden;\n  vertical-align: top;\n  margin: 0;\n  padding: 0;\n}\n.spinner-arrow-up,\n.spinner-arrow-down {\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n  display: block;\n  font-size: 1px;\n  width: 18px;\n  height: 10px;\n}\n.spinner-arrow-hover {\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n}\n.spinner-arrow-up {\n  background: url('images/spinner_arrows.png') no-repeat 1px center;\n}\n.spinner-arrow-down {\n  background: url('images/spinner_arrows.png') no-repeat -15px center;\n}\n.spinner {\n  border-color: #95B8E7;\n}\n.spinner-arrow {\n  background-color: #E0ECFF;\n}\n.spinner-arrow-hover {\n  background-color: #eaf2ff;\n}\n.progressbar {\n  border-width: 1px;\n  border-style: solid;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n  overflow: hidden;\n  position: relative;\n}\n.progressbar-text {\n  text-align: center;\n  position: absolute;\n}\n.progressbar-value {\n  position: relative;\n  overflow: hidden;\n  width: 0;\n  -moz-border-radius: 5px 0 0 5px;\n  -webkit-border-radius: 5px 0 0 5px;\n  border-radius: 5px 0 0 5px;\n}\n.progressbar {\n  border-color: #95B8E7;\n}\n.progressbar-text {\n  color: #000000;\n  font-size: 12px;\n}\n.progressbar-value .progressbar-text {\n  background-color: #FBEC88;\n  color: #000000;\n}\n.searchbox {\n  display: inline-block;\n  white-space: nowrap;\n  margin: 0;\n  padding: 0;\n  border-width: 1px;\n  border-style: solid;\n  overflow: hidden;\n}\n.searchbox .searchbox-text {\n  font-size: 12px;\n  border: 0;\n  margin: 0;\n  padding: 0;\n  line-height: 20px;\n  height: 20px;\n  *margin-top: -1px;\n  *height: 18px;\n  *line-height: 18px;\n  _height: 18px;\n  _line-height: 18px;\n  vertical-align: baseline;\n}\n.searchbox .searchbox-prompt {\n  font-size: 12px;\n  color: #ccc;\n}\n.searchbox-button {\n  width: 18px;\n  height: 20px;\n  overflow: hidden;\n  display: inline-block;\n  vertical-align: top;\n  cursor: pointer;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.searchbox-button-hover {\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n}\n.searchbox a.l-btn-plain {\n  height: 20px;\n  border: 0;\n  padding: 0 6px 0 0;\n  vertical-align: top;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n  -moz-border-radius: 0 0 0 0;\n  -webkit-border-radius: 0 0 0 0;\n  border-radius: 0 0 0 0;\n}\n.searchbox a.l-btn .l-btn-left {\n  padding: 0 0 0 4px;\n}\n.searchbox a.l-btn .l-btn-text {\n  position: static;\n  vertical-align: top;\n}\n.searchbox a.l-btn-plain:hover {\n  border: 0;\n  padding: 0 6px 0 0;\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n  -moz-border-radius: 0 0 0 0;\n  -webkit-border-radius: 0 0 0 0;\n  border-radius: 0 0 0 0;\n}\n.searchbox a.m-btn-plain-active {\n  -moz-border-radius: 0 0 0 0;\n  -webkit-border-radius: 0 0 0 0;\n  border-radius: 0 0 0 0;\n}\n.searchbox-button {\n  background: url('images/searchbox_button.png') no-repeat center center;\n}\n.searchbox {\n  border-color: #95B8E7;\n  background-color: #fff;\n}\n.searchbox a.l-btn-plain {\n  background: #E0ECFF;\n}\n.slider-disabled {\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n}\n.slider-h {\n  height: 22px;\n}\n.slider-v {\n  width: 22px;\n}\n.slider-inner {\n  position: relative;\n  height: 6px;\n  top: 7px;\n  border-width: 1px;\n  border-style: solid;\n  border-radius: 5px;\n}\n.slider-handle {\n  position: absolute;\n  display: block;\n  outline: none;\n  width: 20px;\n  height: 20px;\n  top: -7px;\n  margin-left: -10px;\n}\n.slider-tip {\n  position: absolute;\n  display: inline-block;\n  line-height: 12px;\n  font-size: 12px;\n  white-space: nowrap;\n  top: -22px;\n}\n.slider-rule {\n  position: relative;\n  top: 15px;\n}\n.slider-rule span {\n  position: absolute;\n  display: inline-block;\n  font-size: 0;\n  height: 5px;\n  border-width: 0 0 0 1px;\n  border-style: solid;\n}\n.slider-rulelabel {\n  position: relative;\n  top: 20px;\n}\n.slider-rulelabel span {\n  position: absolute;\n  display: inline-block;\n  font-size: 12px;\n}\n.slider-v .slider-inner {\n  width: 6px;\n  left: 7px;\n  top: 0;\n  float: left;\n}\n.slider-v .slider-handle {\n  left: 3px;\n  margin-top: -10px;\n}\n.slider-v .slider-tip {\n  left: -10px;\n  margin-top: -6px;\n}\n.slider-v .slider-rule {\n  float: left;\n  top: 0;\n  left: 16px;\n}\n.slider-v .slider-rule span {\n  width: 5px;\n  height: 'auto';\n  border-left: 0;\n  border-width: 1px 0 0 0;\n  border-style: solid;\n}\n.slider-v .slider-rulelabel {\n  float: left;\n  top: 0;\n  left: 23px;\n}\n.slider-handle {\n  background: url('images/slider_handle.png') no-repeat;\n}\n.slider-inner {\n  border-color: #95B8E7;\n  background: #E0ECFF;\n}\n.slider-rule span {\n  border-color: #95B8E7;\n}\n.slider-rulelabel span {\n  color: #000000;\n}\n.menu {\n  position: absolute;\n  margin: 0;\n  padding: 2px;\n  border-width: 1px;\n  border-style: solid;\n  overflow: hidden;\n}\n.menu-item {\n  position: relative;\n  margin: 0;\n  padding: 0;\n  overflow: hidden;\n  white-space: nowrap;\n  cursor: pointer;\n  border-width: 1px;\n  border-style: solid;\n}\n.menu-text {\n  height: 20px;\n  line-height: 20px;\n  float: left;\n  padding-left: 28px;\n}\n.menu-icon {\n  position: absolute;\n  width: 16px;\n  height: 16px;\n  left: 2px;\n  top: 50%;\n  margin-top: -8px;\n}\n.menu-rightarrow {\n  position: absolute;\n  width: 16px;\n  height: 16px;\n  right: 0;\n  top: 50%;\n  margin-top: -8px;\n}\n.menu-line {\n  position: absolute;\n  left: 26px;\n  top: 0;\n  height: 2000px;\n  font-size: 1px;\n}\n.menu-sep {\n  margin: 3px 0px 3px 25px;\n  font-size: 1px;\n}\n.menu-active {\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.menu-item-disabled {\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n  cursor: default;\n}\n.menu-text,\n.menu-text span {\n  font-size: 12px;\n}\n.menu-shadow {\n  position: absolute;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n  background: #ccc;\n  -moz-box-shadow: 2px 2px 3px #cccccc;\n  -webkit-box-shadow: 2px 2px 3px #cccccc;\n  box-shadow: 2px 2px 3px #cccccc;\n  filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2);\n}\n.menu-rightarrow {\n  background: url('images/menu_arrows.png') no-repeat -32px center;\n}\n.menu-line {\n  border-left: 1px solid #ccc;\n  border-right: 1px solid #fff;\n}\n.menu-sep {\n  border-top: 1px solid #ccc;\n  border-bottom: 1px solid #fff;\n}\n.menu {\n  background-color: #fafafa;\n  border-color: #ddd;\n  color: #444;\n}\n.menu-content {\n  background: #ffffff;\n}\n.menu-item {\n  border-color: transparent;\n  _border-color: #fafafa;\n}\n.menu-active {\n  border-color: #b7d2ff;\n  color: #000000;\n  background: #eaf2ff;\n}\n.menu-active-disabled {\n  border-color: transparent;\n  background: transparent;\n  color: #444;\n}\n.m-btn-downarrow {\n  display: inline-block;\n  width: 16px;\n  height: 16px;\n  line-height: 16px;\n  font-size: 12px;\n  _vertical-align: middle;\n}\na.m-btn-active {\n  background-position: bottom right;\n}\na.m-btn-active span.l-btn-left {\n  background-position: bottom left;\n}\na.m-btn-plain-active {\n  background: transparent;\n  padding: 0 5px 0 0;\n  border-width: 1px;\n  border-style: solid;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.m-btn-downarrow {\n  background: url('images/menu_arrows.png') no-repeat 2px center;\n}\na.m-btn-plain-active {\n  border-color: #b7d2ff;\n  background-color: #eaf2ff;\n  color: #000000;\n}\n.s-btn-downarrow {\n  display: inline-block;\n  margin: 0 0 0 4px;\n  padding: 0 0 0 1px;\n  width: 14px;\n  height: 16px;\n  line-height: 16px;\n  border-width: 0;\n  border-style: solid;\n  font-size: 12px;\n  _vertical-align: middle;\n}\na.s-btn-active {\n  background-position: bottom right;\n}\na.s-btn-active span.l-btn-left {\n  background-position: bottom left;\n}\na.s-btn-plain-active {\n  background: transparent;\n  padding: 0 5px 0 0;\n  border-width: 1px;\n  border-style: solid;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.s-btn-downarrow {\n  background: url('images/menu_arrows.png') no-repeat 2px center;\n  border-color: #aac5e7;\n}\na:hover.l-btn .s-btn-downarrow,\na.s-btn-active .s-btn-downarrow,\na.s-btn-plain-active .s-btn-downarrow {\n  background-position: 1px center;\n  padding: 0;\n  border-width: 0 0 0 1px;\n}\na.s-btn-plain-active {\n  border-color: #b7d2ff;\n  background-color: #eaf2ff;\n  color: #000000;\n}\n.messager-body {\n  padding: 10px;\n  overflow: hidden;\n}\n.messager-button {\n  text-align: center;\n  padding-top: 10px;\n}\n.messager-icon {\n  float: left;\n  width: 32px;\n  height: 32px;\n  margin: 0 10px 10px 0;\n}\n.messager-error {\n  background: url('images/messager_icons.png') no-repeat scroll -64px 0;\n}\n.messager-info {\n  background: url('images/messager_icons.png') no-repeat scroll 0 0;\n}\n.messager-question {\n  background: url('images/messager_icons.png') no-repeat scroll -32px 0;\n}\n.messager-warning {\n  background: url('images/messager_icons.png') no-repeat scroll -96px 0;\n}\n.messager-progress {\n  padding: 10px;\n}\n.messager-p-msg {\n  margin-bottom: 5px;\n}\n.messager-body .messager-input {\n  width: 100%;\n  padding: 1px 0;\n  border: 1px solid #95B8E7;\n}\n.tree {\n  margin: 0;\n  padding: 0;\n  list-style-type: none;\n}\n.tree li {\n  white-space: nowrap;\n}\n.tree li ul {\n  list-style-type: none;\n  margin: 0;\n  padding: 0;\n}\n.tree-node {\n  height: 18px;\n  white-space: nowrap;\n  cursor: pointer;\n}\n.tree-hit {\n  cursor: pointer;\n}\n.tree-expanded,\n.tree-collapsed,\n.tree-folder,\n.tree-file,\n.tree-checkbox,\n.tree-indent {\n  display: inline-block;\n  width: 16px;\n  height: 18px;\n  vertical-align: top;\n  overflow: hidden;\n}\n.tree-expanded {\n  background: url('images/tree_icons.png') no-repeat -18px 0px;\n}\n.tree-expanded-hover {\n  background: url('images/tree_icons.png') no-repeat -50px 0px;\n}\n.tree-collapsed {\n  background: url('images/tree_icons.png') no-repeat 0px 0px;\n}\n.tree-collapsed-hover {\n  background: url('images/tree_icons.png') no-repeat -32px 0px;\n}\n.tree-lines .tree-expanded,\n.tree-lines .tree-root-first .tree-expanded {\n  background: url('images/tree_icons.png') no-repeat -144px 0;\n}\n.tree-lines .tree-collapsed,\n.tree-lines .tree-root-first .tree-collapsed {\n  background: url('images/tree_icons.png') no-repeat -128px 0;\n}\n.tree-lines .tree-node-last .tree-expanded,\n.tree-lines .tree-root-one .tree-expanded {\n  background: url('images/tree_icons.png') no-repeat -80px 0;\n}\n.tree-lines .tree-node-last .tree-collapsed,\n.tree-lines .tree-root-one .tree-collapsed {\n  background: url('images/tree_icons.png') no-repeat -64px 0;\n}\n.tree-line {\n  background: url('images/tree_icons.png') no-repeat -176px 0;\n}\n.tree-join {\n  background: url('images/tree_icons.png') no-repeat -192px 0;\n}\n.tree-joinbottom {\n  background: url('images/tree_icons.png') no-repeat -160px 0;\n}\n.tree-folder {\n  background: url('images/tree_icons.png') no-repeat -208px 0;\n}\n.tree-folder-open {\n  background: url('images/tree_icons.png') no-repeat -224px 0;\n}\n.tree-file {\n  background: url('images/tree_icons.png') no-repeat -240px 0;\n}\n.tree-loading {\n  background: url('images/loading.gif') no-repeat center center;\n}\n.tree-checkbox0 {\n  background: url('images/tree_icons.png') no-repeat -208px -18px;\n}\n.tree-checkbox1 {\n  background: url('images/tree_icons.png') no-repeat -224px -18px;\n}\n.tree-checkbox2 {\n  background: url('images/tree_icons.png') no-repeat -240px -18px;\n}\n.tree-title {\n  font-size: 12px;\n  display: inline-block;\n  text-decoration: none;\n  vertical-align: top;\n  white-space: nowrap;\n  padding: 0 2px;\n  height: 18px;\n  line-height: 18px;\n}\n.tree-node-proxy {\n  font-size: 12px;\n  line-height: 20px;\n  padding: 0 2px 0 20px;\n  border-width: 1px;\n  border-style: solid;\n  z-index: 9900000;\n}\n.tree-dnd-icon {\n  display: inline-block;\n  position: absolute;\n  width: 16px;\n  height: 18px;\n  left: 2px;\n  top: 50%;\n  margin-top: -9px;\n}\n.tree-dnd-yes {\n  background: url('images/tree_icons.png') no-repeat -256px 0;\n}\n.tree-dnd-no {\n  background: url('images/tree_icons.png') no-repeat -256px -18px;\n}\n.tree-node-top {\n  border-top: 1px dotted red;\n}\n.tree-node-bottom {\n  border-bottom: 1px dotted red;\n}\n.tree-node-append .tree-title {\n  border: 1px dotted red;\n}\n.tree-editor {\n  border: 1px solid #ccc;\n  font-size: 12px;\n  height: 14px !important;\n  height: 18px;\n  line-height: 14px;\n  padding: 1px 2px;\n  width: 80px;\n  position: absolute;\n  top: 0;\n}\n.tree-node-proxy {\n  background-color: #ffffff;\n  color: #000000;\n  border-color: #95B8E7;\n}\n.tree-node-hover {\n  background: #eaf2ff;\n  color: #000000;\n}\n.tree-node-selected {\n  background: #FBEC88;\n  color: #000000;\n}\n.validatebox-invalid {\n  background-image: url('images/validatebox_warning.png');\n  background-repeat: no-repeat;\n  background-position: right center;\n  border-color: #ffa8a8;\n  background-color: #fff3f3;\n  color: #000;\n}\n.tooltip {\n  position: absolute;\n  display: none;\n  z-index: 9900000;\n  outline: none;\n  opacity: 1;\n  filter: alpha(opacity=100);\n  padding: 5px;\n  border-width: 1px;\n  border-style: solid;\n  border-radius: 5px;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.tooltip-content {\n  font-size: 12px;\n}\n.tooltip-arrow-outer,\n.tooltip-arrow {\n  position: absolute;\n  width: 0;\n  height: 0;\n  line-height: 0;\n  font-size: 0;\n  border-style: solid;\n  border-width: 6px;\n  border-color: transparent;\n  _border-color: tomato;\n  _filter: chroma(color=tomato);\n}\n.tooltip-right .tooltip-arrow-outer {\n  left: 0;\n  top: 50%;\n  margin: -6px 0 0 -13px;\n}\n.tooltip-right .tooltip-arrow {\n  left: 0;\n  top: 50%;\n  margin: -6px 0 0 -12px;\n}\n.tooltip-left .tooltip-arrow-outer {\n  right: 0;\n  top: 50%;\n  margin: -6px -13px 0 0;\n}\n.tooltip-left .tooltip-arrow {\n  right: 0;\n  top: 50%;\n  margin: -6px -12px 0 0;\n}\n.tooltip-top .tooltip-arrow-outer {\n  bottom: 0;\n  left: 50%;\n  margin: 0 0 -13px -6px;\n}\n.tooltip-top .tooltip-arrow {\n  bottom: 0;\n  left: 50%;\n  margin: 0 0 -12px -6px;\n}\n.tooltip-bottom .tooltip-arrow-outer {\n  top: 0;\n  left: 50%;\n  margin: -13px 0 0 -6px;\n}\n.tooltip-bottom .tooltip-arrow {\n  top: 0;\n  left: 50%;\n  margin: -12px 0 0 -6px;\n}\n.tooltip {\n  background-color: #ffffff;\n  border-color: #95B8E7;\n  color: #000000;\n}\n.tooltip-right .tooltip-arrow-outer {\n  border-right-color: #95B8E7;\n}\n.tooltip-right .tooltip-arrow {\n  border-right-color: #ffffff;\n}\n.tooltip-left .tooltip-arrow-outer {\n  border-left-color: #95B8E7;\n}\n.tooltip-left .tooltip-arrow {\n  border-left-color: #ffffff;\n}\n.tooltip-top .tooltip-arrow-outer {\n  border-top-color: #95B8E7;\n}\n.tooltip-top .tooltip-arrow {\n  border-top-color: #ffffff;\n}\n.tooltip-bottom .tooltip-arrow-outer {\n  border-bottom-color: #95B8E7;\n}\n.tooltip-bottom .tooltip-arrow {\n  border-bottom-color: #ffffff;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/default/layout.css",
    "content": ".layout {\n  position: relative;\n  overflow: hidden;\n  margin: 0;\n  padding: 0;\n  z-index: 0;\n}\n.layout-panel {\n  position: absolute;\n  overflow: hidden;\n}\n.layout-panel-east,\n.layout-panel-west {\n  z-index: 2;\n}\n.layout-panel-north,\n.layout-panel-south {\n  z-index: 3;\n}\n.layout-expand {\n  position: absolute;\n  padding: 0px;\n  font-size: 1px;\n  cursor: pointer;\n  z-index: 1;\n}\n.layout-expand .panel-header,\n.layout-expand .panel-body {\n  background: transparent;\n  filter: none;\n  overflow: hidden;\n}\n.layout-expand .panel-header {\n  border-bottom-width: 0px;\n}\n.layout-split-proxy-h,\n.layout-split-proxy-v {\n  position: absolute;\n  font-size: 1px;\n  display: none;\n  z-index: 5;\n}\n.layout-split-proxy-h {\n  width: 5px;\n  cursor: e-resize;\n}\n.layout-split-proxy-v {\n  height: 5px;\n  cursor: n-resize;\n}\n.layout-mask {\n  position: absolute;\n  background: #fafafa;\n  filter: alpha(opacity=10);\n  opacity: 0.10;\n  z-index: 4;\n}\n.layout-button-up {\n  background: url('images/layout_arrows.png') no-repeat -16px -16px;\n}\n.layout-button-down {\n  background: url('images/layout_arrows.png') no-repeat -16px 0;\n}\n.layout-button-left {\n  background: url('images/layout_arrows.png') no-repeat 0 0;\n}\n.layout-button-right {\n  background: url('images/layout_arrows.png') no-repeat 0 -16px;\n}\n.layout-split-proxy-h,\n.layout-split-proxy-v {\n  background-color: #aac5e7;\n}\n.layout-split-north {\n  border-bottom: 5px solid #E6EEF8;\n}\n.layout-split-south {\n  border-top: 5px solid #E6EEF8;\n}\n.layout-split-east {\n  border-left: 5px solid #E6EEF8;\n}\n.layout-split-west {\n  border-right: 5px solid #E6EEF8;\n}\n.layout-expand {\n  background-color: #E0ECFF;\n}\n.layout-expand-over {\n  background-color: #E0ECFF;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/default/linkbutton.css",
    "content": "a.l-btn {\n  background-position: right 0;\n  text-decoration: none;\n  display: inline-block;\n  zoom: 1;\n  height: 24px;\n  padding-right: 18px;\n  cursor: pointer;\n  outline: none;\n}\na.l-btn-plain {\n  border: 0;\n  padding: 1px 6px 1px 1px;\n}\na.l-btn-disabled {\n  color: #ccc;\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n  cursor: default;\n}\na.l-btn span.l-btn-left {\n  display: inline-block;\n  background-position: 0 -48px;\n  padding: 0 0 0 18px;\n  line-height: 24px;\n  height: 24px;\n}\na.l-btn-plain span.l-btn-left {\n  padding-left: 5px;\n}\na.l-btn span span.l-btn-text {\n  position: relative;\n  display: inline-block;\n  vertical-align: top;\n  top: 4px;\n  width: auto;\n  height: 16px;\n  line-height: 16px;\n  font-size: 12px;\n  padding: 0;\n  margin: 0;\n}\na.l-btn span span.l-btn-icon-left {\n  padding: 0 0 0 20px;\n  background-position: left center;\n}\na.l-btn span span.l-btn-icon-right {\n  padding: 0 20px 0 0;\n  background-position: right center;\n}\na.l-btn span span span.l-btn-empty {\n  display: inline-block;\n  margin: 0;\n  padding: 0;\n  width: 16px;\n}\na:hover.l-btn {\n  background-position: right -24px;\n  outline: none;\n  text-decoration: none;\n}\na:hover.l-btn span.l-btn-left {\n  background-position: 0 bottom;\n}\na:hover.l-btn-plain {\n  padding: 0 5px 0 0;\n}\na:hover.l-btn-disabled {\n  background-position: right 0;\n}\na:hover.l-btn-disabled span.l-btn-left {\n  background-position: 0 -48px;\n}\na.l-btn .l-btn-focus {\n  outline: #0000FF dotted thin;\n}\na.l-btn {\n  color: #444;\n  background-image: url('images/linkbutton_bg.png');\n  background-repeat: no-repeat;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\na.l-btn span.l-btn-left {\n  background-image: url('images/linkbutton_bg.png');\n  background-repeat: no-repeat;\n}\na.l-btn-plain,\na.l-btn-plain span.l-btn-left {\n  background: transparent;\n  border: 0;\n  filter: none;\n}\na:hover.l-btn-plain {\n  background: #eaf2ff;\n  color: #000000;\n  border: 1px solid #b7d2ff;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\na.l-btn-disabled,\na:hover.l-btn-disabled {\n  color: #444;\n  filter: alpha(opacity=50);\n}\na.l-btn-plain-disabled,\na:hover.l-btn-plain-disabled {\n  background: transparent;\n  filter: alpha(opacity=50);\n}\na.l-btn-selected,\na:hover.l-btn-selected {\n  background-position: right -24px;\n}\na.l-btn-selected span.l-btn-left,\na:hover.l-btn-selected span.l-btn-left {\n  background-position: 0 bottom;\n}\na.l-btn-plain-selected,\na:hover.l-btn-plain-selected {\n  background: #ddd;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/default/menu.css",
    "content": ".menu {\n  position: absolute;\n  margin: 0;\n  padding: 2px;\n  border-width: 1px;\n  border-style: solid;\n  overflow: hidden;\n}\n.menu-item {\n  position: relative;\n  margin: 0;\n  padding: 0;\n  overflow: hidden;\n  white-space: nowrap;\n  cursor: pointer;\n  border-width: 1px;\n  border-style: solid;\n}\n.menu-text {\n  height: 20px;\n  line-height: 20px;\n  float: left;\n  padding-left: 28px;\n}\n.menu-icon {\n  position: absolute;\n  width: 16px;\n  height: 16px;\n  left: 2px;\n  top: 50%;\n  margin-top: -8px;\n}\n.menu-rightarrow {\n  position: absolute;\n  width: 16px;\n  height: 16px;\n  right: 0;\n  top: 50%;\n  margin-top: -8px;\n}\n.menu-line {\n  position: absolute;\n  left: 26px;\n  top: 0;\n  height: 2000px;\n  font-size: 1px;\n}\n.menu-sep {\n  margin: 3px 0px 3px 25px;\n  font-size: 1px;\n}\n.menu-active {\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.menu-item-disabled {\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n  cursor: default;\n}\n.menu-text,\n.menu-text span {\n  font-size: 12px;\n}\n.menu-shadow {\n  position: absolute;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n  background: #ccc;\n  -moz-box-shadow: 2px 2px 3px #cccccc;\n  -webkit-box-shadow: 2px 2px 3px #cccccc;\n  box-shadow: 2px 2px 3px #cccccc;\n  filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2);\n}\n.menu-rightarrow {\n  background: url('images/menu_arrows.png') no-repeat -32px center;\n}\n.menu-line {\n  border-left: 1px solid #ccc;\n  border-right: 1px solid #fff;\n}\n.menu-sep {\n  border-top: 1px solid #ccc;\n  border-bottom: 1px solid #fff;\n}\n.menu {\n  background-color: #fafafa;\n  border-color: #ddd;\n  color: #444;\n}\n.menu-content {\n  background: #ffffff;\n}\n.menu-item {\n  border-color: transparent;\n  _border-color: #fafafa;\n}\n.menu-active {\n  border-color: #b7d2ff;\n  color: #000000;\n  background: #eaf2ff;\n}\n.menu-active-disabled {\n  border-color: transparent;\n  background: transparent;\n  color: #444;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/default/menubutton.css",
    "content": ".m-btn-downarrow {\n  display: inline-block;\n  width: 16px;\n  height: 16px;\n  line-height: 16px;\n  font-size: 12px;\n  _vertical-align: middle;\n}\na.m-btn-active {\n  background-position: bottom right;\n}\na.m-btn-active span.l-btn-left {\n  background-position: bottom left;\n}\na.m-btn-plain-active {\n  background: transparent;\n  padding: 0 5px 0 0;\n  border-width: 1px;\n  border-style: solid;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.m-btn-downarrow {\n  background: url('images/menu_arrows.png') no-repeat 2px center;\n}\na.m-btn-plain-active {\n  border-color: #b7d2ff;\n  background-color: #eaf2ff;\n  color: #000000;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/default/messager.css",
    "content": ".messager-body {\n  padding: 10px;\n  overflow: hidden;\n}\n.messager-button {\n  text-align: center;\n  padding-top: 10px;\n}\n.messager-icon {\n  float: left;\n  width: 32px;\n  height: 32px;\n  margin: 0 10px 10px 0;\n}\n.messager-error {\n  background: url('images/messager_icons.png') no-repeat scroll -64px 0;\n}\n.messager-info {\n  background: url('images/messager_icons.png') no-repeat scroll 0 0;\n}\n.messager-question {\n  background: url('images/messager_icons.png') no-repeat scroll -32px 0;\n}\n.messager-warning {\n  background: url('images/messager_icons.png') no-repeat scroll -96px 0;\n}\n.messager-progress {\n  padding: 10px;\n}\n.messager-p-msg {\n  margin-bottom: 5px;\n}\n.messager-body .messager-input {\n  width: 100%;\n  padding: 1px 0;\n  border: 1px solid #95B8E7;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/default/pagination.css",
    "content": ".pagination {\n  zoom: 1;\n}\n.pagination table {\n  float: left;\n  height: 30px;\n}\n.pagination td {\n  border: 0;\n}\n.pagination-btn-separator {\n  float: left;\n  height: 24px;\n  border-left: 1px solid #ccc;\n  border-right: 1px solid #fff;\n  margin: 3px 1px;\n}\n.pagination .pagination-num {\n  border-width: 1px;\n  border-style: solid;\n  margin: 0 2px;\n  padding: 2px;\n  width: 2em;\n  height: auto;\n}\n.pagination-page-list {\n  margin: 0px 6px;\n  padding: 1px 2px;\n  width: auto;\n  height: auto;\n  border-width: 1px;\n  border-style: solid;\n}\n.pagination-info {\n  float: right;\n  margin: 0 6px 0 0;\n  padding: 0;\n  height: 30px;\n  line-height: 30px;\n  font-size: 12px;\n}\n.pagination span {\n  font-size: 12px;\n}\na.pagination-link {\n  padding: 1px;\n}\na.pagination-link span.l-btn-left {\n  padding-left: 0;\n}\na.pagination-link span span.l-btn-text {\n  width: 24px;\n  text-align: center;\n}\na:hover.pagination-link {\n  padding: 0;\n}\n.pagination-first {\n  background: url('images/pagination_icons.png') no-repeat 0 center;\n}\n.pagination-prev {\n  background: url('images/pagination_icons.png') no-repeat -16px center;\n}\n.pagination-next {\n  background: url('images/pagination_icons.png') no-repeat -32px center;\n}\n.pagination-last {\n  background: url('images/pagination_icons.png') no-repeat -48px center;\n}\n.pagination-load {\n  background: url('images/pagination_icons.png') no-repeat -64px center;\n}\n.pagination-loading {\n  background: url('images/loading.gif') no-repeat center center;\n}\n.pagination-page-list,\n.pagination .pagination-num {\n  border-color: #95B8E7;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/default/panel.css",
    "content": ".panel {\n  overflow: hidden;\n  text-align: left;\n  margin: 0;\n  border: 0;\n  -moz-border-radius: 0 0 0 0;\n  -webkit-border-radius: 0 0 0 0;\n  border-radius: 0 0 0 0;\n}\n.panel-header,\n.panel-body {\n  border-width: 1px;\n  border-style: solid;\n}\n.panel-header {\n  padding: 5px;\n  position: relative;\n}\n.panel-title {\n  background: url('images/blank.gif') no-repeat;\n}\n.panel-header-noborder {\n  border-width: 0 0 1px 0;\n}\n.panel-body {\n  overflow: auto;\n  border-top-width: 0;\n  padding: 0;\n}\n.panel-body-noheader {\n  border-top-width: 1px;\n}\n.panel-body-noborder {\n  border-width: 0px;\n}\n.panel-with-icon {\n  padding-left: 18px;\n}\n.panel-icon,\n.panel-tool {\n  position: absolute;\n  top: 50%;\n  margin-top: -8px;\n  height: 16px;\n  overflow: hidden;\n}\n.panel-icon {\n  left: 5px;\n  width: 16px;\n}\n.panel-tool {\n  right: 5px;\n  width: auto;\n}\n.panel-tool a {\n  display: inline-block;\n  width: 16px;\n  height: 16px;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n  margin: 0 0 0 2px;\n  vertical-align: top;\n}\n.panel-tool a:hover {\n  opacity: 1;\n  filter: alpha(opacity=100);\n  background-color: #eaf2ff;\n  -moz-border-radius: 3px 3px 3px 3px;\n  -webkit-border-radius: 3px 3px 3px 3px;\n  border-radius: 3px 3px 3px 3px;\n}\n.panel-loading {\n  padding: 11px 0px 10px 30px;\n}\n.panel-noscroll {\n  overflow: hidden;\n}\n.panel-fit,\n.panel-fit body {\n  height: 100%;\n  margin: 0;\n  padding: 0;\n  border: 0;\n  overflow: hidden;\n}\n.panel-loading {\n  background: url('images/loading.gif') no-repeat 10px 10px;\n}\n.panel-tool-close {\n  background: url('images/panel_tools.png') no-repeat -16px 0px;\n}\n.panel-tool-min {\n  background: url('images/panel_tools.png') no-repeat 0px 0px;\n}\n.panel-tool-max {\n  background: url('images/panel_tools.png') no-repeat 0px -16px;\n}\n.panel-tool-restore {\n  background: url('images/panel_tools.png') no-repeat -16px -16px;\n}\n.panel-tool-collapse {\n  background: url('images/panel_tools.png') no-repeat -32px 0;\n}\n.panel-tool-expand {\n  background: url('images/panel_tools.png') no-repeat -32px -16px;\n}\n.panel-header,\n.panel-body {\n  border-color: #95B8E7;\n}\n.panel-header {\n  background-color: #E0ECFF;\n  background: -webkit-linear-gradient(top,#EFF5FF 0,#E0ECFF 100%);\n  background: -moz-linear-gradient(top,#EFF5FF 0,#E0ECFF 100%);\n  background: -o-linear-gradient(top,#EFF5FF 0,#E0ECFF 100%);\n  background: linear-gradient(to bottom,#EFF5FF 0,#E0ECFF 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#EFF5FF,endColorstr=#E0ECFF,GradientType=0);\n}\n.panel-body {\n  background-color: #ffffff;\n  color: #000000;\n  font-size: 12px;\n}\n.panel-title {\n  font-size: 12px;\n  font-weight: bold;\n  color: #0E2D5F;\n  height: 16px;\n  line-height: 16px;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/default/progressbar.css",
    "content": ".progressbar {\n  border-width: 1px;\n  border-style: solid;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n  overflow: hidden;\n  position: relative;\n}\n.progressbar-text {\n  text-align: center;\n  position: absolute;\n}\n.progressbar-value {\n  position: relative;\n  overflow: hidden;\n  width: 0;\n  -moz-border-radius: 5px 0 0 5px;\n  -webkit-border-radius: 5px 0 0 5px;\n  border-radius: 5px 0 0 5px;\n}\n.progressbar {\n  border-color: #95B8E7;\n}\n.progressbar-text {\n  color: #000000;\n  font-size: 12px;\n}\n.progressbar-value .progressbar-text {\n  background-color: #FBEC88;\n  color: #000000;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/default/propertygrid.css",
    "content": ".propertygrid .datagrid-view1 .datagrid-body td {\n  padding-bottom: 1px;\n  border-width: 0 1px 0 0;\n}\n.propertygrid .datagrid-group {\n  height: 21px;\n  overflow: hidden;\n  border-width: 0 0 1px 0;\n  border-style: solid;\n}\n.propertygrid .datagrid-group span {\n  font-weight: bold;\n}\n.propertygrid .datagrid-view1 .datagrid-body td {\n  border-color: #dddddd;\n}\n.propertygrid .datagrid-view1 .datagrid-group {\n  border-color: #E0ECFF;\n}\n.propertygrid .datagrid-view2 .datagrid-group {\n  border-color: #dddddd;\n}\n.propertygrid .datagrid-group,\n.propertygrid .datagrid-view1 .datagrid-body,\n.propertygrid .datagrid-view1 .datagrid-row-over,\n.propertygrid .datagrid-view1 .datagrid-row-selected {\n  background: #E0ECFF;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/default/searchbox.css",
    "content": ".searchbox {\n  display: inline-block;\n  white-space: nowrap;\n  margin: 0;\n  padding: 0;\n  border-width: 1px;\n  border-style: solid;\n  overflow: hidden;\n}\n.searchbox .searchbox-text {\n  font-size: 12px;\n  border: 0;\n  margin: 0;\n  padding: 0;\n  line-height: 20px;\n  height: 20px;\n  *margin-top: -1px;\n  *height: 18px;\n  *line-height: 18px;\n  _height: 18px;\n  _line-height: 18px;\n  vertical-align: baseline;\n}\n.searchbox .searchbox-prompt {\n  font-size: 12px;\n  color: #ccc;\n}\n.searchbox-button {\n  width: 18px;\n  height: 20px;\n  overflow: hidden;\n  display: inline-block;\n  vertical-align: top;\n  cursor: pointer;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.searchbox-button-hover {\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n}\n.searchbox a.l-btn-plain {\n  height: 20px;\n  border: 0;\n  padding: 0 6px 0 0;\n  vertical-align: top;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n  -moz-border-radius: 0 0 0 0;\n  -webkit-border-radius: 0 0 0 0;\n  border-radius: 0 0 0 0;\n}\n.searchbox a.l-btn .l-btn-left {\n  padding: 0 0 0 4px;\n}\n.searchbox a.l-btn .l-btn-text {\n  position: static;\n  vertical-align: top;\n}\n.searchbox a.l-btn-plain:hover {\n  border: 0;\n  padding: 0 6px 0 0;\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n  -moz-border-radius: 0 0 0 0;\n  -webkit-border-radius: 0 0 0 0;\n  border-radius: 0 0 0 0;\n}\n.searchbox a.m-btn-plain-active {\n  -moz-border-radius: 0 0 0 0;\n  -webkit-border-radius: 0 0 0 0;\n  border-radius: 0 0 0 0;\n}\n.searchbox-button {\n  background: url('images/searchbox_button.png') no-repeat center center;\n}\n.searchbox {\n  border-color: #95B8E7;\n  background-color: #fff;\n}\n.searchbox a.l-btn-plain {\n  background: #E0ECFF;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/default/slider.css",
    "content": ".slider-disabled {\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n}\n.slider-h {\n  height: 22px;\n}\n.slider-v {\n  width: 22px;\n}\n.slider-inner {\n  position: relative;\n  height: 6px;\n  top: 7px;\n  border-width: 1px;\n  border-style: solid;\n  border-radius: 5px;\n}\n.slider-handle {\n  position: absolute;\n  display: block;\n  outline: none;\n  width: 20px;\n  height: 20px;\n  top: -7px;\n  margin-left: -10px;\n}\n.slider-tip {\n  position: absolute;\n  display: inline-block;\n  line-height: 12px;\n  font-size: 12px;\n  white-space: nowrap;\n  top: -22px;\n}\n.slider-rule {\n  position: relative;\n  top: 15px;\n}\n.slider-rule span {\n  position: absolute;\n  display: inline-block;\n  font-size: 0;\n  height: 5px;\n  border-width: 0 0 0 1px;\n  border-style: solid;\n}\n.slider-rulelabel {\n  position: relative;\n  top: 20px;\n}\n.slider-rulelabel span {\n  position: absolute;\n  display: inline-block;\n  font-size: 12px;\n}\n.slider-v .slider-inner {\n  width: 6px;\n  left: 7px;\n  top: 0;\n  float: left;\n}\n.slider-v .slider-handle {\n  left: 3px;\n  margin-top: -10px;\n}\n.slider-v .slider-tip {\n  left: -10px;\n  margin-top: -6px;\n}\n.slider-v .slider-rule {\n  float: left;\n  top: 0;\n  left: 16px;\n}\n.slider-v .slider-rule span {\n  width: 5px;\n  height: 'auto';\n  border-left: 0;\n  border-width: 1px 0 0 0;\n  border-style: solid;\n}\n.slider-v .slider-rulelabel {\n  float: left;\n  top: 0;\n  left: 23px;\n}\n.slider-handle {\n  background: url('images/slider_handle.png') no-repeat;\n}\n.slider-inner {\n  border-color: #95B8E7;\n  background: #E0ECFF;\n}\n.slider-rule span {\n  border-color: #95B8E7;\n}\n.slider-rulelabel span {\n  color: #000000;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/default/spinner.css",
    "content": ".spinner {\n  display: inline-block;\n  white-space: nowrap;\n  margin: 0;\n  padding: 0;\n  border-width: 1px;\n  border-style: solid;\n  overflow: hidden;\n  vertical-align: middle;\n}\n.spinner .spinner-text {\n  font-size: 12px;\n  border: 0px;\n  line-height: 20px;\n  height: 20px;\n  margin: 0;\n  padding: 0 2px;\n  *margin-top: -1px;\n  *height: 18px;\n  *line-height: 18px;\n  _height: 18px;\n  _line-height: 18px;\n  vertical-align: baseline;\n}\n.spinner-arrow {\n  display: inline-block;\n  overflow: hidden;\n  vertical-align: top;\n  margin: 0;\n  padding: 0;\n}\n.spinner-arrow-up,\n.spinner-arrow-down {\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n  display: block;\n  font-size: 1px;\n  width: 18px;\n  height: 10px;\n}\n.spinner-arrow-hover {\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n}\n.spinner-arrow-up {\n  background: url('images/spinner_arrows.png') no-repeat 1px center;\n}\n.spinner-arrow-down {\n  background: url('images/spinner_arrows.png') no-repeat -15px center;\n}\n.spinner {\n  border-color: #95B8E7;\n}\n.spinner-arrow {\n  background-color: #E0ECFF;\n}\n.spinner-arrow-hover {\n  background-color: #eaf2ff;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/default/splitbutton.css",
    "content": ".s-btn-downarrow {\n  display: inline-block;\n  margin: 0 0 0 4px;\n  padding: 0 0 0 1px;\n  width: 14px;\n  height: 16px;\n  line-height: 16px;\n  border-width: 0;\n  border-style: solid;\n  font-size: 12px;\n  _vertical-align: middle;\n}\na.s-btn-active {\n  background-position: bottom right;\n}\na.s-btn-active span.l-btn-left {\n  background-position: bottom left;\n}\na.s-btn-plain-active {\n  background: transparent;\n  padding: 0 5px 0 0;\n  border-width: 1px;\n  border-style: solid;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.s-btn-downarrow {\n  background: url('images/menu_arrows.png') no-repeat 2px center;\n  border-color: #aac5e7;\n}\na:hover.l-btn .s-btn-downarrow,\na.s-btn-active .s-btn-downarrow,\na.s-btn-plain-active .s-btn-downarrow {\n  background-position: 1px center;\n  padding: 0;\n  border-width: 0 0 0 1px;\n}\na.s-btn-plain-active {\n  border-color: #b7d2ff;\n  background-color: #eaf2ff;\n  color: #000000;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/default/tabs.css",
    "content": ".tabs-container {\n  overflow: hidden;\n}\n.tabs-header {\n  border-width: 1px;\n  border-style: solid;\n  border-bottom-width: 0;\n  position: relative;\n  padding: 0;\n  padding-top: 2px;\n  overflow: hidden;\n}\n.tabs-header-plain {\n  border: 0;\n  background: transparent;\n}\n.tabs-scroller-left,\n.tabs-scroller-right {\n  position: absolute;\n  top: auto;\n  bottom: 0;\n  width: 18px;\n  font-size: 1px;\n  display: none;\n  cursor: pointer;\n  border-width: 1px;\n  border-style: solid;\n}\n.tabs-scroller-left {\n  left: 0;\n}\n.tabs-scroller-right {\n  right: 0;\n}\n.tabs-tool {\n  position: absolute;\n  bottom: 0;\n  padding: 1px;\n  overflow: hidden;\n  border-width: 1px;\n  border-style: solid;\n}\n.tabs-header-plain .tabs-tool {\n  padding: 0 1px;\n}\n.tabs-wrap {\n  position: relative;\n  left: 0;\n  overflow: hidden;\n  width: 100%;\n  margin: 0;\n  padding: 0;\n}\n.tabs-scrolling {\n  margin-left: 18px;\n  margin-right: 18px;\n}\n.tabs-disabled {\n  opacity: 0.3;\n  filter: alpha(opacity=30);\n}\n.tabs {\n  list-style-type: none;\n  height: 26px;\n  margin: 0px;\n  padding: 0px;\n  padding-left: 4px;\n  width: 5000px;\n  border-style: solid;\n  border-width: 0 0 1px 0;\n}\n.tabs li {\n  float: left;\n  display: inline-block;\n  margin: 0 4px -1px 0;\n  padding: 0;\n  position: relative;\n  border: 0;\n}\n.tabs li a.tabs-inner {\n  display: inline-block;\n  text-decoration: none;\n  margin: 0;\n  padding: 0 10px;\n  height: 25px;\n  line-height: 25px;\n  text-align: center;\n  white-space: nowrap;\n  border-width: 1px;\n  border-style: solid;\n  -moz-border-radius: 5px 5px 0 0;\n  -webkit-border-radius: 5px 5px 0 0;\n  border-radius: 5px 5px 0 0;\n}\n.tabs li.tabs-selected a.tabs-inner {\n  font-weight: bold;\n  outline: none;\n}\n.tabs li.tabs-selected a:hover.tabs-inner {\n  cursor: default;\n  pointer: default;\n}\n.tabs li a.tabs-close,\n.tabs-p-tool {\n  position: absolute;\n  font-size: 1px;\n  display: block;\n  height: 12px;\n  padding: 0;\n  top: 50%;\n  margin-top: -6px;\n  overflow: hidden;\n}\n.tabs li a.tabs-close {\n  width: 12px;\n  right: 5px;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.tabs-p-tool {\n  right: 16px;\n}\n.tabs-p-tool a {\n  display: inline-block;\n  font-size: 1px;\n  width: 12px;\n  height: 12px;\n  margin: 0;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.tabs li a:hover.tabs-close,\n.tabs-p-tool a:hover {\n  opacity: 1;\n  filter: alpha(opacity=100);\n  cursor: hand;\n  cursor: pointer;\n}\n.tabs-with-icon {\n  padding-left: 18px;\n}\n.tabs-icon {\n  position: absolute;\n  width: 16px;\n  height: 16px;\n  left: 10px;\n  top: 50%;\n  margin-top: -8px;\n}\n.tabs-title {\n  font-size: 12px;\n}\n.tabs-closable {\n  padding-right: 8px;\n}\n.tabs-panels {\n  margin: 0px;\n  padding: 0px;\n  border-width: 1px;\n  border-style: solid;\n  border-top-width: 0;\n  overflow: hidden;\n}\n.tabs-header-bottom {\n  border-width: 0 1px 1px 1px;\n  padding: 0 0 2px 0;\n}\n.tabs-header-bottom .tabs {\n  border-width: 1px 0 0 0;\n}\n.tabs-header-bottom .tabs li {\n  margin: -1px 4px 0 0;\n}\n.tabs-header-bottom .tabs li a.tabs-inner {\n  -moz-border-radius: 0 0 5px 5px;\n  -webkit-border-radius: 0 0 5px 5px;\n  border-radius: 0 0 5px 5px;\n}\n.tabs-header-bottom .tabs-tool {\n  top: 0;\n}\n.tabs-header-bottom .tabs-scroller-left,\n.tabs-header-bottom .tabs-scroller-right {\n  top: 0;\n  bottom: auto;\n}\n.tabs-panels-top {\n  border-width: 1px 1px 0 1px;\n}\n.tabs-header-left {\n  float: left;\n  border-width: 1px 0 1px 1px;\n  padding: 0;\n}\n.tabs-header-right {\n  float: right;\n  border-width: 1px 1px 1px 0;\n  padding: 0;\n}\n.tabs-header-left .tabs-wrap,\n.tabs-header-right .tabs-wrap {\n  height: 100%;\n}\n.tabs-header-left .tabs {\n  height: 100%;\n  padding: 4px 0 0 4px;\n  border-width: 0 1px 0 0;\n}\n.tabs-header-right .tabs {\n  height: 100%;\n  padding: 4px 4px 0 0;\n  border-width: 0 0 0 1px;\n}\n.tabs-header-left .tabs li,\n.tabs-header-right .tabs li {\n  display: block;\n  width: 100%;\n  position: relative;\n}\n.tabs-header-left .tabs li {\n  left: auto;\n  right: 0;\n  margin: 0 -1px 4px 0;\n  float: right;\n}\n.tabs-header-right .tabs li {\n  left: 0;\n  right: auto;\n  margin: 0 0 4px -1px;\n  float: left;\n}\n.tabs-header-left .tabs li a.tabs-inner {\n  display: block;\n  text-align: left;\n  -moz-border-radius: 5px 0 0 5px;\n  -webkit-border-radius: 5px 0 0 5px;\n  border-radius: 5px 0 0 5px;\n}\n.tabs-header-right .tabs li a.tabs-inner {\n  display: block;\n  text-align: left;\n  -moz-border-radius: 0 5px 5px 0;\n  -webkit-border-radius: 0 5px 5px 0;\n  border-radius: 0 5px 5px 0;\n}\n.tabs-panels-right {\n  float: right;\n  border-width: 1px 1px 1px 0;\n}\n.tabs-panels-left {\n  float: left;\n  border-width: 1px 0 1px 1px;\n}\n.tabs-header-noborder,\n.tabs-panels-noborder {\n  border: 0px;\n}\n.tabs-header-plain {\n  border: 0px;\n  background: transparent;\n}\n.tabs-scroller-left {\n  background: #E0ECFF url('images/tabs_icons.png') no-repeat 1px center;\n}\n.tabs-scroller-right {\n  background: #E0ECFF url('images/tabs_icons.png') no-repeat -15px center;\n}\n.tabs li a.tabs-close {\n  background: url('images/tabs_icons.png') no-repeat -34px center;\n}\n.tabs li a.tabs-inner:hover {\n  background: #eaf2ff;\n  color: #000000;\n  filter: none;\n}\n.tabs li.tabs-selected a.tabs-inner {\n  background-color: #ffffff;\n  color: #0E2D5F;\n  background: -webkit-linear-gradient(top,#EFF5FF 0,#ffffff 100%);\n  background: -moz-linear-gradient(top,#EFF5FF 0,#ffffff 100%);\n  background: -o-linear-gradient(top,#EFF5FF 0,#ffffff 100%);\n  background: linear-gradient(to bottom,#EFF5FF 0,#ffffff 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#EFF5FF,endColorstr=#ffffff,GradientType=0);\n}\n.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner {\n  background: -webkit-linear-gradient(top,#ffffff 0,#EFF5FF 100%);\n  background: -moz-linear-gradient(top,#ffffff 0,#EFF5FF 100%);\n  background: -o-linear-gradient(top,#ffffff 0,#EFF5FF 100%);\n  background: linear-gradient(to bottom,#ffffff 0,#EFF5FF 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#EFF5FF,GradientType=0);\n}\n.tabs-header-left .tabs li.tabs-selected a.tabs-inner {\n  background: -webkit-linear-gradient(left,#EFF5FF 0,#ffffff 100%);\n  background: -moz-linear-gradient(left,#EFF5FF 0,#ffffff 100%);\n  background: -o-linear-gradient(left,#EFF5FF 0,#ffffff 100%);\n  background: linear-gradient(to right,#EFF5FF 0,#ffffff 100%);\n  background-repeat: repeat-y;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#EFF5FF,endColorstr=#ffffff,GradientType=1);\n}\n.tabs-header-right .tabs li.tabs-selected a.tabs-inner {\n  background: -webkit-linear-gradient(left,#ffffff 0,#EFF5FF 100%);\n  background: -moz-linear-gradient(left,#ffffff 0,#EFF5FF 100%);\n  background: -o-linear-gradient(left,#ffffff 0,#EFF5FF 100%);\n  background: linear-gradient(to right,#ffffff 0,#EFF5FF 100%);\n  background-repeat: repeat-y;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#EFF5FF,GradientType=1);\n}\n.tabs li a.tabs-inner {\n  color: #0E2D5F;\n  background-color: #E0ECFF;\n  background: -webkit-linear-gradient(top,#EFF5FF 0,#E0ECFF 100%);\n  background: -moz-linear-gradient(top,#EFF5FF 0,#E0ECFF 100%);\n  background: -o-linear-gradient(top,#EFF5FF 0,#E0ECFF 100%);\n  background: linear-gradient(to bottom,#EFF5FF 0,#E0ECFF 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#EFF5FF,endColorstr=#E0ECFF,GradientType=0);\n}\n.tabs-header,\n.tabs-tool {\n  background-color: #E0ECFF;\n}\n.tabs-header-plain {\n  background: transparent;\n}\n.tabs-header,\n.tabs-scroller-left,\n.tabs-scroller-right,\n.tabs-tool,\n.tabs,\n.tabs-panels,\n.tabs li a.tabs-inner,\n.tabs li.tabs-selected a.tabs-inner,\n.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner,\n.tabs-header-left .tabs li.tabs-selected a.tabs-inner,\n.tabs-header-right .tabs li.tabs-selected a.tabs-inner {\n  border-color: #95B8E7;\n}\n.tabs-p-tool a:hover,\n.tabs li a:hover.tabs-close,\n.tabs-scroller-over {\n  background-color: #eaf2ff;\n}\n.tabs li.tabs-selected a.tabs-inner {\n  border-bottom: 1px solid #ffffff;\n}\n.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner {\n  border-top: 1px solid #ffffff;\n}\n.tabs-header-left .tabs li.tabs-selected a.tabs-inner {\n  border-right: 1px solid #ffffff;\n}\n.tabs-header-right .tabs li.tabs-selected a.tabs-inner {\n  border-left: 1px solid #ffffff;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/default/tooltip.css",
    "content": ".tooltip {\n  position: absolute;\n  display: none;\n  z-index: 9900000;\n  outline: none;\n  opacity: 1;\n  filter: alpha(opacity=100);\n  padding: 5px;\n  border-width: 1px;\n  border-style: solid;\n  border-radius: 5px;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.tooltip-content {\n  font-size: 12px;\n}\n.tooltip-arrow-outer,\n.tooltip-arrow {\n  position: absolute;\n  width: 0;\n  height: 0;\n  line-height: 0;\n  font-size: 0;\n  border-style: solid;\n  border-width: 6px;\n  border-color: transparent;\n  _border-color: tomato;\n  _filter: chroma(color=tomato);\n}\n.tooltip-right .tooltip-arrow-outer {\n  left: 0;\n  top: 50%;\n  margin: -6px 0 0 -13px;\n}\n.tooltip-right .tooltip-arrow {\n  left: 0;\n  top: 50%;\n  margin: -6px 0 0 -12px;\n}\n.tooltip-left .tooltip-arrow-outer {\n  right: 0;\n  top: 50%;\n  margin: -6px -13px 0 0;\n}\n.tooltip-left .tooltip-arrow {\n  right: 0;\n  top: 50%;\n  margin: -6px -12px 0 0;\n}\n.tooltip-top .tooltip-arrow-outer {\n  bottom: 0;\n  left: 50%;\n  margin: 0 0 -13px -6px;\n}\n.tooltip-top .tooltip-arrow {\n  bottom: 0;\n  left: 50%;\n  margin: 0 0 -12px -6px;\n}\n.tooltip-bottom .tooltip-arrow-outer {\n  top: 0;\n  left: 50%;\n  margin: -13px 0 0 -6px;\n}\n.tooltip-bottom .tooltip-arrow {\n  top: 0;\n  left: 50%;\n  margin: -12px 0 0 -6px;\n}\n.tooltip {\n  background-color: #ffffff;\n  border-color: #95B8E7;\n  color: #000000;\n}\n.tooltip-right .tooltip-arrow-outer {\n  border-right-color: #95B8E7;\n}\n.tooltip-right .tooltip-arrow {\n  border-right-color: #ffffff;\n}\n.tooltip-left .tooltip-arrow-outer {\n  border-left-color: #95B8E7;\n}\n.tooltip-left .tooltip-arrow {\n  border-left-color: #ffffff;\n}\n.tooltip-top .tooltip-arrow-outer {\n  border-top-color: #95B8E7;\n}\n.tooltip-top .tooltip-arrow {\n  border-top-color: #ffffff;\n}\n.tooltip-bottom .tooltip-arrow-outer {\n  border-bottom-color: #95B8E7;\n}\n.tooltip-bottom .tooltip-arrow {\n  border-bottom-color: #ffffff;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/default/tree.css",
    "content": ".tree {\n  margin: 0;\n  padding: 0;\n  list-style-type: none;\n}\n.tree li {\n  white-space: nowrap;\n}\n.tree li ul {\n  list-style-type: none;\n  margin: 0;\n  padding: 0;\n}\n.tree-node {\n  height: 18px;\n  white-space: nowrap;\n  cursor: pointer;\n}\n.tree-hit {\n  cursor: pointer;\n}\n.tree-expanded,\n.tree-collapsed,\n.tree-folder,\n.tree-file,\n.tree-checkbox,\n.tree-indent {\n  display: inline-block;\n  width: 16px;\n  height: 18px;\n  vertical-align: top;\n  overflow: hidden;\n}\n.tree-expanded {\n  background: url('images/tree_icons.png') no-repeat -18px 0px;\n}\n.tree-expanded-hover {\n  background: url('images/tree_icons.png') no-repeat -50px 0px;\n}\n.tree-collapsed {\n  background: url('images/tree_icons.png') no-repeat 0px 0px;\n}\n.tree-collapsed-hover {\n  background: url('images/tree_icons.png') no-repeat -32px 0px;\n}\n.tree-lines .tree-expanded,\n.tree-lines .tree-root-first .tree-expanded {\n  background: url('images/tree_icons.png') no-repeat -144px 0;\n}\n.tree-lines .tree-collapsed,\n.tree-lines .tree-root-first .tree-collapsed {\n  background: url('images/tree_icons.png') no-repeat -128px 0;\n}\n.tree-lines .tree-node-last .tree-expanded,\n.tree-lines .tree-root-one .tree-expanded {\n  background: url('images/tree_icons.png') no-repeat -80px 0;\n}\n.tree-lines .tree-node-last .tree-collapsed,\n.tree-lines .tree-root-one .tree-collapsed {\n  background: url('images/tree_icons.png') no-repeat -64px 0;\n}\n.tree-line {\n  background: url('images/tree_icons.png') no-repeat -176px 0;\n}\n.tree-join {\n  background: url('images/tree_icons.png') no-repeat -192px 0;\n}\n.tree-joinbottom {\n  background: url('images/tree_icons.png') no-repeat -160px 0;\n}\n.tree-folder {\n  background: url('images/tree_icons.png') no-repeat -208px 0;\n}\n.tree-folder-open {\n  background: url('images/tree_icons.png') no-repeat -224px 0;\n}\n.tree-file {\n  background: url('images/tree_icons.png') no-repeat -240px 0;\n}\n.tree-loading {\n  background: url('images/loading.gif') no-repeat center center;\n}\n.tree-checkbox0 {\n  background: url('images/tree_icons.png') no-repeat -208px -18px;\n}\n.tree-checkbox1 {\n  background: url('images/tree_icons.png') no-repeat -224px -18px;\n}\n.tree-checkbox2 {\n  background: url('images/tree_icons.png') no-repeat -240px -18px;\n}\n.tree-title {\n  font-size: 12px;\n  display: inline-block;\n  text-decoration: none;\n  vertical-align: top;\n  white-space: nowrap;\n  padding: 0 2px;\n  height: 18px;\n  line-height: 18px;\n}\n.tree-node-proxy {\n  font-size: 12px;\n  line-height: 20px;\n  padding: 0 2px 0 20px;\n  border-width: 1px;\n  border-style: solid;\n  z-index: 9900000;\n}\n.tree-dnd-icon {\n  display: inline-block;\n  position: absolute;\n  width: 16px;\n  height: 18px;\n  left: 2px;\n  top: 50%;\n  margin-top: -9px;\n}\n.tree-dnd-yes {\n  background: url('images/tree_icons.png') no-repeat -256px 0;\n}\n.tree-dnd-no {\n  background: url('images/tree_icons.png') no-repeat -256px -18px;\n}\n.tree-node-top {\n  border-top: 1px dotted red;\n}\n.tree-node-bottom {\n  border-bottom: 1px dotted red;\n}\n.tree-node-append .tree-title {\n  border: 1px dotted red;\n}\n.tree-editor {\n  border: 1px solid #ccc;\n  font-size: 12px;\n  height: 14px !important;\n  height: 18px;\n  line-height: 14px;\n  padding: 1px 2px;\n  width: 80px;\n  position: absolute;\n  top: 0;\n}\n.tree-node-proxy {\n  background-color: #ffffff;\n  color: #000000;\n  border-color: #95B8E7;\n}\n.tree-node-hover {\n  background: #eaf2ff;\n  color: #000000;\n}\n.tree-node-selected {\n  background: #FBEC88;\n  color: #000000;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/default/validatebox.css",
    "content": ".validatebox-invalid {\n  background-image: url('images/validatebox_warning.png');\n  background-repeat: no-repeat;\n  background-position: right center;\n  border-color: #ffa8a8;\n  background-color: #fff3f3;\n  color: #000;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/default/window.css",
    "content": ".window {\n  overflow: hidden;\n  padding: 5px;\n  border-width: 1px;\n  border-style: solid;\n}\n.window .window-header {\n  background: transparent;\n  padding: 0px 0px 6px 0px;\n}\n.window .window-body {\n  border-width: 1px;\n  border-style: solid;\n  border-top-width: 0px;\n}\n.window .window-body-noheader {\n  border-top-width: 1px;\n}\n.window .window-header .panel-icon,\n.window .window-header .panel-tool {\n  top: 50%;\n  margin-top: -11px;\n}\n.window .window-header .panel-icon {\n  left: 1px;\n}\n.window .window-header .panel-tool {\n  right: 1px;\n}\n.window .window-header .panel-with-icon {\n  padding-left: 18px;\n}\n.window-proxy {\n  position: absolute;\n  overflow: hidden;\n}\n.window-proxy-mask {\n  position: absolute;\n  filter: alpha(opacity=5);\n  opacity: 0.05;\n}\n.window-mask {\n  position: absolute;\n  left: 0;\n  top: 0;\n  width: 100%;\n  height: 100%;\n  filter: alpha(opacity=40);\n  opacity: 0.40;\n  font-size: 1px;\n  *zoom: 1;\n  overflow: hidden;\n}\n.window,\n.window-shadow {\n  position: absolute;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.window-shadow {\n  background: #ccc;\n  -moz-box-shadow: 2px 2px 3px #cccccc;\n  -webkit-box-shadow: 2px 2px 3px #cccccc;\n  box-shadow: 2px 2px 3px #cccccc;\n  filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2);\n}\n.window,\n.window .window-body {\n  border-color: #95B8E7;\n}\n.window {\n  background-color: #E0ECFF;\n  background: -webkit-linear-gradient(top,#EFF5FF 0,#E0ECFF 20%);\n  background: -moz-linear-gradient(top,#EFF5FF 0,#E0ECFF 20%);\n  background: -o-linear-gradient(top,#EFF5FF 0,#E0ECFF 20%);\n  background: linear-gradient(to bottom,#EFF5FF 0,#E0ECFF 20%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#EFF5FF,endColorstr=#E0ECFF,GradientType=0);\n}\n.window-proxy {\n  border: 1px dashed #95B8E7;\n}\n.window-proxy-mask,\n.window-mask {\n  background: #ccc;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/gray/accordion.css",
    "content": ".accordion {\n  overflow: hidden;\n  border-width: 1px;\n  border-style: solid;\n}\n.accordion .accordion-header {\n  border-width: 0 0 1px;\n  cursor: pointer;\n}\n.accordion .accordion-body {\n  border-width: 0 0 1px;\n}\n.accordion-noborder {\n  border-width: 0;\n}\n.accordion-noborder .accordion-header {\n  border-width: 0 0 1px;\n}\n.accordion-noborder .accordion-body {\n  border-width: 0 0 1px;\n}\n.accordion-collapse {\n  background: url('images/accordion_arrows.png') no-repeat 0 0;\n}\n.accordion-expand {\n  background: url('images/accordion_arrows.png') no-repeat -16px 0;\n}\n.accordion {\n  background: #ffffff;\n  border-color: #D3D3D3;\n}\n.accordion .accordion-header {\n  background: #f3f3f3;\n  filter: none;\n}\n.accordion .accordion-header-selected {\n  background: #0092DC;\n}\n.accordion .accordion-header-selected .panel-title {\n  color: #fff;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/gray/calendar.css",
    "content": ".calendar {\n  border-width: 1px;\n  border-style: solid;\n  padding: 1px;\n  overflow: hidden;\n}\n.calendar table {\n  border-collapse: separate;\n  font-size: 12px;\n  width: 100%;\n  height: 100%;\n}\n.calendar table td,\n.calendar table th {\n  font-size: 12px;\n}\n.calendar-noborder {\n  border: 0;\n}\n.calendar-header {\n  position: relative;\n  height: 22px;\n}\n.calendar-title {\n  text-align: center;\n  height: 22px;\n}\n.calendar-title span {\n  position: relative;\n  display: inline-block;\n  top: 2px;\n  padding: 0 3px;\n  height: 18px;\n  line-height: 18px;\n  font-size: 12px;\n  cursor: pointer;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.calendar-prevmonth,\n.calendar-nextmonth,\n.calendar-prevyear,\n.calendar-nextyear {\n  position: absolute;\n  top: 50%;\n  margin-top: -7px;\n  width: 14px;\n  height: 14px;\n  cursor: pointer;\n  font-size: 1px;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.calendar-prevmonth {\n  left: 20px;\n  background: url('images/calendar_arrows.png') no-repeat -18px -2px;\n}\n.calendar-nextmonth {\n  right: 20px;\n  background: url('images/calendar_arrows.png') no-repeat -34px -2px;\n}\n.calendar-prevyear {\n  left: 3px;\n  background: url('images/calendar_arrows.png') no-repeat -1px -2px;\n}\n.calendar-nextyear {\n  right: 3px;\n  background: url('images/calendar_arrows.png') no-repeat -49px -2px;\n}\n.calendar-body {\n  position: relative;\n}\n.calendar-body th,\n.calendar-body td {\n  text-align: center;\n}\n.calendar-day {\n  border: 0;\n  padding: 1px;\n  cursor: pointer;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.calendar-other-month {\n  opacity: 0.3;\n  filter: alpha(opacity=30);\n}\n.calendar-menu {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 180px;\n  height: 150px;\n  padding: 5px;\n  font-size: 12px;\n  display: none;\n  overflow: hidden;\n}\n.calendar-menu-year-inner {\n  text-align: center;\n  padding-bottom: 5px;\n}\n.calendar-menu-year {\n  width: 40px;\n  text-align: center;\n  border-width: 1px;\n  border-style: solid;\n  margin: 0;\n  padding: 2px;\n  font-weight: bold;\n  font-size: 12px;\n}\n.calendar-menu-prev,\n.calendar-menu-next {\n  display: inline-block;\n  width: 21px;\n  height: 21px;\n  vertical-align: top;\n  cursor: pointer;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.calendar-menu-prev {\n  margin-right: 10px;\n  background: url('images/calendar_arrows.png') no-repeat 2px 2px;\n}\n.calendar-menu-next {\n  margin-left: 10px;\n  background: url('images/calendar_arrows.png') no-repeat -45px 2px;\n}\n.calendar-menu-month {\n  text-align: center;\n  cursor: pointer;\n  font-weight: bold;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.calendar-body th,\n.calendar-menu-month {\n  color: #4d4d4d;\n}\n.calendar-day {\n  color: #000000;\n}\n.calendar-sunday {\n  color: #CC2222;\n}\n.calendar-saturday {\n  color: #00ee00;\n}\n.calendar-today {\n  color: #0000ff;\n}\n.calendar-menu-year {\n  border-color: #D3D3D3;\n}\n.calendar {\n  border-color: #D3D3D3;\n}\n.calendar-header {\n  background: #f3f3f3;\n}\n.calendar-body,\n.calendar-menu {\n  background: #ffffff;\n}\n.calendar-body th {\n  background: #fafafa;\n}\n.calendar-hover,\n.calendar-nav-hover,\n.calendar-menu-hover {\n  background-color: #e2e2e2;\n  color: #000000;\n}\n.calendar-hover {\n  border: 1px solid #ccc;\n  padding: 0;\n}\n.calendar-selected {\n  background-color: #0092DC;\n  color: #fff;\n  border: 1px solid #0070a9;\n  padding: 0;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/gray/combo.css",
    "content": ".combo {\n  display: inline-block;\n  white-space: nowrap;\n  margin: 0;\n  padding: 0;\n  border-width: 1px;\n  border-style: solid;\n  overflow: hidden;\n  vertical-align: middle;\n}\n.combo .combo-text {\n  font-size: 12px;\n  border: 0px;\n  line-height: 20px;\n  height: 20px;\n  margin: 0;\n  padding: 0px 2px;\n  *margin-top: -1px;\n  *height: 18px;\n  *line-height: 18px;\n  _height: 18px;\n  _line-height: 18px;\n  vertical-align: baseline;\n}\n.combo-arrow {\n  width: 18px;\n  height: 20px;\n  overflow: hidden;\n  display: inline-block;\n  vertical-align: top;\n  cursor: pointer;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.combo-arrow-hover {\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n}\n.combo-panel {\n  overflow: auto;\n}\n.combo-arrow {\n  background: url('images/combo_arrow.png') no-repeat center center;\n}\n.combo,\n.combo-panel {\n  background-color: #ffffff;\n}\n.combo {\n  border-color: #D3D3D3;\n  background-color: #ffffff;\n}\n.combo-arrow {\n  background-color: #f3f3f3;\n}\n.combo-arrow-hover {\n  background-color: #e2e2e2;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/gray/combobox.css",
    "content": ".combobox-item,\n.combobox-group {\n  font-size: 12px;\n  padding: 3px;\n  padding-right: 0px;\n}\n.combobox-item-disabled {\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n}\n.combobox-gitem {\n  padding-left: 10px;\n}\n.combobox-group {\n  font-weight: bold;\n}\n.combobox-item-hover {\n  background-color: #e2e2e2;\n  color: #000000;\n}\n.combobox-item-selected {\n  background-color: #0092DC;\n  color: #fff;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/gray/datagrid.css",
    "content": ".datagrid .panel-body {\n  overflow: hidden;\n  position: relative;\n}\n.datagrid-view {\n  position: relative;\n  overflow: hidden;\n}\n.datagrid-view1,\n.datagrid-view2 {\n  position: absolute;\n  overflow: hidden;\n  top: 0;\n}\n.datagrid-view1 {\n  left: 0;\n}\n.datagrid-view2 {\n  right: 0;\n}\n.datagrid-mask {\n  position: absolute;\n  left: 0;\n  top: 0;\n  width: 100%;\n  height: 100%;\n  opacity: 0.3;\n  filter: alpha(opacity=30);\n  display: none;\n}\n.datagrid-mask-msg {\n  position: absolute;\n  top: 50%;\n  margin-top: -20px;\n  padding: 12px 5px 10px 30px;\n  width: auto;\n  height: 16px;\n  border-width: 2px;\n  border-style: solid;\n  display: none;\n}\n.datagrid-sort-icon {\n  padding: 0;\n}\n.datagrid-toolbar {\n  height: auto;\n  padding: 1px 2px;\n  border-width: 0 0 1px 0;\n  border-style: solid;\n}\n.datagrid-btn-separator {\n  float: left;\n  height: 24px;\n  border-left: 1px solid #ccc;\n  border-right: 1px solid #fff;\n  margin: 2px 1px;\n}\n.datagrid .datagrid-pager {\n  display: block;\n  margin: 0;\n  border-width: 1px 0 0 0;\n  border-style: solid;\n}\n.datagrid .datagrid-pager-top {\n  border-width: 0 0 1px 0;\n}\n.datagrid-header {\n  overflow: hidden;\n  cursor: default;\n  border-width: 0 0 1px 0;\n  border-style: solid;\n}\n.datagrid-header-inner {\n  float: left;\n  width: 10000px;\n}\n.datagrid-header-row,\n.datagrid-row {\n  height: 25px;\n}\n.datagrid-header td,\n.datagrid-body td,\n.datagrid-footer td {\n  border-width: 0 1px 1px 0;\n  border-style: dotted;\n  margin: 0;\n  padding: 0;\n}\n.datagrid-cell,\n.datagrid-cell-group,\n.datagrid-header-rownumber,\n.datagrid-cell-rownumber {\n  margin: 0;\n  padding: 0 4px;\n  white-space: nowrap;\n  word-wrap: normal;\n  overflow: hidden;\n  height: 18px;\n  line-height: 18px;\n  font-size: 12px;\n}\n.datagrid-header .datagrid-cell {\n  height: auto;\n}\n.datagrid-header .datagrid-cell span {\n  font-size: 12px;\n}\n.datagrid-cell-group {\n  text-align: center;\n}\n.datagrid-header-rownumber,\n.datagrid-cell-rownumber {\n  width: 25px;\n  text-align: center;\n  margin: 0;\n  padding: 0;\n}\n.datagrid-body {\n  margin: 0;\n  padding: 0;\n  overflow: auto;\n  zoom: 1;\n}\n.datagrid-view1 .datagrid-body-inner {\n  padding-bottom: 20px;\n}\n.datagrid-view1 .datagrid-body {\n  overflow: hidden;\n}\n.datagrid-footer {\n  overflow: hidden;\n}\n.datagrid-footer-inner {\n  border-width: 1px 0 0 0;\n  border-style: solid;\n  width: 10000px;\n  float: left;\n}\n.datagrid-row-editing .datagrid-cell {\n  height: auto;\n}\n.datagrid-header-check,\n.datagrid-cell-check {\n  padding: 0;\n  width: 27px;\n  height: 18px;\n  font-size: 1px;\n  text-align: center;\n  overflow: hidden;\n}\n.datagrid-header-check input,\n.datagrid-cell-check input {\n  margin: 0;\n  padding: 0;\n  width: 15px;\n  height: 18px;\n}\n.datagrid-resize-proxy {\n  position: absolute;\n  width: 1px;\n  height: 10000px;\n  top: 0;\n  cursor: e-resize;\n  display: none;\n}\n.datagrid-body .datagrid-editable {\n  margin: 0;\n  padding: 0;\n}\n.datagrid-body .datagrid-editable table {\n  width: 100%;\n  height: 100%;\n}\n.datagrid-body .datagrid-editable td {\n  border: 0;\n  margin: 0;\n  padding: 0;\n}\n.datagrid-body .datagrid-editable .datagrid-editable-input {\n  margin: 0;\n  padding: 2px;\n  border-width: 1px;\n  border-style: solid;\n}\n.datagrid-sort-desc .datagrid-sort-icon {\n  padding: 0 13px 0 0;\n  background: url('images/datagrid_icons.png') no-repeat -16px center;\n}\n.datagrid-sort-asc .datagrid-sort-icon {\n  padding: 0 13px 0 0;\n  background: url('images/datagrid_icons.png') no-repeat 0px center;\n}\n.datagrid-row-collapse {\n  background: url('images/datagrid_icons.png') no-repeat -48px center;\n}\n.datagrid-row-expand {\n  background: url('images/datagrid_icons.png') no-repeat -32px center;\n}\n.datagrid-mask-msg {\n  background: #ffffff url('images/loading.gif') no-repeat scroll 5px center;\n}\n.datagrid-header,\n.datagrid-td-rownumber {\n  background-color: #fafafa;\n  background: -webkit-linear-gradient(top,#fdfdfd 0,#f5f5f5 100%);\n  background: -moz-linear-gradient(top,#fdfdfd 0,#f5f5f5 100%);\n  background: -o-linear-gradient(top,#fdfdfd 0,#f5f5f5 100%);\n  background: linear-gradient(to bottom,#fdfdfd 0,#f5f5f5 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#fdfdfd,endColorstr=#f5f5f5,GradientType=0);\n}\n.datagrid-cell-rownumber {\n  color: #000000;\n}\n.datagrid-resize-proxy {\n  background: #bfbfbf;\n}\n.datagrid-mask {\n  background: #ccc;\n}\n.datagrid-mask-msg {\n  border-color: #D3D3D3;\n}\n.datagrid-toolbar,\n.datagrid-pager {\n  background: #fafafa;\n}\n.datagrid-header,\n.datagrid-toolbar,\n.datagrid-pager,\n.datagrid-footer-inner {\n  border-color: #ddd;\n}\n.datagrid-header td,\n.datagrid-body td,\n.datagrid-footer td {\n  border-color: #ccc;\n}\n.datagrid-htable,\n.datagrid-btable,\n.datagrid-ftable {\n  color: #000000;\n  border-collapse: separate;\n}\n.datagrid-row-alt {\n  background: #fafafa;\n}\n.datagrid-row-over,\n.datagrid-header td.datagrid-header-over {\n  background: #e2e2e2;\n  color: #000000;\n  cursor: default;\n}\n.datagrid-row-selected {\n  background: #0092DC;\n  color: #fff;\n}\n.datagrid-body .datagrid-editable .datagrid-editable-input {\n  border-color: #D3D3D3;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/gray/datebox.css",
    "content": ".datebox-calendar-inner {\n  height: 180px;\n}\n.datebox-button {\n  height: 18px;\n  padding: 2px 5px;\n  text-align: center;\n}\n.datebox-button a {\n  font-size: 12px;\n  font-weight: bold;\n  text-decoration: none;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.datebox-button a:hover {\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n}\n.datebox-current,\n.datebox-close {\n  float: left;\n}\n.datebox-close {\n  float: right;\n}\n.datebox .combo-arrow {\n  background-image: url('images/datebox_arrow.png');\n  background-position: center center;\n}\n.datebox-button {\n  background-color: #fafafa;\n}\n.datebox-button a {\n  color: #444;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/gray/dialog.css",
    "content": ".dialog-content {\n  overflow: auto;\n}\n.dialog-toolbar {\n  padding: 2px 5px;\n}\n.dialog-tool-separator {\n  float: left;\n  height: 24px;\n  border-left: 1px solid #ccc;\n  border-right: 1px solid #fff;\n  margin: 2px 1px;\n}\n.dialog-button {\n  padding: 5px;\n  text-align: right;\n}\n.dialog-button .l-btn {\n  margin-left: 5px;\n}\n.dialog-toolbar,\n.dialog-button {\n  background: #fafafa;\n}\n.dialog-toolbar {\n  border-bottom: 1px solid #ddd;\n}\n.dialog-button {\n  border-top: 1px solid #ddd;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/gray/easyui.css",
    "content": ".panel {\n  overflow: hidden;\n  text-align: left;\n  margin: 0;\n  border: 0;\n  -moz-border-radius: 0 0 0 0;\n  -webkit-border-radius: 0 0 0 0;\n  border-radius: 0 0 0 0;\n}\n.panel-header,\n.panel-body {\n  border-width: 1px;\n  border-style: solid;\n}\n.panel-header {\n  padding: 5px;\n  position: relative;\n}\n.panel-title {\n  background: url('images/blank.gif') no-repeat;\n}\n.panel-header-noborder {\n  border-width: 0 0 1px 0;\n}\n.panel-body {\n  overflow: auto;\n  border-top-width: 0;\n  padding: 0;\n}\n.panel-body-noheader {\n  border-top-width: 1px;\n}\n.panel-body-noborder {\n  border-width: 0px;\n}\n.panel-with-icon {\n  padding-left: 18px;\n}\n.panel-icon,\n.panel-tool {\n  position: absolute;\n  top: 50%;\n  margin-top: -8px;\n  height: 16px;\n  overflow: hidden;\n}\n.panel-icon {\n  left: 5px;\n  width: 16px;\n}\n.panel-tool {\n  right: 5px;\n  width: auto;\n}\n.panel-tool a {\n  display: inline-block;\n  width: 16px;\n  height: 16px;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n  margin: 0 0 0 2px;\n  vertical-align: top;\n}\n.panel-tool a:hover {\n  opacity: 1;\n  filter: alpha(opacity=100);\n  background-color: #e2e2e2;\n  -moz-border-radius: 3px 3px 3px 3px;\n  -webkit-border-radius: 3px 3px 3px 3px;\n  border-radius: 3px 3px 3px 3px;\n}\n.panel-loading {\n  padding: 11px 0px 10px 30px;\n}\n.panel-noscroll {\n  overflow: hidden;\n}\n.panel-fit,\n.panel-fit body {\n  height: 100%;\n  margin: 0;\n  padding: 0;\n  border: 0;\n  overflow: hidden;\n}\n.panel-loading {\n  background: url('images/loading.gif') no-repeat 10px 10px;\n}\n.panel-tool-close {\n  background: url('images/panel_tools.png') no-repeat -16px 0px;\n}\n.panel-tool-min {\n  background: url('images/panel_tools.png') no-repeat 0px 0px;\n}\n.panel-tool-max {\n  background: url('images/panel_tools.png') no-repeat 0px -16px;\n}\n.panel-tool-restore {\n  background: url('images/panel_tools.png') no-repeat -16px -16px;\n}\n.panel-tool-collapse {\n  background: url('images/panel_tools.png') no-repeat -32px 0;\n}\n.panel-tool-expand {\n  background: url('images/panel_tools.png') no-repeat -32px -16px;\n}\n.panel-header,\n.panel-body {\n  border-color: #D3D3D3;\n}\n.panel-header {\n  background-color: #f3f3f3;\n  background: -webkit-linear-gradient(top,#F8F8F8 0,#eeeeee 100%);\n  background: -moz-linear-gradient(top,#F8F8F8 0,#eeeeee 100%);\n  background: -o-linear-gradient(top,#F8F8F8 0,#eeeeee 100%);\n  background: linear-gradient(to bottom,#F8F8F8 0,#eeeeee 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#F8F8F8,endColorstr=#eeeeee,GradientType=0);\n}\n.panel-body {\n  background-color: #ffffff;\n  color: #000000;\n  font-size: 12px;\n}\n.panel-title {\n  font-size: 12px;\n  font-weight: bold;\n  color: #575765;\n  height: 16px;\n  line-height: 16px;\n}\n.accordion {\n  overflow: hidden;\n  border-width: 1px;\n  border-style: solid;\n}\n.accordion .accordion-header {\n  border-width: 0 0 1px;\n  cursor: pointer;\n}\n.accordion .accordion-body {\n  border-width: 0 0 1px;\n}\n.accordion-noborder {\n  border-width: 0;\n}\n.accordion-noborder .accordion-header {\n  border-width: 0 0 1px;\n}\n.accordion-noborder .accordion-body {\n  border-width: 0 0 1px;\n}\n.accordion-collapse {\n  background: url('images/accordion_arrows.png') no-repeat 0 0;\n}\n.accordion-expand {\n  background: url('images/accordion_arrows.png') no-repeat -16px 0;\n}\n.accordion {\n  background: #ffffff;\n  border-color: #D3D3D3;\n}\n.accordion .accordion-header {\n  background: #f3f3f3;\n  filter: none;\n}\n.accordion .accordion-header-selected {\n  background: #0092DC;\n}\n.accordion .accordion-header-selected .panel-title {\n  color: #fff;\n}\n.window {\n  overflow: hidden;\n  padding: 5px;\n  border-width: 1px;\n  border-style: solid;\n}\n.window .window-header {\n  background: transparent;\n  padding: 0px 0px 6px 0px;\n}\n.window .window-body {\n  border-width: 1px;\n  border-style: solid;\n  border-top-width: 0px;\n}\n.window .window-body-noheader {\n  border-top-width: 1px;\n}\n.window .window-header .panel-icon,\n.window .window-header .panel-tool {\n  top: 50%;\n  margin-top: -11px;\n}\n.window .window-header .panel-icon {\n  left: 1px;\n}\n.window .window-header .panel-tool {\n  right: 1px;\n}\n.window .window-header .panel-with-icon {\n  padding-left: 18px;\n}\n.window-proxy {\n  position: absolute;\n  overflow: hidden;\n}\n.window-proxy-mask {\n  position: absolute;\n  filter: alpha(opacity=5);\n  opacity: 0.05;\n}\n.window-mask {\n  position: absolute;\n  left: 0;\n  top: 0;\n  width: 100%;\n  height: 100%;\n  filter: alpha(opacity=40);\n  opacity: 0.40;\n  font-size: 1px;\n  *zoom: 1;\n  overflow: hidden;\n}\n.window,\n.window-shadow {\n  position: absolute;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.window-shadow {\n  background: #ccc;\n  -moz-box-shadow: 2px 2px 3px #cccccc;\n  -webkit-box-shadow: 2px 2px 3px #cccccc;\n  box-shadow: 2px 2px 3px #cccccc;\n  filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2);\n}\n.window,\n.window .window-body {\n  border-color: #D3D3D3;\n}\n.window {\n  background-color: #f3f3f3;\n  background: -webkit-linear-gradient(top,#F8F8F8 0,#eeeeee 20%);\n  background: -moz-linear-gradient(top,#F8F8F8 0,#eeeeee 20%);\n  background: -o-linear-gradient(top,#F8F8F8 0,#eeeeee 20%);\n  background: linear-gradient(to bottom,#F8F8F8 0,#eeeeee 20%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#F8F8F8,endColorstr=#eeeeee,GradientType=0);\n}\n.window-proxy {\n  border: 1px dashed #D3D3D3;\n}\n.window-proxy-mask,\n.window-mask {\n  background: #ccc;\n}\n.dialog-content {\n  overflow: auto;\n}\n.dialog-toolbar {\n  padding: 2px 5px;\n}\n.dialog-tool-separator {\n  float: left;\n  height: 24px;\n  border-left: 1px solid #ccc;\n  border-right: 1px solid #fff;\n  margin: 2px 1px;\n}\n.dialog-button {\n  padding: 5px;\n  text-align: right;\n}\n.dialog-button .l-btn {\n  margin-left: 5px;\n}\n.dialog-toolbar,\n.dialog-button {\n  background: #fafafa;\n}\n.dialog-toolbar {\n  border-bottom: 1px solid #ddd;\n}\n.dialog-button {\n  border-top: 1px solid #ddd;\n}\n.combo {\n  display: inline-block;\n  white-space: nowrap;\n  margin: 0;\n  padding: 0;\n  border-width: 1px;\n  border-style: solid;\n  overflow: hidden;\n  vertical-align: middle;\n}\n.combo .combo-text {\n  font-size: 12px;\n  border: 0px;\n  line-height: 20px;\n  height: 20px;\n  margin: 0;\n  padding: 0px 2px;\n  *margin-top: -1px;\n  *height: 18px;\n  *line-height: 18px;\n  _height: 18px;\n  _line-height: 18px;\n  vertical-align: baseline;\n}\n.combo-arrow {\n  width: 18px;\n  height: 20px;\n  overflow: hidden;\n  display: inline-block;\n  vertical-align: top;\n  cursor: pointer;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.combo-arrow-hover {\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n}\n.combo-panel {\n  overflow: auto;\n}\n.combo-arrow {\n  background: url('images/combo_arrow.png') no-repeat center center;\n}\n.combo,\n.combo-panel {\n  background-color: #ffffff;\n}\n.combo {\n  border-color: #D3D3D3;\n  background-color: #ffffff;\n}\n.combo-arrow {\n  background-color: #f3f3f3;\n}\n.combo-arrow-hover {\n  background-color: #e2e2e2;\n}\n.combobox-item,\n.combobox-group {\n  font-size: 12px;\n  padding: 3px;\n  padding-right: 0px;\n}\n.combobox-item-disabled {\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n}\n.combobox-gitem {\n  padding-left: 10px;\n}\n.combobox-group {\n  font-weight: bold;\n}\n.combobox-item-hover {\n  background-color: #e2e2e2;\n  color: #000000;\n}\n.combobox-item-selected {\n  background-color: #0092DC;\n  color: #fff;\n}\n.layout {\n  position: relative;\n  overflow: hidden;\n  margin: 0;\n  padding: 0;\n  z-index: 0;\n}\n.layout-panel {\n  position: absolute;\n  overflow: hidden;\n}\n.layout-panel-east,\n.layout-panel-west {\n  z-index: 2;\n}\n.layout-panel-north,\n.layout-panel-south {\n  z-index: 3;\n}\n.layout-expand {\n  position: absolute;\n  padding: 0px;\n  font-size: 1px;\n  cursor: pointer;\n  z-index: 1;\n}\n.layout-expand .panel-header,\n.layout-expand .panel-body {\n  background: transparent;\n  filter: none;\n  overflow: hidden;\n}\n.layout-expand .panel-header {\n  border-bottom-width: 0px;\n}\n.layout-split-proxy-h,\n.layout-split-proxy-v {\n  position: absolute;\n  font-size: 1px;\n  display: none;\n  z-index: 5;\n}\n.layout-split-proxy-h {\n  width: 5px;\n  cursor: e-resize;\n}\n.layout-split-proxy-v {\n  height: 5px;\n  cursor: n-resize;\n}\n.layout-mask {\n  position: absolute;\n  background: #fafafa;\n  filter: alpha(opacity=10);\n  opacity: 0.10;\n  z-index: 4;\n}\n.layout-button-up {\n  background: url('images/layout_arrows.png') no-repeat -16px -16px;\n}\n.layout-button-down {\n  background: url('images/layout_arrows.png') no-repeat -16px 0;\n}\n.layout-button-left {\n  background: url('images/layout_arrows.png') no-repeat 0 0;\n}\n.layout-button-right {\n  background: url('images/layout_arrows.png') no-repeat 0 -16px;\n}\n.layout-split-proxy-h,\n.layout-split-proxy-v {\n  background-color: #bfbfbf;\n}\n.layout-split-north {\n  border-bottom: 5px solid #efefef;\n}\n.layout-split-south {\n  border-top: 5px solid #efefef;\n}\n.layout-split-east {\n  border-left: 5px solid #efefef;\n}\n.layout-split-west {\n  border-right: 5px solid #efefef;\n}\n.layout-expand {\n  background-color: #f3f3f3;\n}\n.layout-expand-over {\n  background-color: #f3f3f3;\n}\n.tabs-container {\n  overflow: hidden;\n}\n.tabs-header {\n  border-width: 1px;\n  border-style: solid;\n  border-bottom-width: 0;\n  position: relative;\n  padding: 0;\n  padding-top: 2px;\n  overflow: hidden;\n}\n.tabs-header-plain {\n  border: 0;\n  background: transparent;\n}\n.tabs-scroller-left,\n.tabs-scroller-right {\n  position: absolute;\n  top: auto;\n  bottom: 0;\n  width: 18px;\n  font-size: 1px;\n  display: none;\n  cursor: pointer;\n  border-width: 1px;\n  border-style: solid;\n}\n.tabs-scroller-left {\n  left: 0;\n}\n.tabs-scroller-right {\n  right: 0;\n}\n.tabs-tool {\n  position: absolute;\n  bottom: 0;\n  padding: 1px;\n  overflow: hidden;\n  border-width: 1px;\n  border-style: solid;\n}\n.tabs-header-plain .tabs-tool {\n  padding: 0 1px;\n}\n.tabs-wrap {\n  position: relative;\n  left: 0;\n  overflow: hidden;\n  width: 100%;\n  margin: 0;\n  padding: 0;\n}\n.tabs-scrolling {\n  margin-left: 18px;\n  margin-right: 18px;\n}\n.tabs-disabled {\n  opacity: 0.3;\n  filter: alpha(opacity=30);\n}\n.tabs {\n  list-style-type: none;\n  height: 26px;\n  margin: 0px;\n  padding: 0px;\n  padding-left: 4px;\n  width: 5000px;\n  border-style: solid;\n  border-width: 0 0 1px 0;\n}\n.tabs li {\n  float: left;\n  display: inline-block;\n  margin: 0 4px -1px 0;\n  padding: 0;\n  position: relative;\n  border: 0;\n}\n.tabs li a.tabs-inner {\n  display: inline-block;\n  text-decoration: none;\n  margin: 0;\n  padding: 0 10px;\n  height: 25px;\n  line-height: 25px;\n  text-align: center;\n  white-space: nowrap;\n  border-width: 1px;\n  border-style: solid;\n  -moz-border-radius: 5px 5px 0 0;\n  -webkit-border-radius: 5px 5px 0 0;\n  border-radius: 5px 5px 0 0;\n}\n.tabs li.tabs-selected a.tabs-inner {\n  font-weight: bold;\n  outline: none;\n}\n.tabs li.tabs-selected a:hover.tabs-inner {\n  cursor: default;\n  pointer: default;\n}\n.tabs li a.tabs-close,\n.tabs-p-tool {\n  position: absolute;\n  font-size: 1px;\n  display: block;\n  height: 12px;\n  padding: 0;\n  top: 50%;\n  margin-top: -6px;\n  overflow: hidden;\n}\n.tabs li a.tabs-close {\n  width: 12px;\n  right: 5px;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.tabs-p-tool {\n  right: 16px;\n}\n.tabs-p-tool a {\n  display: inline-block;\n  font-size: 1px;\n  width: 12px;\n  height: 12px;\n  margin: 0;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.tabs li a:hover.tabs-close,\n.tabs-p-tool a:hover {\n  opacity: 1;\n  filter: alpha(opacity=100);\n  cursor: hand;\n  cursor: pointer;\n}\n.tabs-with-icon {\n  padding-left: 18px;\n}\n.tabs-icon {\n  position: absolute;\n  width: 16px;\n  height: 16px;\n  left: 10px;\n  top: 50%;\n  margin-top: -8px;\n}\n.tabs-title {\n  font-size: 12px;\n}\n.tabs-closable {\n  padding-right: 8px;\n}\n.tabs-panels {\n  margin: 0px;\n  padding: 0px;\n  border-width: 1px;\n  border-style: solid;\n  border-top-width: 0;\n  overflow: hidden;\n}\n.tabs-header-bottom {\n  border-width: 0 1px 1px 1px;\n  padding: 0 0 2px 0;\n}\n.tabs-header-bottom .tabs {\n  border-width: 1px 0 0 0;\n}\n.tabs-header-bottom .tabs li {\n  margin: -1px 4px 0 0;\n}\n.tabs-header-bottom .tabs li a.tabs-inner {\n  -moz-border-radius: 0 0 5px 5px;\n  -webkit-border-radius: 0 0 5px 5px;\n  border-radius: 0 0 5px 5px;\n}\n.tabs-header-bottom .tabs-tool {\n  top: 0;\n}\n.tabs-header-bottom .tabs-scroller-left,\n.tabs-header-bottom .tabs-scroller-right {\n  top: 0;\n  bottom: auto;\n}\n.tabs-panels-top {\n  border-width: 1px 1px 0 1px;\n}\n.tabs-header-left {\n  float: left;\n  border-width: 1px 0 1px 1px;\n  padding: 0;\n}\n.tabs-header-right {\n  float: right;\n  border-width: 1px 1px 1px 0;\n  padding: 0;\n}\n.tabs-header-left .tabs-wrap,\n.tabs-header-right .tabs-wrap {\n  height: 100%;\n}\n.tabs-header-left .tabs {\n  height: 100%;\n  padding: 4px 0 0 4px;\n  border-width: 0 1px 0 0;\n}\n.tabs-header-right .tabs {\n  height: 100%;\n  padding: 4px 4px 0 0;\n  border-width: 0 0 0 1px;\n}\n.tabs-header-left .tabs li,\n.tabs-header-right .tabs li {\n  display: block;\n  width: 100%;\n  position: relative;\n}\n.tabs-header-left .tabs li {\n  left: auto;\n  right: 0;\n  margin: 0 -1px 4px 0;\n  float: right;\n}\n.tabs-header-right .tabs li {\n  left: 0;\n  right: auto;\n  margin: 0 0 4px -1px;\n  float: left;\n}\n.tabs-header-left .tabs li a.tabs-inner {\n  display: block;\n  text-align: left;\n  -moz-border-radius: 5px 0 0 5px;\n  -webkit-border-radius: 5px 0 0 5px;\n  border-radius: 5px 0 0 5px;\n}\n.tabs-header-right .tabs li a.tabs-inner {\n  display: block;\n  text-align: left;\n  -moz-border-radius: 0 5px 5px 0;\n  -webkit-border-radius: 0 5px 5px 0;\n  border-radius: 0 5px 5px 0;\n}\n.tabs-panels-right {\n  float: right;\n  border-width: 1px 1px 1px 0;\n}\n.tabs-panels-left {\n  float: left;\n  border-width: 1px 0 1px 1px;\n}\n.tabs-header-noborder,\n.tabs-panels-noborder {\n  border: 0px;\n}\n.tabs-header-plain {\n  border: 0px;\n  background: transparent;\n}\n.tabs-scroller-left {\n  background: #f3f3f3 url('images/tabs_icons.png') no-repeat 1px center;\n}\n.tabs-scroller-right {\n  background: #f3f3f3 url('images/tabs_icons.png') no-repeat -15px center;\n}\n.tabs li a.tabs-close {\n  background: url('images/tabs_icons.png') no-repeat -34px center;\n}\n.tabs li a.tabs-inner:hover {\n  background: #e2e2e2;\n  color: #000000;\n  filter: none;\n}\n.tabs li.tabs-selected a.tabs-inner {\n  background-color: #ffffff;\n  color: #575765;\n  background: -webkit-linear-gradient(top,#F8F8F8 0,#ffffff 100%);\n  background: -moz-linear-gradient(top,#F8F8F8 0,#ffffff 100%);\n  background: -o-linear-gradient(top,#F8F8F8 0,#ffffff 100%);\n  background: linear-gradient(to bottom,#F8F8F8 0,#ffffff 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#F8F8F8,endColorstr=#ffffff,GradientType=0);\n}\n.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner {\n  background: -webkit-linear-gradient(top,#ffffff 0,#F8F8F8 100%);\n  background: -moz-linear-gradient(top,#ffffff 0,#F8F8F8 100%);\n  background: -o-linear-gradient(top,#ffffff 0,#F8F8F8 100%);\n  background: linear-gradient(to bottom,#ffffff 0,#F8F8F8 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#F8F8F8,GradientType=0);\n}\n.tabs-header-left .tabs li.tabs-selected a.tabs-inner {\n  background: -webkit-linear-gradient(left,#F8F8F8 0,#ffffff 100%);\n  background: -moz-linear-gradient(left,#F8F8F8 0,#ffffff 100%);\n  background: -o-linear-gradient(left,#F8F8F8 0,#ffffff 100%);\n  background: linear-gradient(to right,#F8F8F8 0,#ffffff 100%);\n  background-repeat: repeat-y;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#F8F8F8,endColorstr=#ffffff,GradientType=1);\n}\n.tabs-header-right .tabs li.tabs-selected a.tabs-inner {\n  background: -webkit-linear-gradient(left,#ffffff 0,#F8F8F8 100%);\n  background: -moz-linear-gradient(left,#ffffff 0,#F8F8F8 100%);\n  background: -o-linear-gradient(left,#ffffff 0,#F8F8F8 100%);\n  background: linear-gradient(to right,#ffffff 0,#F8F8F8 100%);\n  background-repeat: repeat-y;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#F8F8F8,GradientType=1);\n}\n.tabs li a.tabs-inner {\n  color: #575765;\n  background-color: #f3f3f3;\n  background: -webkit-linear-gradient(top,#F8F8F8 0,#eeeeee 100%);\n  background: -moz-linear-gradient(top,#F8F8F8 0,#eeeeee 100%);\n  background: -o-linear-gradient(top,#F8F8F8 0,#eeeeee 100%);\n  background: linear-gradient(to bottom,#F8F8F8 0,#eeeeee 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#F8F8F8,endColorstr=#eeeeee,GradientType=0);\n}\n.tabs-header,\n.tabs-tool {\n  background-color: #f3f3f3;\n}\n.tabs-header-plain {\n  background: transparent;\n}\n.tabs-header,\n.tabs-scroller-left,\n.tabs-scroller-right,\n.tabs-tool,\n.tabs,\n.tabs-panels,\n.tabs li a.tabs-inner,\n.tabs li.tabs-selected a.tabs-inner,\n.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner,\n.tabs-header-left .tabs li.tabs-selected a.tabs-inner,\n.tabs-header-right .tabs li.tabs-selected a.tabs-inner {\n  border-color: #D3D3D3;\n}\n.tabs-p-tool a:hover,\n.tabs li a:hover.tabs-close,\n.tabs-scroller-over {\n  background-color: #e2e2e2;\n}\n.tabs li.tabs-selected a.tabs-inner {\n  border-bottom: 1px solid #ffffff;\n}\n.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner {\n  border-top: 1px solid #ffffff;\n}\n.tabs-header-left .tabs li.tabs-selected a.tabs-inner {\n  border-right: 1px solid #ffffff;\n}\n.tabs-header-right .tabs li.tabs-selected a.tabs-inner {\n  border-left: 1px solid #ffffff;\n}\na.l-btn {\n  background-position: right 0;\n  text-decoration: none;\n  display: inline-block;\n  zoom: 1;\n  height: 24px;\n  padding-right: 18px;\n  cursor: pointer;\n  outline: none;\n}\na.l-btn-plain {\n  border: 0;\n  padding: 1px 6px 1px 1px;\n}\na.l-btn-disabled {\n  color: #ccc;\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n  cursor: default;\n}\na.l-btn span.l-btn-left {\n  display: inline-block;\n  background-position: 0 -48px;\n  padding: 0 0 0 18px;\n  line-height: 24px;\n  height: 24px;\n}\na.l-btn-plain span.l-btn-left {\n  padding-left: 5px;\n}\na.l-btn span span.l-btn-text {\n  position: relative;\n  display: inline-block;\n  vertical-align: top;\n  top: 4px;\n  width: auto;\n  height: 16px;\n  line-height: 16px;\n  font-size: 12px;\n  padding: 0;\n  margin: 0;\n}\na.l-btn span span.l-btn-icon-left {\n  padding: 0 0 0 20px;\n  background-position: left center;\n}\na.l-btn span span.l-btn-icon-right {\n  padding: 0 20px 0 0;\n  background-position: right center;\n}\na.l-btn span span span.l-btn-empty {\n  display: inline-block;\n  margin: 0;\n  padding: 0;\n  width: 16px;\n}\na:hover.l-btn {\n  background-position: right -24px;\n  outline: none;\n  text-decoration: none;\n}\na:hover.l-btn span.l-btn-left {\n  background-position: 0 bottom;\n}\na:hover.l-btn-plain {\n  padding: 0 5px 0 0;\n}\na:hover.l-btn-disabled {\n  background-position: right 0;\n}\na:hover.l-btn-disabled span.l-btn-left {\n  background-position: 0 -48px;\n}\na.l-btn .l-btn-focus {\n  outline: #0000FF dotted thin;\n}\na.l-btn {\n  color: #444;\n  background-image: url('images/linkbutton_bg.png');\n  background-repeat: no-repeat;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\na.l-btn span.l-btn-left {\n  background-image: url('images/linkbutton_bg.png');\n  background-repeat: no-repeat;\n}\na.l-btn-plain,\na.l-btn-plain span.l-btn-left {\n  background: transparent;\n  border: 0;\n  filter: none;\n}\na:hover.l-btn-plain {\n  background: #e2e2e2;\n  color: #000000;\n  border: 1px solid #ccc;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\na.l-btn-disabled,\na:hover.l-btn-disabled {\n  color: #444;\n  filter: alpha(opacity=50);\n}\na.l-btn-plain-disabled,\na:hover.l-btn-plain-disabled {\n  background: transparent;\n  filter: alpha(opacity=50);\n}\na.l-btn-selected,\na:hover.l-btn-selected {\n  background-position: right -24px;\n}\na.l-btn-selected span.l-btn-left,\na:hover.l-btn-selected span.l-btn-left {\n  background-position: 0 bottom;\n}\na.l-btn-plain-selected,\na:hover.l-btn-plain-selected {\n  background: #ddd;\n}\n.datagrid .panel-body {\n  overflow: hidden;\n  position: relative;\n}\n.datagrid-view {\n  position: relative;\n  overflow: hidden;\n}\n.datagrid-view1,\n.datagrid-view2 {\n  position: absolute;\n  overflow: hidden;\n  top: 0;\n}\n.datagrid-view1 {\n  left: 0;\n}\n.datagrid-view2 {\n  right: 0;\n}\n.datagrid-mask {\n  position: absolute;\n  left: 0;\n  top: 0;\n  width: 100%;\n  height: 100%;\n  opacity: 0.3;\n  filter: alpha(opacity=30);\n  display: none;\n}\n.datagrid-mask-msg {\n  position: absolute;\n  top: 50%;\n  margin-top: -20px;\n  padding: 12px 5px 10px 30px;\n  width: auto;\n  height: 16px;\n  border-width: 2px;\n  border-style: solid;\n  display: none;\n}\n.datagrid-sort-icon {\n  padding: 0;\n}\n.datagrid-toolbar {\n  height: auto;\n  padding: 1px 2px;\n  border-width: 0 0 1px 0;\n  border-style: solid;\n}\n.datagrid-btn-separator {\n  float: left;\n  height: 24px;\n  border-left: 1px solid #ccc;\n  border-right: 1px solid #fff;\n  margin: 2px 1px;\n}\n.datagrid .datagrid-pager {\n  display: block;\n  margin: 0;\n  border-width: 1px 0 0 0;\n  border-style: solid;\n}\n.datagrid .datagrid-pager-top {\n  border-width: 0 0 1px 0;\n}\n.datagrid-header {\n  overflow: hidden;\n  cursor: default;\n  border-width: 0 0 1px 0;\n  border-style: solid;\n}\n.datagrid-header-inner {\n  float: left;\n  width: 10000px;\n}\n.datagrid-header-row,\n.datagrid-row {\n  height: 25px;\n}\n.datagrid-header td,\n.datagrid-body td,\n.datagrid-footer td {\n  border-width: 0 1px 1px 0;\n  border-style: dotted;\n  margin: 0;\n  padding: 0;\n}\n.datagrid-cell,\n.datagrid-cell-group,\n.datagrid-header-rownumber,\n.datagrid-cell-rownumber {\n  margin: 0;\n  padding: 0 4px;\n  white-space: nowrap;\n  word-wrap: normal;\n  overflow: hidden;\n  height: 18px;\n  line-height: 18px;\n  font-size: 12px;\n}\n.datagrid-header .datagrid-cell {\n  height: auto;\n}\n.datagrid-header .datagrid-cell span {\n  font-size: 12px;\n}\n.datagrid-cell-group {\n  text-align: center;\n}\n.datagrid-header-rownumber,\n.datagrid-cell-rownumber {\n  width: 25px;\n  text-align: center;\n  margin: 0;\n  padding: 0;\n}\n.datagrid-body {\n  margin: 0;\n  padding: 0;\n  overflow: auto;\n  zoom: 1;\n}\n.datagrid-view1 .datagrid-body-inner {\n  padding-bottom: 20px;\n}\n.datagrid-view1 .datagrid-body {\n  overflow: hidden;\n}\n.datagrid-footer {\n  overflow: hidden;\n}\n.datagrid-footer-inner {\n  border-width: 1px 0 0 0;\n  border-style: solid;\n  width: 10000px;\n  float: left;\n}\n.datagrid-row-editing .datagrid-cell {\n  height: auto;\n}\n.datagrid-header-check,\n.datagrid-cell-check {\n  padding: 0;\n  width: 27px;\n  height: 18px;\n  font-size: 1px;\n  text-align: center;\n  overflow: hidden;\n}\n.datagrid-header-check input,\n.datagrid-cell-check input {\n  margin: 0;\n  padding: 0;\n  width: 15px;\n  height: 18px;\n}\n.datagrid-resize-proxy {\n  position: absolute;\n  width: 1px;\n  height: 10000px;\n  top: 0;\n  cursor: e-resize;\n  display: none;\n}\n.datagrid-body .datagrid-editable {\n  margin: 0;\n  padding: 0;\n}\n.datagrid-body .datagrid-editable table {\n  width: 100%;\n  height: 100%;\n}\n.datagrid-body .datagrid-editable td {\n  border: 0;\n  margin: 0;\n  padding: 0;\n}\n.datagrid-body .datagrid-editable .datagrid-editable-input {\n  margin: 0;\n  padding: 2px;\n  border-width: 1px;\n  border-style: solid;\n}\n.datagrid-sort-desc .datagrid-sort-icon {\n  padding: 0 13px 0 0;\n  background: url('images/datagrid_icons.png') no-repeat -16px center;\n}\n.datagrid-sort-asc .datagrid-sort-icon {\n  padding: 0 13px 0 0;\n  background: url('images/datagrid_icons.png') no-repeat 0px center;\n}\n.datagrid-row-collapse {\n  background: url('images/datagrid_icons.png') no-repeat -48px center;\n}\n.datagrid-row-expand {\n  background: url('images/datagrid_icons.png') no-repeat -32px center;\n}\n.datagrid-mask-msg {\n  background: #ffffff url('images/loading.gif') no-repeat scroll 5px center;\n}\n.datagrid-header,\n.datagrid-td-rownumber {\n  background-color: #fafafa;\n  background: -webkit-linear-gradient(top,#fdfdfd 0,#f5f5f5 100%);\n  background: -moz-linear-gradient(top,#fdfdfd 0,#f5f5f5 100%);\n  background: -o-linear-gradient(top,#fdfdfd 0,#f5f5f5 100%);\n  background: linear-gradient(to bottom,#fdfdfd 0,#f5f5f5 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#fdfdfd,endColorstr=#f5f5f5,GradientType=0);\n}\n.datagrid-cell-rownumber {\n  color: #000000;\n}\n.datagrid-resize-proxy {\n  background: #bfbfbf;\n}\n.datagrid-mask {\n  background: #ccc;\n}\n.datagrid-mask-msg {\n  border-color: #D3D3D3;\n}\n.datagrid-toolbar,\n.datagrid-pager {\n  background: #fafafa;\n}\n.datagrid-header,\n.datagrid-toolbar,\n.datagrid-pager,\n.datagrid-footer-inner {\n  border-color: #ddd;\n}\n.datagrid-header td,\n.datagrid-body td,\n.datagrid-footer td {\n  border-color: #ccc;\n}\n.datagrid-htable,\n.datagrid-btable,\n.datagrid-ftable {\n  color: #000000;\n  border-collapse: separate;\n}\n.datagrid-row-alt {\n  background: #fafafa;\n}\n.datagrid-row-over,\n.datagrid-header td.datagrid-header-over {\n  background: #e2e2e2;\n  color: #000000;\n  cursor: default;\n}\n.datagrid-row-selected {\n  background: #0092DC;\n  color: #fff;\n}\n.datagrid-body .datagrid-editable .datagrid-editable-input {\n  border-color: #D3D3D3;\n}\n.propertygrid .datagrid-view1 .datagrid-body td {\n  padding-bottom: 1px;\n  border-width: 0 1px 0 0;\n}\n.propertygrid .datagrid-group {\n  height: 21px;\n  overflow: hidden;\n  border-width: 0 0 1px 0;\n  border-style: solid;\n}\n.propertygrid .datagrid-group span {\n  font-weight: bold;\n}\n.propertygrid .datagrid-view1 .datagrid-body td {\n  border-color: #ddd;\n}\n.propertygrid .datagrid-view1 .datagrid-group {\n  border-color: #f3f3f3;\n}\n.propertygrid .datagrid-view2 .datagrid-group {\n  border-color: #ddd;\n}\n.propertygrid .datagrid-group,\n.propertygrid .datagrid-view1 .datagrid-body,\n.propertygrid .datagrid-view1 .datagrid-row-over,\n.propertygrid .datagrid-view1 .datagrid-row-selected {\n  background: #f3f3f3;\n}\n.pagination {\n  zoom: 1;\n}\n.pagination table {\n  float: left;\n  height: 30px;\n}\n.pagination td {\n  border: 0;\n}\n.pagination-btn-separator {\n  float: left;\n  height: 24px;\n  border-left: 1px solid #ccc;\n  border-right: 1px solid #fff;\n  margin: 3px 1px;\n}\n.pagination .pagination-num {\n  border-width: 1px;\n  border-style: solid;\n  margin: 0 2px;\n  padding: 2px;\n  width: 2em;\n  height: auto;\n}\n.pagination-page-list {\n  margin: 0px 6px;\n  padding: 1px 2px;\n  width: auto;\n  height: auto;\n  border-width: 1px;\n  border-style: solid;\n}\n.pagination-info {\n  float: right;\n  margin: 0 6px 0 0;\n  padding: 0;\n  height: 30px;\n  line-height: 30px;\n  font-size: 12px;\n}\n.pagination span {\n  font-size: 12px;\n}\na.pagination-link {\n  padding: 1px;\n}\na.pagination-link span.l-btn-left {\n  padding-left: 0;\n}\na.pagination-link span span.l-btn-text {\n  width: 24px;\n  text-align: center;\n}\na:hover.pagination-link {\n  padding: 0;\n}\n.pagination-first {\n  background: url('images/pagination_icons.png') no-repeat 0 center;\n}\n.pagination-prev {\n  background: url('images/pagination_icons.png') no-repeat -16px center;\n}\n.pagination-next {\n  background: url('images/pagination_icons.png') no-repeat -32px center;\n}\n.pagination-last {\n  background: url('images/pagination_icons.png') no-repeat -48px center;\n}\n.pagination-load {\n  background: url('images/pagination_icons.png') no-repeat -64px center;\n}\n.pagination-loading {\n  background: url('images/loading.gif') no-repeat center center;\n}\n.pagination-page-list,\n.pagination .pagination-num {\n  border-color: #D3D3D3;\n}\n.calendar {\n  border-width: 1px;\n  border-style: solid;\n  padding: 1px;\n  overflow: hidden;\n}\n.calendar table {\n  border-collapse: separate;\n  font-size: 12px;\n  width: 100%;\n  height: 100%;\n}\n.calendar table td,\n.calendar table th {\n  font-size: 12px;\n}\n.calendar-noborder {\n  border: 0;\n}\n.calendar-header {\n  position: relative;\n  height: 22px;\n}\n.calendar-title {\n  text-align: center;\n  height: 22px;\n}\n.calendar-title span {\n  position: relative;\n  display: inline-block;\n  top: 2px;\n  padding: 0 3px;\n  height: 18px;\n  line-height: 18px;\n  font-size: 12px;\n  cursor: pointer;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.calendar-prevmonth,\n.calendar-nextmonth,\n.calendar-prevyear,\n.calendar-nextyear {\n  position: absolute;\n  top: 50%;\n  margin-top: -7px;\n  width: 14px;\n  height: 14px;\n  cursor: pointer;\n  font-size: 1px;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.calendar-prevmonth {\n  left: 20px;\n  background: url('images/calendar_arrows.png') no-repeat -18px -2px;\n}\n.calendar-nextmonth {\n  right: 20px;\n  background: url('images/calendar_arrows.png') no-repeat -34px -2px;\n}\n.calendar-prevyear {\n  left: 3px;\n  background: url('images/calendar_arrows.png') no-repeat -1px -2px;\n}\n.calendar-nextyear {\n  right: 3px;\n  background: url('images/calendar_arrows.png') no-repeat -49px -2px;\n}\n.calendar-body {\n  position: relative;\n}\n.calendar-body th,\n.calendar-body td {\n  text-align: center;\n}\n.calendar-day {\n  border: 0;\n  padding: 1px;\n  cursor: pointer;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.calendar-other-month {\n  opacity: 0.3;\n  filter: alpha(opacity=30);\n}\n.calendar-menu {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 180px;\n  height: 150px;\n  padding: 5px;\n  font-size: 12px;\n  display: none;\n  overflow: hidden;\n}\n.calendar-menu-year-inner {\n  text-align: center;\n  padding-bottom: 5px;\n}\n.calendar-menu-year {\n  width: 40px;\n  text-align: center;\n  border-width: 1px;\n  border-style: solid;\n  margin: 0;\n  padding: 2px;\n  font-weight: bold;\n  font-size: 12px;\n}\n.calendar-menu-prev,\n.calendar-menu-next {\n  display: inline-block;\n  width: 21px;\n  height: 21px;\n  vertical-align: top;\n  cursor: pointer;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.calendar-menu-prev {\n  margin-right: 10px;\n  background: url('images/calendar_arrows.png') no-repeat 2px 2px;\n}\n.calendar-menu-next {\n  margin-left: 10px;\n  background: url('images/calendar_arrows.png') no-repeat -45px 2px;\n}\n.calendar-menu-month {\n  text-align: center;\n  cursor: pointer;\n  font-weight: bold;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.calendar-body th,\n.calendar-menu-month {\n  color: #4d4d4d;\n}\n.calendar-day {\n  color: #000000;\n}\n.calendar-sunday {\n  color: #CC2222;\n}\n.calendar-saturday {\n  color: #00ee00;\n}\n.calendar-today {\n  color: #0000ff;\n}\n.calendar-menu-year {\n  border-color: #D3D3D3;\n}\n.calendar {\n  border-color: #D3D3D3;\n}\n.calendar-header {\n  background: #f3f3f3;\n}\n.calendar-body,\n.calendar-menu {\n  background: #ffffff;\n}\n.calendar-body th {\n  background: #fafafa;\n}\n.calendar-hover,\n.calendar-nav-hover,\n.calendar-menu-hover {\n  background-color: #e2e2e2;\n  color: #000000;\n}\n.calendar-hover {\n  border: 1px solid #ccc;\n  padding: 0;\n}\n.calendar-selected {\n  background-color: #0092DC;\n  color: #fff;\n  border: 1px solid #0070a9;\n  padding: 0;\n}\n.datebox-calendar-inner {\n  height: 180px;\n}\n.datebox-button {\n  height: 18px;\n  padding: 2px 5px;\n  text-align: center;\n}\n.datebox-button a {\n  font-size: 12px;\n  font-weight: bold;\n  text-decoration: none;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.datebox-button a:hover {\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n}\n.datebox-current,\n.datebox-close {\n  float: left;\n}\n.datebox-close {\n  float: right;\n}\n.datebox .combo-arrow {\n  background-image: url('images/datebox_arrow.png');\n  background-position: center center;\n}\n.datebox-button {\n  background-color: #fafafa;\n}\n.datebox-button a {\n  color: #444;\n}\n.spinner {\n  display: inline-block;\n  white-space: nowrap;\n  margin: 0;\n  padding: 0;\n  border-width: 1px;\n  border-style: solid;\n  overflow: hidden;\n  vertical-align: middle;\n}\n.spinner .spinner-text {\n  font-size: 12px;\n  border: 0px;\n  line-height: 20px;\n  height: 20px;\n  margin: 0;\n  padding: 0 2px;\n  *margin-top: -1px;\n  *height: 18px;\n  *line-height: 18px;\n  _height: 18px;\n  _line-height: 18px;\n  vertical-align: baseline;\n}\n.spinner-arrow {\n  display: inline-block;\n  overflow: hidden;\n  vertical-align: top;\n  margin: 0;\n  padding: 0;\n}\n.spinner-arrow-up,\n.spinner-arrow-down {\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n  display: block;\n  font-size: 1px;\n  width: 18px;\n  height: 10px;\n}\n.spinner-arrow-hover {\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n}\n.spinner-arrow-up {\n  background: url('images/spinner_arrows.png') no-repeat 1px center;\n}\n.spinner-arrow-down {\n  background: url('images/spinner_arrows.png') no-repeat -15px center;\n}\n.spinner {\n  border-color: #D3D3D3;\n}\n.spinner-arrow {\n  background-color: #f3f3f3;\n}\n.spinner-arrow-hover {\n  background-color: #e2e2e2;\n}\n.progressbar {\n  border-width: 1px;\n  border-style: solid;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n  overflow: hidden;\n  position: relative;\n}\n.progressbar-text {\n  text-align: center;\n  position: absolute;\n}\n.progressbar-value {\n  position: relative;\n  overflow: hidden;\n  width: 0;\n  -moz-border-radius: 5px 0 0 5px;\n  -webkit-border-radius: 5px 0 0 5px;\n  border-radius: 5px 0 0 5px;\n}\n.progressbar {\n  border-color: #D3D3D3;\n}\n.progressbar-text {\n  color: #000000;\n  font-size: 12px;\n}\n.progressbar-value .progressbar-text {\n  background-color: #0092DC;\n  color: #fff;\n}\n.searchbox {\n  display: inline-block;\n  white-space: nowrap;\n  margin: 0;\n  padding: 0;\n  border-width: 1px;\n  border-style: solid;\n  overflow: hidden;\n}\n.searchbox .searchbox-text {\n  font-size: 12px;\n  border: 0;\n  margin: 0;\n  padding: 0;\n  line-height: 20px;\n  height: 20px;\n  *margin-top: -1px;\n  *height: 18px;\n  *line-height: 18px;\n  _height: 18px;\n  _line-height: 18px;\n  vertical-align: baseline;\n}\n.searchbox .searchbox-prompt {\n  font-size: 12px;\n  color: #ccc;\n}\n.searchbox-button {\n  width: 18px;\n  height: 20px;\n  overflow: hidden;\n  display: inline-block;\n  vertical-align: top;\n  cursor: pointer;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.searchbox-button-hover {\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n}\n.searchbox a.l-btn-plain {\n  height: 20px;\n  border: 0;\n  padding: 0 6px 0 0;\n  vertical-align: top;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n  -moz-border-radius: 0 0 0 0;\n  -webkit-border-radius: 0 0 0 0;\n  border-radius: 0 0 0 0;\n}\n.searchbox a.l-btn .l-btn-left {\n  padding: 0 0 0 4px;\n}\n.searchbox a.l-btn .l-btn-text {\n  position: static;\n  vertical-align: top;\n}\n.searchbox a.l-btn-plain:hover {\n  border: 0;\n  padding: 0 6px 0 0;\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n  -moz-border-radius: 0 0 0 0;\n  -webkit-border-radius: 0 0 0 0;\n  border-radius: 0 0 0 0;\n}\n.searchbox a.m-btn-plain-active {\n  -moz-border-radius: 0 0 0 0;\n  -webkit-border-radius: 0 0 0 0;\n  border-radius: 0 0 0 0;\n}\n.searchbox-button {\n  background: url('images/searchbox_button.png') no-repeat center center;\n}\n.searchbox {\n  border-color: #D3D3D3;\n  background-color: #fff;\n}\n.searchbox a.l-btn-plain {\n  background: #f3f3f3;\n}\n.slider-disabled {\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n}\n.slider-h {\n  height: 22px;\n}\n.slider-v {\n  width: 22px;\n}\n.slider-inner {\n  position: relative;\n  height: 6px;\n  top: 7px;\n  border-width: 1px;\n  border-style: solid;\n  border-radius: 5px;\n}\n.slider-handle {\n  position: absolute;\n  display: block;\n  outline: none;\n  width: 20px;\n  height: 20px;\n  top: -7px;\n  margin-left: -10px;\n}\n.slider-tip {\n  position: absolute;\n  display: inline-block;\n  line-height: 12px;\n  font-size: 12px;\n  white-space: nowrap;\n  top: -22px;\n}\n.slider-rule {\n  position: relative;\n  top: 15px;\n}\n.slider-rule span {\n  position: absolute;\n  display: inline-block;\n  font-size: 0;\n  height: 5px;\n  border-width: 0 0 0 1px;\n  border-style: solid;\n}\n.slider-rulelabel {\n  position: relative;\n  top: 20px;\n}\n.slider-rulelabel span {\n  position: absolute;\n  display: inline-block;\n  font-size: 12px;\n}\n.slider-v .slider-inner {\n  width: 6px;\n  left: 7px;\n  top: 0;\n  float: left;\n}\n.slider-v .slider-handle {\n  left: 3px;\n  margin-top: -10px;\n}\n.slider-v .slider-tip {\n  left: -10px;\n  margin-top: -6px;\n}\n.slider-v .slider-rule {\n  float: left;\n  top: 0;\n  left: 16px;\n}\n.slider-v .slider-rule span {\n  width: 5px;\n  height: 'auto';\n  border-left: 0;\n  border-width: 1px 0 0 0;\n  border-style: solid;\n}\n.slider-v .slider-rulelabel {\n  float: left;\n  top: 0;\n  left: 23px;\n}\n.slider-handle {\n  background: url('images/slider_handle.png') no-repeat;\n}\n.slider-inner {\n  border-color: #D3D3D3;\n  background: #f3f3f3;\n}\n.slider-rule span {\n  border-color: #D3D3D3;\n}\n.slider-rulelabel span {\n  color: #000000;\n}\n.menu {\n  position: absolute;\n  margin: 0;\n  padding: 2px;\n  border-width: 1px;\n  border-style: solid;\n  overflow: hidden;\n}\n.menu-item {\n  position: relative;\n  margin: 0;\n  padding: 0;\n  overflow: hidden;\n  white-space: nowrap;\n  cursor: pointer;\n  border-width: 1px;\n  border-style: solid;\n}\n.menu-text {\n  height: 20px;\n  line-height: 20px;\n  float: left;\n  padding-left: 28px;\n}\n.menu-icon {\n  position: absolute;\n  width: 16px;\n  height: 16px;\n  left: 2px;\n  top: 50%;\n  margin-top: -8px;\n}\n.menu-rightarrow {\n  position: absolute;\n  width: 16px;\n  height: 16px;\n  right: 0;\n  top: 50%;\n  margin-top: -8px;\n}\n.menu-line {\n  position: absolute;\n  left: 26px;\n  top: 0;\n  height: 2000px;\n  font-size: 1px;\n}\n.menu-sep {\n  margin: 3px 0px 3px 25px;\n  font-size: 1px;\n}\n.menu-active {\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.menu-item-disabled {\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n  cursor: default;\n}\n.menu-text,\n.menu-text span {\n  font-size: 12px;\n}\n.menu-shadow {\n  position: absolute;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n  background: #ccc;\n  -moz-box-shadow: 2px 2px 3px #cccccc;\n  -webkit-box-shadow: 2px 2px 3px #cccccc;\n  box-shadow: 2px 2px 3px #cccccc;\n  filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2);\n}\n.menu-rightarrow {\n  background: url('images/menu_arrows.png') no-repeat -32px center;\n}\n.menu-line {\n  border-left: 1px solid #ccc;\n  border-right: 1px solid #fff;\n}\n.menu-sep {\n  border-top: 1px solid #ccc;\n  border-bottom: 1px solid #fff;\n}\n.menu {\n  background-color: #f3f3f3;\n  border-color: #D3D3D3;\n  color: #444;\n}\n.menu-content {\n  background: #ffffff;\n}\n.menu-item {\n  border-color: transparent;\n  _border-color: #f3f3f3;\n}\n.menu-active {\n  border-color: #ccc;\n  color: #000000;\n  background: #e2e2e2;\n}\n.menu-active-disabled {\n  border-color: transparent;\n  background: transparent;\n  color: #444;\n}\n.m-btn-downarrow {\n  display: inline-block;\n  width: 16px;\n  height: 16px;\n  line-height: 16px;\n  font-size: 12px;\n  _vertical-align: middle;\n}\na.m-btn-active {\n  background-position: bottom right;\n}\na.m-btn-active span.l-btn-left {\n  background-position: bottom left;\n}\na.m-btn-plain-active {\n  background: transparent;\n  padding: 0 5px 0 0;\n  border-width: 1px;\n  border-style: solid;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.m-btn-downarrow {\n  background: url('images/menu_arrows.png') no-repeat 2px center;\n}\na.m-btn-plain-active {\n  border-color: #ccc;\n  background-color: #e2e2e2;\n  color: #000000;\n}\n.s-btn-downarrow {\n  display: inline-block;\n  margin: 0 0 0 4px;\n  padding: 0 0 0 1px;\n  width: 14px;\n  height: 16px;\n  line-height: 16px;\n  border-width: 0;\n  border-style: solid;\n  font-size: 12px;\n  _vertical-align: middle;\n}\na.s-btn-active {\n  background-position: bottom right;\n}\na.s-btn-active span.l-btn-left {\n  background-position: bottom left;\n}\na.s-btn-plain-active {\n  background: transparent;\n  padding: 0 5px 0 0;\n  border-width: 1px;\n  border-style: solid;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.s-btn-downarrow {\n  background: url('images/menu_arrows.png') no-repeat 2px center;\n  border-color: #bfbfbf;\n}\na:hover.l-btn .s-btn-downarrow,\na.s-btn-active .s-btn-downarrow,\na.s-btn-plain-active .s-btn-downarrow {\n  background-position: 1px center;\n  padding: 0;\n  border-width: 0 0 0 1px;\n}\na.s-btn-plain-active {\n  border-color: #ccc;\n  background-color: #e2e2e2;\n  color: #000000;\n}\n.messager-body {\n  padding: 10px;\n  overflow: hidden;\n}\n.messager-button {\n  text-align: center;\n  padding-top: 10px;\n}\n.messager-icon {\n  float: left;\n  width: 32px;\n  height: 32px;\n  margin: 0 10px 10px 0;\n}\n.messager-error {\n  background: url('images/messager_icons.png') no-repeat scroll -64px 0;\n}\n.messager-info {\n  background: url('images/messager_icons.png') no-repeat scroll 0 0;\n}\n.messager-question {\n  background: url('images/messager_icons.png') no-repeat scroll -32px 0;\n}\n.messager-warning {\n  background: url('images/messager_icons.png') no-repeat scroll -96px 0;\n}\n.messager-progress {\n  padding: 10px;\n}\n.messager-p-msg {\n  margin-bottom: 5px;\n}\n.messager-body .messager-input {\n  width: 100%;\n  padding: 1px 0;\n  border: 1px solid #D3D3D3;\n}\n.tree {\n  margin: 0;\n  padding: 0;\n  list-style-type: none;\n}\n.tree li {\n  white-space: nowrap;\n}\n.tree li ul {\n  list-style-type: none;\n  margin: 0;\n  padding: 0;\n}\n.tree-node {\n  height: 18px;\n  white-space: nowrap;\n  cursor: pointer;\n}\n.tree-hit {\n  cursor: pointer;\n}\n.tree-expanded,\n.tree-collapsed,\n.tree-folder,\n.tree-file,\n.tree-checkbox,\n.tree-indent {\n  display: inline-block;\n  width: 16px;\n  height: 18px;\n  vertical-align: top;\n  overflow: hidden;\n}\n.tree-expanded {\n  background: url('images/tree_icons.png') no-repeat -18px 0px;\n}\n.tree-expanded-hover {\n  background: url('images/tree_icons.png') no-repeat -50px 0px;\n}\n.tree-collapsed {\n  background: url('images/tree_icons.png') no-repeat 0px 0px;\n}\n.tree-collapsed-hover {\n  background: url('images/tree_icons.png') no-repeat -32px 0px;\n}\n.tree-lines .tree-expanded,\n.tree-lines .tree-root-first .tree-expanded {\n  background: url('images/tree_icons.png') no-repeat -144px 0;\n}\n.tree-lines .tree-collapsed,\n.tree-lines .tree-root-first .tree-collapsed {\n  background: url('images/tree_icons.png') no-repeat -128px 0;\n}\n.tree-lines .tree-node-last .tree-expanded,\n.tree-lines .tree-root-one .tree-expanded {\n  background: url('images/tree_icons.png') no-repeat -80px 0;\n}\n.tree-lines .tree-node-last .tree-collapsed,\n.tree-lines .tree-root-one .tree-collapsed {\n  background: url('images/tree_icons.png') no-repeat -64px 0;\n}\n.tree-line {\n  background: url('images/tree_icons.png') no-repeat -176px 0;\n}\n.tree-join {\n  background: url('images/tree_icons.png') no-repeat -192px 0;\n}\n.tree-joinbottom {\n  background: url('images/tree_icons.png') no-repeat -160px 0;\n}\n.tree-folder {\n  background: url('images/tree_icons.png') no-repeat -208px 0;\n}\n.tree-folder-open {\n  background: url('images/tree_icons.png') no-repeat -224px 0;\n}\n.tree-file {\n  background: url('images/tree_icons.png') no-repeat -240px 0;\n}\n.tree-loading {\n  background: url('images/loading.gif') no-repeat center center;\n}\n.tree-checkbox0 {\n  background: url('images/tree_icons.png') no-repeat -208px -18px;\n}\n.tree-checkbox1 {\n  background: url('images/tree_icons.png') no-repeat -224px -18px;\n}\n.tree-checkbox2 {\n  background: url('images/tree_icons.png') no-repeat -240px -18px;\n}\n.tree-title {\n  font-size: 12px;\n  display: inline-block;\n  text-decoration: none;\n  vertical-align: top;\n  white-space: nowrap;\n  padding: 0 2px;\n  height: 18px;\n  line-height: 18px;\n}\n.tree-node-proxy {\n  font-size: 12px;\n  line-height: 20px;\n  padding: 0 2px 0 20px;\n  border-width: 1px;\n  border-style: solid;\n  z-index: 9900000;\n}\n.tree-dnd-icon {\n  display: inline-block;\n  position: absolute;\n  width: 16px;\n  height: 18px;\n  left: 2px;\n  top: 50%;\n  margin-top: -9px;\n}\n.tree-dnd-yes {\n  background: url('images/tree_icons.png') no-repeat -256px 0;\n}\n.tree-dnd-no {\n  background: url('images/tree_icons.png') no-repeat -256px -18px;\n}\n.tree-node-top {\n  border-top: 1px dotted red;\n}\n.tree-node-bottom {\n  border-bottom: 1px dotted red;\n}\n.tree-node-append .tree-title {\n  border: 1px dotted red;\n}\n.tree-editor {\n  border: 1px solid #ccc;\n  font-size: 12px;\n  height: 14px !important;\n  height: 18px;\n  line-height: 14px;\n  padding: 1px 2px;\n  width: 80px;\n  position: absolute;\n  top: 0;\n}\n.tree-node-proxy {\n  background-color: #ffffff;\n  color: #000000;\n  border-color: #D3D3D3;\n}\n.tree-node-hover {\n  background: #e2e2e2;\n  color: #000000;\n}\n.tree-node-selected {\n  background: #0092DC;\n  color: #fff;\n}\n.validatebox-invalid {\n  background-image: url('images/validatebox_warning.png');\n  background-repeat: no-repeat;\n  background-position: right center;\n  border-color: #ffa8a8;\n  background-color: #fff3f3;\n  color: #000;\n}\n.tooltip {\n  position: absolute;\n  display: none;\n  z-index: 9900000;\n  outline: none;\n  opacity: 1;\n  filter: alpha(opacity=100);\n  padding: 5px;\n  border-width: 1px;\n  border-style: solid;\n  border-radius: 5px;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.tooltip-content {\n  font-size: 12px;\n}\n.tooltip-arrow-outer,\n.tooltip-arrow {\n  position: absolute;\n  width: 0;\n  height: 0;\n  line-height: 0;\n  font-size: 0;\n  border-style: solid;\n  border-width: 6px;\n  border-color: transparent;\n  _border-color: tomato;\n  _filter: chroma(color=tomato);\n}\n.tooltip-right .tooltip-arrow-outer {\n  left: 0;\n  top: 50%;\n  margin: -6px 0 0 -13px;\n}\n.tooltip-right .tooltip-arrow {\n  left: 0;\n  top: 50%;\n  margin: -6px 0 0 -12px;\n}\n.tooltip-left .tooltip-arrow-outer {\n  right: 0;\n  top: 50%;\n  margin: -6px -13px 0 0;\n}\n.tooltip-left .tooltip-arrow {\n  right: 0;\n  top: 50%;\n  margin: -6px -12px 0 0;\n}\n.tooltip-top .tooltip-arrow-outer {\n  bottom: 0;\n  left: 50%;\n  margin: 0 0 -13px -6px;\n}\n.tooltip-top .tooltip-arrow {\n  bottom: 0;\n  left: 50%;\n  margin: 0 0 -12px -6px;\n}\n.tooltip-bottom .tooltip-arrow-outer {\n  top: 0;\n  left: 50%;\n  margin: -13px 0 0 -6px;\n}\n.tooltip-bottom .tooltip-arrow {\n  top: 0;\n  left: 50%;\n  margin: -12px 0 0 -6px;\n}\n.tooltip {\n  background-color: #ffffff;\n  border-color: #D3D3D3;\n  color: #000000;\n}\n.tooltip-right .tooltip-arrow-outer {\n  border-right-color: #D3D3D3;\n}\n.tooltip-right .tooltip-arrow {\n  border-right-color: #ffffff;\n}\n.tooltip-left .tooltip-arrow-outer {\n  border-left-color: #D3D3D3;\n}\n.tooltip-left .tooltip-arrow {\n  border-left-color: #ffffff;\n}\n.tooltip-top .tooltip-arrow-outer {\n  border-top-color: #D3D3D3;\n}\n.tooltip-top .tooltip-arrow {\n  border-top-color: #ffffff;\n}\n.tooltip-bottom .tooltip-arrow-outer {\n  border-bottom-color: #D3D3D3;\n}\n.tooltip-bottom .tooltip-arrow {\n  border-bottom-color: #ffffff;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/gray/layout.css",
    "content": ".layout {\n  position: relative;\n  overflow: hidden;\n  margin: 0;\n  padding: 0;\n  z-index: 0;\n}\n.layout-panel {\n  position: absolute;\n  overflow: hidden;\n}\n.layout-panel-east,\n.layout-panel-west {\n  z-index: 2;\n}\n.layout-panel-north,\n.layout-panel-south {\n  z-index: 3;\n}\n.layout-expand {\n  position: absolute;\n  padding: 0px;\n  font-size: 1px;\n  cursor: pointer;\n  z-index: 1;\n}\n.layout-expand .panel-header,\n.layout-expand .panel-body {\n  background: transparent;\n  filter: none;\n  overflow: hidden;\n}\n.layout-expand .panel-header {\n  border-bottom-width: 0px;\n}\n.layout-split-proxy-h,\n.layout-split-proxy-v {\n  position: absolute;\n  font-size: 1px;\n  display: none;\n  z-index: 5;\n}\n.layout-split-proxy-h {\n  width: 5px;\n  cursor: e-resize;\n}\n.layout-split-proxy-v {\n  height: 5px;\n  cursor: n-resize;\n}\n.layout-mask {\n  position: absolute;\n  background: #fafafa;\n  filter: alpha(opacity=10);\n  opacity: 0.10;\n  z-index: 4;\n}\n.layout-button-up {\n  background: url('images/layout_arrows.png') no-repeat -16px -16px;\n}\n.layout-button-down {\n  background: url('images/layout_arrows.png') no-repeat -16px 0;\n}\n.layout-button-left {\n  background: url('images/layout_arrows.png') no-repeat 0 0;\n}\n.layout-button-right {\n  background: url('images/layout_arrows.png') no-repeat 0 -16px;\n}\n.layout-split-proxy-h,\n.layout-split-proxy-v {\n  background-color: #bfbfbf;\n}\n.layout-split-north {\n  border-bottom: 5px solid #efefef;\n}\n.layout-split-south {\n  border-top: 5px solid #efefef;\n}\n.layout-split-east {\n  border-left: 5px solid #efefef;\n}\n.layout-split-west {\n  border-right: 5px solid #efefef;\n}\n.layout-expand {\n  background-color: #f3f3f3;\n}\n.layout-expand-over {\n  background-color: #f3f3f3;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/gray/linkbutton.css",
    "content": "a.l-btn {\n  background-position: right 0;\n  text-decoration: none;\n  display: inline-block;\n  zoom: 1;\n  height: 24px;\n  padding-right: 18px;\n  cursor: pointer;\n  outline: none;\n}\na.l-btn-plain {\n  border: 0;\n  padding: 1px 6px 1px 1px;\n}\na.l-btn-disabled {\n  color: #ccc;\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n  cursor: default;\n}\na.l-btn span.l-btn-left {\n  display: inline-block;\n  background-position: 0 -48px;\n  padding: 0 0 0 18px;\n  line-height: 24px;\n  height: 24px;\n}\na.l-btn-plain span.l-btn-left {\n  padding-left: 5px;\n}\na.l-btn span span.l-btn-text {\n  position: relative;\n  display: inline-block;\n  vertical-align: top;\n  top: 4px;\n  width: auto;\n  height: 16px;\n  line-height: 16px;\n  font-size: 12px;\n  padding: 0;\n  margin: 0;\n}\na.l-btn span span.l-btn-icon-left {\n  padding: 0 0 0 20px;\n  background-position: left center;\n}\na.l-btn span span.l-btn-icon-right {\n  padding: 0 20px 0 0;\n  background-position: right center;\n}\na.l-btn span span span.l-btn-empty {\n  display: inline-block;\n  margin: 0;\n  padding: 0;\n  width: 16px;\n}\na:hover.l-btn {\n  background-position: right -24px;\n  outline: none;\n  text-decoration: none;\n}\na:hover.l-btn span.l-btn-left {\n  background-position: 0 bottom;\n}\na:hover.l-btn-plain {\n  padding: 0 5px 0 0;\n}\na:hover.l-btn-disabled {\n  background-position: right 0;\n}\na:hover.l-btn-disabled span.l-btn-left {\n  background-position: 0 -48px;\n}\na.l-btn .l-btn-focus {\n  outline: #0000FF dotted thin;\n}\na.l-btn {\n  color: #444;\n  background-image: url('images/linkbutton_bg.png');\n  background-repeat: no-repeat;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\na.l-btn span.l-btn-left {\n  background-image: url('images/linkbutton_bg.png');\n  background-repeat: no-repeat;\n}\na.l-btn-plain,\na.l-btn-plain span.l-btn-left {\n  background: transparent;\n  border: 0;\n  filter: none;\n}\na:hover.l-btn-plain {\n  background: #e2e2e2;\n  color: #000000;\n  border: 1px solid #ccc;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\na.l-btn-disabled,\na:hover.l-btn-disabled {\n  color: #444;\n  filter: alpha(opacity=50);\n}\na.l-btn-plain-disabled,\na:hover.l-btn-plain-disabled {\n  background: transparent;\n  filter: alpha(opacity=50);\n}\na.l-btn-selected,\na:hover.l-btn-selected {\n  background-position: right -24px;\n}\na.l-btn-selected span.l-btn-left,\na:hover.l-btn-selected span.l-btn-left {\n  background-position: 0 bottom;\n}\na.l-btn-plain-selected,\na:hover.l-btn-plain-selected {\n  background: #ddd;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/gray/menu.css",
    "content": ".menu {\n  position: absolute;\n  margin: 0;\n  padding: 2px;\n  border-width: 1px;\n  border-style: solid;\n  overflow: hidden;\n}\n.menu-item {\n  position: relative;\n  margin: 0;\n  padding: 0;\n  overflow: hidden;\n  white-space: nowrap;\n  cursor: pointer;\n  border-width: 1px;\n  border-style: solid;\n}\n.menu-text {\n  height: 20px;\n  line-height: 20px;\n  float: left;\n  padding-left: 28px;\n}\n.menu-icon {\n  position: absolute;\n  width: 16px;\n  height: 16px;\n  left: 2px;\n  top: 50%;\n  margin-top: -8px;\n}\n.menu-rightarrow {\n  position: absolute;\n  width: 16px;\n  height: 16px;\n  right: 0;\n  top: 50%;\n  margin-top: -8px;\n}\n.menu-line {\n  position: absolute;\n  left: 26px;\n  top: 0;\n  height: 2000px;\n  font-size: 1px;\n}\n.menu-sep {\n  margin: 3px 0px 3px 25px;\n  font-size: 1px;\n}\n.menu-active {\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.menu-item-disabled {\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n  cursor: default;\n}\n.menu-text,\n.menu-text span {\n  font-size: 12px;\n}\n.menu-shadow {\n  position: absolute;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n  background: #ccc;\n  -moz-box-shadow: 2px 2px 3px #cccccc;\n  -webkit-box-shadow: 2px 2px 3px #cccccc;\n  box-shadow: 2px 2px 3px #cccccc;\n  filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2);\n}\n.menu-rightarrow {\n  background: url('images/menu_arrows.png') no-repeat -32px center;\n}\n.menu-line {\n  border-left: 1px solid #ccc;\n  border-right: 1px solid #fff;\n}\n.menu-sep {\n  border-top: 1px solid #ccc;\n  border-bottom: 1px solid #fff;\n}\n.menu {\n  background-color: #f3f3f3;\n  border-color: #D3D3D3;\n  color: #444;\n}\n.menu-content {\n  background: #ffffff;\n}\n.menu-item {\n  border-color: transparent;\n  _border-color: #f3f3f3;\n}\n.menu-active {\n  border-color: #ccc;\n  color: #000000;\n  background: #e2e2e2;\n}\n.menu-active-disabled {\n  border-color: transparent;\n  background: transparent;\n  color: #444;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/gray/menubutton.css",
    "content": ".m-btn-downarrow {\n  display: inline-block;\n  width: 16px;\n  height: 16px;\n  line-height: 16px;\n  font-size: 12px;\n  _vertical-align: middle;\n}\na.m-btn-active {\n  background-position: bottom right;\n}\na.m-btn-active span.l-btn-left {\n  background-position: bottom left;\n}\na.m-btn-plain-active {\n  background: transparent;\n  padding: 0 5px 0 0;\n  border-width: 1px;\n  border-style: solid;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.m-btn-downarrow {\n  background: url('images/menu_arrows.png') no-repeat 2px center;\n}\na.m-btn-plain-active {\n  border-color: #ccc;\n  background-color: #e2e2e2;\n  color: #000000;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/gray/messager.css",
    "content": ".messager-body {\n  padding: 10px;\n  overflow: hidden;\n}\n.messager-button {\n  text-align: center;\n  padding-top: 10px;\n}\n.messager-icon {\n  float: left;\n  width: 32px;\n  height: 32px;\n  margin: 0 10px 10px 0;\n}\n.messager-error {\n  background: url('images/messager_icons.png') no-repeat scroll -64px 0;\n}\n.messager-info {\n  background: url('images/messager_icons.png') no-repeat scroll 0 0;\n}\n.messager-question {\n  background: url('images/messager_icons.png') no-repeat scroll -32px 0;\n}\n.messager-warning {\n  background: url('images/messager_icons.png') no-repeat scroll -96px 0;\n}\n.messager-progress {\n  padding: 10px;\n}\n.messager-p-msg {\n  margin-bottom: 5px;\n}\n.messager-body .messager-input {\n  width: 100%;\n  padding: 1px 0;\n  border: 1px solid #D3D3D3;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/gray/pagination.css",
    "content": ".pagination {\n  zoom: 1;\n}\n.pagination table {\n  float: left;\n  height: 30px;\n}\n.pagination td {\n  border: 0;\n}\n.pagination-btn-separator {\n  float: left;\n  height: 24px;\n  border-left: 1px solid #ccc;\n  border-right: 1px solid #fff;\n  margin: 3px 1px;\n}\n.pagination .pagination-num {\n  border-width: 1px;\n  border-style: solid;\n  margin: 0 2px;\n  padding: 2px;\n  width: 2em;\n  height: auto;\n}\n.pagination-page-list {\n  margin: 0px 6px;\n  padding: 1px 2px;\n  width: auto;\n  height: auto;\n  border-width: 1px;\n  border-style: solid;\n}\n.pagination-info {\n  float: right;\n  margin: 0 6px 0 0;\n  padding: 0;\n  height: 30px;\n  line-height: 30px;\n  font-size: 12px;\n}\n.pagination span {\n  font-size: 12px;\n}\na.pagination-link {\n  padding: 1px;\n}\na.pagination-link span.l-btn-left {\n  padding-left: 0;\n}\na.pagination-link span span.l-btn-text {\n  width: 24px;\n  text-align: center;\n}\na:hover.pagination-link {\n  padding: 0;\n}\n.pagination-first {\n  background: url('images/pagination_icons.png') no-repeat 0 center;\n}\n.pagination-prev {\n  background: url('images/pagination_icons.png') no-repeat -16px center;\n}\n.pagination-next {\n  background: url('images/pagination_icons.png') no-repeat -32px center;\n}\n.pagination-last {\n  background: url('images/pagination_icons.png') no-repeat -48px center;\n}\n.pagination-load {\n  background: url('images/pagination_icons.png') no-repeat -64px center;\n}\n.pagination-loading {\n  background: url('images/loading.gif') no-repeat center center;\n}\n.pagination-page-list,\n.pagination .pagination-num {\n  border-color: #D3D3D3;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/gray/panel.css",
    "content": ".panel {\n  overflow: hidden;\n  text-align: left;\n  margin: 0;\n  border: 0;\n  -moz-border-radius: 0 0 0 0;\n  -webkit-border-radius: 0 0 0 0;\n  border-radius: 0 0 0 0;\n}\n.panel-header,\n.panel-body {\n  border-width: 1px;\n  border-style: solid;\n}\n.panel-header {\n  padding: 5px;\n  position: relative;\n}\n.panel-title {\n  background: url('images/blank.gif') no-repeat;\n}\n.panel-header-noborder {\n  border-width: 0 0 1px 0;\n}\n.panel-body {\n  overflow: auto;\n  border-top-width: 0;\n  padding: 0;\n}\n.panel-body-noheader {\n  border-top-width: 1px;\n}\n.panel-body-noborder {\n  border-width: 0px;\n}\n.panel-with-icon {\n  padding-left: 18px;\n}\n.panel-icon,\n.panel-tool {\n  position: absolute;\n  top: 50%;\n  margin-top: -8px;\n  height: 16px;\n  overflow: hidden;\n}\n.panel-icon {\n  left: 5px;\n  width: 16px;\n}\n.panel-tool {\n  right: 5px;\n  width: auto;\n}\n.panel-tool a {\n  display: inline-block;\n  width: 16px;\n  height: 16px;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n  margin: 0 0 0 2px;\n  vertical-align: top;\n}\n.panel-tool a:hover {\n  opacity: 1;\n  filter: alpha(opacity=100);\n  background-color: #e2e2e2;\n  -moz-border-radius: 3px 3px 3px 3px;\n  -webkit-border-radius: 3px 3px 3px 3px;\n  border-radius: 3px 3px 3px 3px;\n}\n.panel-loading {\n  padding: 11px 0px 10px 30px;\n}\n.panel-noscroll {\n  overflow: hidden;\n}\n.panel-fit,\n.panel-fit body {\n  height: 100%;\n  margin: 0;\n  padding: 0;\n  border: 0;\n  overflow: hidden;\n}\n.panel-loading {\n  background: url('images/loading.gif') no-repeat 10px 10px;\n}\n.panel-tool-close {\n  background: url('images/panel_tools.png') no-repeat -16px 0px;\n}\n.panel-tool-min {\n  background: url('images/panel_tools.png') no-repeat 0px 0px;\n}\n.panel-tool-max {\n  background: url('images/panel_tools.png') no-repeat 0px -16px;\n}\n.panel-tool-restore {\n  background: url('images/panel_tools.png') no-repeat -16px -16px;\n}\n.panel-tool-collapse {\n  background: url('images/panel_tools.png') no-repeat -32px 0;\n}\n.panel-tool-expand {\n  background: url('images/panel_tools.png') no-repeat -32px -16px;\n}\n.panel-header,\n.panel-body {\n  border-color: #D3D3D3;\n}\n.panel-header {\n  background-color: #f3f3f3;\n  background: -webkit-linear-gradient(top,#F8F8F8 0,#eeeeee 100%);\n  background: -moz-linear-gradient(top,#F8F8F8 0,#eeeeee 100%);\n  background: -o-linear-gradient(top,#F8F8F8 0,#eeeeee 100%);\n  background: linear-gradient(to bottom,#F8F8F8 0,#eeeeee 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#F8F8F8,endColorstr=#eeeeee,GradientType=0);\n}\n.panel-body {\n  background-color: #ffffff;\n  color: #000000;\n  font-size: 12px;\n}\n.panel-title {\n  font-size: 12px;\n  font-weight: bold;\n  color: #575765;\n  height: 16px;\n  line-height: 16px;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/gray/progressbar.css",
    "content": ".progressbar {\n  border-width: 1px;\n  border-style: solid;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n  overflow: hidden;\n  position: relative;\n}\n.progressbar-text {\n  text-align: center;\n  position: absolute;\n}\n.progressbar-value {\n  position: relative;\n  overflow: hidden;\n  width: 0;\n  -moz-border-radius: 5px 0 0 5px;\n  -webkit-border-radius: 5px 0 0 5px;\n  border-radius: 5px 0 0 5px;\n}\n.progressbar {\n  border-color: #D3D3D3;\n}\n.progressbar-text {\n  color: #000000;\n  font-size: 12px;\n}\n.progressbar-value .progressbar-text {\n  background-color: #0092DC;\n  color: #fff;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/gray/propertygrid.css",
    "content": ".propertygrid .datagrid-view1 .datagrid-body td {\n  padding-bottom: 1px;\n  border-width: 0 1px 0 0;\n}\n.propertygrid .datagrid-group {\n  height: 21px;\n  overflow: hidden;\n  border-width: 0 0 1px 0;\n  border-style: solid;\n}\n.propertygrid .datagrid-group span {\n  font-weight: bold;\n}\n.propertygrid .datagrid-view1 .datagrid-body td {\n  border-color: #ddd;\n}\n.propertygrid .datagrid-view1 .datagrid-group {\n  border-color: #f3f3f3;\n}\n.propertygrid .datagrid-view2 .datagrid-group {\n  border-color: #ddd;\n}\n.propertygrid .datagrid-group,\n.propertygrid .datagrid-view1 .datagrid-body,\n.propertygrid .datagrid-view1 .datagrid-row-over,\n.propertygrid .datagrid-view1 .datagrid-row-selected {\n  background: #f3f3f3;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/gray/searchbox.css",
    "content": ".searchbox {\n  display: inline-block;\n  white-space: nowrap;\n  margin: 0;\n  padding: 0;\n  border-width: 1px;\n  border-style: solid;\n  overflow: hidden;\n}\n.searchbox .searchbox-text {\n  font-size: 12px;\n  border: 0;\n  margin: 0;\n  padding: 0;\n  line-height: 20px;\n  height: 20px;\n  *margin-top: -1px;\n  *height: 18px;\n  *line-height: 18px;\n  _height: 18px;\n  _line-height: 18px;\n  vertical-align: baseline;\n}\n.searchbox .searchbox-prompt {\n  font-size: 12px;\n  color: #ccc;\n}\n.searchbox-button {\n  width: 18px;\n  height: 20px;\n  overflow: hidden;\n  display: inline-block;\n  vertical-align: top;\n  cursor: pointer;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.searchbox-button-hover {\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n}\n.searchbox a.l-btn-plain {\n  height: 20px;\n  border: 0;\n  padding: 0 6px 0 0;\n  vertical-align: top;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n  -moz-border-radius: 0 0 0 0;\n  -webkit-border-radius: 0 0 0 0;\n  border-radius: 0 0 0 0;\n}\n.searchbox a.l-btn .l-btn-left {\n  padding: 0 0 0 4px;\n}\n.searchbox a.l-btn .l-btn-text {\n  position: static;\n  vertical-align: top;\n}\n.searchbox a.l-btn-plain:hover {\n  border: 0;\n  padding: 0 6px 0 0;\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n  -moz-border-radius: 0 0 0 0;\n  -webkit-border-radius: 0 0 0 0;\n  border-radius: 0 0 0 0;\n}\n.searchbox a.m-btn-plain-active {\n  -moz-border-radius: 0 0 0 0;\n  -webkit-border-radius: 0 0 0 0;\n  border-radius: 0 0 0 0;\n}\n.searchbox-button {\n  background: url('images/searchbox_button.png') no-repeat center center;\n}\n.searchbox {\n  border-color: #D3D3D3;\n  background-color: #fff;\n}\n.searchbox a.l-btn-plain {\n  background: #f3f3f3;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/gray/slider.css",
    "content": ".slider-disabled {\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n}\n.slider-h {\n  height: 22px;\n}\n.slider-v {\n  width: 22px;\n}\n.slider-inner {\n  position: relative;\n  height: 6px;\n  top: 7px;\n  border-width: 1px;\n  border-style: solid;\n  border-radius: 5px;\n}\n.slider-handle {\n  position: absolute;\n  display: block;\n  outline: none;\n  width: 20px;\n  height: 20px;\n  top: -7px;\n  margin-left: -10px;\n}\n.slider-tip {\n  position: absolute;\n  display: inline-block;\n  line-height: 12px;\n  font-size: 12px;\n  white-space: nowrap;\n  top: -22px;\n}\n.slider-rule {\n  position: relative;\n  top: 15px;\n}\n.slider-rule span {\n  position: absolute;\n  display: inline-block;\n  font-size: 0;\n  height: 5px;\n  border-width: 0 0 0 1px;\n  border-style: solid;\n}\n.slider-rulelabel {\n  position: relative;\n  top: 20px;\n}\n.slider-rulelabel span {\n  position: absolute;\n  display: inline-block;\n  font-size: 12px;\n}\n.slider-v .slider-inner {\n  width: 6px;\n  left: 7px;\n  top: 0;\n  float: left;\n}\n.slider-v .slider-handle {\n  left: 3px;\n  margin-top: -10px;\n}\n.slider-v .slider-tip {\n  left: -10px;\n  margin-top: -6px;\n}\n.slider-v .slider-rule {\n  float: left;\n  top: 0;\n  left: 16px;\n}\n.slider-v .slider-rule span {\n  width: 5px;\n  height: 'auto';\n  border-left: 0;\n  border-width: 1px 0 0 0;\n  border-style: solid;\n}\n.slider-v .slider-rulelabel {\n  float: left;\n  top: 0;\n  left: 23px;\n}\n.slider-handle {\n  background: url('images/slider_handle.png') no-repeat;\n}\n.slider-inner {\n  border-color: #D3D3D3;\n  background: #f3f3f3;\n}\n.slider-rule span {\n  border-color: #D3D3D3;\n}\n.slider-rulelabel span {\n  color: #000000;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/gray/spinner.css",
    "content": ".spinner {\n  display: inline-block;\n  white-space: nowrap;\n  margin: 0;\n  padding: 0;\n  border-width: 1px;\n  border-style: solid;\n  overflow: hidden;\n  vertical-align: middle;\n}\n.spinner .spinner-text {\n  font-size: 12px;\n  border: 0px;\n  line-height: 20px;\n  height: 20px;\n  margin: 0;\n  padding: 0 2px;\n  *margin-top: -1px;\n  *height: 18px;\n  *line-height: 18px;\n  _height: 18px;\n  _line-height: 18px;\n  vertical-align: baseline;\n}\n.spinner-arrow {\n  display: inline-block;\n  overflow: hidden;\n  vertical-align: top;\n  margin: 0;\n  padding: 0;\n}\n.spinner-arrow-up,\n.spinner-arrow-down {\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n  display: block;\n  font-size: 1px;\n  width: 18px;\n  height: 10px;\n}\n.spinner-arrow-hover {\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n}\n.spinner-arrow-up {\n  background: url('images/spinner_arrows.png') no-repeat 1px center;\n}\n.spinner-arrow-down {\n  background: url('images/spinner_arrows.png') no-repeat -15px center;\n}\n.spinner {\n  border-color: #D3D3D3;\n}\n.spinner-arrow {\n  background-color: #f3f3f3;\n}\n.spinner-arrow-hover {\n  background-color: #e2e2e2;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/gray/splitbutton.css",
    "content": ".s-btn-downarrow {\n  display: inline-block;\n  margin: 0 0 0 4px;\n  padding: 0 0 0 1px;\n  width: 14px;\n  height: 16px;\n  line-height: 16px;\n  border-width: 0;\n  border-style: solid;\n  font-size: 12px;\n  _vertical-align: middle;\n}\na.s-btn-active {\n  background-position: bottom right;\n}\na.s-btn-active span.l-btn-left {\n  background-position: bottom left;\n}\na.s-btn-plain-active {\n  background: transparent;\n  padding: 0 5px 0 0;\n  border-width: 1px;\n  border-style: solid;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.s-btn-downarrow {\n  background: url('images/menu_arrows.png') no-repeat 2px center;\n  border-color: #bfbfbf;\n}\na:hover.l-btn .s-btn-downarrow,\na.s-btn-active .s-btn-downarrow,\na.s-btn-plain-active .s-btn-downarrow {\n  background-position: 1px center;\n  padding: 0;\n  border-width: 0 0 0 1px;\n}\na.s-btn-plain-active {\n  border-color: #ccc;\n  background-color: #e2e2e2;\n  color: #000000;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/gray/tabs.css",
    "content": ".tabs-container {\n  overflow: hidden;\n}\n.tabs-header {\n  border-width: 1px;\n  border-style: solid;\n  border-bottom-width: 0;\n  position: relative;\n  padding: 0;\n  padding-top: 2px;\n  overflow: hidden;\n}\n.tabs-header-plain {\n  border: 0;\n  background: transparent;\n}\n.tabs-scroller-left,\n.tabs-scroller-right {\n  position: absolute;\n  top: auto;\n  bottom: 0;\n  width: 18px;\n  font-size: 1px;\n  display: none;\n  cursor: pointer;\n  border-width: 1px;\n  border-style: solid;\n}\n.tabs-scroller-left {\n  left: 0;\n}\n.tabs-scroller-right {\n  right: 0;\n}\n.tabs-tool {\n  position: absolute;\n  bottom: 0;\n  padding: 1px;\n  overflow: hidden;\n  border-width: 1px;\n  border-style: solid;\n}\n.tabs-header-plain .tabs-tool {\n  padding: 0 1px;\n}\n.tabs-wrap {\n  position: relative;\n  left: 0;\n  overflow: hidden;\n  width: 100%;\n  margin: 0;\n  padding: 0;\n}\n.tabs-scrolling {\n  margin-left: 18px;\n  margin-right: 18px;\n}\n.tabs-disabled {\n  opacity: 0.3;\n  filter: alpha(opacity=30);\n}\n.tabs {\n  list-style-type: none;\n  height: 26px;\n  margin: 0px;\n  padding: 0px;\n  padding-left: 4px;\n  width: 5000px;\n  border-style: solid;\n  border-width: 0 0 1px 0;\n}\n.tabs li {\n  float: left;\n  display: inline-block;\n  margin: 0 4px -1px 0;\n  padding: 0;\n  position: relative;\n  border: 0;\n}\n.tabs li a.tabs-inner {\n  display: inline-block;\n  text-decoration: none;\n  margin: 0;\n  padding: 0 10px;\n  height: 25px;\n  line-height: 25px;\n  text-align: center;\n  white-space: nowrap;\n  border-width: 1px;\n  border-style: solid;\n  -moz-border-radius: 5px 5px 0 0;\n  -webkit-border-radius: 5px 5px 0 0;\n  border-radius: 5px 5px 0 0;\n}\n.tabs li.tabs-selected a.tabs-inner {\n  font-weight: bold;\n  outline: none;\n}\n.tabs li.tabs-selected a:hover.tabs-inner {\n  cursor: default;\n  pointer: default;\n}\n.tabs li a.tabs-close,\n.tabs-p-tool {\n  position: absolute;\n  font-size: 1px;\n  display: block;\n  height: 12px;\n  padding: 0;\n  top: 50%;\n  margin-top: -6px;\n  overflow: hidden;\n}\n.tabs li a.tabs-close {\n  width: 12px;\n  right: 5px;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.tabs-p-tool {\n  right: 16px;\n}\n.tabs-p-tool a {\n  display: inline-block;\n  font-size: 1px;\n  width: 12px;\n  height: 12px;\n  margin: 0;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.tabs li a:hover.tabs-close,\n.tabs-p-tool a:hover {\n  opacity: 1;\n  filter: alpha(opacity=100);\n  cursor: hand;\n  cursor: pointer;\n}\n.tabs-with-icon {\n  padding-left: 18px;\n}\n.tabs-icon {\n  position: absolute;\n  width: 16px;\n  height: 16px;\n  left: 10px;\n  top: 50%;\n  margin-top: -8px;\n}\n.tabs-title {\n  font-size: 12px;\n}\n.tabs-closable {\n  padding-right: 8px;\n}\n.tabs-panels {\n  margin: 0px;\n  padding: 0px;\n  border-width: 1px;\n  border-style: solid;\n  border-top-width: 0;\n  overflow: hidden;\n}\n.tabs-header-bottom {\n  border-width: 0 1px 1px 1px;\n  padding: 0 0 2px 0;\n}\n.tabs-header-bottom .tabs {\n  border-width: 1px 0 0 0;\n}\n.tabs-header-bottom .tabs li {\n  margin: -1px 4px 0 0;\n}\n.tabs-header-bottom .tabs li a.tabs-inner {\n  -moz-border-radius: 0 0 5px 5px;\n  -webkit-border-radius: 0 0 5px 5px;\n  border-radius: 0 0 5px 5px;\n}\n.tabs-header-bottom .tabs-tool {\n  top: 0;\n}\n.tabs-header-bottom .tabs-scroller-left,\n.tabs-header-bottom .tabs-scroller-right {\n  top: 0;\n  bottom: auto;\n}\n.tabs-panels-top {\n  border-width: 1px 1px 0 1px;\n}\n.tabs-header-left {\n  float: left;\n  border-width: 1px 0 1px 1px;\n  padding: 0;\n}\n.tabs-header-right {\n  float: right;\n  border-width: 1px 1px 1px 0;\n  padding: 0;\n}\n.tabs-header-left .tabs-wrap,\n.tabs-header-right .tabs-wrap {\n  height: 100%;\n}\n.tabs-header-left .tabs {\n  height: 100%;\n  padding: 4px 0 0 4px;\n  border-width: 0 1px 0 0;\n}\n.tabs-header-right .tabs {\n  height: 100%;\n  padding: 4px 4px 0 0;\n  border-width: 0 0 0 1px;\n}\n.tabs-header-left .tabs li,\n.tabs-header-right .tabs li {\n  display: block;\n  width: 100%;\n  position: relative;\n}\n.tabs-header-left .tabs li {\n  left: auto;\n  right: 0;\n  margin: 0 -1px 4px 0;\n  float: right;\n}\n.tabs-header-right .tabs li {\n  left: 0;\n  right: auto;\n  margin: 0 0 4px -1px;\n  float: left;\n}\n.tabs-header-left .tabs li a.tabs-inner {\n  display: block;\n  text-align: left;\n  -moz-border-radius: 5px 0 0 5px;\n  -webkit-border-radius: 5px 0 0 5px;\n  border-radius: 5px 0 0 5px;\n}\n.tabs-header-right .tabs li a.tabs-inner {\n  display: block;\n  text-align: left;\n  -moz-border-radius: 0 5px 5px 0;\n  -webkit-border-radius: 0 5px 5px 0;\n  border-radius: 0 5px 5px 0;\n}\n.tabs-panels-right {\n  float: right;\n  border-width: 1px 1px 1px 0;\n}\n.tabs-panels-left {\n  float: left;\n  border-width: 1px 0 1px 1px;\n}\n.tabs-header-noborder,\n.tabs-panels-noborder {\n  border: 0px;\n}\n.tabs-header-plain {\n  border: 0px;\n  background: transparent;\n}\n.tabs-scroller-left {\n  background: #f3f3f3 url('images/tabs_icons.png') no-repeat 1px center;\n}\n.tabs-scroller-right {\n  background: #f3f3f3 url('images/tabs_icons.png') no-repeat -15px center;\n}\n.tabs li a.tabs-close {\n  background: url('images/tabs_icons.png') no-repeat -34px center;\n}\n.tabs li a.tabs-inner:hover {\n  background: #e2e2e2;\n  color: #000000;\n  filter: none;\n}\n.tabs li.tabs-selected a.tabs-inner {\n  background-color: #ffffff;\n  color: #575765;\n  background: -webkit-linear-gradient(top,#F8F8F8 0,#ffffff 100%);\n  background: -moz-linear-gradient(top,#F8F8F8 0,#ffffff 100%);\n  background: -o-linear-gradient(top,#F8F8F8 0,#ffffff 100%);\n  background: linear-gradient(to bottom,#F8F8F8 0,#ffffff 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#F8F8F8,endColorstr=#ffffff,GradientType=0);\n}\n.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner {\n  background: -webkit-linear-gradient(top,#ffffff 0,#F8F8F8 100%);\n  background: -moz-linear-gradient(top,#ffffff 0,#F8F8F8 100%);\n  background: -o-linear-gradient(top,#ffffff 0,#F8F8F8 100%);\n  background: linear-gradient(to bottom,#ffffff 0,#F8F8F8 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#F8F8F8,GradientType=0);\n}\n.tabs-header-left .tabs li.tabs-selected a.tabs-inner {\n  background: -webkit-linear-gradient(left,#F8F8F8 0,#ffffff 100%);\n  background: -moz-linear-gradient(left,#F8F8F8 0,#ffffff 100%);\n  background: -o-linear-gradient(left,#F8F8F8 0,#ffffff 100%);\n  background: linear-gradient(to right,#F8F8F8 0,#ffffff 100%);\n  background-repeat: repeat-y;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#F8F8F8,endColorstr=#ffffff,GradientType=1);\n}\n.tabs-header-right .tabs li.tabs-selected a.tabs-inner {\n  background: -webkit-linear-gradient(left,#ffffff 0,#F8F8F8 100%);\n  background: -moz-linear-gradient(left,#ffffff 0,#F8F8F8 100%);\n  background: -o-linear-gradient(left,#ffffff 0,#F8F8F8 100%);\n  background: linear-gradient(to right,#ffffff 0,#F8F8F8 100%);\n  background-repeat: repeat-y;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#F8F8F8,GradientType=1);\n}\n.tabs li a.tabs-inner {\n  color: #575765;\n  background-color: #f3f3f3;\n  background: -webkit-linear-gradient(top,#F8F8F8 0,#eeeeee 100%);\n  background: -moz-linear-gradient(top,#F8F8F8 0,#eeeeee 100%);\n  background: -o-linear-gradient(top,#F8F8F8 0,#eeeeee 100%);\n  background: linear-gradient(to bottom,#F8F8F8 0,#eeeeee 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#F8F8F8,endColorstr=#eeeeee,GradientType=0);\n}\n.tabs-header,\n.tabs-tool {\n  background-color: #f3f3f3;\n}\n.tabs-header-plain {\n  background: transparent;\n}\n.tabs-header,\n.tabs-scroller-left,\n.tabs-scroller-right,\n.tabs-tool,\n.tabs,\n.tabs-panels,\n.tabs li a.tabs-inner,\n.tabs li.tabs-selected a.tabs-inner,\n.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner,\n.tabs-header-left .tabs li.tabs-selected a.tabs-inner,\n.tabs-header-right .tabs li.tabs-selected a.tabs-inner {\n  border-color: #D3D3D3;\n}\n.tabs-p-tool a:hover,\n.tabs li a:hover.tabs-close,\n.tabs-scroller-over {\n  background-color: #e2e2e2;\n}\n.tabs li.tabs-selected a.tabs-inner {\n  border-bottom: 1px solid #ffffff;\n}\n.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner {\n  border-top: 1px solid #ffffff;\n}\n.tabs-header-left .tabs li.tabs-selected a.tabs-inner {\n  border-right: 1px solid #ffffff;\n}\n.tabs-header-right .tabs li.tabs-selected a.tabs-inner {\n  border-left: 1px solid #ffffff;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/gray/tooltip.css",
    "content": ".tooltip {\n  position: absolute;\n  display: none;\n  z-index: 9900000;\n  outline: none;\n  opacity: 1;\n  filter: alpha(opacity=100);\n  padding: 5px;\n  border-width: 1px;\n  border-style: solid;\n  border-radius: 5px;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.tooltip-content {\n  font-size: 12px;\n}\n.tooltip-arrow-outer,\n.tooltip-arrow {\n  position: absolute;\n  width: 0;\n  height: 0;\n  line-height: 0;\n  font-size: 0;\n  border-style: solid;\n  border-width: 6px;\n  border-color: transparent;\n  _border-color: tomato;\n  _filter: chroma(color=tomato);\n}\n.tooltip-right .tooltip-arrow-outer {\n  left: 0;\n  top: 50%;\n  margin: -6px 0 0 -13px;\n}\n.tooltip-right .tooltip-arrow {\n  left: 0;\n  top: 50%;\n  margin: -6px 0 0 -12px;\n}\n.tooltip-left .tooltip-arrow-outer {\n  right: 0;\n  top: 50%;\n  margin: -6px -13px 0 0;\n}\n.tooltip-left .tooltip-arrow {\n  right: 0;\n  top: 50%;\n  margin: -6px -12px 0 0;\n}\n.tooltip-top .tooltip-arrow-outer {\n  bottom: 0;\n  left: 50%;\n  margin: 0 0 -13px -6px;\n}\n.tooltip-top .tooltip-arrow {\n  bottom: 0;\n  left: 50%;\n  margin: 0 0 -12px -6px;\n}\n.tooltip-bottom .tooltip-arrow-outer {\n  top: 0;\n  left: 50%;\n  margin: -13px 0 0 -6px;\n}\n.tooltip-bottom .tooltip-arrow {\n  top: 0;\n  left: 50%;\n  margin: -12px 0 0 -6px;\n}\n.tooltip {\n  background-color: #ffffff;\n  border-color: #D3D3D3;\n  color: #000000;\n}\n.tooltip-right .tooltip-arrow-outer {\n  border-right-color: #D3D3D3;\n}\n.tooltip-right .tooltip-arrow {\n  border-right-color: #ffffff;\n}\n.tooltip-left .tooltip-arrow-outer {\n  border-left-color: #D3D3D3;\n}\n.tooltip-left .tooltip-arrow {\n  border-left-color: #ffffff;\n}\n.tooltip-top .tooltip-arrow-outer {\n  border-top-color: #D3D3D3;\n}\n.tooltip-top .tooltip-arrow {\n  border-top-color: #ffffff;\n}\n.tooltip-bottom .tooltip-arrow-outer {\n  border-bottom-color: #D3D3D3;\n}\n.tooltip-bottom .tooltip-arrow {\n  border-bottom-color: #ffffff;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/gray/tree.css",
    "content": ".tree {\n  margin: 0;\n  padding: 0;\n  list-style-type: none;\n}\n.tree li {\n  white-space: nowrap;\n}\n.tree li ul {\n  list-style-type: none;\n  margin: 0;\n  padding: 0;\n}\n.tree-node {\n  height: 18px;\n  white-space: nowrap;\n  cursor: pointer;\n}\n.tree-hit {\n  cursor: pointer;\n}\n.tree-expanded,\n.tree-collapsed,\n.tree-folder,\n.tree-file,\n.tree-checkbox,\n.tree-indent {\n  display: inline-block;\n  width: 16px;\n  height: 18px;\n  vertical-align: top;\n  overflow: hidden;\n}\n.tree-expanded {\n  background: url('images/tree_icons.png') no-repeat -18px 0px;\n}\n.tree-expanded-hover {\n  background: url('images/tree_icons.png') no-repeat -50px 0px;\n}\n.tree-collapsed {\n  background: url('images/tree_icons.png') no-repeat 0px 0px;\n}\n.tree-collapsed-hover {\n  background: url('images/tree_icons.png') no-repeat -32px 0px;\n}\n.tree-lines .tree-expanded,\n.tree-lines .tree-root-first .tree-expanded {\n  background: url('images/tree_icons.png') no-repeat -144px 0;\n}\n.tree-lines .tree-collapsed,\n.tree-lines .tree-root-first .tree-collapsed {\n  background: url('images/tree_icons.png') no-repeat -128px 0;\n}\n.tree-lines .tree-node-last .tree-expanded,\n.tree-lines .tree-root-one .tree-expanded {\n  background: url('images/tree_icons.png') no-repeat -80px 0;\n}\n.tree-lines .tree-node-last .tree-collapsed,\n.tree-lines .tree-root-one .tree-collapsed {\n  background: url('images/tree_icons.png') no-repeat -64px 0;\n}\n.tree-line {\n  background: url('images/tree_icons.png') no-repeat -176px 0;\n}\n.tree-join {\n  background: url('images/tree_icons.png') no-repeat -192px 0;\n}\n.tree-joinbottom {\n  background: url('images/tree_icons.png') no-repeat -160px 0;\n}\n.tree-folder {\n  background: url('images/tree_icons.png') no-repeat -208px 0;\n}\n.tree-folder-open {\n  background: url('images/tree_icons.png') no-repeat -224px 0;\n}\n.tree-file {\n  background: url('images/tree_icons.png') no-repeat -240px 0;\n}\n.tree-loading {\n  background: url('images/loading.gif') no-repeat center center;\n}\n.tree-checkbox0 {\n  background: url('images/tree_icons.png') no-repeat -208px -18px;\n}\n.tree-checkbox1 {\n  background: url('images/tree_icons.png') no-repeat -224px -18px;\n}\n.tree-checkbox2 {\n  background: url('images/tree_icons.png') no-repeat -240px -18px;\n}\n.tree-title {\n  font-size: 12px;\n  display: inline-block;\n  text-decoration: none;\n  vertical-align: top;\n  white-space: nowrap;\n  padding: 0 2px;\n  height: 18px;\n  line-height: 18px;\n}\n.tree-node-proxy {\n  font-size: 12px;\n  line-height: 20px;\n  padding: 0 2px 0 20px;\n  border-width: 1px;\n  border-style: solid;\n  z-index: 9900000;\n}\n.tree-dnd-icon {\n  display: inline-block;\n  position: absolute;\n  width: 16px;\n  height: 18px;\n  left: 2px;\n  top: 50%;\n  margin-top: -9px;\n}\n.tree-dnd-yes {\n  background: url('images/tree_icons.png') no-repeat -256px 0;\n}\n.tree-dnd-no {\n  background: url('images/tree_icons.png') no-repeat -256px -18px;\n}\n.tree-node-top {\n  border-top: 1px dotted red;\n}\n.tree-node-bottom {\n  border-bottom: 1px dotted red;\n}\n.tree-node-append .tree-title {\n  border: 1px dotted red;\n}\n.tree-editor {\n  border: 1px solid #ccc;\n  font-size: 12px;\n  height: 14px !important;\n  height: 18px;\n  line-height: 14px;\n  padding: 1px 2px;\n  width: 80px;\n  position: absolute;\n  top: 0;\n}\n.tree-node-proxy {\n  background-color: #ffffff;\n  color: #000000;\n  border-color: #D3D3D3;\n}\n.tree-node-hover {\n  background: #e2e2e2;\n  color: #000000;\n}\n.tree-node-selected {\n  background: #0092DC;\n  color: #fff;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/gray/validatebox.css",
    "content": ".validatebox-invalid {\n  background-image: url('images/validatebox_warning.png');\n  background-repeat: no-repeat;\n  background-position: right center;\n  border-color: #ffa8a8;\n  background-color: #fff3f3;\n  color: #000;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/gray/window.css",
    "content": ".window {\n  overflow: hidden;\n  padding: 5px;\n  border-width: 1px;\n  border-style: solid;\n}\n.window .window-header {\n  background: transparent;\n  padding: 0px 0px 6px 0px;\n}\n.window .window-body {\n  border-width: 1px;\n  border-style: solid;\n  border-top-width: 0px;\n}\n.window .window-body-noheader {\n  border-top-width: 1px;\n}\n.window .window-header .panel-icon,\n.window .window-header .panel-tool {\n  top: 50%;\n  margin-top: -11px;\n}\n.window .window-header .panel-icon {\n  left: 1px;\n}\n.window .window-header .panel-tool {\n  right: 1px;\n}\n.window .window-header .panel-with-icon {\n  padding-left: 18px;\n}\n.window-proxy {\n  position: absolute;\n  overflow: hidden;\n}\n.window-proxy-mask {\n  position: absolute;\n  filter: alpha(opacity=5);\n  opacity: 0.05;\n}\n.window-mask {\n  position: absolute;\n  left: 0;\n  top: 0;\n  width: 100%;\n  height: 100%;\n  filter: alpha(opacity=40);\n  opacity: 0.40;\n  font-size: 1px;\n  *zoom: 1;\n  overflow: hidden;\n}\n.window,\n.window-shadow {\n  position: absolute;\n  -moz-border-radius: 5px 5px 5px 5px;\n  -webkit-border-radius: 5px 5px 5px 5px;\n  border-radius: 5px 5px 5px 5px;\n}\n.window-shadow {\n  background: #ccc;\n  -moz-box-shadow: 2px 2px 3px #cccccc;\n  -webkit-box-shadow: 2px 2px 3px #cccccc;\n  box-shadow: 2px 2px 3px #cccccc;\n  filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2);\n}\n.window,\n.window .window-body {\n  border-color: #D3D3D3;\n}\n.window {\n  background-color: #f3f3f3;\n  background: -webkit-linear-gradient(top,#F8F8F8 0,#eeeeee 20%);\n  background: -moz-linear-gradient(top,#F8F8F8 0,#eeeeee 20%);\n  background: -o-linear-gradient(top,#F8F8F8 0,#eeeeee 20%);\n  background: linear-gradient(to bottom,#F8F8F8 0,#eeeeee 20%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#F8F8F8,endColorstr=#eeeeee,GradientType=0);\n}\n.window-proxy {\n  border: 1px dashed #D3D3D3;\n}\n.window-proxy-mask,\n.window-mask {\n  background: #ccc;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/icon.css",
    "content": ".icon-blank{\n\tbackground:url('icons/blank.gif') no-repeat center center;\n}\n.icon-add{\n\tbackground:url('icons/edit_add.png') no-repeat center center;\n}\n.icon-edit{\n\tbackground:url('icons/pencil.png') no-repeat center center;\n}\n.icon-remove{\n\tbackground:url('icons/edit_remove.png') no-repeat center center;\n}\n.icon-save{\n\tbackground:url('icons/filesave.png') no-repeat center center;\n}\n.icon-cut{\n\tbackground:url('icons/cut.png') no-repeat center center;\n}\n.icon-ok{\n\tbackground:url('icons/ok.png') no-repeat center center;\n}\n.icon-no{\n\tbackground:url('icons/no.png') no-repeat center center;\n}\n.icon-cancel{\n\tbackground:url('icons/cancel.png') no-repeat center center;\n}\n.icon-reload{\n\tbackground:url('icons/reload.png') no-repeat center center;\n}\n.icon-search{\n\tbackground:url('icons/search.png') no-repeat center center;\n}\n.icon-print{\n\tbackground:url('icons/print.png') no-repeat center center;\n}\n.icon-help{\n\tbackground:url('icons/help.png') no-repeat center center;\n}\n.icon-undo{\n\tbackground:url('icons/undo.png') no-repeat center center;\n}\n.icon-redo{\n\tbackground:url('icons/redo.png') no-repeat center center;\n}\n.icon-back{\n\tbackground:url('icons/back.png') no-repeat center center;\n}\n.icon-sum{\n\tbackground:url('icons/sum.png') no-repeat center center;\n}\n.icon-tip{\n\tbackground:url('icons/tip.png') no-repeat center center;\n}\n.icon-filter{\n\tbackground:url('icons/filter.png') no-repeat center center;\n}\n.icon-excel{\n    background:url('icons/Excel.png') no-repeat center center;\n    background-size:20px 20px;\n}\n.icon-alert{\n    background:url('icons/alert-red.png') no-repeat center center;\n}\n.icon-mini-add{\n\tbackground:url('icons/mini_add.png') no-repeat center center;\n}\n.icon-mini-edit{\n\tbackground:url('icons/mini_edit.png') no-repeat center center;\n}\n.icon-mini-refresh{\n\tbackground:url('icons/mini_refresh.png') no-repeat center center;\n}"
  },
  {
    "path": "src/main/webapp/ui/themes/metro/accordion.css",
    "content": ".accordion {\n  overflow: hidden;\n  border-width: 1px;\n  border-style: solid;\n}\n.accordion .accordion-header {\n  border-width: 0 0 1px;\n  cursor: pointer;\n}\n.accordion .accordion-body {\n  border-width: 0 0 1px;\n}\n.accordion-noborder {\n  border-width: 0;\n}\n.accordion-noborder .accordion-header {\n  border-width: 0 0 1px;\n}\n.accordion-noborder .accordion-body {\n  border-width: 0 0 1px;\n}\n.accordion-collapse {\n  background: url('images/accordion_arrows.png') no-repeat 0 0;\n}\n.accordion-expand {\n  background: url('images/accordion_arrows.png') no-repeat -16px 0;\n}\n.accordion {\n  background: #fff;\n  border-color: #ddd;\n}\n.accordion .accordion-header {\n  background: #ffffff;\n  filter: none;\n}\n.accordion .accordion-header-selected {\n  background: #CCE6FF;\n}\n.accordion .accordion-header-selected .panel-title {\n  color: #000;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/metro/calendar.css",
    "content": ".calendar {\n  border-width: 1px;\n  border-style: solid;\n  padding: 1px;\n  overflow: hidden;\n}\n.calendar table {\n  border-collapse: separate;\n  font-size: 12px;\n  width: 100%;\n  height: 100%;\n}\n.calendar table td,\n.calendar table th {\n  font-size: 12px;\n}\n.calendar-noborder {\n  border: 0;\n}\n.calendar-header {\n  position: relative;\n  height: 22px;\n}\n.calendar-title {\n  text-align: center;\n  height: 22px;\n}\n.calendar-title span {\n  position: relative;\n  display: inline-block;\n  top: 2px;\n  padding: 0 3px;\n  height: 18px;\n  line-height: 18px;\n  font-size: 12px;\n  cursor: pointer;\n  -moz-border-radius: 0px 0px 0px 0px;\n  -webkit-border-radius: 0px 0px 0px 0px;\n  border-radius: 0px 0px 0px 0px;\n}\n.calendar-prevmonth,\n.calendar-nextmonth,\n.calendar-prevyear,\n.calendar-nextyear {\n  position: absolute;\n  top: 50%;\n  margin-top: -7px;\n  width: 14px;\n  height: 14px;\n  cursor: pointer;\n  font-size: 1px;\n  -moz-border-radius: 0px 0px 0px 0px;\n  -webkit-border-radius: 0px 0px 0px 0px;\n  border-radius: 0px 0px 0px 0px;\n}\n.calendar-prevmonth {\n  left: 20px;\n  background: url('images/calendar_arrows.png') no-repeat -18px -2px;\n}\n.calendar-nextmonth {\n  right: 20px;\n  background: url('images/calendar_arrows.png') no-repeat -34px -2px;\n}\n.calendar-prevyear {\n  left: 3px;\n  background: url('images/calendar_arrows.png') no-repeat -1px -2px;\n}\n.calendar-nextyear {\n  right: 3px;\n  background: url('images/calendar_arrows.png') no-repeat -49px -2px;\n}\n.calendar-body {\n  position: relative;\n}\n.calendar-body th,\n.calendar-body td {\n  text-align: center;\n}\n.calendar-day {\n  border: 0;\n  padding: 1px;\n  cursor: pointer;\n  -moz-border-radius: 0px 0px 0px 0px;\n  -webkit-border-radius: 0px 0px 0px 0px;\n  border-radius: 0px 0px 0px 0px;\n}\n.calendar-other-month {\n  opacity: 0.3;\n  filter: alpha(opacity=30);\n}\n.calendar-menu {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 180px;\n  height: 150px;\n  padding: 5px;\n  font-size: 12px;\n  display: none;\n  overflow: hidden;\n}\n.calendar-menu-year-inner {\n  text-align: center;\n  padding-bottom: 5px;\n}\n.calendar-menu-year {\n  width: 40px;\n  text-align: center;\n  border-width: 1px;\n  border-style: solid;\n  margin: 0;\n  padding: 2px;\n  font-weight: bold;\n  font-size: 12px;\n}\n.calendar-menu-prev,\n.calendar-menu-next {\n  display: inline-block;\n  width: 21px;\n  height: 21px;\n  vertical-align: top;\n  cursor: pointer;\n  -moz-border-radius: 0px 0px 0px 0px;\n  -webkit-border-radius: 0px 0px 0px 0px;\n  border-radius: 0px 0px 0px 0px;\n}\n.calendar-menu-prev {\n  margin-right: 10px;\n  background: url('images/calendar_arrows.png') no-repeat 2px 2px;\n}\n.calendar-menu-next {\n  margin-left: 10px;\n  background: url('images/calendar_arrows.png') no-repeat -45px 2px;\n}\n.calendar-menu-month {\n  text-align: center;\n  cursor: pointer;\n  font-weight: bold;\n  -moz-border-radius: 0px 0px 0px 0px;\n  -webkit-border-radius: 0px 0px 0px 0px;\n  border-radius: 0px 0px 0px 0px;\n}\n.calendar-body th,\n.calendar-menu-month {\n  color: #919191;\n}\n.calendar-day {\n  color: #444;\n}\n.calendar-sunday {\n  color: #CC2222;\n}\n.calendar-saturday {\n  color: #00ee00;\n}\n.calendar-today {\n  color: #0000ff;\n}\n.calendar-menu-year {\n  border-color: #ddd;\n}\n.calendar {\n  border-color: #ddd;\n}\n.calendar-header {\n  background: #ffffff;\n}\n.calendar-body,\n.calendar-menu {\n  background: #fff;\n}\n.calendar-body th {\n  background: #fff;\n}\n.calendar-hover,\n.calendar-nav-hover,\n.calendar-menu-hover {\n  background-color: #E6E6E6;\n  color: #444;\n}\n.calendar-hover {\n  border: 1px solid #ddd;\n  padding: 0;\n}\n.calendar-selected {\n  background-color: #CCE6FF;\n  color: #000;\n  border: 1px solid #99cdff;\n  padding: 0;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/metro/combo.css",
    "content": ".combo {\n  display: inline-block;\n  white-space: nowrap;\n  margin: 0;\n  padding: 0;\n  border-width: 1px;\n  border-style: solid;\n  overflow: hidden;\n  vertical-align: middle;\n}\n.combo .combo-text {\n  font-size: 12px;\n  border: 0px;\n  line-height: 20px;\n  height: 20px;\n  margin: 0;\n  padding: 0px 2px;\n  *margin-top: -1px;\n  *height: 18px;\n  *line-height: 18px;\n  _height: 18px;\n  _line-height: 18px;\n  vertical-align: baseline;\n}\n.combo-arrow {\n  width: 18px;\n  height: 20px;\n  overflow: hidden;\n  display: inline-block;\n  vertical-align: top;\n  cursor: pointer;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.combo-arrow-hover {\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n}\n.combo-panel {\n  overflow: auto;\n}\n.combo-arrow {\n  background: url('images/combo_arrow.png') no-repeat center center;\n}\n.combo,\n.combo-panel {\n  background-color: #fff;\n}\n.combo {\n  border-color: #ddd;\n  background-color: #fff;\n}\n.combo-arrow {\n  background-color: #ffffff;\n}\n.combo-arrow-hover {\n  background-color: #E6E6E6;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/metro/combobox.css",
    "content": ".combobox-item,\n.combobox-group {\n  font-size: 12px;\n  padding: 3px;\n  padding-right: 0px;\n}\n.combobox-item-disabled {\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n}\n.combobox-gitem {\n  padding-left: 10px;\n}\n.combobox-group {\n  font-weight: bold;\n}\n.combobox-item-hover {\n  background-color: #E6E6E6;\n  color: #444;\n}\n.combobox-item-selected {\n  background-color: #CCE6FF;\n  color: #000;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/metro/datagrid.css",
    "content": ".datagrid .panel-body {\n  overflow: hidden;\n  position: relative;\n}\n.datagrid-view {\n  position: relative;\n  overflow: hidden;\n}\n.datagrid-view1,\n.datagrid-view2 {\n  position: absolute;\n  overflow: hidden;\n  top: 0;\n}\n.datagrid-view1 {\n  left: 0;\n}\n.datagrid-view2 {\n  right: 0;\n}\n.datagrid-mask {\n  position: absolute;\n  left: 0;\n  top: 0;\n  width: 100%;\n  height: 100%;\n  opacity: 0.3;\n  filter: alpha(opacity=30);\n  display: none;\n}\n.datagrid-mask-msg {\n  position: absolute;\n  top: 50%;\n  margin-top: -20px;\n  padding: 12px 5px 10px 30px;\n  width: auto;\n  height: 16px;\n  border-width: 2px;\n  border-style: solid;\n  display: none;\n}\n.datagrid-sort-icon {\n  padding: 0;\n}\n.datagrid-toolbar {\n  height: auto;\n  padding: 1px 2px;\n  border-width: 0 0 1px 0;\n  border-style: solid;\n}\n.datagrid-btn-separator {\n  float: left;\n  height: 24px;\n  border-left: 1px solid #ddd;\n  border-right: 1px solid #fff;\n  margin: 2px 1px;\n}\n.datagrid .datagrid-pager {\n  display: block;\n  margin: 0;\n  border-width: 1px 0 0 0;\n  border-style: solid;\n}\n.datagrid .datagrid-pager-top {\n  border-width: 0 0 1px 0;\n}\n.datagrid-header {\n  overflow: hidden;\n  cursor: default;\n  border-width: 0 0 1px 0;\n  border-style: solid;\n}\n.datagrid-header-inner {\n  float: left;\n  width: 10000px;\n}\n.datagrid-header-row,\n.datagrid-row {\n  height: 25px;\n}\n.datagrid-header td,\n.datagrid-body td,\n.datagrid-footer td {\n  border-width: 0 1px 1px 0;\n  border-style: dotted;\n  margin: 0;\n  padding: 0;\n}\n.datagrid-cell,\n.datagrid-cell-group,\n.datagrid-header-rownumber,\n.datagrid-cell-rownumber {\n  margin: 0;\n  padding: 0 4px;\n  white-space: nowrap;\n  word-wrap: normal;\n  overflow: hidden;\n  height: 18px;\n  line-height: 18px;\n  font-size: 12px;\n}\n.datagrid-header .datagrid-cell {\n  height: auto;\n}\n.datagrid-header .datagrid-cell span {\n  font-size: 12px;\n}\n.datagrid-cell-group {\n  text-align: center;\n}\n.datagrid-header-rownumber,\n.datagrid-cell-rownumber {\n  width: 25px;\n  text-align: center;\n  margin: 0;\n  padding: 0;\n}\n.datagrid-body {\n  margin: 0;\n  padding: 0;\n  overflow: auto;\n  zoom: 1;\n}\n.datagrid-view1 .datagrid-body-inner {\n  padding-bottom: 20px;\n}\n.datagrid-view1 .datagrid-body {\n  overflow: hidden;\n}\n.datagrid-footer {\n  overflow: hidden;\n}\n.datagrid-footer-inner {\n  border-width: 1px 0 0 0;\n  border-style: solid;\n  width: 10000px;\n  float: left;\n}\n.datagrid-row-editing .datagrid-cell {\n  height: auto;\n}\n.datagrid-header-check,\n.datagrid-cell-check {\n  padding: 0;\n  width: 27px;\n  height: 18px;\n  font-size: 1px;\n  text-align: center;\n  overflow: hidden;\n}\n.datagrid-header-check input,\n.datagrid-cell-check input {\n  margin: 0;\n  padding: 0;\n  width: 15px;\n  height: 18px;\n}\n.datagrid-resize-proxy {\n  position: absolute;\n  width: 1px;\n  height: 10000px;\n  top: 0;\n  cursor: e-resize;\n  display: none;\n}\n.datagrid-body .datagrid-editable {\n  margin: 0;\n  padding: 0;\n}\n.datagrid-body .datagrid-editable table {\n  width: 100%;\n  height: 100%;\n}\n.datagrid-body .datagrid-editable td {\n  border: 0;\n  margin: 0;\n  padding: 0;\n}\n.datagrid-body .datagrid-editable .datagrid-editable-input {\n  margin: 0;\n  padding: 2px;\n  border-width: 1px;\n  border-style: solid;\n}\n.datagrid-sort-desc .datagrid-sort-icon {\n  padding: 0 13px 0 0;\n  background: url('images/datagrid_icons.png') no-repeat -16px center;\n}\n.datagrid-sort-asc .datagrid-sort-icon {\n  padding: 0 13px 0 0;\n  background: url('images/datagrid_icons.png') no-repeat 0px center;\n}\n.datagrid-row-collapse {\n  background: url('images/datagrid_icons.png') no-repeat -48px center;\n}\n.datagrid-row-expand {\n  background: url('images/datagrid_icons.png') no-repeat -32px center;\n}\n.datagrid-mask-msg {\n  background: #fff url('images/loading.gif') no-repeat scroll 5px center;\n}\n.datagrid-header,\n.datagrid-td-rownumber {\n  background-color: #ffffff;\n}\n.datagrid-cell-rownumber {\n  color: #444;\n}\n.datagrid-resize-proxy {\n  background: #b3b3b3;\n}\n.datagrid-mask {\n  background: #eee;\n}\n.datagrid-mask-msg {\n  border-color: #ddd;\n}\n.datagrid-toolbar,\n.datagrid-pager {\n  background: #fff;\n}\n.datagrid-header,\n.datagrid-toolbar,\n.datagrid-pager,\n.datagrid-footer-inner {\n  border-color: #ddd;\n}\n.datagrid-header td,\n.datagrid-body td,\n.datagrid-footer td {\n  border-color: #ddd;\n}\n.datagrid-htable,\n.datagrid-btable,\n.datagrid-ftable {\n  color: #444;\n  border-collapse: separate;\n}\n.datagrid-row-alt {\n  background: #f5f5f5;\n}\n.datagrid-row-over,\n.datagrid-header td.datagrid-header-over {\n  background: #E6E6E6;\n  color: #444;\n  cursor: default;\n}\n.datagrid-row-selected {\n  background: #CCE6FF;\n  color: #000;\n}\n.datagrid-body .datagrid-editable .datagrid-editable-input {\n  border-color: #ddd;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/metro/datebox.css",
    "content": ".datebox-calendar-inner {\n  height: 180px;\n}\n.datebox-button {\n  height: 18px;\n  padding: 2px 5px;\n  text-align: center;\n}\n.datebox-button a {\n  font-size: 12px;\n  font-weight: bold;\n  text-decoration: none;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.datebox-button a:hover {\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n}\n.datebox-current,\n.datebox-close {\n  float: left;\n}\n.datebox-close {\n  float: right;\n}\n.datebox .combo-arrow {\n  background-image: url('images/datebox_arrow.png');\n  background-position: center center;\n}\n.datebox-button {\n  background-color: #fff;\n}\n.datebox-button a {\n  color: #777;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/metro/dialog.css",
    "content": ".dialog-content {\n  overflow: auto;\n}\n.dialog-toolbar {\n  padding: 2px 5px;\n}\n.dialog-tool-separator {\n  float: left;\n  height: 24px;\n  border-left: 1px solid #ddd;\n  border-right: 1px solid #fff;\n  margin: 2px 1px;\n}\n.dialog-button {\n  padding: 5px;\n  text-align: right;\n}\n.dialog-button .l-btn {\n  margin-left: 5px;\n}\n.dialog-toolbar,\n.dialog-button {\n  background: #fff;\n}\n.dialog-toolbar {\n  border-bottom: 1px solid #ddd;\n}\n.dialog-button {\n  border-top: 1px solid #ddd;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/metro/easyui.css",
    "content": ".panel {\n  overflow: hidden;\n  text-align: left;\n  margin: 0;\n  border: 0;\n  -moz-border-radius: 0 0 0 0;\n  -webkit-border-radius: 0 0 0 0;\n  border-radius: 0 0 0 0;\n}\n.panel-header,\n.panel-body {\n  border-width: 1px;\n  border-style: solid;\n}\n.panel-header {\n  padding: 5px;\n  position: relative;\n}\n.panel-title {\n  background: url('images/blank.gif') no-repeat;\n}\n.panel-header-noborder {\n  border-width: 0 0 1px 0;\n}\n.panel-body {\n  overflow: auto;\n  border-top-width: 0;\n  padding: 0;\n}\n.panel-body-noheader {\n  border-top-width: 1px;\n}\n.panel-body-noborder {\n  border-width: 0px;\n}\n.panel-with-icon {\n  padding-left: 18px;\n}\n.panel-icon,\n.panel-tool {\n  position: absolute;\n  top: 50%;\n  margin-top: -8px;\n  height: 16px;\n  overflow: hidden;\n}\n.panel-icon {\n  left: 5px;\n  width: 16px;\n}\n.panel-tool {\n  right: 5px;\n  width: auto;\n}\n.panel-tool a {\n  display: inline-block;\n  width: 16px;\n  height: 16px;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n  margin: 0 0 0 2px;\n  vertical-align: top;\n}\n.panel-tool a:hover {\n  opacity: 1;\n  filter: alpha(opacity=100);\n  background-color: #E6E6E6;\n  -moz-border-radius: -2px -2px -2px -2px;\n  -webkit-border-radius: -2px -2px -2px -2px;\n  border-radius: -2px -2px -2px -2px;\n}\n.panel-loading {\n  padding: 11px 0px 10px 30px;\n}\n.panel-noscroll {\n  overflow: hidden;\n}\n.panel-fit,\n.panel-fit body {\n  height: 100%;\n  margin: 0;\n  padding: 0;\n  border: 0;\n  overflow: hidden;\n}\n.panel-loading {\n  background: url('images/loading.gif') no-repeat 10px 10px;\n}\n.panel-tool-close {\n  background: url('images/panel_tools.png') no-repeat -16px 0px;\n}\n.panel-tool-min {\n  background: url('images/panel_tools.png') no-repeat 0px 0px;\n}\n.panel-tool-max {\n  background: url('images/panel_tools.png') no-repeat 0px -16px;\n}\n.panel-tool-restore {\n  background: url('images/panel_tools.png') no-repeat -16px -16px;\n}\n.panel-tool-collapse {\n  background: url('images/panel_tools.png') no-repeat -32px 0;\n}\n.panel-tool-expand {\n  background: url('images/panel_tools.png') no-repeat -32px -16px;\n}\n.panel-header,\n.panel-body {\n  border-color: #ddd;\n}\n.panel-header {\n  background-color: #ffffff;\n}\n.panel-body {\n  background-color: #fff;\n  color: #444;\n  font-size: 12px;\n}\n.panel-title {\n  font-size: 12px;\n  font-weight: bold;\n  color: #777;\n  height: 16px;\n  line-height: 16px;\n}\n.accordion {\n  overflow: hidden;\n  border-width: 1px;\n  border-style: solid;\n}\n.accordion .accordion-header {\n  border-width: 0 0 1px;\n  cursor: pointer;\n}\n.accordion .accordion-body {\n  border-width: 0 0 1px;\n}\n.accordion-noborder {\n  border-width: 0;\n}\n.accordion-noborder .accordion-header {\n  border-width: 0 0 1px;\n}\n.accordion-noborder .accordion-body {\n  border-width: 0 0 1px;\n}\n.accordion-collapse {\n  background: url('images/accordion_arrows.png') no-repeat 0 0;\n}\n.accordion-expand {\n  background: url('images/accordion_arrows.png') no-repeat -16px 0;\n}\n.accordion {\n  background: #fff;\n  border-color: #ddd;\n}\n.accordion .accordion-header {\n  background: #ffffff;\n  filter: none;\n}\n.accordion .accordion-header-selected {\n  background: #CCE6FF;\n}\n.accordion .accordion-header-selected .panel-title {\n  color: #000;\n}\n.window {\n  overflow: hidden;\n  padding: 5px;\n  border-width: 1px;\n  border-style: solid;\n}\n.window .window-header {\n  background: transparent;\n  padding: 0px 0px 6px 0px;\n}\n.window .window-body {\n  border-width: 1px;\n  border-style: solid;\n  border-top-width: 0px;\n}\n.window .window-body-noheader {\n  border-top-width: 1px;\n}\n.window .window-header .panel-icon,\n.window .window-header .panel-tool {\n  top: 50%;\n  margin-top: -11px;\n}\n.window .window-header .panel-icon {\n  left: 1px;\n}\n.window .window-header .panel-tool {\n  right: 1px;\n}\n.window .window-header .panel-with-icon {\n  padding-left: 18px;\n}\n.window-proxy {\n  position: absolute;\n  overflow: hidden;\n}\n.window-proxy-mask {\n  position: absolute;\n  filter: alpha(opacity=5);\n  opacity: 0.05;\n}\n.window-mask {\n  position: absolute;\n  left: 0;\n  top: 0;\n  width: 100%;\n  height: 100%;\n  filter: alpha(opacity=40);\n  opacity: 0.40;\n  font-size: 1px;\n  *zoom: 1;\n  overflow: hidden;\n}\n.window,\n.window-shadow {\n  position: absolute;\n  -moz-border-radius: 0px 0px 0px 0px;\n  -webkit-border-radius: 0px 0px 0px 0px;\n  border-radius: 0px 0px 0px 0px;\n}\n.window-shadow {\n  background: #eee;\n  -moz-box-shadow: 2px 2px 3px #ededed;\n  -webkit-box-shadow: 2px 2px 3px #ededed;\n  box-shadow: 2px 2px 3px #ededed;\n  filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2);\n}\n.window,\n.window .window-body {\n  border-color: #ddd;\n}\n.window {\n  background-color: #ffffff;\n}\n.window-proxy {\n  border: 1px dashed #ddd;\n}\n.window-proxy-mask,\n.window-mask {\n  background: #eee;\n}\n.dialog-content {\n  overflow: auto;\n}\n.dialog-toolbar {\n  padding: 2px 5px;\n}\n.dialog-tool-separator {\n  float: left;\n  height: 24px;\n  border-left: 1px solid #ddd;\n  border-right: 1px solid #fff;\n  margin: 2px 1px;\n}\n.dialog-button {\n  padding: 5px;\n  text-align: right;\n}\n.dialog-button .l-btn {\n  margin-left: 5px;\n}\n.dialog-toolbar,\n.dialog-button {\n  background: #fff;\n}\n.dialog-toolbar {\n  border-bottom: 1px solid #ddd;\n}\n.dialog-button {\n  border-top: 1px solid #ddd;\n}\n.combo {\n  display: inline-block;\n  white-space: nowrap;\n  margin: 0;\n  padding: 0;\n  border-width: 1px;\n  border-style: solid;\n  overflow: hidden;\n  vertical-align: middle;\n}\n.combo .combo-text {\n  font-size: 12px;\n  border: 0px;\n  line-height: 20px;\n  height: 20px;\n  margin: 0;\n  padding: 0px 2px;\n  *margin-top: -1px;\n  *height: 18px;\n  *line-height: 18px;\n  _height: 18px;\n  _line-height: 18px;\n  vertical-align: baseline;\n}\n.combo-arrow {\n  width: 18px;\n  height: 20px;\n  overflow: hidden;\n  display: inline-block;\n  vertical-align: top;\n  cursor: pointer;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.combo-arrow-hover {\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n}\n.combo-panel {\n  overflow: auto;\n}\n.combo-arrow {\n  background: url('images/combo_arrow.png') no-repeat center center;\n}\n.combo,\n.combo-panel {\n  background-color: #fff;\n}\n.combo {\n  border-color: #ddd;\n  background-color: #fff;\n}\n.combo-arrow {\n  background-color: #ffffff;\n}\n.combo-arrow-hover {\n  background-color: #E6E6E6;\n}\n.combobox-item,\n.combobox-group {\n  font-size: 12px;\n  padding: 3px;\n  padding-right: 0px;\n}\n.combobox-item-disabled {\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n}\n.combobox-gitem {\n  padding-left: 10px;\n}\n.combobox-group {\n  font-weight: bold;\n}\n.combobox-item-hover {\n  background-color: #E6E6E6;\n  color: #444;\n}\n.combobox-item-selected {\n  background-color: #CCE6FF;\n  color: #000;\n}\n.layout {\n  position: relative;\n  overflow: hidden;\n  margin: 0;\n  padding: 0;\n  z-index: 0;\n}\n.layout-panel {\n  position: absolute;\n  overflow: hidden;\n}\n.layout-panel-east,\n.layout-panel-west {\n  z-index: 2;\n}\n.layout-panel-north,\n.layout-panel-south {\n  z-index: 3;\n}\n.layout-expand {\n  position: absolute;\n  padding: 0px;\n  font-size: 1px;\n  cursor: pointer;\n  z-index: 1;\n}\n.layout-expand .panel-header,\n.layout-expand .panel-body {\n  background: transparent;\n  filter: none;\n  overflow: hidden;\n}\n.layout-expand .panel-header {\n  border-bottom-width: 0px;\n}\n.layout-split-proxy-h,\n.layout-split-proxy-v {\n  position: absolute;\n  font-size: 1px;\n  display: none;\n  z-index: 5;\n}\n.layout-split-proxy-h {\n  width: 5px;\n  cursor: e-resize;\n}\n.layout-split-proxy-v {\n  height: 5px;\n  cursor: n-resize;\n}\n.layout-mask {\n  position: absolute;\n  background: #fafafa;\n  filter: alpha(opacity=10);\n  opacity: 0.10;\n  z-index: 4;\n}\n.layout-button-up {\n  background: url('images/layout_arrows.png') no-repeat -16px -16px;\n}\n.layout-button-down {\n  background: url('images/layout_arrows.png') no-repeat -16px 0;\n}\n.layout-button-left {\n  background: url('images/layout_arrows.png') no-repeat 0 0;\n}\n.layout-button-right {\n  background: url('images/layout_arrows.png') no-repeat 0 -16px;\n}\n.layout-split-proxy-h,\n.layout-split-proxy-v {\n  background-color: #b3b3b3;\n}\n.layout-split-north {\n  border-bottom: 5px solid #fff;\n}\n.layout-split-south {\n  border-top: 5px solid #fff;\n}\n.layout-split-east {\n  border-left: 5px solid #fff;\n}\n.layout-split-west {\n  border-right: 5px solid #fff;\n}\n.layout-expand {\n  background-color: #ffffff;\n}\n.layout-expand-over {\n  background-color: #ffffff;\n}\n.tabs-container {\n  overflow: hidden;\n}\n.tabs-header {\n  border-width: 1px;\n  border-style: solid;\n  border-bottom-width: 0;\n  position: relative;\n  padding: 0;\n  padding-top: 2px;\n  overflow: hidden;\n}\n.tabs-header-plain {\n  border: 0;\n  background: transparent;\n}\n.tabs-scroller-left,\n.tabs-scroller-right {\n  position: absolute;\n  top: auto;\n  bottom: 0;\n  width: 18px;\n  font-size: 1px;\n  display: none;\n  cursor: pointer;\n  border-width: 1px;\n  border-style: solid;\n}\n.tabs-scroller-left {\n  left: 0;\n}\n.tabs-scroller-right {\n  right: 0;\n}\n.tabs-tool {\n  position: absolute;\n  bottom: 0;\n  padding: 1px;\n  overflow: hidden;\n  border-width: 1px;\n  border-style: solid;\n}\n.tabs-header-plain .tabs-tool {\n  padding: 0 1px;\n}\n.tabs-wrap {\n  position: relative;\n  left: 0;\n  overflow: hidden;\n  width: 100%;\n  margin: 0;\n  padding: 0;\n}\n.tabs-scrolling {\n  margin-left: 18px;\n  margin-right: 18px;\n}\n.tabs-disabled {\n  opacity: 0.3;\n  filter: alpha(opacity=30);\n}\n.tabs {\n  list-style-type: none;\n  height: 26px;\n  margin: 0px;\n  padding: 0px;\n  padding-left: 4px;\n  width: 5000px;\n  border-style: solid;\n  border-width: 0 0 1px 0;\n}\n.tabs li {\n  float: left;\n  display: inline-block;\n  margin: 0 4px -1px 0;\n  padding: 0;\n  position: relative;\n  border: 0;\n}\n.tabs li a.tabs-inner {\n  display: inline-block;\n  text-decoration: none;\n  margin: 0;\n  padding: 0 10px;\n  height: 25px;\n  line-height: 25px;\n  text-align: center;\n  white-space: nowrap;\n  border-width: 1px;\n  border-style: solid;\n  -moz-border-radius: 0px 0px 0 0;\n  -webkit-border-radius: 0px 0px 0 0;\n  border-radius: 0px 0px 0 0;\n}\n.tabs li.tabs-selected a.tabs-inner {\n  font-weight: bold;\n  outline: none;\n}\n.tabs li.tabs-selected a:hover.tabs-inner {\n  cursor: default;\n  pointer: default;\n}\n.tabs li a.tabs-close,\n.tabs-p-tool {\n  position: absolute;\n  font-size: 1px;\n  display: block;\n  height: 12px;\n  padding: 0;\n  top: 50%;\n  margin-top: -6px;\n  overflow: hidden;\n}\n.tabs li a.tabs-close {\n  width: 12px;\n  right: 5px;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.tabs-p-tool {\n  right: 16px;\n}\n.tabs-p-tool a {\n  display: inline-block;\n  font-size: 1px;\n  width: 12px;\n  height: 12px;\n  margin: 0;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.tabs li a:hover.tabs-close,\n.tabs-p-tool a:hover {\n  opacity: 1;\n  filter: alpha(opacity=100);\n  cursor: hand;\n  cursor: pointer;\n}\n.tabs-with-icon {\n  padding-left: 18px;\n}\n.tabs-icon {\n  position: absolute;\n  width: 16px;\n  height: 16px;\n  left: 10px;\n  top: 50%;\n  margin-top: -8px;\n}\n.tabs-title {\n  font-size: 12px;\n}\n.tabs-closable {\n  padding-right: 8px;\n}\n.tabs-panels {\n  margin: 0px;\n  padding: 0px;\n  border-width: 1px;\n  border-style: solid;\n  border-top-width: 0;\n  overflow: hidden;\n}\n.tabs-header-bottom {\n  border-width: 0 1px 1px 1px;\n  padding: 0 0 2px 0;\n}\n.tabs-header-bottom .tabs {\n  border-width: 1px 0 0 0;\n}\n.tabs-header-bottom .tabs li {\n  margin: -1px 4px 0 0;\n}\n.tabs-header-bottom .tabs li a.tabs-inner {\n  -moz-border-radius: 0 0 0px 0px;\n  -webkit-border-radius: 0 0 0px 0px;\n  border-radius: 0 0 0px 0px;\n}\n.tabs-header-bottom .tabs-tool {\n  top: 0;\n}\n.tabs-header-bottom .tabs-scroller-left,\n.tabs-header-bottom .tabs-scroller-right {\n  top: 0;\n  bottom: auto;\n}\n.tabs-panels-top {\n  border-width: 1px 1px 0 1px;\n}\n.tabs-header-left {\n  float: left;\n  border-width: 1px 0 1px 1px;\n  padding: 0;\n}\n.tabs-header-right {\n  float: right;\n  border-width: 1px 1px 1px 0;\n  padding: 0;\n}\n.tabs-header-left .tabs-wrap,\n.tabs-header-right .tabs-wrap {\n  height: 100%;\n}\n.tabs-header-left .tabs {\n  height: 100%;\n  padding: 4px 0 0 4px;\n  border-width: 0 1px 0 0;\n}\n.tabs-header-right .tabs {\n  height: 100%;\n  padding: 4px 4px 0 0;\n  border-width: 0 0 0 1px;\n}\n.tabs-header-left .tabs li,\n.tabs-header-right .tabs li {\n  display: block;\n  width: 100%;\n  position: relative;\n}\n.tabs-header-left .tabs li {\n  left: auto;\n  right: 0;\n  margin: 0 -1px 4px 0;\n  float: right;\n}\n.tabs-header-right .tabs li {\n  left: 0;\n  right: auto;\n  margin: 0 0 4px -1px;\n  float: left;\n}\n.tabs-header-left .tabs li a.tabs-inner {\n  display: block;\n  text-align: left;\n  -moz-border-radius: 0px 0 0 0px;\n  -webkit-border-radius: 0px 0 0 0px;\n  border-radius: 0px 0 0 0px;\n}\n.tabs-header-right .tabs li a.tabs-inner {\n  display: block;\n  text-align: left;\n  -moz-border-radius: 0 0px 0px 0;\n  -webkit-border-radius: 0 0px 0px 0;\n  border-radius: 0 0px 0px 0;\n}\n.tabs-panels-right {\n  float: right;\n  border-width: 1px 1px 1px 0;\n}\n.tabs-panels-left {\n  float: left;\n  border-width: 1px 0 1px 1px;\n}\n.tabs-header-noborder,\n.tabs-panels-noborder {\n  border: 0px;\n}\n.tabs-header-plain {\n  border: 0px;\n  background: transparent;\n}\n.tabs-scroller-left {\n  background: #ffffff url('images/tabs_icons.png') no-repeat 1px center;\n}\n.tabs-scroller-right {\n  background: #ffffff url('images/tabs_icons.png') no-repeat -15px center;\n}\n.tabs li a.tabs-close {\n  background: url('images/tabs_icons.png') no-repeat -34px center;\n}\n.tabs li a.tabs-inner:hover {\n  background: #E6E6E6;\n  color: #444;\n  filter: none;\n}\n.tabs li.tabs-selected a.tabs-inner {\n  background-color: #fff;\n  color: #777;\n}\n.tabs li a.tabs-inner {\n  color: #777;\n  background-color: #ffffff;\n}\n.tabs-header,\n.tabs-tool {\n  background-color: #ffffff;\n}\n.tabs-header-plain {\n  background: transparent;\n}\n.tabs-header,\n.tabs-scroller-left,\n.tabs-scroller-right,\n.tabs-tool,\n.tabs,\n.tabs-panels,\n.tabs li a.tabs-inner,\n.tabs li.tabs-selected a.tabs-inner,\n.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner,\n.tabs-header-left .tabs li.tabs-selected a.tabs-inner,\n.tabs-header-right .tabs li.tabs-selected a.tabs-inner {\n  border-color: #ddd;\n}\n.tabs-p-tool a:hover,\n.tabs li a:hover.tabs-close,\n.tabs-scroller-over {\n  background-color: #E6E6E6;\n}\n.tabs li.tabs-selected a.tabs-inner {\n  border-bottom: 1px solid #fff;\n}\n.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner {\n  border-top: 1px solid #fff;\n}\n.tabs-header-left .tabs li.tabs-selected a.tabs-inner {\n  border-right: 1px solid #fff;\n}\n.tabs-header-right .tabs li.tabs-selected a.tabs-inner {\n  border-left: 1px solid #fff;\n}\na.l-btn {\n  background-position: right 0;\n  text-decoration: none;\n  display: inline-block;\n  zoom: 1;\n  height: 24px;\n  padding-right: 18px;\n  cursor: pointer;\n  outline: none;\n}\na.l-btn-plain {\n  border: 0;\n  padding: 1px 6px 1px 1px;\n}\na.l-btn-disabled {\n  color: #ccc;\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n  cursor: default;\n}\na.l-btn span.l-btn-left {\n  display: inline-block;\n  background-position: 0 -48px;\n  padding: 0 0 0 18px;\n  line-height: 24px;\n  height: 24px;\n}\na.l-btn-plain span.l-btn-left {\n  padding-left: 5px;\n}\na.l-btn span span.l-btn-text {\n  position: relative;\n  display: inline-block;\n  vertical-align: top;\n  top: 4px;\n  width: auto;\n  height: 16px;\n  line-height: 16px;\n  font-size: 12px;\n  padding: 0;\n  margin: 0;\n}\na.l-btn span span.l-btn-icon-left {\n  padding: 0 0 0 20px;\n  background-position: left center;\n}\na.l-btn span span.l-btn-icon-right {\n  padding: 0 20px 0 0;\n  background-position: right center;\n}\na.l-btn span span span.l-btn-empty {\n  display: inline-block;\n  margin: 0;\n  padding: 0;\n  width: 16px;\n}\na:hover.l-btn {\n  background-position: right -24px;\n  outline: none;\n  text-decoration: none;\n}\na:hover.l-btn span.l-btn-left {\n  background-position: 0 bottom;\n}\na:hover.l-btn-plain {\n  padding: 0 5px 0 0;\n}\na:hover.l-btn-disabled {\n  background-position: right 0;\n}\na:hover.l-btn-disabled span.l-btn-left {\n  background-position: 0 -48px;\n}\na.l-btn .l-btn-focus {\n  outline: #0000FF dotted thin;\n}\na.l-btn {\n  color: #777;\n  background-image: url('images/linkbutton_bg.png');\n  background-repeat: no-repeat;\n  background: #ffffff;\n  background-repeat: repeat-x;\n  border: 1px solid #dddddd;\n  background: -webkit-linear-gradient(top,#ffffff 0,#ffffff 100%);\n  background: -moz-linear-gradient(top,#ffffff 0,#ffffff 100%);\n  background: -o-linear-gradient(top,#ffffff 0,#ffffff 100%);\n  background: linear-gradient(to bottom,#ffffff 0,#ffffff 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#ffffff,GradientType=0);\n  -moz-border-radius: 0px 0px 0px 0px;\n  -webkit-border-radius: 0px 0px 0px 0px;\n  border-radius: 0px 0px 0px 0px;\n}\na.l-btn span.l-btn-left {\n  background-image: url('images/linkbutton_bg.png');\n  background-repeat: no-repeat;\n  background-image: none;\n}\na:hover.l-btn {\n  background: #E6E6E6;\n  color: #444;\n  border: 1px solid #ddd;\n  filter: none;\n}\na.l-btn-plain,\na.l-btn-plain span.l-btn-left {\n  background: transparent;\n  border: 0;\n  filter: none;\n}\na:hover.l-btn-plain {\n  background: #E6E6E6;\n  color: #444;\n  border: 1px solid #ddd;\n  -moz-border-radius: 0px 0px 0px 0px;\n  -webkit-border-radius: 0px 0px 0px 0px;\n  border-radius: 0px 0px 0px 0px;\n}\na.l-btn-disabled,\na:hover.l-btn-disabled {\n  color: #777;\n  filter: alpha(opacity=50);\n  background: #ffffff;\n  color: #777;\n  background: -webkit-linear-gradient(top,#ffffff 0,#ffffff 100%);\n  background: -moz-linear-gradient(top,#ffffff 0,#ffffff 100%);\n  background: -o-linear-gradient(top,#ffffff 0,#ffffff 100%);\n  background: linear-gradient(to bottom,#ffffff 0,#ffffff 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#ffffff,GradientType=0);\n  filter: alpha(opacity=50) progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#ffffff,GradientType=0);\n}\na.l-btn-plain-disabled,\na:hover.l-btn-plain-disabled {\n  background: transparent;\n  filter: alpha(opacity=50);\n}\na.l-btn-selected,\na:hover.l-btn-selected {\n  background-position: right -24px;\n  background: #ddd;\n  filter: none;\n}\na.l-btn-selected span.l-btn-left,\na:hover.l-btn-selected span.l-btn-left {\n  background-position: 0 bottom;\n  background-image: none;\n}\na.l-btn-plain-selected,\na:hover.l-btn-plain-selected {\n  background: #ddd;\n}\n.datagrid .panel-body {\n  overflow: hidden;\n  position: relative;\n}\n.datagrid-view {\n  position: relative;\n  overflow: hidden;\n}\n.datagrid-view1,\n.datagrid-view2 {\n  position: absolute;\n  overflow: hidden;\n  top: 0;\n}\n.datagrid-view1 {\n  left: 0;\n}\n.datagrid-view2 {\n  right: 0;\n}\n.datagrid-mask {\n  position: absolute;\n  left: 0;\n  top: 0;\n  width: 100%;\n  height: 100%;\n  opacity: 0.3;\n  filter: alpha(opacity=30);\n  display: none;\n}\n.datagrid-mask-msg {\n  position: absolute;\n  top: 50%;\n  margin-top: -20px;\n  padding: 12px 5px 10px 30px;\n  width: auto;\n  height: 16px;\n  border-width: 2px;\n  border-style: solid;\n  display: none;\n}\n.datagrid-sort-icon {\n  padding: 0;\n}\n.datagrid-toolbar {\n  height: auto;\n  padding: 1px 2px;\n  border-width: 0 0 1px 0;\n  border-style: solid;\n}\n.datagrid-btn-separator {\n  float: left;\n  height: 24px;\n  border-left: 1px solid #ddd;\n  border-right: 1px solid #fff;\n  margin: 2px 1px;\n}\n.datagrid .datagrid-pager {\n  display: block;\n  margin: 0;\n  border-width: 1px 0 0 0;\n  border-style: solid;\n}\n.datagrid .datagrid-pager-top {\n  border-width: 0 0 1px 0;\n}\n.datagrid-header {\n  overflow: hidden;\n  cursor: default;\n  border-width: 0 0 1px 0;\n  border-style: solid;\n}\n.datagrid-header-inner {\n  float: left;\n  width: 10000px;\n}\n.datagrid-header-row,\n.datagrid-row {\n  height: 25px;\n}\n.datagrid-header td,\n.datagrid-body td,\n.datagrid-footer td {\n  border-width: 0 1px 1px 0;\n  border-style: dotted;\n  margin: 0;\n  padding: 0;\n}\n.datagrid-cell,\n.datagrid-cell-group,\n.datagrid-header-rownumber,\n.datagrid-cell-rownumber {\n  margin: 0;\n  padding: 0 4px;\n  white-space: nowrap;\n  word-wrap: normal;\n  overflow: hidden;\n  height: 18px;\n  line-height: 18px;\n  font-size: 12px;\n}\n.datagrid-header .datagrid-cell {\n  height: auto;\n}\n.datagrid-header .datagrid-cell span {\n  font-size: 12px;\n}\n.datagrid-cell-group {\n  text-align: center;\n}\n.datagrid-header-rownumber,\n.datagrid-cell-rownumber {\n  width: 25px;\n  text-align: center;\n  margin: 0;\n  padding: 0;\n}\n.datagrid-body {\n  margin: 0;\n  padding: 0;\n  overflow: auto;\n  zoom: 1;\n}\n.datagrid-view1 .datagrid-body-inner {\n  padding-bottom: 20px;\n}\n.datagrid-view1 .datagrid-body {\n  overflow: hidden;\n}\n.datagrid-footer {\n  overflow: hidden;\n}\n.datagrid-footer-inner {\n  border-width: 1px 0 0 0;\n  border-style: solid;\n  width: 10000px;\n  float: left;\n}\n.datagrid-row-editing .datagrid-cell {\n  height: auto;\n}\n.datagrid-header-check,\n.datagrid-cell-check {\n  padding: 0;\n  width: 27px;\n  height: 18px;\n  font-size: 1px;\n  text-align: center;\n  overflow: hidden;\n}\n.datagrid-header-check input,\n.datagrid-cell-check input {\n  margin: 0;\n  padding: 0;\n  width: 15px;\n  height: 18px;\n}\n.datagrid-resize-proxy {\n  position: absolute;\n  width: 1px;\n  height: 10000px;\n  top: 0;\n  cursor: e-resize;\n  display: none;\n}\n.datagrid-body .datagrid-editable {\n  margin: 0;\n  padding: 0;\n}\n.datagrid-body .datagrid-editable table {\n  width: 100%;\n  height: 100%;\n}\n.datagrid-body .datagrid-editable td {\n  border: 0;\n  margin: 0;\n  padding: 0;\n}\n.datagrid-body .datagrid-editable .datagrid-editable-input {\n  margin: 0;\n  padding: 2px;\n  border-width: 1px;\n  border-style: solid;\n}\n.datagrid-sort-desc .datagrid-sort-icon {\n  padding: 0 13px 0 0;\n  background: url('images/datagrid_icons.png') no-repeat -16px center;\n}\n.datagrid-sort-asc .datagrid-sort-icon {\n  padding: 0 13px 0 0;\n  background: url('images/datagrid_icons.png') no-repeat 0px center;\n}\n.datagrid-row-collapse {\n  background: url('images/datagrid_icons.png') no-repeat -48px center;\n}\n.datagrid-row-expand {\n  background: url('images/datagrid_icons.png') no-repeat -32px center;\n}\n.datagrid-mask-msg {\n  background: #fff url('images/loading.gif') no-repeat scroll 5px center;\n}\n.datagrid-header,\n.datagrid-td-rownumber {\n  background-color: #ffffff;\n}\n.datagrid-cell-rownumber {\n  color: #444;\n}\n.datagrid-resize-proxy {\n  background: #b3b3b3;\n}\n.datagrid-mask {\n  background: #eee;\n}\n.datagrid-mask-msg {\n  border-color: #ddd;\n}\n.datagrid-toolbar,\n.datagrid-pager {\n  background: #fff;\n}\n.datagrid-header,\n.datagrid-toolbar,\n.datagrid-pager,\n.datagrid-footer-inner {\n  border-color: #ddd;\n}\n.datagrid-header td,\n.datagrid-body td,\n.datagrid-footer td {\n  border-color: #ddd;\n}\n.datagrid-htable,\n.datagrid-btable,\n.datagrid-ftable {\n  color: #444;\n  border-collapse: separate;\n}\n.datagrid-row-alt {\n  background: #f5f5f5;\n}\n.datagrid-row-over,\n.datagrid-header td.datagrid-header-over {\n  background: #E6E6E6;\n  color: #444;\n  cursor: default;\n}\n.datagrid-row-selected {\n  background: #CCE6FF;\n  color: #000;\n}\n.datagrid-body .datagrid-editable .datagrid-editable-input {\n  border-color: #ddd;\n}\n.propertygrid .datagrid-view1 .datagrid-body td {\n  padding-bottom: 1px;\n  border-width: 0 1px 0 0;\n}\n.propertygrid .datagrid-group {\n  height: 21px;\n  overflow: hidden;\n  border-width: 0 0 1px 0;\n  border-style: solid;\n}\n.propertygrid .datagrid-group span {\n  font-weight: bold;\n}\n.propertygrid .datagrid-view1 .datagrid-body td {\n  border-color: #ddd;\n}\n.propertygrid .datagrid-view1 .datagrid-group {\n  border-color: #ffffff;\n}\n.propertygrid .datagrid-view2 .datagrid-group {\n  border-color: #ddd;\n}\n.propertygrid .datagrid-group,\n.propertygrid .datagrid-view1 .datagrid-body,\n.propertygrid .datagrid-view1 .datagrid-row-over,\n.propertygrid .datagrid-view1 .datagrid-row-selected {\n  background: #ffffff;\n}\n.pagination {\n  zoom: 1;\n}\n.pagination table {\n  float: left;\n  height: 30px;\n}\n.pagination td {\n  border: 0;\n}\n.pagination-btn-separator {\n  float: left;\n  height: 24px;\n  border-left: 1px solid #ddd;\n  border-right: 1px solid #fff;\n  margin: 3px 1px;\n}\n.pagination .pagination-num {\n  border-width: 1px;\n  border-style: solid;\n  margin: 0 2px;\n  padding: 2px;\n  width: 2em;\n  height: auto;\n}\n.pagination-page-list {\n  margin: 0px 6px;\n  padding: 1px 2px;\n  width: auto;\n  height: auto;\n  border-width: 1px;\n  border-style: solid;\n}\n.pagination-info {\n  float: right;\n  margin: 0 6px 0 0;\n  padding: 0;\n  height: 30px;\n  line-height: 30px;\n  font-size: 12px;\n}\n.pagination span {\n  font-size: 12px;\n}\na.pagination-link {\n  padding: 1px;\n}\na.pagination-link span.l-btn-left {\n  padding-left: 0;\n}\na.pagination-link span span.l-btn-text {\n  width: 24px;\n  text-align: center;\n}\na:hover.pagination-link {\n  padding: 0;\n}\n.pagination-first {\n  background: url('images/pagination_icons.png') no-repeat 0 center;\n}\n.pagination-prev {\n  background: url('images/pagination_icons.png') no-repeat -16px center;\n}\n.pagination-next {\n  background: url('images/pagination_icons.png') no-repeat -32px center;\n}\n.pagination-last {\n  background: url('images/pagination_icons.png') no-repeat -48px center;\n}\n.pagination-load {\n  background: url('images/pagination_icons.png') no-repeat -64px center;\n}\n.pagination-loading {\n  background: url('images/loading.gif') no-repeat center center;\n}\n.pagination-page-list,\n.pagination .pagination-num {\n  border-color: #ddd;\n}\n.calendar {\n  border-width: 1px;\n  border-style: solid;\n  padding: 1px;\n  overflow: hidden;\n}\n.calendar table {\n  border-collapse: separate;\n  font-size: 12px;\n  width: 100%;\n  height: 100%;\n}\n.calendar table td,\n.calendar table th {\n  font-size: 12px;\n}\n.calendar-noborder {\n  border: 0;\n}\n.calendar-header {\n  position: relative;\n  height: 22px;\n}\n.calendar-title {\n  text-align: center;\n  height: 22px;\n}\n.calendar-title span {\n  position: relative;\n  display: inline-block;\n  top: 2px;\n  padding: 0 3px;\n  height: 18px;\n  line-height: 18px;\n  font-size: 12px;\n  cursor: pointer;\n  -moz-border-radius: 0px 0px 0px 0px;\n  -webkit-border-radius: 0px 0px 0px 0px;\n  border-radius: 0px 0px 0px 0px;\n}\n.calendar-prevmonth,\n.calendar-nextmonth,\n.calendar-prevyear,\n.calendar-nextyear {\n  position: absolute;\n  top: 50%;\n  margin-top: -7px;\n  width: 14px;\n  height: 14px;\n  cursor: pointer;\n  font-size: 1px;\n  -moz-border-radius: 0px 0px 0px 0px;\n  -webkit-border-radius: 0px 0px 0px 0px;\n  border-radius: 0px 0px 0px 0px;\n}\n.calendar-prevmonth {\n  left: 20px;\n  background: url('images/calendar_arrows.png') no-repeat -18px -2px;\n}\n.calendar-nextmonth {\n  right: 20px;\n  background: url('images/calendar_arrows.png') no-repeat -34px -2px;\n}\n.calendar-prevyear {\n  left: 3px;\n  background: url('images/calendar_arrows.png') no-repeat -1px -2px;\n}\n.calendar-nextyear {\n  right: 3px;\n  background: url('images/calendar_arrows.png') no-repeat -49px -2px;\n}\n.calendar-body {\n  position: relative;\n}\n.calendar-body th,\n.calendar-body td {\n  text-align: center;\n}\n.calendar-day {\n  border: 0;\n  padding: 1px;\n  cursor: pointer;\n  -moz-border-radius: 0px 0px 0px 0px;\n  -webkit-border-radius: 0px 0px 0px 0px;\n  border-radius: 0px 0px 0px 0px;\n}\n.calendar-other-month {\n  opacity: 0.3;\n  filter: alpha(opacity=30);\n}\n.calendar-menu {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 180px;\n  height: 150px;\n  padding: 5px;\n  font-size: 12px;\n  display: none;\n  overflow: hidden;\n}\n.calendar-menu-year-inner {\n  text-align: center;\n  padding-bottom: 5px;\n}\n.calendar-menu-year {\n  width: 40px;\n  text-align: center;\n  border-width: 1px;\n  border-style: solid;\n  margin: 0;\n  padding: 2px;\n  font-weight: bold;\n  font-size: 12px;\n}\n.calendar-menu-prev,\n.calendar-menu-next {\n  display: inline-block;\n  width: 21px;\n  height: 21px;\n  vertical-align: top;\n  cursor: pointer;\n  -moz-border-radius: 0px 0px 0px 0px;\n  -webkit-border-radius: 0px 0px 0px 0px;\n  border-radius: 0px 0px 0px 0px;\n}\n.calendar-menu-prev {\n  margin-right: 10px;\n  background: url('images/calendar_arrows.png') no-repeat 2px 2px;\n}\n.calendar-menu-next {\n  margin-left: 10px;\n  background: url('images/calendar_arrows.png') no-repeat -45px 2px;\n}\n.calendar-menu-month {\n  text-align: center;\n  cursor: pointer;\n  font-weight: bold;\n  -moz-border-radius: 0px 0px 0px 0px;\n  -webkit-border-radius: 0px 0px 0px 0px;\n  border-radius: 0px 0px 0px 0px;\n}\n.calendar-body th,\n.calendar-menu-month {\n  color: #919191;\n}\n.calendar-day {\n  color: #444;\n}\n.calendar-sunday {\n  color: #CC2222;\n}\n.calendar-saturday {\n  color: #00ee00;\n}\n.calendar-today {\n  color: #0000ff;\n}\n.calendar-menu-year {\n  border-color: #ddd;\n}\n.calendar {\n  border-color: #ddd;\n}\n.calendar-header {\n  background: #ffffff;\n}\n.calendar-body,\n.calendar-menu {\n  background: #fff;\n}\n.calendar-body th {\n  background: #fff;\n}\n.calendar-hover,\n.calendar-nav-hover,\n.calendar-menu-hover {\n  background-color: #E6E6E6;\n  color: #444;\n}\n.calendar-hover {\n  border: 1px solid #ddd;\n  padding: 0;\n}\n.calendar-selected {\n  background-color: #CCE6FF;\n  color: #000;\n  border: 1px solid #99cdff;\n  padding: 0;\n}\n.datebox-calendar-inner {\n  height: 180px;\n}\n.datebox-button {\n  height: 18px;\n  padding: 2px 5px;\n  text-align: center;\n}\n.datebox-button a {\n  font-size: 12px;\n  font-weight: bold;\n  text-decoration: none;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.datebox-button a:hover {\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n}\n.datebox-current,\n.datebox-close {\n  float: left;\n}\n.datebox-close {\n  float: right;\n}\n.datebox .combo-arrow {\n  background-image: url('images/datebox_arrow.png');\n  background-position: center center;\n}\n.datebox-button {\n  background-color: #fff;\n}\n.datebox-button a {\n  color: #777;\n}\n.spinner {\n  display: inline-block;\n  white-space: nowrap;\n  margin: 0;\n  padding: 0;\n  border-width: 1px;\n  border-style: solid;\n  overflow: hidden;\n  vertical-align: middle;\n}\n.spinner .spinner-text {\n  font-size: 12px;\n  border: 0px;\n  line-height: 20px;\n  height: 20px;\n  margin: 0;\n  padding: 0 2px;\n  *margin-top: -1px;\n  *height: 18px;\n  *line-height: 18px;\n  _height: 18px;\n  _line-height: 18px;\n  vertical-align: baseline;\n}\n.spinner-arrow {\n  display: inline-block;\n  overflow: hidden;\n  vertical-align: top;\n  margin: 0;\n  padding: 0;\n}\n.spinner-arrow-up,\n.spinner-arrow-down {\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n  display: block;\n  font-size: 1px;\n  width: 18px;\n  height: 10px;\n}\n.spinner-arrow-hover {\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n}\n.spinner-arrow-up {\n  background: url('images/spinner_arrows.png') no-repeat 1px center;\n}\n.spinner-arrow-down {\n  background: url('images/spinner_arrows.png') no-repeat -15px center;\n}\n.spinner {\n  border-color: #ddd;\n}\n.spinner-arrow {\n  background-color: #ffffff;\n}\n.spinner-arrow-hover {\n  background-color: #E6E6E6;\n}\n.progressbar {\n  border-width: 1px;\n  border-style: solid;\n  -moz-border-radius: 0px 0px 0px 0px;\n  -webkit-border-radius: 0px 0px 0px 0px;\n  border-radius: 0px 0px 0px 0px;\n  overflow: hidden;\n  position: relative;\n}\n.progressbar-text {\n  text-align: center;\n  position: absolute;\n}\n.progressbar-value {\n  position: relative;\n  overflow: hidden;\n  width: 0;\n  -moz-border-radius: 0px 0 0 0px;\n  -webkit-border-radius: 0px 0 0 0px;\n  border-radius: 0px 0 0 0px;\n}\n.progressbar {\n  border-color: #ddd;\n}\n.progressbar-text {\n  color: #444;\n  font-size: 12px;\n}\n.progressbar-value .progressbar-text {\n  background-color: #CCE6FF;\n  color: #000;\n}\n.searchbox {\n  display: inline-block;\n  white-space: nowrap;\n  margin: 0;\n  padding: 0;\n  border-width: 1px;\n  border-style: solid;\n  overflow: hidden;\n}\n.searchbox .searchbox-text {\n  font-size: 12px;\n  border: 0;\n  margin: 0;\n  padding: 0;\n  line-height: 20px;\n  height: 20px;\n  *margin-top: -1px;\n  *height: 18px;\n  *line-height: 18px;\n  _height: 18px;\n  _line-height: 18px;\n  vertical-align: baseline;\n}\n.searchbox .searchbox-prompt {\n  font-size: 12px;\n  color: #ccc;\n}\n.searchbox-button {\n  width: 18px;\n  height: 20px;\n  overflow: hidden;\n  display: inline-block;\n  vertical-align: top;\n  cursor: pointer;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.searchbox-button-hover {\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n}\n.searchbox a.l-btn-plain {\n  height: 20px;\n  border: 0;\n  padding: 0 6px 0 0;\n  vertical-align: top;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n  -moz-border-radius: 0 0 0 0;\n  -webkit-border-radius: 0 0 0 0;\n  border-radius: 0 0 0 0;\n}\n.searchbox a.l-btn .l-btn-left {\n  padding: 0 0 0 4px;\n}\n.searchbox a.l-btn .l-btn-text {\n  position: static;\n  vertical-align: top;\n}\n.searchbox a.l-btn-plain:hover {\n  border: 0;\n  padding: 0 6px 0 0;\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n  -moz-border-radius: 0 0 0 0;\n  -webkit-border-radius: 0 0 0 0;\n  border-radius: 0 0 0 0;\n}\n.searchbox a.m-btn-plain-active {\n  -moz-border-radius: 0 0 0 0;\n  -webkit-border-radius: 0 0 0 0;\n  border-radius: 0 0 0 0;\n}\n.searchbox-button {\n  background: url('images/searchbox_button.png') no-repeat center center;\n}\n.searchbox {\n  border-color: #ddd;\n  background-color: #fff;\n}\n.searchbox a.l-btn-plain {\n  background: #ffffff;\n}\n.slider-disabled {\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n}\n.slider-h {\n  height: 22px;\n}\n.slider-v {\n  width: 22px;\n}\n.slider-inner {\n  position: relative;\n  height: 6px;\n  top: 7px;\n  border-width: 1px;\n  border-style: solid;\n  border-radius: 0px;\n}\n.slider-handle {\n  position: absolute;\n  display: block;\n  outline: none;\n  width: 20px;\n  height: 20px;\n  top: -7px;\n  margin-left: -10px;\n}\n.slider-tip {\n  position: absolute;\n  display: inline-block;\n  line-height: 12px;\n  font-size: 12px;\n  white-space: nowrap;\n  top: -22px;\n}\n.slider-rule {\n  position: relative;\n  top: 15px;\n}\n.slider-rule span {\n  position: absolute;\n  display: inline-block;\n  font-size: 0;\n  height: 5px;\n  border-width: 0 0 0 1px;\n  border-style: solid;\n}\n.slider-rulelabel {\n  position: relative;\n  top: 20px;\n}\n.slider-rulelabel span {\n  position: absolute;\n  display: inline-block;\n  font-size: 12px;\n}\n.slider-v .slider-inner {\n  width: 6px;\n  left: 7px;\n  top: 0;\n  float: left;\n}\n.slider-v .slider-handle {\n  left: 3px;\n  margin-top: -10px;\n}\n.slider-v .slider-tip {\n  left: -10px;\n  margin-top: -6px;\n}\n.slider-v .slider-rule {\n  float: left;\n  top: 0;\n  left: 16px;\n}\n.slider-v .slider-rule span {\n  width: 5px;\n  height: 'auto';\n  border-left: 0;\n  border-width: 1px 0 0 0;\n  border-style: solid;\n}\n.slider-v .slider-rulelabel {\n  float: left;\n  top: 0;\n  left: 23px;\n}\n.slider-handle {\n  background: url('images/slider_handle.png') no-repeat;\n}\n.slider-inner {\n  border-color: #ddd;\n  background: #ffffff;\n}\n.slider-rule span {\n  border-color: #ddd;\n}\n.slider-rulelabel span {\n  color: #444;\n}\n.menu {\n  position: absolute;\n  margin: 0;\n  padding: 2px;\n  border-width: 1px;\n  border-style: solid;\n  overflow: hidden;\n}\n.menu-item {\n  position: relative;\n  margin: 0;\n  padding: 0;\n  overflow: hidden;\n  white-space: nowrap;\n  cursor: pointer;\n  border-width: 1px;\n  border-style: solid;\n}\n.menu-text {\n  height: 20px;\n  line-height: 20px;\n  float: left;\n  padding-left: 28px;\n}\n.menu-icon {\n  position: absolute;\n  width: 16px;\n  height: 16px;\n  left: 2px;\n  top: 50%;\n  margin-top: -8px;\n}\n.menu-rightarrow {\n  position: absolute;\n  width: 16px;\n  height: 16px;\n  right: 0;\n  top: 50%;\n  margin-top: -8px;\n}\n.menu-line {\n  position: absolute;\n  left: 26px;\n  top: 0;\n  height: 2000px;\n  font-size: 1px;\n}\n.menu-sep {\n  margin: 3px 0px 3px 25px;\n  font-size: 1px;\n}\n.menu-active {\n  -moz-border-radius: 0px 0px 0px 0px;\n  -webkit-border-radius: 0px 0px 0px 0px;\n  border-radius: 0px 0px 0px 0px;\n}\n.menu-item-disabled {\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n  cursor: default;\n}\n.menu-text,\n.menu-text span {\n  font-size: 12px;\n}\n.menu-shadow {\n  position: absolute;\n  -moz-border-radius: 0px 0px 0px 0px;\n  -webkit-border-radius: 0px 0px 0px 0px;\n  border-radius: 0px 0px 0px 0px;\n  background: #eee;\n  -moz-box-shadow: 2px 2px 3px #ededed;\n  -webkit-box-shadow: 2px 2px 3px #ededed;\n  box-shadow: 2px 2px 3px #ededed;\n  filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2);\n}\n.menu-rightarrow {\n  background: url('images/menu_arrows.png') no-repeat -32px center;\n}\n.menu-line {\n  border-left: 1px solid #ddd;\n  border-right: 1px solid #fff;\n}\n.menu-sep {\n  border-top: 1px solid #ddd;\n  border-bottom: 1px solid #fff;\n}\n.menu {\n  background-color: #ffffff;\n  border-color: #ddd;\n  color: #444;\n}\n.menu-content {\n  background: #fff;\n}\n.menu-item {\n  border-color: transparent;\n  _border-color: #ffffff;\n}\n.menu-active {\n  border-color: #ddd;\n  color: #444;\n  background: #E6E6E6;\n}\n.menu-active-disabled {\n  border-color: transparent;\n  background: transparent;\n  color: #444;\n}\n.m-btn-downarrow {\n  display: inline-block;\n  width: 16px;\n  height: 16px;\n  line-height: 16px;\n  font-size: 12px;\n  _vertical-align: middle;\n}\na.m-btn-active {\n  background-position: bottom right;\n}\na.m-btn-active span.l-btn-left {\n  background-position: bottom left;\n}\na.m-btn-plain-active {\n  background: transparent;\n  padding: 0 5px 0 0;\n  border-width: 1px;\n  border-style: solid;\n  -moz-border-radius: 0px 0px 0px 0px;\n  -webkit-border-radius: 0px 0px 0px 0px;\n  border-radius: 0px 0px 0px 0px;\n}\n.m-btn-downarrow {\n  background: url('images/menu_arrows.png') no-repeat 2px center;\n}\na.m-btn-plain-active {\n  border-color: #ddd;\n  background-color: #E6E6E6;\n  color: #444;\n}\n.s-btn-downarrow {\n  display: inline-block;\n  margin: 0 0 0 4px;\n  padding: 0 0 0 1px;\n  width: 14px;\n  height: 16px;\n  line-height: 16px;\n  border-width: 0;\n  border-style: solid;\n  font-size: 12px;\n  _vertical-align: middle;\n}\na.s-btn-active {\n  background-position: bottom right;\n}\na.s-btn-active span.l-btn-left {\n  background-position: bottom left;\n}\na.s-btn-plain-active {\n  background: transparent;\n  padding: 0 5px 0 0;\n  border-width: 1px;\n  border-style: solid;\n  -moz-border-radius: 0px 0px 0px 0px;\n  -webkit-border-radius: 0px 0px 0px 0px;\n  border-radius: 0px 0px 0px 0px;\n}\n.s-btn-downarrow {\n  background: url('images/menu_arrows.png') no-repeat 2px center;\n  border-color: #b3b3b3;\n}\na:hover.l-btn .s-btn-downarrow,\na.s-btn-active .s-btn-downarrow,\na.s-btn-plain-active .s-btn-downarrow {\n  background-position: 1px center;\n  padding: 0;\n  border-width: 0 0 0 1px;\n}\na.s-btn-plain-active {\n  border-color: #ddd;\n  background-color: #E6E6E6;\n  color: #444;\n}\n.messager-body {\n  padding: 10px;\n  overflow: hidden;\n}\n.messager-button {\n  text-align: center;\n  padding-top: 10px;\n}\n.messager-icon {\n  float: left;\n  width: 32px;\n  height: 32px;\n  margin: 0 10px 10px 0;\n}\n.messager-error {\n  background: url('images/messager_icons.png') no-repeat scroll -64px 0;\n}\n.messager-info {\n  background: url('images/messager_icons.png') no-repeat scroll 0 0;\n}\n.messager-question {\n  background: url('images/messager_icons.png') no-repeat scroll -32px 0;\n}\n.messager-warning {\n  background: url('images/messager_icons.png') no-repeat scroll -96px 0;\n}\n.messager-progress {\n  padding: 10px;\n}\n.messager-p-msg {\n  margin-bottom: 5px;\n}\n.messager-body .messager-input {\n  width: 100%;\n  padding: 1px 0;\n  border: 1px solid #ddd;\n}\n.tree {\n  margin: 0;\n  padding: 0;\n  list-style-type: none;\n}\n.tree li {\n  white-space: nowrap;\n}\n.tree li ul {\n  list-style-type: none;\n  margin: 0;\n  padding: 0;\n}\n.tree-node {\n  height: 18px;\n  white-space: nowrap;\n  cursor: pointer;\n}\n.tree-hit {\n  cursor: pointer;\n}\n.tree-expanded,\n.tree-collapsed,\n.tree-folder,\n.tree-file,\n.tree-checkbox,\n.tree-indent {\n  display: inline-block;\n  width: 16px;\n  height: 18px;\n  vertical-align: top;\n  overflow: hidden;\n}\n.tree-expanded {\n  background: url('images/tree_icons.png') no-repeat -18px 0px;\n}\n.tree-expanded-hover {\n  background: url('images/tree_icons.png') no-repeat -50px 0px;\n}\n.tree-collapsed {\n  background: url('images/tree_icons.png') no-repeat 0px 0px;\n}\n.tree-collapsed-hover {\n  background: url('images/tree_icons.png') no-repeat -32px 0px;\n}\n.tree-lines .tree-expanded,\n.tree-lines .tree-root-first .tree-expanded {\n  background: url('images/tree_icons.png') no-repeat -144px 0;\n}\n.tree-lines .tree-collapsed,\n.tree-lines .tree-root-first .tree-collapsed {\n  background: url('images/tree_icons.png') no-repeat -128px 0;\n}\n.tree-lines .tree-node-last .tree-expanded,\n.tree-lines .tree-root-one .tree-expanded {\n  background: url('images/tree_icons.png') no-repeat -80px 0;\n}\n.tree-lines .tree-node-last .tree-collapsed,\n.tree-lines .tree-root-one .tree-collapsed {\n  background: url('images/tree_icons.png') no-repeat -64px 0;\n}\n.tree-line {\n  background: url('images/tree_icons.png') no-repeat -176px 0;\n}\n.tree-join {\n  background: url('images/tree_icons.png') no-repeat -192px 0;\n}\n.tree-joinbottom {\n  background: url('images/tree_icons.png') no-repeat -160px 0;\n}\n.tree-folder {\n  background: url('images/tree_icons.png') no-repeat -208px 0;\n}\n.tree-folder-open {\n  background: url('images/tree_icons.png') no-repeat -224px 0;\n}\n.tree-file {\n  background: url('images/tree_icons.png') no-repeat -240px 0;\n}\n.tree-loading {\n  background: url('images/loading.gif') no-repeat center center;\n}\n.tree-checkbox0 {\n  background: url('images/tree_icons.png') no-repeat -208px -18px;\n}\n.tree-checkbox1 {\n  background: url('images/tree_icons.png') no-repeat -224px -18px;\n}\n.tree-checkbox2 {\n  background: url('images/tree_icons.png') no-repeat -240px -18px;\n}\n.tree-title {\n  font-size: 12px;\n  display: inline-block;\n  text-decoration: none;\n  vertical-align: top;\n  white-space: nowrap;\n  padding: 0 2px;\n  height: 18px;\n  line-height: 18px;\n}\n.tree-node-proxy {\n  font-size: 12px;\n  line-height: 20px;\n  padding: 0 2px 0 20px;\n  border-width: 1px;\n  border-style: solid;\n  z-index: 9900000;\n}\n.tree-dnd-icon {\n  display: inline-block;\n  position: absolute;\n  width: 16px;\n  height: 18px;\n  left: 2px;\n  top: 50%;\n  margin-top: -9px;\n}\n.tree-dnd-yes {\n  background: url('images/tree_icons.png') no-repeat -256px 0;\n}\n.tree-dnd-no {\n  background: url('images/tree_icons.png') no-repeat -256px -18px;\n}\n.tree-node-top {\n  border-top: 1px dotted red;\n}\n.tree-node-bottom {\n  border-bottom: 1px dotted red;\n}\n.tree-node-append .tree-title {\n  border: 1px dotted red;\n}\n.tree-editor {\n  border: 1px solid #ccc;\n  font-size: 12px;\n  height: 14px !important;\n  height: 18px;\n  line-height: 14px;\n  padding: 1px 2px;\n  width: 80px;\n  position: absolute;\n  top: 0;\n}\n.tree-node-proxy {\n  background-color: #fff;\n  color: #444;\n  border-color: #ddd;\n}\n.tree-node-hover {\n  background: #E6E6E6;\n  color: #444;\n}\n.tree-node-selected {\n  background: #CCE6FF;\n  color: #000;\n}\n.validatebox-invalid {\n  background-image: url('images/validatebox_warning.png');\n  background-repeat: no-repeat;\n  background-position: right center;\n  border-color: #ffa8a8;\n  background-color: #fff3f3;\n  color: #000;\n}\n.tooltip {\n  position: absolute;\n  display: none;\n  z-index: 9900000;\n  outline: none;\n  opacity: 1;\n  filter: alpha(opacity=100);\n  padding: 5px;\n  border-width: 1px;\n  border-style: solid;\n  border-radius: 5px;\n  -moz-border-radius: 0px 0px 0px 0px;\n  -webkit-border-radius: 0px 0px 0px 0px;\n  border-radius: 0px 0px 0px 0px;\n}\n.tooltip-content {\n  font-size: 12px;\n}\n.tooltip-arrow-outer,\n.tooltip-arrow {\n  position: absolute;\n  width: 0;\n  height: 0;\n  line-height: 0;\n  font-size: 0;\n  border-style: solid;\n  border-width: 6px;\n  border-color: transparent;\n  _border-color: tomato;\n  _filter: chroma(color=tomato);\n}\n.tooltip-right .tooltip-arrow-outer {\n  left: 0;\n  top: 50%;\n  margin: -6px 0 0 -13px;\n}\n.tooltip-right .tooltip-arrow {\n  left: 0;\n  top: 50%;\n  margin: -6px 0 0 -12px;\n}\n.tooltip-left .tooltip-arrow-outer {\n  right: 0;\n  top: 50%;\n  margin: -6px -13px 0 0;\n}\n.tooltip-left .tooltip-arrow {\n  right: 0;\n  top: 50%;\n  margin: -6px -12px 0 0;\n}\n.tooltip-top .tooltip-arrow-outer {\n  bottom: 0;\n  left: 50%;\n  margin: 0 0 -13px -6px;\n}\n.tooltip-top .tooltip-arrow {\n  bottom: 0;\n  left: 50%;\n  margin: 0 0 -12px -6px;\n}\n.tooltip-bottom .tooltip-arrow-outer {\n  top: 0;\n  left: 50%;\n  margin: -13px 0 0 -6px;\n}\n.tooltip-bottom .tooltip-arrow {\n  top: 0;\n  left: 50%;\n  margin: -12px 0 0 -6px;\n}\n.tooltip {\n  background-color: #fff;\n  border-color: #ddd;\n  color: #444;\n}\n.tooltip-right .tooltip-arrow-outer {\n  border-right-color: #ddd;\n}\n.tooltip-right .tooltip-arrow {\n  border-right-color: #fff;\n}\n.tooltip-left .tooltip-arrow-outer {\n  border-left-color: #ddd;\n}\n.tooltip-left .tooltip-arrow {\n  border-left-color: #fff;\n}\n.tooltip-top .tooltip-arrow-outer {\n  border-top-color: #ddd;\n}\n.tooltip-top .tooltip-arrow {\n  border-top-color: #fff;\n}\n.tooltip-bottom .tooltip-arrow-outer {\n  border-bottom-color: #ddd;\n}\n.tooltip-bottom .tooltip-arrow {\n  border-bottom-color: #fff;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/metro/layout.css",
    "content": ".layout {\n  position: relative;\n  overflow: hidden;\n  margin: 0;\n  padding: 0;\n  z-index: 0;\n}\n.layout-panel {\n  position: absolute;\n  overflow: hidden;\n}\n.layout-panel-east,\n.layout-panel-west {\n  z-index: 2;\n}\n.layout-panel-north,\n.layout-panel-south {\n  z-index: 3;\n}\n.layout-expand {\n  position: absolute;\n  padding: 0px;\n  font-size: 1px;\n  cursor: pointer;\n  z-index: 1;\n}\n.layout-expand .panel-header,\n.layout-expand .panel-body {\n  background: transparent;\n  filter: none;\n  overflow: hidden;\n}\n.layout-expand .panel-header {\n  border-bottom-width: 0px;\n}\n.layout-split-proxy-h,\n.layout-split-proxy-v {\n  position: absolute;\n  font-size: 1px;\n  display: none;\n  z-index: 5;\n}\n.layout-split-proxy-h {\n  width: 5px;\n  cursor: e-resize;\n}\n.layout-split-proxy-v {\n  height: 5px;\n  cursor: n-resize;\n}\n.layout-mask {\n  position: absolute;\n  background: #fafafa;\n  filter: alpha(opacity=10);\n  opacity: 0.10;\n  z-index: 4;\n}\n.layout-button-up {\n  background: url('images/layout_arrows.png') no-repeat -16px -16px;\n}\n.layout-button-down {\n  background: url('images/layout_arrows.png') no-repeat -16px 0;\n}\n.layout-button-left {\n  background: url('images/layout_arrows.png') no-repeat 0 0;\n}\n.layout-button-right {\n  background: url('images/layout_arrows.png') no-repeat 0 -16px;\n}\n.layout-split-proxy-h,\n.layout-split-proxy-v {\n  background-color: #b3b3b3;\n}\n.layout-split-north {\n  border-bottom: 5px solid #fff;\n}\n.layout-split-south {\n  border-top: 5px solid #fff;\n}\n.layout-split-east {\n  border-left: 5px solid #fff;\n}\n.layout-split-west {\n  border-right: 5px solid #fff;\n}\n.layout-expand {\n  background-color: #ffffff;\n}\n.layout-expand-over {\n  background-color: #ffffff;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/metro/linkbutton.css",
    "content": "a.l-btn {\n  background-position: right 0;\n  text-decoration: none;\n  display: inline-block;\n  zoom: 1;\n  height: 24px;\n  padding-right: 18px;\n  cursor: pointer;\n  outline: none;\n}\na.l-btn-plain {\n  border: 0;\n  padding: 1px 6px 1px 1px;\n}\na.l-btn-disabled {\n  color: #ccc;\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n  cursor: default;\n}\na.l-btn span.l-btn-left {\n  display: inline-block;\n  background-position: 0 -48px;\n  padding: 0 0 0 18px;\n  line-height: 24px;\n  height: 24px;\n}\na.l-btn-plain span.l-btn-left {\n  padding-left: 5px;\n}\na.l-btn span span.l-btn-text {\n  position: relative;\n  display: inline-block;\n  vertical-align: top;\n  top: 4px;\n  width: auto;\n  height: 16px;\n  line-height: 16px;\n  font-size: 12px;\n  padding: 0;\n  margin: 0;\n}\na.l-btn span span.l-btn-icon-left {\n  padding: 0 0 0 20px;\n  background-position: left center;\n}\na.l-btn span span.l-btn-icon-right {\n  padding: 0 20px 0 0;\n  background-position: right center;\n}\na.l-btn span span span.l-btn-empty {\n  display: inline-block;\n  margin: 0;\n  padding: 0;\n  width: 16px;\n}\na:hover.l-btn {\n  background-position: right -24px;\n  outline: none;\n  text-decoration: none;\n}\na:hover.l-btn span.l-btn-left {\n  background-position: 0 bottom;\n}\na:hover.l-btn-plain {\n  padding: 0 5px 0 0;\n}\na:hover.l-btn-disabled {\n  background-position: right 0;\n}\na:hover.l-btn-disabled span.l-btn-left {\n  background-position: 0 -48px;\n}\na.l-btn .l-btn-focus {\n  outline: #0000FF dotted thin;\n}\na.l-btn {\n  color: #777;\n  background-image: url('images/linkbutton_bg.png');\n  background-repeat: no-repeat;\n  background: #ffffff;\n  background-repeat: repeat-x;\n  border: 1px solid #dddddd;\n  background: -webkit-linear-gradient(top,#ffffff 0,#ffffff 100%);\n  background: -moz-linear-gradient(top,#ffffff 0,#ffffff 100%);\n  background: -o-linear-gradient(top,#ffffff 0,#ffffff 100%);\n  background: linear-gradient(to bottom,#ffffff 0,#ffffff 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#ffffff,GradientType=0);\n  -moz-border-radius: 0px 0px 0px 0px;\n  -webkit-border-radius: 0px 0px 0px 0px;\n  border-radius: 0px 0px 0px 0px;\n}\na.l-btn span.l-btn-left {\n  background-image: url('images/linkbutton_bg.png');\n  background-repeat: no-repeat;\n  background-image: none;\n}\na:hover.l-btn {\n  background: #E6E6E6;\n  color: #444;\n  border: 1px solid #ddd;\n  filter: none;\n}\na.l-btn-plain,\na.l-btn-plain span.l-btn-left {\n  background: transparent;\n  border: 0;\n  filter: none;\n}\na:hover.l-btn-plain {\n  background: #E6E6E6;\n  color: #444;\n  border: 1px solid #ddd;\n  -moz-border-radius: 0px 0px 0px 0px;\n  -webkit-border-radius: 0px 0px 0px 0px;\n  border-radius: 0px 0px 0px 0px;\n}\na.l-btn-disabled,\na:hover.l-btn-disabled {\n  color: #777;\n  filter: alpha(opacity=50);\n  background: #ffffff;\n  color: #777;\n  background: -webkit-linear-gradient(top,#ffffff 0,#ffffff 100%);\n  background: -moz-linear-gradient(top,#ffffff 0,#ffffff 100%);\n  background: -o-linear-gradient(top,#ffffff 0,#ffffff 100%);\n  background: linear-gradient(to bottom,#ffffff 0,#ffffff 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#ffffff,GradientType=0);\n  filter: alpha(opacity=50) progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff,endColorstr=#ffffff,GradientType=0);\n}\na.l-btn-plain-disabled,\na:hover.l-btn-plain-disabled {\n  background: transparent;\n  filter: alpha(opacity=50);\n}\na.l-btn-selected,\na:hover.l-btn-selected {\n  background-position: right -24px;\n  background: #ddd;\n  filter: none;\n}\na.l-btn-selected span.l-btn-left,\na:hover.l-btn-selected span.l-btn-left {\n  background-position: 0 bottom;\n  background-image: none;\n}\na.l-btn-plain-selected,\na:hover.l-btn-plain-selected {\n  background: #ddd;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/metro/menu.css",
    "content": ".menu {\n  position: absolute;\n  margin: 0;\n  padding: 2px;\n  border-width: 1px;\n  border-style: solid;\n  overflow: hidden;\n}\n.menu-item {\n  position: relative;\n  margin: 0;\n  padding: 0;\n  overflow: hidden;\n  white-space: nowrap;\n  cursor: pointer;\n  border-width: 1px;\n  border-style: solid;\n}\n.menu-text {\n  height: 20px;\n  line-height: 20px;\n  float: left;\n  padding-left: 28px;\n}\n.menu-icon {\n  position: absolute;\n  width: 16px;\n  height: 16px;\n  left: 2px;\n  top: 50%;\n  margin-top: -8px;\n}\n.menu-rightarrow {\n  position: absolute;\n  width: 16px;\n  height: 16px;\n  right: 0;\n  top: 50%;\n  margin-top: -8px;\n}\n.menu-line {\n  position: absolute;\n  left: 26px;\n  top: 0;\n  height: 2000px;\n  font-size: 1px;\n}\n.menu-sep {\n  margin: 3px 0px 3px 25px;\n  font-size: 1px;\n}\n.menu-active {\n  -moz-border-radius: 0px 0px 0px 0px;\n  -webkit-border-radius: 0px 0px 0px 0px;\n  border-radius: 0px 0px 0px 0px;\n}\n.menu-item-disabled {\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n  cursor: default;\n}\n.menu-text,\n.menu-text span {\n  font-size: 12px;\n}\n.menu-shadow {\n  position: absolute;\n  -moz-border-radius: 0px 0px 0px 0px;\n  -webkit-border-radius: 0px 0px 0px 0px;\n  border-radius: 0px 0px 0px 0px;\n  background: #eee;\n  -moz-box-shadow: 2px 2px 3px #ededed;\n  -webkit-box-shadow: 2px 2px 3px #ededed;\n  box-shadow: 2px 2px 3px #ededed;\n  filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2);\n}\n.menu-rightarrow {\n  background: url('images/menu_arrows.png') no-repeat -32px center;\n}\n.menu-line {\n  border-left: 1px solid #ddd;\n  border-right: 1px solid #fff;\n}\n.menu-sep {\n  border-top: 1px solid #ddd;\n  border-bottom: 1px solid #fff;\n}\n.menu {\n  background-color: #ffffff;\n  border-color: #ddd;\n  color: #444;\n}\n.menu-content {\n  background: #fff;\n}\n.menu-item {\n  border-color: transparent;\n  _border-color: #ffffff;\n}\n.menu-active {\n  border-color: #ddd;\n  color: #444;\n  background: #E6E6E6;\n}\n.menu-active-disabled {\n  border-color: transparent;\n  background: transparent;\n  color: #444;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/metro/menubutton.css",
    "content": ".m-btn-downarrow {\n  display: inline-block;\n  width: 16px;\n  height: 16px;\n  line-height: 16px;\n  font-size: 12px;\n  _vertical-align: middle;\n}\na.m-btn-active {\n  background-position: bottom right;\n}\na.m-btn-active span.l-btn-left {\n  background-position: bottom left;\n}\na.m-btn-plain-active {\n  background: transparent;\n  padding: 0 5px 0 0;\n  border-width: 1px;\n  border-style: solid;\n  -moz-border-radius: 0px 0px 0px 0px;\n  -webkit-border-radius: 0px 0px 0px 0px;\n  border-radius: 0px 0px 0px 0px;\n}\n.m-btn-downarrow {\n  background: url('images/menu_arrows.png') no-repeat 2px center;\n}\na.m-btn-plain-active {\n  border-color: #ddd;\n  background-color: #E6E6E6;\n  color: #444;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/metro/messager.css",
    "content": ".messager-body {\n  padding: 10px;\n  overflow: hidden;\n}\n.messager-button {\n  text-align: center;\n  padding-top: 10px;\n}\n.messager-icon {\n  float: left;\n  width: 32px;\n  height: 32px;\n  margin: 0 10px 10px 0;\n}\n.messager-error {\n  background: url('images/messager_icons.png') no-repeat scroll -64px 0;\n}\n.messager-info {\n  background: url('images/messager_icons.png') no-repeat scroll 0 0;\n}\n.messager-question {\n  background: url('images/messager_icons.png') no-repeat scroll -32px 0;\n}\n.messager-warning {\n  background: url('images/messager_icons.png') no-repeat scroll -96px 0;\n}\n.messager-progress {\n  padding: 10px;\n}\n.messager-p-msg {\n  margin-bottom: 5px;\n}\n.messager-body .messager-input {\n  width: 100%;\n  padding: 1px 0;\n  border: 1px solid #ddd;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/metro/pagination.css",
    "content": ".pagination {\n  zoom: 1;\n}\n.pagination table {\n  float: left;\n  height: 30px;\n}\n.pagination td {\n  border: 0;\n}\n.pagination-btn-separator {\n  float: left;\n  height: 24px;\n  border-left: 1px solid #ddd;\n  border-right: 1px solid #fff;\n  margin: 3px 1px;\n}\n.pagination .pagination-num {\n  border-width: 1px;\n  border-style: solid;\n  margin: 0 2px;\n  padding: 2px;\n  width: 2em;\n  height: auto;\n}\n.pagination-page-list {\n  margin: 0px 6px;\n  padding: 1px 2px;\n  width: auto;\n  height: auto;\n  border-width: 1px;\n  border-style: solid;\n}\n.pagination-info {\n  float: right;\n  margin: 0 6px 0 0;\n  padding: 0;\n  height: 30px;\n  line-height: 30px;\n  font-size: 12px;\n}\n.pagination span {\n  font-size: 12px;\n}\na.pagination-link {\n  padding: 1px;\n}\na.pagination-link span.l-btn-left {\n  padding-left: 0;\n}\na.pagination-link span span.l-btn-text {\n  width: 24px;\n  text-align: center;\n}\na:hover.pagination-link {\n  padding: 0;\n}\n.pagination-first {\n  background: url('images/pagination_icons.png') no-repeat 0 center;\n}\n.pagination-prev {\n  background: url('images/pagination_icons.png') no-repeat -16px center;\n}\n.pagination-next {\n  background: url('images/pagination_icons.png') no-repeat -32px center;\n}\n.pagination-last {\n  background: url('images/pagination_icons.png') no-repeat -48px center;\n}\n.pagination-load {\n  background: url('images/pagination_icons.png') no-repeat -64px center;\n}\n.pagination-loading {\n  background: url('images/loading.gif') no-repeat center center;\n}\n.pagination-page-list,\n.pagination .pagination-num {\n  border-color: #ddd;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/metro/panel.css",
    "content": ".panel {\n  overflow: hidden;\n  text-align: left;\n  margin: 0;\n  border: 0;\n  -moz-border-radius: 0 0 0 0;\n  -webkit-border-radius: 0 0 0 0;\n  border-radius: 0 0 0 0;\n}\n.panel-header,\n.panel-body {\n  border-width: 1px;\n  border-style: solid;\n}\n.panel-header {\n  padding: 5px;\n  position: relative;\n}\n.panel-title {\n  background: url('images/blank.gif') no-repeat;\n}\n.panel-header-noborder {\n  border-width: 0 0 1px 0;\n}\n.panel-body {\n  overflow: auto;\n  border-top-width: 0;\n  padding: 0;\n}\n.panel-body-noheader {\n  border-top-width: 1px;\n}\n.panel-body-noborder {\n  border-width: 0px;\n}\n.panel-with-icon {\n  padding-left: 18px;\n}\n.panel-icon,\n.panel-tool {\n  position: absolute;\n  top: 50%;\n  margin-top: -8px;\n  height: 16px;\n  overflow: hidden;\n}\n.panel-icon {\n  left: 5px;\n  width: 16px;\n}\n.panel-tool {\n  right: 5px;\n  width: auto;\n}\n.panel-tool a {\n  display: inline-block;\n  width: 16px;\n  height: 16px;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n  margin: 0 0 0 2px;\n  vertical-align: top;\n}\n.panel-tool a:hover {\n  opacity: 1;\n  filter: alpha(opacity=100);\n  background-color: #E6E6E6;\n  -moz-border-radius: -2px -2px -2px -2px;\n  -webkit-border-radius: -2px -2px -2px -2px;\n  border-radius: -2px -2px -2px -2px;\n}\n.panel-loading {\n  padding: 11px 0px 10px 30px;\n}\n.panel-noscroll {\n  overflow: hidden;\n}\n.panel-fit,\n.panel-fit body {\n  height: 100%;\n  margin: 0;\n  padding: 0;\n  border: 0;\n  overflow: hidden;\n}\n.panel-loading {\n  background: url('images/loading.gif') no-repeat 10px 10px;\n}\n.panel-tool-close {\n  background: url('images/panel_tools.png') no-repeat -16px 0px;\n}\n.panel-tool-min {\n  background: url('images/panel_tools.png') no-repeat 0px 0px;\n}\n.panel-tool-max {\n  background: url('images/panel_tools.png') no-repeat 0px -16px;\n}\n.panel-tool-restore {\n  background: url('images/panel_tools.png') no-repeat -16px -16px;\n}\n.panel-tool-collapse {\n  background: url('images/panel_tools.png') no-repeat -32px 0;\n}\n.panel-tool-expand {\n  background: url('images/panel_tools.png') no-repeat -32px -16px;\n}\n.panel-header,\n.panel-body {\n  border-color: #ddd;\n}\n.panel-header {\n  background-color: #ffffff;\n}\n.panel-body {\n  background-color: #fff;\n  color: #444;\n  font-size: 12px;\n}\n.panel-title {\n  font-size: 12px;\n  font-weight: bold;\n  color: #777;\n  height: 16px;\n  line-height: 16px;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/metro/progressbar.css",
    "content": ".progressbar {\n  border-width: 1px;\n  border-style: solid;\n  -moz-border-radius: 0px 0px 0px 0px;\n  -webkit-border-radius: 0px 0px 0px 0px;\n  border-radius: 0px 0px 0px 0px;\n  overflow: hidden;\n  position: relative;\n}\n.progressbar-text {\n  text-align: center;\n  position: absolute;\n}\n.progressbar-value {\n  position: relative;\n  overflow: hidden;\n  width: 0;\n  -moz-border-radius: 0px 0 0 0px;\n  -webkit-border-radius: 0px 0 0 0px;\n  border-radius: 0px 0 0 0px;\n}\n.progressbar {\n  border-color: #ddd;\n}\n.progressbar-text {\n  color: #444;\n  font-size: 12px;\n}\n.progressbar-value .progressbar-text {\n  background-color: #CCE6FF;\n  color: #000;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/metro/propertygrid.css",
    "content": ".propertygrid .datagrid-view1 .datagrid-body td {\n  padding-bottom: 1px;\n  border-width: 0 1px 0 0;\n}\n.propertygrid .datagrid-group {\n  height: 21px;\n  overflow: hidden;\n  border-width: 0 0 1px 0;\n  border-style: solid;\n}\n.propertygrid .datagrid-group span {\n  font-weight: bold;\n}\n.propertygrid .datagrid-view1 .datagrid-body td {\n  border-color: #ddd;\n}\n.propertygrid .datagrid-view1 .datagrid-group {\n  border-color: #ffffff;\n}\n.propertygrid .datagrid-view2 .datagrid-group {\n  border-color: #ddd;\n}\n.propertygrid .datagrid-group,\n.propertygrid .datagrid-view1 .datagrid-body,\n.propertygrid .datagrid-view1 .datagrid-row-over,\n.propertygrid .datagrid-view1 .datagrid-row-selected {\n  background: #ffffff;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/metro/searchbox.css",
    "content": ".searchbox {\n  display: inline-block;\n  white-space: nowrap;\n  margin: 0;\n  padding: 0;\n  border-width: 1px;\n  border-style: solid;\n  overflow: hidden;\n}\n.searchbox .searchbox-text {\n  font-size: 12px;\n  border: 0;\n  margin: 0;\n  padding: 0;\n  line-height: 20px;\n  height: 20px;\n  *margin-top: -1px;\n  *height: 18px;\n  *line-height: 18px;\n  _height: 18px;\n  _line-height: 18px;\n  vertical-align: baseline;\n}\n.searchbox .searchbox-prompt {\n  font-size: 12px;\n  color: #ccc;\n}\n.searchbox-button {\n  width: 18px;\n  height: 20px;\n  overflow: hidden;\n  display: inline-block;\n  vertical-align: top;\n  cursor: pointer;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.searchbox-button-hover {\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n}\n.searchbox a.l-btn-plain {\n  height: 20px;\n  border: 0;\n  padding: 0 6px 0 0;\n  vertical-align: top;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n  -moz-border-radius: 0 0 0 0;\n  -webkit-border-radius: 0 0 0 0;\n  border-radius: 0 0 0 0;\n}\n.searchbox a.l-btn .l-btn-left {\n  padding: 0 0 0 4px;\n}\n.searchbox a.l-btn .l-btn-text {\n  position: static;\n  vertical-align: top;\n}\n.searchbox a.l-btn-plain:hover {\n  border: 0;\n  padding: 0 6px 0 0;\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n  -moz-border-radius: 0 0 0 0;\n  -webkit-border-radius: 0 0 0 0;\n  border-radius: 0 0 0 0;\n}\n.searchbox a.m-btn-plain-active {\n  -moz-border-radius: 0 0 0 0;\n  -webkit-border-radius: 0 0 0 0;\n  border-radius: 0 0 0 0;\n}\n.searchbox-button {\n  background: url('images/searchbox_button.png') no-repeat center center;\n}\n.searchbox {\n  border-color: #ddd;\n  background-color: #fff;\n}\n.searchbox a.l-btn-plain {\n  background: #ffffff;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/metro/slider.css",
    "content": ".slider-disabled {\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n}\n.slider-h {\n  height: 22px;\n}\n.slider-v {\n  width: 22px;\n}\n.slider-inner {\n  position: relative;\n  height: 6px;\n  top: 7px;\n  border-width: 1px;\n  border-style: solid;\n  border-radius: 0px;\n}\n.slider-handle {\n  position: absolute;\n  display: block;\n  outline: none;\n  width: 20px;\n  height: 20px;\n  top: -7px;\n  margin-left: -10px;\n}\n.slider-tip {\n  position: absolute;\n  display: inline-block;\n  line-height: 12px;\n  font-size: 12px;\n  white-space: nowrap;\n  top: -22px;\n}\n.slider-rule {\n  position: relative;\n  top: 15px;\n}\n.slider-rule span {\n  position: absolute;\n  display: inline-block;\n  font-size: 0;\n  height: 5px;\n  border-width: 0 0 0 1px;\n  border-style: solid;\n}\n.slider-rulelabel {\n  position: relative;\n  top: 20px;\n}\n.slider-rulelabel span {\n  position: absolute;\n  display: inline-block;\n  font-size: 12px;\n}\n.slider-v .slider-inner {\n  width: 6px;\n  left: 7px;\n  top: 0;\n  float: left;\n}\n.slider-v .slider-handle {\n  left: 3px;\n  margin-top: -10px;\n}\n.slider-v .slider-tip {\n  left: -10px;\n  margin-top: -6px;\n}\n.slider-v .slider-rule {\n  float: left;\n  top: 0;\n  left: 16px;\n}\n.slider-v .slider-rule span {\n  width: 5px;\n  height: 'auto';\n  border-left: 0;\n  border-width: 1px 0 0 0;\n  border-style: solid;\n}\n.slider-v .slider-rulelabel {\n  float: left;\n  top: 0;\n  left: 23px;\n}\n.slider-handle {\n  background: url('images/slider_handle.png') no-repeat;\n}\n.slider-inner {\n  border-color: #ddd;\n  background: #ffffff;\n}\n.slider-rule span {\n  border-color: #ddd;\n}\n.slider-rulelabel span {\n  color: #444;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/metro/spinner.css",
    "content": ".spinner {\n  display: inline-block;\n  white-space: nowrap;\n  margin: 0;\n  padding: 0;\n  border-width: 1px;\n  border-style: solid;\n  overflow: hidden;\n  vertical-align: middle;\n}\n.spinner .spinner-text {\n  font-size: 12px;\n  border: 0px;\n  line-height: 20px;\n  height: 20px;\n  margin: 0;\n  padding: 0 2px;\n  *margin-top: -1px;\n  *height: 18px;\n  *line-height: 18px;\n  _height: 18px;\n  _line-height: 18px;\n  vertical-align: baseline;\n}\n.spinner-arrow {\n  display: inline-block;\n  overflow: hidden;\n  vertical-align: top;\n  margin: 0;\n  padding: 0;\n}\n.spinner-arrow-up,\n.spinner-arrow-down {\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n  display: block;\n  font-size: 1px;\n  width: 18px;\n  height: 10px;\n}\n.spinner-arrow-hover {\n  opacity: 1.0;\n  filter: alpha(opacity=100);\n}\n.spinner-arrow-up {\n  background: url('images/spinner_arrows.png') no-repeat 1px center;\n}\n.spinner-arrow-down {\n  background: url('images/spinner_arrows.png') no-repeat -15px center;\n}\n.spinner {\n  border-color: #ddd;\n}\n.spinner-arrow {\n  background-color: #ffffff;\n}\n.spinner-arrow-hover {\n  background-color: #E6E6E6;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/metro/splitbutton.css",
    "content": ".s-btn-downarrow {\n  display: inline-block;\n  margin: 0 0 0 4px;\n  padding: 0 0 0 1px;\n  width: 14px;\n  height: 16px;\n  line-height: 16px;\n  border-width: 0;\n  border-style: solid;\n  font-size: 12px;\n  _vertical-align: middle;\n}\na.s-btn-active {\n  background-position: bottom right;\n}\na.s-btn-active span.l-btn-left {\n  background-position: bottom left;\n}\na.s-btn-plain-active {\n  background: transparent;\n  padding: 0 5px 0 0;\n  border-width: 1px;\n  border-style: solid;\n  -moz-border-radius: 0px 0px 0px 0px;\n  -webkit-border-radius: 0px 0px 0px 0px;\n  border-radius: 0px 0px 0px 0px;\n}\n.s-btn-downarrow {\n  background: url('images/menu_arrows.png') no-repeat 2px center;\n  border-color: #b3b3b3;\n}\na:hover.l-btn .s-btn-downarrow,\na.s-btn-active .s-btn-downarrow,\na.s-btn-plain-active .s-btn-downarrow {\n  background-position: 1px center;\n  padding: 0;\n  border-width: 0 0 0 1px;\n}\na.s-btn-plain-active {\n  border-color: #ddd;\n  background-color: #E6E6E6;\n  color: #444;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/metro/tabs.css",
    "content": ".tabs-container {\n  overflow: hidden;\n}\n.tabs-header {\n  border-width: 1px;\n  border-style: solid;\n  border-bottom-width: 0;\n  position: relative;\n  padding: 0;\n  padding-top: 2px;\n  overflow: hidden;\n}\n.tabs-header-plain {\n  border: 0;\n  background: transparent;\n}\n.tabs-scroller-left,\n.tabs-scroller-right {\n  position: absolute;\n  top: auto;\n  bottom: 0;\n  width: 18px;\n  font-size: 1px;\n  display: none;\n  cursor: pointer;\n  border-width: 1px;\n  border-style: solid;\n}\n.tabs-scroller-left {\n  left: 0;\n}\n.tabs-scroller-right {\n  right: 0;\n}\n.tabs-tool {\n  position: absolute;\n  bottom: 0;\n  padding: 1px;\n  overflow: hidden;\n  border-width: 1px;\n  border-style: solid;\n}\n.tabs-header-plain .tabs-tool {\n  padding: 0 1px;\n}\n.tabs-wrap {\n  position: relative;\n  left: 0;\n  overflow: hidden;\n  width: 100%;\n  margin: 0;\n  padding: 0;\n}\n.tabs-scrolling {\n  margin-left: 18px;\n  margin-right: 18px;\n}\n.tabs-disabled {\n  opacity: 0.3;\n  filter: alpha(opacity=30);\n}\n.tabs {\n  list-style-type: none;\n  height: 26px;\n  margin: 0px;\n  padding: 0px;\n  padding-left: 4px;\n  width: 5000px;\n  border-style: solid;\n  border-width: 0 0 1px 0;\n}\n.tabs li {\n  float: left;\n  display: inline-block;\n  margin: 0 4px -1px 0;\n  padding: 0;\n  position: relative;\n  border: 0;\n}\n.tabs li a.tabs-inner {\n  display: inline-block;\n  text-decoration: none;\n  margin: 0;\n  padding: 0 10px;\n  height: 25px;\n  line-height: 25px;\n  text-align: center;\n  white-space: nowrap;\n  border-width: 1px;\n  border-style: solid;\n  -moz-border-radius: 0px 0px 0 0;\n  -webkit-border-radius: 0px 0px 0 0;\n  border-radius: 0px 0px 0 0;\n}\n.tabs li.tabs-selected a.tabs-inner {\n  font-weight: bold;\n  outline: none;\n}\n.tabs li.tabs-selected a:hover.tabs-inner {\n  cursor: default;\n  pointer: default;\n}\n.tabs li a.tabs-close,\n.tabs-p-tool {\n  position: absolute;\n  font-size: 1px;\n  display: block;\n  height: 12px;\n  padding: 0;\n  top: 50%;\n  margin-top: -6px;\n  overflow: hidden;\n}\n.tabs li a.tabs-close {\n  width: 12px;\n  right: 5px;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.tabs-p-tool {\n  right: 16px;\n}\n.tabs-p-tool a {\n  display: inline-block;\n  font-size: 1px;\n  width: 12px;\n  height: 12px;\n  margin: 0;\n  opacity: 0.6;\n  filter: alpha(opacity=60);\n}\n.tabs li a:hover.tabs-close,\n.tabs-p-tool a:hover {\n  opacity: 1;\n  filter: alpha(opacity=100);\n  cursor: hand;\n  cursor: pointer;\n}\n.tabs-with-icon {\n  padding-left: 18px;\n}\n.tabs-icon {\n  position: absolute;\n  width: 16px;\n  height: 16px;\n  left: 10px;\n  top: 50%;\n  margin-top: -8px;\n}\n.tabs-title {\n  font-size: 12px;\n}\n.tabs-closable {\n  padding-right: 8px;\n}\n.tabs-panels {\n  margin: 0px;\n  padding: 0px;\n  border-width: 1px;\n  border-style: solid;\n  border-top-width: 0;\n  overflow: hidden;\n}\n.tabs-header-bottom {\n  border-width: 0 1px 1px 1px;\n  padding: 0 0 2px 0;\n}\n.tabs-header-bottom .tabs {\n  border-width: 1px 0 0 0;\n}\n.tabs-header-bottom .tabs li {\n  margin: -1px 4px 0 0;\n}\n.tabs-header-bottom .tabs li a.tabs-inner {\n  -moz-border-radius: 0 0 0px 0px;\n  -webkit-border-radius: 0 0 0px 0px;\n  border-radius: 0 0 0px 0px;\n}\n.tabs-header-bottom .tabs-tool {\n  top: 0;\n}\n.tabs-header-bottom .tabs-scroller-left,\n.tabs-header-bottom .tabs-scroller-right {\n  top: 0;\n  bottom: auto;\n}\n.tabs-panels-top {\n  border-width: 1px 1px 0 1px;\n}\n.tabs-header-left {\n  float: left;\n  border-width: 1px 0 1px 1px;\n  padding: 0;\n}\n.tabs-header-right {\n  float: right;\n  border-width: 1px 1px 1px 0;\n  padding: 0;\n}\n.tabs-header-left .tabs-wrap,\n.tabs-header-right .tabs-wrap {\n  height: 100%;\n}\n.tabs-header-left .tabs {\n  height: 100%;\n  padding: 4px 0 0 4px;\n  border-width: 0 1px 0 0;\n}\n.tabs-header-right .tabs {\n  height: 100%;\n  padding: 4px 4px 0 0;\n  border-width: 0 0 0 1px;\n}\n.tabs-header-left .tabs li,\n.tabs-header-right .tabs li {\n  display: block;\n  width: 100%;\n  position: relative;\n}\n.tabs-header-left .tabs li {\n  left: auto;\n  right: 0;\n  margin: 0 -1px 4px 0;\n  float: right;\n}\n.tabs-header-right .tabs li {\n  left: 0;\n  right: auto;\n  margin: 0 0 4px -1px;\n  float: left;\n}\n.tabs-header-left .tabs li a.tabs-inner {\n  display: block;\n  text-align: left;\n  -moz-border-radius: 0px 0 0 0px;\n  -webkit-border-radius: 0px 0 0 0px;\n  border-radius: 0px 0 0 0px;\n}\n.tabs-header-right .tabs li a.tabs-inner {\n  display: block;\n  text-align: left;\n  -moz-border-radius: 0 0px 0px 0;\n  -webkit-border-radius: 0 0px 0px 0;\n  border-radius: 0 0px 0px 0;\n}\n.tabs-panels-right {\n  float: right;\n  border-width: 1px 1px 1px 0;\n}\n.tabs-panels-left {\n  float: left;\n  border-width: 1px 0 1px 1px;\n}\n.tabs-header-noborder,\n.tabs-panels-noborder {\n  border: 0px;\n}\n.tabs-header-plain {\n  border: 0px;\n  background: transparent;\n}\n.tabs-scroller-left {\n  background: #ffffff url('images/tabs_icons.png') no-repeat 1px center;\n}\n.tabs-scroller-right {\n  background: #ffffff url('images/tabs_icons.png') no-repeat -15px center;\n}\n.tabs li a.tabs-close {\n  background: url('images/tabs_icons.png') no-repeat -34px center;\n}\n.tabs li a.tabs-inner:hover {\n  background: #E6E6E6;\n  color: #444;\n  filter: none;\n}\n.tabs li.tabs-selected a.tabs-inner {\n  background-color: #fff;\n  color: #777;\n}\n.tabs li a.tabs-inner {\n  color: #777;\n  background-color: #ffffff;\n}\n.tabs-header,\n.tabs-tool {\n  background-color: #ffffff;\n}\n.tabs-header-plain {\n  background: transparent;\n}\n.tabs-header,\n.tabs-scroller-left,\n.tabs-scroller-right,\n.tabs-tool,\n.tabs,\n.tabs-panels,\n.tabs li a.tabs-inner,\n.tabs li.tabs-selected a.tabs-inner,\n.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner,\n.tabs-header-left .tabs li.tabs-selected a.tabs-inner,\n.tabs-header-right .tabs li.tabs-selected a.tabs-inner {\n  border-color: #ddd;\n}\n.tabs-p-tool a:hover,\n.tabs li a:hover.tabs-close,\n.tabs-scroller-over {\n  background-color: #E6E6E6;\n}\n.tabs li.tabs-selected a.tabs-inner {\n  border-bottom: 1px solid #fff;\n}\n.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner {\n  border-top: 1px solid #fff;\n}\n.tabs-header-left .tabs li.tabs-selected a.tabs-inner {\n  border-right: 1px solid #fff;\n}\n.tabs-header-right .tabs li.tabs-selected a.tabs-inner {\n  border-left: 1px solid #fff;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/metro/tooltip.css",
    "content": ".tooltip {\n  position: absolute;\n  display: none;\n  z-index: 9900000;\n  outline: none;\n  opacity: 1;\n  filter: alpha(opacity=100);\n  padding: 5px;\n  border-width: 1px;\n  border-style: solid;\n  border-radius: 5px;\n  -moz-border-radius: 0px 0px 0px 0px;\n  -webkit-border-radius: 0px 0px 0px 0px;\n  border-radius: 0px 0px 0px 0px;\n}\n.tooltip-content {\n  font-size: 12px;\n}\n.tooltip-arrow-outer,\n.tooltip-arrow {\n  position: absolute;\n  width: 0;\n  height: 0;\n  line-height: 0;\n  font-size: 0;\n  border-style: solid;\n  border-width: 6px;\n  border-color: transparent;\n  _border-color: tomato;\n  _filter: chroma(color=tomato);\n}\n.tooltip-right .tooltip-arrow-outer {\n  left: 0;\n  top: 50%;\n  margin: -6px 0 0 -13px;\n}\n.tooltip-right .tooltip-arrow {\n  left: 0;\n  top: 50%;\n  margin: -6px 0 0 -12px;\n}\n.tooltip-left .tooltip-arrow-outer {\n  right: 0;\n  top: 50%;\n  margin: -6px -13px 0 0;\n}\n.tooltip-left .tooltip-arrow {\n  right: 0;\n  top: 50%;\n  margin: -6px -12px 0 0;\n}\n.tooltip-top .tooltip-arrow-outer {\n  bottom: 0;\n  left: 50%;\n  margin: 0 0 -13px -6px;\n}\n.tooltip-top .tooltip-arrow {\n  bottom: 0;\n  left: 50%;\n  margin: 0 0 -12px -6px;\n}\n.tooltip-bottom .tooltip-arrow-outer {\n  top: 0;\n  left: 50%;\n  margin: -13px 0 0 -6px;\n}\n.tooltip-bottom .tooltip-arrow {\n  top: 0;\n  left: 50%;\n  margin: -12px 0 0 -6px;\n}\n.tooltip {\n  background-color: #fff;\n  border-color: #ddd;\n  color: #444;\n}\n.tooltip-right .tooltip-arrow-outer {\n  border-right-color: #ddd;\n}\n.tooltip-right .tooltip-arrow {\n  border-right-color: #fff;\n}\n.tooltip-left .tooltip-arrow-outer {\n  border-left-color: #ddd;\n}\n.tooltip-left .tooltip-arrow {\n  border-left-color: #fff;\n}\n.tooltip-top .tooltip-arrow-outer {\n  border-top-color: #ddd;\n}\n.tooltip-top .tooltip-arrow {\n  border-top-color: #fff;\n}\n.tooltip-bottom .tooltip-arrow-outer {\n  border-bottom-color: #ddd;\n}\n.tooltip-bottom .tooltip-arrow {\n  border-bottom-color: #fff;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/metro/tree.css",
    "content": ".tree {\n  margin: 0;\n  padding: 0;\n  list-style-type: none;\n}\n.tree li {\n  white-space: nowrap;\n}\n.tree li ul {\n  list-style-type: none;\n  margin: 0;\n  padding: 0;\n}\n.tree-node {\n  height: 18px;\n  white-space: nowrap;\n  cursor: pointer;\n}\n.tree-hit {\n  cursor: pointer;\n}\n.tree-expanded,\n.tree-collapsed,\n.tree-folder,\n.tree-file,\n.tree-checkbox,\n.tree-indent {\n  display: inline-block;\n  width: 16px;\n  height: 18px;\n  vertical-align: top;\n  overflow: hidden;\n}\n.tree-expanded {\n  background: url('images/tree_icons.png') no-repeat -18px 0px;\n}\n.tree-expanded-hover {\n  background: url('images/tree_icons.png') no-repeat -50px 0px;\n}\n.tree-collapsed {\n  background: url('images/tree_icons.png') no-repeat 0px 0px;\n}\n.tree-collapsed-hover {\n  background: url('images/tree_icons.png') no-repeat -32px 0px;\n}\n.tree-lines .tree-expanded,\n.tree-lines .tree-root-first .tree-expanded {\n  background: url('images/tree_icons.png') no-repeat -144px 0;\n}\n.tree-lines .tree-collapsed,\n.tree-lines .tree-root-first .tree-collapsed {\n  background: url('images/tree_icons.png') no-repeat -128px 0;\n}\n.tree-lines .tree-node-last .tree-expanded,\n.tree-lines .tree-root-one .tree-expanded {\n  background: url('images/tree_icons.png') no-repeat -80px 0;\n}\n.tree-lines .tree-node-last .tree-collapsed,\n.tree-lines .tree-root-one .tree-collapsed {\n  background: url('images/tree_icons.png') no-repeat -64px 0;\n}\n.tree-line {\n  background: url('images/tree_icons.png') no-repeat -176px 0;\n}\n.tree-join {\n  background: url('images/tree_icons.png') no-repeat -192px 0;\n}\n.tree-joinbottom {\n  background: url('images/tree_icons.png') no-repeat -160px 0;\n}\n.tree-folder {\n  background: url('images/tree_icons.png') no-repeat -208px 0;\n}\n.tree-folder-open {\n  background: url('images/tree_icons.png') no-repeat -224px 0;\n}\n.tree-file {\n  background: url('images/tree_icons.png') no-repeat -240px 0;\n}\n.tree-loading {\n  background: url('images/loading.gif') no-repeat center center;\n}\n.tree-checkbox0 {\n  background: url('images/tree_icons.png') no-repeat -208px -18px;\n}\n.tree-checkbox1 {\n  background: url('images/tree_icons.png') no-repeat -224px -18px;\n}\n.tree-checkbox2 {\n  background: url('images/tree_icons.png') no-repeat -240px -18px;\n}\n.tree-title {\n  font-size: 12px;\n  display: inline-block;\n  text-decoration: none;\n  vertical-align: top;\n  white-space: nowrap;\n  padding: 0 2px;\n  height: 18px;\n  line-height: 18px;\n}\n.tree-node-proxy {\n  font-size: 12px;\n  line-height: 20px;\n  padding: 0 2px 0 20px;\n  border-width: 1px;\n  border-style: solid;\n  z-index: 9900000;\n}\n.tree-dnd-icon {\n  display: inline-block;\n  position: absolute;\n  width: 16px;\n  height: 18px;\n  left: 2px;\n  top: 50%;\n  margin-top: -9px;\n}\n.tree-dnd-yes {\n  background: url('images/tree_icons.png') no-repeat -256px 0;\n}\n.tree-dnd-no {\n  background: url('images/tree_icons.png') no-repeat -256px -18px;\n}\n.tree-node-top {\n  border-top: 1px dotted red;\n}\n.tree-node-bottom {\n  border-bottom: 1px dotted red;\n}\n.tree-node-append .tree-title {\n  border: 1px dotted red;\n}\n.tree-editor {\n  border: 1px solid #ccc;\n  font-size: 12px;\n  height: 14px !important;\n  height: 18px;\n  line-height: 14px;\n  padding: 1px 2px;\n  width: 80px;\n  position: absolute;\n  top: 0;\n}\n.tree-node-proxy {\n  background-color: #fff;\n  color: #444;\n  border-color: #ddd;\n}\n.tree-node-hover {\n  background: #E6E6E6;\n  color: #444;\n}\n.tree-node-selected {\n  background: #CCE6FF;\n  color: #000;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/metro/validatebox.css",
    "content": ".validatebox-invalid {\n  background-image: url('images/validatebox_warning.png');\n  background-repeat: no-repeat;\n  background-position: right center;\n  border-color: #ffa8a8;\n  background-color: #fff3f3;\n  color: #000;\n}\n"
  },
  {
    "path": "src/main/webapp/ui/themes/metro/window.css",
    "content": ".window {\n  overflow: hidden;\n  padding: 5px;\n  border-width: 1px;\n  border-style: solid;\n}\n.window .window-header {\n  background: transparent;\n  padding: 0px 0px 6px 0px;\n}\n.window .window-body {\n  border-width: 1px;\n  border-style: solid;\n  border-top-width: 0px;\n}\n.window .window-body-noheader {\n  border-top-width: 1px;\n}\n.window .window-header .panel-icon,\n.window .window-header .panel-tool {\n  top: 50%;\n  margin-top: -11px;\n}\n.window .window-header .panel-icon {\n  left: 1px;\n}\n.window .window-header .panel-tool {\n  right: 1px;\n}\n.window .window-header .panel-with-icon {\n  padding-left: 18px;\n}\n.window-proxy {\n  position: absolute;\n  overflow: hidden;\n}\n.window-proxy-mask {\n  position: absolute;\n  filter: alpha(opacity=5);\n  opacity: 0.05;\n}\n.window-mask {\n  position: absolute;\n  left: 0;\n  top: 0;\n  width: 100%;\n  height: 100%;\n  filter: alpha(opacity=40);\n  opacity: 0.40;\n  font-size: 1px;\n  *zoom: 1;\n  overflow: hidden;\n}\n.window,\n.window-shadow {\n  position: absolute;\n  -moz-border-radius: 0px 0px 0px 0px;\n  -webkit-border-radius: 0px 0px 0px 0px;\n  border-radius: 0px 0px 0px 0px;\n}\n.window-shadow {\n  background: #eee;\n  -moz-box-shadow: 2px 2px 3px #ededed;\n  -webkit-box-shadow: 2px 2px 3px #ededed;\n  box-shadow: 2px 2px 3px #ededed;\n  filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2);\n}\n.window,\n.window .window-body {\n  border-color: #ddd;\n}\n.window {\n  background-color: #ffffff;\n}\n.window-proxy {\n  border: 1px dashed #ddd;\n}\n.window-proxy-mask,\n.window-mask {\n  background: #eee;\n}\n"
  },
  {
    "path": "src/main/webapp/user.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n<meta charset=\"UTF-8\">\n<title>员工管理</title>\n<link rel=\"stylesheet\" type=\"text/css\"\n\thref=\"ui/themes/default/easyui.css\">\n<link rel=\"stylesheet\" type=\"text/css\" href=\"ui/themes/icon.css\">\n<script type=\"text/javascript\" src=\"ui/jquery.min.js\"></script>\n<script type=\"text/javascript\" src=\"ui/jquery.easyui.min.js\"></script>\n<script type=\"text/javascript\" src=\"ui/locale/easyui-lang-zh_CN.js\"></script>\n<script type=\"text/javascript\" src=\"ui/jquery.serializejson.min.js\"></script>\n<script type=\"text/javascript\" src=\"ui/date.js\"></script>\n<script type=\"text/javascript\" src=\"js/crud.js\"></script>\n<script type=\"text/javascript\" src=\"js/search.js\"></script>\n<script type=\"text/javascript\" src=\"js/download.js\"></script>\n<script type=\"text/javascript\">\n\t//用于search.js自动补全\n\tvar _url = 'user/searchUserName';\n\tvar _value = 'user_name';\n\t//用于crud.js的esayui初始参数\n\tvar name = \"user/user\";\n\tvar title = '用户管理';\n\tvar idField = 'user_id';\n\tvar height = 300;\n\tvar width = 300;\n\tvar columns = [ [ {\n\t\tfield : 'user_code',\n\t\ttitle : '账号',\n\t\twidth : 100\n\t}, {\n\t\tfield : 'user_pwd',\n\t\ttitle : '密码',\n\t\twidth : 100,\n\t\tformatter : function(value) {\n\t\t\treturn \"*********\";\n\t\t}\n\t}, {\n\t\tfield : 'user_name',\n\t\ttitle : '真实姓名',\n\t\twidth : 100\n\t}, {\n\t\tfield : 'user_birthday',\n\t\ttitle : '出生日期',\n\t\twidth : 100,\n\t\tformatter : function(value) {\n\t\t\treturn new Date(value).Format(\"yyyy-MM-dd\");\n\t\t}\n\t}, ] ];\n</script>\n</head>\n<body class=\"easyui-layout\">\n\t<!--搜索区  -->\n\t<div data-options=\"region:'north',title:'查询'\"\n\t\tstyle=\"padding: 4px; background-color: #eee; height: 80px\">\n\t\t<form id=\"searchForm\">\n\t\t\t<table cellpadding=\"5\">\n\t\t\t\t<tr>\n\t\t\t\t\t<td>真实姓名 ：</td>\n\t\t\t\t\t<td><input name=\"user_name\" class=\"easyui-combobox\"\n\t\t\t\t\t\tid=\"inputtable\" /></td>\n\t\t\t\t\t<td><a class=\"easyui-linkbutton\"\n\t\t\t\t\t\tdata-options=\"iconCls:'icon-search'\" id=\"btnSearch\">查询</a></td>\n\t\t\t\t\t<td><a class=\"easyui-linkbutton\"\n\t\t\t\t\t\tdata-options=\"iconCls:'icon-remove'\" id=\"btnReset\">重置</a></td>\n\t\t\t</table>\n\t\t</form>\n\t</div>\n\t<!-- 数据表格区 -->\n\t<div data-options=\"region:'center',collapsible:true,split:true\"\n\t\tstyle=\"width: 600px;\">\n\t\t<table id=\"grid\"></table>\n\t</div>\n\t<!-- 添加、修改 -->\n\t<div id=\"editDlg\" class=\"easyui-window\" data-options=\"closed:true\">\n\t\t<form id=\"editForm\">\n\t\t\t<input name=\"user_id\" type=\"hidden\">\n\t\t\t<table>\n\t\t\t\t<tr>\n\t\t\t\t\t<td>账号</td>\n\t\t\t\t\t<td><input name=\"user_code\" class=\"easyui-validatebox\"\n\t\t\t\t\t\tdata-options=\"\n\t\t\t\t\trequired:true,missingMessage:'账号不能为空!'\n\t\t\t\t\t\">\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td>密码</td>\n\t\t\t\t\t<td><input type=\"password\" name=\"user_pwd\"></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td>真实姓名</td>\n\t\t\t\t\t<td><input name=\"user_name\"></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td>出生日期</td>\n\t\t\t\t\t<td><input name=\"user_birthday\" class=\"easyui-datebox\"\n\t\t\t\t\t\teditable=\"false\"></td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t\t<button id=\"btnSave\" type=\"button\">保存</button>\n\t\t</form>\n\t</div>\n\t<!-- 导入窗口 -->\n\t<div id=\"importDlg\" style=\"padding: 2px;\">\n\t\t<form id=\"importForm\" enctype=\"multipart/form-data\">\n\t\t\t导入文件:<input type=\"file\" name=\"file\">\n\t\t</form>\n\t</div>\n</body>\n</html>\n"
  },
  {
    "path": "src/main/webapp/userRoleSet.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n<meta charset=\"UTF-8\">\n<title>用户角色设置</title>\n<link rel=\"stylesheet\" type=\"text/css\"\n\thref=\"ui/themes/default/easyui.css\">\n<link rel=\"stylesheet\" type=\"text/css\" href=\"ui/themes/icon.css\">\n<script type=\"text/javascript\" src=\"ui/jquery.min.js\"></script>\n<script type=\"text/javascript\" src=\"ui/jquery.easyui.min.js\"></script>\n<script type=\"text/javascript\" src=\"ui/locale/easyui-lang-zh_CN.js\"></script>\n<script type=\"text/javascript\" src='ui/jquery.serializejson.min.js'></script>\n<script type=\"text/javascript\" src=\"js/userRoleSet.js\"></script>\n<script type=\"text/javascript\" src=\"js/search.js\"></script>\n<script type=\"text/javascript\">\n\t//用于search.js自动补全\n\tvar _url='user/searchUserName';\n\tvar _value='user_name';\n</script>\n</head>\n<body class=\"easyui-layout\">\n\t<div data-options=\"region:'center',title:'用户列表'\"\n\t\tstyle=\"width: 600px;padding: 4px; background-color: #eee\">\n\t\t<!--搜索区  -->\n\t\t<div data-options=\"region:'north',title:'查询'\"\n\t\t\tstyle=\"padding: 4px; background-color: #eee; height: 40px\">\n\t\t\t<form id=\"searchForm\">\n\t\t\t\t<table cellpadding=\"5\">\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td>用户名：</td>\n\t\t\t\t\t\t<td><input name=\"user_name\" class=\"easyui-combobox\"\n\t\t\t\t\t\t\tid=\"inputtable\" /></td>\n\t\t\t\t\t\t<td><a class=\"easyui-linkbutton\"\n\t\t\t\t\t\t\tdata-options=\"iconCls:'icon-search'\" id=\"btnSearch\">查询</a></td>\n\t\t\t\t\t\t<td><a class=\"easyui-linkbutton\"\n\t\t\t\t\t\t\tdata-options=\"iconCls:'icon-remove'\" id=\"btnReset\">重置</a></td>\n\t\t\t\t\t</tr>\n\t\t\t\t</table>\n\t\t\t</form>\n\t\t</div>\n\t\t<div style=\"height: 4px;\"></div>\n\t\t<table id=\"grid\"></table>\n\t</div>\n\t<div data-options=\"region:'east',title:'角色列表',split:true\"\n\t\tstyle=\"width: 500px;\">\n\t\t<ul id=\"tree\"></ul>\n\t\t<button id=\"btnSave\">保存</button>\n\t</div>\n\n</body>\n</html>"
  },
  {
    "path": "src/test/java/cn/lastwhisper/GoBackTest.java",
    "content": "package cn.lastwhisper;\n\nimport cn.lastwhisper.core.task.GoBackTask;\nimport org.springframework.context.ApplicationContext;\nimport org.springframework.context.support.ClassPathXmlApplicationContext;\n\n/**\n * \n * @author lastwhisper\n * @date 2020/2/16\n */\npublic class GoBackTest {\n    \n    public static void main(String[] args){\n        ApplicationContext context = new ClassPathXmlApplicationContext(\"classpath*:applicationContext*.xml\");\n        GoBackTask mysqlTask = context.getBean(GoBackTask.class);\n        mysqlTask.goBack();\n    }\n    \n}\n"
  },
  {
    "path": "src/test/java/cn/lastwhisper/MD5.java",
    "content": "/**  \n * @Title:  A.java   \n * @Package cn.lastwhisper   \n * @Description: TODO(用一句话描述该文件做什么)\n * @author: 最后的轻语_dd43     \n * @date:   2019年5月1日 上午12:17:53   \n * @version V1.0 \n */\npackage cn.lastwhisper;\n\nimport org.apache.shiro.crypto.hash.Md5Hash;\n\n/**   \n * @ClassName:  A   \n * @Description:TODO(这里用一句话描述这个类的作用)   \n * @author:     最后的轻语_dd43\n * @date:       2019年5月1日\n */\npublic class MD5 {\n\t/**\n\t * 加密\n\t * \n\t * @param source 密码\n\t * @param salt   账号\n\t * @return\n\t */\n\tprivate static String encrypt(String source, String salt) {\n\t\tMd5Hash md5 = new Md5Hash(source, salt, 2);\n\t\treturn md5.toString();\n\t}\n\tpublic static void main(String[] args) {\n\t\tSystem.out.println(encrypt(\"admin\", \"admin\"));\n\t}\n}\n"
  }
]