From ed679acb4beda2d2ddfcd7ec1d970e3a06cef8b7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 8 Feb 2020 06:49:28 +0000 Subject: [PATCH 01/62] Bump tika-core from 1.13 to 1.22 Bumps [tika-core](https://github.com/apache/tika) from 1.13 to 1.22. - [Release notes](https://github.com/apache/tika/releases) - [Changelog](https://github.com/apache/tika/blob/master/CHANGES.txt) - [Commits](https://github.com/apache/tika/compare/1.13...1.22) Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index d4ea055..14b7ff2 100644 --- a/pom.xml +++ b/pom.xml @@ -50,7 +50,7 @@ org.apache.tika tika-core - 1.13 + 1.22 From 58fc1dbb3f3f09610142b00056a35814544973a2 Mon Sep 17 00:00:00 2001 From: QuietClickCode <2572417548@qq.com> Date: Sat, 15 Feb 2020 12:42:41 +0800 Subject: [PATCH 02/62] =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=9C=B0=E5=9D=80?= =?UTF-8?q?=E6=94=BE80=E7=AB=AF=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../aisearch/repository/impl/FullTextESRepository.java | 2 +- src/main/resources/application-dev.properties | 8 ++++---- src/main/resources/application-prod.properties | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/zjj/aisearch/repository/impl/FullTextESRepository.java b/src/main/java/com/zjj/aisearch/repository/impl/FullTextESRepository.java index 51a42a6..51b69af 100644 --- a/src/main/java/com/zjj/aisearch/repository/impl/FullTextESRepository.java +++ b/src/main/java/com/zjj/aisearch/repository/impl/FullTextESRepository.java @@ -29,7 +29,7 @@ * @Description: 全文搜索 * @Param: * @return: - * @Author: zjj + * @Author: zjj * @Date: 2020/1/6 */ @Repository diff --git a/src/main/resources/application-dev.properties b/src/main/resources/application-dev.properties index eb7c533..d5e53fa 100644 --- a/src/main/resources/application-dev.properties +++ b/src/main/resources/application-dev.properties @@ -1,7 +1,7 @@ -server.port=443 -server.ssl.key-store=classpath:www.myznsh.com.pfx -server.ssl.key-store-password=123456 -server.ssl.key-store-type=PKCS12 +server.port=80 +#server.ssl.key-store=classpath:www.myznsh.com.pfx +#server.ssl.key-store-password=123456 +#server.ssl.key-store-type=PKCS12 server.servlet.session.timeout=36000s server.tomcat.uri-encoding=utf-8 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource diff --git a/src/main/resources/application-prod.properties b/src/main/resources/application-prod.properties index aa0e0a6..611bdd9 100644 --- a/src/main/resources/application-prod.properties +++ b/src/main/resources/application-prod.properties @@ -1,7 +1,7 @@ -server.port=443 -server.ssl.key-store=classpath:www.myznsh.com.pfx -server.ssl.key-store-password=123456 -server.ssl.key-store-type=PKCS12 +server.port=80 +#server.ssl.key-store=classpath:www.myznsh.com.pfx +#server.ssl.key-store-password=123456 +#server.ssl.key-store-type=PKCS12 server.servlet.session.timeout=36000s server.tomcat.uri-encoding=utf-8 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource From e7427728a092d9d5a47721be8802b358441c7447 Mon Sep 17 00:00:00 2001 From: QuietClickCode <2572417548@qq.com> Date: Sat, 15 Feb 2020 12:48:32 +0800 Subject: [PATCH 03/62] =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=9C=B0=E5=9D=80?= =?UTF-8?q?=E6=94=BE80=E7=AB=AF=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/zjj/aisearch/controller/IndexController.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/zjj/aisearch/controller/IndexController.java b/src/main/java/com/zjj/aisearch/controller/IndexController.java index b2f66e7..ca183cb 100644 --- a/src/main/java/com/zjj/aisearch/controller/IndexController.java +++ b/src/main/java/com/zjj/aisearch/controller/IndexController.java @@ -155,7 +155,6 @@ public Object tologin(@RequestBody UserInfo userInfo) { return responseResult; } - /** * regist.html,ajax发送的登录请求 * UserInfo 包含浏览器传过来的所有信息 From 9a15ce142c5bcc688eb6eb34349b4819f27222e9 Mon Sep 17 00:00:00 2001 From: QuietClickCode <2572417548@qq.com> Date: Sat, 15 Feb 2020 15:49:54 +0800 Subject: [PATCH 04/62] =?UTF-8?q?=E6=95=B4=E5=90=88fastDFS=E6=88=90?= =?UTF-8?q?=E5=8A=9F,fastDFS=E5=8F=AF=E4=BB=A5=E4=BD=9C=E4=B8=BA=E5=9B=BE?= =?UTF-8?q?=E5=BA=8A=E5=92=8C=E7=BD=91=E7=9B=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 6 ++ .../aisearch/config/FdfsConfiguration.java | 16 +++ .../aisearch/controller/UploadController.java | 97 +++++++++++++++++++ .../zjj/aisearch/utils/FastDFSClientUtil.java | 67 +++++++++++++ .../resources/application-prod.properties | 8 ++ .../resources/\350\256\260\345\275\225.txt" | 14 ++- 6 files changed, 207 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/zjj/aisearch/config/FdfsConfiguration.java create mode 100644 src/main/java/com/zjj/aisearch/controller/UploadController.java create mode 100644 src/main/java/com/zjj/aisearch/utils/FastDFSClientUtil.java diff --git a/pom.xml b/pom.xml index 6b5c1eb..f2a414d 100644 --- a/pom.xml +++ b/pom.xml @@ -26,6 +26,12 @@ + + + com.github.tobato + fastdfs-client + 1.26.5 + org.springframework.boot diff --git a/src/main/java/com/zjj/aisearch/config/FdfsConfiguration.java b/src/main/java/com/zjj/aisearch/config/FdfsConfiguration.java new file mode 100644 index 0000000..c4e70f4 --- /dev/null +++ b/src/main/java/com/zjj/aisearch/config/FdfsConfiguration.java @@ -0,0 +1,16 @@ +package com.zjj.aisearch.config; + +import com.github.tobato.fastdfs.FdfsClientConfig; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.EnableMBeanExport; +import org.springframework.context.annotation.Import; +import org.springframework.jmx.support.RegistrationPolicy; + +/** + * + */ +@Configuration +@Import(FdfsClientConfig.class) // 导入FastDFS-Client组件 +@EnableMBeanExport(registration = RegistrationPolicy.IGNORE_EXISTING) // 解决jmx重复注册bean的问题 +public class FdfsConfiguration { +} \ No newline at end of file diff --git a/src/main/java/com/zjj/aisearch/controller/UploadController.java b/src/main/java/com/zjj/aisearch/controller/UploadController.java new file mode 100644 index 0000000..583ba6b --- /dev/null +++ b/src/main/java/com/zjj/aisearch/controller/UploadController.java @@ -0,0 +1,97 @@ +package com.zjj.aisearch.controller; + +import com.zjj.aisearch.utils.FastDFSClientUtil; +import org.apache.commons.io.IOUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.InputStream; + +@Controller +public class UploadController { + + @Autowired + private FastDFSClientUtil dfsClient; + + + @PostMapping("/upload") + public String fdfsUpload(@RequestParam("file") MultipartFile file, HttpServletRequest request) { + + try { + String fileUrl = dfsClient.uploadFile(file); + request.setAttribute("msg", "成功上传文件, '" + fileUrl + "'"); + } catch (IOException e) { + e.printStackTrace(); + } + return "index"; + } + + + /* + * http://localhost/download?filePath=group1/M00/00/00/wKgIZVzZEF2ATP08ABC9j8AnNSs744.jpg + */ + @RequestMapping("/download") + public void download(String filePath ,HttpServletRequest request ,HttpServletResponse response) throws IOException { + + // group1/M00/00/00/wKgIZVzZEF2ATP08ABC9j8AnNSs744.jpg + String[] paths = filePath.split("/"); + String groupName = null ; + for (String item : paths) { + if (item.indexOf("group") != -1) { + groupName = item; + break ; + } + } + String path = filePath.substring(filePath.indexOf(groupName) + groupName.length() + 1, filePath.length()); + InputStream input = dfsClient.download(groupName, path); + + //根据文件名获取 MIME 类型 + String fileName = paths[paths.length-1] ; + System.out.println("fileName :" + fileName); // wKgIZVzZEF2ATP08ABC9j8AnNSs744.jpg + String contentType = request.getServletContext().getMimeType(fileName); + String contentDisposition = "attachment;filename=" + fileName; + + // 设置头 + response.setHeader("Content-Type",contentType); + response.setHeader("Content-Disposition",contentDisposition); + + // 获取绑定了客户端的流 + ServletOutputStream output = response.getOutputStream(); + + // 把输入流中的数据写入到输出流中 + IOUtils.copy(input,output); + input.close(); + + } + + /** + * http://localhost/deleteFile?filePath=group1/M00/00/00/wKgIZVzZaRiAZemtAARpYjHP9j4930.jpg + * @param fileName group1/M00/00/00/wKgIZVzZaRiAZemtAARpYjHP9j4930.jpg + * @param request + * @param response + * @return + */ + @RequestMapping("/deleteFile") + public String delFile(String filePath , HttpServletRequest request ,HttpServletResponse response) { + + try { + dfsClient.delFile(filePath); + } catch(Exception e) { + // 文件不存在报异常 : com.github.tobato.fastdfs.exception.FdfsServerException: 错误码:2,错误信息:找不到节点或文件 + // e.printStackTrace(); + } + request.setAttribute("msg", "成功删除,'" + filePath); + + return "index"; + } + + +} \ No newline at end of file diff --git a/src/main/java/com/zjj/aisearch/utils/FastDFSClientUtil.java b/src/main/java/com/zjj/aisearch/utils/FastDFSClientUtil.java new file mode 100644 index 0000000..5fb5b2c --- /dev/null +++ b/src/main/java/com/zjj/aisearch/utils/FastDFSClientUtil.java @@ -0,0 +1,67 @@ +package com.zjj.aisearch.utils; + +import com.github.tobato.fastdfs.domain.fdfs.StorePath; +import com.github.tobato.fastdfs.domain.fdfs.ThumbImageConfig; +import com.github.tobato.fastdfs.domain.proto.storage.DownloadCallback; +import com.github.tobato.fastdfs.service.FastFileStorageClient; +import org.apache.commons.io.FilenameUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; +import org.springframework.web.multipart.MultipartFile; + +import java.io.IOException; +import java.io.InputStream; + + +@Component +public class FastDFSClientUtil { + + @Value("${fdfs.reqHost}") + private String reqHost; + + @Value("${fdfs.reqPort}") + private String reqPort; + + @Autowired + private FastFileStorageClient storageClient; + + @Autowired + private ThumbImageConfig thumbImageConfig; //创建缩略图 , 缩略图访问有问题,暂未解决 + + + public String uploadFile(MultipartFile file) throws IOException { + StorePath storePath = storageClient.uploadFile((InputStream)file.getInputStream(),file.getSize(), FilenameUtils.getExtension(file.getOriginalFilename()),null); + + String path = thumbImageConfig.getThumbImagePath(storePath.getPath()) ; + System.out.println("thumbImage :" + path); // 缩略图访问有问题,暂未解决 + + return getResAccessUrl(storePath); + } + + public void delFile(String filePath) { + storageClient.deleteFile(filePath); + + } + + + public InputStream download(String groupName, String path ) { + InputStream ins = storageClient.downloadFile(groupName, path, new DownloadCallback(){ + @Override + public InputStream recv(InputStream ins) throws IOException { + // 将此ins返回给上面的ins + return ins; + }}) ; + return ins ; + } + + /** + * 封装文件完整URL地址 + * @param storePath + * @return + */ + private String getResAccessUrl(StorePath storePath) { + String fileUrl = "http://" + reqHost + ":" + reqPort + "/" + storePath.getFullPath(); + return fileUrl; + } +} \ No newline at end of file diff --git a/src/main/resources/application-prod.properties b/src/main/resources/application-prod.properties index c4afc20..b0614d7 100644 --- a/src/main/resources/application-prod.properties +++ b/src/main/resources/application-prod.properties @@ -49,3 +49,11 @@ spring.activemq.pool.max-connections=10 spring.activemq.pool.idle-timeout=30000ms #强制的连接过期时间,与idleTimeout的区别在于:idleTimeout是在连接空闲一段时间失效,而expiryTimeout不管当前连接的情况,只要达到指定时间就失效。默认为0,never spring.activemq.pool.expiry-timeout=0ms + +#fdfs +fdfs.soTimeout=1500 +fdfs.connectTimeout=600 +fdfs.reqHost=114.55.94.186 +fdfs.reqPort=9999 +fdfs.trackerList[0]=114.55.94.186:22122 + diff --git "a/src/main/resources/\350\256\260\345\275\225.txt" "b/src/main/resources/\350\256\260\345\275\225.txt" index 6747d06..a3bcc5d 100644 --- "a/src/main/resources/\350\256\260\345\275\225.txt" +++ "b/src/main/resources/\350\256\260\345\275\225.txt" @@ -83,4 +83,16 @@ slogan: stringRedisTemplate.opsForValue().set("test", "100",60*10,TimeUnit.SECONDS);//redisݺûʱ 20202912:20:12 https:ȫ취 -https://www.cnblogs.com/zhucezmf/p/9896577.html \ No newline at end of file +https://www.cnblogs.com/zhucezmf/p/9896577.html + + +202021514:58:34 +spring bootfastDFS + +?? ??? ??? ?com.github.tobato +?? ??? ??? ?fastdfs-client +?? ??? ??? ?1.26.5 +?? ??? ? + +ȨΪCSDNKBXHԭ£ѭ CC 4.0 BY-SA ȨЭ飬ת븽ԭijӼ +ԭӣhttps://blog.csdn.net/u013792404/article/details/90546809 \ No newline at end of file From 4d2f1cdb11a955164963af5559ae20aa72899281 Mon Sep 17 00:00:00 2001 From: QuietClickCode <2572417548@qq.com> Date: Sat, 15 Feb 2020 16:36:23 +0800 Subject: [PATCH 05/62] =?UTF-8?q?=E6=96=87=E4=BB=B6=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0,=E8=BF=9B=E6=95=B0=E6=8D=AE=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../aisearch/controller/UploadController.java | 184 +++++++++++------- 1 file changed, 112 insertions(+), 72 deletions(-) diff --git a/src/main/java/com/zjj/aisearch/controller/UploadController.java b/src/main/java/com/zjj/aisearch/controller/UploadController.java index 583ba6b..a53a833 100644 --- a/src/main/java/com/zjj/aisearch/controller/UploadController.java +++ b/src/main/java/com/zjj/aisearch/controller/UploadController.java @@ -1,97 +1,137 @@ package com.zjj.aisearch.controller; +import com.zjj.aisearch.model.ResponseResult; +import com.zjj.aisearch.pojo.dto.FullTextDTO; +import com.zjj.aisearch.service.UploadFileService; +import com.zjj.aisearch.utils.DateTimeUtil; import com.zjj.aisearch.utils.FastDFSClientUtil; +import com.zjj.aisearch.utils.MultipartFileToFile; import org.apache.commons.io.IOUtils; +import org.apache.tika.Tika; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.File; import java.io.IOException; import java.io.InputStream; - -@Controller +import java.util.Date; + +/** +* @Description: FastDFS做网盘和图床 +* @Param: +* @return: +* @Author: zjj +* @Date: 2020/2/15 +*/ +@RestController public class UploadController { - - @Autowired - private FastDFSClientUtil dfsClient; - - - @PostMapping("/upload") - public String fdfsUpload(@RequestParam("file") MultipartFile file, HttpServletRequest request) { - - try { - String fileUrl = dfsClient.uploadFile(file); - request.setAttribute("msg", "成功上传文件, '" + fileUrl + "'"); - } catch (IOException e) { - e.printStackTrace(); - } - return "index"; - } - - - /* - * http://localhost/download?filePath=group1/M00/00/00/wKgIZVzZEF2ATP08ABC9j8AnNSs744.jpg - */ - @RequestMapping("/download") - public void download(String filePath ,HttpServletRequest request ,HttpServletResponse response) throws IOException { - - // group1/M00/00/00/wKgIZVzZEF2ATP08ABC9j8AnNSs744.jpg - String[] paths = filePath.split("/"); - String groupName = null ; - for (String item : paths) { - if (item.indexOf("group") != -1) { - groupName = item; - break ; - } - } - String path = filePath.substring(filePath.indexOf(groupName) + groupName.length() + 1, filePath.length()); - InputStream input = dfsClient.download(groupName, path); - + + @Autowired + private FastDFSClientUtil dfsClient; + @Autowired + private UploadFileService uploadFileServiceImpl; + + @PostMapping("/upload") + public ResponseResult fdfsUpload(@RequestParam("file") MultipartFile file, HttpServletRequest request) throws Exception { + ResponseResult responseResult = new ResponseResult(); + try { + String fileUrl = dfsClient.uploadFile(file); + //提取文件信息进入数据库 + FullTextDTO fullTextDTO = new FullTextDTO(); + long size = file.getSize(); + Tika tika = new Tika(); + File file1 = MultipartFileToFile.multipartFileToFile(file); + String fileName = file1.getName(); + String filecontent = tika.parseToString(file1); + MultipartFileToFile.delteTempFile(file1); + fullTextDTO.setCreatetime(DateTimeUtil.dateToStr(new Date(), "yyyy-MM-dd HH:mm:ss")); + //应该存用户id,暂时写死 + fullTextDTO.setCreateuser("zjj"); + fullTextDTO.setFileContent(filecontent); + fullTextDTO.setFileName(fileName); + fullTextDTO.setFilePath(fileUrl); + fullTextDTO.setFileSize(size); + fullTextDTO.setFileType(fileName.substring(fileName.lastIndexOf(".") + 1)); + //保存到数据库 + uploadFileServiceImpl.save(fullTextDTO); + responseResult.setStatus(0); + responseResult.setMsg("上传成功,这是第" + fullTextDTO.getId() + "个文件"); + responseResult.setUrl(fileUrl); + responseResult.setData(fileUrl); + } catch (IOException e) { + responseResult.setStatus(-1); + responseResult.setMsg("上传失败"); + e.printStackTrace(); + } + return responseResult; + } + + + /* + * http://localhost/download?filePath=group1/M00/00/00/wKgIZVzZEF2ATP08ABC9j8AnNSs744.jpg + */ + @RequestMapping("/download") + public void download(String filePath, HttpServletRequest request, HttpServletResponse response) throws IOException { + + // group1/M00/00/00/wKgIZVzZEF2ATP08ABC9j8AnNSs744.jpg + String[] paths = filePath.split("/"); + String groupName = null; + for (String item : paths) { + if (item.indexOf("group") != -1) { + groupName = item; + break; + } + } + String path = filePath.substring(filePath.indexOf(groupName) + groupName.length() + 1, filePath.length()); + InputStream input = dfsClient.download(groupName, path); + //根据文件名获取 MIME 类型 - String fileName = paths[paths.length-1] ; - System.out.println("fileName :" + fileName); // wKgIZVzZEF2ATP08ABC9j8AnNSs744.jpg + String fileName = paths[paths.length - 1]; + System.out.println("fileName :" + fileName); // wKgIZVzZEF2ATP08ABC9j8AnNSs744.jpg String contentType = request.getServletContext().getMimeType(fileName); String contentDisposition = "attachment;filename=" + fileName; - + // 设置头 - response.setHeader("Content-Type",contentType); - response.setHeader("Content-Disposition",contentDisposition); - + response.setHeader("Content-Type", contentType); + response.setHeader("Content-Disposition", contentDisposition); + // 获取绑定了客户端的流 ServletOutputStream output = response.getOutputStream(); - + // 把输入流中的数据写入到输出流中 - IOUtils.copy(input,output); + IOUtils.copy(input, output); input.close(); - - } - - /** - * http://localhost/deleteFile?filePath=group1/M00/00/00/wKgIZVzZaRiAZemtAARpYjHP9j4930.jpg - * @param fileName group1/M00/00/00/wKgIZVzZaRiAZemtAARpYjHP9j4930.jpg - * @param request - * @param response - * @return - */ - @RequestMapping("/deleteFile") - public String delFile(String filePath , HttpServletRequest request ,HttpServletResponse response) { - - try { - dfsClient.delFile(filePath); - } catch(Exception e) { - // 文件不存在报异常 : com.github.tobato.fastdfs.exception.FdfsServerException: 错误码:2,错误信息:找不到节点或文件 - // e.printStackTrace(); - } - request.setAttribute("msg", "成功删除,'" + filePath); - - return "index"; - } - - + + } + + /** + * http://localhost/deleteFile?filePath=group1/M00/00/00/wKgIZVzZaRiAZemtAARpYjHP9j4930.jpg + * + * @param filePath group1/M00/00/00/wKgIZVzZaRiAZemtAARpYjHP9j4930.jpg + * @param request + * @param response + * @return + */ + @RequestMapping("/deleteFile") + public String delFile(String filePath, HttpServletRequest request, HttpServletResponse response) { + + try { + dfsClient.delFile(filePath); + } catch (Exception e) { + // 文件不存在报异常 : com.github.tobato.fastdfs.exception.FdfsServerException: 错误码:2,错误信息:找不到节点或文件 + // e.printStackTrace(); + } + request.setAttribute("msg", "成功删除,'" + filePath); + + return "index"; + } + + } \ No newline at end of file From 0197dff22f91e46f1252b26e3863ab070437c0c0 Mon Sep 17 00:00:00 2001 From: QuietClickCode <2572417548@qq.com> Date: Sat, 15 Feb 2020 16:56:52 +0800 Subject: [PATCH 06/62] =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=88=97=E8=A1=A8=E6=98=A0=E5=B0=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../aisearch/controller/QueryController.java | 5 +++++ .../com/zjj/aisearch/mapper/QueryMapper.java | 3 +++ .../zjj/aisearch/service/QueryService.java | 3 +++ .../service/impl/QueryServiceImpl.java | 6 ++++++ src/main/resources/mapper/QueryMapper.xml | 19 +++++++++++++++++++ 5 files changed, 36 insertions(+) diff --git a/src/main/java/com/zjj/aisearch/controller/QueryController.java b/src/main/java/com/zjj/aisearch/controller/QueryController.java index 9343776..3d9db9a 100644 --- a/src/main/java/com/zjj/aisearch/controller/QueryController.java +++ b/src/main/java/com/zjj/aisearch/controller/QueryController.java @@ -134,6 +134,11 @@ public Integer queryMarkdownListCount(@RequestBody QueryForm queryForm) { public List queryUserList(@RequestBody QueryForm queryForm) { return queryServiceImpl.queryUserList(queryForm); } + @PostMapping("queryFileList") + @ApiOperation("根据条件查询用户记录数据") + public List queryFileList() { + return queryServiceImpl.queryFileList(); + } @PostMapping("queryUserListCount") @ApiOperation("根据条件查询用户记录数据总条数") diff --git a/src/main/java/com/zjj/aisearch/mapper/QueryMapper.java b/src/main/java/com/zjj/aisearch/mapper/QueryMapper.java index f403709..ccbbccb 100644 --- a/src/main/java/com/zjj/aisearch/mapper/QueryMapper.java +++ b/src/main/java/com/zjj/aisearch/mapper/QueryMapper.java @@ -1,6 +1,7 @@ package com.zjj.aisearch.mapper; import com.zjj.aisearch.model.EditorList; +import com.zjj.aisearch.model.FullTextFile; import com.zjj.aisearch.model.QueryForm; import com.zjj.aisearch.model.SystemLogList; @@ -48,4 +49,6 @@ public interface QueryMapper { List queryUserList(QueryForm queryForm); Integer queryUserListCount(QueryForm queryForm); + + List queryFileList(); } diff --git a/src/main/java/com/zjj/aisearch/service/QueryService.java b/src/main/java/com/zjj/aisearch/service/QueryService.java index a9bc895..c17a46c 100644 --- a/src/main/java/com/zjj/aisearch/service/QueryService.java +++ b/src/main/java/com/zjj/aisearch/service/QueryService.java @@ -1,6 +1,7 @@ package com.zjj.aisearch.service; import com.zjj.aisearch.model.EditorList; +import com.zjj.aisearch.model.FullTextFile; import com.zjj.aisearch.model.QueryForm; import com.zjj.aisearch.model.SystemLogList; @@ -49,4 +50,6 @@ public interface QueryService { Integer queryUserListCount(QueryForm queryForm); List queryUserList(QueryForm queryForm); + + List queryFileList(); } diff --git a/src/main/java/com/zjj/aisearch/service/impl/QueryServiceImpl.java b/src/main/java/com/zjj/aisearch/service/impl/QueryServiceImpl.java index 8b61973..1eacdf9 100644 --- a/src/main/java/com/zjj/aisearch/service/impl/QueryServiceImpl.java +++ b/src/main/java/com/zjj/aisearch/service/impl/QueryServiceImpl.java @@ -2,6 +2,7 @@ import com.zjj.aisearch.mapper.QueryMapper; import com.zjj.aisearch.model.EditorList; +import com.zjj.aisearch.model.FullTextFile; import com.zjj.aisearch.model.QueryForm; import com.zjj.aisearch.model.SystemLogList; import com.zjj.aisearch.service.QueryService; @@ -121,4 +122,9 @@ public Integer queryUserListCount(QueryForm queryForm) { public List queryUserList(QueryForm queryForm) { return queryMapper.queryUserList(queryForm); } + + @Override + public List queryFileList() { + return queryMapper.queryFileList(); + } } diff --git a/src/main/resources/mapper/QueryMapper.xml b/src/main/resources/mapper/QueryMapper.xml index f5f4a55..b6ea5f2 100644 --- a/src/main/resources/mapper/QueryMapper.xml +++ b/src/main/resources/mapper/QueryMapper.xml @@ -1,6 +1,21 @@ + + + + + + + + + + + + @@ -684,6 +699,10 @@ limit #{startpage} , 10 + + (Use /re/ syntax for regexp search)'; - function doSearch(cm, rev) { - var state = getSearchState(cm); - if (state.query) return findNext(cm, rev); - dialog(cm, queryDialog, "Search for:", cm.getSelection(), function(query) { - cm.operation(function() { - if (!query || state.query) return; - state.query = parseQuery(query); - cm.removeOverlay(state.overlay, queryCaseInsensitive(state.query)); - state.overlay = searchOverlay(state.query, queryCaseInsensitive(state.query)); - cm.addOverlay(state.overlay); - if (cm.showMatchesOnScrollbar) { - if (state.annotate) { state.annotate.clear(); state.annotate = null; } - state.annotate = cm.showMatchesOnScrollbar(state.query, queryCaseInsensitive(state.query)); - } - state.posFrom = state.posTo = cm.getCursor(); - findNext(cm, rev); - }); - }); - } - function findNext(cm, rev) {cm.operation(function() { - var state = getSearchState(cm); - var cursor = getSearchCursor(cm, state.query, rev ? state.posFrom : state.posTo); - if (!cursor.find(rev)) { - cursor = getSearchCursor(cm, state.query, rev ? CodeMirror.Pos(cm.lastLine()) : CodeMirror.Pos(cm.firstLine(), 0)); - if (!cursor.find(rev)) return; - } - cm.setSelection(cursor.from(), cursor.to()); - cm.scrollIntoView({from: cursor.from(), to: cursor.to()}); - state.posFrom = cursor.from(); state.posTo = cursor.to(); - });} - function clearSearch(cm) {cm.operation(function() { - var state = getSearchState(cm); - if (!state.query) return; - state.query = null; - cm.removeOverlay(state.overlay); - if (state.annotate) { state.annotate.clear(); state.annotate = null; } - });} - - var replaceQueryDialog = - 'Replace: (Use /re/ syntax for regexp search)'; - var replacementQueryDialog = 'With: '; - var doReplaceConfirm = "Replace? "; - function replace(cm, all) { - if (cm.getOption("readOnly")) return; - dialog(cm, replaceQueryDialog, "Replace:", cm.getSelection(), function(query) { - if (!query) return; - query = parseQuery(query); - dialog(cm, replacementQueryDialog, "Replace with:", "", function(text) { - if (all) { - cm.operation(function() { - for (var cursor = getSearchCursor(cm, query); cursor.findNext();) { - if (typeof query != "string") { - var match = cm.getRange(cursor.from(), cursor.to()).match(query); - cursor.replace(text.replace(/\$(\d)/g, function(_, i) {return match[i];})); - } else cursor.replace(text); - } - }); - } else { - clearSearch(cm); - var cursor = getSearchCursor(cm, query, cm.getCursor()); - var advance = function() { - var start = cursor.from(), match; - if (!(match = cursor.findNext())) { - cursor = getSearchCursor(cm, query); - if (!(match = cursor.findNext()) || - (start && cursor.from().line == start.line && cursor.from().ch == start.ch)) return; - } - cm.setSelection(cursor.from(), cursor.to()); - cm.scrollIntoView({from: cursor.from(), to: cursor.to()}); - confirmDialog(cm, doReplaceConfirm, "Replace?", - [function() {doReplace(match);}, advance]); - }; - var doReplace = function(match) { - cursor.replace(typeof query == "string" ? text : - text.replace(/\$(\d)/g, function(_, i) {return match[i];})); - advance(); - }; - advance(); - } - }); - }); - } - - CodeMirror.commands.find = function(cm) {clearSearch(cm); doSearch(cm);}; - CodeMirror.commands.findNext = doSearch; - CodeMirror.commands.findPrev = function(cm) {doSearch(cm, true);}; - CodeMirror.commands.clearSearch = clearSearch; - CodeMirror.commands.replace = replace; - CodeMirror.commands.replaceAll = function(cm) {replace(cm, true);}; -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/addon/search/searchcursor.js b/src/main/resources/static/editor.md-master/lib/codemirror/addon/search/searchcursor.js deleted file mode 100644 index 55c108b..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/addon/search/searchcursor.js +++ /dev/null @@ -1,189 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { - "use strict"; - var Pos = CodeMirror.Pos; - - function SearchCursor(doc, query, pos, caseFold) { - this.atOccurrence = false; this.doc = doc; - if (caseFold == null && typeof query == "string") caseFold = false; - - pos = pos ? doc.clipPos(pos) : Pos(0, 0); - this.pos = {from: pos, to: pos}; - - // The matches method is filled in based on the type of query. - // It takes a position and a direction, and returns an object - // describing the next occurrence of the query, or null if no - // more matches were found. - if (typeof query != "string") { // Regexp match - if (!query.global) query = new RegExp(query.source, query.ignoreCase ? "ig" : "g"); - this.matches = function(reverse, pos) { - if (reverse) { - query.lastIndex = 0; - var line = doc.getLine(pos.line).slice(0, pos.ch), cutOff = 0, match, start; - for (;;) { - query.lastIndex = cutOff; - var newMatch = query.exec(line); - if (!newMatch) break; - match = newMatch; - start = match.index; - cutOff = match.index + (match[0].length || 1); - if (cutOff == line.length) break; - } - var matchLen = (match && match[0].length) || 0; - if (!matchLen) { - if (start == 0 && line.length == 0) {match = undefined;} - else if (start != doc.getLine(pos.line).length) { - matchLen++; - } - } - } else { - query.lastIndex = pos.ch; - var line = doc.getLine(pos.line), match = query.exec(line); - var matchLen = (match && match[0].length) || 0; - var start = match && match.index; - if (start + matchLen != line.length && !matchLen) matchLen = 1; - } - if (match && matchLen) - return {from: Pos(pos.line, start), - to: Pos(pos.line, start + matchLen), - match: match}; - }; - } else { // String query - var origQuery = query; - if (caseFold) query = query.toLowerCase(); - var fold = caseFold ? function(str){return str.toLowerCase();} : function(str){return str;}; - var target = query.split("\n"); - // Different methods for single-line and multi-line queries - if (target.length == 1) { - if (!query.length) { - // Empty string would match anything and never progress, so - // we define it to match nothing instead. - this.matches = function() {}; - } else { - this.matches = function(reverse, pos) { - if (reverse) { - var orig = doc.getLine(pos.line).slice(0, pos.ch), line = fold(orig); - var match = line.lastIndexOf(query); - if (match > -1) { - match = adjustPos(orig, line, match); - return {from: Pos(pos.line, match), to: Pos(pos.line, match + origQuery.length)}; - } - } else { - var orig = doc.getLine(pos.line).slice(pos.ch), line = fold(orig); - var match = line.indexOf(query); - if (match > -1) { - match = adjustPos(orig, line, match) + pos.ch; - return {from: Pos(pos.line, match), to: Pos(pos.line, match + origQuery.length)}; - } - } - }; - } - } else { - var origTarget = origQuery.split("\n"); - this.matches = function(reverse, pos) { - var last = target.length - 1; - if (reverse) { - if (pos.line - (target.length - 1) < doc.firstLine()) return; - if (fold(doc.getLine(pos.line).slice(0, origTarget[last].length)) != target[target.length - 1]) return; - var to = Pos(pos.line, origTarget[last].length); - for (var ln = pos.line - 1, i = last - 1; i >= 1; --i, --ln) - if (target[i] != fold(doc.getLine(ln))) return; - var line = doc.getLine(ln), cut = line.length - origTarget[0].length; - if (fold(line.slice(cut)) != target[0]) return; - return {from: Pos(ln, cut), to: to}; - } else { - if (pos.line + (target.length - 1) > doc.lastLine()) return; - var line = doc.getLine(pos.line), cut = line.length - origTarget[0].length; - if (fold(line.slice(cut)) != target[0]) return; - var from = Pos(pos.line, cut); - for (var ln = pos.line + 1, i = 1; i < last; ++i, ++ln) - if (target[i] != fold(doc.getLine(ln))) return; - if (fold(doc.getLine(ln).slice(0, origTarget[last].length)) != target[last]) return; - return {from: from, to: Pos(ln, origTarget[last].length)}; - } - }; - } - } - } - - SearchCursor.prototype = { - findNext: function() {return this.find(false);}, - findPrevious: function() {return this.find(true);}, - - find: function(reverse) { - var self = this, pos = this.doc.clipPos(reverse ? this.pos.from : this.pos.to); - function savePosAndFail(line) { - var pos = Pos(line, 0); - self.pos = {from: pos, to: pos}; - self.atOccurrence = false; - return false; - } - - for (;;) { - if (this.pos = this.matches(reverse, pos)) { - this.atOccurrence = true; - return this.pos.match || true; - } - if (reverse) { - if (!pos.line) return savePosAndFail(0); - pos = Pos(pos.line-1, this.doc.getLine(pos.line-1).length); - } - else { - var maxLine = this.doc.lineCount(); - if (pos.line == maxLine - 1) return savePosAndFail(maxLine); - pos = Pos(pos.line + 1, 0); - } - } - }, - - from: function() {if (this.atOccurrence) return this.pos.from;}, - to: function() {if (this.atOccurrence) return this.pos.to;}, - - replace: function(newText) { - if (!this.atOccurrence) return; - var lines = CodeMirror.splitLines(newText); - this.doc.replaceRange(lines, this.pos.from, this.pos.to); - this.pos.to = Pos(this.pos.from.line + lines.length - 1, - lines[lines.length - 1].length + (lines.length == 1 ? this.pos.from.ch : 0)); - } - }; - - // Maps a position in a case-folded line back to a position in the original line - // (compensating for codepoints increasing in number during folding) - function adjustPos(orig, folded, pos) { - if (orig.length == folded.length) return pos; - for (var pos1 = Math.min(pos, orig.length);;) { - var len1 = orig.slice(0, pos1).toLowerCase().length; - if (len1 < pos) ++pos1; - else if (len1 > pos) --pos1; - else return pos1; - } - } - - CodeMirror.defineExtension("getSearchCursor", function(query, pos, caseFold) { - return new SearchCursor(this.doc, query, pos, caseFold); - }); - CodeMirror.defineDocExtension("getSearchCursor", function(query, pos, caseFold) { - return new SearchCursor(this, query, pos, caseFold); - }); - - CodeMirror.defineExtension("selectMatches", function(query, caseFold) { - var ranges = [], next; - var cur = this.getSearchCursor(query, this.getCursor("from"), caseFold); - while (next = cur.findNext()) { - if (CodeMirror.cmpPos(cur.to(), this.getCursor("to")) > 0) break; - ranges.push({anchor: cur.from(), head: cur.to()}); - } - if (ranges.length) - this.setSelections(ranges, 0); - }); -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/addon/selection/active-line.js b/src/main/resources/static/editor.md-master/lib/codemirror/addon/selection/active-line.js deleted file mode 100644 index 22da2e0..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/addon/selection/active-line.js +++ /dev/null @@ -1,71 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -// Because sometimes you need to style the cursor's line. -// -// Adds an option 'styleActiveLine' which, when enabled, gives the -// active line's wrapping
the CSS class "CodeMirror-activeline", -// and gives its background
the class "CodeMirror-activeline-background". - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { - "use strict"; - var WRAP_CLASS = "CodeMirror-activeline"; - var BACK_CLASS = "CodeMirror-activeline-background"; - - CodeMirror.defineOption("styleActiveLine", false, function(cm, val, old) { - var prev = old && old != CodeMirror.Init; - if (val && !prev) { - cm.state.activeLines = []; - updateActiveLines(cm, cm.listSelections()); - cm.on("beforeSelectionChange", selectionChange); - } else if (!val && prev) { - cm.off("beforeSelectionChange", selectionChange); - clearActiveLines(cm); - delete cm.state.activeLines; - } - }); - - function clearActiveLines(cm) { - for (var i = 0; i < cm.state.activeLines.length; i++) { - cm.removeLineClass(cm.state.activeLines[i], "wrap", WRAP_CLASS); - cm.removeLineClass(cm.state.activeLines[i], "background", BACK_CLASS); - } - } - - function sameArray(a, b) { - if (a.length != b.length) return false; - for (var i = 0; i < a.length; i++) - if (a[i] != b[i]) return false; - return true; - } - - function updateActiveLines(cm, ranges) { - var active = []; - for (var i = 0; i < ranges.length; i++) { - var range = ranges[i]; - if (!range.empty()) continue; - var line = cm.getLineHandleVisualStart(range.head.line); - if (active[active.length - 1] != line) active.push(line); - } - if (sameArray(cm.state.activeLines, active)) return; - cm.operation(function() { - clearActiveLines(cm); - for (var i = 0; i < active.length; i++) { - cm.addLineClass(active[i], "wrap", WRAP_CLASS); - cm.addLineClass(active[i], "background", BACK_CLASS); - } - cm.state.activeLines = active; - }); - } - - function selectionChange(cm, sel) { - updateActiveLines(cm, sel.ranges); - } -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/addon/selection/mark-selection.js b/src/main/resources/static/editor.md-master/lib/codemirror/addon/selection/mark-selection.js deleted file mode 100644 index 5c42d21..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/addon/selection/mark-selection.js +++ /dev/null @@ -1,118 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -// Because sometimes you need to mark the selected *text*. -// -// Adds an option 'styleSelectedText' which, when enabled, gives -// selected text the CSS class given as option value, or -// "CodeMirror-selectedtext" when the value is not a string. - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { - "use strict"; - - CodeMirror.defineOption("styleSelectedText", false, function(cm, val, old) { - var prev = old && old != CodeMirror.Init; - if (val && !prev) { - cm.state.markedSelection = []; - cm.state.markedSelectionStyle = typeof val == "string" ? val : "CodeMirror-selectedtext"; - reset(cm); - cm.on("cursorActivity", onCursorActivity); - cm.on("change", onChange); - } else if (!val && prev) { - cm.off("cursorActivity", onCursorActivity); - cm.off("change", onChange); - clear(cm); - cm.state.markedSelection = cm.state.markedSelectionStyle = null; - } - }); - - function onCursorActivity(cm) { - cm.operation(function() { update(cm); }); - } - - function onChange(cm) { - if (cm.state.markedSelection.length) - cm.operation(function() { clear(cm); }); - } - - var CHUNK_SIZE = 8; - var Pos = CodeMirror.Pos; - var cmp = CodeMirror.cmpPos; - - function coverRange(cm, from, to, addAt) { - if (cmp(from, to) == 0) return; - var array = cm.state.markedSelection; - var cls = cm.state.markedSelectionStyle; - for (var line = from.line;;) { - var start = line == from.line ? from : Pos(line, 0); - var endLine = line + CHUNK_SIZE, atEnd = endLine >= to.line; - var end = atEnd ? to : Pos(endLine, 0); - var mark = cm.markText(start, end, {className: cls}); - if (addAt == null) array.push(mark); - else array.splice(addAt++, 0, mark); - if (atEnd) break; - line = endLine; - } - } - - function clear(cm) { - var array = cm.state.markedSelection; - for (var i = 0; i < array.length; ++i) array[i].clear(); - array.length = 0; - } - - function reset(cm) { - clear(cm); - var ranges = cm.listSelections(); - for (var i = 0; i < ranges.length; i++) - coverRange(cm, ranges[i].from(), ranges[i].to()); - } - - function update(cm) { - if (!cm.somethingSelected()) return clear(cm); - if (cm.listSelections().length > 1) return reset(cm); - - var from = cm.getCursor("start"), to = cm.getCursor("end"); - - var array = cm.state.markedSelection; - if (!array.length) return coverRange(cm, from, to); - - var coverStart = array[0].find(), coverEnd = array[array.length - 1].find(); - if (!coverStart || !coverEnd || to.line - from.line < CHUNK_SIZE || - cmp(from, coverEnd.to) >= 0 || cmp(to, coverStart.from) <= 0) - return reset(cm); - - while (cmp(from, coverStart.from) > 0) { - array.shift().clear(); - coverStart = array[0].find(); - } - if (cmp(from, coverStart.from) < 0) { - if (coverStart.to.line - from.line < CHUNK_SIZE) { - array.shift().clear(); - coverRange(cm, from, coverStart.to, 0); - } else { - coverRange(cm, from, coverStart.from, 0); - } - } - - while (cmp(to, coverEnd.to) < 0) { - array.pop().clear(); - coverEnd = array[array.length - 1].find(); - } - if (cmp(to, coverEnd.to) > 0) { - if (to.line - coverEnd.from.line < CHUNK_SIZE) { - array.pop().clear(); - coverRange(cm, coverEnd.from, to); - } else { - coverRange(cm, coverEnd.to, to); - } - } - } -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/addon/selection/selection-pointer.js b/src/main/resources/static/editor.md-master/lib/codemirror/addon/selection/selection-pointer.js deleted file mode 100644 index ef5e404..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/addon/selection/selection-pointer.js +++ /dev/null @@ -1,98 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { - "use strict"; - - CodeMirror.defineOption("selectionPointer", false, function(cm, val) { - var data = cm.state.selectionPointer; - if (data) { - CodeMirror.off(cm.getWrapperElement(), "mousemove", data.mousemove); - CodeMirror.off(cm.getWrapperElement(), "mouseout", data.mouseout); - CodeMirror.off(window, "scroll", data.windowScroll); - cm.off("cursorActivity", reset); - cm.off("scroll", reset); - cm.state.selectionPointer = null; - cm.display.lineDiv.style.cursor = ""; - } - if (val) { - data = cm.state.selectionPointer = { - value: typeof val == "string" ? val : "default", - mousemove: function(event) { mousemove(cm, event); }, - mouseout: function(event) { mouseout(cm, event); }, - windowScroll: function() { reset(cm); }, - rects: null, - mouseX: null, mouseY: null, - willUpdate: false - }; - CodeMirror.on(cm.getWrapperElement(), "mousemove", data.mousemove); - CodeMirror.on(cm.getWrapperElement(), "mouseout", data.mouseout); - CodeMirror.on(window, "scroll", data.windowScroll); - cm.on("cursorActivity", reset); - cm.on("scroll", reset); - } - }); - - function mousemove(cm, event) { - var data = cm.state.selectionPointer; - if (event.buttons == null ? event.which : event.buttons) { - data.mouseX = data.mouseY = null; - } else { - data.mouseX = event.clientX; - data.mouseY = event.clientY; - } - scheduleUpdate(cm); - } - - function mouseout(cm, event) { - if (!cm.getWrapperElement().contains(event.relatedTarget)) { - var data = cm.state.selectionPointer; - data.mouseX = data.mouseY = null; - scheduleUpdate(cm); - } - } - - function reset(cm) { - cm.state.selectionPointer.rects = null; - scheduleUpdate(cm); - } - - function scheduleUpdate(cm) { - if (!cm.state.selectionPointer.willUpdate) { - cm.state.selectionPointer.willUpdate = true; - setTimeout(function() { - update(cm); - cm.state.selectionPointer.willUpdate = false; - }, 50); - } - } - - function update(cm) { - var data = cm.state.selectionPointer; - if (!data) return; - if (data.rects == null && data.mouseX != null) { - data.rects = []; - if (cm.somethingSelected()) { - for (var sel = cm.display.selectionDiv.firstChild; sel; sel = sel.nextSibling) - data.rects.push(sel.getBoundingClientRect()); - } - } - var inside = false; - if (data.mouseX != null) for (var i = 0; i < data.rects.length; i++) { - var rect = data.rects[i]; - if (rect.left <= data.mouseX && rect.right >= data.mouseX && - rect.top <= data.mouseY && rect.bottom >= data.mouseY) - inside = true; - } - var cursor = inside ? data.value : ""; - if (cm.display.lineDiv.style.cursor != cursor) - cm.display.lineDiv.style.cursor = cursor; - } -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/addon/tern/tern.css b/src/main/resources/static/editor.md-master/lib/codemirror/addon/tern/tern.css deleted file mode 100644 index 76fba33..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/addon/tern/tern.css +++ /dev/null @@ -1,86 +0,0 @@ -.CodeMirror-Tern-completion { - padding-left: 22px; - position: relative; -} -.CodeMirror-Tern-completion:before { - position: absolute; - left: 2px; - bottom: 2px; - border-radius: 50%; - font-size: 12px; - font-weight: bold; - height: 15px; - width: 15px; - line-height: 16px; - text-align: center; - color: white; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -.CodeMirror-Tern-completion-unknown:before { - content: "?"; - background: #4bb; -} -.CodeMirror-Tern-completion-object:before { - content: "O"; - background: #77c; -} -.CodeMirror-Tern-completion-fn:before { - content: "F"; - background: #7c7; -} -.CodeMirror-Tern-completion-array:before { - content: "A"; - background: #c66; -} -.CodeMirror-Tern-completion-number:before { - content: "1"; - background: #999; -} -.CodeMirror-Tern-completion-string:before { - content: "S"; - background: #999; -} -.CodeMirror-Tern-completion-bool:before { - content: "B"; - background: #999; -} - -.CodeMirror-Tern-completion-guess { - color: #999; -} - -.CodeMirror-Tern-tooltip { - border: 1px solid silver; - border-radius: 3px; - color: #444; - padding: 2px 5px; - font-size: 90%; - font-family: monospace; - background-color: white; - white-space: pre-wrap; - - max-width: 40em; - position: absolute; - z-index: 10; - -webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2); - -moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2); - box-shadow: 2px 3px 5px rgba(0,0,0,.2); - - transition: opacity 1s; - -moz-transition: opacity 1s; - -webkit-transition: opacity 1s; - -o-transition: opacity 1s; - -ms-transition: opacity 1s; -} - -.CodeMirror-Tern-hint-doc { - max-width: 25em; - margin-top: -3px; -} - -.CodeMirror-Tern-fname { color: black; } -.CodeMirror-Tern-farg { color: #70a; } -.CodeMirror-Tern-farg-current { text-decoration: underline; } -.CodeMirror-Tern-type { color: #07c; } -.CodeMirror-Tern-fhint-guess { opacity: .7; } diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/addon/tern/tern.js b/src/main/resources/static/editor.md-master/lib/codemirror/addon/tern/tern.js deleted file mode 100644 index b049549..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/addon/tern/tern.js +++ /dev/null @@ -1,697 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -// Glue code between CodeMirror and Tern. -// -// Create a CodeMirror.TernServer to wrap an actual Tern server, -// register open documents (CodeMirror.Doc instances) with it, and -// call its methods to activate the assisting functions that Tern -// provides. -// -// Options supported (all optional): -// * defs: An array of JSON definition data structures. -// * plugins: An object mapping plugin names to configuration -// options. -// * getFile: A function(name, c) that can be used to access files in -// the project that haven't been loaded yet. Simply do c(null) to -// indicate that a file is not available. -// * fileFilter: A function(value, docName, doc) that will be applied -// to documents before passing them on to Tern. -// * switchToDoc: A function(name, doc) that should, when providing a -// multi-file view, switch the view or focus to the named file. -// * showError: A function(editor, message) that can be used to -// override the way errors are displayed. -// * completionTip: Customize the content in tooltips for completions. -// Is passed a single argument—the completion's data as returned by -// Tern—and may return a string, DOM node, or null to indicate that -// no tip should be shown. By default the docstring is shown. -// * typeTip: Like completionTip, but for the tooltips shown for type -// queries. -// * responseFilter: A function(doc, query, request, error, data) that -// will be applied to the Tern responses before treating them -// -// -// It is possible to run the Tern server in a web worker by specifying -// these additional options: -// * useWorker: Set to true to enable web worker mode. You'll probably -// want to feature detect the actual value you use here, for example -// !!window.Worker. -// * workerScript: The main script of the worker. Point this to -// wherever you are hosting worker.js from this directory. -// * workerDeps: An array of paths pointing (relative to workerScript) -// to the Acorn and Tern libraries and any Tern plugins you want to -// load. Or, if you minified those into a single script and included -// them in the workerScript, simply leave this undefined. - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { - "use strict"; - // declare global: tern - - CodeMirror.TernServer = function(options) { - var self = this; - this.options = options || {}; - var plugins = this.options.plugins || (this.options.plugins = {}); - if (!plugins.doc_comment) plugins.doc_comment = true; - if (this.options.useWorker) { - this.server = new WorkerServer(this); - } else { - this.server = new tern.Server({ - getFile: function(name, c) { return getFile(self, name, c); }, - async: true, - defs: this.options.defs || [], - plugins: plugins - }); - } - this.docs = Object.create(null); - this.trackChange = function(doc, change) { trackChange(self, doc, change); }; - - this.cachedArgHints = null; - this.activeArgHints = null; - this.jumpStack = []; - - this.getHint = function(cm, c) { return hint(self, cm, c); }; - this.getHint.async = true; - }; - - CodeMirror.TernServer.prototype = { - addDoc: function(name, doc) { - var data = {doc: doc, name: name, changed: null}; - this.server.addFile(name, docValue(this, data)); - CodeMirror.on(doc, "change", this.trackChange); - return this.docs[name] = data; - }, - - delDoc: function(id) { - var found = resolveDoc(this, id); - if (!found) return; - CodeMirror.off(found.doc, "change", this.trackChange); - delete this.docs[found.name]; - this.server.delFile(found.name); - }, - - hideDoc: function(id) { - closeArgHints(this); - var found = resolveDoc(this, id); - if (found && found.changed) sendDoc(this, found); - }, - - complete: function(cm) { - cm.showHint({hint: this.getHint}); - }, - - showType: function(cm, pos, c) { showContextInfo(this, cm, pos, "type", c); }, - - showDocs: function(cm, pos, c) { showContextInfo(this, cm, pos, "documentation", c); }, - - updateArgHints: function(cm) { updateArgHints(this, cm); }, - - jumpToDef: function(cm) { jumpToDef(this, cm); }, - - jumpBack: function(cm) { jumpBack(this, cm); }, - - rename: function(cm) { rename(this, cm); }, - - selectName: function(cm) { selectName(this, cm); }, - - request: function (cm, query, c, pos) { - var self = this; - var doc = findDoc(this, cm.getDoc()); - var request = buildRequest(this, doc, query, pos); - - this.server.request(request, function (error, data) { - if (!error && self.options.responseFilter) - data = self.options.responseFilter(doc, query, request, error, data); - c(error, data); - }); - }, - - destroy: function () { - if (this.worker) { - this.worker.terminate(); - this.worker = null; - } - } - }; - - var Pos = CodeMirror.Pos; - var cls = "CodeMirror-Tern-"; - var bigDoc = 250; - - function getFile(ts, name, c) { - var buf = ts.docs[name]; - if (buf) - c(docValue(ts, buf)); - else if (ts.options.getFile) - ts.options.getFile(name, c); - else - c(null); - } - - function findDoc(ts, doc, name) { - for (var n in ts.docs) { - var cur = ts.docs[n]; - if (cur.doc == doc) return cur; - } - if (!name) for (var i = 0;; ++i) { - n = "[doc" + (i || "") + "]"; - if (!ts.docs[n]) { name = n; break; } - } - return ts.addDoc(name, doc); - } - - function resolveDoc(ts, id) { - if (typeof id == "string") return ts.docs[id]; - if (id instanceof CodeMirror) id = id.getDoc(); - if (id instanceof CodeMirror.Doc) return findDoc(ts, id); - } - - function trackChange(ts, doc, change) { - var data = findDoc(ts, doc); - - var argHints = ts.cachedArgHints; - if (argHints && argHints.doc == doc && cmpPos(argHints.start, change.to) <= 0) - ts.cachedArgHints = null; - - var changed = data.changed; - if (changed == null) - data.changed = changed = {from: change.from.line, to: change.from.line}; - var end = change.from.line + (change.text.length - 1); - if (change.from.line < changed.to) changed.to = changed.to - (change.to.line - end); - if (end >= changed.to) changed.to = end + 1; - if (changed.from > change.from.line) changed.from = change.from.line; - - if (doc.lineCount() > bigDoc && change.to - changed.from > 100) setTimeout(function() { - if (data.changed && data.changed.to - data.changed.from > 100) sendDoc(ts, data); - }, 200); - } - - function sendDoc(ts, doc) { - ts.server.request({files: [{type: "full", name: doc.name, text: docValue(ts, doc)}]}, function(error) { - if (error) window.console.error(error); - else doc.changed = null; - }); - } - - // Completion - - function hint(ts, cm, c) { - ts.request(cm, {type: "completions", types: true, docs: true, urls: true}, function(error, data) { - if (error) return showError(ts, cm, error); - var completions = [], after = ""; - var from = data.start, to = data.end; - if (cm.getRange(Pos(from.line, from.ch - 2), from) == "[\"" && - cm.getRange(to, Pos(to.line, to.ch + 2)) != "\"]") - after = "\"]"; - - for (var i = 0; i < data.completions.length; ++i) { - var completion = data.completions[i], className = typeToIcon(completion.type); - if (data.guess) className += " " + cls + "guess"; - completions.push({text: completion.name + after, - displayText: completion.name, - className: className, - data: completion}); - } - - var obj = {from: from, to: to, list: completions}; - var tooltip = null; - CodeMirror.on(obj, "close", function() { remove(tooltip); }); - CodeMirror.on(obj, "update", function() { remove(tooltip); }); - CodeMirror.on(obj, "select", function(cur, node) { - remove(tooltip); - var content = ts.options.completionTip ? ts.options.completionTip(cur.data) : cur.data.doc; - if (content) { - tooltip = makeTooltip(node.parentNode.getBoundingClientRect().right + window.pageXOffset, - node.getBoundingClientRect().top + window.pageYOffset, content); - tooltip.className += " " + cls + "hint-doc"; - } - }); - c(obj); - }); - } - - function typeToIcon(type) { - var suffix; - if (type == "?") suffix = "unknown"; - else if (type == "number" || type == "string" || type == "bool") suffix = type; - else if (/^fn\(/.test(type)) suffix = "fn"; - else if (/^\[/.test(type)) suffix = "array"; - else suffix = "object"; - return cls + "completion " + cls + "completion-" + suffix; - } - - // Type queries - - function showContextInfo(ts, cm, pos, queryName, c) { - ts.request(cm, queryName, function(error, data) { - if (error) return showError(ts, cm, error); - if (ts.options.typeTip) { - var tip = ts.options.typeTip(data); - } else { - var tip = elt("span", null, elt("strong", null, data.type || "not found")); - if (data.doc) - tip.appendChild(document.createTextNode(" — " + data.doc)); - if (data.url) { - tip.appendChild(document.createTextNode(" ")); - var child = tip.appendChild(elt("a", null, "[docs]")); - child.href = data.url; - child.target = "_blank"; - } - } - tempTooltip(cm, tip); - if (c) c(); - }, pos); - } - - // Maintaining argument hints - - function updateArgHints(ts, cm) { - closeArgHints(ts); - - if (cm.somethingSelected()) return; - var state = cm.getTokenAt(cm.getCursor()).state; - var inner = CodeMirror.innerMode(cm.getMode(), state); - if (inner.mode.name != "javascript") return; - var lex = inner.state.lexical; - if (lex.info != "call") return; - - var ch, argPos = lex.pos || 0, tabSize = cm.getOption("tabSize"); - for (var line = cm.getCursor().line, e = Math.max(0, line - 9), found = false; line >= e; --line) { - var str = cm.getLine(line), extra = 0; - for (var pos = 0;;) { - var tab = str.indexOf("\t", pos); - if (tab == -1) break; - extra += tabSize - (tab + extra) % tabSize - 1; - pos = tab + 1; - } - ch = lex.column - extra; - if (str.charAt(ch) == "(") {found = true; break;} - } - if (!found) return; - - var start = Pos(line, ch); - var cache = ts.cachedArgHints; - if (cache && cache.doc == cm.getDoc() && cmpPos(start, cache.start) == 0) - return showArgHints(ts, cm, argPos); - - ts.request(cm, {type: "type", preferFunction: true, end: start}, function(error, data) { - if (error || !data.type || !(/^fn\(/).test(data.type)) return; - ts.cachedArgHints = { - start: pos, - type: parseFnType(data.type), - name: data.exprName || data.name || "fn", - guess: data.guess, - doc: cm.getDoc() - }; - showArgHints(ts, cm, argPos); - }); - } - - function showArgHints(ts, cm, pos) { - closeArgHints(ts); - - var cache = ts.cachedArgHints, tp = cache.type; - var tip = elt("span", cache.guess ? cls + "fhint-guess" : null, - elt("span", cls + "fname", cache.name), "("); - for (var i = 0; i < tp.args.length; ++i) { - if (i) tip.appendChild(document.createTextNode(", ")); - var arg = tp.args[i]; - tip.appendChild(elt("span", cls + "farg" + (i == pos ? " " + cls + "farg-current" : ""), arg.name || "?")); - if (arg.type != "?") { - tip.appendChild(document.createTextNode(":\u00a0")); - tip.appendChild(elt("span", cls + "type", arg.type)); - } - } - tip.appendChild(document.createTextNode(tp.rettype ? ") ->\u00a0" : ")")); - if (tp.rettype) tip.appendChild(elt("span", cls + "type", tp.rettype)); - var place = cm.cursorCoords(null, "page"); - ts.activeArgHints = makeTooltip(place.right + 1, place.bottom, tip); - } - - function parseFnType(text) { - var args = [], pos = 3; - - function skipMatching(upto) { - var depth = 0, start = pos; - for (;;) { - var next = text.charAt(pos); - if (upto.test(next) && !depth) return text.slice(start, pos); - if (/[{\[\(]/.test(next)) ++depth; - else if (/[}\]\)]/.test(next)) --depth; - ++pos; - } - } - - // Parse arguments - if (text.charAt(pos) != ")") for (;;) { - var name = text.slice(pos).match(/^([^, \(\[\{]+): /); - if (name) { - pos += name[0].length; - name = name[1]; - } - args.push({name: name, type: skipMatching(/[\),]/)}); - if (text.charAt(pos) == ")") break; - pos += 2; - } - - var rettype = text.slice(pos).match(/^\) -> (.*)$/); - - return {args: args, rettype: rettype && rettype[1]}; - } - - // Moving to the definition of something - - function jumpToDef(ts, cm) { - function inner(varName) { - var req = {type: "definition", variable: varName || null}; - var doc = findDoc(ts, cm.getDoc()); - ts.server.request(buildRequest(ts, doc, req), function(error, data) { - if (error) return showError(ts, cm, error); - if (!data.file && data.url) { window.open(data.url); return; } - - if (data.file) { - var localDoc = ts.docs[data.file], found; - if (localDoc && (found = findContext(localDoc.doc, data))) { - ts.jumpStack.push({file: doc.name, - start: cm.getCursor("from"), - end: cm.getCursor("to")}); - moveTo(ts, doc, localDoc, found.start, found.end); - return; - } - } - showError(ts, cm, "Could not find a definition."); - }); - } - - if (!atInterestingExpression(cm)) - dialog(cm, "Jump to variable", function(name) { if (name) inner(name); }); - else - inner(); - } - - function jumpBack(ts, cm) { - var pos = ts.jumpStack.pop(), doc = pos && ts.docs[pos.file]; - if (!doc) return; - moveTo(ts, findDoc(ts, cm.getDoc()), doc, pos.start, pos.end); - } - - function moveTo(ts, curDoc, doc, start, end) { - doc.doc.setSelection(start, end); - if (curDoc != doc && ts.options.switchToDoc) { - closeArgHints(ts); - ts.options.switchToDoc(doc.name, doc.doc); - } - } - - // The {line,ch} representation of positions makes this rather awkward. - function findContext(doc, data) { - var before = data.context.slice(0, data.contextOffset).split("\n"); - var startLine = data.start.line - (before.length - 1); - var start = Pos(startLine, (before.length == 1 ? data.start.ch : doc.getLine(startLine).length) - before[0].length); - - var text = doc.getLine(startLine).slice(start.ch); - for (var cur = startLine + 1; cur < doc.lineCount() && text.length < data.context.length; ++cur) - text += "\n" + doc.getLine(cur); - if (text.slice(0, data.context.length) == data.context) return data; - - var cursor = doc.getSearchCursor(data.context, 0, false); - var nearest, nearestDist = Infinity; - while (cursor.findNext()) { - var from = cursor.from(), dist = Math.abs(from.line - start.line) * 10000; - if (!dist) dist = Math.abs(from.ch - start.ch); - if (dist < nearestDist) { nearest = from; nearestDist = dist; } - } - if (!nearest) return null; - - if (before.length == 1) - nearest.ch += before[0].length; - else - nearest = Pos(nearest.line + (before.length - 1), before[before.length - 1].length); - if (data.start.line == data.end.line) - var end = Pos(nearest.line, nearest.ch + (data.end.ch - data.start.ch)); - else - var end = Pos(nearest.line + (data.end.line - data.start.line), data.end.ch); - return {start: nearest, end: end}; - } - - function atInterestingExpression(cm) { - var pos = cm.getCursor("end"), tok = cm.getTokenAt(pos); - if (tok.start < pos.ch && (tok.type == "comment" || tok.type == "string")) return false; - return /\w/.test(cm.getLine(pos.line).slice(Math.max(pos.ch - 1, 0), pos.ch + 1)); - } - - // Variable renaming - - function rename(ts, cm) { - var token = cm.getTokenAt(cm.getCursor()); - if (!/\w/.test(token.string)) return showError(ts, cm, "Not at a variable"); - dialog(cm, "New name for " + token.string, function(newName) { - ts.request(cm, {type: "rename", newName: newName, fullDocs: true}, function(error, data) { - if (error) return showError(ts, cm, error); - applyChanges(ts, data.changes); - }); - }); - } - - function selectName(ts, cm) { - var name = findDoc(ts, cm.doc).name; - ts.request(cm, {type: "refs"}, function(error, data) { - if (error) return showError(ts, cm, error); - var ranges = [], cur = 0; - for (var i = 0; i < data.refs.length; i++) { - var ref = data.refs[i]; - if (ref.file == name) { - ranges.push({anchor: ref.start, head: ref.end}); - if (cmpPos(cur, ref.start) >= 0 && cmpPos(cur, ref.end) <= 0) - cur = ranges.length - 1; - } - } - cm.setSelections(ranges, cur); - }); - } - - var nextChangeOrig = 0; - function applyChanges(ts, changes) { - var perFile = Object.create(null); - for (var i = 0; i < changes.length; ++i) { - var ch = changes[i]; - (perFile[ch.file] || (perFile[ch.file] = [])).push(ch); - } - for (var file in perFile) { - var known = ts.docs[file], chs = perFile[file];; - if (!known) continue; - chs.sort(function(a, b) { return cmpPos(b.start, a.start); }); - var origin = "*rename" + (++nextChangeOrig); - for (var i = 0; i < chs.length; ++i) { - var ch = chs[i]; - known.doc.replaceRange(ch.text, ch.start, ch.end, origin); - } - } - } - - // Generic request-building helper - - function buildRequest(ts, doc, query, pos) { - var files = [], offsetLines = 0, allowFragments = !query.fullDocs; - if (!allowFragments) delete query.fullDocs; - if (typeof query == "string") query = {type: query}; - query.lineCharPositions = true; - if (query.end == null) { - query.end = pos || doc.doc.getCursor("end"); - if (doc.doc.somethingSelected()) - query.start = doc.doc.getCursor("start"); - } - var startPos = query.start || query.end; - - if (doc.changed) { - if (doc.doc.lineCount() > bigDoc && allowFragments !== false && - doc.changed.to - doc.changed.from < 100 && - doc.changed.from <= startPos.line && doc.changed.to > query.end.line) { - files.push(getFragmentAround(doc, startPos, query.end)); - query.file = "#0"; - var offsetLines = files[0].offsetLines; - if (query.start != null) query.start = Pos(query.start.line - -offsetLines, query.start.ch); - query.end = Pos(query.end.line - offsetLines, query.end.ch); - } else { - files.push({type: "full", - name: doc.name, - text: docValue(ts, doc)}); - query.file = doc.name; - doc.changed = null; - } - } else { - query.file = doc.name; - } - for (var name in ts.docs) { - var cur = ts.docs[name]; - if (cur.changed && cur != doc) { - files.push({type: "full", name: cur.name, text: docValue(ts, cur)}); - cur.changed = null; - } - } - - return {query: query, files: files}; - } - - function getFragmentAround(data, start, end) { - var doc = data.doc; - var minIndent = null, minLine = null, endLine, tabSize = 4; - for (var p = start.line - 1, min = Math.max(0, p - 50); p >= min; --p) { - var line = doc.getLine(p), fn = line.search(/\bfunction\b/); - if (fn < 0) continue; - var indent = CodeMirror.countColumn(line, null, tabSize); - if (minIndent != null && minIndent <= indent) continue; - minIndent = indent; - minLine = p; - } - if (minLine == null) minLine = min; - var max = Math.min(doc.lastLine(), end.line + 20); - if (minIndent == null || minIndent == CodeMirror.countColumn(doc.getLine(start.line), null, tabSize)) - endLine = max; - else for (endLine = end.line + 1; endLine < max; ++endLine) { - var indent = CodeMirror.countColumn(doc.getLine(endLine), null, tabSize); - if (indent <= minIndent) break; - } - var from = Pos(minLine, 0); - - return {type: "part", - name: data.name, - offsetLines: from.line, - text: doc.getRange(from, Pos(endLine, 0))}; - } - - // Generic utilities - - var cmpPos = CodeMirror.cmpPos; - - function elt(tagname, cls /*, ... elts*/) { - var e = document.createElement(tagname); - if (cls) e.className = cls; - for (var i = 2; i < arguments.length; ++i) { - var elt = arguments[i]; - if (typeof elt == "string") elt = document.createTextNode(elt); - e.appendChild(elt); - } - return e; - } - - function dialog(cm, text, f) { - if (cm.openDialog) - cm.openDialog(text + ": ", f); - else - f(prompt(text, "")); - } - - // Tooltips - - function tempTooltip(cm, content) { - if (cm.state.ternTooltip) remove(cm.state.ternTooltip); - var where = cm.cursorCoords(); - var tip = cm.state.ternTooltip = makeTooltip(where.right + 1, where.bottom, content); - function maybeClear() { - old = true; - if (!mouseOnTip) clear(); - } - function clear() { - cm.state.ternTooltip = null; - if (!tip.parentNode) return; - cm.off("cursorActivity", clear); - cm.off('blur', clear); - cm.off('scroll', clear); - fadeOut(tip); - } - var mouseOnTip = false, old = false; - CodeMirror.on(tip, "mousemove", function() { mouseOnTip = true; }); - CodeMirror.on(tip, "mouseout", function(e) { - if (!CodeMirror.contains(tip, e.relatedTarget || e.toElement)) { - if (old) clear(); - else mouseOnTip = false; - } - }); - setTimeout(maybeClear, 1700); - cm.on("cursorActivity", clear); - cm.on('blur', clear); - cm.on('scroll', clear); - } - - function makeTooltip(x, y, content) { - var node = elt("div", cls + "tooltip", content); - node.style.left = x + "px"; - node.style.top = y + "px"; - document.body.appendChild(node); - return node; - } - - function remove(node) { - var p = node && node.parentNode; - if (p) p.removeChild(node); - } - - function fadeOut(tooltip) { - tooltip.style.opacity = "0"; - setTimeout(function() { remove(tooltip); }, 1100); - } - - function showError(ts, cm, msg) { - if (ts.options.showError) - ts.options.showError(cm, msg); - else - tempTooltip(cm, String(msg)); - } - - function closeArgHints(ts) { - if (ts.activeArgHints) { remove(ts.activeArgHints); ts.activeArgHints = null; } - } - - function docValue(ts, doc) { - var val = doc.doc.getValue(); - if (ts.options.fileFilter) val = ts.options.fileFilter(val, doc.name, doc.doc); - return val; - } - - // Worker wrapper - - function WorkerServer(ts) { - var worker = ts.worker = new Worker(ts.options.workerScript); - worker.postMessage({type: "init", - defs: ts.options.defs, - plugins: ts.options.plugins, - scripts: ts.options.workerDeps}); - var msgId = 0, pending = {}; - - function send(data, c) { - if (c) { - data.id = ++msgId; - pending[msgId] = c; - } - worker.postMessage(data); - } - worker.onmessage = function(e) { - var data = e.data; - if (data.type == "getFile") { - getFile(ts, data.name, function(err, text) { - send({type: "getFile", err: String(err), text: text, id: data.id}); - }); - } else if (data.type == "debug") { - window.console.log(data.message); - } else if (data.id && pending[data.id]) { - pending[data.id](data.err, data.body); - delete pending[data.id]; - } - }; - worker.onerror = function(e) { - for (var id in pending) pending[id](e); - pending = {}; - }; - - this.addFile = function(name, text) { send({type: "add", name: name, text: text}); }; - this.delFile = function(name) { send({type: "del", name: name}); }; - this.request = function(body, c) { send({type: "req", body: body}, c); }; - } -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/addon/tern/worker.js b/src/main/resources/static/editor.md-master/lib/codemirror/addon/tern/worker.js deleted file mode 100644 index 48277af..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/addon/tern/worker.js +++ /dev/null @@ -1,44 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -// declare global: tern, server - -var server; - -this.onmessage = function(e) { - var data = e.data; - switch (data.type) { - case "init": return startServer(data.defs, data.plugins, data.scripts); - case "add": return server.addFile(data.name, data.text); - case "del": return server.delFile(data.name); - case "req": return server.request(data.body, function(err, reqData) { - postMessage({id: data.id, body: reqData, err: err && String(err)}); - }); - case "getFile": - var c = pending[data.id]; - delete pending[data.id]; - return c(data.err, data.text); - default: throw new Error("Unknown message type: " + data.type); - } -}; - -var nextId = 0, pending = {}; -function getFile(file, c) { - postMessage({type: "getFile", name: file, id: ++nextId}); - pending[nextId] = c; -} - -function startServer(defs, plugins, scripts) { - if (scripts) importScripts.apply(null, scripts); - - server = new tern.Server({ - getFile: getFile, - async: true, - defs: defs, - plugins: plugins - }); -} - -var console = { - log: function(v) { postMessage({type: "debug", message: v}); } -}; diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/addon/wrap/hardwrap.js b/src/main/resources/static/editor.md-master/lib/codemirror/addon/wrap/hardwrap.js deleted file mode 100644 index fe9b4dd..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/addon/wrap/hardwrap.js +++ /dev/null @@ -1,139 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { - "use strict"; - - var Pos = CodeMirror.Pos; - - function findParagraph(cm, pos, options) { - var startRE = options.paragraphStart || cm.getHelper(pos, "paragraphStart"); - for (var start = pos.line, first = cm.firstLine(); start > first; --start) { - var line = cm.getLine(start); - if (startRE && startRE.test(line)) break; - if (!/\S/.test(line)) { ++start; break; } - } - var endRE = options.paragraphEnd || cm.getHelper(pos, "paragraphEnd"); - for (var end = pos.line + 1, last = cm.lastLine(); end <= last; ++end) { - var line = cm.getLine(end); - if (endRE && endRE.test(line)) { ++end; break; } - if (!/\S/.test(line)) break; - } - return {from: start, to: end}; - } - - function findBreakPoint(text, column, wrapOn, killTrailingSpace) { - for (var at = column; at > 0; --at) - if (wrapOn.test(text.slice(at - 1, at + 1))) break; - if (at == 0) at = column; - var endOfText = at; - if (killTrailingSpace) - while (text.charAt(endOfText - 1) == " ") --endOfText; - return {from: endOfText, to: at}; - } - - function wrapRange(cm, from, to, options) { - from = cm.clipPos(from); to = cm.clipPos(to); - var column = options.column || 80; - var wrapOn = options.wrapOn || /\s\S|-[^\.\d]/; - var killTrailing = options.killTrailingSpace !== false; - var changes = [], curLine = "", curNo = from.line; - var lines = cm.getRange(from, to, false); - if (!lines.length) return null; - var leadingSpace = lines[0].match(/^[ \t]*/)[0]; - - for (var i = 0; i < lines.length; ++i) { - var text = lines[i], oldLen = curLine.length, spaceInserted = 0; - if (curLine && text && !wrapOn.test(curLine.charAt(curLine.length - 1) + text.charAt(0))) { - curLine += " "; - spaceInserted = 1; - } - var spaceTrimmed = ""; - if (i) { - spaceTrimmed = text.match(/^\s*/)[0]; - text = text.slice(spaceTrimmed.length); - } - curLine += text; - if (i) { - var firstBreak = curLine.length > column && leadingSpace == spaceTrimmed && - findBreakPoint(curLine, column, wrapOn, killTrailing); - // If this isn't broken, or is broken at a different point, remove old break - if (!firstBreak || firstBreak.from != oldLen || firstBreak.to != oldLen + spaceInserted) { - changes.push({text: [spaceInserted ? " " : ""], - from: Pos(curNo, oldLen), - to: Pos(curNo + 1, spaceTrimmed.length)}); - } else { - curLine = leadingSpace + text; - ++curNo; - } - } - while (curLine.length > column) { - var bp = findBreakPoint(curLine, column, wrapOn, killTrailing); - changes.push({text: ["", leadingSpace], - from: Pos(curNo, bp.from), - to: Pos(curNo, bp.to)}); - curLine = leadingSpace + curLine.slice(bp.to); - ++curNo; - } - } - if (changes.length) cm.operation(function() { - for (var i = 0; i < changes.length; ++i) { - var change = changes[i]; - cm.replaceRange(change.text, change.from, change.to); - } - }); - return changes.length ? {from: changes[0].from, to: CodeMirror.changeEnd(changes[changes.length - 1])} : null; - } - - CodeMirror.defineExtension("wrapParagraph", function(pos, options) { - options = options || {}; - if (!pos) pos = this.getCursor(); - var para = findParagraph(this, pos, options); - return wrapRange(this, Pos(para.from, 0), Pos(para.to - 1), options); - }); - - CodeMirror.commands.wrapLines = function(cm) { - cm.operation(function() { - var ranges = cm.listSelections(), at = cm.lastLine() + 1; - for (var i = ranges.length - 1; i >= 0; i--) { - var range = ranges[i], span; - if (range.empty()) { - var para = findParagraph(cm, range.head, {}); - span = {from: Pos(para.from, 0), to: Pos(para.to - 1)}; - } else { - span = {from: range.from(), to: range.to()}; - } - if (span.to.line >= at) continue; - at = span.from.line; - wrapRange(cm, span.from, span.to, {}); - } - }); - }; - - CodeMirror.defineExtension("wrapRange", function(from, to, options) { - return wrapRange(this, from, to, options || {}); - }); - - CodeMirror.defineExtension("wrapParagraphsInRange", function(from, to, options) { - options = options || {}; - var cm = this, paras = []; - for (var line = from.line; line <= to.line;) { - var para = findParagraph(cm, Pos(line, 0), options); - paras.push(para); - line = para.to; - } - var madeChange = false; - if (paras.length) cm.operation(function() { - for (var i = paras.length - 1; i >= 0; --i) - madeChange = madeChange || wrapRange(cm, Pos(paras[i].from, 0), Pos(paras[i].to - 1), options); - }); - return madeChange; - }); -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/addons.min.js b/src/main/resources/static/editor.md-master/lib/codemirror/addons.min.js deleted file mode 100644 index a098080..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/addons.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! Editor.md v1.5.0 | addons.min.js | Open source online markdown editor. | MIT License | By: Pandao | https://github.com/pandao/editor.md | 2015-06-09 */ -!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){e.defineOption("showTrailingSpace",!1,function(t,i,o){o==e.Init&&(o=!1),o&&!i?t.removeOverlay("trailingspace"):!o&&i&&t.addOverlay({token:function(e){for(var t=e.string.length,i=t;i&&/\s/.test(e.string.charAt(i-1));--i);return i>e.pos?(e.pos=i,null):(e.pos=t,"trailingspace")},name:"trailingspace"})})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){function t(e,t,i){var o,r=e.getWrapperElement();return o=r.appendChild(document.createElement("div")),i?o.className="CodeMirror-dialog CodeMirror-dialog-bottom":o.className="CodeMirror-dialog CodeMirror-dialog-top","string"==typeof t?o.innerHTML=t:o.appendChild(t),o}function i(e,t){e.state.currentNotificationClose&&e.state.currentNotificationClose(),e.state.currentNotificationClose=t}e.defineExtension("openDialog",function(o,r,n){function a(e){if("string"==typeof e)h.value=e;else{if(c)return;c=!0,l.parentNode.removeChild(l),d.focus(),n.onClose&&n.onClose(l)}}n||(n={}),i(this,null);var s,l=t(this,o,n.bottom),c=!1,d=this,h=l.getElementsByTagName("input")[0];return h?(n.value&&(h.value=n.value,h.select()),n.onInput&&e.on(h,"input",function(e){n.onInput(e,h.value,a)}),n.onKeyUp&&e.on(h,"keyup",function(e){n.onKeyUp(e,h.value,a)}),e.on(h,"keydown",function(t){n&&n.onKeyDown&&n.onKeyDown(t,h.value,a)||((27==t.keyCode||n.closeOnEnter!==!1&&13==t.keyCode)&&(h.blur(),e.e_stop(t),a()),13==t.keyCode&&r(h.value,t))}),n.closeOnBlur!==!1&&e.on(h,"blur",a),h.focus()):(s=l.getElementsByTagName("button")[0])&&(e.on(s,"click",function(){a(),d.focus()}),n.closeOnBlur!==!1&&e.on(s,"blur",a),s.focus()),a}),e.defineExtension("openConfirm",function(o,r,n){function a(){c||(c=!0,s.parentNode.removeChild(s),d.focus())}i(this,null);var s=t(this,o,n&&n.bottom),l=s.getElementsByTagName("button"),c=!1,d=this,h=1;l[0].focus();for(var u=0;u=h&&a()},200)}),e.on(f,"focus",function(){++h})}}),e.defineExtension("openNotification",function(o,r){function n(){l||(l=!0,clearTimeout(a),s.parentNode.removeChild(s))}i(this,n);var a,s=t(this,o,r&&r.bottom),l=!1,c=r&&"undefined"!=typeof r.duration?r.duration:5e3;return e.on(s,"click",function(t){e.e_preventDefault(t),n()}),c&&(a=setTimeout(n,c)),n})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(e,t,r,n){if(this.atOccurrence=!1,this.doc=e,null==n&&"string"==typeof t&&(n=!1),r=r?e.clipPos(r):o(0,0),this.pos={from:r,to:r},"string"!=typeof t)t.global||(t=new RegExp(t.source,t.ignoreCase?"ig":"g")),this.matches=function(i,r){if(i){t.lastIndex=0;for(var n,a,s=e.getLine(r.line).slice(0,r.ch),l=0;;){t.lastIndex=l;var c=t.exec(s);if(!c)break;if(n=c,a=n.index,l=n.index+(n[0].length||1),l==s.length)break}var d=n&&n[0].length||0;d||(0==a&&0==s.length?n=void 0:a!=e.getLine(r.line).length&&d++)}else{t.lastIndex=r.ch;var s=e.getLine(r.line),n=t.exec(s),d=n&&n[0].length||0,a=n&&n.index;a+d==s.length||d||(d=1)}return n&&d?{from:o(r.line,a),to:o(r.line,a+d),match:n}:void 0};else{var a=t;n&&(t=t.toLowerCase());var s=n?function(e){return e.toLowerCase()}:function(e){return e},l=t.split("\n");if(1==l.length)t.length?this.matches=function(r,n){if(r){var l=e.getLine(n.line).slice(0,n.ch),c=s(l),d=c.lastIndexOf(t);if(d>-1)return d=i(l,c,d),{from:o(n.line,d),to:o(n.line,d+a.length)}}else{var l=e.getLine(n.line).slice(n.ch),c=s(l),d=c.indexOf(t);if(d>-1)return d=i(l,c,d)+n.ch,{from:o(n.line,d),to:o(n.line,d+a.length)}}}:this.matches=function(){};else{var c=a.split("\n");this.matches=function(t,i){var r=l.length-1;if(t){if(i.line-(l.length-1)=1;--d,--a)if(l[d]!=s(e.getLine(a)))return;var h=e.getLine(a),u=h.length-c[0].length;if(s(h.slice(u))!=l[0])return;return{from:o(a,u),to:n}}if(!(i.line+(l.length-1)>e.lastLine())){var h=e.getLine(i.line),u=h.length-c[0].length;if(s(h.slice(u))==l[0]){for(var f=o(i.line,u),a=i.line+1,d=1;r>d;++d,++a)if(l[d]!=s(e.getLine(a)))return;if(s(e.getLine(a).slice(0,c[r].length))==l[r])return{from:f,to:o(a,c[r].length)}}}}}}}function i(e,t,i){if(e.length==t.length)return i;for(var o=Math.min(i,e.length);;){var r=e.slice(0,o).toLowerCase().length;if(i>r)++o;else{if(!(r>i))return o;--o}}}var o=e.Pos;t.prototype={findNext:function(){return this.find(!1)},findPrevious:function(){return this.find(!0)},find:function(e){function t(e){var t=o(e,0);return i.pos={from:t,to:t},i.atOccurrence=!1,!1}for(var i=this,r=this.doc.clipPos(e?this.pos.from:this.pos.to);;){if(this.pos=this.matches(e,r))return this.atOccurrence=!0,this.pos.match||!0;if(e){if(!r.line)return t(0);r=o(r.line-1,this.doc.getLine(r.line-1).length)}else{var n=this.doc.lineCount();if(r.line==n-1)return t(n);r=o(r.line+1,0)}}},from:function(){return this.atOccurrence?this.pos.from:void 0},to:function(){return this.atOccurrence?this.pos.to:void 0},replace:function(t){if(this.atOccurrence){var i=e.splitLines(t);this.doc.replaceRange(i,this.pos.from,this.pos.to),this.pos.to=o(this.pos.from.line+i.length-1,i[i.length-1].length+(1==i.length?this.pos.from.ch:0))}}},e.defineExtension("getSearchCursor",function(e,i,o){return new t(this.doc,e,i,o)}),e.defineDocExtension("getSearchCursor",function(e,i,o){return new t(this,e,i,o)}),e.defineExtension("selectMatches",function(t,i){for(var o,r=[],n=this.getSearchCursor(t,this.getCursor("from"),i);(o=n.findNext())&&!(e.cmpPos(n.to(),this.getCursor("to"))>0);)r.push({anchor:n.from(),head:n.to()});r.length&&this.setSelections(r,0)})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror"),require("./searchcursor"),require("../dialog/dialog")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","./searchcursor","../dialog/dialog"],e):e(CodeMirror)}(function(e){"use strict";function t(e,t){return"string"==typeof e?e=new RegExp(e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),t?"gi":"g"):e.global||(e=new RegExp(e.source,e.ignoreCase?"gi":"g")),{token:function(t){e.lastIndex=t.pos;var i=e.exec(t.string);return i&&i.index==t.pos?(t.pos+=i[0].length,"searching"):void(i?t.pos=i.index:t.skipToEnd())}}}function i(){this.posFrom=this.posTo=this.query=null,this.overlay=null}function o(e){return e.state.search||(e.state.search=new i)}function r(e){return"string"==typeof e&&e==e.toLowerCase()}function n(e,t,i){return e.getSearchCursor(t,i,r(t))}function a(e,t,i,o,r){e.openDialog?e.openDialog(t,r,{value:o}):r(prompt(i,o))}function s(e,t,i,o){e.openConfirm?e.openConfirm(t,o):confirm(i)&&o[0]()}function l(e){var t=e.match(/^\/(.*)\/([a-z]*)$/);if(t)try{e=new RegExp(t[1],-1==t[2].indexOf("i")?"":"i")}catch(i){}return("string"==typeof e?""==e:e.test(""))&&(e=/x^/),e}function c(e,i){var n=o(e);return n.query?d(e,i):void a(e,f,"Search for:",e.getSelection(),function(o){e.operation(function(){o&&!n.query&&(n.query=l(o),e.removeOverlay(n.overlay,r(n.query)),n.overlay=t(n.query,r(n.query)),e.addOverlay(n.overlay),e.showMatchesOnScrollbar&&(n.annotate&&(n.annotate.clear(),n.annotate=null),n.annotate=e.showMatchesOnScrollbar(n.query,r(n.query))),n.posFrom=n.posTo=e.getCursor(),d(e,i))})})}function d(t,i){t.operation(function(){var r=o(t),a=n(t,r.query,i?r.posFrom:r.posTo);(a.find(i)||(a=n(t,r.query,i?e.Pos(t.lastLine()):e.Pos(t.firstLine(),0)),a.find(i)))&&(t.setSelection(a.from(),a.to()),t.scrollIntoView({from:a.from(),to:a.to()}),r.posFrom=a.from(),r.posTo=a.to())})}function h(e){e.operation(function(){var t=o(e);t.query&&(t.query=null,e.removeOverlay(t.overlay),t.annotate&&(t.annotate.clear(),t.annotate=null))})}function u(e,t){e.getOption("readOnly")||a(e,g,"Replace:",e.getSelection(),function(i){i&&(i=l(i),a(e,p,"Replace with:","",function(o){if(t)e.operation(function(){for(var t=n(e,i);t.findNext();)if("string"!=typeof i){var r=e.getRange(t.from(),t.to()).match(i);t.replace(o.replace(/\$(\d)/g,function(e,t){return r[t]}))}else t.replace(o)});else{h(e);var r=n(e,i,e.getCursor()),a=function(){var t,o=r.from();!(t=r.findNext())&&(r=n(e,i),!(t=r.findNext())||o&&r.from().line==o.line&&r.from().ch==o.ch)||(e.setSelection(r.from(),r.to()),e.scrollIntoView({from:r.from(),to:r.to()}),s(e,m,"Replace?",[function(){l(t)},a]))},l=function(e){r.replace("string"==typeof i?o:o.replace(/\$(\d)/g,function(t,i){return e[i]})),a()};a()}}))})}var f='Search: (Use /re/ syntax for regexp search)',g='Replace: (Use /re/ syntax for regexp search)',p='With: ',m="Replace? ";e.commands.find=function(e){h(e),c(e)},e.commands.findNext=c,e.commands.findPrev=function(e){c(e,!0)},e.commands.clearSearch=h,e.commands.replace=u,e.commands.replaceAll=function(e){u(e,!0)}}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(e,t){function i(e){clearTimeout(o.doRedraw),o.doRedraw=setTimeout(function(){o.redraw()},e)}this.cm=e,this.options=t,this.buttonHeight=t.scrollButtonHeight||e.getOption("scrollButtonHeight"),this.annotations=[],this.doRedraw=this.doUpdate=null,this.div=e.getWrapperElement().appendChild(document.createElement("div")),this.div.style.cssText="position: absolute; right: 0; top: 0; z-index: 7; pointer-events: none",this.computeScale();var o=this;e.on("refresh",this.resizeHandler=function(){clearTimeout(o.doUpdate),o.doUpdate=setTimeout(function(){o.computeScale()&&i(20)},100)}),e.on("markerAdded",this.resizeHandler),e.on("markerCleared",this.resizeHandler),t.listenForChanges!==!1&&e.on("change",this.changeHandler=function(){i(250)})}e.defineExtension("annotateScrollbar",function(e){return"string"==typeof e&&(e={className:e}),new t(this,e)}),e.defineOption("scrollButtonHeight",0),t.prototype.computeScale=function(){var e=this.cm,t=(e.getWrapperElement().clientHeight-e.display.barHeight-2*this.buttonHeight)/e.heightAtLine(e.lastLine()+1,"local");return t!=this.hScale?(this.hScale=t,!0):void 0},t.prototype.update=function(e){this.annotations=e,this.redraw()},t.prototype.redraw=function(e){e!==!1&&this.computeScale();var t=this.cm,i=this.hScale,o=document.createDocumentFragment(),r=this.annotations;if(t.display.barWidth)for(var n,a=0;ac+.9));)s=r[++a],c=t.charCoords(s.to,"local").bottom*i;if(c!=l){var d=Math.max(c-l,3),h=o.appendChild(document.createElement("div"));h.style.cssText="position: absolute; right: 0px; width: "+Math.max(t.display.barWidth-1,2)+"px; top: "+(l+this.buttonHeight)+"px; height: "+d+"px",h.className=this.options.className}}this.div.textContent="",this.div.appendChild(o)},t.prototype.clear=function(){this.cm.off("refresh",this.resizeHandler),this.cm.off("markerAdded",this.resizeHandler),this.cm.off("markerCleared",this.resizeHandler),this.changeHandler&&this.cm.off("change",this.changeHandler),this.div.parentNode.removeChild(this.div)}}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror"),require("./searchcursor"),require("../scroll/annotatescrollbar")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","./searchcursor","../scroll/annotatescrollbar"],e):e(CodeMirror)}(function(e){"use strict";function t(e,t,i,o){this.cm=e;var r={listenForChanges:!1};for(var n in o)r[n]=o[n];r.className||(r.className="CodeMirror-search-match"),this.annotation=e.annotateScrollbar(r),this.query=t,this.caseFold=i,this.gap={from:e.firstLine(),to:e.lastLine()+1},this.matches=[],this.update=null,this.findMatches(),this.annotation.update(this.matches);var a=this;e.on("change",this.changeHandler=function(e,t){a.onChange(t)})}function i(e,t,i){return t>=e?e:Math.max(t,e+i)}e.defineExtension("showMatchesOnScrollbar",function(e,i,o){return"string"==typeof o&&(o={className:o}),o||(o={}),new t(this,e,i,o)});var o=1e3;t.prototype.findMatches=function(){if(this.gap){for(var t=0;t=this.gap.to)break;i.to.line>=this.gap.from&&this.matches.splice(t--,1)}for(var r=this.cm.getSearchCursor(this.query,e.Pos(this.gap.from,0),this.caseFold);r.findNext();){var i={from:r.from(),to:r.to()};if(i.from.line>=this.gap.to)break;if(this.matches.splice(t++,0,i),this.matches.length>o)break}this.gap=null}},t.prototype.onChange=function(t){var o=t.from.line,r=e.changeEnd(t).line,n=r-t.to.line;if(this.gap?(this.gap.from=Math.min(i(this.gap.from,o,n),t.from.line),this.gap.to=Math.max(i(this.gap.to,o,n),t.from.line)):this.gap={from:t.from.line,to:r+1},n)for(var a=0;ac.ch&&(v=v.slice(0,v.length-d.end+c.ch));var w=v.toLowerCase();if(!v||"string"==d.type&&(d.end!=c.ch||!/[\"\']/.test(d.string.charAt(d.string.length-1))||1==d.string.length)||"tag"==d.type&&"closeTag"==u.type||d.string.indexOf("/")==d.string.length-1||p&&r(p,w)>-1||n(t,v,c,u,!0))return e.Pass;var b=m&&r(m,w)>-1;o[l]={indent:b,text:">"+(b?"\n\n":"")+"",newPos:b?e.Pos(c.line+1,0):e.Pos(c.line,c.ch+1)}}for(var l=i.length-1;l>=0;l--){var y=o[l];t.replaceRange(y.text,i[l].head,i[l].anchor,"+insert");var k=t.listSelections().slice(0);k[l]={head:y.newPos,anchor:y.newPos},t.setSelections(k),y.indent&&(t.indentLine(y.newPos.line,null,!0),t.indentLine(y.newPos.line+1,null,!0))}}function i(t,i){for(var o=t.listSelections(),r=[],a=i?"/":"";else{if("htmlmixed"!=t.getMode().name||"css"!=d.mode.name)return e.Pass;r[s]=a+"style>"}else{if(!h.context||!h.context.tagName||n(t,h.context.tagName,l,h))return e.Pass;r[s]=a+h.context.tagName+">"}}t.replaceSelections(r),o=t.listSelections();for(var s=0;si;++i)if(e[i]==t)return i;return-1}function n(t,i,o,r,n){if(!e.scanForClosingTag)return!1;var a=Math.min(t.lastLine()+1,o.line+500),s=e.scanForClosingTag(t,o,null,a);if(!s||s.tag!=i)return!1;for(var l=r.context,c=n?1:0;l&&l.tagName==i;l=l.prev)++c;o=s.to;for(var d=1;c>d;d++){var h=e.scanForClosingTag(t,o,null,a);if(!h||h.tag!=i)return!1;o=h.to}return!0}e.defineOption("autoCloseTags",!1,function(i,r,n){if(n!=e.Init&&n&&i.removeKeyMap("autoCloseTags"),r){var a={name:"autoCloseTags"};("object"!=typeof r||r.whenClosing)&&(a["'/'"]=function(e){return o(e)}),("object"!=typeof r||r.whenOpening)&&(a["'>'"]=function(e){return t(e)}),i.addKeyMap(a)}});var a=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"],s=["applet","blockquote","body","button","div","dl","fieldset","form","frameset","h1","h2","h3","h4","h5","h6","head","html","iframe","layer","legend","object","ol","p","select","table","ul"];e.commands.closeTag=function(e){return i(e)}}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(t,r,n,a){function s(e){var i=l(t,r);if(!i||i.to.line-i.from.linet.firstLine();)r=e.Pos(r.line-1,0),d=s(!1);if(d&&!d.cleared&&"unfold"!==a){var h=i(t,n);e.on(h,"mousedown",function(t){u.clear(),e.e_preventDefault(t)});var u=t.markText(d.from,d.to,{replacedWith:h,clearOnEnter:!0,__isFold:!0});u.on("clear",function(i,o){e.signal(t,"unfold",t,i,o)}),e.signal(t,"fold",t,d.from,d.to)}}function i(e,t){var i=o(e,t,"widget");if("string"==typeof i){var r=document.createTextNode(i);i=document.createElement("span"),i.appendChild(r),i.className="CodeMirror-foldmarker"}return i}function o(e,t,i){if(t&&void 0!==t[i])return t[i];var o=e.options.foldOptions;return o&&void 0!==o[i]?o[i]:r[i]}e.newFoldFunction=function(e,i){return function(o,r){t(o,r,{rangeFinder:e,widget:i})}},e.defineExtension("foldCode",function(e,i,o){t(this,e,i,o)}),e.defineExtension("isFolded",function(e){for(var t=this.findMarksAt(e),i=0;i=i;i++)t.foldCode(e.Pos(i,0),null,"fold")})},e.commands.unfoldAll=function(t){t.operation(function(){for(var i=t.firstLine(),o=t.lastLine();o>=i;i++)t.foldCode(e.Pos(i,0),null,"unfold")})},e.registerHelper("fold","combine",function(){var e=Array.prototype.slice.call(arguments,0);return function(t,i){for(var o=0;o=s&&(i=r(n.indicatorOpen))}e.setGutterMarker(t,n.gutter,i),++a})}function a(e){var t=e.getViewport(),i=e.state.foldGutter;i&&(e.operation(function(){n(e,t.from,t.to)}),i.from=t.from,i.to=t.to)}function s(e,t,i){var o=e.state.foldGutter;if(o){var r=o.options;i==r.gutter&&e.foldCode(h(t,0),r.rangeFinder)}}function l(e){var t=e.state.foldGutter;if(t){var i=t.options;t.from=t.to=0,clearTimeout(t.changeUpdate),t.changeUpdate=setTimeout(function(){a(e)},i.foldOnChangeTimeSpan||600)}}function c(e){var t=e.state.foldGutter;if(t){var i=t.options;clearTimeout(t.changeUpdate),t.changeUpdate=setTimeout(function(){var i=e.getViewport();t.from==t.to||i.from-t.to>20||t.from-i.to>20?a(e):e.operation(function(){i.fromt.to&&(n(e,t.to,i.to),t.to=i.to)})},i.updateViewportTimeSpan||400)}}function d(e,t){var i=e.state.foldGutter;if(i){var o=t.line;o>=i.from&&o=l;++l){var d=t.getLine(l),h=n(d);if(h>a)s=l;else if(/\S/.test(d))break}return s?{from:e.Pos(i.line,r.length),to:e.Pos(s,t.getLine(s).length)}:void 0}})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";e.registerHelper("fold","brace",function(t,i){function o(o){for(var r=i.ch,l=0;;){var c=0>=r?-1:s.lastIndexOf(o,r-1);if(-1!=c){if(1==l&&c=g;++g)for(var p=t.getLine(g),m=g==a?r:0;;){var v=p.indexOf(l,m),w=p.indexOf(c,m);if(0>v&&(v=p.length),0>w&&(w=p.length),m=Math.min(v,w),m==p.length)break;if(t.getTokenTypeAt(e.Pos(g,m+1))==n)if(m==v)++u;else if(!--u){d=g,h=m;break e}++m}if(null!=d&&(a!=d||h!=r))return{from:e.Pos(a,r),to:e.Pos(d,h)}}}),e.registerHelper("fold","import",function(t,i){function o(i){if(it.lastLine())return null;var o=t.getTokenAt(e.Pos(i,1));if(/\S/.test(o.string)||(o=t.getTokenAt(e.Pos(i,o.end+1))),"keyword"!=o.type||"import"!=o.string)return null;for(var r=i,n=Math.min(t.lastLine(),i+10);n>=r;++r){var a=t.getLine(r),s=a.indexOf(";");if(-1!=s)return{startCh:o.end,end:e.Pos(r,s)}}}var r,i=i.line,n=o(i);if(!n||o(i-1)||(r=o(i-2))&&r.end.line==i-1)return null;for(var a=n.end;;){var s=o(a.line+1);if(null==s)break;a=s.end}return{from:t.clipPos(e.Pos(i,n.startCh+1)),to:a}}),e.registerHelper("fold","include",function(t,i){function o(i){if(it.lastLine())return null;var o=t.getTokenAt(e.Pos(i,1));return/\S/.test(o.string)||(o=t.getTokenAt(e.Pos(i,o.end+1))),"meta"==o.type&&"#include"==o.string.slice(0,8)?o.start+8:void 0}var i=i.line,r=o(i);if(null==r||null!=o(i-1))return null;for(var n=i;;){var a=o(n+1);if(null==a)break;++n}return{from:e.Pos(i,r+1),to:t.clipPos(e.Pos(n))}})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(e,t){return e.line-t.line||e.ch-t.ch}function i(e,t,i,o){this.line=t,this.ch=i,this.cm=e,this.text=e.getLine(t),this.min=o?o.from:e.firstLine(),this.max=o?o.to-1:e.lastLine()}function o(e,t){var i=e.cm.getTokenTypeAt(u(e.line,t));return i&&/\btag\b/.test(i)}function r(e){return e.line>=e.max?void 0:(e.ch=0,e.text=e.cm.getLine(++e.line),!0)}function n(e){return e.line<=e.min?void 0:(e.text=e.cm.getLine(--e.line),e.ch=e.text.length,!0)}function a(e){for(;;){var t=e.text.indexOf(">",e.ch);if(-1==t){if(r(e))continue;return}{if(o(e,t+1)){var i=e.text.lastIndexOf("/",t),n=i>-1&&!/\S/.test(e.text.slice(i+1,t));return e.ch=t+1,n?"selfClose":"regular"}e.ch=t+1}}}function s(e){for(;;){var t=e.ch?e.text.lastIndexOf("<",e.ch-1):-1;if(-1==t){if(n(e))continue;return}if(o(e,t+1)){p.lastIndex=t,e.ch=t;var i=p.exec(e.text);if(i&&i.index==t)return i}else e.ch=t}}function l(e){for(;;){p.lastIndex=e.ch;var t=p.exec(e.text);if(!t){if(r(e))continue;return}{if(o(e,t.index+1))return e.ch=t.index+t[0].length,t;e.ch=t.index+1}}}function c(e){for(;;){var t=e.ch?e.text.lastIndexOf(">",e.ch-1):-1;if(-1==t){if(n(e))continue;return}{if(o(e,t+1)){var i=e.text.lastIndexOf("/",t),r=i>-1&&!/\S/.test(e.text.slice(i+1,t));return e.ch=t+1,r?"selfClose":"regular"}e.ch=t}}}function d(e,t){for(var i=[];;){var o,r=l(e),n=e.line,s=e.ch-(r?r[0].length:0);if(!r||!(o=a(e)))return;if("selfClose"!=o)if(r[1]){for(var c=i.length-1;c>=0;--c)if(i[c]==r[2]){i.length=c;break}if(0>c&&(!t||t==r[2]))return{tag:r[2],from:u(n,s),to:u(e.line,e.ch)}}else i.push(r[2])}}function h(e,t){for(var i=[];;){var o=c(e);if(!o)return;if("selfClose"!=o){var r=e.line,n=e.ch,a=s(e);if(!a)return;if(a[1])i.push(a[2]);else{for(var l=i.length-1;l>=0;--l)if(i[l]==a[2]){i.length=l;break}if(0>l&&(!t||t==a[2]))return{tag:a[2],from:u(e.line,e.ch),to:u(r,n)}}}else s(e)}}var u=e.Pos,f="A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",g=f+"-:.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040",p=new RegExp("<(/?)(["+f+"]["+g+"]*)","g");e.registerHelper("fold","xml",function(e,t){for(var o=new i(e,t.line,0);;){var r,n=l(o);if(!n||o.line!=t.line||!(r=a(o)))return;if(!n[1]&&"selfClose"!=r){var t=u(o.line,o.ch),s=d(o,n[2]);return s&&{from:t,to:s.from}}}}),e.findMatchingTag=function(e,o,r){var n=new i(e,o.line,o.ch,r);if(-1!=n.text.indexOf(">")||-1!=n.text.indexOf("<")){var l=a(n),c=l&&u(n.line,n.ch),f=l&&s(n);if(l&&f&&!(t(n,o)>0)){var g={from:u(n.line,n.ch),to:c,tag:f[2]};return"selfClose"==l?{open:g,close:null,at:"open"}:f[1]?{open:h(n,f[2]),close:g,at:"close"}:(n=new i(e,c.line,c.ch,r),{open:g,close:d(n,f[2]),at:"open"})}}},e.findEnclosingTag=function(e,t,o){for(var r=new i(e,t.line,t.ch,o);;){var n=h(r);if(!n)break;var a=new i(e,t.line,t.ch,o),s=d(a,n.tag);if(s)return{open:n,close:s}}},e.scanForClosingTag=function(e,t,o,r){var n=new i(e,t.line,t.ch,r?{from:0,to:r}:null);return d(n,o)}}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";e.registerHelper("fold","markdown",function(t,i){function o(i){var o=t.getTokenTypeAt(e.Pos(i,0));return o&&/\bheader\b/.test(o)}function r(e,t,i){var r=t&&t.match(/^#+/);return r&&o(e)?r[0].length:(r=i&&i.match(/^[=\-]+\s*$/),r&&o(e+1)?"="==i[0]?1:2:n)}var n=100,a=t.getLine(i.line),s=t.getLine(i.line+1),l=r(i.line,a,s);if(l===n)return void 0;for(var c=t.lastLine(),d=i.line,h=t.getLine(d+2);c>d&&!(r(d+1,s,h)<=l);)++d,s=h,h=t.getLine(d+2);return{from:e.Pos(i.line,a.length),to:e.Pos(d,t.getLine(d).length)}})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";e.registerGlobalHelper("fold","comment",function(e){return e.blockCommentStart&&e.blockCommentEnd},function(t,i){var o=t.getModeAt(i),r=o.blockCommentStart,n=o.blockCommentEnd;if(r&&n){for(var a,s=i.line,l=t.getLine(s),c=i.ch,d=0;;){var h=0>=c?-1:l.lastIndexOf(r,c-1);if(-1!=h){if(1==d&&h=m;++m)for(var v=t.getLine(m),w=m==s?a:0;;){var b=v.indexOf(r,w),y=v.indexOf(n,w);if(0>b&&(b=v.length),0>y&&(y=v.length),w=Math.min(b,y),w==v.length)break;if(w==b)++g;else if(!--g){u=m,f=w;break e}++w}if(null!=u&&(s!=u||f!=a))return{from:e.Pos(s,a),to:e.Pos(u,f)}}})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";e.overlayMode=function(t,i,o){return{startState:function(){return{base:e.startState(t),overlay:e.startState(i),basePos:0,baseCur:null,overlayPos:0,overlayCur:null,streamSeen:null}},copyState:function(o){return{base:e.copyState(t,o.base),overlay:e.copyState(i,o.overlay),basePos:o.basePos,baseCur:null,overlayPos:o.overlayPos,overlayCur:null}},token:function(e,r){return(e!=r.streamSeen||Math.min(r.basePos,r.overlayPos)=i.ch+1)return/\bstring2?\b/.test(s);a.start=a.pos}}function o(o,r){for(var n={name:"autoCloseBrackets",Backspace:function(i){if(i.getOption("disableInput"))return e.Pass;for(var r=i.listSelections(),n=0;n=0;n--){var s=r[n].head;i.replaceRange("",c(s.line,s.ch-1),c(s.line,s.ch+1))}}},a="",s=0;s1&&r.indexOf(t)>=0&&n.getRange(c(p.line,p.ch-2),p)==t+t&&(p.ch<=2||n.getRange(c(p.line,p.ch-3),c(p.line,p.ch-2))!=t))f="addFour";else if('"'==t||"'"==t){if(e.isWordChar(d)||!i(n,p,t))return e.Pass;f="both"}else{if(!(n.getLine(p.line).length==p.ch||a.indexOf(d)>=0||l.test(d)))return e.Pass;f="both"}else f="surround";if(s){if(s!=f)return e.Pass}else s=f}n.operation(function(){if("skip"==s)n.execCommand("goCharRight");else if("skipThree"==s)for(var e=0;3>e;e++)n.execCommand("goCharRight");else if("surround"==s){for(var i=n.getSelections(),e=0;es&&e.addOverlay(t.overlay=a(n.slice(s,l),i,t.style)))}var c=e.getCursor("from"),d=e.getCursor("to");if(c.line==d.line&&(!t.wordsOnly||r(e,c,d))){var h=e.getRange(c,d).replace(/^\s+|\s+$/g,"");h.length>=t.minChars&&e.addOverlay(t.overlay=a(h,!1,t.style))}})}function r(e,t,i){var o=e.getRange(t,i);if(null!==o.match(/^\w+$/)){if(t.ch>0){var r={line:t.line,ch:t.ch-1},n=e.getRange(r,t);if(null===n.match(/\W/))return!1}if(i.ch=15){presto=false;webkit=true}var flipCtrlCmd=mac&&(qtwebkit||presto&&(presto_version==null||presto_version<12.11));var captureRightClick=gecko||(ie&&ie_version>=9);var sawReadOnlySpans=false,sawCollapsedSpans=false;function CodeMirror(place,options){if(!(this instanceof CodeMirror)){return new CodeMirror(place,options)}this.options=options=options?copyObj(options):{};copyObj(defaults,options,false);setGuttersForLineNumbers(options);var doc=options.value;if(typeof doc=="string"){doc=new Doc(doc,options.mode)}this.doc=doc;var input=new CodeMirror.inputStyles[options.inputStyle](this);var display=this.display=new Display(place,doc,input);display.wrapper.CodeMirror=this;updateGutters(this);themeChanged(this);if(options.lineWrapping){this.display.wrapper.className+=" CodeMirror-wrap"}if(options.autofocus&&!mobile){display.input.focus()}initScrollbars(this);this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:false,focused:false,suppressEdits:false,pasteIncoming:false,cutIncoming:false,draggingText:false,highlight:new Delayed(),keySeq:null};var cm=this;if(ie&&ie_version<11){setTimeout(function(){cm.display.input.reset(true)},20)}registerEventHandlers(this);ensureGlobalHandlers();startOperation(this);this.curOp.forceUpdate=true;attachDoc(this,doc);if((options.autofocus&&!mobile)||cm.hasFocus()){setTimeout(bind(onFocus,this),20)}else{onBlur(this)}for(var opt in optionHandlers){if(optionHandlers.hasOwnProperty(opt)){optionHandlers[opt](this,options[opt],Init)}}maybeUpdateLineNumberWidth(this);if(options.finishInit){options.finishInit(this)}for(var i=0;id.maxLineLength){d.maxLineLength=len;d.maxLine=line}})}function setGuttersForLineNumbers(options){var found=indexOf(options.gutters,"CodeMirror-linenumbers");if(found==-1&&options.lineNumbers){options.gutters=options.gutters.concat(["CodeMirror-linenumbers"])}else{if(found>-1&&!options.lineNumbers){options.gutters=options.gutters.slice(0);options.gutters.splice(found,1)}}}function measureForScrollbars(cm){var d=cm.display,gutterW=d.gutters.offsetWidth;var docH=Math.round(cm.doc.height+paddingVert(cm.display));return{clientHeight:d.scroller.clientHeight,viewHeight:d.wrapper.clientHeight,scrollWidth:d.scroller.scrollWidth,clientWidth:d.scroller.clientWidth,viewWidth:d.wrapper.clientWidth,barLeft:cm.options.fixedGutter?gutterW:0,docHeight:docH,scrollHeight:docH+scrollGap(cm)+d.barHeight,nativeBarWidth:d.nativeBarWidth,gutterWidth:gutterW}}function NativeScrollbars(place,scroll,cm){this.cm=cm;var vert=this.vert=elt("div",[elt("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar");var horiz=this.horiz=elt("div",[elt("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");place(vert);place(horiz);on(vert,"scroll",function(){if(vert.clientHeight){scroll(vert.scrollTop,"vertical")}});on(horiz,"scroll",function(){if(horiz.clientWidth){scroll(horiz.scrollLeft,"horizontal")}});this.checkedOverlay=false;if(ie&&ie_version<8){this.horiz.style.minHeight=this.vert.style.minWidth="18px"}}NativeScrollbars.prototype=copyObj({update:function(measure){var needsH=measure.scrollWidth>measure.clientWidth+1;var needsV=measure.scrollHeight>measure.clientHeight+1;var sWidth=measure.nativeBarWidth;if(needsV){this.vert.style.display="block";this.vert.style.bottom=needsH?sWidth+"px":"0";var totalHeight=measure.viewHeight-(needsH?sWidth:0);this.vert.firstChild.style.height=Math.max(0,measure.scrollHeight-measure.clientHeight+totalHeight)+"px" -}else{this.vert.style.display="";this.vert.firstChild.style.height="0"}if(needsH){this.horiz.style.display="block";this.horiz.style.right=needsV?sWidth+"px":"0";this.horiz.style.left=measure.barLeft+"px";var totalWidth=measure.viewWidth-measure.barLeft-(needsV?sWidth:0);this.horiz.firstChild.style.width=(measure.scrollWidth-measure.clientWidth+totalWidth)+"px"}else{this.horiz.style.display="";this.horiz.firstChild.style.width="0"}if(!this.checkedOverlay&&measure.clientHeight>0){if(sWidth==0){this.overlayHack()}this.checkedOverlay=true}return{right:needsV?sWidth:0,bottom:needsH?sWidth:0}},setScrollLeft:function(pos){if(this.horiz.scrollLeft!=pos){this.horiz.scrollLeft=pos}},setScrollTop:function(pos){if(this.vert.scrollTop!=pos){this.vert.scrollTop=pos}},overlayHack:function(){var w=mac&&!mac_geMountainLion?"12px":"18px";this.horiz.style.minHeight=this.vert.style.minWidth=w;var self=this;var barMouseDown=function(e){if(e_target(e)!=self.vert&&e_target(e)!=self.horiz){operation(self.cm,onMouseDown)(e)}};on(this.vert,"mousedown",barMouseDown);on(this.horiz,"mousedown",barMouseDown)},clear:function(){var parent=this.horiz.parentNode;parent.removeChild(this.horiz);parent.removeChild(this.vert)}},NativeScrollbars.prototype);function NullScrollbars(){}NullScrollbars.prototype=copyObj({update:function(){return{bottom:0,right:0}},setScrollLeft:function(){},setScrollTop:function(){},clear:function(){}},NullScrollbars.prototype);CodeMirror.scrollbarModel={"native":NativeScrollbars,"null":NullScrollbars};function initScrollbars(cm){if(cm.display.scrollbars){cm.display.scrollbars.clear();if(cm.display.scrollbars.addClass){rmClass(cm.display.wrapper,cm.display.scrollbars.addClass)}}cm.display.scrollbars=new CodeMirror.scrollbarModel[cm.options.scrollbarStyle](function(node){cm.display.wrapper.insertBefore(node,cm.display.scrollbarFiller);on(node,"mousedown",function(){if(cm.state.focused){setTimeout(function(){cm.display.input.focus()},0)}});node.setAttribute("cm-not-content","true")},function(pos,axis){if(axis=="horizontal"){setScrollLeft(cm,pos)}else{setScrollTop(cm,pos)}},cm);if(cm.display.scrollbars.addClass){addClass(cm.display.wrapper,cm.display.scrollbars.addClass)}}function updateScrollbars(cm,measure){if(!measure){measure=measureForScrollbars(cm)}var startWidth=cm.display.barWidth,startHeight=cm.display.barHeight;updateScrollbarsInner(cm,measure);for(var i=0;i<4&&startWidth!=cm.display.barWidth||startHeight!=cm.display.barHeight;i++){if(startWidth!=cm.display.barWidth&&cm.options.lineWrapping){updateHeightsInViewport(cm)}updateScrollbarsInner(cm,measureForScrollbars(cm));startWidth=cm.display.barWidth;startHeight=cm.display.barHeight}}function updateScrollbarsInner(cm,measure){var d=cm.display;var sizes=d.scrollbars.update(measure);d.sizer.style.paddingRight=(d.barWidth=sizes.right)+"px";d.sizer.style.paddingBottom=(d.barHeight=sizes.bottom)+"px";if(sizes.right&&sizes.bottom){d.scrollbarFiller.style.display="block";d.scrollbarFiller.style.height=sizes.bottom+"px";d.scrollbarFiller.style.width=sizes.right+"px"}else{d.scrollbarFiller.style.display=""}if(sizes.bottom&&cm.options.coverGutterNextToScrollbar&&cm.options.fixedGutter){d.gutterFiller.style.display="block";d.gutterFiller.style.height=sizes.bottom+"px";d.gutterFiller.style.width=measure.gutterWidth+"px"}else{d.gutterFiller.style.display=""}}function visibleLines(display,doc,viewport){var top=viewport&&viewport.top!=null?Math.max(0,viewport.top):display.scroller.scrollTop;top=Math.floor(top-paddingTop(display));var bottom=viewport&&viewport.bottom!=null?viewport.bottom:top+display.wrapper.clientHeight;var from=lineAtHeight(doc,top),to=lineAtHeight(doc,bottom);if(viewport&&viewport.ensure){var ensureFrom=viewport.ensure.from.line,ensureTo=viewport.ensure.to.line;if(ensureFrom=to){from=lineAtHeight(doc,heightAtLine(getLine(doc,ensureTo))-display.wrapper.clientHeight);to=ensureTo}}}return{from:from,to:Math.max(to,from+1)}}function alignHorizontally(cm){var display=cm.display,view=display.view;if(!display.alignWidgets&&(!display.gutters.firstChild||!cm.options.fixedGutter)){return}var comp=compensateForHScroll(display)-display.scroller.scrollLeft+cm.doc.scrollLeft;var gutterW=display.gutters.offsetWidth,left=comp+"px";for(var i=0;i=display.viewFrom&&update.visible.to<=display.viewTo&&(display.updateLineNumbers==null||display.updateLineNumbers>=display.viewTo)&&display.renderedView==display.view&&countDirtyView(cm)==0){return false}if(maybeUpdateLineNumberWidth(cm)){resetView(cm);update.dims=getDimensions(cm)}var end=doc.first+doc.size;var from=Math.max(update.visible.from-cm.options.viewportMargin,doc.first);var to=Math.min(end,update.visible.to+cm.options.viewportMargin);if(display.viewFromto&&display.viewTo-to<20){to=Math.min(end,display.viewTo)}if(sawCollapsedSpans){from=visualLineNo(cm.doc,from);to=visualLineEndNo(cm.doc,to)}var different=from!=display.viewFrom||to!=display.viewTo||display.lastWrapHeight!=update.wrapperHeight||display.lastWrapWidth!=update.wrapperWidth;adjustView(cm,from,to);display.viewOffset=heightAtLine(getLine(cm.doc,display.viewFrom));cm.display.mover.style.top=display.viewOffset+"px";var toUpdate=countDirtyView(cm);if(!different&&toUpdate==0&&!update.force&&display.renderedView==display.view&&(display.updateLineNumbers==null||display.updateLineNumbers>=display.viewTo)){return false}var focused=activeElt();if(toUpdate>4){display.lineDiv.style.display="none"}patchDisplay(cm,display.updateLineNumbers,update.dims);if(toUpdate>4){display.lineDiv.style.display=""}display.renderedView=display.view;if(focused&&activeElt()!=focused&&focused.offsetHeight){focused.focus()}removeChildren(display.cursorDiv);removeChildren(display.selectionDiv);display.gutters.style.height=0;if(different){display.lastWrapHeight=update.wrapperHeight;display.lastWrapWidth=update.wrapperWidth;startWorker(cm,400)}display.updateLineNumbers=null;return true}function postUpdateDisplay(cm,update){var force=update.force,viewport=update.viewport;for(var first=true;;first=false){if(first&&cm.options.lineWrapping&&update.oldDisplayWidth!=displayWidth(cm)){force=true}else{force=false;if(viewport&&viewport.top!=null){viewport={top:Math.min(cm.doc.height+paddingVert(cm.display)-displayHeight(cm),viewport.top)}}update.visible=visibleLines(cm.display,cm.doc,viewport);if(update.visible.from>=cm.display.viewFrom&&update.visible.to<=cm.display.viewTo){break}}if(!updateDisplayIfNeeded(cm,update)){break}updateHeightsInViewport(cm);var barMeasure=measureForScrollbars(cm);updateSelection(cm);setDocumentHeight(cm,barMeasure);updateScrollbars(cm,barMeasure)}update.signal(cm,"update",cm);if(cm.display.viewFrom!=cm.display.reportedViewFrom||cm.display.viewTo!=cm.display.reportedViewTo){update.signal(cm,"viewportChange",cm,cm.display.viewFrom,cm.display.viewTo);cm.display.reportedViewFrom=cm.display.viewFrom;cm.display.reportedViewTo=cm.display.viewTo}}function updateDisplaySimple(cm,viewport){var update=new DisplayUpdate(cm,viewport);if(updateDisplayIfNeeded(cm,update)){updateHeightsInViewport(cm);postUpdateDisplay(cm,update);var barMeasure=measureForScrollbars(cm);updateSelection(cm);setDocumentHeight(cm,barMeasure);updateScrollbars(cm,barMeasure);update.finish()}}function setDocumentHeight(cm,measure){cm.display.sizer.style.minHeight=measure.docHeight+"px";var total=measure.docHeight+cm.display.barHeight; -cm.display.heightForcer.style.top=total+"px";cm.display.gutters.style.height=Math.max(total+scrollGap(cm),measure.clientHeight)+"px"}function updateHeightsInViewport(cm){var display=cm.display;var prevBottom=display.lineDiv.offsetTop;for(var i=0;i0.001||diff<-0.001){updateLineHeight(cur.line,height);updateWidgetHeight(cur.line);if(cur.rest){for(var j=0;j-1){updateNumber=false}updateLineForChanges(cm,lineView,lineN,dims)}if(updateNumber){removeChildren(lineView.lineNumber);lineView.lineNumber.appendChild(document.createTextNode(lineNumberFor(cm.options,lineN)))}cur=lineView.node.nextSibling}}lineN+=lineView.size}while(cur){cur=rm(cur)}}function updateLineForChanges(cm,lineView,lineN,dims){for(var j=0;j1){if(lastCopied&&lastCopied.join("\n")==inserted){multiPaste=sel.ranges.length%lastCopied.length==0&&map(lastCopied,splitLines)}else{if(textLines.length==sel.ranges.length){multiPaste=map(textLines,function(l){return[l]})}}}for(var i=sel.ranges.length-1;i>=0;i--){var range=sel.ranges[i];var from=range.from(),to=range.to();if(range.empty()){if(deleted&&deleted>0){from=Pos(from.line,from.ch-deleted)}else{if(cm.state.overwrite&&!cm.state.pasteIncoming){to=Pos(to.line,Math.min(getLine(doc,to.line).text.length,to.ch+lst(textLines).length))}}}var updateInput=cm.curOp.updateInput;var changeEvent={from:from,to:to,text:multiPaste?multiPaste[i%multiPaste.length]:textLines,origin:cm.state.pasteIncoming?"paste":cm.state.cutIncoming?"cut":"+input"};makeChange(cm.doc,changeEvent);signalLater(cm,"inputRead",cm,changeEvent);if(inserted&&!cm.state.pasteIncoming&&cm.options.electricChars&&cm.options.smartIndent&&range.head.ch<100&&(!i||sel.ranges[i-1].head.line!=range.head.line)){var mode=cm.getModeAt(range.head);var end=changeEnd(changeEvent);if(mode.electricChars){for(var j=0;j-1){indentLine(cm,end.line,"smart");break}}}else{if(mode.electricInput){if(mode.electricInput.test(getLine(doc,end.line).text.slice(0,end.ch))){indentLine(cm,end.line,"smart")}}}}}ensureCursorVisible(cm);cm.curOp.updateInput=updateInput;cm.curOp.typing=true;cm.state.pasteIncoming=cm.state.cutIncoming=false}function copyableRanges(cm){var text=[],ranges=[];for(var i=0;i=9&&input.hasSelection){input.hasSelection=null}input.poll()});on(te,"paste",function(){if(webkit&&!cm.state.fakedLastChar&&!(new Date-cm.state.lastMiddleDown<200)){var start=te.selectionStart,end=te.selectionEnd;te.value+="$";te.selectionEnd=end;te.selectionStart=start;cm.state.fakedLastChar=true}cm.state.pasteIncoming=true;input.fastPoll()});function prepareCopyCut(e){if(cm.somethingSelected()){lastCopied=cm.getSelections();if(input.inaccurateSelection){input.prevInput="";input.inaccurateSelection=false;te.value=lastCopied.join("\n");selectInput(te)}}else{var ranges=copyableRanges(cm);lastCopied=ranges.text;if(e.type=="cut"){cm.setSelections(ranges.ranges,null,sel_dontScroll)}else{input.prevInput="";te.value=ranges.text.join("\n");selectInput(te)}}if(e.type=="cut"){cm.state.cutIncoming=true}}on(te,"cut",prepareCopyCut);on(te,"copy",prepareCopyCut);on(display.scroller,"paste",function(e){if(eventInWidget(display,e)){return}cm.state.pasteIncoming=true;input.focus()});on(display.lineSpace,"selectstart",function(e){if(!eventInWidget(display,e)){e_preventDefault(e)}})},prepareSelection:function(){var cm=this.cm,display=cm.display,doc=cm.doc;var result=prepareSelection(cm);if(cm.options.moveInputWithCursor){var headPos=cursorCoords(cm,doc.sel.primary().head,"div");var wrapOff=display.wrapper.getBoundingClientRect(),lineOff=display.lineDiv.getBoundingClientRect();result.teTop=Math.max(0,Math.min(display.wrapper.clientHeight-10,headPos.top+lineOff.top-wrapOff.top));result.teLeft=Math.max(0,Math.min(display.wrapper.clientWidth-10,headPos.left+lineOff.left-wrapOff.left))}return result},showSelection:function(drawn){var cm=this.cm,display=cm.display;removeChildrenAndAdd(display.cursorDiv,drawn.cursors);removeChildrenAndAdd(display.selectionDiv,drawn.selection);if(drawn.teTop!=null){this.wrapper.style.top=drawn.teTop+"px";this.wrapper.style.left=drawn.teLeft+"px"}},reset:function(typing){if(this.contextMenuPending){return}var minimal,selected,cm=this.cm,doc=cm.doc;if(cm.somethingSelected()){this.prevInput="";var range=doc.sel.primary();minimal=hasCopyEvent&&(range.to().line-range.from().line>100||(selected=cm.getSelection()).length>1000);var content=minimal?"-":selected||cm.getSelection();this.textarea.value=content;if(cm.state.focused){selectInput(this.textarea)}if(ie&&ie_version>=9){this.hasSelection=content}}else{if(!typing){this.prevInput=this.textarea.value="";if(ie&&ie_version>=9){this.hasSelection=null}}}this.inaccurateSelection=minimal},getField:function(){return this.textarea},supportsTouch:function(){return false},focus:function(){if(this.cm.options.readOnly!="nocursor"&&(!mobile||activeElt()!=this.textarea)){try{this.textarea.focus()}catch(e){}}},blur:function(){this.textarea.blur()},resetPosition:function(){this.wrapper.style.top=this.wrapper.style.left=0},receivedFocus:function(){this.slowPoll()},slowPoll:function(){var input=this;if(input.pollingFast){return}input.polling.set(this.cm.options.pollInterval,function(){input.poll();if(input.cm.state.focused){input.slowPoll()}})},fastPoll:function(){var missed=false,input=this;input.pollingFast=true;function p(){var changed=input.poll();if(!changed&&!missed){missed=true;input.polling.set(60,p)}else{input.pollingFast=false;input.slowPoll()}}input.polling.set(20,p)},poll:function(){var cm=this.cm,input=this.textarea,prevInput=this.prevInput;if(!cm.state.focused||(hasSelection(input)&&!prevInput)||isReadOnly(cm)||cm.options.disableInput||cm.state.keySeq){return false}if(cm.state.pasteIncoming&&cm.state.fakedLastChar){input.value=input.value.substring(0,input.value.length-1);cm.state.fakedLastChar=false}var text=input.value;if(text==prevInput&&!cm.somethingSelected()){return false}if(ie&&ie_version>=9&&this.hasSelection===text||mac&&/[\uf700-\uf7ff]/.test(text)){cm.display.input.reset();return false}if(text.charCodeAt(0)==8203&&cm.doc.sel==cm.display.selForContextMenu&&!prevInput){prevInput="\u200b" -}var same=0,l=Math.min(prevInput.length,text.length);while(same1000||text.indexOf("\n")>-1){input.value=self.prevInput=""}else{self.prevInput=text}});return true},ensurePolled:function(){if(this.pollingFast&&this.poll()){this.pollingFast=false}},onKeyPress:function(){if(ie&&ie_version>=9){this.hasSelection=null}this.fastPoll()},onContextMenu:function(e){var input=this,cm=input.cm,display=cm.display,te=input.textarea;var pos=posFromMouse(cm,e),scrollPos=display.scroller.scrollTop;if(!pos||presto){return}var reset=cm.options.resetSelectionOnContextMenu;if(reset&&cm.doc.sel.contains(pos)==-1){operation(cm,setSelection)(cm.doc,simpleSelection(pos),sel_dontScroll)}var oldCSS=te.style.cssText;input.wrapper.style.position="absolute";te.style.cssText="position: fixed; width: 30px; height: 30px; top: "+(e.clientY-5)+"px; left: "+(e.clientX-5)+"px; z-index: 1000; background: "+(ie?"rgba(255, 255, 255, .05)":"transparent")+"; outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);";if(webkit){var oldScrollY=window.scrollY}display.input.focus();if(webkit){window.scrollTo(null,oldScrollY)}display.input.reset();if(!cm.somethingSelected()){te.value=input.prevInput=" "}input.contextMenuPending=true;display.selForContextMenu=cm.doc.sel;clearTimeout(display.detectingSelectAll);function prepareSelectAllHack(){if(te.selectionStart!=null){var selected=cm.somethingSelected();var extval=te.value="\u200b"+(selected?te.value:"");input.prevInput=selected?"":"\u200b";te.selectionStart=1;te.selectionEnd=extval.length;display.selForContextMenu=cm.doc.sel}}function rehide(){input.contextMenuPending=false;input.wrapper.style.position="relative";te.style.cssText=oldCSS;if(ie&&ie_version<9){display.scrollbars.setScrollTop(display.scroller.scrollTop=scrollPos)}if(te.selectionStart!=null){if(!ie||(ie&&ie_version<9)){prepareSelectAllHack()}var i=0,poll=function(){if(display.selForContextMenu==cm.doc.sel&&te.selectionStart==0){operation(cm,commands.selectAll)(cm)}else{if(i++<10){display.detectingSelectAll=setTimeout(poll,500)}else{display.input.reset()}}};display.detectingSelectAll=setTimeout(poll,200)}}if(ie&&ie_version>=9){prepareSelectAllHack()}if(captureRightClick){e_stop(e);var mouseup=function(){off(window,"mouseup",mouseup);setTimeout(rehide,20)};on(window,"mouseup",mouseup)}else{setTimeout(rehide,50)}},setUneditable:nothing,needsContentAttribute:false},TextareaInput.prototype);function ContentEditableInput(cm){this.cm=cm;this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null;this.polling=new Delayed()}ContentEditableInput.prototype=copyObj({init:function(display){var input=this,cm=input.cm;var div=input.div=display.lineDiv;div.contentEditable="true";disableBrowserMagic(div);on(div,"paste",function(e){var pasted=e.clipboardData&&e.clipboardData.getData("text/plain");if(pasted){e.preventDefault();cm.replaceSelection(pasted,null,"paste")}});on(div,"compositionstart",function(e){var data=e.data;input.composing={sel:cm.doc.sel,data:data,startData:data};if(!data){return}var prim=cm.doc.sel.primary();var line=cm.getLine(prim.head.line);var found=line.indexOf(data,Math.max(0,prim.head.ch-data.length));if(found>-1&&found<=prim.head.ch){input.composing.sel=simpleSelection(Pos(prim.head.line,found),Pos(prim.head.line,found+data.length))}});on(div,"compositionupdate",function(e){input.composing.data=e.data});on(div,"compositionend",function(e){var ours=input.composing;if(!ours){return}if(e.data!=ours.startData&&!/\u200b/.test(e.data)){ours.data=e.data}setTimeout(function(){if(!ours.handled){input.applyComposition(ours)}if(input.composing==ours){input.composing=null}},50)});on(div,"touchstart",function(){input.forceCompositionEnd()});on(div,"input",function(){if(input.composing){return}if(!input.pollContent()){runInOp(input.cm,function(){regChange(cm)})}});function onCopyCut(e){if(cm.somethingSelected()){lastCopied=cm.getSelections();if(e.type=="cut"){cm.replaceSelection("",null,"cut")}}else{var ranges=copyableRanges(cm);lastCopied=ranges.text;if(e.type=="cut"){cm.operation(function(){cm.setSelections(ranges.ranges,0,sel_dontScroll);cm.replaceSelection("",null,"cut")})}}if(e.clipboardData&&!ios){e.preventDefault();e.clipboardData.clearData();e.clipboardData.setData("text/plain",lastCopied.join("\n"))}else{var kludge=hiddenTextarea(),te=kludge.firstChild;cm.display.lineSpace.insertBefore(kludge,cm.display.lineSpace.firstChild);te.value=lastCopied.join("\n");var hadFocus=document.activeElement;selectInput(te);setTimeout(function(){cm.display.lineSpace.removeChild(kludge);hadFocus.focus()},50)}}on(div,"copy",onCopyCut);on(div,"cut",onCopyCut)},prepareSelection:function(){var result=prepareSelection(this.cm,false);result.focus=this.cm.state.focused;return result},showSelection:function(info){if(!info||!this.cm.display.view.length){return -}if(info.focus){this.showPrimarySelection()}this.showMultipleSelections(info)},showPrimarySelection:function(){var sel=window.getSelection(),prim=this.cm.doc.sel.primary();var curAnchor=domToPos(this.cm,sel.anchorNode,sel.anchorOffset);var curFocus=domToPos(this.cm,sel.focusNode,sel.focusOffset);if(curAnchor&&!curAnchor.bad&&curFocus&&!curFocus.bad&&cmp(minPos(curAnchor,curFocus),prim.from())==0&&cmp(maxPos(curAnchor,curFocus),prim.to())==0){return}var start=posToDOM(this.cm,prim.from());var end=posToDOM(this.cm,prim.to());if(!start&&!end){return}var view=this.cm.display.view;var old=sel.rangeCount&&sel.getRangeAt(0);if(!start){start={node:view[0].measure.map[2],offset:0}}else{if(!end){var measure=view[view.length-1].measure;var map=measure.maps?measure.maps[measure.maps.length-1]:measure.map;end={node:map[map.length-1],offset:map[map.length-2]-map[map.length-3]}}}try{var rng=range(start.node,start.offset,end.offset,end.node)}catch(e){}if(rng){sel.removeAllRanges();sel.addRange(rng);if(old&&sel.anchorNode==null){sel.addRange(old)}}this.rememberSelection()},showMultipleSelections:function(info){removeChildrenAndAdd(this.cm.display.cursorDiv,info.cursors);removeChildrenAndAdd(this.cm.display.selectionDiv,info.selection)},rememberSelection:function(){var sel=window.getSelection();this.lastAnchorNode=sel.anchorNode;this.lastAnchorOffset=sel.anchorOffset;this.lastFocusNode=sel.focusNode;this.lastFocusOffset=sel.focusOffset},selectionInEditor:function(){var sel=window.getSelection();if(!sel.rangeCount){return false}var node=sel.getRangeAt(0).commonAncestorContainer;return contains(this.div,node)},focus:function(){if(this.cm.options.readOnly!="nocursor"){this.div.focus()}},blur:function(){this.div.blur()},getField:function(){return this.div},supportsTouch:function(){return true},receivedFocus:function(){var input=this;if(this.selectionInEditor()){this.pollSelection()}else{runInOp(this.cm,function(){input.cm.curOp.selectionChanged=true})}function poll(){if(input.cm.state.focused){input.pollSelection();input.polling.set(input.cm.options.pollInterval,poll)}}this.polling.set(this.cm.options.pollInterval,poll)},pollSelection:function(){if(this.composing){return}var sel=window.getSelection(),cm=this.cm;if(sel.anchorNode!=this.lastAnchorNode||sel.anchorOffset!=this.lastAnchorOffset||sel.focusNode!=this.lastFocusNode||sel.focusOffset!=this.lastFocusOffset){this.rememberSelection();var anchor=domToPos(cm,sel.anchorNode,sel.anchorOffset);var head=domToPos(cm,sel.focusNode,sel.focusOffset);if(anchor&&head){runInOp(cm,function(){setSelection(cm.doc,simpleSelection(anchor,head),sel_dontScroll);if(anchor.bad||head.bad){cm.curOp.selectionChanged=true}})}}},pollContent:function(){var cm=this.cm,display=cm.display,sel=cm.doc.sel.primary();var from=sel.from(),to=sel.to();if(from.linedisplay.viewTo-1){return false}var fromIndex;if(from.line==display.viewFrom||(fromIndex=findViewIndex(cm,from.line))==0){var fromLine=lineNo(display.view[0].line);var fromNode=display.view[0].node}else{var fromLine=lineNo(display.view[fromIndex].line);var fromNode=display.view[fromIndex-1].node.nextSibling}var toIndex=findViewIndex(cm,to.line);if(toIndex==display.view.length-1){var toLine=display.viewTo-1;var toNode=display.view[toIndex].node}else{var toLine=lineNo(display.view[toIndex+1].line)-1;var toNode=display.view[toIndex+1].node.previousSibling}var newText=splitLines(domTextBetween(cm,fromNode,toNode,fromLine,toLine));var oldText=getBetween(cm.doc,Pos(fromLine,0),Pos(toLine,getLine(cm.doc,toLine).text.length));while(newText.length>1&&oldText.length>1){if(lst(newText)==lst(oldText)){newText.pop();oldText.pop();toLine--}else{if(newText[0]==oldText[0]){newText.shift();oldText.shift();fromLine++}else{break}}}var cutFront=0,cutEnd=0;var newTop=newText[0],oldTop=oldText[0],maxCutFront=Math.min(newTop.length,oldTop.length);while(cutFront1||newText[0]||cmp(chFrom,chTo)){replaceRange(cm.doc,newText,chFrom,chTo,"+input");return true}},ensurePolled:function(){this.forceCompositionEnd()},reset:function(){this.forceCompositionEnd()},forceCompositionEnd:function(){if(!this.composing||this.composing.handled){return}this.applyComposition(this.composing);this.composing.handled=true;this.div.blur();this.div.focus()},applyComposition:function(composing){if(composing.data&&composing.data!=composing.startData){operation(this.cm,applyTextInput)(this.cm,composing.data,0,composing.sel) -}},setUneditable:function(node){node.setAttribute("contenteditable","false")},onKeyPress:function(e){e.preventDefault();operation(this.cm,applyTextInput)(this.cm,String.fromCharCode(e.charCode==null?e.keyCode:e.charCode),0)},onContextMenu:nothing,resetPosition:nothing,needsContentAttribute:true},ContentEditableInput.prototype);function posToDOM(cm,pos){var view=findViewForLine(cm,pos.line);if(!view||view.hidden){return null}var line=getLine(cm.doc,pos.line);var info=mapFromLineView(view,line,pos.line);var order=getOrder(line),side="left";if(order){var partPos=getBidiPartAt(order,pos.ch);side=partPos%2?"right":"left"}var result=nodeAndOffsetInLineMap(info.map,pos.ch,"left");result.offset=result.collapse=="right"?result.end:result.start;return result}function badPos(pos,bad){if(bad){pos.bad=true}return pos}function domToPos(cm,node,offset){var lineNode;if(node==cm.display.lineDiv){lineNode=cm.display.lineDiv.childNodes[offset];if(!lineNode){return badPos(cm.clipPos(Pos(cm.display.viewTo-1)),true)}node=null;offset=0}else{for(lineNode=node;;lineNode=lineNode.parentNode){if(!lineNode||lineNode==cm.display.lineDiv){return null}if(lineNode.parentNode&&lineNode.parentNode==cm.display.lineDiv){break}}}for(var i=0;i=0&&cmp(pos,range.to())<=0){return i}}return -1}};function Range(anchor,head){this.anchor=anchor;this.head=head -}Range.prototype={from:function(){return minPos(this.anchor,this.head)},to:function(){return maxPos(this.anchor,this.head)},empty:function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch}};function normalizeSelection(ranges,primIndex){var prim=ranges[primIndex];ranges.sort(function(a,b){return cmp(a.from(),b.from())});primIndex=indexOf(ranges,prim);for(var i=1;i=0){var from=minPos(prev.from(),cur.from()),to=maxPos(prev.to(),cur.to());var inv=prev.empty()?cur.from()==cur.head:prev.from()==prev.head;if(i<=primIndex){--primIndex}ranges.splice(--i,2,new Range(inv?to:from,inv?from:to))}}return new Selection(ranges,primIndex)}function simpleSelection(anchor,head){return new Selection([new Range(anchor,head||anchor)],0)}function clipLine(doc,n){return Math.max(doc.first,Math.min(n,doc.first+doc.size-1))}function clipPos(doc,pos){if(pos.linelast){return Pos(last,getLine(doc,last).text.length)}return clipToLen(pos,getLine(doc,pos.line).text.length)}function clipToLen(pos,linelen){var ch=pos.ch;if(ch==null||ch>linelen){return Pos(pos.line,linelen)}else{if(ch<0){return Pos(pos.line,0)}else{return pos}}}function isLine(doc,l){return l>=doc.first&&l=curPos.ch:sp.to>curPos.ch))){if(mayClear){signal(m,"beforeCursorEnter");if(m.explicitlyCleared){if(!line.markedSpans){break}else{--i;continue}}}if(!m.atomic){continue}var newPos=m.find(dir<0?-1:1);if(cmp(newPos,curPos)==0){newPos.ch+=dir; -if(newPos.ch<0){if(newPos.line>doc.first){newPos=clipPos(doc,Pos(newPos.line-1))}else{newPos=null}}else{if(newPos.ch>line.text.length){if(newPos.line3){add(left,leftPos.top,null,leftPos.bottom);left=leftSide;if(leftPos.bottomend.bottom||rightPos.bottom==end.bottom&&rightPos.right>end.right){end=rightPos}if(left0){display.blinker=setInterval(function(){display.cursorDiv.style.visibility=(on=!on)?"":"hidden"},cm.options.cursorBlinkRate)}else{if(cm.options.cursorBlinkRate<0){display.cursorDiv.style.visibility="hidden"}}}function startWorker(cm,time){if(cm.doc.mode.startState&&cm.doc.frontier=cm.display.viewTo){return}var end=+new Date+cm.options.workTime;var state=copyState(doc.mode,getStateBefore(cm,doc.frontier));var changedLines=[];doc.iter(doc.frontier,Math.min(doc.first+doc.size,cm.display.viewTo+500),function(line){if(doc.frontier>=cm.display.viewFrom){var oldStyles=line.styles; -var highlighted=highlightLine(cm,line,state,true);line.styles=highlighted.styles;var oldCls=line.styleClasses,newCls=highlighted.classes;if(newCls){line.styleClasses=newCls}else{if(oldCls){line.styleClasses=null}}var ischange=!oldStyles||oldStyles.length!=line.styles.length||oldCls!=newCls&&(!oldCls||!newCls||oldCls.bgClass!=newCls.bgClass||oldCls.textClass!=newCls.textClass);for(var i=0;!ischange&&iend){startWorker(cm,cm.options.workDelay);return true}});if(changedLines.length){runInOp(cm,function(){for(var i=0;ilim;--search){if(search<=doc.first){return doc.first}var line=getLine(doc,search-1);if(line.stateAfter&&(!precise||search<=doc.frontier)){return search}var indented=countColumn(line.text,null,cm.options.tabSize);if(minline==null||minindent>indented){minline=search-1;minindent=indented}}return minline}function getStateBefore(cm,n,precise){var doc=cm.doc,display=cm.display;if(!doc.mode.startState){return true}var pos=findStartLine(cm,n,precise),state=pos>doc.first&&getLine(doc,pos-1).stateAfter;if(!state){state=startState(doc.mode)}else{state=copyState(doc.mode,state)}doc.iter(pos,n,function(line){processLine(cm,line.text,state);var save=pos==n-1||pos%5==0||pos>=display.viewFrom&&pos2){heights.push((cur.bottom+next.top)/2-rect.top)}}}heights.push(rect.bottom-rect.top)}}function mapFromLineView(lineView,line,lineN){if(lineView.line==line){return{map:lineView.measure.map,cache:lineView.measure.cache}}for(var i=0;ilineN){return{map:lineView.measure.maps[i],cache:lineView.measure.caches[i],before:true}}}}function updateExternalMeasurement(cm,line){line=visualLine(line);var lineN=lineNo(line);var view=cm.display.externalMeasured=new LineView(cm.doc,line,lineN);view.lineN=lineN;var built=view.built=buildLineContent(cm,view);view.text=built.pre;removeChildrenAndAdd(cm.display.lineMeasure,built.pre);return view}function measureChar(cm,line,ch,bias){return measureCharPrepared(cm,prepareMeasureForLine(cm,line),ch,bias)}function findViewForLine(cm,lineN){if(lineN>=cm.display.viewFrom&&lineN=ext.lineN&&lineNch){end=mEnd-mStart;start=end-1;if(ch>=mEnd){collapse="right"}}}}if(start!=null){node=map[i+2];if(mStart==mEnd&&bias==(node.insertLeft?"left":"right")){collapse=bias}if(bias=="left"&&start==0){while(i&&map[i-2]==map[i-3]&&map[i-1].insertLeft){node=map[(i-=3)+2];collapse="left"}}if(bias=="right"&&start==mEnd-mStart){while(i0){collapse=bias="right"}var rects;if(cm.options.lineWrapping&&(rects=node.getClientRects()).length>1){rect=rects[bias=="right"?rects.length-1:0]}else{rect=node.getBoundingClientRect()}}if(ie&&ie_version<9&&!start&&(!rect||!rect.left&&!rect.right)){var rSpan=node.parentNode.getClientRects()[0];if(rSpan){rect={left:rSpan.left,right:rSpan.left+charWidth(cm.display),top:rSpan.top,bottom:rSpan.bottom}}else{rect=nullRect}}var rtop=rect.top-prepared.rect.top,rbot=rect.bottom-prepared.rect.top;var mid=(rtop+rbot)/2;var heights=prepared.view.measure.heights;for(var i=0;ipart.from){return get(ch-1)}return get(ch,right)}var order=getOrder(lineObj),ch=pos.ch;if(!order){return get(ch)}var partPos=getBidiPartAt(order,ch);var val=getBidi(ch,partPos);if(bidiOther!=null){val.other=getBidi(ch,bidiOther)}return val}function estimateCoords(cm,pos){var left=0,pos=clipPos(cm.doc,pos);if(!cm.options.lineWrapping){left=charWidth(cm.display)*pos.ch}var lineObj=getLine(cm.doc,pos.line);var top=heightAtLine(lineObj)+paddingTop(cm.display);return{left:left,right:left,top:top,bottom:top+lineObj.height}}function PosWithInfo(line,ch,outside,xRel){var pos=Pos(line,ch);pos.xRel=xRel;if(outside){pos.outside=true}return pos}function coordsChar(cm,x,y){var doc=cm.doc;y+=cm.display.viewOffset;if(y<0){return PosWithInfo(doc.first,0,true,-1)}var lineN=lineAtHeight(doc,y),last=doc.first+doc.size-1;if(lineN>last){return PosWithInfo(doc.first+doc.size-1,getLine(doc,last).text.length,true,1)}if(x<0){x=0}var lineObj=getLine(doc,lineN);for(;;){var found=coordsCharInner(cm,lineObj,lineN,x,y);var merged=collapsedSpanAtEnd(lineObj);var mergedPos=merged&&merged.find(0,true);if(merged&&(found.ch>mergedPos.from.ch||found.ch==mergedPos.from.ch&&found.xRel>0)){lineN=lineNo(lineObj=mergedPos.to.line)}else{return found}}}function coordsCharInner(cm,lineObj,lineNo,x,y){var innerOff=y-heightAtLine(lineObj);var wrongLine=false,adjust=2*cm.display.wrapper.clientWidth;var preparedMeasure=prepareMeasureForLine(cm,lineObj);function getX(ch){var sp=cursorCoords(cm,Pos(lineNo,ch),"line",lineObj,preparedMeasure);wrongLine=true;if(innerOff>sp.bottom){return sp.left-adjust}else{if(innerOfftoX){return PosWithInfo(lineNo,to,toOutside,1)}for(;;){if(bidi?to==from||to==moveVisually(lineObj,from,1):to-from<=1){var ch=x1?1:0);return pos}var step=Math.ceil(dist/2),middle=from+step;if(bidi){middle=from;for(var i=0;ix){to=middle;toX=middleX;if(toOutside=wrongLine){toX+=1000}dist=step}else{from=middle;fromX=middleX;fromOutside=wrongLine;dist-=step}}}var measureText;function textHeight(display){if(display.cachedTextHeight!=null){return display.cachedTextHeight}if(measureText==null){measureText=elt("pre");for(var i=0;i<49;++i){measureText.appendChild(document.createTextNode("x"));measureText.appendChild(elt("br"))}measureText.appendChild(document.createTextNode("x"))}removeChildrenAndAdd(display.measure,measureText);var height=measureText.offsetHeight/50;if(height>3){display.cachedTextHeight=height}removeChildren(display.measure);return height||1}function charWidth(display){if(display.cachedCharWidth!=null){return display.cachedCharWidth}var anchor=elt("span","xxxxxxxxxx");var pre=elt("pre",[anchor]);removeChildrenAndAdd(display.measure,pre);var rect=anchor.getBoundingClientRect(),width=(rect.right-rect.left)/10;if(width>2){display.cachedCharWidth=width}return width||10}var operationGroup=null;var nextOpId=0;function startOperation(cm){cm.curOp={cm:cm,viewChanged:false,startHeight:cm.doc.height,forceUpdate:false,updateInput:null,typing:false,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:false,updateMaxLine:false,scrollLeft:null,scrollTop:null,scrollToPos:null,id:++nextOpId};if(operationGroup){operationGroup.ops.push(cm.curOp)}else{cm.curOp.ownsGroup=operationGroup={ops:[cm.curOp],delayedCallbacks:[]}}}function fireCallbacksForOps(group){var callbacks=group.delayedCallbacks,i=0; -do{for(;i=display.viewTo)||display.maxLineChanged&&cm.options.lineWrapping;op.update=op.mustUpdate&&new DisplayUpdate(cm,op.mustUpdate&&{top:op.scrollTop,ensure:op.scrollToPos},op.forceUpdate)}function endOperation_W1(op){op.updatedDisplay=op.mustUpdate&&updateDisplayIfNeeded(op.cm,op.update)}function endOperation_R2(op){var cm=op.cm,display=cm.display;if(op.updatedDisplay){updateHeightsInViewport(cm)}op.barMeasure=measureForScrollbars(cm);if(display.maxLineChanged&&!cm.options.lineWrapping){op.adjustWidthTo=measureChar(cm,display.maxLine,display.maxLine.text.length).left+3;cm.display.sizerWidth=op.adjustWidthTo;op.barMeasure.scrollWidth=Math.max(display.scroller.clientWidth,display.sizer.offsetLeft+op.adjustWidthTo+scrollGap(cm)+cm.display.barWidth);op.maxScrollLeft=Math.max(0,display.sizer.offsetLeft+op.adjustWidthTo-displayWidth(cm))}if(op.updatedDisplay||op.selectionChanged){op.preparedSelection=display.input.prepareSelection()}}function endOperation_W2(op){var cm=op.cm;if(op.adjustWidthTo!=null){cm.display.sizer.style.minWidth=op.adjustWidthTo+"px";if(op.maxScrollLeft
]", - "[link ]", - "[tag&bracket <][tag div][tag&bracket >]", - "[tag&bracket ]"); - -})(); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/meta.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/meta.js deleted file mode 100644 index e110288..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/meta.js +++ /dev/null @@ -1,177 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { - "use strict"; - - CodeMirror.modeInfo = [ - {name: "APL", mime: "text/apl", mode: "apl", ext: ["dyalog", "apl"]}, - {name: "Asterisk", mime: "text/x-asterisk", mode: "asterisk", file: /^extensions\.conf$/i}, - {name: "C", mime: "text/x-csrc", mode: "clike", ext: ["c", "h"]}, - {name: "C++", mime: "text/x-c++src", mode: "clike", ext: ["cpp", "c++", "cc", "cxx", "hpp", "h++", "hh", "hxx"], alias: ["cpp"]}, - {name: "Cobol", mime: "text/x-cobol", mode: "cobol", ext: ["cob", "cpy"]}, - {name: "C#", mime: "text/x-csharp", mode: "clike", ext: ["cs"], alias: ["csharp"]}, - {name: "Clojure", mime: "text/x-clojure", mode: "clojure", ext: ["clj"]}, - {name: "CoffeeScript", mime: "text/x-coffeescript", mode: "coffeescript", ext: ["coffee"], alias: ["coffee", "coffee-script"]}, - {name: "Common Lisp", mime: "text/x-common-lisp", mode: "commonlisp", ext: ["cl", "lisp", "el"], alias: ["lisp"]}, - {name: "Cypher", mime: "application/x-cypher-query", mode: "cypher", ext: ["cyp", "cypher"]}, - {name: "Cython", mime: "text/x-cython", mode: "python", ext: ["pyx", "pxd", "pxi"]}, - {name: "CSS", mime: "text/css", mode: "css", ext: ["css"]}, - {name: "CQL", mime: "text/x-cassandra", mode: "sql", ext: ["cql"]}, - {name: "D", mime: "text/x-d", mode: "d", ext: ["d"]}, - {name: "Dart", mimes: ["application/dart", "text/x-dart"], mode: "dart", ext: ["dart"]}, - {name: "diff", mime: "text/x-diff", mode: "diff", ext: ["diff", "patch"]}, - {name: "Django", mime: "text/x-django", mode: "django"}, - {name: "Dockerfile", mime: "text/x-dockerfile", mode: "dockerfile", file: /^Dockerfile$/}, - {name: "DTD", mime: "application/xml-dtd", mode: "dtd", ext: ["dtd"]}, - {name: "Dylan", mime: "text/x-dylan", mode: "dylan", ext: ["dylan", "dyl", "intr"]}, - {name: "EBNF", mime: "text/x-ebnf", mode: "ebnf"}, - {name: "ECL", mime: "text/x-ecl", mode: "ecl", ext: ["ecl"]}, - {name: "Eiffel", mime: "text/x-eiffel", mode: "eiffel", ext: ["e"]}, - {name: "Embedded Javascript", mime: "application/x-ejs", mode: "htmlembedded", ext: ["ejs"]}, - {name: "Embedded Ruby", mime: "application/x-erb", mode: "htmlembedded", ext: ["erb"]}, - {name: "Erlang", mime: "text/x-erlang", mode: "erlang", ext: ["erl"]}, - {name: "Forth", mime: "text/x-forth", mode: "forth", ext: ["forth", "fth", "4th"]}, - {name: "Fortran", mime: "text/x-fortran", mode: "fortran", ext: ["f", "for", "f77", "f90"]}, - {name: "F#", mime: "text/x-fsharp", mode: "mllike", ext: ["fs"], alias: ["fsharp"]}, - {name: "Gas", mime: "text/x-gas", mode: "gas", ext: ["s"]}, - {name: "Gherkin", mime: "text/x-feature", mode: "gherkin", ext: ["feature"]}, - {name: "GitHub Flavored Markdown", mime: "text/x-gfm", mode: "gfm", file: /^(readme|contributing|history).md$/i}, - {name: "Go", mime: "text/x-go", mode: "go", ext: ["go"]}, - {name: "Groovy", mime: "text/x-groovy", mode: "groovy", ext: ["groovy"]}, - {name: "HAML", mime: "text/x-haml", mode: "haml", ext: ["haml"]}, - {name: "Haskell", mime: "text/x-haskell", mode: "haskell", ext: ["hs"]}, - {name: "Haxe", mime: "text/x-haxe", mode: "haxe", ext: ["hx"]}, - {name: "HXML", mime: "text/x-hxml", mode: "haxe", ext: ["hxml"]}, - {name: "ASP.NET", mime: "application/x-aspx", mode: "htmlembedded", ext: ["aspx"], alias: ["asp", "aspx"]}, - {name: "HTML", mime: "text/html", mode: "htmlmixed", ext: ["html", "htm"], alias: ["xhtml"]}, - {name: "HTTP", mime: "message/http", mode: "http"}, - {name: "IDL", mime: "text/x-idl", mode: "idl", ext: ["pro"]}, - {name: "Jade", mime: "text/x-jade", mode: "jade", ext: ["jade"]}, - {name: "Java", mime: "text/x-java", mode: "clike", ext: ["java"]}, - {name: "Java Server Pages", mime: "application/x-jsp", mode: "htmlembedded", ext: ["jsp"], alias: ["jsp"]}, - {name: "JavaScript", mimes: ["text/javascript", "text/ecmascript", "application/javascript", "application/x-javascript", "application/ecmascript"], - mode: "javascript", ext: ["js"], alias: ["ecmascript", "js", "node"]}, - {name: "JSON", mimes: ["application/json", "application/x-json"], mode: "javascript", ext: ["json", "map"], alias: ["json5"]}, - {name: "JSON-LD", mime: "application/ld+json", mode: "javascript", ext: ["jsonld"], alias: ["jsonld"]}, - {name: "Jinja2", mime: "null", mode: "jinja2"}, - {name: "Julia", mime: "text/x-julia", mode: "julia", ext: ["jl"]}, - {name: "Kotlin", mime: "text/x-kotlin", mode: "kotlin", ext: ["kt"]}, - {name: "LESS", mime: "text/x-less", mode: "css", ext: ["less"]}, - {name: "LiveScript", mime: "text/x-livescript", mode: "livescript", ext: ["ls"], alias: ["ls"]}, - {name: "Lua", mime: "text/x-lua", mode: "lua", ext: ["lua"]}, - {name: "Markdown", mime: "text/x-markdown", mode: "markdown", ext: ["markdown", "md", "mkd"]}, - {name: "mIRC", mime: "text/mirc", mode: "mirc"}, - {name: "MariaDB SQL", mime: "text/x-mariadb", mode: "sql"}, - {name: "Modelica", mime: "text/x-modelica", mode: "modelica", ext: ["mo"]}, - {name: "MS SQL", mime: "text/x-mssql", mode: "sql"}, - {name: "MySQL", mime: "text/x-mysql", mode: "sql"}, - {name: "Nginx", mime: "text/x-nginx-conf", mode: "nginx", file: /nginx.*\.conf$/i}, - {name: "NTriples", mime: "text/n-triples", mode: "ntriples", ext: ["nt"]}, - {name: "Objective C", mime: "text/x-objectivec", mode: "clike", ext: ["m", "mm"]}, - {name: "OCaml", mime: "text/x-ocaml", mode: "mllike", ext: ["ml", "mli", "mll", "mly"]}, - {name: "Octave", mime: "text/x-octave", mode: "octave", ext: ["m"]}, - {name: "Pascal", mime: "text/x-pascal", mode: "pascal", ext: ["p", "pas"]}, - {name: "PEG.js", mime: "null", mode: "pegjs", ext: ["jsonld"]}, - {name: "Perl", mime: "text/x-perl", mode: "perl", ext: ["pl", "pm"]}, - {name: "PHP", mime: "application/x-httpd-php", mode: "php", ext: ["php", "php3", "php4", "php5", "phtml"]}, - {name: "Pig", mime: "text/x-pig", mode: "pig", ext: ["pig"]}, - {name: "Plain Text", mime: "text/plain", mode: "null", ext: ["txt", "text", "conf", "def", "list", "log"]}, - {name: "PLSQL", mime: "text/x-plsql", mode: "sql", ext: ["pls"]}, - {name: "Properties files", mime: "text/x-properties", mode: "properties", ext: ["properties", "ini", "in"], alias: ["ini", "properties"]}, - {name: "Python", mime: "text/x-python", mode: "python", ext: ["py", "pyw"]}, - {name: "Puppet", mime: "text/x-puppet", mode: "puppet", ext: ["pp"]}, - {name: "Q", mime: "text/x-q", mode: "q", ext: ["q"]}, - {name: "R", mime: "text/x-rsrc", mode: "r", ext: ["r"], alias: ["rscript"]}, - {name: "reStructuredText", mime: "text/x-rst", mode: "rst", ext: ["rst"], alias: ["rst"]}, - {name: "RPM Changes", mime: "text/x-rpm-changes", mode: "rpm"}, - {name: "RPM Spec", mime: "text/x-rpm-spec", mode: "rpm", ext: ["spec"]}, - {name: "Ruby", mime: "text/x-ruby", mode: "ruby", ext: ["rb"], alias: ["jruby", "macruby", "rake", "rb", "rbx"]}, - {name: "Rust", mime: "text/x-rustsrc", mode: "rust", ext: ["rs"]}, - {name: "Sass", mime: "text/x-sass", mode: "sass", ext: ["sass"]}, - {name: "Scala", mime: "text/x-scala", mode: "clike", ext: ["scala"]}, - {name: "Scheme", mime: "text/x-scheme", mode: "scheme", ext: ["scm", "ss"]}, - {name: "SCSS", mime: "text/x-scss", mode: "css", ext: ["scss"]}, - {name: "Shell", mime: "text/x-sh", mode: "shell", ext: ["sh", "ksh", "bash"], alias: ["bash", "sh", "zsh"]}, - {name: "Sieve", mime: "application/sieve", mode: "sieve", ext: ["siv", "sieve"]}, - {name: "Slim", mimes: ["text/x-slim", "application/x-slim"], mode: "slim", ext: ["slim"]}, - {name: "Smalltalk", mime: "text/x-stsrc", mode: "smalltalk", ext: ["st"]}, - {name: "Smarty", mime: "text/x-smarty", mode: "smarty", ext: ["tpl"]}, - {name: "SmartyMixed", mime: "text/x-smarty", mode: "smartymixed"}, - {name: "Solr", mime: "text/x-solr", mode: "solr"}, - {name: "Soy", mime: "text/x-soy", mode: "soy", ext: ["soy"], alias: ["closure template"]}, - {name: "SPARQL", mime: "application/sparql-query", mode: "sparql", ext: ["rq", "sparql"], alias: ["sparul"]}, - {name: "Spreadsheet", mime: "text/x-spreadsheet", mode: "spreadsheet", alias: ["excel", "formula"]}, - {name: "SQL", mime: "text/x-sql", mode: "sql", ext: ["sql"]}, - {name: "MariaDB", mime: "text/x-mariadb", mode: "sql"}, - {name: "sTeX", mime: "text/x-stex", mode: "stex"}, - {name: "LaTeX", mime: "text/x-latex", mode: "stex", ext: ["text", "ltx"], alias: ["tex"]}, - {name: "SystemVerilog", mime: "text/x-systemverilog", mode: "verilog", ext: ["v"]}, - {name: "Tcl", mime: "text/x-tcl", mode: "tcl", ext: ["tcl"]}, - {name: "Textile", mime: "text/x-textile", mode: "textile", ext: ["textile"]}, - {name: "TiddlyWiki ", mime: "text/x-tiddlywiki", mode: "tiddlywiki"}, - {name: "Tiki wiki", mime: "text/tiki", mode: "tiki"}, - {name: "TOML", mime: "text/x-toml", mode: "toml", ext: ["toml"]}, - {name: "Tornado", mime: "text/x-tornado", mode: "tornado"}, - {name: "Turtle", mime: "text/turtle", mode: "turtle", ext: ["ttl"]}, - {name: "TypeScript", mime: "application/typescript", mode: "javascript", ext: ["ts"], alias: ["ts"]}, - {name: "VB.NET", mime: "text/x-vb", mode: "vb", ext: ["vb"]}, - {name: "VBScript", mime: "text/vbscript", mode: "vbscript", ext: ["vbs"]}, - {name: "Velocity", mime: "text/velocity", mode: "velocity", ext: ["vtl"]}, - {name: "Verilog", mime: "text/x-verilog", mode: "verilog", ext: ["v"]}, - {name: "XML", mimes: ["application/xml", "text/xml"], mode: "xml", ext: ["xml", "xsl", "xsd"], alias: ["rss", "wsdl", "xsd"]}, - {name: "XQuery", mime: "application/xquery", mode: "xquery", ext: ["xy", "xquery"]}, - {name: "YAML", mime: "text/x-yaml", mode: "yaml", ext: ["yaml"], alias: ["yml"]}, - {name: "Z80", mime: "text/x-z80", mode: "z80", ext: ["z80"]} - ]; - // Ensure all modes have a mime property for backwards compatibility - for (var i = 0; i < CodeMirror.modeInfo.length; i++) { - var info = CodeMirror.modeInfo[i]; - if (info.mimes) info.mime = info.mimes[0]; - } - - CodeMirror.findModeByMIME = function(mime) { - mime = mime.toLowerCase(); - for (var i = 0; i < CodeMirror.modeInfo.length; i++) { - var info = CodeMirror.modeInfo[i]; - if (info.mime == mime) return info; - if (info.mimes) for (var j = 0; j < info.mimes.length; j++) - if (info.mimes[j] == mime) return info; - } - }; - - CodeMirror.findModeByExtension = function(ext) { - for (var i = 0; i < CodeMirror.modeInfo.length; i++) { - var info = CodeMirror.modeInfo[i]; - if (info.ext) for (var j = 0; j < info.ext.length; j++) - if (info.ext[j] == ext) return info; - } - }; - - CodeMirror.findModeByFileName = function(filename) { - for (var i = 0; i < CodeMirror.modeInfo.length; i++) { - var info = CodeMirror.modeInfo[i]; - if (info.file && info.file.test(filename)) return info; - } - var dot = filename.lastIndexOf("."); - var ext = dot > -1 && filename.substring(dot + 1, filename.length); - if (ext) return CodeMirror.findModeByExtension(ext); - }; - - CodeMirror.findModeByName = function(name) { - name = name.toLowerCase(); - for (var i = 0; i < CodeMirror.modeInfo.length; i++) { - var info = CodeMirror.modeInfo[i]; - if (info.name.toLowerCase() == name) return info; - if (info.alias) for (var j = 0; j < info.alias.length; j++) - if (info.alias[j].toLowerCase() == name) return info; - } - }; -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/mirc/index.html b/src/main/resources/static/editor.md-master/lib/codemirror/mode/mirc/index.html deleted file mode 100644 index fd2f34e..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/mirc/index.html +++ /dev/null @@ -1,160 +0,0 @@ - - -CodeMirror: mIRC mode - - - - - - - - - - -
-

mIRC mode

-
- - -

MIME types defined: text/mirc.

- -
diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/mirc/mirc.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/mirc/mirc.js deleted file mode 100644 index f0d5c6a..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/mirc/mirc.js +++ /dev/null @@ -1,193 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -//mIRC mode by Ford_Lawnmower :: Based on Velocity mode by Steve O'Hara - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { -"use strict"; - -CodeMirror.defineMIME("text/mirc", "mirc"); -CodeMirror.defineMode("mirc", function() { - function parseWords(str) { - var obj = {}, words = str.split(" "); - for (var i = 0; i < words.length; ++i) obj[words[i]] = true; - return obj; - } - var specials = parseWords("$! $$ $& $? $+ $abook $abs $active $activecid " + - "$activewid $address $addtok $agent $agentname $agentstat $agentver " + - "$alias $and $anick $ansi2mirc $aop $appactive $appstate $asc $asctime " + - "$asin $atan $avoice $away $awaymsg $awaytime $banmask $base $bfind " + - "$binoff $biton $bnick $bvar $bytes $calc $cb $cd $ceil $chan $chanmodes " + - "$chantypes $chat $chr $cid $clevel $click $cmdbox $cmdline $cnick $color " + - "$com $comcall $comchan $comerr $compact $compress $comval $cos $count " + - "$cr $crc $creq $crlf $ctime $ctimer $ctrlenter $date $day $daylight " + - "$dbuh $dbuw $dccignore $dccport $dde $ddename $debug $decode $decompress " + - "$deltok $devent $dialog $did $didreg $didtok $didwm $disk $dlevel $dll " + - "$dllcall $dname $dns $duration $ebeeps $editbox $emailaddr $encode $error " + - "$eval $event $exist $feof $ferr $fgetc $file $filename $filtered $finddir " + - "$finddirn $findfile $findfilen $findtok $fline $floor $fopen $fread $fserve " + - "$fulladdress $fulldate $fullname $fullscreen $get $getdir $getdot $gettok $gmt " + - "$group $halted $hash $height $hfind $hget $highlight $hnick $hotline " + - "$hotlinepos $ial $ialchan $ibl $idle $iel $ifmatch $ignore $iif $iil " + - "$inelipse $ini $inmidi $inpaste $inpoly $input $inrect $inroundrect " + - "$insong $instok $int $inwave $ip $isalias $isbit $isdde $isdir $isfile " + - "$isid $islower $istok $isupper $keychar $keyrpt $keyval $knick $lactive " + - "$lactivecid $lactivewid $left $len $level $lf $line $lines $link $lock " + - "$lock $locked $log $logstamp $logstampfmt $longfn $longip $lower $ltimer " + - "$maddress $mask $matchkey $matchtok $md5 $me $menu $menubar $menucontext " + - "$menutype $mid $middir $mircdir $mircexe $mircini $mklogfn $mnick $mode " + - "$modefirst $modelast $modespl $mouse $msfile $network $newnick $nick $nofile " + - "$nopath $noqt $not $notags $notify $null $numeric $numok $oline $onpoly " + - "$opnick $or $ord $os $passivedcc $pic $play $pnick $port $portable $portfree " + - "$pos $prefix $prop $protect $puttok $qt $query $rand $r $rawmsg $read $readomo " + - "$readn $regex $regml $regsub $regsubex $remove $remtok $replace $replacex " + - "$reptok $result $rgb $right $round $scid $scon $script $scriptdir $scriptline " + - "$sdir $send $server $serverip $sfile $sha1 $shortfn $show $signal $sin " + - "$site $sline $snick $snicks $snotify $sock $sockbr $sockerr $sockname " + - "$sorttok $sound $sqrt $ssl $sreq $sslready $status $strip $str $stripped " + - "$syle $submenu $switchbar $tan $target $ticks $time $timer $timestamp " + - "$timestampfmt $timezone $tip $titlebar $toolbar $treebar $trust $ulevel " + - "$ulist $upper $uptime $url $usermode $v1 $v2 $var $vcmd $vcmdstat $vcmdver " + - "$version $vnick $vol $wid $width $wildsite $wildtok $window $wrap $xor"); - var keywords = parseWords("abook ajinvite alias aline ame amsg anick aop auser autojoin avoice " + - "away background ban bcopy beep bread break breplace bset btrunc bunset bwrite " + - "channel clear clearall cline clipboard close cnick color comclose comopen " + - "comreg continue copy creq ctcpreply ctcps dcc dccserver dde ddeserver " + - "debug dec describe dialog did didtok disable disconnect dlevel dline dll " + - "dns dqwindow drawcopy drawdot drawfill drawline drawpic drawrect drawreplace " + - "drawrot drawsave drawscroll drawtext ebeeps echo editbox emailaddr enable " + - "events exit fclose filter findtext finger firewall flash flist flood flush " + - "flushini font fopen fseek fsend fserve fullname fwrite ghide gload gmove " + - "gopts goto gplay gpoint gqreq groups gshow gsize gstop gtalk gunload hadd " + - "halt haltdef hdec hdel help hfree hinc hload hmake hop hsave ial ialclear " + - "ialmark identd if ignore iline inc invite iuser join kick linesep links list " + - "load loadbuf localinfo log mdi me menubar mkdir mnick mode msg nick noop notice " + - "notify omsg onotice part partall pdcc perform play playctrl pop protect pvoice " + - "qme qmsg query queryn quit raw reload remini remote remove rename renwin " + - "reseterror resetidle return rlevel rline rmdir run ruser save savebuf saveini " + - "say scid scon server set showmirc signam sline sockaccept sockclose socklist " + - "socklisten sockmark sockopen sockpause sockread sockrename sockudp sockwrite " + - "sound speak splay sreq strip switchbar timer timestamp titlebar tnick tokenize " + - "toolbar topic tray treebar ulist unload unset unsetall updatenl url uwho " + - "var vcadd vcmd vcrem vol while whois window winhelp write writeint if isalnum " + - "isalpha isaop isavoice isban ischan ishop isignore isin isincs isletter islower " + - "isnotify isnum ison isop isprotect isreg isupper isvoice iswm iswmcs " + - "elseif else goto menu nicklist status title icon size option text edit " + - "button check radio box scroll list combo link tab item"); - var functions = parseWords("if elseif else and not or eq ne in ni for foreach while switch"); - var isOperatorChar = /[+\-*&%=<>!?^\/\|]/; - function chain(stream, state, f) { - state.tokenize = f; - return f(stream, state); - } - function tokenBase(stream, state) { - var beforeParams = state.beforeParams; - state.beforeParams = false; - var ch = stream.next(); - if (/[\[\]{}\(\),\.]/.test(ch)) { - if (ch == "(" && beforeParams) state.inParams = true; - else if (ch == ")") state.inParams = false; - return null; - } - else if (/\d/.test(ch)) { - stream.eatWhile(/[\w\.]/); - return "number"; - } - else if (ch == "\\") { - stream.eat("\\"); - stream.eat(/./); - return "number"; - } - else if (ch == "/" && stream.eat("*")) { - return chain(stream, state, tokenComment); - } - else if (ch == ";" && stream.match(/ *\( *\(/)) { - return chain(stream, state, tokenUnparsed); - } - else if (ch == ";" && !state.inParams) { - stream.skipToEnd(); - return "comment"; - } - else if (ch == '"') { - stream.eat(/"/); - return "keyword"; - } - else if (ch == "$") { - stream.eatWhile(/[$_a-z0-9A-Z\.:]/); - if (specials && specials.propertyIsEnumerable(stream.current().toLowerCase())) { - return "keyword"; - } - else { - state.beforeParams = true; - return "builtin"; - } - } - else if (ch == "%") { - stream.eatWhile(/[^,^\s^\(^\)]/); - state.beforeParams = true; - return "string"; - } - else if (isOperatorChar.test(ch)) { - stream.eatWhile(isOperatorChar); - return "operator"; - } - else { - stream.eatWhile(/[\w\$_{}]/); - var word = stream.current().toLowerCase(); - if (keywords && keywords.propertyIsEnumerable(word)) - return "keyword"; - if (functions && functions.propertyIsEnumerable(word)) { - state.beforeParams = true; - return "keyword"; - } - return null; - } - } - function tokenComment(stream, state) { - var maybeEnd = false, ch; - while (ch = stream.next()) { - if (ch == "/" && maybeEnd) { - state.tokenize = tokenBase; - break; - } - maybeEnd = (ch == "*"); - } - return "comment"; - } - function tokenUnparsed(stream, state) { - var maybeEnd = 0, ch; - while (ch = stream.next()) { - if (ch == ";" && maybeEnd == 2) { - state.tokenize = tokenBase; - break; - } - if (ch == ")") - maybeEnd++; - else if (ch != " ") - maybeEnd = 0; - } - return "meta"; - } - return { - startState: function() { - return { - tokenize: tokenBase, - beforeParams: false, - inParams: false - }; - }, - token: function(stream, state) { - if (stream.eatSpace()) return null; - return state.tokenize(stream, state); - } - }; -}); - -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/mllike/index.html b/src/main/resources/static/editor.md-master/lib/codemirror/mode/mllike/index.html deleted file mode 100644 index 5923af8..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/mllike/index.html +++ /dev/null @@ -1,179 +0,0 @@ - - -CodeMirror: ML-like mode - - - - - - - - - - -
-

OCaml mode

- - - - -

F# mode

- - - - - -

MIME types defined: text/x-ocaml (OCaml) and text/x-fsharp (F#).

-
diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/mllike/mllike.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/mllike/mllike.js deleted file mode 100644 index 04ab1c9..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/mllike/mllike.js +++ /dev/null @@ -1,205 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { -"use strict"; - -CodeMirror.defineMode('mllike', function(_config, parserConfig) { - var words = { - 'let': 'keyword', - 'rec': 'keyword', - 'in': 'keyword', - 'of': 'keyword', - 'and': 'keyword', - 'if': 'keyword', - 'then': 'keyword', - 'else': 'keyword', - 'for': 'keyword', - 'to': 'keyword', - 'while': 'keyword', - 'do': 'keyword', - 'done': 'keyword', - 'fun': 'keyword', - 'function': 'keyword', - 'val': 'keyword', - 'type': 'keyword', - 'mutable': 'keyword', - 'match': 'keyword', - 'with': 'keyword', - 'try': 'keyword', - 'open': 'builtin', - 'ignore': 'builtin', - 'begin': 'keyword', - 'end': 'keyword' - }; - - var extraWords = parserConfig.extraWords || {}; - for (var prop in extraWords) { - if (extraWords.hasOwnProperty(prop)) { - words[prop] = parserConfig.extraWords[prop]; - } - } - - function tokenBase(stream, state) { - var ch = stream.next(); - - if (ch === '"') { - state.tokenize = tokenString; - return state.tokenize(stream, state); - } - if (ch === '(') { - if (stream.eat('*')) { - state.commentLevel++; - state.tokenize = tokenComment; - return state.tokenize(stream, state); - } - } - if (ch === '~') { - stream.eatWhile(/\w/); - return 'variable-2'; - } - if (ch === '`') { - stream.eatWhile(/\w/); - return 'quote'; - } - if (ch === '/' && parserConfig.slashComments && stream.eat('/')) { - stream.skipToEnd(); - return 'comment'; - } - if (/\d/.test(ch)) { - stream.eatWhile(/[\d]/); - if (stream.eat('.')) { - stream.eatWhile(/[\d]/); - } - return 'number'; - } - if ( /[+\-*&%=<>!?|]/.test(ch)) { - return 'operator'; - } - stream.eatWhile(/\w/); - var cur = stream.current(); - return words[cur] || 'variable'; - } - - function tokenString(stream, state) { - var next, end = false, escaped = false; - while ((next = stream.next()) != null) { - if (next === '"' && !escaped) { - end = true; - break; - } - escaped = !escaped && next === '\\'; - } - if (end && !escaped) { - state.tokenize = tokenBase; - } - return 'string'; - }; - - function tokenComment(stream, state) { - var prev, next; - while(state.commentLevel > 0 && (next = stream.next()) != null) { - if (prev === '(' && next === '*') state.commentLevel++; - if (prev === '*' && next === ')') state.commentLevel--; - prev = next; - } - if (state.commentLevel <= 0) { - state.tokenize = tokenBase; - } - return 'comment'; - } - - return { - startState: function() {return {tokenize: tokenBase, commentLevel: 0};}, - token: function(stream, state) { - if (stream.eatSpace()) return null; - return state.tokenize(stream, state); - }, - - blockCommentStart: "(*", - blockCommentEnd: "*)", - lineComment: parserConfig.slashComments ? "//" : null - }; -}); - -CodeMirror.defineMIME('text/x-ocaml', { - name: 'mllike', - extraWords: { - 'succ': 'keyword', - 'trace': 'builtin', - 'exit': 'builtin', - 'print_string': 'builtin', - 'print_endline': 'builtin', - 'true': 'atom', - 'false': 'atom', - 'raise': 'keyword' - } -}); - -CodeMirror.defineMIME('text/x-fsharp', { - name: 'mllike', - extraWords: { - 'abstract': 'keyword', - 'as': 'keyword', - 'assert': 'keyword', - 'base': 'keyword', - 'class': 'keyword', - 'default': 'keyword', - 'delegate': 'keyword', - 'downcast': 'keyword', - 'downto': 'keyword', - 'elif': 'keyword', - 'exception': 'keyword', - 'extern': 'keyword', - 'finally': 'keyword', - 'global': 'keyword', - 'inherit': 'keyword', - 'inline': 'keyword', - 'interface': 'keyword', - 'internal': 'keyword', - 'lazy': 'keyword', - 'let!': 'keyword', - 'member' : 'keyword', - 'module': 'keyword', - 'namespace': 'keyword', - 'new': 'keyword', - 'null': 'keyword', - 'override': 'keyword', - 'private': 'keyword', - 'public': 'keyword', - 'return': 'keyword', - 'return!': 'keyword', - 'select': 'keyword', - 'static': 'keyword', - 'struct': 'keyword', - 'upcast': 'keyword', - 'use': 'keyword', - 'use!': 'keyword', - 'val': 'keyword', - 'when': 'keyword', - 'yield': 'keyword', - 'yield!': 'keyword', - - 'List': 'builtin', - 'Seq': 'builtin', - 'Map': 'builtin', - 'Set': 'builtin', - 'int': 'builtin', - 'string': 'builtin', - 'raise': 'builtin', - 'failwith': 'builtin', - 'not': 'builtin', - 'true': 'builtin', - 'false': 'builtin' - }, - slashComments: true -}); - -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/modelica/index.html b/src/main/resources/static/editor.md-master/lib/codemirror/mode/modelica/index.html deleted file mode 100644 index 408c3b1..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/modelica/index.html +++ /dev/null @@ -1,67 +0,0 @@ - - -CodeMirror: Modelica mode - - - - - - - - - - - - -
-

Modelica mode

- -
- - - -

Simple mode that tries to handle Modelica as well as it can.

- -

MIME types defined: text/x-modelica - (Modlica code).

-
diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/modelica/modelica.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/modelica/modelica.js deleted file mode 100644 index 77ec7a3..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/modelica/modelica.js +++ /dev/null @@ -1,245 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -// Modelica support for CodeMirror, copyright (c) by Lennart Ochel - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -}) - -(function(CodeMirror) { - "use strict"; - - CodeMirror.defineMode("modelica", function(config, parserConfig) { - - var indentUnit = config.indentUnit; - var keywords = parserConfig.keywords || {}; - var builtin = parserConfig.builtin || {}; - var atoms = parserConfig.atoms || {}; - - var isSingleOperatorChar = /[;=\(:\),{}.*<>+\-\/^\[\]]/; - var isDoubleOperatorChar = /(:=|<=|>=|==|<>|\.\+|\.\-|\.\*|\.\/|\.\^)/; - var isDigit = /[0-9]/; - var isNonDigit = /[_a-zA-Z]/; - - function tokenLineComment(stream, state) { - stream.skipToEnd(); - state.tokenize = null; - return "comment"; - } - - function tokenBlockComment(stream, state) { - var maybeEnd = false, ch; - while (ch = stream.next()) { - if (maybeEnd && ch == "/") { - state.tokenize = null; - break; - } - maybeEnd = (ch == "*"); - } - return "comment"; - } - - function tokenString(stream, state) { - var escaped = false, ch; - while ((ch = stream.next()) != null) { - if (ch == '"' && !escaped) { - state.tokenize = null; - state.sol = false; - break; - } - escaped = !escaped && ch == "\\"; - } - - return "string"; - } - - function tokenIdent(stream, state) { - stream.eatWhile(isDigit); - while (stream.eat(isDigit) || stream.eat(isNonDigit)) { } - - - var cur = stream.current(); - - if(state.sol && (cur == "package" || cur == "model" || cur == "when" || cur == "connector")) state.level++; - else if(state.sol && cur == "end" && state.level > 0) state.level--; - - state.tokenize = null; - state.sol = false; - - if (keywords.propertyIsEnumerable(cur)) return "keyword"; - else if (builtin.propertyIsEnumerable(cur)) return "builtin"; - else if (atoms.propertyIsEnumerable(cur)) return "atom"; - else return "variable"; - } - - function tokenQIdent(stream, state) { - while (stream.eat(/[^']/)) { } - - state.tokenize = null; - state.sol = false; - - if(stream.eat("'")) - return "variable"; - else - return "error"; - } - - function tokenUnsignedNuber(stream, state) { - stream.eatWhile(isDigit); - if (stream.eat('.')) { - stream.eatWhile(isDigit); - } - if (stream.eat('e') || stream.eat('E')) { - if (!stream.eat('-')) - stream.eat('+'); - stream.eatWhile(isDigit); - } - - state.tokenize = null; - state.sol = false; - return "number"; - } - - // Interface - return { - startState: function() { - return { - tokenize: null, - level: 0, - sol: true - }; - }, - - token: function(stream, state) { - if(state.tokenize != null) { - return state.tokenize(stream, state); - } - - if(stream.sol()) { - state.sol = true; - } - - // WHITESPACE - if(stream.eatSpace()) { - state.tokenize = null; - return null; - } - - var ch = stream.next(); - - // LINECOMMENT - if(ch == '/' && stream.eat('/')) { - state.tokenize = tokenLineComment; - } - // BLOCKCOMMENT - else if(ch == '/' && stream.eat('*')) { - state.tokenize = tokenBlockComment; - } - // TWO SYMBOL TOKENS - else if(isDoubleOperatorChar.test(ch+stream.peek())) { - stream.next(); - state.tokenize = null; - return "operator"; - } - // SINGLE SYMBOL TOKENS - else if(isSingleOperatorChar.test(ch)) { - state.tokenize = null; - return "operator"; - } - // IDENT - else if(isNonDigit.test(ch)) { - state.tokenize = tokenIdent; - } - // Q-IDENT - else if(ch == "'" && stream.peek() && stream.peek() != "'") { - state.tokenize = tokenQIdent; - } - // STRING - else if(ch == '"') { - state.tokenize = tokenString; - } - // UNSIGNED_NUBER - else if(isDigit.test(ch)) { - state.tokenize = tokenUnsignedNuber; - } - // ERROR - else { - state.tokenize = null; - return "error"; - } - - return state.tokenize(stream, state); - }, - - indent: function(state, textAfter) { - if (state.tokenize != null) return CodeMirror.Pass; - - var level = state.level; - if(/(algorithm)/.test(textAfter)) level--; - if(/(equation)/.test(textAfter)) level--; - if(/(initial algorithm)/.test(textAfter)) level--; - if(/(initial equation)/.test(textAfter)) level--; - if(/(end)/.test(textAfter)) level--; - - if(level > 0) - return indentUnit*level; - else - return 0; - }, - - blockCommentStart: "/*", - blockCommentEnd: "*/", - lineComment: "//" - }; - }); - - function words(str) { - var obj = {}, words = str.split(" "); - for (var i=0; i - -CodeMirror: NGINX mode - - - - - - - - - - - - - -
-

NGINX mode

-
- - -

MIME types defined: text/nginx.

- -
diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/nginx/nginx.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/nginx/nginx.js deleted file mode 100644 index 135b9cc..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/nginx/nginx.js +++ /dev/null @@ -1,178 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { -"use strict"; - -CodeMirror.defineMode("nginx", function(config) { - - function words(str) { - var obj = {}, words = str.split(" "); - for (var i = 0; i < words.length; ++i) obj[words[i]] = true; - return obj; - } - - var keywords = words( - /* ngxDirectiveControl */ "break return rewrite set" + - /* ngxDirective */ " accept_mutex accept_mutex_delay access_log add_after_body add_before_body add_header addition_types aio alias allow ancient_browser ancient_browser_value auth_basic auth_basic_user_file auth_http auth_http_header auth_http_timeout autoindex autoindex_exact_size autoindex_localtime charset charset_types client_body_buffer_size client_body_in_file_only client_body_in_single_buffer client_body_temp_path client_body_timeout client_header_buffer_size client_header_timeout client_max_body_size connection_pool_size create_full_put_path daemon dav_access dav_methods debug_connection debug_points default_type degradation degrade deny devpoll_changes devpoll_events directio directio_alignment empty_gif env epoll_events error_log eventport_events expires fastcgi_bind fastcgi_buffer_size fastcgi_buffers fastcgi_busy_buffers_size fastcgi_cache fastcgi_cache_key fastcgi_cache_methods fastcgi_cache_min_uses fastcgi_cache_path fastcgi_cache_use_stale fastcgi_cache_valid fastcgi_catch_stderr fastcgi_connect_timeout fastcgi_hide_header fastcgi_ignore_client_abort fastcgi_ignore_headers fastcgi_index fastcgi_intercept_errors fastcgi_max_temp_file_size fastcgi_next_upstream fastcgi_param fastcgi_pass_header fastcgi_pass_request_body fastcgi_pass_request_headers fastcgi_read_timeout fastcgi_send_lowat fastcgi_send_timeout fastcgi_split_path_info fastcgi_store fastcgi_store_access fastcgi_temp_file_write_size fastcgi_temp_path fastcgi_upstream_fail_timeout fastcgi_upstream_max_fails flv geoip_city geoip_country google_perftools_profiles gzip gzip_buffers gzip_comp_level gzip_disable gzip_hash gzip_http_version gzip_min_length gzip_no_buffer gzip_proxied gzip_static gzip_types gzip_vary gzip_window if_modified_since ignore_invalid_headers image_filter image_filter_buffer image_filter_jpeg_quality image_filter_transparency imap_auth imap_capabilities imap_client_buffer index ip_hash keepalive_requests keepalive_timeout kqueue_changes kqueue_events large_client_header_buffers limit_conn limit_conn_log_level limit_rate limit_rate_after limit_req limit_req_log_level limit_req_zone limit_zone lingering_time lingering_timeout lock_file log_format log_not_found log_subrequest map_hash_bucket_size map_hash_max_size master_process memcached_bind memcached_buffer_size memcached_connect_timeout memcached_next_upstream memcached_read_timeout memcached_send_timeout memcached_upstream_fail_timeout memcached_upstream_max_fails merge_slashes min_delete_depth modern_browser modern_browser_value msie_padding msie_refresh multi_accept open_file_cache open_file_cache_errors open_file_cache_events open_file_cache_min_uses open_file_cache_valid open_log_file_cache output_buffers override_charset perl perl_modules perl_require perl_set pid pop3_auth pop3_capabilities port_in_redirect postpone_gzipping postpone_output protocol proxy proxy_bind proxy_buffer proxy_buffer_size proxy_buffering proxy_buffers proxy_busy_buffers_size proxy_cache proxy_cache_key proxy_cache_methods proxy_cache_min_uses proxy_cache_path proxy_cache_use_stale proxy_cache_valid proxy_connect_timeout proxy_headers_hash_bucket_size proxy_headers_hash_max_size proxy_hide_header proxy_ignore_client_abort proxy_ignore_headers proxy_intercept_errors proxy_max_temp_file_size proxy_method proxy_next_upstream proxy_pass_error_message proxy_pass_header proxy_pass_request_body proxy_pass_request_headers proxy_read_timeout proxy_redirect proxy_send_lowat proxy_send_timeout proxy_set_body proxy_set_header proxy_ssl_session_reuse proxy_store proxy_store_access proxy_temp_file_write_size proxy_temp_path proxy_timeout proxy_upstream_fail_timeout proxy_upstream_max_fails random_index read_ahead real_ip_header recursive_error_pages request_pool_size reset_timedout_connection resolver resolver_timeout rewrite_log rtsig_overflow_events rtsig_overflow_test rtsig_overflow_threshold rtsig_signo satisfy secure_link_secret send_lowat send_timeout sendfile sendfile_max_chunk server_name_in_redirect server_names_hash_bucket_size server_names_hash_max_size server_tokens set_real_ip_from smtp_auth smtp_capabilities smtp_client_buffer smtp_greeting_delay so_keepalive source_charset ssi ssi_ignore_recycled_buffers ssi_min_file_chunk ssi_silent_errors ssi_types ssi_value_length ssl ssl_certificate ssl_certificate_key ssl_ciphers ssl_client_certificate ssl_crl ssl_dhparam ssl_engine ssl_prefer_server_ciphers ssl_protocols ssl_session_cache ssl_session_timeout ssl_verify_client ssl_verify_depth starttls stub_status sub_filter sub_filter_once sub_filter_types tcp_nodelay tcp_nopush thread_stack_size timeout timer_resolution types_hash_bucket_size types_hash_max_size underscores_in_headers uninitialized_variable_warn use user userid userid_domain userid_expires userid_mark userid_name userid_p3p userid_path userid_service valid_referers variables_hash_bucket_size variables_hash_max_size worker_connections worker_cpu_affinity worker_priority worker_processes worker_rlimit_core worker_rlimit_nofile worker_rlimit_sigpending worker_threads working_directory xclient xml_entities xslt_stylesheet xslt_typesdrew@li229-23" - ); - - var keywords_block = words( - /* ngxDirectiveBlock */ "http mail events server types location upstream charset_map limit_except if geo map" - ); - - var keywords_important = words( - /* ngxDirectiveImportant */ "include root server server_name listen internal proxy_pass memcached_pass fastcgi_pass try_files" - ); - - var indentUnit = config.indentUnit, type; - function ret(style, tp) {type = tp; return style;} - - function tokenBase(stream, state) { - - - stream.eatWhile(/[\w\$_]/); - - var cur = stream.current(); - - - if (keywords.propertyIsEnumerable(cur)) { - return "keyword"; - } - else if (keywords_block.propertyIsEnumerable(cur)) { - return "variable-2"; - } - else if (keywords_important.propertyIsEnumerable(cur)) { - return "string-2"; - } - /**/ - - var ch = stream.next(); - if (ch == "@") {stream.eatWhile(/[\w\\\-]/); return ret("meta", stream.current());} - else if (ch == "/" && stream.eat("*")) { - state.tokenize = tokenCComment; - return tokenCComment(stream, state); - } - else if (ch == "<" && stream.eat("!")) { - state.tokenize = tokenSGMLComment; - return tokenSGMLComment(stream, state); - } - else if (ch == "=") ret(null, "compare"); - else if ((ch == "~" || ch == "|") && stream.eat("=")) return ret(null, "compare"); - else if (ch == "\"" || ch == "'") { - state.tokenize = tokenString(ch); - return state.tokenize(stream, state); - } - else if (ch == "#") { - stream.skipToEnd(); - return ret("comment", "comment"); - } - else if (ch == "!") { - stream.match(/^\s*\w*/); - return ret("keyword", "important"); - } - else if (/\d/.test(ch)) { - stream.eatWhile(/[\w.%]/); - return ret("number", "unit"); - } - else if (/[,.+>*\/]/.test(ch)) { - return ret(null, "select-op"); - } - else if (/[;{}:\[\]]/.test(ch)) { - return ret(null, ch); - } - else { - stream.eatWhile(/[\w\\\-]/); - return ret("variable", "variable"); - } - } - - function tokenCComment(stream, state) { - var maybeEnd = false, ch; - while ((ch = stream.next()) != null) { - if (maybeEnd && ch == "/") { - state.tokenize = tokenBase; - break; - } - maybeEnd = (ch == "*"); - } - return ret("comment", "comment"); - } - - function tokenSGMLComment(stream, state) { - var dashes = 0, ch; - while ((ch = stream.next()) != null) { - if (dashes >= 2 && ch == ">") { - state.tokenize = tokenBase; - break; - } - dashes = (ch == "-") ? dashes + 1 : 0; - } - return ret("comment", "comment"); - } - - function tokenString(quote) { - return function(stream, state) { - var escaped = false, ch; - while ((ch = stream.next()) != null) { - if (ch == quote && !escaped) - break; - escaped = !escaped && ch == "\\"; - } - if (!escaped) state.tokenize = tokenBase; - return ret("string", "string"); - }; - } - - return { - startState: function(base) { - return {tokenize: tokenBase, - baseIndent: base || 0, - stack: []}; - }, - - token: function(stream, state) { - if (stream.eatSpace()) return null; - type = null; - var style = state.tokenize(stream, state); - - var context = state.stack[state.stack.length-1]; - if (type == "hash" && context == "rule") style = "atom"; - else if (style == "variable") { - if (context == "rule") style = "number"; - else if (!context || context == "@media{") style = "tag"; - } - - if (context == "rule" && /^[\{\};]$/.test(type)) - state.stack.pop(); - if (type == "{") { - if (context == "@media") state.stack[state.stack.length-1] = "@media{"; - else state.stack.push("{"); - } - else if (type == "}") state.stack.pop(); - else if (type == "@media") state.stack.push("@media"); - else if (context == "{" && type != "comment") state.stack.push("rule"); - return style; - }, - - indent: function(state, textAfter) { - var n = state.stack.length; - if (/^\}/.test(textAfter)) - n -= state.stack[state.stack.length-1] == "rule" ? 2 : 1; - return state.baseIndent + n * indentUnit; - }, - - electricChars: "}" - }; -}); - -CodeMirror.defineMIME("text/nginx", "text/x-nginx-conf"); - -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/ntriples/index.html b/src/main/resources/static/editor.md-master/lib/codemirror/mode/ntriples/index.html deleted file mode 100644 index 1355e71..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/ntriples/index.html +++ /dev/null @@ -1,45 +0,0 @@ - - -CodeMirror: NTriples mode - - - - - - - - - -
-

NTriples mode

-
- -
- - -

MIME types defined: text/n-triples.

-
diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/ntriples/ntriples.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/ntriples/ntriples.js deleted file mode 100644 index 0524b1e..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/ntriples/ntriples.js +++ /dev/null @@ -1,186 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -/********************************************************** -* This script provides syntax highlighting support for -* the Ntriples format. -* Ntriples format specification: -* http://www.w3.org/TR/rdf-testcases/#ntriples -***********************************************************/ - -/* - The following expression defines the defined ASF grammar transitions. - - pre_subject -> - { - ( writing_subject_uri | writing_bnode_uri ) - -> pre_predicate - -> writing_predicate_uri - -> pre_object - -> writing_object_uri | writing_object_bnode | - ( - writing_object_literal - -> writing_literal_lang | writing_literal_type - ) - -> post_object - -> BEGIN - } otherwise { - -> ERROR - } -*/ - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { -"use strict"; - -CodeMirror.defineMode("ntriples", function() { - - var Location = { - PRE_SUBJECT : 0, - WRITING_SUB_URI : 1, - WRITING_BNODE_URI : 2, - PRE_PRED : 3, - WRITING_PRED_URI : 4, - PRE_OBJ : 5, - WRITING_OBJ_URI : 6, - WRITING_OBJ_BNODE : 7, - WRITING_OBJ_LITERAL : 8, - WRITING_LIT_LANG : 9, - WRITING_LIT_TYPE : 10, - POST_OBJ : 11, - ERROR : 12 - }; - function transitState(currState, c) { - var currLocation = currState.location; - var ret; - - // Opening. - if (currLocation == Location.PRE_SUBJECT && c == '<') ret = Location.WRITING_SUB_URI; - else if(currLocation == Location.PRE_SUBJECT && c == '_') ret = Location.WRITING_BNODE_URI; - else if(currLocation == Location.PRE_PRED && c == '<') ret = Location.WRITING_PRED_URI; - else if(currLocation == Location.PRE_OBJ && c == '<') ret = Location.WRITING_OBJ_URI; - else if(currLocation == Location.PRE_OBJ && c == '_') ret = Location.WRITING_OBJ_BNODE; - else if(currLocation == Location.PRE_OBJ && c == '"') ret = Location.WRITING_OBJ_LITERAL; - - // Closing. - else if(currLocation == Location.WRITING_SUB_URI && c == '>') ret = Location.PRE_PRED; - else if(currLocation == Location.WRITING_BNODE_URI && c == ' ') ret = Location.PRE_PRED; - else if(currLocation == Location.WRITING_PRED_URI && c == '>') ret = Location.PRE_OBJ; - else if(currLocation == Location.WRITING_OBJ_URI && c == '>') ret = Location.POST_OBJ; - else if(currLocation == Location.WRITING_OBJ_BNODE && c == ' ') ret = Location.POST_OBJ; - else if(currLocation == Location.WRITING_OBJ_LITERAL && c == '"') ret = Location.POST_OBJ; - else if(currLocation == Location.WRITING_LIT_LANG && c == ' ') ret = Location.POST_OBJ; - else if(currLocation == Location.WRITING_LIT_TYPE && c == '>') ret = Location.POST_OBJ; - - // Closing typed and language literal. - else if(currLocation == Location.WRITING_OBJ_LITERAL && c == '@') ret = Location.WRITING_LIT_LANG; - else if(currLocation == Location.WRITING_OBJ_LITERAL && c == '^') ret = Location.WRITING_LIT_TYPE; - - // Spaces. - else if( c == ' ' && - ( - currLocation == Location.PRE_SUBJECT || - currLocation == Location.PRE_PRED || - currLocation == Location.PRE_OBJ || - currLocation == Location.POST_OBJ - ) - ) ret = currLocation; - - // Reset. - else if(currLocation == Location.POST_OBJ && c == '.') ret = Location.PRE_SUBJECT; - - // Error - else ret = Location.ERROR; - - currState.location=ret; - } - - return { - startState: function() { - return { - location : Location.PRE_SUBJECT, - uris : [], - anchors : [], - bnodes : [], - langs : [], - types : [] - }; - }, - token: function(stream, state) { - var ch = stream.next(); - if(ch == '<') { - transitState(state, ch); - var parsedURI = ''; - stream.eatWhile( function(c) { if( c != '#' && c != '>' ) { parsedURI += c; return true; } return false;} ); - state.uris.push(parsedURI); - if( stream.match('#', false) ) return 'variable'; - stream.next(); - transitState(state, '>'); - return 'variable'; - } - if(ch == '#') { - var parsedAnchor = ''; - stream.eatWhile(function(c) { if(c != '>' && c != ' ') { parsedAnchor+= c; return true; } return false;}); - state.anchors.push(parsedAnchor); - return 'variable-2'; - } - if(ch == '>') { - transitState(state, '>'); - return 'variable'; - } - if(ch == '_') { - transitState(state, ch); - var parsedBNode = ''; - stream.eatWhile(function(c) { if( c != ' ' ) { parsedBNode += c; return true; } return false;}); - state.bnodes.push(parsedBNode); - stream.next(); - transitState(state, ' '); - return 'builtin'; - } - if(ch == '"') { - transitState(state, ch); - stream.eatWhile( function(c) { return c != '"'; } ); - stream.next(); - if( stream.peek() != '@' && stream.peek() != '^' ) { - transitState(state, '"'); - } - return 'string'; - } - if( ch == '@' ) { - transitState(state, '@'); - var parsedLang = ''; - stream.eatWhile(function(c) { if( c != ' ' ) { parsedLang += c; return true; } return false;}); - state.langs.push(parsedLang); - stream.next(); - transitState(state, ' '); - return 'string-2'; - } - if( ch == '^' ) { - stream.next(); - transitState(state, '^'); - var parsedType = ''; - stream.eatWhile(function(c) { if( c != '>' ) { parsedType += c; return true; } return false;} ); - state.types.push(parsedType); - stream.next(); - transitState(state, '>'); - return 'variable'; - } - if( ch == ' ' ) { - transitState(state, ch); - } - if( ch == '.' ) { - transitState(state, ch); - } - } - }; -}); - -CodeMirror.defineMIME("text/n-triples", "ntriples"); - -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/octave/index.html b/src/main/resources/static/editor.md-master/lib/codemirror/mode/octave/index.html deleted file mode 100644 index 79df581..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/octave/index.html +++ /dev/null @@ -1,83 +0,0 @@ - - -CodeMirror: Octave mode - - - - - - - - - -
-

Octave mode

- -
- - -

MIME types defined: text/x-octave.

-
diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/octave/octave.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/octave/octave.js deleted file mode 100644 index a7bec03..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/octave/octave.js +++ /dev/null @@ -1,135 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { -"use strict"; - -CodeMirror.defineMode("octave", function() { - function wordRegexp(words) { - return new RegExp("^((" + words.join(")|(") + "))\\b"); - } - - var singleOperators = new RegExp("^[\\+\\-\\*/&|\\^~<>!@'\\\\]"); - var singleDelimiters = new RegExp('^[\\(\\[\\{\\},:=;]'); - var doubleOperators = new RegExp("^((==)|(~=)|(<=)|(>=)|(<<)|(>>)|(\\.[\\+\\-\\*/\\^\\\\]))"); - var doubleDelimiters = new RegExp("^((!=)|(\\+=)|(\\-=)|(\\*=)|(/=)|(&=)|(\\|=)|(\\^=))"); - var tripleDelimiters = new RegExp("^((>>=)|(<<=))"); - var expressionEnd = new RegExp("^[\\]\\)]"); - var identifiers = new RegExp("^[_A-Za-z\xa1-\uffff][_A-Za-z0-9\xa1-\uffff]*"); - - var builtins = wordRegexp([ - 'error', 'eval', 'function', 'abs', 'acos', 'atan', 'asin', 'cos', - 'cosh', 'exp', 'log', 'prod', 'sum', 'log10', 'max', 'min', 'sign', 'sin', 'sinh', - 'sqrt', 'tan', 'reshape', 'break', 'zeros', 'default', 'margin', 'round', 'ones', - 'rand', 'syn', 'ceil', 'floor', 'size', 'clear', 'zeros', 'eye', 'mean', 'std', 'cov', - 'det', 'eig', 'inv', 'norm', 'rank', 'trace', 'expm', 'logm', 'sqrtm', 'linspace', 'plot', - 'title', 'xlabel', 'ylabel', 'legend', 'text', 'grid', 'meshgrid', 'mesh', 'num2str', - 'fft', 'ifft', 'arrayfun', 'cellfun', 'input', 'fliplr', 'flipud', 'ismember' - ]); - - var keywords = wordRegexp([ - 'return', 'case', 'switch', 'else', 'elseif', 'end', 'endif', 'endfunction', - 'if', 'otherwise', 'do', 'for', 'while', 'try', 'catch', 'classdef', 'properties', 'events', - 'methods', 'global', 'persistent', 'endfor', 'endwhile', 'printf', 'sprintf', 'disp', 'until', - 'continue', 'pkg' - ]); - - - // tokenizers - function tokenTranspose(stream, state) { - if (!stream.sol() && stream.peek() === '\'') { - stream.next(); - state.tokenize = tokenBase; - return 'operator'; - } - state.tokenize = tokenBase; - return tokenBase(stream, state); - } - - - function tokenComment(stream, state) { - if (stream.match(/^.*%}/)) { - state.tokenize = tokenBase; - return 'comment'; - }; - stream.skipToEnd(); - return 'comment'; - } - - function tokenBase(stream, state) { - // whitespaces - if (stream.eatSpace()) return null; - - // Handle one line Comments - if (stream.match('%{')){ - state.tokenize = tokenComment; - stream.skipToEnd(); - return 'comment'; - } - - if (stream.match(/^[%#]/)){ - stream.skipToEnd(); - return 'comment'; - } - - // Handle Number Literals - if (stream.match(/^[0-9\.+-]/, false)) { - if (stream.match(/^[+-]?0x[0-9a-fA-F]+[ij]?/)) { - stream.tokenize = tokenBase; - return 'number'; }; - if (stream.match(/^[+-]?\d*\.\d+([EeDd][+-]?\d+)?[ij]?/)) { return 'number'; }; - if (stream.match(/^[+-]?\d+([EeDd][+-]?\d+)?[ij]?/)) { return 'number'; }; - } - if (stream.match(wordRegexp(['nan','NaN','inf','Inf']))) { return 'number'; }; - - // Handle Strings - if (stream.match(/^"([^"]|(""))*"/)) { return 'string'; } ; - if (stream.match(/^'([^']|(''))*'/)) { return 'string'; } ; - - // Handle words - if (stream.match(keywords)) { return 'keyword'; } ; - if (stream.match(builtins)) { return 'builtin'; } ; - if (stream.match(identifiers)) { return 'variable'; } ; - - if (stream.match(singleOperators) || stream.match(doubleOperators)) { return 'operator'; }; - if (stream.match(singleDelimiters) || stream.match(doubleDelimiters) || stream.match(tripleDelimiters)) { return null; }; - - if (stream.match(expressionEnd)) { - state.tokenize = tokenTranspose; - return null; - }; - - - // Handle non-detected items - stream.next(); - return 'error'; - }; - - - return { - startState: function() { - return { - tokenize: tokenBase - }; - }, - - token: function(stream, state) { - var style = state.tokenize(stream, state); - if (style === 'number' || style === 'variable'){ - state.tokenize = tokenTranspose; - } - return style; - } - }; -}); - -CodeMirror.defineMIME("text/x-octave", "octave"); - -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/pascal/index.html b/src/main/resources/static/editor.md-master/lib/codemirror/mode/pascal/index.html deleted file mode 100644 index f8a99ad..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/pascal/index.html +++ /dev/null @@ -1,61 +0,0 @@ - - -CodeMirror: Pascal mode - - - - - - - - - -
-

Pascal mode

- - -
- - - -

MIME types defined: text/x-pascal.

-
diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/pascal/pascal.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/pascal/pascal.js deleted file mode 100644 index 2d0c3d4..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/pascal/pascal.js +++ /dev/null @@ -1,109 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { -"use strict"; - -CodeMirror.defineMode("pascal", function() { - function words(str) { - var obj = {}, words = str.split(" "); - for (var i = 0; i < words.length; ++i) obj[words[i]] = true; - return obj; - } - var keywords = words("and array begin case const div do downto else end file for forward integer " + - "boolean char function goto if in label mod nil not of or packed procedure " + - "program record repeat set string then to type until var while with"); - var atoms = {"null": true}; - - var isOperatorChar = /[+\-*&%=<>!?|\/]/; - - function tokenBase(stream, state) { - var ch = stream.next(); - if (ch == "#" && state.startOfLine) { - stream.skipToEnd(); - return "meta"; - } - if (ch == '"' || ch == "'") { - state.tokenize = tokenString(ch); - return state.tokenize(stream, state); - } - if (ch == "(" && stream.eat("*")) { - state.tokenize = tokenComment; - return tokenComment(stream, state); - } - if (/[\[\]{}\(\),;\:\.]/.test(ch)) { - return null; - } - if (/\d/.test(ch)) { - stream.eatWhile(/[\w\.]/); - return "number"; - } - if (ch == "/") { - if (stream.eat("/")) { - stream.skipToEnd(); - return "comment"; - } - } - if (isOperatorChar.test(ch)) { - stream.eatWhile(isOperatorChar); - return "operator"; - } - stream.eatWhile(/[\w\$_]/); - var cur = stream.current(); - if (keywords.propertyIsEnumerable(cur)) return "keyword"; - if (atoms.propertyIsEnumerable(cur)) return "atom"; - return "variable"; - } - - function tokenString(quote) { - return function(stream, state) { - var escaped = false, next, end = false; - while ((next = stream.next()) != null) { - if (next == quote && !escaped) {end = true; break;} - escaped = !escaped && next == "\\"; - } - if (end || !escaped) state.tokenize = null; - return "string"; - }; - } - - function tokenComment(stream, state) { - var maybeEnd = false, ch; - while (ch = stream.next()) { - if (ch == ")" && maybeEnd) { - state.tokenize = null; - break; - } - maybeEnd = (ch == "*"); - } - return "comment"; - } - - // Interface - - return { - startState: function() { - return {tokenize: null}; - }, - - token: function(stream, state) { - if (stream.eatSpace()) return null; - var style = (state.tokenize || tokenBase)(stream, state); - if (style == "comment" || style == "meta") return style; - return style; - }, - - electricChars: "{}" - }; -}); - -CodeMirror.defineMIME("text/x-pascal", "pascal"); - -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/pegjs/index.html b/src/main/resources/static/editor.md-master/lib/codemirror/mode/pegjs/index.html deleted file mode 100644 index 0c74604..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/pegjs/index.html +++ /dev/null @@ -1,66 +0,0 @@ - - - - CodeMirror: PEG.js Mode - - - - - - - - - - - - -
-

PEG.js Mode

-
- -

The PEG.js Mode

-

Created by Forbes Lindesay.

-
- - diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/pegjs/pegjs.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/pegjs/pegjs.js deleted file mode 100644 index 306e376..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/pegjs/pegjs.js +++ /dev/null @@ -1,114 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror"), require("../javascript/javascript")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror", "../javascript/javascript"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { -"use strict"; - -CodeMirror.defineMode("pegjs", function (config) { - var jsMode = CodeMirror.getMode(config, "javascript"); - - function identifier(stream) { - return stream.match(/^[a-zA-Z_][a-zA-Z0-9_]*/); - } - - return { - startState: function () { - return { - inString: false, - stringType: null, - inComment: false, - inChracterClass: false, - braced: 0, - lhs: true, - localState: null - }; - }, - token: function (stream, state) { - if (stream) - - //check for state changes - if (!state.inString && !state.inComment && ((stream.peek() == '"') || (stream.peek() == "'"))) { - state.stringType = stream.peek(); - stream.next(); // Skip quote - state.inString = true; // Update state - } - if (!state.inString && !state.inComment && stream.match(/^\/\*/)) { - state.inComment = true; - } - - //return state - if (state.inString) { - while (state.inString && !stream.eol()) { - if (stream.peek() === state.stringType) { - stream.next(); // Skip quote - state.inString = false; // Clear flag - } else if (stream.peek() === '\\') { - stream.next(); - stream.next(); - } else { - stream.match(/^.[^\\\"\']*/); - } - } - return state.lhs ? "property string" : "string"; // Token style - } else if (state.inComment) { - while (state.inComment && !stream.eol()) { - if (stream.match(/\*\//)) { - state.inComment = false; // Clear flag - } else { - stream.match(/^.[^\*]*/); - } - } - return "comment"; - } else if (state.inChracterClass) { - while (state.inChracterClass && !stream.eol()) { - if (!(stream.match(/^[^\]\\]+/) || stream.match(/^\\./))) { - state.inChracterClass = false; - } - } - } else if (stream.peek() === '[') { - stream.next(); - state.inChracterClass = true; - return 'bracket'; - } else if (stream.match(/^\/\//)) { - stream.skipToEnd(); - return "comment"; - } else if (state.braced || stream.peek() === '{') { - if (state.localState === null) { - state.localState = jsMode.startState(); - } - var token = jsMode.token(stream, state.localState); - var text = stream.current(); - if (!token) { - for (var i = 0; i < text.length; i++) { - if (text[i] === '{') { - state.braced++; - } else if (text[i] === '}') { - state.braced--; - } - }; - } - return token; - } else if (identifier(stream)) { - if (stream.peek() === ':') { - return 'variable'; - } - return 'variable-2'; - } else if (['[', ']', '(', ')'].indexOf(stream.peek()) != -1) { - stream.next(); - return 'bracket'; - } else if (!stream.eatSpace()) { - stream.next(); - } - return null; - } - }; -}, "javascript"); - -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/perl/index.html b/src/main/resources/static/editor.md-master/lib/codemirror/mode/perl/index.html deleted file mode 100644 index 8c1021c..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/perl/index.html +++ /dev/null @@ -1,75 +0,0 @@ - - -CodeMirror: Perl mode - - - - - - - - - -
-

Perl mode

- - -
- - - -

MIME types defined: text/x-perl.

-
diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/perl/perl.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/perl/perl.js deleted file mode 100644 index bef62bc..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/perl/perl.js +++ /dev/null @@ -1,837 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -// CodeMirror2 mode/perl/perl.js (text/x-perl) beta 0.10 (2011-11-08) -// This is a part of CodeMirror from https://github.com/sabaca/CodeMirror_mode_perl (mail@sabaca.com) - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { -"use strict"; - -CodeMirror.defineMode("perl",function(){ - // http://perldoc.perl.org - var PERL={ // null - magic touch - // 1 - keyword - // 2 - def - // 3 - atom - // 4 - operator - // 5 - variable-2 (predefined) - // [x,y] - x=1,2,3; y=must be defined if x{...} - // PERL operators - '->' : 4, - '++' : 4, - '--' : 4, - '**' : 4, - // ! ~ \ and unary + and - - '=~' : 4, - '!~' : 4, - '*' : 4, - '/' : 4, - '%' : 4, - 'x' : 4, - '+' : 4, - '-' : 4, - '.' : 4, - '<<' : 4, - '>>' : 4, - // named unary operators - '<' : 4, - '>' : 4, - '<=' : 4, - '>=' : 4, - 'lt' : 4, - 'gt' : 4, - 'le' : 4, - 'ge' : 4, - '==' : 4, - '!=' : 4, - '<=>' : 4, - 'eq' : 4, - 'ne' : 4, - 'cmp' : 4, - '~~' : 4, - '&' : 4, - '|' : 4, - '^' : 4, - '&&' : 4, - '||' : 4, - '//' : 4, - '..' : 4, - '...' : 4, - '?' : 4, - ':' : 4, - '=' : 4, - '+=' : 4, - '-=' : 4, - '*=' : 4, // etc. ??? - ',' : 4, - '=>' : 4, - '::' : 4, - // list operators (rightward) - 'not' : 4, - 'and' : 4, - 'or' : 4, - 'xor' : 4, - // PERL predefined variables (I know, what this is a paranoid idea, but may be needed for people, who learn PERL, and for me as well, ...and may be for you?;) - 'BEGIN' : [5,1], - 'END' : [5,1], - 'PRINT' : [5,1], - 'PRINTF' : [5,1], - 'GETC' : [5,1], - 'READ' : [5,1], - 'READLINE' : [5,1], - 'DESTROY' : [5,1], - 'TIE' : [5,1], - 'TIEHANDLE' : [5,1], - 'UNTIE' : [5,1], - 'STDIN' : 5, - 'STDIN_TOP' : 5, - 'STDOUT' : 5, - 'STDOUT_TOP' : 5, - 'STDERR' : 5, - 'STDERR_TOP' : 5, - '$ARG' : 5, - '$_' : 5, - '@ARG' : 5, - '@_' : 5, - '$LIST_SEPARATOR' : 5, - '$"' : 5, - '$PROCESS_ID' : 5, - '$PID' : 5, - '$$' : 5, - '$REAL_GROUP_ID' : 5, - '$GID' : 5, - '$(' : 5, - '$EFFECTIVE_GROUP_ID' : 5, - '$EGID' : 5, - '$)' : 5, - '$PROGRAM_NAME' : 5, - '$0' : 5, - '$SUBSCRIPT_SEPARATOR' : 5, - '$SUBSEP' : 5, - '$;' : 5, - '$REAL_USER_ID' : 5, - '$UID' : 5, - '$<' : 5, - '$EFFECTIVE_USER_ID' : 5, - '$EUID' : 5, - '$>' : 5, - '$a' : 5, - '$b' : 5, - '$COMPILING' : 5, - '$^C' : 5, - '$DEBUGGING' : 5, - '$^D' : 5, - '${^ENCODING}' : 5, - '$ENV' : 5, - '%ENV' : 5, - '$SYSTEM_FD_MAX' : 5, - '$^F' : 5, - '@F' : 5, - '${^GLOBAL_PHASE}' : 5, - '$^H' : 5, - '%^H' : 5, - '@INC' : 5, - '%INC' : 5, - '$INPLACE_EDIT' : 5, - '$^I' : 5, - '$^M' : 5, - '$OSNAME' : 5, - '$^O' : 5, - '${^OPEN}' : 5, - '$PERLDB' : 5, - '$^P' : 5, - '$SIG' : 5, - '%SIG' : 5, - '$BASETIME' : 5, - '$^T' : 5, - '${^TAINT}' : 5, - '${^UNICODE}' : 5, - '${^UTF8CACHE}' : 5, - '${^UTF8LOCALE}' : 5, - '$PERL_VERSION' : 5, - '$^V' : 5, - '${^WIN32_SLOPPY_STAT}' : 5, - '$EXECUTABLE_NAME' : 5, - '$^X' : 5, - '$1' : 5, // - regexp $1, $2... - '$MATCH' : 5, - '$&' : 5, - '${^MATCH}' : 5, - '$PREMATCH' : 5, - '$`' : 5, - '${^PREMATCH}' : 5, - '$POSTMATCH' : 5, - "$'" : 5, - '${^POSTMATCH}' : 5, - '$LAST_PAREN_MATCH' : 5, - '$+' : 5, - '$LAST_SUBMATCH_RESULT' : 5, - '$^N' : 5, - '@LAST_MATCH_END' : 5, - '@+' : 5, - '%LAST_PAREN_MATCH' : 5, - '%+' : 5, - '@LAST_MATCH_START' : 5, - '@-' : 5, - '%LAST_MATCH_START' : 5, - '%-' : 5, - '$LAST_REGEXP_CODE_RESULT' : 5, - '$^R' : 5, - '${^RE_DEBUG_FLAGS}' : 5, - '${^RE_TRIE_MAXBUF}' : 5, - '$ARGV' : 5, - '@ARGV' : 5, - 'ARGV' : 5, - 'ARGVOUT' : 5, - '$OUTPUT_FIELD_SEPARATOR' : 5, - '$OFS' : 5, - '$,' : 5, - '$INPUT_LINE_NUMBER' : 5, - '$NR' : 5, - '$.' : 5, - '$INPUT_RECORD_SEPARATOR' : 5, - '$RS' : 5, - '$/' : 5, - '$OUTPUT_RECORD_SEPARATOR' : 5, - '$ORS' : 5, - '$\\' : 5, - '$OUTPUT_AUTOFLUSH' : 5, - '$|' : 5, - '$ACCUMULATOR' : 5, - '$^A' : 5, - '$FORMAT_FORMFEED' : 5, - '$^L' : 5, - '$FORMAT_PAGE_NUMBER' : 5, - '$%' : 5, - '$FORMAT_LINES_LEFT' : 5, - '$-' : 5, - '$FORMAT_LINE_BREAK_CHARACTERS' : 5, - '$:' : 5, - '$FORMAT_LINES_PER_PAGE' : 5, - '$=' : 5, - '$FORMAT_TOP_NAME' : 5, - '$^' : 5, - '$FORMAT_NAME' : 5, - '$~' : 5, - '${^CHILD_ERROR_NATIVE}' : 5, - '$EXTENDED_OS_ERROR' : 5, - '$^E' : 5, - '$EXCEPTIONS_BEING_CAUGHT' : 5, - '$^S' : 5, - '$WARNING' : 5, - '$^W' : 5, - '${^WARNING_BITS}' : 5, - '$OS_ERROR' : 5, - '$ERRNO' : 5, - '$!' : 5, - '%OS_ERROR' : 5, - '%ERRNO' : 5, - '%!' : 5, - '$CHILD_ERROR' : 5, - '$?' : 5, - '$EVAL_ERROR' : 5, - '$@' : 5, - '$OFMT' : 5, - '$#' : 5, - '$*' : 5, - '$ARRAY_BASE' : 5, - '$[' : 5, - '$OLD_PERL_VERSION' : 5, - '$]' : 5, - // PERL blocks - 'if' :[1,1], - elsif :[1,1], - 'else' :[1,1], - 'while' :[1,1], - unless :[1,1], - 'for' :[1,1], - foreach :[1,1], - // PERL functions - 'abs' :1, // - absolute value function - accept :1, // - accept an incoming socket connect - alarm :1, // - schedule a SIGALRM - 'atan2' :1, // - arctangent of Y/X in the range -PI to PI - bind :1, // - binds an address to a socket - binmode :1, // - prepare binary files for I/O - bless :1, // - create an object - bootstrap :1, // - 'break' :1, // - break out of a "given" block - caller :1, // - get context of the current subroutine call - chdir :1, // - change your current working directory - chmod :1, // - changes the permissions on a list of files - chomp :1, // - remove a trailing record separator from a string - chop :1, // - remove the last character from a string - chown :1, // - change the owership on a list of files - chr :1, // - get character this number represents - chroot :1, // - make directory new root for path lookups - close :1, // - close file (or pipe or socket) handle - closedir :1, // - close directory handle - connect :1, // - connect to a remote socket - 'continue' :[1,1], // - optional trailing block in a while or foreach - 'cos' :1, // - cosine function - crypt :1, // - one-way passwd-style encryption - dbmclose :1, // - breaks binding on a tied dbm file - dbmopen :1, // - create binding on a tied dbm file - 'default' :1, // - defined :1, // - test whether a value, variable, or function is defined - 'delete' :1, // - deletes a value from a hash - die :1, // - raise an exception or bail out - 'do' :1, // - turn a BLOCK into a TERM - dump :1, // - create an immediate core dump - each :1, // - retrieve the next key/value pair from a hash - endgrent :1, // - be done using group file - endhostent :1, // - be done using hosts file - endnetent :1, // - be done using networks file - endprotoent :1, // - be done using protocols file - endpwent :1, // - be done using passwd file - endservent :1, // - be done using services file - eof :1, // - test a filehandle for its end - 'eval' :1, // - catch exceptions or compile and run code - 'exec' :1, // - abandon this program to run another - exists :1, // - test whether a hash key is present - exit :1, // - terminate this program - 'exp' :1, // - raise I to a power - fcntl :1, // - file control system call - fileno :1, // - return file descriptor from filehandle - flock :1, // - lock an entire file with an advisory lock - fork :1, // - create a new process just like this one - format :1, // - declare a picture format with use by the write() function - formline :1, // - internal function used for formats - getc :1, // - get the next character from the filehandle - getgrent :1, // - get next group record - getgrgid :1, // - get group record given group user ID - getgrnam :1, // - get group record given group name - gethostbyaddr :1, // - get host record given its address - gethostbyname :1, // - get host record given name - gethostent :1, // - get next hosts record - getlogin :1, // - return who logged in at this tty - getnetbyaddr :1, // - get network record given its address - getnetbyname :1, // - get networks record given name - getnetent :1, // - get next networks record - getpeername :1, // - find the other end of a socket connection - getpgrp :1, // - get process group - getppid :1, // - get parent process ID - getpriority :1, // - get current nice value - getprotobyname :1, // - get protocol record given name - getprotobynumber :1, // - get protocol record numeric protocol - getprotoent :1, // - get next protocols record - getpwent :1, // - get next passwd record - getpwnam :1, // - get passwd record given user login name - getpwuid :1, // - get passwd record given user ID - getservbyname :1, // - get services record given its name - getservbyport :1, // - get services record given numeric port - getservent :1, // - get next services record - getsockname :1, // - retrieve the sockaddr for a given socket - getsockopt :1, // - get socket options on a given socket - given :1, // - glob :1, // - expand filenames using wildcards - gmtime :1, // - convert UNIX time into record or string using Greenwich time - 'goto' :1, // - create spaghetti code - grep :1, // - locate elements in a list test true against a given criterion - hex :1, // - convert a string to a hexadecimal number - 'import' :1, // - patch a module's namespace into your own - index :1, // - find a substring within a string - 'int' :1, // - get the integer portion of a number - ioctl :1, // - system-dependent device control system call - 'join' :1, // - join a list into a string using a separator - keys :1, // - retrieve list of indices from a hash - kill :1, // - send a signal to a process or process group - last :1, // - exit a block prematurely - lc :1, // - return lower-case version of a string - lcfirst :1, // - return a string with just the next letter in lower case - length :1, // - return the number of bytes in a string - 'link' :1, // - create a hard link in the filesytem - listen :1, // - register your socket as a server - local : 2, // - create a temporary value for a global variable (dynamic scoping) - localtime :1, // - convert UNIX time into record or string using local time - lock :1, // - get a thread lock on a variable, subroutine, or method - 'log' :1, // - retrieve the natural logarithm for a number - lstat :1, // - stat a symbolic link - m :null, // - match a string with a regular expression pattern - map :1, // - apply a change to a list to get back a new list with the changes - mkdir :1, // - create a directory - msgctl :1, // - SysV IPC message control operations - msgget :1, // - get SysV IPC message queue - msgrcv :1, // - receive a SysV IPC message from a message queue - msgsnd :1, // - send a SysV IPC message to a message queue - my : 2, // - declare and assign a local variable (lexical scoping) - 'new' :1, // - next :1, // - iterate a block prematurely - no :1, // - unimport some module symbols or semantics at compile time - oct :1, // - convert a string to an octal number - open :1, // - open a file, pipe, or descriptor - opendir :1, // - open a directory - ord :1, // - find a character's numeric representation - our : 2, // - declare and assign a package variable (lexical scoping) - pack :1, // - convert a list into a binary representation - 'package' :1, // - declare a separate global namespace - pipe :1, // - open a pair of connected filehandles - pop :1, // - remove the last element from an array and return it - pos :1, // - find or set the offset for the last/next m//g search - print :1, // - output a list to a filehandle - printf :1, // - output a formatted list to a filehandle - prototype :1, // - get the prototype (if any) of a subroutine - push :1, // - append one or more elements to an array - q :null, // - singly quote a string - qq :null, // - doubly quote a string - qr :null, // - Compile pattern - quotemeta :null, // - quote regular expression magic characters - qw :null, // - quote a list of words - qx :null, // - backquote quote a string - rand :1, // - retrieve the next pseudorandom number - read :1, // - fixed-length buffered input from a filehandle - readdir :1, // - get a directory from a directory handle - readline :1, // - fetch a record from a file - readlink :1, // - determine where a symbolic link is pointing - readpipe :1, // - execute a system command and collect standard output - recv :1, // - receive a message over a Socket - redo :1, // - start this loop iteration over again - ref :1, // - find out the type of thing being referenced - rename :1, // - change a filename - require :1, // - load in external functions from a library at runtime - reset :1, // - clear all variables of a given name - 'return' :1, // - get out of a function early - reverse :1, // - flip a string or a list - rewinddir :1, // - reset directory handle - rindex :1, // - right-to-left substring search - rmdir :1, // - remove a directory - s :null, // - replace a pattern with a string - say :1, // - print with newline - scalar :1, // - force a scalar context - seek :1, // - reposition file pointer for random-access I/O - seekdir :1, // - reposition directory pointer - select :1, // - reset default output or do I/O multiplexing - semctl :1, // - SysV semaphore control operations - semget :1, // - get set of SysV semaphores - semop :1, // - SysV semaphore operations - send :1, // - send a message over a socket - setgrent :1, // - prepare group file for use - sethostent :1, // - prepare hosts file for use - setnetent :1, // - prepare networks file for use - setpgrp :1, // - set the process group of a process - setpriority :1, // - set a process's nice value - setprotoent :1, // - prepare protocols file for use - setpwent :1, // - prepare passwd file for use - setservent :1, // - prepare services file for use - setsockopt :1, // - set some socket options - shift :1, // - remove the first element of an array, and return it - shmctl :1, // - SysV shared memory operations - shmget :1, // - get SysV shared memory segment identifier - shmread :1, // - read SysV shared memory - shmwrite :1, // - write SysV shared memory - shutdown :1, // - close down just half of a socket connection - 'sin' :1, // - return the sine of a number - sleep :1, // - block for some number of seconds - socket :1, // - create a socket - socketpair :1, // - create a pair of sockets - 'sort' :1, // - sort a list of values - splice :1, // - add or remove elements anywhere in an array - 'split' :1, // - split up a string using a regexp delimiter - sprintf :1, // - formatted print into a string - 'sqrt' :1, // - square root function - srand :1, // - seed the random number generator - stat :1, // - get a file's status information - state :1, // - declare and assign a state variable (persistent lexical scoping) - study :1, // - optimize input data for repeated searches - 'sub' :1, // - declare a subroutine, possibly anonymously - 'substr' :1, // - get or alter a portion of a stirng - symlink :1, // - create a symbolic link to a file - syscall :1, // - execute an arbitrary system call - sysopen :1, // - open a file, pipe, or descriptor - sysread :1, // - fixed-length unbuffered input from a filehandle - sysseek :1, // - position I/O pointer on handle used with sysread and syswrite - system :1, // - run a separate program - syswrite :1, // - fixed-length unbuffered output to a filehandle - tell :1, // - get current seekpointer on a filehandle - telldir :1, // - get current seekpointer on a directory handle - tie :1, // - bind a variable to an object class - tied :1, // - get a reference to the object underlying a tied variable - time :1, // - return number of seconds since 1970 - times :1, // - return elapsed time for self and child processes - tr :null, // - transliterate a string - truncate :1, // - shorten a file - uc :1, // - return upper-case version of a string - ucfirst :1, // - return a string with just the next letter in upper case - umask :1, // - set file creation mode mask - undef :1, // - remove a variable or function definition - unlink :1, // - remove one link to a file - unpack :1, // - convert binary structure into normal perl variables - unshift :1, // - prepend more elements to the beginning of a list - untie :1, // - break a tie binding to a variable - use :1, // - load in a module at compile time - utime :1, // - set a file's last access and modify times - values :1, // - return a list of the values in a hash - vec :1, // - test or set particular bits in a string - wait :1, // - wait for any child process to die - waitpid :1, // - wait for a particular child process to die - wantarray :1, // - get void vs scalar vs list context of current subroutine call - warn :1, // - print debugging info - when :1, // - write :1, // - print a picture record - y :null}; // - transliterate a string - - var RXstyle="string-2"; - var RXmodifiers=/[goseximacplud]/; // NOTE: "m", "s", "y" and "tr" need to correct real modifiers for each regexp type - - function tokenChain(stream,state,chain,style,tail){ // NOTE: chain.length > 2 is not working now (it's for s[...][...]geos;) - state.chain=null; // 12 3tail - state.style=null; - state.tail=null; - state.tokenize=function(stream,state){ - var e=false,c,i=0; - while(c=stream.next()){ - if(c===chain[i]&&!e){ - if(chain[++i]!==undefined){ - state.chain=chain[i]; - state.style=style; - state.tail=tail;} - else if(tail) - stream.eatWhile(tail); - state.tokenize=tokenPerl; - return style;} - e=!e&&c=="\\";} - return style;}; - return state.tokenize(stream,state);} - - function tokenSOMETHING(stream,state,string){ - state.tokenize=function(stream,state){ - if(stream.string==string) - state.tokenize=tokenPerl; - stream.skipToEnd(); - return "string";}; - return state.tokenize(stream,state);} - - function tokenPerl(stream,state){ - if(stream.eatSpace()) - return null; - if(state.chain) - return tokenChain(stream,state,state.chain,state.style,state.tail); - if(stream.match(/^\-?[\d\.]/,false)) - if(stream.match(/^(\-?(\d*\.\d+(e[+-]?\d+)?|\d+\.\d*)|0x[\da-fA-F]+|0b[01]+|\d+(e[+-]?\d+)?)/)) - return 'number'; - if(stream.match(/^<<(?=\w)/)){ // NOTE: <"],RXstyle,RXmodifiers);} - if(/[\^'"!~\/]/.test(c)){ - eatSuffix(stream, 1); - return tokenChain(stream,state,[stream.eat(c)],RXstyle,RXmodifiers);}} - else if(c=="q"){ - c=look(stream, 1); - if(c=="("){ - eatSuffix(stream, 2); - return tokenChain(stream,state,[")"],"string");} - if(c=="["){ - eatSuffix(stream, 2); - return tokenChain(stream,state,["]"],"string");} - if(c=="{"){ - eatSuffix(stream, 2); - return tokenChain(stream,state,["}"],"string");} - if(c=="<"){ - eatSuffix(stream, 2); - return tokenChain(stream,state,[">"],"string");} - if(/[\^'"!~\/]/.test(c)){ - eatSuffix(stream, 1); - return tokenChain(stream,state,[stream.eat(c)],"string");}} - else if(c=="w"){ - c=look(stream, 1); - if(c=="("){ - eatSuffix(stream, 2); - return tokenChain(stream,state,[")"],"bracket");} - if(c=="["){ - eatSuffix(stream, 2); - return tokenChain(stream,state,["]"],"bracket");} - if(c=="{"){ - eatSuffix(stream, 2); - return tokenChain(stream,state,["}"],"bracket");} - if(c=="<"){ - eatSuffix(stream, 2); - return tokenChain(stream,state,[">"],"bracket");} - if(/[\^'"!~\/]/.test(c)){ - eatSuffix(stream, 1); - return tokenChain(stream,state,[stream.eat(c)],"bracket");}} - else if(c=="r"){ - c=look(stream, 1); - if(c=="("){ - eatSuffix(stream, 2); - return tokenChain(stream,state,[")"],RXstyle,RXmodifiers);} - if(c=="["){ - eatSuffix(stream, 2); - return tokenChain(stream,state,["]"],RXstyle,RXmodifiers);} - if(c=="{"){ - eatSuffix(stream, 2); - return tokenChain(stream,state,["}"],RXstyle,RXmodifiers);} - if(c=="<"){ - eatSuffix(stream, 2); - return tokenChain(stream,state,[">"],RXstyle,RXmodifiers);} - if(/[\^'"!~\/]/.test(c)){ - eatSuffix(stream, 1); - return tokenChain(stream,state,[stream.eat(c)],RXstyle,RXmodifiers);}} - else if(/[\^'"!~\/(\[{<]/.test(c)){ - if(c=="("){ - eatSuffix(stream, 1); - return tokenChain(stream,state,[")"],"string");} - if(c=="["){ - eatSuffix(stream, 1); - return tokenChain(stream,state,["]"],"string");} - if(c=="{"){ - eatSuffix(stream, 1); - return tokenChain(stream,state,["}"],"string");} - if(c=="<"){ - eatSuffix(stream, 1); - return tokenChain(stream,state,[">"],"string");} - if(/[\^'"!~\/]/.test(c)){ - return tokenChain(stream,state,[stream.eat(c)],"string");}}}} - if(ch=="m"){ - var c=look(stream, -2); - if(!(c&&/\w/.test(c))){ - c=stream.eat(/[(\[{<\^'"!~\/]/); - if(c){ - if(/[\^'"!~\/]/.test(c)){ - return tokenChain(stream,state,[c],RXstyle,RXmodifiers);} - if(c=="("){ - return tokenChain(stream,state,[")"],RXstyle,RXmodifiers);} - if(c=="["){ - return tokenChain(stream,state,["]"],RXstyle,RXmodifiers);} - if(c=="{"){ - return tokenChain(stream,state,["}"],RXstyle,RXmodifiers);} - if(c=="<"){ - return tokenChain(stream,state,[">"],RXstyle,RXmodifiers);}}}} - if(ch=="s"){ - var c=/[\/>\]})\w]/.test(look(stream, -2)); - if(!c){ - c=stream.eat(/[(\[{<\^'"!~\/]/); - if(c){ - if(c=="[") - return tokenChain(stream,state,["]","]"],RXstyle,RXmodifiers); - if(c=="{") - return tokenChain(stream,state,["}","}"],RXstyle,RXmodifiers); - if(c=="<") - return tokenChain(stream,state,[">",">"],RXstyle,RXmodifiers); - if(c=="(") - return tokenChain(stream,state,[")",")"],RXstyle,RXmodifiers); - return tokenChain(stream,state,[c,c],RXstyle,RXmodifiers);}}} - if(ch=="y"){ - var c=/[\/>\]})\w]/.test(look(stream, -2)); - if(!c){ - c=stream.eat(/[(\[{<\^'"!~\/]/); - if(c){ - if(c=="[") - return tokenChain(stream,state,["]","]"],RXstyle,RXmodifiers); - if(c=="{") - return tokenChain(stream,state,["}","}"],RXstyle,RXmodifiers); - if(c=="<") - return tokenChain(stream,state,[">",">"],RXstyle,RXmodifiers); - if(c=="(") - return tokenChain(stream,state,[")",")"],RXstyle,RXmodifiers); - return tokenChain(stream,state,[c,c],RXstyle,RXmodifiers);}}} - if(ch=="t"){ - var c=/[\/>\]})\w]/.test(look(stream, -2)); - if(!c){ - c=stream.eat("r");if(c){ - c=stream.eat(/[(\[{<\^'"!~\/]/); - if(c){ - if(c=="[") - return tokenChain(stream,state,["]","]"],RXstyle,RXmodifiers); - if(c=="{") - return tokenChain(stream,state,["}","}"],RXstyle,RXmodifiers); - if(c=="<") - return tokenChain(stream,state,[">",">"],RXstyle,RXmodifiers); - if(c=="(") - return tokenChain(stream,state,[")",")"],RXstyle,RXmodifiers); - return tokenChain(stream,state,[c,c],RXstyle,RXmodifiers);}}}} - if(ch=="`"){ - return tokenChain(stream,state,[ch],"variable-2");} - if(ch=="/"){ - if(!/~\s*$/.test(prefix(stream))) - return "operator"; - else - return tokenChain(stream,state,[ch],RXstyle,RXmodifiers);} - if(ch=="$"){ - var p=stream.pos; - if(stream.eatWhile(/\d/)||stream.eat("{")&&stream.eatWhile(/\d/)&&stream.eat("}")) - return "variable-2"; - else - stream.pos=p;} - if(/[$@%]/.test(ch)){ - var p=stream.pos; - if(stream.eat("^")&&stream.eat(/[A-Z]/)||!/[@$%&]/.test(look(stream, -2))&&stream.eat(/[=|\\\-#?@;:&`~\^!\[\]*'"$+.,\/<>()]/)){ - var c=stream.current(); - if(PERL[c]) - return "variable-2";} - stream.pos=p;} - if(/[$@%&]/.test(ch)){ - if(stream.eatWhile(/[\w$\[\]]/)||stream.eat("{")&&stream.eatWhile(/[\w$\[\]]/)&&stream.eat("}")){ - var c=stream.current(); - if(PERL[c]) - return "variable-2"; - else - return "variable";}} - if(ch=="#"){ - if(look(stream, -2)!="$"){ - stream.skipToEnd(); - return "comment";}} - if(/[:+\-\^*$&%@=<>!?|\/~\.]/.test(ch)){ - var p=stream.pos; - stream.eatWhile(/[:+\-\^*$&%@=<>!?|\/~\.]/); - if(PERL[stream.current()]) - return "operator"; - else - stream.pos=p;} - if(ch=="_"){ - if(stream.pos==1){ - if(suffix(stream, 6)=="_END__"){ - return tokenChain(stream,state,['\0'],"comment");} - else if(suffix(stream, 7)=="_DATA__"){ - return tokenChain(stream,state,['\0'],"variable-2");} - else if(suffix(stream, 7)=="_C__"){ - return tokenChain(stream,state,['\0'],"string");}}} - if(/\w/.test(ch)){ - var p=stream.pos; - if(look(stream, -2)=="{"&&(look(stream, 0)=="}"||stream.eatWhile(/\w/)&&look(stream, 0)=="}")) - return "string"; - else - stream.pos=p;} - if(/[A-Z]/.test(ch)){ - var l=look(stream, -2); - var p=stream.pos; - stream.eatWhile(/[A-Z_]/); - if(/[\da-z]/.test(look(stream, 0))){ - stream.pos=p;} - else{ - var c=PERL[stream.current()]; - if(!c) - return "meta"; - if(c[1]) - c=c[0]; - if(l!=":"){ - if(c==1) - return "keyword"; - else if(c==2) - return "def"; - else if(c==3) - return "atom"; - else if(c==4) - return "operator"; - else if(c==5) - return "variable-2"; - else - return "meta";} - else - return "meta";}} - if(/[a-zA-Z_]/.test(ch)){ - var l=look(stream, -2); - stream.eatWhile(/\w/); - var c=PERL[stream.current()]; - if(!c) - return "meta"; - if(c[1]) - c=c[0]; - if(l!=":"){ - if(c==1) - return "keyword"; - else if(c==2) - return "def"; - else if(c==3) - return "atom"; - else if(c==4) - return "operator"; - else if(c==5) - return "variable-2"; - else - return "meta";} - else - return "meta";} - return null;} - - return { - startState: function() { - return { - tokenize: tokenPerl, - chain: null, - style: null, - tail: null - }; - }, - token: function(stream, state) { - return (state.tokenize || tokenPerl)(stream, state); - }, - lineComment: '#' - }; -}); - -CodeMirror.registerHelper("wordChars", "perl", /[\w$]/); - -CodeMirror.defineMIME("text/x-perl", "perl"); - -// it's like "peek", but need for look-ahead or look-behind if index < 0 -function look(stream, c){ - return stream.string.charAt(stream.pos+(c||0)); -} - -// return a part of prefix of current stream from current position -function prefix(stream, c){ - if(c){ - var x=stream.pos-c; - return stream.string.substr((x>=0?x:0),c);} - else{ - return stream.string.substr(0,stream.pos-1); - } -} - -// return a part of suffix of current stream from current position -function suffix(stream, c){ - var y=stream.string.length; - var x=y-stream.pos+1; - return stream.string.substr(stream.pos,(c&&c=(y=stream.string.length-1)) - stream.pos=y; - else - stream.pos=x; -} - -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/php/index.html b/src/main/resources/static/editor.md-master/lib/codemirror/mode/php/index.html deleted file mode 100644 index adf6b1b..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/php/index.html +++ /dev/null @@ -1,64 +0,0 @@ - - -CodeMirror: PHP mode - - - - - - - - - - - - - - - -
-

PHP mode

-
- - - -

Simple HTML/PHP mode based on - the C-like mode. Depends on XML, - JavaScript, CSS, HTMLMixed, and C-like modes.

- -

MIME types defined: application/x-httpd-php (HTML with PHP code), text/x-php (plain, non-wrapped PHP code).

-
diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/php/php.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/php/php.js deleted file mode 100644 index e112d91..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/php/php.js +++ /dev/null @@ -1,226 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror"), require("../htmlmixed/htmlmixed"), require("../clike/clike")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror", "../htmlmixed/htmlmixed", "../clike/clike"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { - "use strict"; - - function keywords(str) { - var obj = {}, words = str.split(" "); - for (var i = 0; i < words.length; ++i) obj[words[i]] = true; - return obj; - } - - // Helper for stringWithEscapes - function matchSequence(list, end) { - if (list.length == 0) return stringWithEscapes(end); - return function (stream, state) { - var patterns = list[0]; - for (var i = 0; i < patterns.length; i++) if (stream.match(patterns[i][0])) { - state.tokenize = matchSequence(list.slice(1), end); - return patterns[i][1]; - } - state.tokenize = stringWithEscapes(end); - return "string"; - }; - } - function stringWithEscapes(closing) { - return function(stream, state) { return stringWithEscapes_(stream, state, closing); }; - } - function stringWithEscapes_(stream, state, closing) { - // "Complex" syntax - if (stream.match("${", false) || stream.match("{$", false)) { - state.tokenize = null; - return "string"; - } - - // Simple syntax - if (stream.match(/^\$[a-zA-Z_][a-zA-Z0-9_]*/)) { - // After the variable name there may appear array or object operator. - if (stream.match("[", false)) { - // Match array operator - state.tokenize = matchSequence([ - [["[", null]], - [[/\d[\w\.]*/, "number"], - [/\$[a-zA-Z_][a-zA-Z0-9_]*/, "variable-2"], - [/[\w\$]+/, "variable"]], - [["]", null]] - ], closing); - } - if (stream.match(/\-\>\w/, false)) { - // Match object operator - state.tokenize = matchSequence([ - [["->", null]], - [[/[\w]+/, "variable"]] - ], closing); - } - return "variable-2"; - } - - var escaped = false; - // Normal string - while (!stream.eol() && - (escaped || (!stream.match("{$", false) && - !stream.match(/^(\$[a-zA-Z_][a-zA-Z0-9_]*|\$\{)/, false)))) { - if (!escaped && stream.match(closing)) { - state.tokenize = null; - state.tokStack.pop(); state.tokStack.pop(); - break; - } - escaped = stream.next() == "\\" && !escaped; - } - return "string"; - } - - var phpKeywords = "abstract and array as break case catch class clone const continue declare default " + - "do else elseif enddeclare endfor endforeach endif endswitch endwhile extends final " + - "for foreach function global goto if implements interface instanceof namespace " + - "new or private protected public static switch throw trait try use var while xor " + - "die echo empty exit eval include include_once isset list require require_once return " + - "print unset __halt_compiler self static parent yield insteadof finally"; - var phpAtoms = "true false null TRUE FALSE NULL __CLASS__ __DIR__ __FILE__ __LINE__ __METHOD__ __FUNCTION__ __NAMESPACE__ __TRAIT__"; - var phpBuiltin = "func_num_args func_get_arg func_get_args strlen strcmp strncmp strcasecmp strncasecmp each error_reporting define defined trigger_error user_error set_error_handler restore_error_handler get_declared_classes get_loaded_extensions extension_loaded get_extension_funcs debug_backtrace constant bin2hex hex2bin sleep usleep time mktime gmmktime strftime gmstrftime strtotime date gmdate getdate localtime checkdate flush wordwrap htmlspecialchars htmlentities html_entity_decode md5 md5_file crc32 getimagesize image_type_to_mime_type phpinfo phpversion phpcredits strnatcmp strnatcasecmp substr_count strspn strcspn strtok strtoupper strtolower strpos strrpos strrev hebrev hebrevc nl2br basename dirname pathinfo stripslashes stripcslashes strstr stristr strrchr str_shuffle str_word_count strcoll substr substr_replace quotemeta ucfirst ucwords strtr addslashes addcslashes rtrim str_replace str_repeat count_chars chunk_split trim ltrim strip_tags similar_text explode implode setlocale localeconv parse_str str_pad chop strchr sprintf printf vprintf vsprintf sscanf fscanf parse_url urlencode urldecode rawurlencode rawurldecode readlink linkinfo link unlink exec system escapeshellcmd escapeshellarg passthru shell_exec proc_open proc_close rand srand getrandmax mt_rand mt_srand mt_getrandmax base64_decode base64_encode abs ceil floor round is_finite is_nan is_infinite bindec hexdec octdec decbin decoct dechex base_convert number_format fmod ip2long long2ip getenv putenv getopt microtime gettimeofday getrusage uniqid quoted_printable_decode set_time_limit get_cfg_var magic_quotes_runtime set_magic_quotes_runtime get_magic_quotes_gpc get_magic_quotes_runtime import_request_variables error_log serialize unserialize memory_get_usage var_dump var_export debug_zval_dump print_r highlight_file show_source highlight_string ini_get ini_get_all ini_set ini_alter ini_restore get_include_path set_include_path restore_include_path setcookie header headers_sent connection_aborted connection_status ignore_user_abort parse_ini_file is_uploaded_file move_uploaded_file intval floatval doubleval strval gettype settype is_null is_resource is_bool is_long is_float is_int is_integer is_double is_real is_numeric is_string is_array is_object is_scalar ereg ereg_replace eregi eregi_replace split spliti join sql_regcase dl pclose popen readfile rewind rmdir umask fclose feof fgetc fgets fgetss fread fopen fpassthru ftruncate fstat fseek ftell fflush fwrite fputs mkdir rename copy tempnam tmpfile file file_get_contents stream_select stream_context_create stream_context_set_params stream_context_set_option stream_context_get_options stream_filter_prepend stream_filter_append fgetcsv flock get_meta_tags stream_set_write_buffer set_file_buffer set_socket_blocking stream_set_blocking socket_set_blocking stream_get_meta_data stream_register_wrapper stream_wrapper_register stream_set_timeout socket_set_timeout socket_get_status realpath fnmatch fsockopen pfsockopen pack unpack get_browser crypt opendir closedir chdir getcwd rewinddir readdir dir glob fileatime filectime filegroup fileinode filemtime fileowner fileperms filesize filetype file_exists is_writable is_writeable is_readable is_executable is_file is_dir is_link stat lstat chown touch clearstatcache mail ob_start ob_flush ob_clean ob_end_flush ob_end_clean ob_get_flush ob_get_clean ob_get_length ob_get_level ob_get_status ob_get_contents ob_implicit_flush ob_list_handlers ksort krsort natsort natcasesort asort arsort sort rsort usort uasort uksort shuffle array_walk count end prev next reset current key min max in_array array_search extract compact array_fill range array_multisort array_push array_pop array_shift array_unshift array_splice array_slice array_merge array_merge_recursive array_keys array_values array_count_values array_reverse array_reduce array_pad array_flip array_change_key_case array_rand array_unique array_intersect array_intersect_assoc array_diff array_diff_assoc array_sum array_filter array_map array_chunk array_key_exists pos sizeof key_exists assert assert_options version_compare ftok str_rot13 aggregate session_name session_module_name session_save_path session_id session_regenerate_id session_decode session_register session_unregister session_is_registered session_encode session_start session_destroy session_unset session_set_save_handler session_cache_limiter session_cache_expire session_set_cookie_params session_get_cookie_params session_write_close preg_match preg_match_all preg_replace preg_replace_callback preg_split preg_quote preg_grep overload ctype_alnum ctype_alpha ctype_cntrl ctype_digit ctype_lower ctype_graph ctype_print ctype_punct ctype_space ctype_upper ctype_xdigit virtual apache_request_headers apache_note apache_lookup_uri apache_child_terminate apache_setenv apache_response_headers apache_get_version getallheaders mysql_connect mysql_pconnect mysql_close mysql_select_db mysql_create_db mysql_drop_db mysql_query mysql_unbuffered_query mysql_db_query mysql_list_dbs mysql_list_tables mysql_list_fields mysql_list_processes mysql_error mysql_errno mysql_affected_rows mysql_insert_id mysql_result mysql_num_rows mysql_num_fields mysql_fetch_row mysql_fetch_array mysql_fetch_assoc mysql_fetch_object mysql_data_seek mysql_fetch_lengths mysql_fetch_field mysql_field_seek mysql_free_result mysql_field_name mysql_field_table mysql_field_len mysql_field_type mysql_field_flags mysql_escape_string mysql_real_escape_string mysql_stat mysql_thread_id mysql_client_encoding mysql_get_client_info mysql_get_host_info mysql_get_proto_info mysql_get_server_info mysql_info mysql mysql_fieldname mysql_fieldtable mysql_fieldlen mysql_fieldtype mysql_fieldflags mysql_selectdb mysql_createdb mysql_dropdb mysql_freeresult mysql_numfields mysql_numrows mysql_listdbs mysql_listtables mysql_listfields mysql_db_name mysql_dbname mysql_tablename mysql_table_name pg_connect pg_pconnect pg_close pg_connection_status pg_connection_busy pg_connection_reset pg_host pg_dbname pg_port pg_tty pg_options pg_ping pg_query pg_send_query pg_cancel_query pg_fetch_result pg_fetch_row pg_fetch_assoc pg_fetch_array pg_fetch_object pg_fetch_all pg_affected_rows pg_get_result pg_result_seek pg_result_status pg_free_result pg_last_oid pg_num_rows pg_num_fields pg_field_name pg_field_num pg_field_size pg_field_type pg_field_prtlen pg_field_is_null pg_get_notify pg_get_pid pg_result_error pg_last_error pg_last_notice pg_put_line pg_end_copy pg_copy_to pg_copy_from pg_trace pg_untrace pg_lo_create pg_lo_unlink pg_lo_open pg_lo_close pg_lo_read pg_lo_write pg_lo_read_all pg_lo_import pg_lo_export pg_lo_seek pg_lo_tell pg_escape_string pg_escape_bytea pg_unescape_bytea pg_client_encoding pg_set_client_encoding pg_meta_data pg_convert pg_insert pg_update pg_delete pg_select pg_exec pg_getlastoid pg_cmdtuples pg_errormessage pg_numrows pg_numfields pg_fieldname pg_fieldsize pg_fieldtype pg_fieldnum pg_fieldprtlen pg_fieldisnull pg_freeresult pg_result pg_loreadall pg_locreate pg_lounlink pg_loopen pg_loclose pg_loread pg_lowrite pg_loimport pg_loexport http_response_code get_declared_traits getimagesizefromstring socket_import_stream stream_set_chunk_size trait_exists header_register_callback class_uses session_status session_register_shutdown echo print global static exit array empty eval isset unset die include require include_once require_once json_decode json_encode json_last_error json_last_error_msg curl_close curl_copy_handle curl_errno curl_error curl_escape curl_exec curl_file_create curl_getinfo curl_init curl_multi_add_handle curl_multi_close curl_multi_exec curl_multi_getcontent curl_multi_info_read curl_multi_init curl_multi_remove_handle curl_multi_select curl_multi_setopt curl_multi_strerror curl_pause curl_reset curl_setopt_array curl_setopt curl_share_close curl_share_init curl_share_setopt curl_strerror curl_unescape curl_version mysqli_affected_rows mysqli_autocommit mysqli_change_user mysqli_character_set_name mysqli_close mysqli_commit mysqli_connect_errno mysqli_connect_error mysqli_connect mysqli_data_seek mysqli_debug mysqli_dump_debug_info mysqli_errno mysqli_error_list mysqli_error mysqli_fetch_all mysqli_fetch_array mysqli_fetch_assoc mysqli_fetch_field_direct mysqli_fetch_field mysqli_fetch_fields mysqli_fetch_lengths mysqli_fetch_object mysqli_fetch_row mysqli_field_count mysqli_field_seek mysqli_field_tell mysqli_free_result mysqli_get_charset mysqli_get_client_info mysqli_get_client_stats mysqli_get_client_version mysqli_get_connection_stats mysqli_get_host_info mysqli_get_proto_info mysqli_get_server_info mysqli_get_server_version mysqli_info mysqli_init mysqli_insert_id mysqli_kill mysqli_more_results mysqli_multi_query mysqli_next_result mysqli_num_fields mysqli_num_rows mysqli_options mysqli_ping mysqli_prepare mysqli_query mysqli_real_connect mysqli_real_escape_string mysqli_real_query mysqli_reap_async_query mysqli_refresh mysqli_rollback mysqli_select_db mysqli_set_charset mysqli_set_local_infile_default mysqli_set_local_infile_handler mysqli_sqlstate mysqli_ssl_set mysqli_stat mysqli_stmt_init mysqli_store_result mysqli_thread_id mysqli_thread_safe mysqli_use_result mysqli_warning_count"; - CodeMirror.registerHelper("hintWords", "php", [phpKeywords, phpAtoms, phpBuiltin].join(" ").split(" ")); - CodeMirror.registerHelper("wordChars", "php", /[\w$]/); - - var phpConfig = { - name: "clike", - helperType: "php", - keywords: keywords(phpKeywords), - blockKeywords: keywords("catch do else elseif for foreach if switch try while finally"), - atoms: keywords(phpAtoms), - builtin: keywords(phpBuiltin), - multiLineStrings: true, - hooks: { - "$": function(stream) { - stream.eatWhile(/[\w\$_]/); - return "variable-2"; - }, - "<": function(stream, state) { - if (stream.match(/<", false)) stream.next(); - return "comment"; - }, - "/": function(stream) { - if (stream.eat("/")) { - while (!stream.eol() && !stream.match("?>", false)) stream.next(); - return "comment"; - } - return false; - }, - '"': function(_stream, state) { - (state.tokStack || (state.tokStack = [])).push('"', 0); - state.tokenize = stringWithEscapes('"'); - return "string"; - }, - "{": function(_stream, state) { - if (state.tokStack && state.tokStack.length) - state.tokStack[state.tokStack.length - 1]++; - return false; - }, - "}": function(_stream, state) { - if (state.tokStack && state.tokStack.length > 0 && - !--state.tokStack[state.tokStack.length - 1]) { - state.tokenize = stringWithEscapes(state.tokStack[state.tokStack.length - 2]); - } - return false; - } - } - }; - - CodeMirror.defineMode("php", function(config, parserConfig) { - var htmlMode = CodeMirror.getMode(config, "text/html"); - var phpMode = CodeMirror.getMode(config, phpConfig); - - function dispatch(stream, state) { - var isPHP = state.curMode == phpMode; - if (stream.sol() && state.pending && state.pending != '"' && state.pending != "'") state.pending = null; - if (!isPHP) { - if (stream.match(/^<\?\w*/)) { - state.curMode = phpMode; - state.curState = state.php; - return "meta"; - } - if (state.pending == '"' || state.pending == "'") { - while (!stream.eol() && stream.next() != state.pending) {} - var style = "string"; - } else if (state.pending && stream.pos < state.pending.end) { - stream.pos = state.pending.end; - var style = state.pending.style; - } else { - var style = htmlMode.token(stream, state.curState); - } - if (state.pending) state.pending = null; - var cur = stream.current(), openPHP = cur.search(/<\?/), m; - if (openPHP != -1) { - if (style == "string" && (m = cur.match(/[\'\"]$/)) && !/\?>/.test(cur)) state.pending = m[0]; - else state.pending = {end: stream.pos, style: style}; - stream.backUp(cur.length - openPHP); - } - return style; - } else if (isPHP && state.php.tokenize == null && stream.match("?>")) { - state.curMode = htmlMode; - state.curState = state.html; - return "meta"; - } else { - return phpMode.token(stream, state.curState); - } - } - - return { - startState: function() { - var html = CodeMirror.startState(htmlMode), php = CodeMirror.startState(phpMode); - return {html: html, - php: php, - curMode: parserConfig.startOpen ? phpMode : htmlMode, - curState: parserConfig.startOpen ? php : html, - pending: null}; - }, - - copyState: function(state) { - var html = state.html, htmlNew = CodeMirror.copyState(htmlMode, html), - php = state.php, phpNew = CodeMirror.copyState(phpMode, php), cur; - if (state.curMode == htmlMode) cur = htmlNew; - else cur = phpNew; - return {html: htmlNew, php: phpNew, curMode: state.curMode, curState: cur, - pending: state.pending}; - }, - - token: dispatch, - - indent: function(state, textAfter) { - if ((state.curMode != phpMode && /^\s*<\//.test(textAfter)) || - (state.curMode == phpMode && /^\?>/.test(textAfter))) - return htmlMode.indent(state.html, textAfter); - return state.curMode.indent(state.curState, textAfter); - }, - - blockCommentStart: "/*", - blockCommentEnd: "*/", - lineComment: "//", - - innerMode: function(state) { return {state: state.curState, mode: state.curMode}; } - }; - }, "htmlmixed", "clike"); - - CodeMirror.defineMIME("application/x-httpd-php", "php"); - CodeMirror.defineMIME("application/x-httpd-php-open", {name: "php", startOpen: true}); - CodeMirror.defineMIME("text/x-php", phpConfig); -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/php/test.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/php/test.js deleted file mode 100644 index e2ecefc..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/php/test.js +++ /dev/null @@ -1,154 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function() { - var mode = CodeMirror.getMode({indentUnit: 2}, "php"); - function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); } - - MT('simple_test', - '[meta ]'); - - MT('variable_interpolation_non_alphanumeric', - '[meta $/$\\$}$\\\"$:$;$?$|$[[$]]$+$=aaa"]', - '[meta ?>]'); - - MT('variable_interpolation_digits', - '[meta ]'); - - MT('variable_interpolation_simple_syntax_1', - '[meta ]'); - - MT('variable_interpolation_simple_syntax_2', - '[meta ]'); - - MT('variable_interpolation_simple_syntax_3', - '[meta [variable aaaaa][string .aaaaaa"];', - '[keyword echo] [string "aaa][variable-2 $aaaa][string ->][variable-2 $aaaaa][string .aaaaaa"];', - '[keyword echo] [string "aaa][variable-2 $aaaa]->[variable aaaaa][string [[2]].aaaaaa"];', - '[keyword echo] [string "aaa][variable-2 $aaaa]->[variable aaaaa][string ->aaaa2.aaaaaa"];', - '[meta ?>]'); - - MT('variable_interpolation_escaping', - '[meta aaa.aaa"];', - '[keyword echo] [string "aaa\\$aaaa[[2]]aaa.aaa"];', - '[keyword echo] [string "aaa\\$aaaa[[asd]]aaa.aaa"];', - '[keyword echo] [string "aaa{\\$aaaa->aaa.aaa"];', - '[keyword echo] [string "aaa{\\$aaaa[[2]]aaa.aaa"];', - '[keyword echo] [string "aaa{\\aaaaa[[asd]]aaa.aaa"];', - '[keyword echo] [string "aaa\\${aaaa->aaa.aaa"];', - '[keyword echo] [string "aaa\\${aaaa[[2]]aaa.aaa"];', - '[keyword echo] [string "aaa\\${aaaa[[asd]]aaa.aaa"];', - '[meta ?>]'); - - MT('variable_interpolation_complex_syntax_1', - '[meta aaa.aaa"];', - '[keyword echo] [string "aaa][variable-2 $]{[variable-2 $aaaa]}[string ->aaa.aaa"];', - '[keyword echo] [string "aaa][variable-2 $]{[variable-2 $aaaa][[',' [number 42]',']]}[string ->aaa.aaa"];', - '[keyword echo] [string "aaa][variable-2 $]{[variable aaaa][meta ?>]aaaaaa'); - - MT('variable_interpolation_complex_syntax_2', - '[meta } $aaaaaa.aaa"];', - '[keyword echo] [string "][variable-2 $]{[variable aaa][comment /*}?>*/][[',' [string "aaa][variable-2 $aaa][string {}][variable-2 $]{[variable aaa]}[string "]',']]}[string ->aaa.aaa"];', - '[keyword echo] [string "][variable-2 $]{[variable aaa][comment /*} } $aaa } */]}[string ->aaa.aaa"];'); - - - function build_recursive_monsters(nt, t, n){ - var monsters = [t]; - for (var i = 1; i <= n; ++i) - monsters[i] = nt.join(monsters[i - 1]); - return monsters; - } - - var m1 = build_recursive_monsters( - ['[string "][variable-2 $]{[variable aaa] [operator +] ', '}[string "]'], - '[comment /* }?>} */] [string "aaa][variable-2 $aaa][string .aaa"]', - 10 - ); - - MT('variable_interpolation_complex_syntax_3_1', - '[meta ]'); - - var m2 = build_recursive_monsters( - ['[string "a][variable-2 $]{[variable aaa] [operator +] ', ' [operator +] ', '}[string .a"]'], - '[comment /* }?>{{ */] [string "a?>}{{aa][variable-2 $aaa][string .a}a?>a"]', - 5 - ); - - MT('variable_interpolation_complex_syntax_3_2', - '[meta ]'); - - function build_recursive_monsters_2(mf1, mf2, nt, t, n){ - var monsters = [t]; - for (var i = 1; i <= n; ++i) - monsters[i] = nt[0] + mf1[i - 1] + nt[1] + mf2[i - 1] + nt[2] + monsters[i - 1] + nt[3]; - return monsters; - } - - var m3 = build_recursive_monsters_2( - m1, - m2, - ['[string "a][variable-2 $]{[variable aaa] [operator +] ', ' [operator +] ', ' [operator +] ', '}[string .a"]'], - '[comment /* }?>{{ */] [string "a?>}{{aa][variable-2 $aaa][string .a}a?>a"]', - 4 - ); - - MT('variable_interpolation_complex_syntax_3_3', - '[meta ]'); - - MT("variable_interpolation_heredoc", - "[meta - -CodeMirror: Pig Latin mode - - - - - - - - - -
-

Pig Latin mode

-
- - - -

- Simple mode that handles Pig Latin language. -

- -

MIME type defined: text/x-pig - (PIG code) - -

diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/pig/pig.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/pig/pig.js deleted file mode 100644 index c74b2cc..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/pig/pig.js +++ /dev/null @@ -1,188 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -/* - * Pig Latin Mode for CodeMirror 2 - * @author Prasanth Jayachandran - * @link https://github.com/prasanthj/pig-codemirror-2 - * This implementation is adapted from PL/SQL mode in CodeMirror 2. - */ -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { -"use strict"; - -CodeMirror.defineMode("pig", function(_config, parserConfig) { - var keywords = parserConfig.keywords, - builtins = parserConfig.builtins, - types = parserConfig.types, - multiLineStrings = parserConfig.multiLineStrings; - - var isOperatorChar = /[*+\-%<>=&?:\/!|]/; - - function chain(stream, state, f) { - state.tokenize = f; - return f(stream, state); - } - - var type; - function ret(tp, style) { - type = tp; - return style; - } - - function tokenComment(stream, state) { - var isEnd = false; - var ch; - while(ch = stream.next()) { - if(ch == "/" && isEnd) { - state.tokenize = tokenBase; - break; - } - isEnd = (ch == "*"); - } - return ret("comment", "comment"); - } - - function tokenString(quote) { - return function(stream, state) { - var escaped = false, next, end = false; - while((next = stream.next()) != null) { - if (next == quote && !escaped) { - end = true; break; - } - escaped = !escaped && next == "\\"; - } - if (end || !(escaped || multiLineStrings)) - state.tokenize = tokenBase; - return ret("string", "error"); - }; - } - - function tokenBase(stream, state) { - var ch = stream.next(); - - // is a start of string? - if (ch == '"' || ch == "'") - return chain(stream, state, tokenString(ch)); - // is it one of the special chars - else if(/[\[\]{}\(\),;\.]/.test(ch)) - return ret(ch); - // is it a number? - else if(/\d/.test(ch)) { - stream.eatWhile(/[\w\.]/); - return ret("number", "number"); - } - // multi line comment or operator - else if (ch == "/") { - if (stream.eat("*")) { - return chain(stream, state, tokenComment); - } - else { - stream.eatWhile(isOperatorChar); - return ret("operator", "operator"); - } - } - // single line comment or operator - else if (ch=="-") { - if(stream.eat("-")){ - stream.skipToEnd(); - return ret("comment", "comment"); - } - else { - stream.eatWhile(isOperatorChar); - return ret("operator", "operator"); - } - } - // is it an operator - else if (isOperatorChar.test(ch)) { - stream.eatWhile(isOperatorChar); - return ret("operator", "operator"); - } - else { - // get the while word - stream.eatWhile(/[\w\$_]/); - // is it one of the listed keywords? - if (keywords && keywords.propertyIsEnumerable(stream.current().toUpperCase())) { - if (stream.eat(")") || stream.eat(".")) { - //keywords can be used as variables like flatten(group), group.$0 etc.. - } - else { - return ("keyword", "keyword"); - } - } - // is it one of the builtin functions? - if (builtins && builtins.propertyIsEnumerable(stream.current().toUpperCase())) - { - return ("keyword", "variable-2"); - } - // is it one of the listed types? - if (types && types.propertyIsEnumerable(stream.current().toUpperCase())) - return ("keyword", "variable-3"); - // default is a 'variable' - return ret("variable", "pig-word"); - } - } - - // Interface - return { - startState: function() { - return { - tokenize: tokenBase, - startOfLine: true - }; - }, - - token: function(stream, state) { - if(stream.eatSpace()) return null; - var style = state.tokenize(stream, state); - return style; - } - }; -}); - -(function() { - function keywords(str) { - var obj = {}, words = str.split(" "); - for (var i = 0; i < words.length; ++i) obj[words[i]] = true; - return obj; - } - - // builtin funcs taken from trunk revision 1303237 - var pBuiltins = "ABS ACOS ARITY ASIN ATAN AVG BAGSIZE BINSTORAGE BLOOM BUILDBLOOM CBRT CEIL " - + "CONCAT COR COS COSH COUNT COUNT_STAR COV CONSTANTSIZE CUBEDIMENSIONS DIFF DISTINCT DOUBLEABS " - + "DOUBLEAVG DOUBLEBASE DOUBLEMAX DOUBLEMIN DOUBLEROUND DOUBLESUM EXP FLOOR FLOATABS FLOATAVG " - + "FLOATMAX FLOATMIN FLOATROUND FLOATSUM GENERICINVOKER INDEXOF INTABS INTAVG INTMAX INTMIN " - + "INTSUM INVOKEFORDOUBLE INVOKEFORFLOAT INVOKEFORINT INVOKEFORLONG INVOKEFORSTRING INVOKER " - + "ISEMPTY JSONLOADER JSONMETADATA JSONSTORAGE LAST_INDEX_OF LCFIRST LOG LOG10 LOWER LONGABS " - + "LONGAVG LONGMAX LONGMIN LONGSUM MAX MIN MAPSIZE MONITOREDUDF NONDETERMINISTIC OUTPUTSCHEMA " - + "PIGSTORAGE PIGSTREAMING RANDOM REGEX_EXTRACT REGEX_EXTRACT_ALL REPLACE ROUND SIN SINH SIZE " - + "SQRT STRSPLIT SUBSTRING SUM STRINGCONCAT STRINGMAX STRINGMIN STRINGSIZE TAN TANH TOBAG " - + "TOKENIZE TOMAP TOP TOTUPLE TRIM TEXTLOADER TUPLESIZE UCFIRST UPPER UTF8STORAGECONVERTER "; - - // taken from QueryLexer.g - var pKeywords = "VOID IMPORT RETURNS DEFINE LOAD FILTER FOREACH ORDER CUBE DISTINCT COGROUP " - + "JOIN CROSS UNION SPLIT INTO IF OTHERWISE ALL AS BY USING INNER OUTER ONSCHEMA PARALLEL " - + "PARTITION GROUP AND OR NOT GENERATE FLATTEN ASC DESC IS STREAM THROUGH STORE MAPREDUCE " - + "SHIP CACHE INPUT OUTPUT STDERROR STDIN STDOUT LIMIT SAMPLE LEFT RIGHT FULL EQ GT LT GTE LTE " - + "NEQ MATCHES TRUE FALSE DUMP"; - - // data types - var pTypes = "BOOLEAN INT LONG FLOAT DOUBLE CHARARRAY BYTEARRAY BAG TUPLE MAP "; - - CodeMirror.defineMIME("text/x-pig", { - name: "pig", - builtins: keywords(pBuiltins), - keywords: keywords(pKeywords), - types: keywords(pTypes) - }); - - CodeMirror.registerHelper("hintWords", "pig", (pBuiltins + pTypes + pKeywords).split(" ")); -}()); - -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/properties/index.html b/src/main/resources/static/editor.md-master/lib/codemirror/mode/properties/index.html deleted file mode 100644 index f885302..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/properties/index.html +++ /dev/null @@ -1,53 +0,0 @@ - - -CodeMirror: Properties files mode - - - - - - - - - -
-

Properties files mode

-
- - -

MIME types defined: text/x-properties, - text/x-ini.

- -
diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/properties/properties.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/properties/properties.js deleted file mode 100644 index 0740084..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/properties/properties.js +++ /dev/null @@ -1,78 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { -"use strict"; - -CodeMirror.defineMode("properties", function() { - return { - token: function(stream, state) { - var sol = stream.sol() || state.afterSection; - var eol = stream.eol(); - - state.afterSection = false; - - if (sol) { - if (state.nextMultiline) { - state.inMultiline = true; - state.nextMultiline = false; - } else { - state.position = "def"; - } - } - - if (eol && ! state.nextMultiline) { - state.inMultiline = false; - state.position = "def"; - } - - if (sol) { - while(stream.eatSpace()); - } - - var ch = stream.next(); - - if (sol && (ch === "#" || ch === "!" || ch === ";")) { - state.position = "comment"; - stream.skipToEnd(); - return "comment"; - } else if (sol && ch === "[") { - state.afterSection = true; - stream.skipTo("]"); stream.eat("]"); - return "header"; - } else if (ch === "=" || ch === ":") { - state.position = "quote"; - return null; - } else if (ch === "\\" && state.position === "quote") { - if (stream.next() !== "u") { // u = Unicode sequence \u1234 - // Multiline value - state.nextMultiline = true; - } - } - - return state.position; - }, - - startState: function() { - return { - position : "def", // Current position, "def", "quote" or "comment" - nextMultiline : false, // Is the next line multiline value - inMultiline : false, // Is the current line a multiline value - afterSection : false // Did we just open a section - }; - } - - }; -}); - -CodeMirror.defineMIME("text/x-properties", "properties"); -CodeMirror.defineMIME("text/x-ini", "properties"); - -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/puppet/index.html b/src/main/resources/static/editor.md-master/lib/codemirror/mode/puppet/index.html deleted file mode 100644 index 5614c36..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/puppet/index.html +++ /dev/null @@ -1,121 +0,0 @@ - - -CodeMirror: Puppet mode - - - - - - - - - - -
-

Puppet mode

-
- - -

MIME types defined: text/x-puppet.

- -
diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/puppet/puppet.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/puppet/puppet.js deleted file mode 100644 index e7f799f..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/puppet/puppet.js +++ /dev/null @@ -1,220 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { -"use strict"; - -CodeMirror.defineMode("puppet", function () { - // Stores the words from the define method - var words = {}; - // Taken, mostly, from the Puppet official variable standards regex - var variable_regex = /({)?([a-z][a-z0-9_]*)?((::[a-z][a-z0-9_]*)*::)?[a-zA-Z0-9_]+(})?/; - - // Takes a string of words separated by spaces and adds them as - // keys with the value of the first argument 'style' - function define(style, string) { - var split = string.split(' '); - for (var i = 0; i < split.length; i++) { - words[split[i]] = style; - } - } - - // Takes commonly known puppet types/words and classifies them to a style - define('keyword', 'class define site node include import inherits'); - define('keyword', 'case if else in and elsif default or'); - define('atom', 'false true running present absent file directory undef'); - define('builtin', 'action augeas burst chain computer cron destination dport exec ' + - 'file filebucket group host icmp iniface interface jump k5login limit log_level ' + - 'log_prefix macauthorization mailalias maillist mcx mount nagios_command ' + - 'nagios_contact nagios_contactgroup nagios_host nagios_hostdependency ' + - 'nagios_hostescalation nagios_hostextinfo nagios_hostgroup nagios_service ' + - 'nagios_servicedependency nagios_serviceescalation nagios_serviceextinfo ' + - 'nagios_servicegroup nagios_timeperiod name notify outiface package proto reject ' + - 'resources router schedule scheduled_task selboolean selmodule service source ' + - 'sport ssh_authorized_key sshkey stage state table tidy todest toports tosource ' + - 'user vlan yumrepo zfs zone zpool'); - - // After finding a start of a string ('|") this function attempts to find the end; - // If a variable is encountered along the way, we display it differently when it - // is encapsulated in a double-quoted string. - function tokenString(stream, state) { - var current, prev, found_var = false; - while (!stream.eol() && (current = stream.next()) != state.pending) { - if (current === '$' && prev != '\\' && state.pending == '"') { - found_var = true; - break; - } - prev = current; - } - if (found_var) { - stream.backUp(1); - } - if (current == state.pending) { - state.continueString = false; - } else { - state.continueString = true; - } - return "string"; - } - - // Main function - function tokenize(stream, state) { - // Matches one whole word - var word = stream.match(/[\w]+/, false); - // Matches attributes (i.e. ensure => present ; 'ensure' would be matched) - var attribute = stream.match(/(\s+)?\w+\s+=>.*/, false); - // Matches non-builtin resource declarations - // (i.e. "apache::vhost {" or "mycustomclasss {" would be matched) - var resource = stream.match(/(\s+)?[\w:_]+(\s+)?{/, false); - // Matches virtual and exported resources (i.e. @@user { ; and the like) - var special_resource = stream.match(/(\s+)?[@]{1,2}[\w:_]+(\s+)?{/, false); - - // Finally advance the stream - var ch = stream.next(); - - // Have we found a variable? - if (ch === '$') { - if (stream.match(variable_regex)) { - // If so, and its in a string, assign it a different color - return state.continueString ? 'variable-2' : 'variable'; - } - // Otherwise return an invalid variable - return "error"; - } - // Should we still be looking for the end of a string? - if (state.continueString) { - // If so, go through the loop again - stream.backUp(1); - return tokenString(stream, state); - } - // Are we in a definition (class, node, define)? - if (state.inDefinition) { - // If so, return def (i.e. for 'class myclass {' ; 'myclass' would be matched) - if (stream.match(/(\s+)?[\w:_]+(\s+)?/)) { - return 'def'; - } - // Match the rest it the next time around - stream.match(/\s+{/); - state.inDefinition = false; - } - // Are we in an 'include' statement? - if (state.inInclude) { - // Match and return the included class - stream.match(/(\s+)?\S+(\s+)?/); - state.inInclude = false; - return 'def'; - } - // Do we just have a function on our hands? - // In 'ensure_resource("myclass")', 'ensure_resource' is matched - if (stream.match(/(\s+)?\w+\(/)) { - stream.backUp(1); - return 'def'; - } - // Have we matched the prior attribute regex? - if (attribute) { - stream.match(/(\s+)?\w+/); - return 'tag'; - } - // Do we have Puppet specific words? - if (word && words.hasOwnProperty(word)) { - // Negates the initial next() - stream.backUp(1); - // Acutally move the stream - stream.match(/[\w]+/); - // We want to process these words differently - // do to the importance they have in Puppet - if (stream.match(/\s+\S+\s+{/, false)) { - state.inDefinition = true; - } - if (word == 'include') { - state.inInclude = true; - } - // Returns their value as state in the prior define methods - return words[word]; - } - // Is there a match on a reference? - if (/(^|\s+)[A-Z][\w:_]+/.test(word)) { - // Negate the next() - stream.backUp(1); - // Match the full reference - stream.match(/(^|\s+)[A-Z][\w:_]+/); - return 'def'; - } - // Have we matched the prior resource regex? - if (resource) { - stream.match(/(\s+)?[\w:_]+/); - return 'def'; - } - // Have we matched the prior special_resource regex? - if (special_resource) { - stream.match(/(\s+)?[@]{1,2}/); - return 'special'; - } - // Match all the comments. All of them. - if (ch == "#") { - stream.skipToEnd(); - return "comment"; - } - // Have we found a string? - if (ch == "'" || ch == '"') { - // Store the type (single or double) - state.pending = ch; - // Perform the looping function to find the end - return tokenString(stream, state); - } - // Match all the brackets - if (ch == '{' || ch == '}') { - return 'bracket'; - } - // Match characters that we are going to assume - // are trying to be regex - if (ch == '/') { - stream.match(/.*?\//); - return 'variable-3'; - } - // Match all the numbers - if (ch.match(/[0-9]/)) { - stream.eatWhile(/[0-9]+/); - return 'number'; - } - // Match the '=' and '=>' operators - if (ch == '=') { - if (stream.peek() == '>') { - stream.next(); - } - return "operator"; - } - // Keep advancing through all the rest - stream.eatWhile(/[\w-]/); - // Return a blank line for everything else - return null; - } - // Start it all - return { - startState: function () { - var state = {}; - state.inDefinition = false; - state.inInclude = false; - state.continueString = false; - state.pending = false; - return state; - }, - token: function (stream, state) { - // Strip the spaces, but regex will account for them eitherway - if (stream.eatSpace()) return null; - // Go through the main process - return tokenize(stream, state); - } - }; -}); - -CodeMirror.defineMIME("text/x-puppet", "puppet"); - -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/python/index.html b/src/main/resources/static/editor.md-master/lib/codemirror/mode/python/index.html deleted file mode 100644 index 86eb3d5..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/python/index.html +++ /dev/null @@ -1,198 +0,0 @@ - - -CodeMirror: Python mode - - - - - - - - - - -
-

Python mode

- -
- - -

Cython mode

- -
- - -

Configuration Options for Python mode:

-
    -
  • version - 2/3 - The version of Python to recognize. Default is 2.
  • -
  • singleLineStringErrors - true/false - If you have a single-line string that is not terminated at the end of the line, this will show subsequent lines as errors if true, otherwise it will consider the newline as the end of the string. Default is false.
  • -
  • hangingIndent - int - If you want to write long arguments to a function starting on a new line, how much that line should be indented. Defaults to one normal indentation unit.
  • -
-

Advanced Configuration Options:

-

Usefull for superset of python syntax like Enthought enaml, IPython magics and questionmark help

-
    -
  • singleOperators - RegEx - Regular Expression for single operator matching, default :
    ^[\\+\\-\\*/%&|\\^~<>!]
    including
    @
    on Python 3
  • -
  • singleDelimiters - RegEx - Regular Expression for single delimiter matching, default :
    ^[\\(\\)\\[\\]\\{\\}@,:`=;\\.]
  • -
  • doubleOperators - RegEx - Regular Expression for double operators matching, default :
    ^((==)|(!=)|(<=)|(>=)|(<>)|(<<)|(>>)|(//)|(\\*\\*))
  • -
  • doubleDelimiters - RegEx - Regular Expressoin for double delimiters matching, default :
    ^((\\+=)|(\\-=)|(\\*=)|(%=)|(/=)|(&=)|(\\|=)|(\\^=))
  • -
  • tripleDelimiters - RegEx - Regular Expression for triple delimiters matching, default :
    ^((//=)|(>>=)|(<<=)|(\\*\\*=))
  • -
  • identifiers - RegEx - Regular Expression for identifier, default :
    ^[_A-Za-z][_A-Za-z0-9]*
    on Python 2 and
    ^[_A-Za-z\u00A1-\uFFFF][_A-Za-z0-9\u00A1-\uFFFF]*
    on Python 3.
  • -
  • extra_keywords - list of string - List of extra words ton consider as keywords
  • -
  • extra_builtins - list of string - List of extra words ton consider as builtins
  • -
- - -

MIME types defined: text/x-python and text/x-cython.

-
diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/python/python.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/python/python.js deleted file mode 100644 index 98c0409..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/python/python.js +++ /dev/null @@ -1,359 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { - "use strict"; - - function wordRegexp(words) { - return new RegExp("^((" + words.join(")|(") + "))\\b"); - } - - var wordOperators = wordRegexp(["and", "or", "not", "is"]); - var commonKeywords = ["as", "assert", "break", "class", "continue", - "def", "del", "elif", "else", "except", "finally", - "for", "from", "global", "if", "import", - "lambda", "pass", "raise", "return", - "try", "while", "with", "yield", "in"]; - var commonBuiltins = ["abs", "all", "any", "bin", "bool", "bytearray", "callable", "chr", - "classmethod", "compile", "complex", "delattr", "dict", "dir", "divmod", - "enumerate", "eval", "filter", "float", "format", "frozenset", - "getattr", "globals", "hasattr", "hash", "help", "hex", "id", - "input", "int", "isinstance", "issubclass", "iter", "len", - "list", "locals", "map", "max", "memoryview", "min", "next", - "object", "oct", "open", "ord", "pow", "property", "range", - "repr", "reversed", "round", "set", "setattr", "slice", - "sorted", "staticmethod", "str", "sum", "super", "tuple", - "type", "vars", "zip", "__import__", "NotImplemented", - "Ellipsis", "__debug__"]; - var py2 = {builtins: ["apply", "basestring", "buffer", "cmp", "coerce", "execfile", - "file", "intern", "long", "raw_input", "reduce", "reload", - "unichr", "unicode", "xrange", "False", "True", "None"], - keywords: ["exec", "print"]}; - var py3 = {builtins: ["ascii", "bytes", "exec", "print"], - keywords: ["nonlocal", "False", "True", "None"]}; - - CodeMirror.registerHelper("hintWords", "python", commonKeywords.concat(commonBuiltins)); - - function top(state) { - return state.scopes[state.scopes.length - 1]; - } - - CodeMirror.defineMode("python", function(conf, parserConf) { - var ERRORCLASS = "error"; - - var singleDelimiters = parserConf.singleDelimiters || new RegExp("^[\\(\\)\\[\\]\\{\\}@,:`=;\\.]"); - var doubleOperators = parserConf.doubleOperators || new RegExp("^((==)|(!=)|(<=)|(>=)|(<>)|(<<)|(>>)|(//)|(\\*\\*))"); - var doubleDelimiters = parserConf.doubleDelimiters || new RegExp("^((\\+=)|(\\-=)|(\\*=)|(%=)|(/=)|(&=)|(\\|=)|(\\^=))"); - var tripleDelimiters = parserConf.tripleDelimiters || new RegExp("^((//=)|(>>=)|(<<=)|(\\*\\*=))"); - - if (parserConf.version && parseInt(parserConf.version, 10) == 3){ - // since http://legacy.python.org/dev/peps/pep-0465/ @ is also an operator - var singleOperators = parserConf.singleOperators || new RegExp("^[\\+\\-\\*/%&|\\^~<>!@]"); - var identifiers = parserConf.identifiers|| new RegExp("^[_A-Za-z\u00A1-\uFFFF][_A-Za-z0-9\u00A1-\uFFFF]*"); - } else { - var singleOperators = parserConf.singleOperators || new RegExp("^[\\+\\-\\*/%&|\\^~<>!]"); - var identifiers = parserConf.identifiers|| new RegExp("^[_A-Za-z][_A-Za-z0-9]*"); - } - - var hangingIndent = parserConf.hangingIndent || conf.indentUnit; - - var myKeywords = commonKeywords, myBuiltins = commonBuiltins; - if(parserConf.extra_keywords != undefined){ - myKeywords = myKeywords.concat(parserConf.extra_keywords); - } - if(parserConf.extra_builtins != undefined){ - myBuiltins = myBuiltins.concat(parserConf.extra_builtins); - } - if (parserConf.version && parseInt(parserConf.version, 10) == 3) { - myKeywords = myKeywords.concat(py3.keywords); - myBuiltins = myBuiltins.concat(py3.builtins); - var stringPrefixes = new RegExp("^(([rb]|(br))?('{3}|\"{3}|['\"]))", "i"); - } else { - myKeywords = myKeywords.concat(py2.keywords); - myBuiltins = myBuiltins.concat(py2.builtins); - var stringPrefixes = new RegExp("^(([rub]|(ur)|(br))?('{3}|\"{3}|['\"]))", "i"); - } - var keywords = wordRegexp(myKeywords); - var builtins = wordRegexp(myBuiltins); - - // tokenizers - function tokenBase(stream, state) { - // Handle scope changes - if (stream.sol() && top(state).type == "py") { - var scopeOffset = top(state).offset; - if (stream.eatSpace()) { - var lineOffset = stream.indentation(); - if (lineOffset > scopeOffset) - pushScope(stream, state, "py"); - else if (lineOffset < scopeOffset && dedent(stream, state)) - state.errorToken = true; - return null; - } else { - var style = tokenBaseInner(stream, state); - if (scopeOffset > 0 && dedent(stream, state)) - style += " " + ERRORCLASS; - return style; - } - } - return tokenBaseInner(stream, state); - } - - function tokenBaseInner(stream, state) { - if (stream.eatSpace()) return null; - - var ch = stream.peek(); - - // Handle Comments - if (ch == "#") { - stream.skipToEnd(); - return "comment"; - } - - // Handle Number Literals - if (stream.match(/^[0-9\.]/, false)) { - var floatLiteral = false; - // Floats - if (stream.match(/^\d*\.\d+(e[\+\-]?\d+)?/i)) { floatLiteral = true; } - if (stream.match(/^\d+\.\d*/)) { floatLiteral = true; } - if (stream.match(/^\.\d+/)) { floatLiteral = true; } - if (floatLiteral) { - // Float literals may be "imaginary" - stream.eat(/J/i); - return "number"; - } - // Integers - var intLiteral = false; - // Hex - if (stream.match(/^0x[0-9a-f]+/i)) intLiteral = true; - // Binary - if (stream.match(/^0b[01]+/i)) intLiteral = true; - // Octal - if (stream.match(/^0o[0-7]+/i)) intLiteral = true; - // Decimal - if (stream.match(/^[1-9]\d*(e[\+\-]?\d+)?/)) { - // Decimal literals may be "imaginary" - stream.eat(/J/i); - // TODO - Can you have imaginary longs? - intLiteral = true; - } - // Zero by itself with no other piece of number. - if (stream.match(/^0(?![\dx])/i)) intLiteral = true; - if (intLiteral) { - // Integer literals may be "long" - stream.eat(/L/i); - return "number"; - } - } - - // Handle Strings - if (stream.match(stringPrefixes)) { - state.tokenize = tokenStringFactory(stream.current()); - return state.tokenize(stream, state); - } - - // Handle operators and Delimiters - if (stream.match(tripleDelimiters) || stream.match(doubleDelimiters)) - return null; - - if (stream.match(doubleOperators) - || stream.match(singleOperators) - || stream.match(wordOperators)) - return "operator"; - - if (stream.match(singleDelimiters)) - return null; - - if (stream.match(keywords)) - return "keyword"; - - if (stream.match(builtins)) - return "builtin"; - - if (stream.match(/^(self|cls)\b/)) - return "variable-2"; - - if (stream.match(identifiers)) { - if (state.lastToken == "def" || state.lastToken == "class") - return "def"; - return "variable"; - } - - // Handle non-detected items - stream.next(); - return ERRORCLASS; - } - - function tokenStringFactory(delimiter) { - while ("rub".indexOf(delimiter.charAt(0).toLowerCase()) >= 0) - delimiter = delimiter.substr(1); - - var singleline = delimiter.length == 1; - var OUTCLASS = "string"; - - function tokenString(stream, state) { - while (!stream.eol()) { - stream.eatWhile(/[^'"\\]/); - if (stream.eat("\\")) { - stream.next(); - if (singleline && stream.eol()) - return OUTCLASS; - } else if (stream.match(delimiter)) { - state.tokenize = tokenBase; - return OUTCLASS; - } else { - stream.eat(/['"]/); - } - } - if (singleline) { - if (parserConf.singleLineStringErrors) - return ERRORCLASS; - else - state.tokenize = tokenBase; - } - return OUTCLASS; - } - tokenString.isString = true; - return tokenString; - } - - function pushScope(stream, state, type) { - var offset = 0, align = null; - if (type == "py") { - while (top(state).type != "py") - state.scopes.pop(); - } - offset = top(state).offset + (type == "py" ? conf.indentUnit : hangingIndent); - if (type != "py" && !stream.match(/^(\s|#.*)*$/, false)) - align = stream.column() + 1; - state.scopes.push({offset: offset, type: type, align: align}); - } - - function dedent(stream, state) { - var indented = stream.indentation(); - while (top(state).offset > indented) { - if (top(state).type != "py") return true; - state.scopes.pop(); - } - return top(state).offset != indented; - } - - function tokenLexer(stream, state) { - var style = state.tokenize(stream, state); - var current = stream.current(); - - // Handle '.' connected identifiers - if (current == ".") { - style = stream.match(identifiers, false) ? null : ERRORCLASS; - if (style == null && state.lastStyle == "meta") { - // Apply 'meta' style to '.' connected identifiers when - // appropriate. - style = "meta"; - } - return style; - } - - // Handle decorators - if (current == "@"){ - if(parserConf.version && parseInt(parserConf.version, 10) == 3){ - return stream.match(identifiers, false) ? "meta" : "operator"; - } else { - return stream.match(identifiers, false) ? "meta" : ERRORCLASS; - } - } - - if ((style == "variable" || style == "builtin") - && state.lastStyle == "meta") - style = "meta"; - - // Handle scope changes. - if (current == "pass" || current == "return") - state.dedent += 1; - - if (current == "lambda") state.lambda = true; - if (current == ":" && !state.lambda && top(state).type == "py") - pushScope(stream, state, "py"); - - var delimiter_index = current.length == 1 ? "[({".indexOf(current) : -1; - if (delimiter_index != -1) - pushScope(stream, state, "])}".slice(delimiter_index, delimiter_index+1)); - - delimiter_index = "])}".indexOf(current); - if (delimiter_index != -1) { - if (top(state).type == current) state.scopes.pop(); - else return ERRORCLASS; - } - if (state.dedent > 0 && stream.eol() && top(state).type == "py") { - if (state.scopes.length > 1) state.scopes.pop(); - state.dedent -= 1; - } - - return style; - } - - var external = { - startState: function(basecolumn) { - return { - tokenize: tokenBase, - scopes: [{offset: basecolumn || 0, type: "py", align: null}], - lastStyle: null, - lastToken: null, - lambda: false, - dedent: 0 - }; - }, - - token: function(stream, state) { - var addErr = state.errorToken; - if (addErr) state.errorToken = false; - var style = tokenLexer(stream, state); - - state.lastStyle = style; - - var current = stream.current(); - if (current && style) - state.lastToken = current; - - if (stream.eol() && state.lambda) - state.lambda = false; - return addErr ? style + " " + ERRORCLASS : style; - }, - - indent: function(state, textAfter) { - if (state.tokenize != tokenBase) - return state.tokenize.isString ? CodeMirror.Pass : 0; - - var scope = top(state); - var closing = textAfter && textAfter.charAt(0) == scope.type; - if (scope.align != null) - return scope.align - (closing ? 1 : 0); - else if (closing && state.scopes.length > 1) - return state.scopes[state.scopes.length - 2].offset; - else - return scope.offset; - }, - - lineComment: "#", - fold: "indent" - }; - return external; - }); - - CodeMirror.defineMIME("text/x-python", "python"); - - var words = function(str) { return str.split(" "); }; - - CodeMirror.defineMIME("text/x-cython", { - name: "python", - extra_keywords: words("by cdef cimport cpdef ctypedef enum except"+ - "extern gil include nogil property public"+ - "readonly struct union DEF IF ELIF ELSE") - }); - -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/q/index.html b/src/main/resources/static/editor.md-master/lib/codemirror/mode/q/index.html deleted file mode 100644 index 72785ba..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/q/index.html +++ /dev/null @@ -1,144 +0,0 @@ - - -CodeMirror: Q mode - - - - - - - - - - -
-

Q mode

- - -
- - - -

MIME type defined: text/x-q.

-
diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/q/q.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/q/q.js deleted file mode 100644 index a4af938..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/q/q.js +++ /dev/null @@ -1,139 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { -"use strict"; - -CodeMirror.defineMode("q",function(config){ - var indentUnit=config.indentUnit, - curPunc, - keywords=buildRE(["abs","acos","aj","aj0","all","and","any","asc","asin","asof","atan","attr","avg","avgs","bin","by","ceiling","cols","cor","cos","count","cov","cross","csv","cut","delete","deltas","desc","dev","differ","distinct","div","do","each","ej","enlist","eval","except","exec","exit","exp","fby","fills","first","fkeys","flip","floor","from","get","getenv","group","gtime","hclose","hcount","hdel","hopen","hsym","iasc","idesc","if","ij","in","insert","inter","inv","key","keys","last","like","list","lj","load","log","lower","lsq","ltime","ltrim","mavg","max","maxs","mcount","md5","mdev","med","meta","min","mins","mmax","mmin","mmu","mod","msum","neg","next","not","null","or","over","parse","peach","pj","plist","prd","prds","prev","prior","rand","rank","ratios","raze","read0","read1","reciprocal","reverse","rload","rotate","rsave","rtrim","save","scan","select","set","setenv","show","signum","sin","sqrt","ss","ssr","string","sublist","sum","sums","sv","system","tables","tan","til","trim","txf","type","uj","ungroup","union","update","upper","upsert","value","var","view","views","vs","wavg","where","where","while","within","wj","wj1","wsum","xasc","xbar","xcol","xcols","xdesc","xexp","xgroup","xkey","xlog","xprev","xrank"]), - E=/[|/&^!+:\\\-*%$=~#;@><,?_\'\"\[\(\]\)\s{}]/; - function buildRE(w){return new RegExp("^("+w.join("|")+")$");} - function tokenBase(stream,state){ - var sol=stream.sol(),c=stream.next(); - curPunc=null; - if(sol) - if(c=="/") - return(state.tokenize=tokenLineComment)(stream,state); - else if(c=="\\"){ - if(stream.eol()||/\s/.test(stream.peek())) - return stream.skipToEnd(),/^\\\s*$/.test(stream.current())?(state.tokenize=tokenCommentToEOF)(stream, state):state.tokenize=tokenBase,"comment"; - else - return state.tokenize=tokenBase,"builtin"; - } - if(/\s/.test(c)) - return stream.peek()=="/"?(stream.skipToEnd(),"comment"):"whitespace"; - if(c=='"') - return(state.tokenize=tokenString)(stream,state); - if(c=='`') - return stream.eatWhile(/[A-Z|a-z|\d|_|:|\/|\.]/),"symbol"; - if(("."==c&&/\d/.test(stream.peek()))||/\d/.test(c)){ - var t=null; - stream.backUp(1); - if(stream.match(/^\d{4}\.\d{2}(m|\.\d{2}([D|T](\d{2}(:\d{2}(:\d{2}(\.\d{1,9})?)?)?)?)?)/) - || stream.match(/^\d+D(\d{2}(:\d{2}(:\d{2}(\.\d{1,9})?)?)?)/) - || stream.match(/^\d{2}:\d{2}(:\d{2}(\.\d{1,9})?)?/) - || stream.match(/^\d+[ptuv]{1}/)) - t="temporal"; - else if(stream.match(/^0[NwW]{1}/) - || stream.match(/^0x[\d|a-f|A-F]*/) - || stream.match(/^[0|1]+[b]{1}/) - || stream.match(/^\d+[chijn]{1}/) - || stream.match(/-?\d*(\.\d*)?(e[+\-]?\d+)?(e|f)?/)) - t="number"; - return(t&&(!(c=stream.peek())||E.test(c)))?t:(stream.next(),"error"); - } - if(/[A-Z|a-z]|\./.test(c)) - return stream.eatWhile(/[A-Z|a-z|\.|_|\d]/),keywords.test(stream.current())?"keyword":"variable"; - if(/[|/&^!+:\\\-*%$=~#;@><\.,?_\']/.test(c)) - return null; - if(/[{}\(\[\]\)]/.test(c)) - return null; - return"error"; - } - function tokenLineComment(stream,state){ - return stream.skipToEnd(),/\/\s*$/.test(stream.current())?(state.tokenize=tokenBlockComment)(stream,state):(state.tokenize=tokenBase),"comment"; - } - function tokenBlockComment(stream,state){ - var f=stream.sol()&&stream.peek()=="\\"; - stream.skipToEnd(); - if(f&&/^\\\s*$/.test(stream.current())) - state.tokenize=tokenBase; - return"comment"; - } - function tokenCommentToEOF(stream){return stream.skipToEnd(),"comment";} - function tokenString(stream,state){ - var escaped=false,next,end=false; - while((next=stream.next())){ - if(next=="\""&&!escaped){end=true;break;} - escaped=!escaped&&next=="\\"; - } - if(end)state.tokenize=tokenBase; - return"string"; - } - function pushContext(state,type,col){state.context={prev:state.context,indent:state.indent,col:col,type:type};} - function popContext(state){state.indent=state.context.indent;state.context=state.context.prev;} - return{ - startState:function(){ - return{tokenize:tokenBase, - context:null, - indent:0, - col:0}; - }, - token:function(stream,state){ - if(stream.sol()){ - if(state.context&&state.context.align==null) - state.context.align=false; - state.indent=stream.indentation(); - } - //if (stream.eatSpace()) return null; - var style=state.tokenize(stream,state); - if(style!="comment"&&state.context&&state.context.align==null&&state.context.type!="pattern"){ - state.context.align=true; - } - if(curPunc=="(")pushContext(state,")",stream.column()); - else if(curPunc=="[")pushContext(state,"]",stream.column()); - else if(curPunc=="{")pushContext(state,"}",stream.column()); - else if(/[\]\}\)]/.test(curPunc)){ - while(state.context&&state.context.type=="pattern")popContext(state); - if(state.context&&curPunc==state.context.type)popContext(state); - } - else if(curPunc=="."&&state.context&&state.context.type=="pattern")popContext(state); - else if(/atom|string|variable/.test(style)&&state.context){ - if(/[\}\]]/.test(state.context.type)) - pushContext(state,"pattern",stream.column()); - else if(state.context.type=="pattern"&&!state.context.align){ - state.context.align=true; - state.context.col=stream.column(); - } - } - return style; - }, - indent:function(state,textAfter){ - var firstChar=textAfter&&textAfter.charAt(0); - var context=state.context; - if(/[\]\}]/.test(firstChar)) - while (context&&context.type=="pattern")context=context.prev; - var closing=context&&firstChar==context.type; - if(!context) - return 0; - else if(context.type=="pattern") - return context.col; - else if(context.align) - return context.col+(closing?0:1); - else - return context.indent+(closing?0:indentUnit); - } - }; -}); -CodeMirror.defineMIME("text/x-q","q"); - -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/r/index.html b/src/main/resources/static/editor.md-master/lib/codemirror/mode/r/index.html deleted file mode 100644 index 6dd9634..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/r/index.html +++ /dev/null @@ -1,85 +0,0 @@ - - -CodeMirror: R mode - - - - - - - - - -
-

R mode

-
- - -

MIME types defined: text/x-rsrc.

- -

Development of the CodeMirror R mode was kindly sponsored - by Ubalo.

- -
diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/r/r.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/r/r.js deleted file mode 100644 index 1ab4a95..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/r/r.js +++ /dev/null @@ -1,162 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { -"use strict"; - -CodeMirror.defineMode("r", function(config) { - function wordObj(str) { - var words = str.split(" "), res = {}; - for (var i = 0; i < words.length; ++i) res[words[i]] = true; - return res; - } - var atoms = wordObj("NULL NA Inf NaN NA_integer_ NA_real_ NA_complex_ NA_character_"); - var builtins = wordObj("list quote bquote eval return call parse deparse"); - var keywords = wordObj("if else repeat while function for in next break"); - var blockkeywords = wordObj("if else repeat while function for"); - var opChars = /[+\-*\/^<>=!&|~$:]/; - var curPunc; - - function tokenBase(stream, state) { - curPunc = null; - var ch = stream.next(); - if (ch == "#") { - stream.skipToEnd(); - return "comment"; - } else if (ch == "0" && stream.eat("x")) { - stream.eatWhile(/[\da-f]/i); - return "number"; - } else if (ch == "." && stream.eat(/\d/)) { - stream.match(/\d*(?:e[+\-]?\d+)?/); - return "number"; - } else if (/\d/.test(ch)) { - stream.match(/\d*(?:\.\d+)?(?:e[+\-]\d+)?L?/); - return "number"; - } else if (ch == "'" || ch == '"') { - state.tokenize = tokenString(ch); - return "string"; - } else if (ch == "." && stream.match(/.[.\d]+/)) { - return "keyword"; - } else if (/[\w\.]/.test(ch) && ch != "_") { - stream.eatWhile(/[\w\.]/); - var word = stream.current(); - if (atoms.propertyIsEnumerable(word)) return "atom"; - if (keywords.propertyIsEnumerable(word)) { - // Block keywords start new blocks, except 'else if', which only starts - // one new block for the 'if', no block for the 'else'. - if (blockkeywords.propertyIsEnumerable(word) && - !stream.match(/\s*if(\s+|$)/, false)) - curPunc = "block"; - return "keyword"; - } - if (builtins.propertyIsEnumerable(word)) return "builtin"; - return "variable"; - } else if (ch == "%") { - if (stream.skipTo("%")) stream.next(); - return "variable-2"; - } else if (ch == "<" && stream.eat("-")) { - return "arrow"; - } else if (ch == "=" && state.ctx.argList) { - return "arg-is"; - } else if (opChars.test(ch)) { - if (ch == "$") return "dollar"; - stream.eatWhile(opChars); - return "operator"; - } else if (/[\(\){}\[\];]/.test(ch)) { - curPunc = ch; - if (ch == ";") return "semi"; - return null; - } else { - return null; - } - } - - function tokenString(quote) { - return function(stream, state) { - if (stream.eat("\\")) { - var ch = stream.next(); - if (ch == "x") stream.match(/^[a-f0-9]{2}/i); - else if ((ch == "u" || ch == "U") && stream.eat("{") && stream.skipTo("}")) stream.next(); - else if (ch == "u") stream.match(/^[a-f0-9]{4}/i); - else if (ch == "U") stream.match(/^[a-f0-9]{8}/i); - else if (/[0-7]/.test(ch)) stream.match(/^[0-7]{1,2}/); - return "string-2"; - } else { - var next; - while ((next = stream.next()) != null) { - if (next == quote) { state.tokenize = tokenBase; break; } - if (next == "\\") { stream.backUp(1); break; } - } - return "string"; - } - }; - } - - function push(state, type, stream) { - state.ctx = {type: type, - indent: state.indent, - align: null, - column: stream.column(), - prev: state.ctx}; - } - function pop(state) { - state.indent = state.ctx.indent; - state.ctx = state.ctx.prev; - } - - return { - startState: function() { - return {tokenize: tokenBase, - ctx: {type: "top", - indent: -config.indentUnit, - align: false}, - indent: 0, - afterIdent: false}; - }, - - token: function(stream, state) { - if (stream.sol()) { - if (state.ctx.align == null) state.ctx.align = false; - state.indent = stream.indentation(); - } - if (stream.eatSpace()) return null; - var style = state.tokenize(stream, state); - if (style != "comment" && state.ctx.align == null) state.ctx.align = true; - - var ctype = state.ctx.type; - if ((curPunc == ";" || curPunc == "{" || curPunc == "}") && ctype == "block") pop(state); - if (curPunc == "{") push(state, "}", stream); - else if (curPunc == "(") { - push(state, ")", stream); - if (state.afterIdent) state.ctx.argList = true; - } - else if (curPunc == "[") push(state, "]", stream); - else if (curPunc == "block") push(state, "block", stream); - else if (curPunc == ctype) pop(state); - state.afterIdent = style == "variable" || style == "keyword"; - return style; - }, - - indent: function(state, textAfter) { - if (state.tokenize != tokenBase) return 0; - var firstChar = textAfter && textAfter.charAt(0), ctx = state.ctx, - closing = firstChar == ctx.type; - if (ctx.type == "block") return ctx.indent + (firstChar == "{" ? 0 : config.indentUnit); - else if (ctx.align) return ctx.column + (closing ? 0 : 1); - else return ctx.indent + (closing ? 0 : config.indentUnit); - }, - - lineComment: "#" - }; -}); - -CodeMirror.defineMIME("text/x-rsrc", "r"); - -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/rpm/changes/index.html b/src/main/resources/static/editor.md-master/lib/codemirror/mode/rpm/changes/index.html deleted file mode 100644 index 6e5031b..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/rpm/changes/index.html +++ /dev/null @@ -1,66 +0,0 @@ - - -CodeMirror: RPM changes mode - - - - - - - - - - - -
-

RPM changes mode

- -
- - -

MIME types defined: text/x-rpm-changes.

-
diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/rpm/index.html b/src/main/resources/static/editor.md-master/lib/codemirror/mode/rpm/index.html deleted file mode 100644 index 9a34e6d..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/rpm/index.html +++ /dev/null @@ -1,149 +0,0 @@ - - -CodeMirror: RPM changes mode - - - - - - - - - - - -
-

RPM changes mode

- -
- - -

RPM spec mode

- -
- - -

MIME types defined: text/x-rpm-spec, text/x-rpm-changes.

-
diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/rpm/rpm.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/rpm/rpm.js deleted file mode 100644 index 3bb7cd2..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/rpm/rpm.js +++ /dev/null @@ -1,101 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { -"use strict"; - -CodeMirror.defineMode("rpm-changes", function() { - var headerSeperator = /^-+$/; - var headerLine = /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ?\d{1,2} \d{2}:\d{2}(:\d{2})? [A-Z]{3,4} \d{4} - /; - var simpleEmail = /^[\w+.-]+@[\w.-]+/; - - return { - token: function(stream) { - if (stream.sol()) { - if (stream.match(headerSeperator)) { return 'tag'; } - if (stream.match(headerLine)) { return 'tag'; } - } - if (stream.match(simpleEmail)) { return 'string'; } - stream.next(); - return null; - } - }; -}); - -CodeMirror.defineMIME("text/x-rpm-changes", "rpm-changes"); - -// Quick and dirty spec file highlighting - -CodeMirror.defineMode("rpm-spec", function() { - var arch = /^(i386|i586|i686|x86_64|ppc64|ppc|ia64|s390x|s390|sparc64|sparcv9|sparc|noarch|alphaev6|alpha|hppa|mipsel)/; - - var preamble = /^(Name|Version|Release|License|Summary|Url|Group|Source|BuildArch|BuildRequires|BuildRoot|AutoReqProv|Provides|Requires(\(\w+\))?|Obsoletes|Conflicts|Recommends|Source\d*|Patch\d*|ExclusiveArch|NoSource|Supplements):/; - var section = /^%(debug_package|package|description|prep|build|install|files|clean|changelog|preinstall|preun|postinstall|postun|pre|post|triggerin|triggerun|pretrans|posttrans|verifyscript|check|triggerpostun|triggerprein|trigger)/; - var control_flow_complex = /^%(ifnarch|ifarch|if)/; // rpm control flow macros - var control_flow_simple = /^%(else|endif)/; // rpm control flow macros - var operators = /^(\!|\?|\<\=|\<|\>\=|\>|\=\=|\&\&|\|\|)/; // operators in control flow macros - - return { - startState: function () { - return { - controlFlow: false, - macroParameters: false, - section: false - }; - }, - token: function (stream, state) { - var ch = stream.peek(); - if (ch == "#") { stream.skipToEnd(); return "comment"; } - - if (stream.sol()) { - if (stream.match(preamble)) { return "preamble"; } - if (stream.match(section)) { return "section"; } - } - - if (stream.match(/^\$\w+/)) { return "def"; } // Variables like '$RPM_BUILD_ROOT' - if (stream.match(/^\$\{\w+\}/)) { return "def"; } // Variables like '${RPM_BUILD_ROOT}' - - if (stream.match(control_flow_simple)) { return "keyword"; } - if (stream.match(control_flow_complex)) { - state.controlFlow = true; - return "keyword"; - } - if (state.controlFlow) { - if (stream.match(operators)) { return "operator"; } - if (stream.match(/^(\d+)/)) { return "number"; } - if (stream.eol()) { state.controlFlow = false; } - } - - if (stream.match(arch)) { return "number"; } - - // Macros like '%make_install' or '%attr(0775,root,root)' - if (stream.match(/^%[\w]+/)) { - if (stream.match(/^\(/)) { state.macroParameters = true; } - return "macro"; - } - if (state.macroParameters) { - if (stream.match(/^\d+/)) { return "number";} - if (stream.match(/^\)/)) { - state.macroParameters = false; - return "macro"; - } - } - if (stream.match(/^%\{\??[\w \-]+\}/)) { return "macro"; } // Macros like '%{defined fedora}' - - //TODO: Include bash script sub-parser (CodeMirror supports that) - stream.next(); - return null; - } - }; -}); - -CodeMirror.defineMIME("text/x-rpm-spec", "rpm-spec"); - -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/rst/index.html b/src/main/resources/static/editor.md-master/lib/codemirror/mode/rst/index.html deleted file mode 100644 index 2902dea..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/rst/index.html +++ /dev/null @@ -1,535 +0,0 @@ - - -CodeMirror: reStructuredText mode - - - - - - - - - - -
-

reStructuredText mode

-
- - -

- The python mode will be used for highlighting blocks - containing Python/IPython terminal sessions: blocks starting with - >>> (for Python) or In [num]: (for - IPython). - - Further, the stex mode will be used for highlighting - blocks containing LaTex code. -

- -

MIME types defined: text/x-rst.

-
diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/rst/rst.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/rst/rst.js deleted file mode 100644 index bcf110c..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/rst/rst.js +++ /dev/null @@ -1,557 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror"), require("../python/python"), require("../stex/stex"), require("../../addon/mode/overlay")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror", "../python/python", "../stex/stex", "../../addon/mode/overlay"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { -"use strict"; - -CodeMirror.defineMode('rst', function (config, options) { - - var rx_strong = /^\*\*[^\*\s](?:[^\*]*[^\*\s])?\*\*/; - var rx_emphasis = /^\*[^\*\s](?:[^\*]*[^\*\s])?\*/; - var rx_literal = /^``[^`\s](?:[^`]*[^`\s])``/; - - var rx_number = /^(?:[\d]+(?:[\.,]\d+)*)/; - var rx_positive = /^(?:\s\+[\d]+(?:[\.,]\d+)*)/; - var rx_negative = /^(?:\s\-[\d]+(?:[\.,]\d+)*)/; - - var rx_uri_protocol = "[Hh][Tt][Tt][Pp][Ss]?://"; - var rx_uri_domain = "(?:[\\d\\w.-]+)\\.(?:\\w{2,6})"; - var rx_uri_path = "(?:/[\\d\\w\\#\\%\\&\\-\\.\\,\\/\\:\\=\\?\\~]+)*"; - var rx_uri = new RegExp("^" + rx_uri_protocol + rx_uri_domain + rx_uri_path); - - var overlay = { - token: function (stream) { - - if (stream.match(rx_strong) && stream.match (/\W+|$/, false)) - return 'strong'; - if (stream.match(rx_emphasis) && stream.match (/\W+|$/, false)) - return 'em'; - if (stream.match(rx_literal) && stream.match (/\W+|$/, false)) - return 'string-2'; - if (stream.match(rx_number)) - return 'number'; - if (stream.match(rx_positive)) - return 'positive'; - if (stream.match(rx_negative)) - return 'negative'; - if (stream.match(rx_uri)) - return 'link'; - - while (stream.next() != null) { - if (stream.match(rx_strong, false)) break; - if (stream.match(rx_emphasis, false)) break; - if (stream.match(rx_literal, false)) break; - if (stream.match(rx_number, false)) break; - if (stream.match(rx_positive, false)) break; - if (stream.match(rx_negative, false)) break; - if (stream.match(rx_uri, false)) break; - } - - return null; - } - }; - - var mode = CodeMirror.getMode( - config, options.backdrop || 'rst-base' - ); - - return CodeMirror.overlayMode(mode, overlay, true); // combine -}, 'python', 'stex'); - -/////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////// - -CodeMirror.defineMode('rst-base', function (config) { - - /////////////////////////////////////////////////////////////////////////// - /////////////////////////////////////////////////////////////////////////// - - function format(string) { - var args = Array.prototype.slice.call(arguments, 1); - return string.replace(/{(\d+)}/g, function (match, n) { - return typeof args[n] != 'undefined' ? args[n] : match; - }); - } - - /////////////////////////////////////////////////////////////////////////// - /////////////////////////////////////////////////////////////////////////// - - var mode_python = CodeMirror.getMode(config, 'python'); - var mode_stex = CodeMirror.getMode(config, 'stex'); - - /////////////////////////////////////////////////////////////////////////// - /////////////////////////////////////////////////////////////////////////// - - var SEPA = "\\s+"; - var TAIL = "(?:\\s*|\\W|$)", - rx_TAIL = new RegExp(format('^{0}', TAIL)); - - var NAME = - "(?:[^\\W\\d_](?:[\\w!\"#$%&'()\\*\\+,\\-\\.\/:;<=>\\?]*[^\\W_])?)", - rx_NAME = new RegExp(format('^{0}', NAME)); - var NAME_WWS = - "(?:[^\\W\\d_](?:[\\w\\s!\"#$%&'()\\*\\+,\\-\\.\/:;<=>\\?]*[^\\W_])?)"; - var REF_NAME = format('(?:{0}|`{1}`)', NAME, NAME_WWS); - - var TEXT1 = "(?:[^\\s\\|](?:[^\\|]*[^\\s\\|])?)"; - var TEXT2 = "(?:[^\\`]+)", - rx_TEXT2 = new RegExp(format('^{0}', TEXT2)); - - var rx_section = new RegExp( - "^([!'#$%&\"()*+,-./:;<=>?@\\[\\\\\\]^_`{|}~])\\1{3,}\\s*$"); - var rx_explicit = new RegExp( - format('^\\.\\.{0}', SEPA)); - var rx_link = new RegExp( - format('^_{0}:{1}|^__:{1}', REF_NAME, TAIL)); - var rx_directive = new RegExp( - format('^{0}::{1}', REF_NAME, TAIL)); - var rx_substitution = new RegExp( - format('^\\|{0}\\|{1}{2}::{3}', TEXT1, SEPA, REF_NAME, TAIL)); - var rx_footnote = new RegExp( - format('^\\[(?:\\d+|#{0}?|\\*)]{1}', REF_NAME, TAIL)); - var rx_citation = new RegExp( - format('^\\[{0}\\]{1}', REF_NAME, TAIL)); - - var rx_substitution_ref = new RegExp( - format('^\\|{0}\\|', TEXT1)); - var rx_footnote_ref = new RegExp( - format('^\\[(?:\\d+|#{0}?|\\*)]_', REF_NAME)); - var rx_citation_ref = new RegExp( - format('^\\[{0}\\]_', REF_NAME)); - var rx_link_ref1 = new RegExp( - format('^{0}__?', REF_NAME)); - var rx_link_ref2 = new RegExp( - format('^`{0}`_', TEXT2)); - - var rx_role_pre = new RegExp( - format('^:{0}:`{1}`{2}', NAME, TEXT2, TAIL)); - var rx_role_suf = new RegExp( - format('^`{1}`:{0}:{2}', NAME, TEXT2, TAIL)); - var rx_role = new RegExp( - format('^:{0}:{1}', NAME, TAIL)); - - var rx_directive_name = new RegExp(format('^{0}', REF_NAME)); - var rx_directive_tail = new RegExp(format('^::{0}', TAIL)); - var rx_substitution_text = new RegExp(format('^\\|{0}\\|', TEXT1)); - var rx_substitution_sepa = new RegExp(format('^{0}', SEPA)); - var rx_substitution_name = new RegExp(format('^{0}', REF_NAME)); - var rx_substitution_tail = new RegExp(format('^::{0}', TAIL)); - var rx_link_head = new RegExp("^_"); - var rx_link_name = new RegExp(format('^{0}|_', REF_NAME)); - var rx_link_tail = new RegExp(format('^:{0}', TAIL)); - - var rx_verbatim = new RegExp('^::\\s*$'); - var rx_examples = new RegExp('^\\s+(?:>>>|In \\[\\d+\\]:)\\s'); - - /////////////////////////////////////////////////////////////////////////// - /////////////////////////////////////////////////////////////////////////// - - function to_normal(stream, state) { - var token = null; - - if (stream.sol() && stream.match(rx_examples, false)) { - change(state, to_mode, { - mode: mode_python, local: CodeMirror.startState(mode_python) - }); - } else if (stream.sol() && stream.match(rx_explicit)) { - change(state, to_explicit); - token = 'meta'; - } else if (stream.sol() && stream.match(rx_section)) { - change(state, to_normal); - token = 'header'; - } else if (phase(state) == rx_role_pre || - stream.match(rx_role_pre, false)) { - - switch (stage(state)) { - case 0: - change(state, to_normal, context(rx_role_pre, 1)); - stream.match(/^:/); - token = 'meta'; - break; - case 1: - change(state, to_normal, context(rx_role_pre, 2)); - stream.match(rx_NAME); - token = 'keyword'; - - if (stream.current().match(/^(?:math|latex)/)) { - state.tmp_stex = true; - } - break; - case 2: - change(state, to_normal, context(rx_role_pre, 3)); - stream.match(/^:`/); - token = 'meta'; - break; - case 3: - if (state.tmp_stex) { - state.tmp_stex = undefined; state.tmp = { - mode: mode_stex, local: CodeMirror.startState(mode_stex) - }; - } - - if (state.tmp) { - if (stream.peek() == '`') { - change(state, to_normal, context(rx_role_pre, 4)); - state.tmp = undefined; - break; - } - - token = state.tmp.mode.token(stream, state.tmp.local); - break; - } - - change(state, to_normal, context(rx_role_pre, 4)); - stream.match(rx_TEXT2); - token = 'string'; - break; - case 4: - change(state, to_normal, context(rx_role_pre, 5)); - stream.match(/^`/); - token = 'meta'; - break; - case 5: - change(state, to_normal, context(rx_role_pre, 6)); - stream.match(rx_TAIL); - break; - default: - change(state, to_normal); - } - } else if (phase(state) == rx_role_suf || - stream.match(rx_role_suf, false)) { - - switch (stage(state)) { - case 0: - change(state, to_normal, context(rx_role_suf, 1)); - stream.match(/^`/); - token = 'meta'; - break; - case 1: - change(state, to_normal, context(rx_role_suf, 2)); - stream.match(rx_TEXT2); - token = 'string'; - break; - case 2: - change(state, to_normal, context(rx_role_suf, 3)); - stream.match(/^`:/); - token = 'meta'; - break; - case 3: - change(state, to_normal, context(rx_role_suf, 4)); - stream.match(rx_NAME); - token = 'keyword'; - break; - case 4: - change(state, to_normal, context(rx_role_suf, 5)); - stream.match(/^:/); - token = 'meta'; - break; - case 5: - change(state, to_normal, context(rx_role_suf, 6)); - stream.match(rx_TAIL); - break; - default: - change(state, to_normal); - } - } else if (phase(state) == rx_role || stream.match(rx_role, false)) { - - switch (stage(state)) { - case 0: - change(state, to_normal, context(rx_role, 1)); - stream.match(/^:/); - token = 'meta'; - break; - case 1: - change(state, to_normal, context(rx_role, 2)); - stream.match(rx_NAME); - token = 'keyword'; - break; - case 2: - change(state, to_normal, context(rx_role, 3)); - stream.match(/^:/); - token = 'meta'; - break; - case 3: - change(state, to_normal, context(rx_role, 4)); - stream.match(rx_TAIL); - break; - default: - change(state, to_normal); - } - } else if (phase(state) == rx_substitution_ref || - stream.match(rx_substitution_ref, false)) { - - switch (stage(state)) { - case 0: - change(state, to_normal, context(rx_substitution_ref, 1)); - stream.match(rx_substitution_text); - token = 'variable-2'; - break; - case 1: - change(state, to_normal, context(rx_substitution_ref, 2)); - if (stream.match(/^_?_?/)) token = 'link'; - break; - default: - change(state, to_normal); - } - } else if (stream.match(rx_footnote_ref)) { - change(state, to_normal); - token = 'quote'; - } else if (stream.match(rx_citation_ref)) { - change(state, to_normal); - token = 'quote'; - } else if (stream.match(rx_link_ref1)) { - change(state, to_normal); - if (!stream.peek() || stream.peek().match(/^\W$/)) { - token = 'link'; - } - } else if (phase(state) == rx_link_ref2 || - stream.match(rx_link_ref2, false)) { - - switch (stage(state)) { - case 0: - if (!stream.peek() || stream.peek().match(/^\W$/)) { - change(state, to_normal, context(rx_link_ref2, 1)); - } else { - stream.match(rx_link_ref2); - } - break; - case 1: - change(state, to_normal, context(rx_link_ref2, 2)); - stream.match(/^`/); - token = 'link'; - break; - case 2: - change(state, to_normal, context(rx_link_ref2, 3)); - stream.match(rx_TEXT2); - break; - case 3: - change(state, to_normal, context(rx_link_ref2, 4)); - stream.match(/^`_/); - token = 'link'; - break; - default: - change(state, to_normal); - } - } else if (stream.match(rx_verbatim)) { - change(state, to_verbatim); - } - - else { - if (stream.next()) change(state, to_normal); - } - - return token; - } - - /////////////////////////////////////////////////////////////////////////// - /////////////////////////////////////////////////////////////////////////// - - function to_explicit(stream, state) { - var token = null; - - if (phase(state) == rx_substitution || - stream.match(rx_substitution, false)) { - - switch (stage(state)) { - case 0: - change(state, to_explicit, context(rx_substitution, 1)); - stream.match(rx_substitution_text); - token = 'variable-2'; - break; - case 1: - change(state, to_explicit, context(rx_substitution, 2)); - stream.match(rx_substitution_sepa); - break; - case 2: - change(state, to_explicit, context(rx_substitution, 3)); - stream.match(rx_substitution_name); - token = 'keyword'; - break; - case 3: - change(state, to_explicit, context(rx_substitution, 4)); - stream.match(rx_substitution_tail); - token = 'meta'; - break; - default: - change(state, to_normal); - } - } else if (phase(state) == rx_directive || - stream.match(rx_directive, false)) { - - switch (stage(state)) { - case 0: - change(state, to_explicit, context(rx_directive, 1)); - stream.match(rx_directive_name); - token = 'keyword'; - - if (stream.current().match(/^(?:math|latex)/)) - state.tmp_stex = true; - else if (stream.current().match(/^python/)) - state.tmp_py = true; - break; - case 1: - change(state, to_explicit, context(rx_directive, 2)); - stream.match(rx_directive_tail); - token = 'meta'; - - if (stream.match(/^latex\s*$/) || state.tmp_stex) { - state.tmp_stex = undefined; change(state, to_mode, { - mode: mode_stex, local: CodeMirror.startState(mode_stex) - }); - } - break; - case 2: - change(state, to_explicit, context(rx_directive, 3)); - if (stream.match(/^python\s*$/) || state.tmp_py) { - state.tmp_py = undefined; change(state, to_mode, { - mode: mode_python, local: CodeMirror.startState(mode_python) - }); - } - break; - default: - change(state, to_normal); - } - } else if (phase(state) == rx_link || stream.match(rx_link, false)) { - - switch (stage(state)) { - case 0: - change(state, to_explicit, context(rx_link, 1)); - stream.match(rx_link_head); - stream.match(rx_link_name); - token = 'link'; - break; - case 1: - change(state, to_explicit, context(rx_link, 2)); - stream.match(rx_link_tail); - token = 'meta'; - break; - default: - change(state, to_normal); - } - } else if (stream.match(rx_footnote)) { - change(state, to_normal); - token = 'quote'; - } else if (stream.match(rx_citation)) { - change(state, to_normal); - token = 'quote'; - } - - else { - stream.eatSpace(); - if (stream.eol()) { - change(state, to_normal); - } else { - stream.skipToEnd(); - change(state, to_comment); - token = 'comment'; - } - } - - return token; - } - - /////////////////////////////////////////////////////////////////////////// - /////////////////////////////////////////////////////////////////////////// - - function to_comment(stream, state) { - return as_block(stream, state, 'comment'); - } - - function to_verbatim(stream, state) { - return as_block(stream, state, 'meta'); - } - - function as_block(stream, state, token) { - if (stream.eol() || stream.eatSpace()) { - stream.skipToEnd(); - return token; - } else { - change(state, to_normal); - return null; - } - } - - /////////////////////////////////////////////////////////////////////////// - /////////////////////////////////////////////////////////////////////////// - - function to_mode(stream, state) { - - if (state.ctx.mode && state.ctx.local) { - - if (stream.sol()) { - if (!stream.eatSpace()) change(state, to_normal); - return null; - } - - return state.ctx.mode.token(stream, state.ctx.local); - } - - change(state, to_normal); - return null; - } - - /////////////////////////////////////////////////////////////////////////// - /////////////////////////////////////////////////////////////////////////// - - function context(phase, stage, mode, local) { - return {phase: phase, stage: stage, mode: mode, local: local}; - } - - function change(state, tok, ctx) { - state.tok = tok; - state.ctx = ctx || {}; - } - - function stage(state) { - return state.ctx.stage || 0; - } - - function phase(state) { - return state.ctx.phase; - } - - /////////////////////////////////////////////////////////////////////////// - /////////////////////////////////////////////////////////////////////////// - - return { - startState: function () { - return {tok: to_normal, ctx: context(undefined, 0)}; - }, - - copyState: function (state) { - var ctx = state.ctx, tmp = state.tmp; - if (ctx.local) - ctx = {mode: ctx.mode, local: CodeMirror.copyState(ctx.mode, ctx.local)}; - if (tmp) - tmp = {mode: tmp.mode, local: CodeMirror.copyState(tmp.mode, tmp.local)}; - return {tok: state.tok, ctx: ctx, tmp: tmp}; - }, - - innerMode: function (state) { - return state.tmp ? {state: state.tmp.local, mode: state.tmp.mode} - : state.ctx.mode ? {state: state.ctx.local, mode: state.ctx.mode} - : null; - }, - - token: function (stream, state) { - return state.tok(stream, state); - } - }; -}, 'python', 'stex'); - -/////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////// - -CodeMirror.defineMIME('text/x-rst', 'rst'); - -/////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////// - -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/ruby/index.html b/src/main/resources/static/editor.md-master/lib/codemirror/mode/ruby/index.html deleted file mode 100644 index 97544ba..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/ruby/index.html +++ /dev/null @@ -1,183 +0,0 @@ - - -CodeMirror: Ruby mode - - - - - - - - - - -
-

Ruby mode

-
- - -

MIME types defined: text/x-ruby.

- -

Development of the CodeMirror Ruby mode was kindly sponsored - by Ubalo.

- -
diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/ruby/ruby.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/ruby/ruby.js deleted file mode 100644 index eab9d9d..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/ruby/ruby.js +++ /dev/null @@ -1,285 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { -"use strict"; - -CodeMirror.defineMode("ruby", function(config) { - function wordObj(words) { - var o = {}; - for (var i = 0, e = words.length; i < e; ++i) o[words[i]] = true; - return o; - } - var keywords = wordObj([ - "alias", "and", "BEGIN", "begin", "break", "case", "class", "def", "defined?", "do", "else", - "elsif", "END", "end", "ensure", "false", "for", "if", "in", "module", "next", "not", "or", - "redo", "rescue", "retry", "return", "self", "super", "then", "true", "undef", "unless", - "until", "when", "while", "yield", "nil", "raise", "throw", "catch", "fail", "loop", "callcc", - "caller", "lambda", "proc", "public", "protected", "private", "require", "load", - "require_relative", "extend", "autoload", "__END__", "__FILE__", "__LINE__", "__dir__" - ]); - var indentWords = wordObj(["def", "class", "case", "for", "while", "module", "then", - "catch", "loop", "proc", "begin"]); - var dedentWords = wordObj(["end", "until"]); - var matching = {"[": "]", "{": "}", "(": ")"}; - var curPunc; - - function chain(newtok, stream, state) { - state.tokenize.push(newtok); - return newtok(stream, state); - } - - function tokenBase(stream, state) { - curPunc = null; - if (stream.sol() && stream.match("=begin") && stream.eol()) { - state.tokenize.push(readBlockComment); - return "comment"; - } - if (stream.eatSpace()) return null; - var ch = stream.next(), m; - if (ch == "`" || ch == "'" || ch == '"') { - return chain(readQuoted(ch, "string", ch == '"' || ch == "`"), stream, state); - } else if (ch == "/") { - var currentIndex = stream.current().length; - if (stream.skipTo("/")) { - var search_till = stream.current().length; - stream.backUp(stream.current().length - currentIndex); - var balance = 0; // balance brackets - while (stream.current().length < search_till) { - var chchr = stream.next(); - if (chchr == "(") balance += 1; - else if (chchr == ")") balance -= 1; - if (balance < 0) break; - } - stream.backUp(stream.current().length - currentIndex); - if (balance == 0) - return chain(readQuoted(ch, "string-2", true), stream, state); - } - return "operator"; - } else if (ch == "%") { - var style = "string", embed = true; - if (stream.eat("s")) style = "atom"; - else if (stream.eat(/[WQ]/)) style = "string"; - else if (stream.eat(/[r]/)) style = "string-2"; - else if (stream.eat(/[wxq]/)) { style = "string"; embed = false; } - var delim = stream.eat(/[^\w\s=]/); - if (!delim) return "operator"; - if (matching.propertyIsEnumerable(delim)) delim = matching[delim]; - return chain(readQuoted(delim, style, embed, true), stream, state); - } else if (ch == "#") { - stream.skipToEnd(); - return "comment"; - } else if (ch == "<" && (m = stream.match(/^<-?[\`\"\']?([a-zA-Z_?]\w*)[\`\"\']?(?:;|$)/))) { - return chain(readHereDoc(m[1]), stream, state); - } else if (ch == "0") { - if (stream.eat("x")) stream.eatWhile(/[\da-fA-F]/); - else if (stream.eat("b")) stream.eatWhile(/[01]/); - else stream.eatWhile(/[0-7]/); - return "number"; - } else if (/\d/.test(ch)) { - stream.match(/^[\d_]*(?:\.[\d_]+)?(?:[eE][+\-]?[\d_]+)?/); - return "number"; - } else if (ch == "?") { - while (stream.match(/^\\[CM]-/)) {} - if (stream.eat("\\")) stream.eatWhile(/\w/); - else stream.next(); - return "string"; - } else if (ch == ":") { - if (stream.eat("'")) return chain(readQuoted("'", "atom", false), stream, state); - if (stream.eat('"')) return chain(readQuoted('"', "atom", true), stream, state); - - // :> :>> :< :<< are valid symbols - if (stream.eat(/[\<\>]/)) { - stream.eat(/[\<\>]/); - return "atom"; - } - - // :+ :- :/ :* :| :& :! are valid symbols - if (stream.eat(/[\+\-\*\/\&\|\:\!]/)) { - return "atom"; - } - - // Symbols can't start by a digit - if (stream.eat(/[a-zA-Z$@_\xa1-\uffff]/)) { - stream.eatWhile(/[\w$\xa1-\uffff]/); - // Only one ? ! = is allowed and only as the last character - stream.eat(/[\?\!\=]/); - return "atom"; - } - return "operator"; - } else if (ch == "@" && stream.match(/^@?[a-zA-Z_\xa1-\uffff]/)) { - stream.eat("@"); - stream.eatWhile(/[\w\xa1-\uffff]/); - return "variable-2"; - } else if (ch == "$") { - if (stream.eat(/[a-zA-Z_]/)) { - stream.eatWhile(/[\w]/); - } else if (stream.eat(/\d/)) { - stream.eat(/\d/); - } else { - stream.next(); // Must be a special global like $: or $! - } - return "variable-3"; - } else if (/[a-zA-Z_\xa1-\uffff]/.test(ch)) { - stream.eatWhile(/[\w\xa1-\uffff]/); - stream.eat(/[\?\!]/); - if (stream.eat(":")) return "atom"; - return "ident"; - } else if (ch == "|" && (state.varList || state.lastTok == "{" || state.lastTok == "do")) { - curPunc = "|"; - return null; - } else if (/[\(\)\[\]{}\\;]/.test(ch)) { - curPunc = ch; - return null; - } else if (ch == "-" && stream.eat(">")) { - return "arrow"; - } else if (/[=+\-\/*:\.^%<>~|]/.test(ch)) { - var more = stream.eatWhile(/[=+\-\/*:\.^%<>~|]/); - if (ch == "." && !more) curPunc = "."; - return "operator"; - } else { - return null; - } - } - - function tokenBaseUntilBrace(depth) { - if (!depth) depth = 1; - return function(stream, state) { - if (stream.peek() == "}") { - if (depth == 1) { - state.tokenize.pop(); - return state.tokenize[state.tokenize.length-1](stream, state); - } else { - state.tokenize[state.tokenize.length - 1] = tokenBaseUntilBrace(depth - 1); - } - } else if (stream.peek() == "{") { - state.tokenize[state.tokenize.length - 1] = tokenBaseUntilBrace(depth + 1); - } - return tokenBase(stream, state); - }; - } - function tokenBaseOnce() { - var alreadyCalled = false; - return function(stream, state) { - if (alreadyCalled) { - state.tokenize.pop(); - return state.tokenize[state.tokenize.length-1](stream, state); - } - alreadyCalled = true; - return tokenBase(stream, state); - }; - } - function readQuoted(quote, style, embed, unescaped) { - return function(stream, state) { - var escaped = false, ch; - - if (state.context.type === 'read-quoted-paused') { - state.context = state.context.prev; - stream.eat("}"); - } - - while ((ch = stream.next()) != null) { - if (ch == quote && (unescaped || !escaped)) { - state.tokenize.pop(); - break; - } - if (embed && ch == "#" && !escaped) { - if (stream.eat("{")) { - if (quote == "}") { - state.context = {prev: state.context, type: 'read-quoted-paused'}; - } - state.tokenize.push(tokenBaseUntilBrace()); - break; - } else if (/[@\$]/.test(stream.peek())) { - state.tokenize.push(tokenBaseOnce()); - break; - } - } - escaped = !escaped && ch == "\\"; - } - return style; - }; - } - function readHereDoc(phrase) { - return function(stream, state) { - if (stream.match(phrase)) state.tokenize.pop(); - else stream.skipToEnd(); - return "string"; - }; - } - function readBlockComment(stream, state) { - if (stream.sol() && stream.match("=end") && stream.eol()) - state.tokenize.pop(); - stream.skipToEnd(); - return "comment"; - } - - return { - startState: function() { - return {tokenize: [tokenBase], - indented: 0, - context: {type: "top", indented: -config.indentUnit}, - continuedLine: false, - lastTok: null, - varList: false}; - }, - - token: function(stream, state) { - if (stream.sol()) state.indented = stream.indentation(); - var style = state.tokenize[state.tokenize.length-1](stream, state), kwtype; - var thisTok = curPunc; - if (style == "ident") { - var word = stream.current(); - style = state.lastTok == "." ? "property" - : keywords.propertyIsEnumerable(stream.current()) ? "keyword" - : /^[A-Z]/.test(word) ? "tag" - : (state.lastTok == "def" || state.lastTok == "class" || state.varList) ? "def" - : "variable"; - if (style == "keyword") { - thisTok = word; - if (indentWords.propertyIsEnumerable(word)) kwtype = "indent"; - else if (dedentWords.propertyIsEnumerable(word)) kwtype = "dedent"; - else if ((word == "if" || word == "unless") && stream.column() == stream.indentation()) - kwtype = "indent"; - else if (word == "do" && state.context.indented < state.indented) - kwtype = "indent"; - } - } - if (curPunc || (style && style != "comment")) state.lastTok = thisTok; - if (curPunc == "|") state.varList = !state.varList; - - if (kwtype == "indent" || /[\(\[\{]/.test(curPunc)) - state.context = {prev: state.context, type: curPunc || style, indented: state.indented}; - else if ((kwtype == "dedent" || /[\)\]\}]/.test(curPunc)) && state.context.prev) - state.context = state.context.prev; - - if (stream.eol()) - state.continuedLine = (curPunc == "\\" || style == "operator"); - return style; - }, - - indent: function(state, textAfter) { - if (state.tokenize[state.tokenize.length-1] != tokenBase) return 0; - var firstChar = textAfter && textAfter.charAt(0); - var ct = state.context; - var closing = ct.type == matching[firstChar] || - ct.type == "keyword" && /^(?:end|until|else|elsif|when|rescue)\b/.test(textAfter); - return ct.indented + (closing ? 0 : config.indentUnit) + - (state.continuedLine ? config.indentUnit : 0); - }, - - electricChars: "}de", // enD and rescuE - lineComment: "#" - }; -}); - -CodeMirror.defineMIME("text/x-ruby", "ruby"); - -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/ruby/test.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/ruby/test.js deleted file mode 100644 index cade864..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/ruby/test.js +++ /dev/null @@ -1,14 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function() { - var mode = CodeMirror.getMode({indentUnit: 2}, "ruby"); - function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); } - - MT("divide_equal_operator", - "[variable bar] [operator /=] [variable foo]"); - - MT("divide_equal_operator_no_spacing", - "[variable foo][operator /=][number 42]"); - -})(); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/rust/index.html b/src/main/resources/static/editor.md-master/lib/codemirror/mode/rust/index.html deleted file mode 100644 index 407e84f..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/rust/index.html +++ /dev/null @@ -1,60 +0,0 @@ - - -CodeMirror: Rust mode - - - - - - - - - -
-

Rust mode

- - -
- - - -

MIME types defined: text/x-rustsrc.

-
diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/rust/rust.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/rust/rust.js deleted file mode 100644 index 2bffa9a..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/rust/rust.js +++ /dev/null @@ -1,451 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { -"use strict"; - -CodeMirror.defineMode("rust", function() { - var indentUnit = 4, altIndentUnit = 2; - var valKeywords = { - "if": "if-style", "while": "if-style", "loop": "else-style", "else": "else-style", - "do": "else-style", "ret": "else-style", "fail": "else-style", - "break": "atom", "cont": "atom", "const": "let", "resource": "fn", - "let": "let", "fn": "fn", "for": "for", "alt": "alt", "iface": "iface", - "impl": "impl", "type": "type", "enum": "enum", "mod": "mod", - "as": "op", "true": "atom", "false": "atom", "assert": "op", "check": "op", - "claim": "op", "native": "ignore", "unsafe": "ignore", "import": "else-style", - "export": "else-style", "copy": "op", "log": "op", "log_err": "op", - "use": "op", "bind": "op", "self": "atom", "struct": "enum" - }; - var typeKeywords = function() { - var keywords = {"fn": "fn", "block": "fn", "obj": "obj"}; - var atoms = "bool uint int i8 i16 i32 i64 u8 u16 u32 u64 float f32 f64 str char".split(" "); - for (var i = 0, e = atoms.length; i < e; ++i) keywords[atoms[i]] = "atom"; - return keywords; - }(); - var operatorChar = /[+\-*&%=<>!?|\.@]/; - - // Tokenizer - - // Used as scratch variable to communicate multiple values without - // consing up tons of objects. - var tcat, content; - function r(tc, style) { - tcat = tc; - return style; - } - - function tokenBase(stream, state) { - var ch = stream.next(); - if (ch == '"') { - state.tokenize = tokenString; - return state.tokenize(stream, state); - } - if (ch == "'") { - tcat = "atom"; - if (stream.eat("\\")) { - if (stream.skipTo("'")) { stream.next(); return "string"; } - else { return "error"; } - } else { - stream.next(); - return stream.eat("'") ? "string" : "error"; - } - } - if (ch == "/") { - if (stream.eat("/")) { stream.skipToEnd(); return "comment"; } - if (stream.eat("*")) { - state.tokenize = tokenComment(1); - return state.tokenize(stream, state); - } - } - if (ch == "#") { - if (stream.eat("[")) { tcat = "open-attr"; return null; } - stream.eatWhile(/\w/); - return r("macro", "meta"); - } - if (ch == ":" && stream.match(":<")) { - return r("op", null); - } - if (ch.match(/\d/) || (ch == "." && stream.eat(/\d/))) { - var flp = false; - if (!stream.match(/^x[\da-f]+/i) && !stream.match(/^b[01]+/)) { - stream.eatWhile(/\d/); - if (stream.eat(".")) { flp = true; stream.eatWhile(/\d/); } - if (stream.match(/^e[+\-]?\d+/i)) { flp = true; } - } - if (flp) stream.match(/^f(?:32|64)/); - else stream.match(/^[ui](?:8|16|32|64)/); - return r("atom", "number"); - } - if (ch.match(/[()\[\]{}:;,]/)) return r(ch, null); - if (ch == "-" && stream.eat(">")) return r("->", null); - if (ch.match(operatorChar)) { - stream.eatWhile(operatorChar); - return r("op", null); - } - stream.eatWhile(/\w/); - content = stream.current(); - if (stream.match(/^::\w/)) { - stream.backUp(1); - return r("prefix", "variable-2"); - } - if (state.keywords.propertyIsEnumerable(content)) - return r(state.keywords[content], content.match(/true|false/) ? "atom" : "keyword"); - return r("name", "variable"); - } - - function tokenString(stream, state) { - var ch, escaped = false; - while (ch = stream.next()) { - if (ch == '"' && !escaped) { - state.tokenize = tokenBase; - return r("atom", "string"); - } - escaped = !escaped && ch == "\\"; - } - // Hack to not confuse the parser when a string is split in - // pieces. - return r("op", "string"); - } - - function tokenComment(depth) { - return function(stream, state) { - var lastCh = null, ch; - while (ch = stream.next()) { - if (ch == "/" && lastCh == "*") { - if (depth == 1) { - state.tokenize = tokenBase; - break; - } else { - state.tokenize = tokenComment(depth - 1); - return state.tokenize(stream, state); - } - } - if (ch == "*" && lastCh == "/") { - state.tokenize = tokenComment(depth + 1); - return state.tokenize(stream, state); - } - lastCh = ch; - } - return "comment"; - }; - } - - // Parser - - var cx = {state: null, stream: null, marked: null, cc: null}; - function pass() { - for (var i = arguments.length - 1; i >= 0; i--) cx.cc.push(arguments[i]); - } - function cont() { - pass.apply(null, arguments); - return true; - } - - function pushlex(type, info) { - var result = function() { - var state = cx.state; - state.lexical = {indented: state.indented, column: cx.stream.column(), - type: type, prev: state.lexical, info: info}; - }; - result.lex = true; - return result; - } - function poplex() { - var state = cx.state; - if (state.lexical.prev) { - if (state.lexical.type == ")") - state.indented = state.lexical.indented; - state.lexical = state.lexical.prev; - } - } - function typecx() { cx.state.keywords = typeKeywords; } - function valcx() { cx.state.keywords = valKeywords; } - poplex.lex = typecx.lex = valcx.lex = true; - - function commasep(comb, end) { - function more(type) { - if (type == ",") return cont(comb, more); - if (type == end) return cont(); - return cont(more); - } - return function(type) { - if (type == end) return cont(); - return pass(comb, more); - }; - } - - function stat_of(comb, tag) { - return cont(pushlex("stat", tag), comb, poplex, block); - } - function block(type) { - if (type == "}") return cont(); - if (type == "let") return stat_of(letdef1, "let"); - if (type == "fn") return stat_of(fndef); - if (type == "type") return cont(pushlex("stat"), tydef, endstatement, poplex, block); - if (type == "enum") return stat_of(enumdef); - if (type == "mod") return stat_of(mod); - if (type == "iface") return stat_of(iface); - if (type == "impl") return stat_of(impl); - if (type == "open-attr") return cont(pushlex("]"), commasep(expression, "]"), poplex); - if (type == "ignore" || type.match(/[\]\);,]/)) return cont(block); - return pass(pushlex("stat"), expression, poplex, endstatement, block); - } - function endstatement(type) { - if (type == ";") return cont(); - return pass(); - } - function expression(type) { - if (type == "atom" || type == "name") return cont(maybeop); - if (type == "{") return cont(pushlex("}"), exprbrace, poplex); - if (type.match(/[\[\(]/)) return matchBrackets(type, expression); - if (type.match(/[\]\)\};,]/)) return pass(); - if (type == "if-style") return cont(expression, expression); - if (type == "else-style" || type == "op") return cont(expression); - if (type == "for") return cont(pattern, maybetype, inop, expression, expression); - if (type == "alt") return cont(expression, altbody); - if (type == "fn") return cont(fndef); - if (type == "macro") return cont(macro); - return cont(); - } - function maybeop(type) { - if (content == ".") return cont(maybeprop); - if (content == "::<"){return cont(typarams, maybeop);} - if (type == "op" || content == ":") return cont(expression); - if (type == "(" || type == "[") return matchBrackets(type, expression); - return pass(); - } - function maybeprop() { - if (content.match(/^\w+$/)) {cx.marked = "variable"; return cont(maybeop);} - return pass(expression); - } - function exprbrace(type) { - if (type == "op") { - if (content == "|") return cont(blockvars, poplex, pushlex("}", "block"), block); - if (content == "||") return cont(poplex, pushlex("}", "block"), block); - } - if (content == "mutable" || (content.match(/^\w+$/) && cx.stream.peek() == ":" - && !cx.stream.match("::", false))) - return pass(record_of(expression)); - return pass(block); - } - function record_of(comb) { - function ro(type) { - if (content == "mutable" || content == "with") {cx.marked = "keyword"; return cont(ro);} - if (content.match(/^\w*$/)) {cx.marked = "variable"; return cont(ro);} - if (type == ":") return cont(comb, ro); - if (type == "}") return cont(); - return cont(ro); - } - return ro; - } - function blockvars(type) { - if (type == "name") {cx.marked = "def"; return cont(blockvars);} - if (type == "op" && content == "|") return cont(); - return cont(blockvars); - } - - function letdef1(type) { - if (type.match(/[\]\)\};]/)) return cont(); - if (content == "=") return cont(expression, letdef2); - if (type == ",") return cont(letdef1); - return pass(pattern, maybetype, letdef1); - } - function letdef2(type) { - if (type.match(/[\]\)\};,]/)) return pass(letdef1); - else return pass(expression, letdef2); - } - function maybetype(type) { - if (type == ":") return cont(typecx, rtype, valcx); - return pass(); - } - function inop(type) { - if (type == "name" && content == "in") {cx.marked = "keyword"; return cont();} - return pass(); - } - function fndef(type) { - if (content == "@" || content == "~") {cx.marked = "keyword"; return cont(fndef);} - if (type == "name") {cx.marked = "def"; return cont(fndef);} - if (content == "<") return cont(typarams, fndef); - if (type == "{") return pass(expression); - if (type == "(") return cont(pushlex(")"), commasep(argdef, ")"), poplex, fndef); - if (type == "->") return cont(typecx, rtype, valcx, fndef); - if (type == ";") return cont(); - return cont(fndef); - } - function tydef(type) { - if (type == "name") {cx.marked = "def"; return cont(tydef);} - if (content == "<") return cont(typarams, tydef); - if (content == "=") return cont(typecx, rtype, valcx); - return cont(tydef); - } - function enumdef(type) { - if (type == "name") {cx.marked = "def"; return cont(enumdef);} - if (content == "<") return cont(typarams, enumdef); - if (content == "=") return cont(typecx, rtype, valcx, endstatement); - if (type == "{") return cont(pushlex("}"), typecx, enumblock, valcx, poplex); - return cont(enumdef); - } - function enumblock(type) { - if (type == "}") return cont(); - if (type == "(") return cont(pushlex(")"), commasep(rtype, ")"), poplex, enumblock); - if (content.match(/^\w+$/)) cx.marked = "def"; - return cont(enumblock); - } - function mod(type) { - if (type == "name") {cx.marked = "def"; return cont(mod);} - if (type == "{") return cont(pushlex("}"), block, poplex); - return pass(); - } - function iface(type) { - if (type == "name") {cx.marked = "def"; return cont(iface);} - if (content == "<") return cont(typarams, iface); - if (type == "{") return cont(pushlex("}"), block, poplex); - return pass(); - } - function impl(type) { - if (content == "<") return cont(typarams, impl); - if (content == "of" || content == "for") {cx.marked = "keyword"; return cont(rtype, impl);} - if (type == "name") {cx.marked = "def"; return cont(impl);} - if (type == "{") return cont(pushlex("}"), block, poplex); - return pass(); - } - function typarams() { - if (content == ">") return cont(); - if (content == ",") return cont(typarams); - if (content == ":") return cont(rtype, typarams); - return pass(rtype, typarams); - } - function argdef(type) { - if (type == "name") {cx.marked = "def"; return cont(argdef);} - if (type == ":") return cont(typecx, rtype, valcx); - return pass(); - } - function rtype(type) { - if (type == "name") {cx.marked = "variable-3"; return cont(rtypemaybeparam); } - if (content == "mutable") {cx.marked = "keyword"; return cont(rtype);} - if (type == "atom") return cont(rtypemaybeparam); - if (type == "op" || type == "obj") return cont(rtype); - if (type == "fn") return cont(fntype); - if (type == "{") return cont(pushlex("{"), record_of(rtype), poplex); - return matchBrackets(type, rtype); - } - function rtypemaybeparam() { - if (content == "<") return cont(typarams); - return pass(); - } - function fntype(type) { - if (type == "(") return cont(pushlex("("), commasep(rtype, ")"), poplex, fntype); - if (type == "->") return cont(rtype); - return pass(); - } - function pattern(type) { - if (type == "name") {cx.marked = "def"; return cont(patternmaybeop);} - if (type == "atom") return cont(patternmaybeop); - if (type == "op") return cont(pattern); - if (type.match(/[\]\)\};,]/)) return pass(); - return matchBrackets(type, pattern); - } - function patternmaybeop(type) { - if (type == "op" && content == ".") return cont(); - if (content == "to") {cx.marked = "keyword"; return cont(pattern);} - else return pass(); - } - function altbody(type) { - if (type == "{") return cont(pushlex("}", "alt"), altblock1, poplex); - return pass(); - } - function altblock1(type) { - if (type == "}") return cont(); - if (type == "|") return cont(altblock1); - if (content == "when") {cx.marked = "keyword"; return cont(expression, altblock2);} - if (type.match(/[\]\);,]/)) return cont(altblock1); - return pass(pattern, altblock2); - } - function altblock2(type) { - if (type == "{") return cont(pushlex("}", "alt"), block, poplex, altblock1); - else return pass(altblock1); - } - - function macro(type) { - if (type.match(/[\[\(\{]/)) return matchBrackets(type, expression); - return pass(); - } - function matchBrackets(type, comb) { - if (type == "[") return cont(pushlex("]"), commasep(comb, "]"), poplex); - if (type == "(") return cont(pushlex(")"), commasep(comb, ")"), poplex); - if (type == "{") return cont(pushlex("}"), commasep(comb, "}"), poplex); - return cont(); - } - - function parse(state, stream, style) { - var cc = state.cc; - // Communicate our context to the combinators. - // (Less wasteful than consing up a hundred closures on every call.) - cx.state = state; cx.stream = stream; cx.marked = null, cx.cc = cc; - - while (true) { - var combinator = cc.length ? cc.pop() : block; - if (combinator(tcat)) { - while(cc.length && cc[cc.length - 1].lex) - cc.pop()(); - return cx.marked || style; - } - } - } - - return { - startState: function() { - return { - tokenize: tokenBase, - cc: [], - lexical: {indented: -indentUnit, column: 0, type: "top", align: false}, - keywords: valKeywords, - indented: 0 - }; - }, - - token: function(stream, state) { - if (stream.sol()) { - if (!state.lexical.hasOwnProperty("align")) - state.lexical.align = false; - state.indented = stream.indentation(); - } - if (stream.eatSpace()) return null; - tcat = content = null; - var style = state.tokenize(stream, state); - if (style == "comment") return style; - if (!state.lexical.hasOwnProperty("align")) - state.lexical.align = true; - if (tcat == "prefix") return style; - if (!content) content = stream.current(); - return parse(state, stream, style); - }, - - indent: function(state, textAfter) { - if (state.tokenize != tokenBase) return 0; - var firstChar = textAfter && textAfter.charAt(0), lexical = state.lexical, - type = lexical.type, closing = firstChar == type; - if (type == "stat") return lexical.indented + indentUnit; - if (lexical.align) return lexical.column + (closing ? 0 : 1); - return lexical.indented + (closing ? 0 : (lexical.info == "alt" ? altIndentUnit : indentUnit)); - }, - - electricChars: "{}", - blockCommentStart: "/*", - blockCommentEnd: "*/", - lineComment: "//", - fold: "brace" - }; -}); - -CodeMirror.defineMIME("text/x-rustsrc", "rust"); - -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/sass/index.html b/src/main/resources/static/editor.md-master/lib/codemirror/mode/sass/index.html deleted file mode 100644 index 9f4a790..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/sass/index.html +++ /dev/null @@ -1,66 +0,0 @@ - - -CodeMirror: Sass mode - - - - - - - - - - -
-

Sass mode

-
- - -

MIME types defined: text/x-sass.

-
diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/sass/sass.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/sass/sass.js deleted file mode 100644 index 52a6682..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/sass/sass.js +++ /dev/null @@ -1,414 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { -"use strict"; - -CodeMirror.defineMode("sass", function(config) { - function tokenRegexp(words) { - return new RegExp("^" + words.join("|")); - } - - var keywords = ["true", "false", "null", "auto"]; - var keywordsRegexp = new RegExp("^" + keywords.join("|")); - - var operators = ["\\(", "\\)", "=", ">", "<", "==", ">=", "<=", "\\+", "-", - "\\!=", "/", "\\*", "%", "and", "or", "not", ";","\\{","\\}",":"]; - var opRegexp = tokenRegexp(operators); - - var pseudoElementsRegexp = /^::?[a-zA-Z_][\w\-]*/; - - function urlTokens(stream, state) { - var ch = stream.peek(); - - if (ch === ")") { - stream.next(); - state.tokenizer = tokenBase; - return "operator"; - } else if (ch === "(") { - stream.next(); - stream.eatSpace(); - - return "operator"; - } else if (ch === "'" || ch === '"') { - state.tokenizer = buildStringTokenizer(stream.next()); - return "string"; - } else { - state.tokenizer = buildStringTokenizer(")", false); - return "string"; - } - } - function comment(indentation, multiLine) { - return function(stream, state) { - if (stream.sol() && stream.indentation() <= indentation) { - state.tokenizer = tokenBase; - return tokenBase(stream, state); - } - - if (multiLine && stream.skipTo("*/")) { - stream.next(); - stream.next(); - state.tokenizer = tokenBase; - } else { - stream.skipToEnd(); - } - - return "comment"; - }; - } - - function buildStringTokenizer(quote, greedy) { - if (greedy == null) { greedy = true; } - - function stringTokenizer(stream, state) { - var nextChar = stream.next(); - var peekChar = stream.peek(); - var previousChar = stream.string.charAt(stream.pos-2); - - var endingString = ((nextChar !== "\\" && peekChar === quote) || (nextChar === quote && previousChar !== "\\")); - - if (endingString) { - if (nextChar !== quote && greedy) { stream.next(); } - state.tokenizer = tokenBase; - return "string"; - } else if (nextChar === "#" && peekChar === "{") { - state.tokenizer = buildInterpolationTokenizer(stringTokenizer); - stream.next(); - return "operator"; - } else { - return "string"; - } - } - - return stringTokenizer; - } - - function buildInterpolationTokenizer(currentTokenizer) { - return function(stream, state) { - if (stream.peek() === "}") { - stream.next(); - state.tokenizer = currentTokenizer; - return "operator"; - } else { - return tokenBase(stream, state); - } - }; - } - - function indent(state) { - if (state.indentCount == 0) { - state.indentCount++; - var lastScopeOffset = state.scopes[0].offset; - var currentOffset = lastScopeOffset + config.indentUnit; - state.scopes.unshift({ offset:currentOffset }); - } - } - - function dedent(state) { - if (state.scopes.length == 1) return; - - state.scopes.shift(); - } - - function tokenBase(stream, state) { - var ch = stream.peek(); - - // Comment - if (stream.match("/*")) { - state.tokenizer = comment(stream.indentation(), true); - return state.tokenizer(stream, state); - } - if (stream.match("//")) { - state.tokenizer = comment(stream.indentation(), false); - return state.tokenizer(stream, state); - } - - // Interpolation - if (stream.match("#{")) { - state.tokenizer = buildInterpolationTokenizer(tokenBase); - return "operator"; - } - - // Strings - if (ch === '"' || ch === "'") { - stream.next(); - state.tokenizer = buildStringTokenizer(ch); - return "string"; - } - - if(!state.cursorHalf){// state.cursorHalf === 0 - // first half i.e. before : for key-value pairs - // including selectors - - if (ch === ".") { - stream.next(); - if (stream.match(/^[\w-]+/)) { - indent(state); - return "atom"; - } else if (stream.peek() === "#") { - indent(state); - return "atom"; - } - } - - if (ch === "#") { - stream.next(); - // ID selectors - if (stream.match(/^[\w-]+/)) { - indent(state); - return "atom"; - } - if (stream.peek() === "#") { - indent(state); - return "atom"; - } - } - - // Variables - if (ch === "$") { - stream.next(); - stream.eatWhile(/[\w-]/); - return "variable-2"; - } - - // Numbers - if (stream.match(/^-?[0-9\.]+/)) - return "number"; - - // Units - if (stream.match(/^(px|em|in)\b/)) - return "unit"; - - if (stream.match(keywordsRegexp)) - return "keyword"; - - if (stream.match(/^url/) && stream.peek() === "(") { - state.tokenizer = urlTokens; - return "atom"; - } - - if (ch === "=") { - // Match shortcut mixin definition - if (stream.match(/^=[\w-]+/)) { - indent(state); - return "meta"; - } - } - - if (ch === "+") { - // Match shortcut mixin definition - if (stream.match(/^\+[\w-]+/)){ - return "variable-3"; - } - } - - if(ch === "@"){ - if(stream.match(/@extend/)){ - if(!stream.match(/\s*[\w]/)) - dedent(state); - } - } - - - // Indent Directives - if (stream.match(/^@(else if|if|media|else|for|each|while|mixin|function)/)) { - indent(state); - return "meta"; - } - - // Other Directives - if (ch === "@") { - stream.next(); - stream.eatWhile(/[\w-]/); - return "meta"; - } - - if (stream.eatWhile(/[\w-]/)){ - if(stream.match(/ *: *[\w-\+\$#!\("']/,false)){ - return "propery"; - } - else if(stream.match(/ *:/,false)){ - indent(state); - state.cursorHalf = 1; - return "atom"; - } - else if(stream.match(/ *,/,false)){ - return "atom"; - } - else{ - indent(state); - return "atom"; - } - } - - if(ch === ":"){ - if (stream.match(pseudoElementsRegexp)){ // could be a pseudo-element - return "keyword"; - } - stream.next(); - state.cursorHalf=1; - return "operator"; - } - - } // cursorHalf===0 ends here - else{ - - if (ch === "#") { - stream.next(); - // Hex numbers - if (stream.match(/[0-9a-fA-F]{6}|[0-9a-fA-F]{3}/)){ - if(!stream.peek()){ - state.cursorHalf = 0; - } - return "number"; - } - } - - // Numbers - if (stream.match(/^-?[0-9\.]+/)){ - if(!stream.peek()){ - state.cursorHalf = 0; - } - return "number"; - } - - // Units - if (stream.match(/^(px|em|in)\b/)){ - if(!stream.peek()){ - state.cursorHalf = 0; - } - return "unit"; - } - - if (stream.match(keywordsRegexp)){ - if(!stream.peek()){ - state.cursorHalf = 0; - } - return "keyword"; - } - - if (stream.match(/^url/) && stream.peek() === "(") { - state.tokenizer = urlTokens; - if(!stream.peek()){ - state.cursorHalf = 0; - } - return "atom"; - } - - // Variables - if (ch === "$") { - stream.next(); - stream.eatWhile(/[\w-]/); - if(!stream.peek()){ - state.cursorHalf = 0; - } - return "variable-3"; - } - - // bang character for !important, !default, etc. - if (ch === "!") { - stream.next(); - if(!stream.peek()){ - state.cursorHalf = 0; - } - return stream.match(/^[\w]+/) ? "keyword": "operator"; - } - - if (stream.match(opRegexp)){ - if(!stream.peek()){ - state.cursorHalf = 0; - } - return "operator"; - } - - // attributes - if (stream.eatWhile(/[\w-]/)) { - if(!stream.peek()){ - state.cursorHalf = 0; - } - return "attribute"; - } - - //stream.eatSpace(); - if(!stream.peek()){ - state.cursorHalf = 0; - return null; - } - - } // else ends here - - if (stream.match(opRegexp)) - return "operator"; - - // If we haven't returned by now, we move 1 character - // and return an error - stream.next(); - return null; - } - - function tokenLexer(stream, state) { - if (stream.sol()) state.indentCount = 0; - var style = state.tokenizer(stream, state); - var current = stream.current(); - - if (current === "@return" || current === "}"){ - dedent(state); - } - - if (style !== null) { - var startOfToken = stream.pos - current.length; - - var withCurrentIndent = startOfToken + (config.indentUnit * state.indentCount); - - var newScopes = []; - - for (var i = 0; i < state.scopes.length; i++) { - var scope = state.scopes[i]; - - if (scope.offset <= withCurrentIndent) - newScopes.push(scope); - } - - state.scopes = newScopes; - } - - - return style; - } - - return { - startState: function() { - return { - tokenizer: tokenBase, - scopes: [{offset: 0, type: "sass"}], - indentCount: 0, - cursorHalf: 0, // cursor half tells us if cursor lies after (1) - // or before (0) colon (well... more or less) - definedVars: [], - definedMixins: [] - }; - }, - token: function(stream, state) { - var style = tokenLexer(stream, state); - - state.lastToken = { style: style, content: stream.current() }; - - return style; - }, - - indent: function(state) { - return state.scopes[0].offset; - } - }; -}); - -CodeMirror.defineMIME("text/x-sass", "sass"); - -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/scheme/index.html b/src/main/resources/static/editor.md-master/lib/codemirror/mode/scheme/index.html deleted file mode 100644 index 04d5c6a..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/scheme/index.html +++ /dev/null @@ -1,77 +0,0 @@ - - -CodeMirror: Scheme mode - - - - - - - - - -
-

Scheme mode

-
- - -

MIME types defined: text/x-scheme.

- -
diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/scheme/scheme.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/scheme/scheme.js deleted file mode 100644 index 979edc0..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/scheme/scheme.js +++ /dev/null @@ -1,248 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -/** - * Author: Koh Zi Han, based on implementation by Koh Zi Chun - */ - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { -"use strict"; - -CodeMirror.defineMode("scheme", function () { - var BUILTIN = "builtin", COMMENT = "comment", STRING = "string", - ATOM = "atom", NUMBER = "number", BRACKET = "bracket"; - var INDENT_WORD_SKIP = 2; - - function makeKeywords(str) { - var obj = {}, words = str.split(" "); - for (var i = 0; i < words.length; ++i) obj[words[i]] = true; - return obj; - } - - var keywords = makeKeywords("λ case-lambda call/cc class define-class exit-handler field import inherit init-field interface let*-values let-values let/ec mixin opt-lambda override protect provide public rename require require-for-syntax syntax syntax-case syntax-error unit/sig unless when with-syntax and begin call-with-current-continuation call-with-input-file call-with-output-file case cond define define-syntax delay do dynamic-wind else for-each if lambda let let* let-syntax letrec letrec-syntax map or syntax-rules abs acos angle append apply asin assoc assq assv atan boolean? caar cadr call-with-input-file call-with-output-file call-with-values car cdddar cddddr cdr ceiling char->integer char-alphabetic? char-ci<=? char-ci=? char-ci>? char-downcase char-lower-case? char-numeric? char-ready? char-upcase char-upper-case? char-whitespace? char<=? char=? char>? char? close-input-port close-output-port complex? cons cos current-input-port current-output-port denominator display eof-object? eq? equal? eqv? eval even? exact->inexact exact? exp expt #f floor force gcd imag-part inexact->exact inexact? input-port? integer->char integer? interaction-environment lcm length list list->string list->vector list-ref list-tail list? load log magnitude make-polar make-rectangular make-string make-vector max member memq memv min modulo negative? newline not null-environment null? number->string number? numerator odd? open-input-file open-output-file output-port? pair? peek-char port? positive? procedure? quasiquote quote quotient rational? rationalize read read-char real-part real? remainder reverse round scheme-report-environment set! set-car! set-cdr! sin sqrt string string->list string->number string->symbol string-append string-ci<=? string-ci=? string-ci>? string-copy string-fill! string-length string-ref string-set! string<=? string=? string>? string? substring symbol->string symbol? #t tan transcript-off transcript-on truncate values vector vector->list vector-fill! vector-length vector-ref vector-set! with-input-from-file with-output-to-file write write-char zero?"); - var indentKeys = makeKeywords("define let letrec let* lambda"); - - function stateStack(indent, type, prev) { // represents a state stack object - this.indent = indent; - this.type = type; - this.prev = prev; - } - - function pushStack(state, indent, type) { - state.indentStack = new stateStack(indent, type, state.indentStack); - } - - function popStack(state) { - state.indentStack = state.indentStack.prev; - } - - var binaryMatcher = new RegExp(/^(?:[-+]i|[-+][01]+#*(?:\/[01]+#*)?i|[-+]?[01]+#*(?:\/[01]+#*)?@[-+]?[01]+#*(?:\/[01]+#*)?|[-+]?[01]+#*(?:\/[01]+#*)?[-+](?:[01]+#*(?:\/[01]+#*)?)?i|[-+]?[01]+#*(?:\/[01]+#*)?)(?=[()\s;"]|$)/i); - var octalMatcher = new RegExp(/^(?:[-+]i|[-+][0-7]+#*(?:\/[0-7]+#*)?i|[-+]?[0-7]+#*(?:\/[0-7]+#*)?@[-+]?[0-7]+#*(?:\/[0-7]+#*)?|[-+]?[0-7]+#*(?:\/[0-7]+#*)?[-+](?:[0-7]+#*(?:\/[0-7]+#*)?)?i|[-+]?[0-7]+#*(?:\/[0-7]+#*)?)(?=[()\s;"]|$)/i); - var hexMatcher = new RegExp(/^(?:[-+]i|[-+][\da-f]+#*(?:\/[\da-f]+#*)?i|[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?@[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?|[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?[-+](?:[\da-f]+#*(?:\/[\da-f]+#*)?)?i|[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?)(?=[()\s;"]|$)/i); - var decimalMatcher = new RegExp(/^(?:[-+]i|[-+](?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)i|[-+]?(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)@[-+]?(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)|[-+]?(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)[-+](?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)?i|(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*))(?=[()\s;"]|$)/i); - - function isBinaryNumber (stream) { - return stream.match(binaryMatcher); - } - - function isOctalNumber (stream) { - return stream.match(octalMatcher); - } - - function isDecimalNumber (stream, backup) { - if (backup === true) { - stream.backUp(1); - } - return stream.match(decimalMatcher); - } - - function isHexNumber (stream) { - return stream.match(hexMatcher); - } - - return { - startState: function () { - return { - indentStack: null, - indentation: 0, - mode: false, - sExprComment: false - }; - }, - - token: function (stream, state) { - if (state.indentStack == null && stream.sol()) { - // update indentation, but only if indentStack is empty - state.indentation = stream.indentation(); - } - - // skip spaces - if (stream.eatSpace()) { - return null; - } - var returnType = null; - - switch(state.mode){ - case "string": // multi-line string parsing mode - var next, escaped = false; - while ((next = stream.next()) != null) { - if (next == "\"" && !escaped) { - - state.mode = false; - break; - } - escaped = !escaped && next == "\\"; - } - returnType = STRING; // continue on in scheme-string mode - break; - case "comment": // comment parsing mode - var next, maybeEnd = false; - while ((next = stream.next()) != null) { - if (next == "#" && maybeEnd) { - - state.mode = false; - break; - } - maybeEnd = (next == "|"); - } - returnType = COMMENT; - break; - case "s-expr-comment": // s-expr commenting mode - state.mode = false; - if(stream.peek() == "(" || stream.peek() == "["){ - // actually start scheme s-expr commenting mode - state.sExprComment = 0; - }else{ - // if not we just comment the entire of the next token - stream.eatWhile(/[^/s]/); // eat non spaces - returnType = COMMENT; - break; - } - default: // default parsing mode - var ch = stream.next(); - - if (ch == "\"") { - state.mode = "string"; - returnType = STRING; - - } else if (ch == "'") { - returnType = ATOM; - } else if (ch == '#') { - if (stream.eat("|")) { // Multi-line comment - state.mode = "comment"; // toggle to comment mode - returnType = COMMENT; - } else if (stream.eat(/[tf]/i)) { // #t/#f (atom) - returnType = ATOM; - } else if (stream.eat(';')) { // S-Expr comment - state.mode = "s-expr-comment"; - returnType = COMMENT; - } else { - var numTest = null, hasExactness = false, hasRadix = true; - if (stream.eat(/[ei]/i)) { - hasExactness = true; - } else { - stream.backUp(1); // must be radix specifier - } - if (stream.match(/^#b/i)) { - numTest = isBinaryNumber; - } else if (stream.match(/^#o/i)) { - numTest = isOctalNumber; - } else if (stream.match(/^#x/i)) { - numTest = isHexNumber; - } else if (stream.match(/^#d/i)) { - numTest = isDecimalNumber; - } else if (stream.match(/^[-+0-9.]/, false)) { - hasRadix = false; - numTest = isDecimalNumber; - // re-consume the intial # if all matches failed - } else if (!hasExactness) { - stream.eat('#'); - } - if (numTest != null) { - if (hasRadix && !hasExactness) { - // consume optional exactness after radix - stream.match(/^#[ei]/i); - } - if (numTest(stream)) - returnType = NUMBER; - } - } - } else if (/^[-+0-9.]/.test(ch) && isDecimalNumber(stream, true)) { // match non-prefixed number, must be decimal - returnType = NUMBER; - } else if (ch == ";") { // comment - stream.skipToEnd(); // rest of the line is a comment - returnType = COMMENT; - } else if (ch == "(" || ch == "[") { - var keyWord = ''; var indentTemp = stream.column(), letter; - /** - Either - (indent-word .. - (non-indent-word .. - (;something else, bracket, etc. - */ - - while ((letter = stream.eat(/[^\s\(\[\;\)\]]/)) != null) { - keyWord += letter; - } - - if (keyWord.length > 0 && indentKeys.propertyIsEnumerable(keyWord)) { // indent-word - - pushStack(state, indentTemp + INDENT_WORD_SKIP, ch); - } else { // non-indent word - // we continue eating the spaces - stream.eatSpace(); - if (stream.eol() || stream.peek() == ";") { - // nothing significant after - // we restart indentation 1 space after - pushStack(state, indentTemp + 1, ch); - } else { - pushStack(state, indentTemp + stream.current().length, ch); // else we match - } - } - stream.backUp(stream.current().length - 1); // undo all the eating - - if(typeof state.sExprComment == "number") state.sExprComment++; - - returnType = BRACKET; - } else if (ch == ")" || ch == "]") { - returnType = BRACKET; - if (state.indentStack != null && state.indentStack.type == (ch == ")" ? "(" : "[")) { - popStack(state); - - if(typeof state.sExprComment == "number"){ - if(--state.sExprComment == 0){ - returnType = COMMENT; // final closing bracket - state.sExprComment = false; // turn off s-expr commenting mode - } - } - } - } else { - stream.eatWhile(/[\w\$_\-!$%&*+\.\/:<=>?@\^~]/); - - if (keywords && keywords.propertyIsEnumerable(stream.current())) { - returnType = BUILTIN; - } else returnType = "variable"; - } - } - return (typeof state.sExprComment == "number") ? COMMENT : returnType; - }, - - indent: function (state) { - if (state.indentStack == null) return state.indentation; - return state.indentStack.indent; - }, - - lineComment: ";;" - }; -}); - -CodeMirror.defineMIME("text/x-scheme", "scheme"); - -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/shell/index.html b/src/main/resources/static/editor.md-master/lib/codemirror/mode/shell/index.html deleted file mode 100644 index 0b56300..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/shell/index.html +++ /dev/null @@ -1,66 +0,0 @@ - - -CodeMirror: Shell mode - - - - - - - - - - -
-

Shell mode

- - - - - - -

MIME types defined: text/x-sh.

-
diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/shell/shell.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/shell/shell.js deleted file mode 100644 index a684e8c..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/shell/shell.js +++ /dev/null @@ -1,139 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { -"use strict"; - -CodeMirror.defineMode('shell', function() { - - var words = {}; - function define(style, string) { - var split = string.split(' '); - for(var i = 0; i < split.length; i++) { - words[split[i]] = style; - } - }; - - // Atoms - define('atom', 'true false'); - - // Keywords - define('keyword', 'if then do else elif while until for in esac fi fin ' + - 'fil done exit set unset export function'); - - // Commands - define('builtin', 'ab awk bash beep cat cc cd chown chmod chroot clear cp ' + - 'curl cut diff echo find gawk gcc get git grep kill killall ln ls make ' + - 'mkdir openssl mv nc node npm ping ps restart rm rmdir sed service sh ' + - 'shopt shred source sort sleep ssh start stop su sudo tee telnet top ' + - 'touch vi vim wall wc wget who write yes zsh'); - - function tokenBase(stream, state) { - if (stream.eatSpace()) return null; - - var sol = stream.sol(); - var ch = stream.next(); - - if (ch === '\\') { - stream.next(); - return null; - } - if (ch === '\'' || ch === '"' || ch === '`') { - state.tokens.unshift(tokenString(ch)); - return tokenize(stream, state); - } - if (ch === '#') { - if (sol && stream.eat('!')) { - stream.skipToEnd(); - return 'meta'; // 'comment'? - } - stream.skipToEnd(); - return 'comment'; - } - if (ch === '$') { - state.tokens.unshift(tokenDollar); - return tokenize(stream, state); - } - if (ch === '+' || ch === '=') { - return 'operator'; - } - if (ch === '-') { - stream.eat('-'); - stream.eatWhile(/\w/); - return 'attribute'; - } - if (/\d/.test(ch)) { - stream.eatWhile(/\d/); - if(stream.eol() || !/\w/.test(stream.peek())) { - return 'number'; - } - } - stream.eatWhile(/[\w-]/); - var cur = stream.current(); - if (stream.peek() === '=' && /\w+/.test(cur)) return 'def'; - return words.hasOwnProperty(cur) ? words[cur] : null; - } - - function tokenString(quote) { - return function(stream, state) { - var next, end = false, escaped = false; - while ((next = stream.next()) != null) { - if (next === quote && !escaped) { - end = true; - break; - } - if (next === '$' && !escaped && quote !== '\'') { - escaped = true; - stream.backUp(1); - state.tokens.unshift(tokenDollar); - break; - } - escaped = !escaped && next === '\\'; - } - if (end || !escaped) { - state.tokens.shift(); - } - return (quote === '`' || quote === ')' ? 'quote' : 'string'); - }; - }; - - var tokenDollar = function(stream, state) { - if (state.tokens.length > 1) stream.eat('$'); - var ch = stream.next(), hungry = /\w/; - if (ch === '{') hungry = /[^}]/; - if (ch === '(') { - state.tokens[0] = tokenString(')'); - return tokenize(stream, state); - } - if (!/\d/.test(ch)) { - stream.eatWhile(hungry); - stream.eat('}'); - } - state.tokens.shift(); - return 'def'; - }; - - function tokenize(stream, state) { - return (state.tokens[0] || tokenBase) (stream, state); - }; - - return { - startState: function() {return {tokens:[]};}, - token: function(stream, state) { - return tokenize(stream, state); - }, - lineComment: '#', - fold: "brace" - }; -}); - -CodeMirror.defineMIME('text/x-sh', 'shell'); - -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/shell/test.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/shell/test.js deleted file mode 100644 index a413b5a..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/shell/test.js +++ /dev/null @@ -1,58 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function() { - var mode = CodeMirror.getMode({}, "shell"); - function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); } - - MT("var", - "text [def $var] text"); - MT("varBraces", - "text[def ${var}]text"); - MT("varVar", - "text [def $a$b] text"); - MT("varBracesVarBraces", - "text[def ${a}${b}]text"); - - MT("singleQuotedVar", - "[string 'text $var text']"); - MT("singleQuotedVarBraces", - "[string 'text ${var} text']"); - - MT("doubleQuotedVar", - '[string "text ][def $var][string text"]'); - MT("doubleQuotedVarBraces", - '[string "text][def ${var}][string text"]'); - MT("doubleQuotedVarPunct", - '[string "text ][def $@][string text"]'); - MT("doubleQuotedVarVar", - '[string "][def $a$b][string "]'); - MT("doubleQuotedVarBracesVarBraces", - '[string "][def ${a}${b}][string "]'); - - MT("notAString", - "text\\'text"); - MT("escapes", - "outside\\'\\\"\\`\\\\[string \"inside\\`\\'\\\"\\\\`\\$notAVar\"]outside\\$\\(notASubShell\\)"); - - MT("subshell", - "[builtin echo] [quote $(whoami)] s log, stardate [quote `date`]."); - MT("doubleQuotedSubshell", - "[builtin echo] [string \"][quote $(whoami)][string 's log, stardate `date`.\"]"); - - MT("hashbang", - "[meta #!/bin/bash]"); - MT("comment", - "text [comment # Blurb]"); - - MT("numbers", - "[number 0] [number 1] [number 2]"); - MT("keywords", - "[keyword while] [atom true]; [keyword do]", - " [builtin sleep] [number 3]", - "[keyword done]"); - MT("options", - "[builtin ls] [attribute -l] [attribute --human-readable]"); - MT("operator", - "[def var][operator =]value"); -})(); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/sieve/index.html b/src/main/resources/static/editor.md-master/lib/codemirror/mode/sieve/index.html deleted file mode 100644 index 6f029b6..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/sieve/index.html +++ /dev/null @@ -1,93 +0,0 @@ - - -CodeMirror: Sieve (RFC5228) mode - - - - - - - - - -
-

Sieve (RFC5228) mode

-
- - -

MIME types defined: application/sieve.

- -
diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/sieve/sieve.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/sieve/sieve.js deleted file mode 100644 index f67db2f..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/sieve/sieve.js +++ /dev/null @@ -1,193 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { -"use strict"; - -CodeMirror.defineMode("sieve", function(config) { - function words(str) { - var obj = {}, words = str.split(" "); - for (var i = 0; i < words.length; ++i) obj[words[i]] = true; - return obj; - } - - var keywords = words("if elsif else stop require"); - var atoms = words("true false not"); - var indentUnit = config.indentUnit; - - function tokenBase(stream, state) { - - var ch = stream.next(); - if (ch == "/" && stream.eat("*")) { - state.tokenize = tokenCComment; - return tokenCComment(stream, state); - } - - if (ch === '#') { - stream.skipToEnd(); - return "comment"; - } - - if (ch == "\"") { - state.tokenize = tokenString(ch); - return state.tokenize(stream, state); - } - - if (ch == "(") { - state._indent.push("("); - // add virtual angel wings so that editor behaves... - // ...more sane incase of broken brackets - state._indent.push("{"); - return null; - } - - if (ch === "{") { - state._indent.push("{"); - return null; - } - - if (ch == ")") { - state._indent.pop(); - state._indent.pop(); - } - - if (ch === "}") { - state._indent.pop(); - return null; - } - - if (ch == ",") - return null; - - if (ch == ";") - return null; - - - if (/[{}\(\),;]/.test(ch)) - return null; - - // 1*DIGIT "K" / "M" / "G" - if (/\d/.test(ch)) { - stream.eatWhile(/[\d]/); - stream.eat(/[KkMmGg]/); - return "number"; - } - - // ":" (ALPHA / "_") *(ALPHA / DIGIT / "_") - if (ch == ":") { - stream.eatWhile(/[a-zA-Z_]/); - stream.eatWhile(/[a-zA-Z0-9_]/); - - return "operator"; - } - - stream.eatWhile(/\w/); - var cur = stream.current(); - - // "text:" *(SP / HTAB) (hash-comment / CRLF) - // *(multiline-literal / multiline-dotstart) - // "." CRLF - if ((cur == "text") && stream.eat(":")) - { - state.tokenize = tokenMultiLineString; - return "string"; - } - - if (keywords.propertyIsEnumerable(cur)) - return "keyword"; - - if (atoms.propertyIsEnumerable(cur)) - return "atom"; - - return null; - } - - function tokenMultiLineString(stream, state) - { - state._multiLineString = true; - // the first line is special it may contain a comment - if (!stream.sol()) { - stream.eatSpace(); - - if (stream.peek() == "#") { - stream.skipToEnd(); - return "comment"; - } - - stream.skipToEnd(); - return "string"; - } - - if ((stream.next() == ".") && (stream.eol())) - { - state._multiLineString = false; - state.tokenize = tokenBase; - } - - return "string"; - } - - function tokenCComment(stream, state) { - var maybeEnd = false, ch; - while ((ch = stream.next()) != null) { - if (maybeEnd && ch == "/") { - state.tokenize = tokenBase; - break; - } - maybeEnd = (ch == "*"); - } - return "comment"; - } - - function tokenString(quote) { - return function(stream, state) { - var escaped = false, ch; - while ((ch = stream.next()) != null) { - if (ch == quote && !escaped) - break; - escaped = !escaped && ch == "\\"; - } - if (!escaped) state.tokenize = tokenBase; - return "string"; - }; - } - - return { - startState: function(base) { - return {tokenize: tokenBase, - baseIndent: base || 0, - _indent: []}; - }, - - token: function(stream, state) { - if (stream.eatSpace()) - return null; - - return (state.tokenize || tokenBase)(stream, state);; - }, - - indent: function(state, _textAfter) { - var length = state._indent.length; - if (_textAfter && (_textAfter[0] == "}")) - length--; - - if (length <0) - length = 0; - - return length * indentUnit; - }, - - electricChars: "}" - }; -}); - -CodeMirror.defineMIME("application/sieve", "sieve"); - -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/slim/index.html b/src/main/resources/static/editor.md-master/lib/codemirror/mode/slim/index.html deleted file mode 100644 index 7fa4e50..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/slim/index.html +++ /dev/null @@ -1,96 +0,0 @@ - - -CodeMirror: SLIM mode - - - - - - - - - - - - - - - - - - - - -
-

SLIM mode

-
- - -

MIME types defined: application/x-slim.

- -

- Parsing/Highlighting Tests: - normal, - verbose. -

-
diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/slim/slim.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/slim/slim.js deleted file mode 100644 index 164464d..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/slim/slim.js +++ /dev/null @@ -1,575 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -// Slim Highlighting for CodeMirror copyright (c) HicknHack Software Gmbh - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror"), require("../htmlmixed/htmlmixed"), require("../ruby/ruby")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror", "../htmlmixed/htmlmixed", "../ruby/ruby"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { -"use strict"; - - CodeMirror.defineMode("slim", function(config) { - var htmlMode = CodeMirror.getMode(config, {name: "htmlmixed"}); - var rubyMode = CodeMirror.getMode(config, "ruby"); - var modes = { html: htmlMode, ruby: rubyMode }; - var embedded = { - ruby: "ruby", - javascript: "javascript", - css: "text/css", - sass: "text/x-sass", - scss: "text/x-scss", - less: "text/x-less", - styl: "text/x-styl", // no highlighting so far - coffee: "coffeescript", - asciidoc: "text/x-asciidoc", - markdown: "text/x-markdown", - textile: "text/x-textile", // no highlighting so far - creole: "text/x-creole", // no highlighting so far - wiki: "text/x-wiki", // no highlighting so far - mediawiki: "text/x-mediawiki", // no highlighting so far - rdoc: "text/x-rdoc", // no highlighting so far - builder: "text/x-builder", // no highlighting so far - nokogiri: "text/x-nokogiri", // no highlighting so far - erb: "application/x-erb" - }; - var embeddedRegexp = function(map){ - var arr = []; - for(var key in map) arr.push(key); - return new RegExp("^("+arr.join('|')+"):"); - }(embedded); - - var styleMap = { - "commentLine": "comment", - "slimSwitch": "operator special", - "slimTag": "tag", - "slimId": "attribute def", - "slimClass": "attribute qualifier", - "slimAttribute": "attribute", - "slimSubmode": "keyword special", - "closeAttributeTag": null, - "slimDoctype": null, - "lineContinuation": null - }; - var closing = { - "{": "}", - "[": "]", - "(": ")" - }; - - var nameStartChar = "_a-zA-Z\xC0-\xD6\xD8-\xF6\xF8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD"; - var nameChar = nameStartChar + "\\-0-9\xB7\u0300-\u036F\u203F-\u2040"; - var nameRegexp = new RegExp("^[:"+nameStartChar+"](?::["+nameChar+"]|["+nameChar+"]*)"); - var attributeNameRegexp = new RegExp("^[:"+nameStartChar+"][:\\."+nameChar+"]*(?=\\s*=)"); - var wrappedAttributeNameRegexp = new RegExp("^[:"+nameStartChar+"][:\\."+nameChar+"]*"); - var classNameRegexp = /^\.-?[_a-zA-Z]+[\w\-]*/; - var classIdRegexp = /^#[_a-zA-Z]+[\w\-]*/; - - function backup(pos, tokenize, style) { - var restore = function(stream, state) { - state.tokenize = tokenize; - if (stream.pos < pos) { - stream.pos = pos; - return style; - } - return state.tokenize(stream, state); - }; - return function(stream, state) { - state.tokenize = restore; - return tokenize(stream, state); - }; - } - - function maybeBackup(stream, state, pat, offset, style) { - var cur = stream.current(); - var idx = cur.search(pat); - if (idx > -1) { - state.tokenize = backup(stream.pos, state.tokenize, style); - stream.backUp(cur.length - idx - offset); - } - return style; - } - - function continueLine(state, column) { - state.stack = { - parent: state.stack, - style: "continuation", - indented: column, - tokenize: state.line - }; - state.line = state.tokenize; - } - function finishContinue(state) { - if (state.line == state.tokenize) { - state.line = state.stack.tokenize; - state.stack = state.stack.parent; - } - } - - function lineContinuable(column, tokenize) { - return function(stream, state) { - finishContinue(state); - if (stream.match(/^\\$/)) { - continueLine(state, column); - return "lineContinuation"; - } - var style = tokenize(stream, state); - if (stream.eol() && stream.current().match(/(?:^|[^\\])(?:\\\\)*\\$/)) { - stream.backUp(1); - } - return style; - }; - } - function commaContinuable(column, tokenize) { - return function(stream, state) { - finishContinue(state); - var style = tokenize(stream, state); - if (stream.eol() && stream.current().match(/,$/)) { - continueLine(state, column); - } - return style; - }; - } - - function rubyInQuote(endQuote, tokenize) { - // TODO: add multi line support - return function(stream, state) { - var ch = stream.peek(); - if (ch == endQuote && state.rubyState.tokenize.length == 1) { - // step out of ruby context as it seems to complete processing all the braces - stream.next(); - state.tokenize = tokenize; - return "closeAttributeTag"; - } else { - return ruby(stream, state); - } - }; - } - function startRubySplat(tokenize) { - var rubyState; - var runSplat = function(stream, state) { - if (state.rubyState.tokenize.length == 1 && !state.rubyState.context.prev) { - stream.backUp(1); - if (stream.eatSpace()) { - state.rubyState = rubyState; - state.tokenize = tokenize; - return tokenize(stream, state); - } - stream.next(); - } - return ruby(stream, state); - }; - return function(stream, state) { - rubyState = state.rubyState; - state.rubyState = rubyMode.startState(); - state.tokenize = runSplat; - return ruby(stream, state); - }; - } - - function ruby(stream, state) { - return rubyMode.token(stream, state.rubyState); - } - - function htmlLine(stream, state) { - if (stream.match(/^\\$/)) { - return "lineContinuation"; - } - return html(stream, state); - } - function html(stream, state) { - if (stream.match(/^#\{/)) { - state.tokenize = rubyInQuote("}", state.tokenize); - return null; - } - return maybeBackup(stream, state, /[^\\]#\{/, 1, htmlMode.token(stream, state.htmlState)); - } - - function startHtmlLine(lastTokenize) { - return function(stream, state) { - var style = htmlLine(stream, state); - if (stream.eol()) state.tokenize = lastTokenize; - return style; - }; - } - - function startHtmlMode(stream, state, offset) { - state.stack = { - parent: state.stack, - style: "html", - indented: stream.column() + offset, // pipe + space - tokenize: state.line - }; - state.line = state.tokenize = html; - return null; - } - - function comment(stream, state) { - stream.skipToEnd(); - return state.stack.style; - } - - function commentMode(stream, state) { - state.stack = { - parent: state.stack, - style: "comment", - indented: state.indented + 1, - tokenize: state.line - }; - state.line = comment; - return comment(stream, state); - } - - function attributeWrapper(stream, state) { - if (stream.eat(state.stack.endQuote)) { - state.line = state.stack.line; - state.tokenize = state.stack.tokenize; - state.stack = state.stack.parent; - return null; - } - if (stream.match(wrappedAttributeNameRegexp)) { - state.tokenize = attributeWrapperAssign; - return "slimAttribute"; - } - stream.next(); - return null; - } - function attributeWrapperAssign(stream, state) { - if (stream.match(/^==?/)) { - state.tokenize = attributeWrapperValue; - return null; - } - return attributeWrapper(stream, state); - } - function attributeWrapperValue(stream, state) { - var ch = stream.peek(); - if (ch == '"' || ch == "\'") { - state.tokenize = readQuoted(ch, "string", true, false, attributeWrapper); - stream.next(); - return state.tokenize(stream, state); - } - if (ch == '[') { - return startRubySplat(attributeWrapper)(stream, state); - } - if (stream.match(/^(true|false|nil)\b/)) { - state.tokenize = attributeWrapper; - return "keyword"; - } - return startRubySplat(attributeWrapper)(stream, state); - } - - function startAttributeWrapperMode(state, endQuote, tokenize) { - state.stack = { - parent: state.stack, - style: "wrapper", - indented: state.indented + 1, - tokenize: tokenize, - line: state.line, - endQuote: endQuote - }; - state.line = state.tokenize = attributeWrapper; - return null; - } - - function sub(stream, state) { - if (stream.match(/^#\{/)) { - state.tokenize = rubyInQuote("}", state.tokenize); - return null; - } - var subStream = new CodeMirror.StringStream(stream.string.slice(state.stack.indented), stream.tabSize); - subStream.pos = stream.pos - state.stack.indented; - subStream.start = stream.start - state.stack.indented; - subStream.lastColumnPos = stream.lastColumnPos - state.stack.indented; - subStream.lastColumnValue = stream.lastColumnValue - state.stack.indented; - var style = state.subMode.token(subStream, state.subState); - stream.pos = subStream.pos + state.stack.indented; - return style; - } - function firstSub(stream, state) { - state.stack.indented = stream.column(); - state.line = state.tokenize = sub; - return state.tokenize(stream, state); - } - - function createMode(mode) { - var query = embedded[mode]; - var spec = CodeMirror.mimeModes[query]; - if (spec) { - return CodeMirror.getMode(config, spec); - } - var factory = CodeMirror.modes[query]; - if (factory) { - return factory(config, {name: query}); - } - return CodeMirror.getMode(config, "null"); - } - - function getMode(mode) { - if (!modes.hasOwnProperty(mode)) { - return modes[mode] = createMode(mode); - } - return modes[mode]; - } - - function startSubMode(mode, state) { - var subMode = getMode(mode); - var subState = subMode.startState && subMode.startState(); - - state.subMode = subMode; - state.subState = subState; - - state.stack = { - parent: state.stack, - style: "sub", - indented: state.indented + 1, - tokenize: state.line - }; - state.line = state.tokenize = firstSub; - return "slimSubmode"; - } - - function doctypeLine(stream, _state) { - stream.skipToEnd(); - return "slimDoctype"; - } - - function startLine(stream, state) { - var ch = stream.peek(); - if (ch == '<') { - return (state.tokenize = startHtmlLine(state.tokenize))(stream, state); - } - if (stream.match(/^[|']/)) { - return startHtmlMode(stream, state, 1); - } - if (stream.match(/^\/(!|\[\w+])?/)) { - return commentMode(stream, state); - } - if (stream.match(/^(-|==?[<>]?)/)) { - state.tokenize = lineContinuable(stream.column(), commaContinuable(stream.column(), ruby)); - return "slimSwitch"; - } - if (stream.match(/^doctype\b/)) { - state.tokenize = doctypeLine; - return "keyword"; - } - - var m = stream.match(embeddedRegexp); - if (m) { - return startSubMode(m[1], state); - } - - return slimTag(stream, state); - } - - function slim(stream, state) { - if (state.startOfLine) { - return startLine(stream, state); - } - return slimTag(stream, state); - } - - function slimTag(stream, state) { - if (stream.eat('*')) { - state.tokenize = startRubySplat(slimTagExtras); - return null; - } - if (stream.match(nameRegexp)) { - state.tokenize = slimTagExtras; - return "slimTag"; - } - return slimClass(stream, state); - } - function slimTagExtras(stream, state) { - if (stream.match(/^(<>?|> state.indented && state.last != "slimSubmode") { - state.line = state.tokenize = state.stack.tokenize; - state.stack = state.stack.parent; - state.subMode = null; - state.subState = null; - } - } - if (stream.eatSpace()) return null; - var style = state.tokenize(stream, state); - state.startOfLine = false; - if (style) state.last = style; - return styleMap.hasOwnProperty(style) ? styleMap[style] : style; - }, - - blankLine: function(state) { - if (state.subMode && state.subMode.blankLine) { - return state.subMode.blankLine(state.subState); - } - }, - - innerMode: function(state) { - if (state.subMode) return {state: state.subState, mode: state.subMode}; - return {state: state, mode: mode}; - } - - //indent: function(state) { - // return state.indented; - //} - }; - return mode; - }, "htmlmixed", "ruby"); - - CodeMirror.defineMIME("text/x-slim", "slim"); - CodeMirror.defineMIME("application/x-slim", "slim"); -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/slim/test.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/slim/test.js deleted file mode 100644 index be4ddac..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/slim/test.js +++ /dev/null @@ -1,96 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -// Slim Highlighting for CodeMirror copyright (c) HicknHack Software Gmbh - -(function() { - var mode = CodeMirror.getMode({tabSize: 4, indentUnit: 2}, "slim"); - function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); } - - // Requires at least one media query - MT("elementName", - "[tag h1] Hey There"); - - MT("oneElementPerLine", - "[tag h1] Hey There .h2"); - - MT("idShortcut", - "[attribute&def #test] Hey There"); - - MT("tagWithIdShortcuts", - "[tag h1][attribute&def #test] Hey There"); - - MT("classShortcut", - "[attribute&qualifier .hello] Hey There"); - - MT("tagWithIdAndClassShortcuts", - "[tag h1][attribute&def #test][attribute&qualifier .hello] Hey There"); - - MT("docType", - "[keyword doctype] xml"); - - MT("comment", - "[comment / Hello WORLD]"); - - MT("notComment", - "[tag h1] This is not a / comment "); - - MT("attributes", - "[tag a]([attribute title]=[string \"test\"]) [attribute href]=[string \"link\"]}"); - - MT("multiLineAttributes", - "[tag a]([attribute title]=[string \"test\"]", - " ) [attribute href]=[string \"link\"]}"); - - MT("htmlCode", - "[tag&bracket <][tag h1][tag&bracket >]Title[tag&bracket ]"); - - MT("rubyBlock", - "[operator&special =][variable-2 @item]"); - - MT("selectorRubyBlock", - "[tag a][attribute&qualifier .test][operator&special =] [variable-2 @item]"); - - MT("nestedRubyBlock", - "[tag a]", - " [operator&special =][variable puts] [string \"test\"]"); - - MT("multilinePlaintext", - "[tag p]", - " | Hello,", - " World"); - - MT("multilineRuby", - "[tag p]", - " [comment /# this is a comment]", - " [comment and this is a comment too]", - " | Date/Time", - " [operator&special -] [variable now] [operator =] [tag DateTime][operator .][property now]", - " [tag strong][operator&special =] [variable now]", - " [operator&special -] [keyword if] [variable now] [operator >] [tag DateTime][operator .][property parse]([string \"December 31, 2006\"])", - " [operator&special =][string \"Happy\"]", - " [operator&special =][string \"Belated\"]", - " [operator&special =][string \"Birthday\"]"); - - MT("multilineComment", - "[comment /]", - " [comment Multiline]", - " [comment Comment]"); - - MT("hamlAfterRubyTag", - "[attribute&qualifier .block]", - " [tag strong][operator&special =] [variable now]", - " [attribute&qualifier .test]", - " [operator&special =][variable now]", - " [attribute&qualifier .right]"); - - MT("stretchedRuby", - "[operator&special =] [variable puts] [string \"Hello\"],", - " [string \"World\"]"); - - MT("interpolationInHashAttribute", - "[tag div]{[attribute id] = [string \"]#{[variable test]}[string _]#{[variable ting]}[string \"]} test"); - - MT("interpolationInHTMLAttribute", - "[tag div]([attribute title]=[string \"]#{[variable test]}[string _]#{[variable ting]()}[string \"]) Test"); -})(); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/smalltalk/index.html b/src/main/resources/static/editor.md-master/lib/codemirror/mode/smalltalk/index.html deleted file mode 100644 index 2155ebc..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/smalltalk/index.html +++ /dev/null @@ -1,68 +0,0 @@ - - -CodeMirror: Smalltalk mode - - - - - - - - - - -
-

Smalltalk mode

-
- - - -

Simple Smalltalk mode.

- -

MIME types defined: text/x-stsrc.

-
diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/smalltalk/smalltalk.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/smalltalk/smalltalk.js deleted file mode 100644 index bb510ba..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/smalltalk/smalltalk.js +++ /dev/null @@ -1,168 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { -"use strict"; - -CodeMirror.defineMode('smalltalk', function(config) { - - var specialChars = /[+\-\/\\*~<>=@%|&?!.,:;^]/; - var keywords = /true|false|nil|self|super|thisContext/; - - var Context = function(tokenizer, parent) { - this.next = tokenizer; - this.parent = parent; - }; - - var Token = function(name, context, eos) { - this.name = name; - this.context = context; - this.eos = eos; - }; - - var State = function() { - this.context = new Context(next, null); - this.expectVariable = true; - this.indentation = 0; - this.userIndentationDelta = 0; - }; - - State.prototype.userIndent = function(indentation) { - this.userIndentationDelta = indentation > 0 ? (indentation / config.indentUnit - this.indentation) : 0; - }; - - var next = function(stream, context, state) { - var token = new Token(null, context, false); - var aChar = stream.next(); - - if (aChar === '"') { - token = nextComment(stream, new Context(nextComment, context)); - - } else if (aChar === '\'') { - token = nextString(stream, new Context(nextString, context)); - - } else if (aChar === '#') { - if (stream.peek() === '\'') { - stream.next(); - token = nextSymbol(stream, new Context(nextSymbol, context)); - } else { - if (stream.eatWhile(/[^\s.{}\[\]()]/)) - token.name = 'string-2'; - else - token.name = 'meta'; - } - - } else if (aChar === '$') { - if (stream.next() === '<') { - stream.eatWhile(/[^\s>]/); - stream.next(); - } - token.name = 'string-2'; - - } else if (aChar === '|' && state.expectVariable) { - token.context = new Context(nextTemporaries, context); - - } else if (/[\[\]{}()]/.test(aChar)) { - token.name = 'bracket'; - token.eos = /[\[{(]/.test(aChar); - - if (aChar === '[') { - state.indentation++; - } else if (aChar === ']') { - state.indentation = Math.max(0, state.indentation - 1); - } - - } else if (specialChars.test(aChar)) { - stream.eatWhile(specialChars); - token.name = 'operator'; - token.eos = aChar !== ';'; // ; cascaded message expression - - } else if (/\d/.test(aChar)) { - stream.eatWhile(/[\w\d]/); - token.name = 'number'; - - } else if (/[\w_]/.test(aChar)) { - stream.eatWhile(/[\w\d_]/); - token.name = state.expectVariable ? (keywords.test(stream.current()) ? 'keyword' : 'variable') : null; - - } else { - token.eos = state.expectVariable; - } - - return token; - }; - - var nextComment = function(stream, context) { - stream.eatWhile(/[^"]/); - return new Token('comment', stream.eat('"') ? context.parent : context, true); - }; - - var nextString = function(stream, context) { - stream.eatWhile(/[^']/); - return new Token('string', stream.eat('\'') ? context.parent : context, false); - }; - - var nextSymbol = function(stream, context) { - stream.eatWhile(/[^']/); - return new Token('string-2', stream.eat('\'') ? context.parent : context, false); - }; - - var nextTemporaries = function(stream, context) { - var token = new Token(null, context, false); - var aChar = stream.next(); - - if (aChar === '|') { - token.context = context.parent; - token.eos = true; - - } else { - stream.eatWhile(/[^|]/); - token.name = 'variable'; - } - - return token; - }; - - return { - startState: function() { - return new State; - }, - - token: function(stream, state) { - state.userIndent(stream.indentation()); - - if (stream.eatSpace()) { - return null; - } - - var token = state.context.next(stream, state.context, state); - state.context = token.context; - state.expectVariable = token.eos; - - return token.name; - }, - - blankLine: function(state) { - state.userIndent(0); - }, - - indent: function(state, textAfter) { - var i = state.context.next === next && textAfter && textAfter.charAt(0) === ']' ? -1 : state.userIndentationDelta; - return (state.indentation + i) * config.indentUnit; - }, - - electricChars: ']' - }; - -}); - -CodeMirror.defineMIME('text/x-stsrc', {name: 'smalltalk'}); - -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/smarty/index.html b/src/main/resources/static/editor.md-master/lib/codemirror/mode/smarty/index.html deleted file mode 100644 index 8d88c9a..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/smarty/index.html +++ /dev/null @@ -1,136 +0,0 @@ - - -CodeMirror: Smarty mode - - - - - - - - - -
-

Smarty mode

-
- - - -
- -

Smarty 2, custom delimiters

-
- - - -
- -

Smarty 3

- - - - - - -

A plain text/Smarty version 2 or 3 mode, which allows for custom delimiter tags.

- -

MIME types defined: text/x-smarty

-
diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/smarty/smarty.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/smarty/smarty.js deleted file mode 100644 index bb05324..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/smarty/smarty.js +++ /dev/null @@ -1,221 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -/** - * Smarty 2 and 3 mode. - */ - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { -"use strict"; - -CodeMirror.defineMode("smarty", function(config) { - "use strict"; - - // our default settings; check to see if they're overridden - var settings = { - rightDelimiter: '}', - leftDelimiter: '{', - smartyVersion: 2 // for backward compatibility - }; - if (config.hasOwnProperty("leftDelimiter")) { - settings.leftDelimiter = config.leftDelimiter; - } - if (config.hasOwnProperty("rightDelimiter")) { - settings.rightDelimiter = config.rightDelimiter; - } - if (config.hasOwnProperty("smartyVersion") && config.smartyVersion === 3) { - settings.smartyVersion = 3; - } - - var keyFunctions = ["debug", "extends", "function", "include", "literal"]; - var last; - var regs = { - operatorChars: /[+\-*&%=<>!?]/, - validIdentifier: /[a-zA-Z0-9_]/, - stringChar: /['"]/ - }; - - var helpers = { - cont: function(style, lastType) { - last = lastType; - return style; - }, - chain: function(stream, state, parser) { - state.tokenize = parser; - return parser(stream, state); - } - }; - - - // our various parsers - var parsers = { - - // the main tokenizer - tokenizer: function(stream, state) { - if (stream.match(settings.leftDelimiter, true)) { - if (stream.eat("*")) { - return helpers.chain(stream, state, parsers.inBlock("comment", "*" + settings.rightDelimiter)); - } else { - // Smarty 3 allows { and } surrounded by whitespace to NOT slip into Smarty mode - state.depth++; - var isEol = stream.eol(); - var isFollowedByWhitespace = /\s/.test(stream.peek()); - if (settings.smartyVersion === 3 && settings.leftDelimiter === "{" && (isEol || isFollowedByWhitespace)) { - state.depth--; - return null; - } else { - state.tokenize = parsers.smarty; - last = "startTag"; - return "tag"; - } - } - } else { - stream.next(); - return null; - } - }, - - // parsing Smarty content - smarty: function(stream, state) { - if (stream.match(settings.rightDelimiter, true)) { - if (settings.smartyVersion === 3) { - state.depth--; - if (state.depth <= 0) { - state.tokenize = parsers.tokenizer; - } - } else { - state.tokenize = parsers.tokenizer; - } - return helpers.cont("tag", null); - } - - if (stream.match(settings.leftDelimiter, true)) { - state.depth++; - return helpers.cont("tag", "startTag"); - } - - var ch = stream.next(); - if (ch == "$") { - stream.eatWhile(regs.validIdentifier); - return helpers.cont("variable-2", "variable"); - } else if (ch == "|") { - return helpers.cont("operator", "pipe"); - } else if (ch == ".") { - return helpers.cont("operator", "property"); - } else if (regs.stringChar.test(ch)) { - state.tokenize = parsers.inAttribute(ch); - return helpers.cont("string", "string"); - } else if (regs.operatorChars.test(ch)) { - stream.eatWhile(regs.operatorChars); - return helpers.cont("operator", "operator"); - } else if (ch == "[" || ch == "]") { - return helpers.cont("bracket", "bracket"); - } else if (ch == "(" || ch == ")") { - return helpers.cont("bracket", "operator"); - } else if (/\d/.test(ch)) { - stream.eatWhile(/\d/); - return helpers.cont("number", "number"); - } else { - - if (state.last == "variable") { - if (ch == "@") { - stream.eatWhile(regs.validIdentifier); - return helpers.cont("property", "property"); - } else if (ch == "|") { - stream.eatWhile(regs.validIdentifier); - return helpers.cont("qualifier", "modifier"); - } - } else if (state.last == "pipe") { - stream.eatWhile(regs.validIdentifier); - return helpers.cont("qualifier", "modifier"); - } else if (state.last == "whitespace") { - stream.eatWhile(regs.validIdentifier); - return helpers.cont("attribute", "modifier"); - } if (state.last == "property") { - stream.eatWhile(regs.validIdentifier); - return helpers.cont("property", null); - } else if (/\s/.test(ch)) { - last = "whitespace"; - return null; - } - - var str = ""; - if (ch != "/") { - str += ch; - } - var c = null; - while (c = stream.eat(regs.validIdentifier)) { - str += c; - } - for (var i=0, j=keyFunctions.length; i - -CodeMirror: Smarty mixed mode - - - - - - - - - - - - - -
-

Smarty mixed mode

-
- - - -

The Smarty mixed mode depends on the Smarty and HTML mixed modes. HTML - mixed mode itself depends on XML, JavaScript, and CSS modes.

- -

It takes the same options, as Smarty and HTML mixed modes.

- -

MIME types defined: text/x-smarty.

-
diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/smartymixed/smartymixed.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/smartymixed/smartymixed.js deleted file mode 100644 index 4fc7ca4..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/smartymixed/smartymixed.js +++ /dev/null @@ -1,197 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -/** -* @file smartymixed.js -* @brief Smarty Mixed Codemirror mode (Smarty + Mixed HTML) -* @author Ruslan Osmanov -* @version 3.0 -* @date 05.07.2013 -*/ - -// Warning: Don't base other modes on this one. This here is a -// terrible way to write a mixed mode. - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror"), require("../htmlmixed/htmlmixed"), require("../smarty/smarty")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror", "../htmlmixed/htmlmixed", "../smarty/smarty"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { -"use strict"; - -CodeMirror.defineMode("smartymixed", function(config) { - var htmlMixedMode = CodeMirror.getMode(config, "htmlmixed"); - var smartyMode = CodeMirror.getMode(config, "smarty"); - - var settings = { - rightDelimiter: '}', - leftDelimiter: '{' - }; - - if (config.hasOwnProperty("leftDelimiter")) { - settings.leftDelimiter = config.leftDelimiter; - } - if (config.hasOwnProperty("rightDelimiter")) { - settings.rightDelimiter = config.rightDelimiter; - } - - function reEsc(str) { return str.replace(/[^\s\w]/g, "\\$&"); } - - var reLeft = reEsc(settings.leftDelimiter), reRight = reEsc(settings.rightDelimiter); - var regs = { - smartyComment: new RegExp("^" + reRight + "\\*"), - literalOpen: new RegExp(reLeft + "literal" + reRight), - literalClose: new RegExp(reLeft + "\/literal" + reRight), - hasLeftDelimeter: new RegExp(".*" + reLeft), - htmlHasLeftDelimeter: new RegExp("[^<>]*" + reLeft) - }; - - var helpers = { - chain: function(stream, state, parser) { - state.tokenize = parser; - return parser(stream, state); - }, - - cleanChain: function(stream, state, parser) { - state.tokenize = null; - state.localState = null; - state.localMode = null; - return (typeof parser == "string") ? (parser ? parser : null) : parser(stream, state); - }, - - maybeBackup: function(stream, pat, style) { - var cur = stream.current(); - var close = cur.search(pat), - m; - if (close > - 1) stream.backUp(cur.length - close); - else if (m = cur.match(/<\/?$/)) { - stream.backUp(cur.length); - if (!stream.match(pat, false)) stream.match(cur[0]); - } - return style; - } - }; - - var parsers = { - html: function(stream, state) { - var htmlTagName = state.htmlMixedState.htmlState.context && state.htmlMixedState.htmlState.context.tagName - ? state.htmlMixedState.htmlState.context.tagName - : null; - - if (!state.inLiteral && stream.match(regs.htmlHasLeftDelimeter, false) && htmlTagName === null) { - state.tokenize = parsers.smarty; - state.localMode = smartyMode; - state.localState = smartyMode.startState(htmlMixedMode.indent(state.htmlMixedState, "")); - return helpers.maybeBackup(stream, settings.leftDelimiter, smartyMode.token(stream, state.localState)); - } else if (!state.inLiteral && stream.match(settings.leftDelimiter, false)) { - state.tokenize = parsers.smarty; - state.localMode = smartyMode; - state.localState = smartyMode.startState(htmlMixedMode.indent(state.htmlMixedState, "")); - return helpers.maybeBackup(stream, settings.leftDelimiter, smartyMode.token(stream, state.localState)); - } - return htmlMixedMode.token(stream, state.htmlMixedState); - }, - - smarty: function(stream, state) { - if (stream.match(settings.leftDelimiter, false)) { - if (stream.match(regs.smartyComment, false)) { - return helpers.chain(stream, state, parsers.inBlock("comment", "*" + settings.rightDelimiter)); - } - } else if (stream.match(settings.rightDelimiter, false)) { - stream.eat(settings.rightDelimiter); - state.tokenize = parsers.html; - state.localMode = htmlMixedMode; - state.localState = state.htmlMixedState; - return "tag"; - } - - return helpers.maybeBackup(stream, settings.rightDelimiter, smartyMode.token(stream, state.localState)); - }, - - inBlock: function(style, terminator) { - return function(stream, state) { - while (!stream.eol()) { - if (stream.match(terminator)) { - helpers.cleanChain(stream, state, ""); - break; - } - stream.next(); - } - return style; - }; - } - }; - - return { - startState: function() { - var state = htmlMixedMode.startState(); - return { - token: parsers.html, - localMode: null, - localState: null, - htmlMixedState: state, - tokenize: null, - inLiteral: false - }; - }, - - copyState: function(state) { - var local = null, tok = (state.tokenize || state.token); - if (state.localState) { - local = CodeMirror.copyState((tok != parsers.html ? smartyMode : htmlMixedMode), state.localState); - } - return { - token: state.token, - tokenize: state.tokenize, - localMode: state.localMode, - localState: local, - htmlMixedState: CodeMirror.copyState(htmlMixedMode, state.htmlMixedState), - inLiteral: state.inLiteral - }; - }, - - token: function(stream, state) { - if (stream.match(settings.leftDelimiter, false)) { - if (!state.inLiteral && stream.match(regs.literalOpen, true)) { - state.inLiteral = true; - return "keyword"; - } else if (state.inLiteral && stream.match(regs.literalClose, true)) { - state.inLiteral = false; - return "keyword"; - } - } - if (state.inLiteral && state.localState != state.htmlMixedState) { - state.tokenize = parsers.html; - state.localMode = htmlMixedMode; - state.localState = state.htmlMixedState; - } - - var style = (state.tokenize || state.token)(stream, state); - return style; - }, - - indent: function(state, textAfter) { - if (state.localMode == smartyMode - || (state.inLiteral && !state.localMode) - || regs.hasLeftDelimeter.test(textAfter)) { - return CodeMirror.Pass; - } - return htmlMixedMode.indent(state.htmlMixedState, textAfter); - }, - - innerMode: function(state) { - return { - state: state.localState || state.htmlMixedState, - mode: state.localMode || htmlMixedMode - }; - } - }; -}, "htmlmixed", "smarty"); - -CodeMirror.defineMIME("text/x-smarty", "smartymixed"); -// vim: et ts=2 sts=2 sw=2 - -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/solr/index.html b/src/main/resources/static/editor.md-master/lib/codemirror/mode/solr/index.html deleted file mode 100644 index 4b18c25..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/solr/index.html +++ /dev/null @@ -1,57 +0,0 @@ - - -CodeMirror: Solr mode - - - - - - - - - -
-

Solr mode

- -
- -
- - - -

MIME types defined: text/x-solr.

-
diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/solr/solr.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/solr/solr.js deleted file mode 100644 index f7f7087..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/solr/solr.js +++ /dev/null @@ -1,104 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { -"use strict"; - -CodeMirror.defineMode("solr", function() { - "use strict"; - - var isStringChar = /[^\s\|\!\+\-\*\?\~\^\&\:\(\)\[\]\{\}\^\"\\]/; - var isOperatorChar = /[\|\!\+\-\*\?\~\^\&]/; - var isOperatorString = /^(OR|AND|NOT|TO)$/i; - - function isNumber(word) { - return parseFloat(word, 10).toString() === word; - } - - function tokenString(quote) { - return function(stream, state) { - var escaped = false, next; - while ((next = stream.next()) != null) { - if (next == quote && !escaped) break; - escaped = !escaped && next == "\\"; - } - - if (!escaped) state.tokenize = tokenBase; - return "string"; - }; - } - - function tokenOperator(operator) { - return function(stream, state) { - var style = "operator"; - if (operator == "+") - style += " positive"; - else if (operator == "-") - style += " negative"; - else if (operator == "|") - stream.eat(/\|/); - else if (operator == "&") - stream.eat(/\&/); - else if (operator == "^") - style += " boost"; - - state.tokenize = tokenBase; - return style; - }; - } - - function tokenWord(ch) { - return function(stream, state) { - var word = ch; - while ((ch = stream.peek()) && ch.match(isStringChar) != null) { - word += stream.next(); - } - - state.tokenize = tokenBase; - if (isOperatorString.test(word)) - return "operator"; - else if (isNumber(word)) - return "number"; - else if (stream.peek() == ":") - return "field"; - else - return "string"; - }; - } - - function tokenBase(stream, state) { - var ch = stream.next(); - if (ch == '"') - state.tokenize = tokenString(ch); - else if (isOperatorChar.test(ch)) - state.tokenize = tokenOperator(ch); - else if (isStringChar.test(ch)) - state.tokenize = tokenWord(ch); - - return (state.tokenize != tokenBase) ? state.tokenize(stream, state) : null; - } - - return { - startState: function() { - return { - tokenize: tokenBase - }; - }, - - token: function(stream, state) { - if (stream.eatSpace()) return null; - return state.tokenize(stream, state); - } - }; -}); - -CodeMirror.defineMIME("text/x-solr", "solr"); - -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/soy/index.html b/src/main/resources/static/editor.md-master/lib/codemirror/mode/soy/index.html deleted file mode 100644 index f0216f0..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/soy/index.html +++ /dev/null @@ -1,68 +0,0 @@ - - -CodeMirror: Soy (Closure Template) mode - - - - - - - - - - - - - - -
-

Soy (Closure Template) mode

-
- - - -

A mode for Closure Templates (Soy).

-

MIME type defined: text/x-soy.

-
diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/soy/soy.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/soy/soy.js deleted file mode 100644 index 7e81e8d..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/soy/soy.js +++ /dev/null @@ -1,198 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror"), require("../htmlmixed/htmlmixed")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror", "../htmlmixed/htmlmixed"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { - "use strict"; - - var indentingTags = ["template", "literal", "msg", "fallbackmsg", "let", "if", "elseif", - "else", "switch", "case", "default", "foreach", "ifempty", "for", - "call", "param", "deltemplate", "delcall", "log"]; - - CodeMirror.defineMode("soy", function(config) { - var textMode = CodeMirror.getMode(config, "text/plain"); - var modes = { - html: CodeMirror.getMode(config, {name: "text/html", multilineTagIndentFactor: 2, multilineTagIndentPastTag: false}), - attributes: textMode, - text: textMode, - uri: textMode, - css: CodeMirror.getMode(config, "text/css"), - js: CodeMirror.getMode(config, {name: "text/javascript", statementIndent: 2 * config.indentUnit}) - }; - - function last(array) { - return array[array.length - 1]; - } - - function tokenUntil(stream, state, untilRegExp) { - var oldString = stream.string; - var match = untilRegExp.exec(oldString.substr(stream.pos)); - if (match) { - // We don't use backUp because it backs up just the position, not the state. - // This uses an undocumented API. - stream.string = oldString.substr(0, stream.pos + match.index); - } - var result = stream.hideFirstChars(state.indent, function() { - return state.localMode.token(stream, state.localState); - }); - stream.string = oldString; - return result; - } - - return { - startState: function() { - return { - kind: [], - kindTag: [], - soyState: [], - indent: 0, - localMode: modes.html, - localState: CodeMirror.startState(modes.html) - }; - }, - - copyState: function(state) { - return { - tag: state.tag, // Last seen Soy tag. - kind: state.kind.concat([]), // Values of kind="" attributes. - kindTag: state.kindTag.concat([]), // Opened tags with kind="" attributes. - soyState: state.soyState.concat([]), - indent: state.indent, // Indentation of the following line. - localMode: state.localMode, - localState: CodeMirror.copyState(state.localMode, state.localState) - }; - }, - - token: function(stream, state) { - var match; - - switch (last(state.soyState)) { - case "comment": - if (stream.match(/^.*?\*\//)) { - state.soyState.pop(); - } else { - stream.skipToEnd(); - } - return "comment"; - - case "variable": - if (stream.match(/^}/)) { - state.indent -= 2 * config.indentUnit; - state.soyState.pop(); - return "variable-2"; - } - stream.next(); - return null; - - case "tag": - if (stream.match(/^\/?}/)) { - if (state.tag == "/template" || state.tag == "/deltemplate") state.indent = 0; - else state.indent -= (stream.current() == "/}" || indentingTags.indexOf(state.tag) == -1 ? 2 : 1) * config.indentUnit; - state.soyState.pop(); - return "keyword"; - } else if (stream.match(/^(\w+)(?==)/)) { - if (stream.current() == "kind" && (match = stream.match(/^="([^"]+)/, false))) { - var kind = match[1]; - state.kind.push(kind); - state.kindTag.push(state.tag); - state.localMode = modes[kind] || modes.html; - state.localState = CodeMirror.startState(state.localMode); - } - return "attribute"; - } else if (stream.match(/^"/)) { - state.soyState.push("string"); - return "string"; - } - stream.next(); - return null; - - case "literal": - if (stream.match(/^(?=\{\/literal})/)) { - state.indent -= config.indentUnit; - state.soyState.pop(); - return this.token(stream, state); - } - return tokenUntil(stream, state, /\{\/literal}/); - - case "string": - if (stream.match(/^.*?"/)) { - state.soyState.pop(); - } else { - stream.skipToEnd(); - } - return "string"; - } - - if (stream.match(/^\/\*/)) { - state.soyState.push("comment"); - return "comment"; - } else if (stream.match(stream.sol() ? /^\s*\/\/.*/ : /^\s+\/\/.*/)) { - return "comment"; - } else if (stream.match(/^\{\$\w*/)) { - state.indent += 2 * config.indentUnit; - state.soyState.push("variable"); - return "variable-2"; - } else if (stream.match(/^\{literal}/)) { - state.indent += config.indentUnit; - state.soyState.push("literal"); - return "keyword"; - } else if (match = stream.match(/^\{([\/@\\]?\w*)/)) { - if (match[1] != "/switch") - state.indent += (/^(\/|(else|elseif|case|default)$)/.test(match[1]) && state.tag != "switch" ? 1 : 2) * config.indentUnit; - state.tag = match[1]; - if (state.tag == "/" + last(state.kindTag)) { - // We found the tag that opened the current kind="". - state.kind.pop(); - state.kindTag.pop(); - state.localMode = modes[last(state.kind)] || modes.html; - state.localState = CodeMirror.startState(state.localMode); - } - state.soyState.push("tag"); - return "keyword"; - } - - return tokenUntil(stream, state, /\{|\s+\/\/|\/\*/); - }, - - indent: function(state, textAfter) { - var indent = state.indent, top = last(state.soyState); - if (top == "comment") return CodeMirror.Pass; - - if (top == "literal") { - if (/^\{\/literal}/.test(textAfter)) indent -= config.indentUnit; - } else { - if (/^\s*\{\/(template|deltemplate)\b/.test(textAfter)) return 0; - if (/^\{(\/|(fallbackmsg|elseif|else|ifempty)\b)/.test(textAfter)) indent -= config.indentUnit; - if (state.tag != "switch" && /^\{(case|default)\b/.test(textAfter)) indent -= config.indentUnit; - if (/^\{\/switch\b/.test(textAfter)) indent -= config.indentUnit; - } - if (indent && state.localMode.indent) - indent += state.localMode.indent(state.localState, textAfter); - return indent; - }, - - innerMode: function(state) { - if (state.soyState.length && last(state.soyState) != "literal") return null; - else return {state: state.localState, mode: state.localMode}; - }, - - electricInput: /^\s*\{(\/|\/template|\/deltemplate|\/switch|fallbackmsg|elseif|else|case|default|ifempty|\/literal\})$/, - lineComment: "//", - blockCommentStart: "/*", - blockCommentEnd: "*/", - blockCommentContinue: " * ", - fold: "indent" - }; - }, "htmlmixed"); - - CodeMirror.registerHelper("hintWords", "soy", indentingTags.concat( - ["delpackage", "namespace", "alias", "print", "css", "debugger"])); - - CodeMirror.defineMIME("text/x-soy", "soy"); -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/sparql/index.html b/src/main/resources/static/editor.md-master/lib/codemirror/mode/sparql/index.html deleted file mode 100644 index 84ef4d3..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/sparql/index.html +++ /dev/null @@ -1,61 +0,0 @@ - - -CodeMirror: SPARQL mode - - - - - - - - - - -
-

SPARQL mode

-
- - -

MIME types defined: application/sparql-query.

- -
diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/sparql/sparql.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/sparql/sparql.js deleted file mode 100644 index bbf8a76..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/sparql/sparql.js +++ /dev/null @@ -1,174 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { -"use strict"; - -CodeMirror.defineMode("sparql", function(config) { - var indentUnit = config.indentUnit; - var curPunc; - - function wordRegexp(words) { - return new RegExp("^(?:" + words.join("|") + ")$", "i"); - } - var ops = wordRegexp(["str", "lang", "langmatches", "datatype", "bound", "sameterm", "isiri", "isuri", - "iri", "uri", "bnode", "count", "sum", "min", "max", "avg", "sample", - "group_concat", "rand", "abs", "ceil", "floor", "round", "concat", "substr", "strlen", - "replace", "ucase", "lcase", "encode_for_uri", "contains", "strstarts", "strends", - "strbefore", "strafter", "year", "month", "day", "hours", "minutes", "seconds", - "timezone", "tz", "now", "uuid", "struuid", "md5", "sha1", "sha256", "sha384", - "sha512", "coalesce", "if", "strlang", "strdt", "isnumeric", "regex", "exists", - "isblank", "isliteral", "a"]); - var keywords = wordRegexp(["base", "prefix", "select", "distinct", "reduced", "construct", "describe", - "ask", "from", "named", "where", "order", "limit", "offset", "filter", "optional", - "graph", "by", "asc", "desc", "as", "having", "undef", "values", "group", - "minus", "in", "not", "service", "silent", "using", "insert", "delete", "union", - "true", "false", "with", - "data", "copy", "to", "move", "add", "create", "drop", "clear", "load"]); - var operatorChars = /[*+\-<>=&|\^\/!\?]/; - - function tokenBase(stream, state) { - var ch = stream.next(); - curPunc = null; - if (ch == "$" || ch == "?") { - if(ch == "?" && stream.match(/\s/, false)){ - return "operator"; - } - stream.match(/^[\w\d]*/); - return "variable-2"; - } - else if (ch == "<" && !stream.match(/^[\s\u00a0=]/, false)) { - stream.match(/^[^\s\u00a0>]*>?/); - return "atom"; - } - else if (ch == "\"" || ch == "'") { - state.tokenize = tokenLiteral(ch); - return state.tokenize(stream, state); - } - else if (/[{}\(\),\.;\[\]]/.test(ch)) { - curPunc = ch; - return "bracket"; - } - else if (ch == "#") { - stream.skipToEnd(); - return "comment"; - } - else if (operatorChars.test(ch)) { - stream.eatWhile(operatorChars); - return "operator"; - } - else if (ch == ":") { - stream.eatWhile(/[\w\d\._\-]/); - return "atom"; - } - else if (ch == "@") { - stream.eatWhile(/[a-z\d\-]/i); - return "meta"; - } - else { - stream.eatWhile(/[_\w\d]/); - if (stream.eat(":")) { - stream.eatWhile(/[\w\d_\-]/); - return "atom"; - } - var word = stream.current(); - if (ops.test(word)) - return "builtin"; - else if (keywords.test(word)) - return "keyword"; - else - return "variable"; - } - } - - function tokenLiteral(quote) { - return function(stream, state) { - var escaped = false, ch; - while ((ch = stream.next()) != null) { - if (ch == quote && !escaped) { - state.tokenize = tokenBase; - break; - } - escaped = !escaped && ch == "\\"; - } - return "string"; - }; - } - - function pushContext(state, type, col) { - state.context = {prev: state.context, indent: state.indent, col: col, type: type}; - } - function popContext(state) { - state.indent = state.context.indent; - state.context = state.context.prev; - } - - return { - startState: function() { - return {tokenize: tokenBase, - context: null, - indent: 0, - col: 0}; - }, - - token: function(stream, state) { - if (stream.sol()) { - if (state.context && state.context.align == null) state.context.align = false; - state.indent = stream.indentation(); - } - if (stream.eatSpace()) return null; - var style = state.tokenize(stream, state); - - if (style != "comment" && state.context && state.context.align == null && state.context.type != "pattern") { - state.context.align = true; - } - - if (curPunc == "(") pushContext(state, ")", stream.column()); - else if (curPunc == "[") pushContext(state, "]", stream.column()); - else if (curPunc == "{") pushContext(state, "}", stream.column()); - else if (/[\]\}\)]/.test(curPunc)) { - while (state.context && state.context.type == "pattern") popContext(state); - if (state.context && curPunc == state.context.type) popContext(state); - } - else if (curPunc == "." && state.context && state.context.type == "pattern") popContext(state); - else if (/atom|string|variable/.test(style) && state.context) { - if (/[\}\]]/.test(state.context.type)) - pushContext(state, "pattern", stream.column()); - else if (state.context.type == "pattern" && !state.context.align) { - state.context.align = true; - state.context.col = stream.column(); - } - } - - return style; - }, - - indent: function(state, textAfter) { - var firstChar = textAfter && textAfter.charAt(0); - var context = state.context; - if (/[\]\}]/.test(firstChar)) - while (context && context.type == "pattern") context = context.prev; - - var closing = context && firstChar == context.type; - if (!context) - return 0; - else if (context.type == "pattern") - return context.col; - else if (context.align) - return context.col + (closing ? 0 : 1); - else - return context.indent + (closing ? 0 : indentUnit); - } - }; -}); - -CodeMirror.defineMIME("application/sparql-query", "sparql"); - -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/spreadsheet/index.html b/src/main/resources/static/editor.md-master/lib/codemirror/mode/spreadsheet/index.html deleted file mode 100644 index a52f76f..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/spreadsheet/index.html +++ /dev/null @@ -1,42 +0,0 @@ - - -CodeMirror: Spreadsheet mode - - - - - - - - - - -
-

Spreadsheet mode

-
- - - -

MIME types defined: text/x-spreadsheet.

- -

The Spreadsheet Mode

-

Created by Robert Plummer

-
diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/spreadsheet/spreadsheet.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/spreadsheet/spreadsheet.js deleted file mode 100644 index 6fab00f..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/spreadsheet/spreadsheet.js +++ /dev/null @@ -1,109 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { - "use strict"; - - CodeMirror.defineMode("spreadsheet", function () { - return { - startState: function () { - return { - stringType: null, - stack: [] - }; - }, - token: function (stream, state) { - if (!stream) return; - - //check for state changes - if (state.stack.length === 0) { - //strings - if ((stream.peek() == '"') || (stream.peek() == "'")) { - state.stringType = stream.peek(); - stream.next(); // Skip quote - state.stack.unshift("string"); - } - } - - //return state - //stack has - switch (state.stack[0]) { - case "string": - while (state.stack[0] === "string" && !stream.eol()) { - if (stream.peek() === state.stringType) { - stream.next(); // Skip quote - state.stack.shift(); // Clear flag - } else if (stream.peek() === "\\") { - stream.next(); - stream.next(); - } else { - stream.match(/^.[^\\\"\']*/); - } - } - return "string"; - - case "characterClass": - while (state.stack[0] === "characterClass" && !stream.eol()) { - if (!(stream.match(/^[^\]\\]+/) || stream.match(/^\\./))) - state.stack.shift(); - } - return "operator"; - } - - var peek = stream.peek(); - - //no stack - switch (peek) { - case "[": - stream.next(); - state.stack.unshift("characterClass"); - return "bracket"; - case ":": - stream.next(); - return "operator"; - case "\\": - if (stream.match(/\\[a-z]+/)) return "string-2"; - else return null; - case ".": - case ",": - case ";": - case "*": - case "-": - case "+": - case "^": - case "<": - case "/": - case "=": - stream.next(); - return "atom"; - case "$": - stream.next(); - return "builtin"; - } - - if (stream.match(/\d+/)) { - if (stream.match(/^\w+/)) return "error"; - return "number"; - } else if (stream.match(/^[a-zA-Z_]\w*/)) { - if (stream.match(/(?=[\(.])/, false)) return "keyword"; - return "variable-2"; - } else if (["[", "]", "(", ")", "{", "}"].indexOf(peek) != -1) { - stream.next(); - return "bracket"; - } else if (!stream.eatSpace()) { - stream.next(); - } - return null; - } - }; - }); - - CodeMirror.defineMIME("text/x-spreadsheet", "spreadsheet"); -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/sql/index.html b/src/main/resources/static/editor.md-master/lib/codemirror/mode/sql/index.html deleted file mode 100644 index a0d8d9e..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/sql/index.html +++ /dev/null @@ -1,84 +0,0 @@ - - -CodeMirror: SQL Mode for CodeMirror - - - - - - - - - - - - -
-

SQL Mode for CodeMirror

-
- -
-

MIME types defined: - text/x-sql, - text/x-mysql, - text/x-mariadb, - text/x-cassandra, - text/x-plsql, - text/x-mssql, - text/x-hive. -

- - -
diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/sql/sql.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/sql/sql.js deleted file mode 100644 index ee6c194..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/sql/sql.js +++ /dev/null @@ -1,391 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { -"use strict"; - -CodeMirror.defineMode("sql", function(config, parserConfig) { - "use strict"; - - var client = parserConfig.client || {}, - atoms = parserConfig.atoms || {"false": true, "true": true, "null": true}, - builtin = parserConfig.builtin || {}, - keywords = parserConfig.keywords || {}, - operatorChars = parserConfig.operatorChars || /^[*+\-%<>!=&|~^]/, - support = parserConfig.support || {}, - hooks = parserConfig.hooks || {}, - dateSQL = parserConfig.dateSQL || {"date" : true, "time" : true, "timestamp" : true}; - - function tokenBase(stream, state) { - var ch = stream.next(); - - // call hooks from the mime type - if (hooks[ch]) { - var result = hooks[ch](stream, state); - if (result !== false) return result; - } - - if (support.hexNumber == true && - ((ch == "0" && stream.match(/^[xX][0-9a-fA-F]+/)) - || (ch == "x" || ch == "X") && stream.match(/^'[0-9a-fA-F]+'/))) { - // hex - // ref: http://dev.mysql.com/doc/refman/5.5/en/hexadecimal-literals.html - return "number"; - } else if (support.binaryNumber == true && - (((ch == "b" || ch == "B") && stream.match(/^'[01]+'/)) - || (ch == "0" && stream.match(/^b[01]+/)))) { - // bitstring - // ref: http://dev.mysql.com/doc/refman/5.5/en/bit-field-literals.html - return "number"; - } else if (ch.charCodeAt(0) > 47 && ch.charCodeAt(0) < 58) { - // numbers - // ref: http://dev.mysql.com/doc/refman/5.5/en/number-literals.html - stream.match(/^[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?/); - support.decimallessFloat == true && stream.eat('.'); - return "number"; - } else if (ch == "?" && (stream.eatSpace() || stream.eol() || stream.eat(";"))) { - // placeholders - return "variable-3"; - } else if (ch == "'" || (ch == '"' && support.doubleQuote)) { - // strings - // ref: http://dev.mysql.com/doc/refman/5.5/en/string-literals.html - state.tokenize = tokenLiteral(ch); - return state.tokenize(stream, state); - } else if ((((support.nCharCast == true && (ch == "n" || ch == "N")) - || (support.charsetCast == true && ch == "_" && stream.match(/[a-z][a-z0-9]*/i))) - && (stream.peek() == "'" || stream.peek() == '"'))) { - // charset casting: _utf8'str', N'str', n'str' - // ref: http://dev.mysql.com/doc/refman/5.5/en/string-literals.html - return "keyword"; - } else if (/^[\(\),\;\[\]]/.test(ch)) { - // no highlightning - return null; - } else if (support.commentSlashSlash && ch == "/" && stream.eat("/")) { - // 1-line comment - stream.skipToEnd(); - return "comment"; - } else if ((support.commentHash && ch == "#") - || (ch == "-" && stream.eat("-") && (!support.commentSpaceRequired || stream.eat(" ")))) { - // 1-line comments - // ref: https://kb.askmonty.org/en/comment-syntax/ - stream.skipToEnd(); - return "comment"; - } else if (ch == "/" && stream.eat("*")) { - // multi-line comments - // ref: https://kb.askmonty.org/en/comment-syntax/ - state.tokenize = tokenComment; - return state.tokenize(stream, state); - } else if (ch == ".") { - // .1 for 0.1 - if (support.zerolessFloat == true && stream.match(/^(?:\d+(?:e[+-]?\d+)?)/i)) { - return "number"; - } - // .table_name (ODBC) - // // ref: http://dev.mysql.com/doc/refman/5.6/en/identifier-qualifiers.html - if (support.ODBCdotTable == true && stream.match(/^[a-zA-Z_]+/)) { - return "variable-2"; - } - } else if (operatorChars.test(ch)) { - // operators - stream.eatWhile(operatorChars); - return null; - } else if (ch == '{' && - (stream.match(/^( )*(d|D|t|T|ts|TS)( )*'[^']*'( )*}/) || stream.match(/^( )*(d|D|t|T|ts|TS)( )*"[^"]*"( )*}/))) { - // dates (weird ODBC syntax) - // ref: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-literals.html - return "number"; - } else { - stream.eatWhile(/^[_\w\d]/); - var word = stream.current().toLowerCase(); - // dates (standard SQL syntax) - // ref: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-literals.html - if (dateSQL.hasOwnProperty(word) && (stream.match(/^( )+'[^']*'/) || stream.match(/^( )+"[^"]*"/))) - return "number"; - if (atoms.hasOwnProperty(word)) return "atom"; - if (builtin.hasOwnProperty(word)) return "builtin"; - if (keywords.hasOwnProperty(word)) return "keyword"; - if (client.hasOwnProperty(word)) return "string-2"; - return null; - } - } - - // 'string', with char specified in quote escaped by '\' - function tokenLiteral(quote) { - return function(stream, state) { - var escaped = false, ch; - while ((ch = stream.next()) != null) { - if (ch == quote && !escaped) { - state.tokenize = tokenBase; - break; - } - escaped = !escaped && ch == "\\"; - } - return "string"; - }; - } - function tokenComment(stream, state) { - while (true) { - if (stream.skipTo("*")) { - stream.next(); - if (stream.eat("/")) { - state.tokenize = tokenBase; - break; - } - } else { - stream.skipToEnd(); - break; - } - } - return "comment"; - } - - function pushContext(stream, state, type) { - state.context = { - prev: state.context, - indent: stream.indentation(), - col: stream.column(), - type: type - }; - } - - function popContext(state) { - state.indent = state.context.indent; - state.context = state.context.prev; - } - - return { - startState: function() { - return {tokenize: tokenBase, context: null}; - }, - - token: function(stream, state) { - if (stream.sol()) { - if (state.context && state.context.align == null) - state.context.align = false; - } - if (stream.eatSpace()) return null; - - var style = state.tokenize(stream, state); - if (style == "comment") return style; - - if (state.context && state.context.align == null) - state.context.align = true; - - var tok = stream.current(); - if (tok == "(") - pushContext(stream, state, ")"); - else if (tok == "[") - pushContext(stream, state, "]"); - else if (state.context && state.context.type == tok) - popContext(state); - return style; - }, - - indent: function(state, textAfter) { - var cx = state.context; - if (!cx) return CodeMirror.Pass; - var closing = textAfter.charAt(0) == cx.type; - if (cx.align) return cx.col + (closing ? 0 : 1); - else return cx.indent + (closing ? 0 : config.indentUnit); - }, - - blockCommentStart: "/*", - blockCommentEnd: "*/", - lineComment: support.commentSlashSlash ? "//" : support.commentHash ? "#" : null - }; -}); - -(function() { - "use strict"; - - // `identifier` - function hookIdentifier(stream) { - // MySQL/MariaDB identifiers - // ref: http://dev.mysql.com/doc/refman/5.6/en/identifier-qualifiers.html - var ch; - while ((ch = stream.next()) != null) { - if (ch == "`" && !stream.eat("`")) return "variable-2"; - } - stream.backUp(stream.current().length - 1); - return stream.eatWhile(/\w/) ? "variable-2" : null; - } - - // variable token - function hookVar(stream) { - // variables - // @@prefix.varName @varName - // varName can be quoted with ` or ' or " - // ref: http://dev.mysql.com/doc/refman/5.5/en/user-variables.html - if (stream.eat("@")) { - stream.match(/^session\./); - stream.match(/^local\./); - stream.match(/^global\./); - } - - if (stream.eat("'")) { - stream.match(/^.*'/); - return "variable-2"; - } else if (stream.eat('"')) { - stream.match(/^.*"/); - return "variable-2"; - } else if (stream.eat("`")) { - stream.match(/^.*`/); - return "variable-2"; - } else if (stream.match(/^[0-9a-zA-Z$\.\_]+/)) { - return "variable-2"; - } - return null; - }; - - // short client keyword token - function hookClient(stream) { - // \N means NULL - // ref: http://dev.mysql.com/doc/refman/5.5/en/null-values.html - if (stream.eat("N")) { - return "atom"; - } - // \g, etc - // ref: http://dev.mysql.com/doc/refman/5.5/en/mysql-commands.html - return stream.match(/^[a-zA-Z.#!?]/) ? "variable-2" : null; - } - - // these keywords are used by all SQL dialects (however, a mode can still overwrite it) - var sqlKeywords = "alter and as asc between by count create delete desc distinct drop from having in insert into is join like not on or order select set table union update values where "; - - // turn a space-separated list into an array - function set(str) { - var obj = {}, words = str.split(" "); - for (var i = 0; i < words.length; ++i) obj[words[i]] = true; - return obj; - } - - // A generic SQL Mode. It's not a standard, it just try to support what is generally supported - CodeMirror.defineMIME("text/x-sql", { - name: "sql", - keywords: set(sqlKeywords + "begin"), - builtin: set("bool boolean bit blob enum long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision real date datetime year unsigned signed decimal numeric"), - atoms: set("false true null unknown"), - operatorChars: /^[*+\-%<>!=]/, - dateSQL: set("date time timestamp"), - support: set("ODBCdotTable doubleQuote binaryNumber hexNumber") - }); - - CodeMirror.defineMIME("text/x-mssql", { - name: "sql", - client: set("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"), - keywords: set(sqlKeywords + "begin trigger proc view index for add constraint key primary foreign collate clustered nonclustered"), - builtin: set("bigint numeric bit smallint decimal smallmoney int tinyint money float real char varchar text nchar nvarchar ntext binary varbinary image cursor timestamp hierarchyid uniqueidentifier sql_variant xml table "), - atoms: set("false true null unknown"), - operatorChars: /^[*+\-%<>!=]/, - dateSQL: set("date datetimeoffset datetime2 smalldatetime datetime time"), - hooks: { - "@": hookVar - } - }); - - CodeMirror.defineMIME("text/x-mysql", { - name: "sql", - client: set("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"), - keywords: set(sqlKeywords + "accessible action add after algorithm all analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general get global grant grants group groupby_concat handler hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show signal slave slow smallint snapshot soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views warnings when while with work write xa xor year_month zerofill begin do then else loop repeat"), - builtin: set("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric"), - atoms: set("false true null unknown"), - operatorChars: /^[*+\-%<>!=&|^]/, - dateSQL: set("date time timestamp"), - support: set("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired"), - hooks: { - "@": hookVar, - "`": hookIdentifier, - "\\": hookClient - } - }); - - CodeMirror.defineMIME("text/x-mariadb", { - name: "sql", - client: set("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"), - keywords: set(sqlKeywords + "accessible action add after algorithm all always analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general generated get global grant grants group groupby_concat handler hard hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password persistent phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show shutdown signal slave slow smallint snapshot soft soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views virtual warnings when while with work write xa xor year_month zerofill begin do then else loop repeat"), - builtin: set("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric"), - atoms: set("false true null unknown"), - operatorChars: /^[*+\-%<>!=&|^]/, - dateSQL: set("date time timestamp"), - support: set("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired"), - hooks: { - "@": hookVar, - "`": hookIdentifier, - "\\": hookClient - } - }); - - // the query language used by Apache Cassandra is called CQL, but this mime type - // is called Cassandra to avoid confusion with Contextual Query Language - CodeMirror.defineMIME("text/x-cassandra", { - name: "sql", - client: { }, - keywords: set("use select from using consistency where limit first reversed first and in insert into values using consistency ttl update set delete truncate begin batch apply create keyspace with columnfamily primary key index on drop alter type add any one quorum all local_quorum each_quorum"), - builtin: set("ascii bigint blob boolean counter decimal double float int text timestamp uuid varchar varint"), - atoms: set("false true"), - operatorChars: /^[<>=]/, - dateSQL: { }, - support: set("commentSlashSlash decimallessFloat"), - hooks: { } - }); - - // this is based on Peter Raganitsch's 'plsql' mode - CodeMirror.defineMIME("text/x-plsql", { - name: "sql", - client: set("appinfo arraysize autocommit autoprint autorecovery autotrace blockterminator break btitle cmdsep colsep compatibility compute concat copycommit copytypecheck define describe echo editfile embedded escape exec execute feedback flagger flush heading headsep instance linesize lno loboffset logsource long longchunksize markup native newpage numformat numwidth pagesize pause pno recsep recsepchar release repfooter repheader serveroutput shiftinout show showmode size spool sqlblanklines sqlcase sqlcode sqlcontinue sqlnumber sqlpluscompatibility sqlprefix sqlprompt sqlterminator suffix tab term termout time timing trimout trimspool ttitle underline verify version wrap"), - keywords: set("abort accept access add all alter and any array arraylen as asc assert assign at attributes audit authorization avg base_table begin between binary_integer body boolean by case cast char char_base check close cluster clusters colauth column comment commit compress connect connected constant constraint crash create current currval cursor data_base database date dba deallocate debugoff debugon decimal declare default definition delay delete desc digits dispose distinct do drop else elseif elsif enable end entry escape exception exception_init exchange exclusive exists exit external fast fetch file for force form from function generic goto grant group having identified if immediate in increment index indexes indicator initial initrans insert interface intersect into is key level library like limited local lock log logging long loop master maxextents maxtrans member minextents minus mislabel mode modify multiset new next no noaudit nocompress nologging noparallel not nowait number_base object of off offline on online only open option or order out package parallel partition pctfree pctincrease pctused pls_integer positive positiven pragma primary prior private privileges procedure public raise range raw read rebuild record ref references refresh release rename replace resource restrict return returning returns reverse revoke rollback row rowid rowlabel rownum rows run savepoint schema segment select separate session set share snapshot some space split sql start statement storage subtype successful synonym tabauth table tables tablespace task terminate then to trigger truncate type union unique unlimited unrecoverable unusable update use using validate value values variable view views when whenever where while with work"), - builtin: set("abs acos add_months ascii asin atan atan2 average bfile bfilename bigserial bit blob ceil character chartorowid chr clob concat convert cos cosh count dec decode deref dual dump dup_val_on_index empty error exp false float floor found glb greatest hextoraw initcap instr instrb int integer isopen last_day least lenght lenghtb ln lower lpad ltrim lub make_ref max min mlslabel mod months_between natural naturaln nchar nclob new_time next_day nextval nls_charset_decl_len nls_charset_id nls_charset_name nls_initcap nls_lower nls_sort nls_upper nlssort no_data_found notfound null number numeric nvarchar2 nvl others power rawtohex real reftohex round rowcount rowidtochar rowtype rpad rtrim serial sign signtype sin sinh smallint soundex sqlcode sqlerrm sqrt stddev string substr substrb sum sysdate tan tanh to_char text to_date to_label to_multi_byte to_number to_single_byte translate true trunc uid unlogged upper user userenv varchar varchar2 variance varying vsize xml"), - operatorChars: /^[*+\-%<>!=~]/, - dateSQL: set("date time timestamp"), - support: set("doubleQuote nCharCast zerolessFloat binaryNumber hexNumber") - }); - - // Created to support specific hive keywords - CodeMirror.defineMIME("text/x-hive", { - name: "sql", - keywords: set("select alter $elem$ $key$ $value$ add after all analyze and archive as asc before between binary both bucket buckets by cascade case cast change cluster clustered clusterstatus collection column columns comment compute concatenate continue create cross cursor data database databases dbproperties deferred delete delimited desc describe directory disable distinct distribute drop else enable end escaped exclusive exists explain export extended external false fetch fields fileformat first format formatted from full function functions grant group having hold_ddltime idxproperties if import in index indexes inpath inputdriver inputformat insert intersect into is items join keys lateral left like limit lines load local location lock locks mapjoin materialized minus msck no_drop nocompress not of offline on option or order out outer outputdriver outputformat overwrite partition partitioned partitions percent plus preserve procedure purge range rcfile read readonly reads rebuild recordreader recordwriter recover reduce regexp rename repair replace restrict revoke right rlike row schema schemas semi sequencefile serde serdeproperties set shared show show_database sort sorted ssl statistics stored streamtable table tables tablesample tblproperties temporary terminated textfile then tmp to touch transform trigger true unarchive undo union uniquejoin unlock update use using utc utc_tmestamp view when where while with"), - builtin: set("bool boolean long timestamp tinyint smallint bigint int float double date datetime unsigned string array struct map uniontype"), - atoms: set("false true null unknown"), - operatorChars: /^[*+\-%<>!=]/, - dateSQL: set("date timestamp"), - support: set("ODBCdotTable doubleQuote binaryNumber hexNumber") - }); -}()); - -}); - -/* - How Properties of Mime Types are used by SQL Mode - ================================================= - - keywords: - A list of keywords you want to be highlighted. - builtin: - A list of builtin types you want to be highlighted (if you want types to be of class "builtin" instead of "keyword"). - operatorChars: - All characters that must be handled as operators. - client: - Commands parsed and executed by the client (not the server). - support: - A list of supported syntaxes which are not common, but are supported by more than 1 DBMS. - * ODBCdotTable: .tableName - * zerolessFloat: .1 - * doubleQuote - * nCharCast: N'string' - * charsetCast: _utf8'string' - * commentHash: use # char for comments - * commentSlashSlash: use // for comments - * commentSpaceRequired: require a space after -- for comments - atoms: - Keywords that must be highlighted as atoms,. Some DBMS's support more atoms than others: - UNKNOWN, INFINITY, UNDERFLOW, NaN... - dateSQL: - Used for date/time SQL standard syntax, because not all DBMS's support same temporal types. -*/ diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/stex/index.html b/src/main/resources/static/editor.md-master/lib/codemirror/mode/stex/index.html deleted file mode 100644 index 14679da..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/stex/index.html +++ /dev/null @@ -1,110 +0,0 @@ - - -CodeMirror: sTeX mode - - - - - - - - - -
-

sTeX mode

-
- - -

MIME types defined: text/x-stex.

- -

Parsing/Highlighting Tests: normal, verbose.

- -
diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/stex/stex.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/stex/stex.js deleted file mode 100644 index 835ed46..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/stex/stex.js +++ /dev/null @@ -1,251 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -/* - * Author: Constantin Jucovschi (c.jucovschi@jacobs-university.de) - * Licence: MIT - */ - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { - "use strict"; - - CodeMirror.defineMode("stex", function() { - "use strict"; - - function pushCommand(state, command) { - state.cmdState.push(command); - } - - function peekCommand(state) { - if (state.cmdState.length > 0) { - return state.cmdState[state.cmdState.length - 1]; - } else { - return null; - } - } - - function popCommand(state) { - var plug = state.cmdState.pop(); - if (plug) { - plug.closeBracket(); - } - } - - // returns the non-default plugin closest to the end of the list - function getMostPowerful(state) { - var context = state.cmdState; - for (var i = context.length - 1; i >= 0; i--) { - var plug = context[i]; - if (plug.name == "DEFAULT") { - continue; - } - return plug; - } - return { styleIdentifier: function() { return null; } }; - } - - function addPluginPattern(pluginName, cmdStyle, styles) { - return function () { - this.name = pluginName; - this.bracketNo = 0; - this.style = cmdStyle; - this.styles = styles; - this.argument = null; // \begin and \end have arguments that follow. These are stored in the plugin - - this.styleIdentifier = function() { - return this.styles[this.bracketNo - 1] || null; - }; - this.openBracket = function() { - this.bracketNo++; - return "bracket"; - }; - this.closeBracket = function() {}; - }; - } - - var plugins = {}; - - plugins["importmodule"] = addPluginPattern("importmodule", "tag", ["string", "builtin"]); - plugins["documentclass"] = addPluginPattern("documentclass", "tag", ["", "atom"]); - plugins["usepackage"] = addPluginPattern("usepackage", "tag", ["atom"]); - plugins["begin"] = addPluginPattern("begin", "tag", ["atom"]); - plugins["end"] = addPluginPattern("end", "tag", ["atom"]); - - plugins["DEFAULT"] = function () { - this.name = "DEFAULT"; - this.style = "tag"; - - this.styleIdentifier = this.openBracket = this.closeBracket = function() {}; - }; - - function setState(state, f) { - state.f = f; - } - - // called when in a normal (no environment) context - function normal(source, state) { - var plug; - // Do we look like '\command' ? If so, attempt to apply the plugin 'command' - if (source.match(/^\\[a-zA-Z@]+/)) { - var cmdName = source.current().slice(1); - plug = plugins[cmdName] || plugins["DEFAULT"]; - plug = new plug(); - pushCommand(state, plug); - setState(state, beginParams); - return plug.style; - } - - // escape characters - if (source.match(/^\\[$&%#{}_]/)) { - return "tag"; - } - - // white space control characters - if (source.match(/^\\[,;!\/\\]/)) { - return "tag"; - } - - // find if we're starting various math modes - if (source.match("\\[")) { - setState(state, function(source, state){ return inMathMode(source, state, "\\]"); }); - return "keyword"; - } - if (source.match("$$")) { - setState(state, function(source, state){ return inMathMode(source, state, "$$"); }); - return "keyword"; - } - if (source.match("$")) { - setState(state, function(source, state){ return inMathMode(source, state, "$"); }); - return "keyword"; - } - - var ch = source.next(); - if (ch == "%") { - source.skipToEnd(); - return "comment"; - } else if (ch == '}' || ch == ']') { - plug = peekCommand(state); - if (plug) { - plug.closeBracket(ch); - setState(state, beginParams); - } else { - return "error"; - } - return "bracket"; - } else if (ch == '{' || ch == '[') { - plug = plugins["DEFAULT"]; - plug = new plug(); - pushCommand(state, plug); - return "bracket"; - } else if (/\d/.test(ch)) { - source.eatWhile(/[\w.%]/); - return "atom"; - } else { - source.eatWhile(/[\w\-_]/); - plug = getMostPowerful(state); - if (plug.name == 'begin') { - plug.argument = source.current(); - } - return plug.styleIdentifier(); - } - } - - function inMathMode(source, state, endModeSeq) { - if (source.eatSpace()) { - return null; - } - if (source.match(endModeSeq)) { - setState(state, normal); - return "keyword"; - } - if (source.match(/^\\[a-zA-Z@]+/)) { - return "tag"; - } - if (source.match(/^[a-zA-Z]+/)) { - return "variable-2"; - } - // escape characters - if (source.match(/^\\[$&%#{}_]/)) { - return "tag"; - } - // white space control characters - if (source.match(/^\\[,;!\/]/)) { - return "tag"; - } - // special math-mode characters - if (source.match(/^[\^_&]/)) { - return "tag"; - } - // non-special characters - if (source.match(/^[+\-<>|=,\/@!*:;'"`~#?]/)) { - return null; - } - if (source.match(/^(\d+\.\d*|\d*\.\d+|\d+)/)) { - return "number"; - } - var ch = source.next(); - if (ch == "{" || ch == "}" || ch == "[" || ch == "]" || ch == "(" || ch == ")") { - return "bracket"; - } - - if (ch == "%") { - source.skipToEnd(); - return "comment"; - } - return "error"; - } - - function beginParams(source, state) { - var ch = source.peek(), lastPlug; - if (ch == '{' || ch == '[') { - lastPlug = peekCommand(state); - lastPlug.openBracket(ch); - source.eat(ch); - setState(state, normal); - return "bracket"; - } - if (/[ \t\r]/.test(ch)) { - source.eat(ch); - return null; - } - setState(state, normal); - popCommand(state); - - return normal(source, state); - } - - return { - startState: function() { - return { - cmdState: [], - f: normal - }; - }, - copyState: function(s) { - return { - cmdState: s.cmdState.slice(), - f: s.f - }; - }, - token: function(stream, state) { - return state.f(stream, state); - }, - blankLine: function(state) { - state.f = normal; - state.cmdState.length = 0; - }, - lineComment: "%" - }; - }); - - CodeMirror.defineMIME("text/x-stex", "stex"); - CodeMirror.defineMIME("text/x-latex", "stex"); - -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/stex/test.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/stex/test.js deleted file mode 100644 index 22f027e..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/stex/test.js +++ /dev/null @@ -1,123 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function() { - var mode = CodeMirror.getMode({tabSize: 4}, "stex"); - function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); } - - MT("word", - "foo"); - - MT("twoWords", - "foo bar"); - - MT("beginEndDocument", - "[tag \\begin][bracket {][atom document][bracket }]", - "[tag \\end][bracket {][atom document][bracket }]"); - - MT("beginEndEquation", - "[tag \\begin][bracket {][atom equation][bracket }]", - " E=mc^2", - "[tag \\end][bracket {][atom equation][bracket }]"); - - MT("beginModule", - "[tag \\begin][bracket {][atom module][bracket }[[]]]"); - - MT("beginModuleId", - "[tag \\begin][bracket {][atom module][bracket }[[]id=bbt-size[bracket ]]]"); - - MT("importModule", - "[tag \\importmodule][bracket [[][string b-b-t][bracket ]]{][builtin b-b-t][bracket }]"); - - MT("importModulePath", - "[tag \\importmodule][bracket [[][tag \\KWARCslides][bracket {][string dmath/en/cardinality][bracket }]]{][builtin card][bracket }]"); - - MT("psForPDF", - "[tag \\PSforPDF][bracket [[][atom 1][bracket ]]{]#1[bracket }]"); - - MT("comment", - "[comment % foo]"); - - MT("tagComment", - "[tag \\item][comment % bar]"); - - MT("commentTag", - " [comment % \\item]"); - - MT("commentLineBreak", - "[comment %]", - "foo"); - - MT("tagErrorCurly", - "[tag \\begin][error }][bracket {]"); - - MT("tagErrorSquare", - "[tag \\item][error ]]][bracket {]"); - - MT("commentCurly", - "[comment % }]"); - - MT("tagHash", - "the [tag \\#] key"); - - MT("tagNumber", - "a [tag \\$][atom 5] stetson"); - - MT("tagPercent", - "[atom 100][tag \\%] beef"); - - MT("tagAmpersand", - "L [tag \\&] N"); - - MT("tagUnderscore", - "foo[tag \\_]bar"); - - MT("tagBracketOpen", - "[tag \\emph][bracket {][tag \\{][bracket }]"); - - MT("tagBracketClose", - "[tag \\emph][bracket {][tag \\}][bracket }]"); - - MT("tagLetterNumber", - "section [tag \\S][atom 1]"); - - MT("textTagNumber", - "para [tag \\P][atom 2]"); - - MT("thinspace", - "x[tag \\,]y"); - - MT("thickspace", - "x[tag \\;]y"); - - MT("negativeThinspace", - "x[tag \\!]y"); - - MT("periodNotSentence", - "J.\\ L.\\ is"); - - MT("periodSentence", - "X[tag \\@]. The"); - - MT("italicCorrection", - "[bracket {][tag \\em] If[tag \\/][bracket }] I"); - - MT("tagBracket", - "[tag \\newcommand][bracket {][tag \\pop][bracket }]"); - - MT("inlineMathTagFollowedByNumber", - "[keyword $][tag \\pi][number 2][keyword $]"); - - MT("inlineMath", - "[keyword $][number 3][variable-2 x][tag ^][number 2.45]-[tag \\sqrt][bracket {][tag \\$\\alpha][bracket }] = [number 2][keyword $] other text"); - - MT("displayMath", - "More [keyword $$]\t[variable-2 S][tag ^][variable-2 n][tag \\sum] [variable-2 i][keyword $$] other text"); - - MT("mathWithComment", - "[keyword $][variable-2 x] [comment % $]", - "[variable-2 y][keyword $] other text"); - - MT("lineBreakArgument", - "[tag \\\\][bracket [[][atom 1cm][bracket ]]]"); -})(); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/stylus/index.html b/src/main/resources/static/editor.md-master/lib/codemirror/mode/stylus/index.html deleted file mode 100644 index 354bf30..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/stylus/index.html +++ /dev/null @@ -1,104 +0,0 @@ - - -CodeMirror: Stylus mode - - - - - - - - - - - -
-

Stylus mode

-
-
- - -

MIME types defined: text/x-styl.

- -
diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/stylus/stylus.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/stylus/stylus.js deleted file mode 100644 index 6f7c754..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/stylus/stylus.js +++ /dev/null @@ -1,444 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { - "use strict"; - - CodeMirror.defineMode("stylus", function(config) { - - var operatorsRegexp = /^(\?:?|\+[+=]?|-[\-=]?|\*[\*=]?|\/=?|[=!:\?]?=|<=?|>=?|%=?|&&|\|=?|\~|!|\^|\\)/, - delimitersRegexp = /^(?:[()\[\]{},:`=;]|\.\.?\.?)/, - wordOperatorsRegexp = wordRegexp(wordOperators), - commonKeywordsRegexp = wordRegexp(commonKeywords), - commonAtomsRegexp = wordRegexp(commonAtoms), - commonDefRegexp = wordRegexp(commonDef), - vendorPrefixesRegexp = new RegExp(/^\-(moz|ms|o|webkit)-/), - cssValuesWithBracketsRegexp = new RegExp("^(" + cssValuesWithBrackets_.join("|") + ")\\([\\w\-\\#\\,\\.\\%\\s\\(\\)]*\\)"); - - var tokenBase = function(stream, state) { - - if (stream.eatSpace()) return null; - - var ch = stream.peek(); - - // Single line Comment - if (stream.match('//')) { - stream.skipToEnd(); - return "comment"; - } - - // Multiline Comment - if (stream.match('/*')) { - state.tokenizer = multilineComment; - return state.tokenizer(stream, state); - } - - // Strings - if (ch === '"' || ch === "'") { - stream.next(); - state.tokenizer = buildStringTokenizer(ch); - return "string"; - } - - // Def - if (ch === "@") { - stream.next(); - if (stream.match(/extend/)) { - dedent(state); // remove indentation after selectors - } else if (stream.match(/media[\w-\s]*[\w-]/)) { - indent(state); - } else if(stream.eatWhile(/[\w-]/)) { - if(stream.current().match(commonDefRegexp)) { - indent(state); - } - } - return "def"; - } - - // Number - if (stream.match(/^-?[0-9\.]/, false)) { - - // Floats - if (stream.match(/^-?\d*\.\d+(e[\+\-]?\d+)?/i) || stream.match(/^-?\d+\.\d*/)) { - - // Prevent from getting extra . on 1.. - if (stream.peek() == ".") { - stream.backUp(1); - } - // Units - stream.eatWhile(/[a-z%]/i); - return "number"; - } - // Integers - if (stream.match(/^-?[1-9]\d*(e[\+\-]?\d+)?/) || stream.match(/^-?0(?![\dx])/i)) { - // Units - stream.eatWhile(/[a-z%]/i); - return "number"; - } - } - - // Hex color and id selector - if (ch === "#") { - stream.next(); - - // Hex color - if (stream.match(/^[0-9a-f]{6}|[0-9a-f]{3}/i)) { - return "atom"; - } - - // ID selector - if (stream.match(/^[\w-]+/i)) { - indent(state); - return "builtin"; - } - } - - // Vendor prefixes - if (stream.match(vendorPrefixesRegexp)) { - return "meta"; - } - - // Gradients and animation as CSS value - if (stream.match(cssValuesWithBracketsRegexp)) { - return "atom"; - } - - // Mixins / Functions with indentation - if (stream.sol() && stream.match(/^\.?[a-z][\w-]*\(/i)) { - stream.backUp(1); - indent(state); - return "keyword"; - } - - // Mixins / Functions - if (stream.match(/^\.?[a-z][\w-]*\(/i)) { - stream.backUp(1); - return "keyword"; - } - - // +Block mixins - if (stream.match(/^(\+|\-)[a-z][\w-]+\(/i)) { - stream.backUp(1); - indent(state); - return "keyword"; - } - - // url tokens - if (stream.match(/^url/) && stream.peek() === "(") { - state.tokenizer = urlTokens; - if(!stream.peek()) { - state.cursorHalf = 0; - } - return "atom"; - } - - // Class - if (stream.match(/^\.[a-z][\w-]*/i)) { - indent(state); - return "qualifier"; - } - - // & Parent Reference with BEM naming - if (stream.match(/^(_|__|-|--)[a-z0-9-]+/)) { - return "qualifier"; - } - - // Pseudo elements/classes - if (ch == ':' && stream.match(/^::?[\w-]+/)) { - indent(state); - return "variable-3"; - } - - // Conditionals - if (stream.match(wordRegexp(["for", "if", "else", "unless"]))) { - indent(state); - return "keyword"; - } - - // Keywords - if (stream.match(commonKeywordsRegexp)) { - return "keyword"; - } - - // Atoms - if (stream.match(commonAtomsRegexp)) { - return "atom"; - } - - // Variables - if (stream.match(/^\$?[a-z][\w-]+\s?=(\s|[\w-'"\$])/i)) { - stream.backUp(2); - var cssPropertie = stream.current().toLowerCase().match(/[\w-]+/)[0]; - return cssProperties[cssPropertie] === undefined ? "variable-2" : "property"; - } else if (stream.match(/\$[\w-\.]+/i)) { - return "variable-2"; - } else if (stream.match(/\$?[\w-]+\.[\w-]+/i)) { - var cssTypeSelector = stream.current().toLowerCase().match(/[\w]+/)[0]; - if(cssTypeSelectors[cssTypeSelector] === undefined) { - return "variable-2"; - } else stream.backUp(stream.current().length); - } - - // !important - if (ch === "!") { - stream.next(); - return stream.match(/^[\w]+/) ? "keyword": "operator"; - } - - // / Root Reference - if (stream.match(/^\/(:|\.|#|[a-z])/)) { - stream.backUp(1); - return "variable-3"; - } - - // Operators and delimiters - if (stream.match(operatorsRegexp) || stream.match(wordOperatorsRegexp)) { - return "operator"; - } - if (stream.match(delimitersRegexp)) { - return null; - } - - // & Parent Reference - if (ch === "&") { - stream.next(); - return "variable-3"; - } - - // Font family - if (stream.match(/^[A-Z][a-z0-9-]+/)) { - return "string"; - } - - // CSS rule - // NOTE: Some css selectors and property values have the same name - // (embed, menu, pre, progress, sub, table), - // so they will have the same color (.cm-atom). - if (stream.match(/[\w-]*/i)) { - - var word = stream.current().toLowerCase(); - - if(cssProperties[word] !== undefined) { - // CSS property - if(!stream.eol()) - return "property"; - else - return "variable-2"; - - } else if(cssValues[word] !== undefined) { - // CSS value - return "atom"; - - } else if(cssTypeSelectors[word] !== undefined) { - // CSS type selectors - indent(state); - return "tag"; - - } else if(word) { - // By default variable-2 - return "variable-2"; - } - } - - // Handle non-detected items - stream.next(); - return null; - - }; - - var tokenLexer = function(stream, state) { - - if (stream.sol()) { - state.indentCount = 0; - } - - var style = state.tokenizer(stream, state); - var current = stream.current(); - - if (stream.eol() && (current === "}" || current === ",")) { - dedent(state); - } - - if (style !== null) { - var startOfToken = stream.pos - current.length; - var withCurrentIndent = startOfToken + (config.indentUnit * state.indentCount); - - var newScopes = []; - - for (var i = 0; i < state.scopes.length; i++) { - var scope = state.scopes[i]; - - if (scope.offset <= withCurrentIndent) { - newScopes.push(scope); - } - } - - state.scopes = newScopes; - } - - return style; - }; - - return { - startState: function() { - return { - tokenizer: tokenBase, - scopes: [{offset: 0, type: 'styl'}] - }; - }, - - token: function(stream, state) { - var style = tokenLexer(stream, state); - state.lastToken = { style: style, content: stream.current() }; - return style; - }, - - indent: function(state) { - return state.scopes[0].offset; - }, - - lineComment: "//", - fold: "indent" - - }; - - function urlTokens(stream, state) { - var ch = stream.peek(); - - if (ch === ")") { - stream.next(); - state.tokenizer = tokenBase; - return "operator"; - } else if (ch === "(") { - stream.next(); - stream.eatSpace(); - - return "operator"; - } else if (ch === "'" || ch === '"') { - state.tokenizer = buildStringTokenizer(stream.next()); - return "string"; - } else { - state.tokenizer = buildStringTokenizer(")", false); - return "string"; - } - } - - function multilineComment(stream, state) { - if (stream.skipTo("*/")) { - stream.next(); - stream.next(); - state.tokenizer = tokenBase; - } else { - stream.next(); - } - return "comment"; - } - - function buildStringTokenizer(quote, greedy) { - - if(greedy == null) { - greedy = true; - } - - function stringTokenizer(stream, state) { - var nextChar = stream.next(); - var peekChar = stream.peek(); - var previousChar = stream.string.charAt(stream.pos-2); - - var endingString = ((nextChar !== "\\" && peekChar === quote) || - (nextChar === quote && previousChar !== "\\")); - - if (endingString) { - if (nextChar !== quote && greedy) { - stream.next(); - } - state.tokenizer = tokenBase; - return "string"; - } else if (nextChar === "#" && peekChar === "{") { - state.tokenizer = buildInterpolationTokenizer(stringTokenizer); - stream.next(); - return "operator"; - } else { - return "string"; - } - } - - return stringTokenizer; - } - - function buildInterpolationTokenizer(currentTokenizer) { - return function(stream, state) { - if (stream.peek() === "}") { - stream.next(); - state.tokenizer = currentTokenizer; - return "operator"; - } else { - return tokenBase(stream, state); - } - }; - } - - function indent(state) { - if (state.indentCount == 0) { - state.indentCount++; - var lastScopeOffset = state.scopes[0].offset; - var currentOffset = lastScopeOffset + config.indentUnit; - state.scopes.unshift({ offset:currentOffset }); - } - } - - function dedent(state) { - if (state.scopes.length == 1) { return true; } - state.scopes.shift(); - } - - }); - - // https://developer.mozilla.org/en-US/docs/Web/HTML/Element - var cssTypeSelectors_ = ["a","abbr","address","area","article","aside","audio", "b", "base","bdi","bdo","bgsound","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","nobr","noframes","noscript","object","ol","optgroup","option","output","p","param","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr"]; - // https://github.com/csscomb/csscomb.js/blob/master/config/zen.json - var cssProperties_ = ["position","top","right","bottom","left","z-index","display","visibility","flex-direction","flex-order","flex-pack","float","clear","flex-align","overflow","overflow-x","overflow-y","overflow-scrolling","clip","box-sizing","margin","margin-top","margin-right","margin-bottom","margin-left","padding","padding-top","padding-right","padding-bottom","padding-left","min-width","min-height","max-width","max-height","width","height","outline","outline-width","outline-style","outline-color","outline-offset","border","border-spacing","border-collapse","border-width","border-style","border-color","border-top","border-top-width","border-top-style","border-top-color","border-right","border-right-width","border-right-style","border-right-color","border-bottom","border-bottom-width","border-bottom-style","border-bottom-color","border-left","border-left-width","border-left-style","border-left-color","border-radius","border-top-left-radius","border-top-right-radius","border-bottom-right-radius","border-bottom-left-radius","border-image","border-image-source","border-image-slice","border-image-width","border-image-outset","border-image-repeat","border-top-image","border-right-image","border-bottom-image","border-left-image","border-corner-image","border-top-left-image","border-top-right-image","border-bottom-right-image","border-bottom-left-image","background","filter:progid:DXImageTransform\\.Microsoft\\.AlphaImageLoader","background-color","background-image","background-attachment","background-position","background-position-x","background-position-y","background-clip","background-origin","background-size","background-repeat","box-decoration-break","box-shadow","color","table-layout","caption-side","empty-cells","list-style","list-style-position","list-style-type","list-style-image","quotes","content","counter-increment","counter-reset","writing-mode","vertical-align","text-align","text-align-last","text-decoration","text-emphasis","text-emphasis-position","text-emphasis-style","text-emphasis-color","text-indent","-ms-text-justify","text-justify","text-outline","text-transform","text-wrap","text-overflow","text-overflow-ellipsis","text-overflow-mode","text-size-adjust","text-shadow","white-space","word-spacing","word-wrap","word-break","tab-size","hyphens","letter-spacing","font","font-weight","font-style","font-variant","font-size-adjust","font-stretch","font-size","font-family","src","line-height","opacity","filter:\\\\\\\\'progid:DXImageTransform.Microsoft.Alpha","filter:progid:DXImageTransform.Microsoft.Alpha\\(Opacity","interpolation-mode","filter","resize","cursor","nav-index","nav-up","nav-right","nav-down","nav-left","transition","transition-delay","transition-timing-function","transition-duration","transition-property","transform","transform-origin","animation","animation-name","animation-duration","animation-play-state","animation-timing-function","animation-delay","animation-iteration-count","animation-direction","pointer-events","unicode-bidi","direction","columns","column-span","column-width","column-count","column-fill","column-gap","column-rule","column-rule-width","column-rule-style","column-rule-color","break-before","break-inside","break-after","page-break-before","page-break-inside","page-break-after","orphans","widows","zoom","max-zoom","min-zoom","user-zoom","orientation","text-rendering","speak","animation-fill-mode","backface-visibility","user-drag","user-select","appearance"]; - // https://github.com/codemirror/CodeMirror/blob/master/mode/css/css.js#L501 - var cssValues_ = ["above","absolute","activeborder","activecaption","afar","after-white-space","ahead","alias","all","all-scroll","alternate","always","amharic","amharic-abegede","antialiased","appworkspace","arabic-indic","armenian","asterisks","auto","avoid","avoid-column","avoid-page","avoid-region","background","backwards","baseline","below","bidi-override","binary","bengali","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","cambodian","capitalize","caps-lock-indicator","captiontext","caret","cell","center","checkbox","circle","cjk-earthly-branch","cjk-heavenly-stem","cjk-ideographic","clear","clip","close-quote","col-resize","collapse","column","compact","condensed","contain","content","content-box","context-menu","continuous","copy","cover","crop","cross","crosshair","currentcolor","cursive","dashed","decimal","decimal-leading-zero","default","default-button","destination-atop","destination-in","destination-out","destination-over","devanagari","disc","discard","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic","ethiopic-abegede","ethiopic-abegede-am-et","ethiopic-abegede-gez","ethiopic-abegede-ti-er","ethiopic-abegede-ti-et","ethiopic-halehame-aa-er","ethiopic-halehame-aa-et","ethiopic-halehame-am-et","ethiopic-halehame-gez","ethiopic-halehame-om-et","ethiopic-halehame-sid-et","ethiopic-halehame-so-et","ethiopic-halehame-ti-er","ethiopic-halehame-ti-et","ethiopic-halehame-tig","ew-resize","expanded","extra-condensed","extra-expanded","fantasy","fast","fill","fixed","flat","footnotes","forwards","from","geometricPrecision","georgian","graytext","groove","gujarati","gurmukhi","hand","hangul","hangul-consonant","hebrew","help","hidden","hide","higher","highlight","highlighttext","hiragana","hiragana-iroha","horizontal","hsl","hsla","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-table","inset","inside","intrinsic","invert","italic","justify","kannada","katakana","katakana-iroha","keep-all","khmer","landscape","lao","large","larger","left","level","lighter","line-through","linear","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-alpha","lower-armenian","lower-greek","lower-hexadecimal","lower-latin","lower-norwegian","lower-roman","lowercase","ltr","malayalam","match","media-controls-background","media-current-time-display","media-fullscreen-button","media-mute-button","media-play-button","media-return-to-realtime-button","media-rewind-button","media-seek-back-button","media-seek-forward-button","media-slider","media-sliderthumb","media-time-remaining-display","media-volume-slider","media-volume-slider-container","media-volume-sliderthumb","medium","menu","menulist","menulist-button","menulist-text","menulist-textfield","menutext","message-box","middle","min-intrinsic","mix","mongolian","monospace","move","multiple","myanmar","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","nw-resize","nwse-resize","oblique","octal","open-quote","optimizeLegibility","optimizeSpeed","oriya","oromo","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","persian","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","round","row-resize","rtl","run-in","running","s-resize","sans-serif","scroll","scrollbar","se-resize","searchfield","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","semi-condensed","semi-expanded","separate","serif","show","sidama","single","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small-caps","small-caption","smaller","solid","somali","source-atop","source-in","source-out","source-over","space","square","square-button","start","static","status-bar","stretch","stroke","sub","subpixel-antialiased","super","sw-resize","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","telugu","text","text-bottom","text-top","textfield","thai","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","tibetan","tigre","tigrinya-er","tigrinya-er-abegede","tigrinya-et","tigrinya-et-abegede","to","top","transparent","ultra-condensed","ultra-expanded","underline","up","upper-alpha","upper-armenian","upper-greek","upper-hexadecimal","upper-latin","upper-norwegian","upper-roman","uppercase","urdu","url","vertical","vertical-text","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","x-large","x-small","xor","xx-large","xx-small","bicubic","optimizespeed","grayscale"]; - var cssColorValues_ = ["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"]; - var cssValuesWithBrackets_ = ["gradient","linear-gradient","radial-gradient","repeating-linear-gradient","repeating-radial-gradient","cubic-bezier","translateX","translateY","translate3d","rotate3d","scale","scale3d","perspective","skewX"]; - - var wordOperators = ["in", "and", "or", "not", "is a", "is", "isnt", "defined", "if unless"], - commonKeywords = ["for", "if", "else", "unless", "return"], - commonAtoms = ["null", "true", "false", "href", "title", "type", "not-allowed", "readonly", "disabled"], - commonDef = ["@font-face", "@keyframes", "@media", "@viewport", "@page", "@host", "@supports", "@block", "@css"], - cssTypeSelectors = keySet(cssTypeSelectors_), - cssProperties = keySet(cssProperties_), - cssValues = keySet(cssValues_.concat(cssColorValues_)), - hintWords = wordOperators.concat(commonKeywords, - commonAtoms, - commonDef, - cssTypeSelectors_, - cssProperties_, - cssValues_, - cssValuesWithBrackets_, - cssColorValues_); - - function wordRegexp(words) { - return new RegExp("^((" + words.join(")|(") + "))\\b"); - }; - - function keySet(array) { - var keys = {}; - for (var i = 0; i < array.length; ++i) { - keys[array[i]] = true; - } - return keys; - }; - - CodeMirror.registerHelper("hintWords", "stylus", hintWords); - CodeMirror.defineMIME("text/x-styl", "stylus"); - -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/tcl/index.html b/src/main/resources/static/editor.md-master/lib/codemirror/mode/tcl/index.html deleted file mode 100644 index ce4ad34..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/tcl/index.html +++ /dev/null @@ -1,142 +0,0 @@ - - -CodeMirror: Tcl mode - - - - - - - - - - -
-

Tcl mode

-
- - -

MIME types defined: text/x-tcl.

- -
diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/tcl/tcl.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/tcl/tcl.js deleted file mode 100644 index 056accb..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/tcl/tcl.js +++ /dev/null @@ -1,147 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -//tcl mode by Ford_Lawnmower :: Based on Velocity mode by Steve O'Hara - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { -"use strict"; - -CodeMirror.defineMode("tcl", function() { - function parseWords(str) { - var obj = {}, words = str.split(" "); - for (var i = 0; i < words.length; ++i) obj[words[i]] = true; - return obj; - } - var keywords = parseWords("Tcl safe after append array auto_execok auto_import auto_load " + - "auto_mkindex auto_mkindex_old auto_qualify auto_reset bgerror " + - "binary break catch cd close concat continue dde eof encoding error " + - "eval exec exit expr fblocked fconfigure fcopy file fileevent filename " + - "filename flush for foreach format gets glob global history http if " + - "incr info interp join lappend lindex linsert list llength load lrange " + - "lreplace lsearch lset lsort memory msgcat namespace open package parray " + - "pid pkg::create pkg_mkIndex proc puts pwd re_syntax read regex regexp " + - "registry regsub rename resource return scan seek set socket source split " + - "string subst switch tcl_endOfWord tcl_findLibrary tcl_startOfNextWord " + - "tcl_wordBreakAfter tcl_startOfPreviousWord tcl_wordBreakBefore tcltest " + - "tclvars tell time trace unknown unset update uplevel upvar variable " + - "vwait"); - var functions = parseWords("if elseif else and not or eq ne in ni for foreach while switch"); - var isOperatorChar = /[+\-*&%=<>!?^\/\|]/; - function chain(stream, state, f) { - state.tokenize = f; - return f(stream, state); - } - function tokenBase(stream, state) { - var beforeParams = state.beforeParams; - state.beforeParams = false; - var ch = stream.next(); - if ((ch == '"' || ch == "'") && state.inParams) - return chain(stream, state, tokenString(ch)); - else if (/[\[\]{}\(\),;\.]/.test(ch)) { - if (ch == "(" && beforeParams) state.inParams = true; - else if (ch == ")") state.inParams = false; - return null; - } - else if (/\d/.test(ch)) { - stream.eatWhile(/[\w\.]/); - return "number"; - } - else if (ch == "#" && stream.eat("*")) { - return chain(stream, state, tokenComment); - } - else if (ch == "#" && stream.match(/ *\[ *\[/)) { - return chain(stream, state, tokenUnparsed); - } - else if (ch == "#" && stream.eat("#")) { - stream.skipToEnd(); - return "comment"; - } - else if (ch == '"') { - stream.skipTo(/"/); - return "comment"; - } - else if (ch == "$") { - stream.eatWhile(/[$_a-z0-9A-Z\.{:]/); - stream.eatWhile(/}/); - state.beforeParams = true; - return "builtin"; - } - else if (isOperatorChar.test(ch)) { - stream.eatWhile(isOperatorChar); - return "comment"; - } - else { - stream.eatWhile(/[\w\$_{}\xa1-\uffff]/); - var word = stream.current().toLowerCase(); - if (keywords && keywords.propertyIsEnumerable(word)) - return "keyword"; - if (functions && functions.propertyIsEnumerable(word)) { - state.beforeParams = true; - return "keyword"; - } - return null; - } - } - function tokenString(quote) { - return function(stream, state) { - var escaped = false, next, end = false; - while ((next = stream.next()) != null) { - if (next == quote && !escaped) { - end = true; - break; - } - escaped = !escaped && next == "\\"; - } - if (end) state.tokenize = tokenBase; - return "string"; - }; - } - function tokenComment(stream, state) { - var maybeEnd = false, ch; - while (ch = stream.next()) { - if (ch == "#" && maybeEnd) { - state.tokenize = tokenBase; - break; - } - maybeEnd = (ch == "*"); - } - return "comment"; - } - function tokenUnparsed(stream, state) { - var maybeEnd = 0, ch; - while (ch = stream.next()) { - if (ch == "#" && maybeEnd == 2) { - state.tokenize = tokenBase; - break; - } - if (ch == "]") - maybeEnd++; - else if (ch != " ") - maybeEnd = 0; - } - return "meta"; - } - return { - startState: function() { - return { - tokenize: tokenBase, - beforeParams: false, - inParams: false - }; - }, - token: function(stream, state) { - if (stream.eatSpace()) return null; - return state.tokenize(stream, state); - } - }; -}); -CodeMirror.defineMIME("text/x-tcl", "tcl"); - -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/textile/index.html b/src/main/resources/static/editor.md-master/lib/codemirror/mode/textile/index.html deleted file mode 100644 index 42b156b..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/textile/index.html +++ /dev/null @@ -1,191 +0,0 @@ - - -CodeMirror: Textile mode - - - - - - - - - -
-

Textile mode

-
- - -

MIME types defined: text/x-textile.

- -

Parsing/Highlighting Tests: normal, verbose.

- -
diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/textile/test.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/textile/test.js deleted file mode 100644 index 49cdaf9..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/textile/test.js +++ /dev/null @@ -1,417 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function() { - var mode = CodeMirror.getMode({tabSize: 4}, 'textile'); - function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); } - - MT('simpleParagraphs', - 'Some text.', - '', - 'Some more text.'); - - /* - * Phrase Modifiers - */ - - MT('em', - 'foo [em _bar_]'); - - MT('emBoogus', - 'code_mirror'); - - MT('strong', - 'foo [strong *bar*]'); - - MT('strongBogus', - '3 * 3 = 9'); - - MT('italic', - 'foo [em __bar__]'); - - MT('italicBogus', - 'code__mirror'); - - MT('bold', - 'foo [strong **bar**]'); - - MT('boldBogus', - '3 ** 3 = 27'); - - MT('simpleLink', - '[link "CodeMirror":http://codemirror.net]'); - - MT('referenceLink', - '[link "CodeMirror":code_mirror]', - 'Normal Text.', - '[link [[code_mirror]]http://codemirror.net]'); - - MT('footCite', - 'foo bar[qualifier [[1]]]'); - - MT('footCiteBogus', - 'foo bar[[1a2]]'); - - MT('special-characters', - 'Registered [tag (r)], ' + - 'Trademark [tag (tm)], and ' + - 'Copyright [tag (c)] 2008'); - - MT('cite', - "A book is [keyword ??The Count of Monte Cristo??] by Dumas."); - - MT('additionAndDeletion', - 'The news networks declared [negative -Al Gore-] ' + - '[positive +George W. Bush+] the winner in Florida.'); - - MT('subAndSup', - 'f(x, n) = log [builtin ~4~] x [builtin ^n^]'); - - MT('spanAndCode', - 'A [quote %span element%] and [atom @code element@]'); - - MT('spanBogus', - 'Percentage 25% is not a span.'); - - MT('citeBogus', - 'Question? is not a citation.'); - - MT('codeBogus', - 'user@example.com'); - - MT('subBogus', - '~username'); - - MT('supBogus', - 'foo ^ bar'); - - MT('deletionBogus', - '3 - 3 = 0'); - - MT('additionBogus', - '3 + 3 = 6'); - - MT('image', - 'An image: [string !http://www.example.com/image.png!]'); - - MT('imageWithAltText', - 'An image: [string !http://www.example.com/image.png (Alt Text)!]'); - - MT('imageWithUrl', - 'An image: [string !http://www.example.com/image.png!:http://www.example.com/]'); - - /* - * Headers - */ - - MT('h1', - '[header&header-1 h1. foo]'); - - MT('h2', - '[header&header-2 h2. foo]'); - - MT('h3', - '[header&header-3 h3. foo]'); - - MT('h4', - '[header&header-4 h4. foo]'); - - MT('h5', - '[header&header-5 h5. foo]'); - - MT('h6', - '[header&header-6 h6. foo]'); - - MT('h7Bogus', - 'h7. foo'); - - MT('multipleHeaders', - '[header&header-1 h1. Heading 1]', - '', - 'Some text.', - '', - '[header&header-2 h2. Heading 2]', - '', - 'More text.'); - - MT('h1inline', - '[header&header-1 h1. foo ][header&header-1&em _bar_][header&header-1 baz]'); - - /* - * Lists - */ - - MT('ul', - 'foo', - 'bar', - '', - '[variable-2 * foo]', - '[variable-2 * bar]'); - - MT('ulNoBlank', - 'foo', - 'bar', - '[variable-2 * foo]', - '[variable-2 * bar]'); - - MT('ol', - 'foo', - 'bar', - '', - '[variable-2 # foo]', - '[variable-2 # bar]'); - - MT('olNoBlank', - 'foo', - 'bar', - '[variable-2 # foo]', - '[variable-2 # bar]'); - - MT('ulFormatting', - '[variable-2 * ][variable-2&em _foo_][variable-2 bar]', - '[variable-2 * ][variable-2&strong *][variable-2&em&strong _foo_]' + - '[variable-2&strong *][variable-2 bar]', - '[variable-2 * ][variable-2&strong *foo*][variable-2 bar]'); - - MT('olFormatting', - '[variable-2 # ][variable-2&em _foo_][variable-2 bar]', - '[variable-2 # ][variable-2&strong *][variable-2&em&strong _foo_]' + - '[variable-2&strong *][variable-2 bar]', - '[variable-2 # ][variable-2&strong *foo*][variable-2 bar]'); - - MT('ulNested', - '[variable-2 * foo]', - '[variable-3 ** bar]', - '[keyword *** bar]', - '[variable-2 **** bar]', - '[variable-3 ** bar]'); - - MT('olNested', - '[variable-2 # foo]', - '[variable-3 ## bar]', - '[keyword ### bar]', - '[variable-2 #### bar]', - '[variable-3 ## bar]'); - - MT('ulNestedWithOl', - '[variable-2 * foo]', - '[variable-3 ## bar]', - '[keyword *** bar]', - '[variable-2 #### bar]', - '[variable-3 ** bar]'); - - MT('olNestedWithUl', - '[variable-2 # foo]', - '[variable-3 ** bar]', - '[keyword ### bar]', - '[variable-2 **** bar]', - '[variable-3 ## bar]'); - - MT('definitionList', - '[number - coffee := Hot ][number&em _and_][number black]', - '', - 'Normal text.'); - - MT('definitionListSpan', - '[number - coffee :=]', - '', - '[number Hot ][number&em _and_][number black =:]', - '', - 'Normal text.'); - - MT('boo', - '[number - dog := woof woof]', - '[number - cat := meow meow]', - '[number - whale :=]', - '[number Whale noises.]', - '', - '[number Also, ][number&em _splashing_][number . =:]'); - - /* - * Attributes - */ - - MT('divWithAttribute', - '[punctuation div][punctuation&attribute (#my-id)][punctuation . foo bar]'); - - MT('divWithAttributeAnd2emRightPadding', - '[punctuation div][punctuation&attribute (#my-id)((][punctuation . foo bar]'); - - MT('divWithClassAndId', - '[punctuation div][punctuation&attribute (my-class#my-id)][punctuation . foo bar]'); - - MT('paragraphWithCss', - 'p[attribute {color:red;}]. foo bar'); - - MT('paragraphNestedStyles', - 'p. [strong *foo ][strong&em _bar_][strong *]'); - - MT('paragraphWithLanguage', - 'p[attribute [[fr]]]. Parlez-vous français?'); - - MT('paragraphLeftAlign', - 'p[attribute <]. Left'); - - MT('paragraphRightAlign', - 'p[attribute >]. Right'); - - MT('paragraphRightAlign', - 'p[attribute =]. Center'); - - MT('paragraphJustified', - 'p[attribute <>]. Justified'); - - MT('paragraphWithLeftIndent1em', - 'p[attribute (]. Left'); - - MT('paragraphWithRightIndent1em', - 'p[attribute )]. Right'); - - MT('paragraphWithLeftIndent2em', - 'p[attribute ((]. Left'); - - MT('paragraphWithRightIndent2em', - 'p[attribute ))]. Right'); - - MT('paragraphWithLeftIndent3emRightIndent2em', - 'p[attribute ((())]. Right'); - - MT('divFormatting', - '[punctuation div. ][punctuation&strong *foo ]' + - '[punctuation&strong&em _bar_][punctuation&strong *]'); - - MT('phraseModifierAttributes', - 'p[attribute (my-class)]. This is a paragraph that has a class and' + - ' this [em _][em&attribute (#special-phrase)][em emphasized phrase_]' + - ' has an id.'); - - MT('linkWithClass', - '[link "(my-class). This is a link with class":http://redcloth.org]'); - - /* - * Layouts - */ - - MT('paragraphLayouts', - 'p. This is one paragraph.', - '', - 'p. This is another.'); - - MT('div', - '[punctuation div. foo bar]'); - - MT('pre', - '[operator pre. Text]'); - - MT('bq.', - '[bracket bq. foo bar]', - '', - 'Normal text.'); - - MT('footnote', - '[variable fn123. foo ][variable&strong *bar*]'); - - /* - * Spanning Layouts - */ - - MT('bq..ThenParagraph', - '[bracket bq.. foo bar]', - '', - '[bracket More quote.]', - 'p. Normal Text'); - - MT('bq..ThenH1', - '[bracket bq.. foo bar]', - '', - '[bracket More quote.]', - '[header&header-1 h1. Header Text]'); - - MT('bc..ThenParagraph', - '[atom bc.. # Some ruby code]', - '[atom obj = {foo: :bar}]', - '[atom puts obj]', - '', - '[atom obj[[:love]] = "*love*"]', - '[atom puts obj.love.upcase]', - '', - 'p. Normal text.'); - - MT('fn1..ThenParagraph', - '[variable fn1.. foo bar]', - '', - '[variable More.]', - 'p. Normal Text'); - - MT('pre..ThenParagraph', - '[operator pre.. foo bar]', - '', - '[operator More.]', - 'p. Normal Text'); - - /* - * Tables - */ - - MT('table', - '[variable-3&operator |_. name |_. age|]', - '[variable-3 |][variable-3&strong *Walter*][variable-3 | 5 |]', - '[variable-3 |Florence| 6 |]', - '', - 'p. Normal text.'); - - MT('tableWithAttributes', - '[variable-3&operator |_. name |_. age|]', - '[variable-3 |][variable-3&attribute /2.][variable-3 Jim |]', - '[variable-3 |][variable-3&attribute \\2{color: red}.][variable-3 Sam |]'); - - /* - * HTML - */ - - MT('html', - '[comment
]', - '[comment
]', - '', - '[header&header-1 h1. Welcome]', - '', - '[variable-2 * Item one]', - '[variable-2 * Item two]', - '', - '[comment Example]', - '', - '[comment
]', - '[comment
]'); - - MT('inlineHtml', - 'I can use HTML directly in my [comment Textile].'); - - /* - * No-Textile - */ - - MT('notextile', - '[string-2 notextile. *No* formatting]'); - - MT('notextileInline', - 'Use [string-2 ==*asterisks*==] for [strong *strong*] text.'); - - MT('notextileWithPre', - '[operator pre. *No* formatting]'); - - MT('notextileWithSpanningPre', - '[operator pre.. *No* formatting]', - '', - '[operator *No* formatting]'); - - /* Only toggling phrases between non-word chars. */ - - MT('phrase-in-word', - 'foo_bar_baz'); - - MT('phrase-non-word', - '[negative -x-] aaa-bbb ccc-ddd [negative -eee-] fff [negative -ggg-]'); - - MT('phrase-lone-dash', - 'foo - bar - baz'); -})(); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/textile/textile.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/textile/textile.js deleted file mode 100644 index a6f7576..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/textile/textile.js +++ /dev/null @@ -1,469 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") { // CommonJS - mod(require("../../lib/codemirror")); - } else if (typeof define == "function" && define.amd) { // AMD - define(["../../lib/codemirror"], mod); - } else { // Plain browser env - mod(CodeMirror); - } -})(function(CodeMirror) { - "use strict"; - - var TOKEN_STYLES = { - addition: "positive", - attributes: "attribute", - bold: "strong", - cite: "keyword", - code: "atom", - definitionList: "number", - deletion: "negative", - div: "punctuation", - em: "em", - footnote: "variable", - footCite: "qualifier", - header: "header", - html: "comment", - image: "string", - italic: "em", - link: "link", - linkDefinition: "link", - list1: "variable-2", - list2: "variable-3", - list3: "keyword", - notextile: "string-2", - pre: "operator", - p: "property", - quote: "bracket", - span: "quote", - specialChar: "tag", - strong: "strong", - sub: "builtin", - sup: "builtin", - table: "variable-3", - tableHeading: "operator" - }; - - function startNewLine(stream, state) { - state.mode = Modes.newLayout; - state.tableHeading = false; - - if (state.layoutType === "definitionList" && state.spanningLayout && - stream.match(RE("definitionListEnd"), false)) - state.spanningLayout = false; - } - - function handlePhraseModifier(stream, state, ch) { - if (ch === "_") { - if (stream.eat("_")) - return togglePhraseModifier(stream, state, "italic", /__/, 2); - else - return togglePhraseModifier(stream, state, "em", /_/, 1); - } - - if (ch === "*") { - if (stream.eat("*")) { - return togglePhraseModifier(stream, state, "bold", /\*\*/, 2); - } - return togglePhraseModifier(stream, state, "strong", /\*/, 1); - } - - if (ch === "[") { - if (stream.match(/\d+\]/)) state.footCite = true; - return tokenStyles(state); - } - - if (ch === "(") { - var spec = stream.match(/^(r|tm|c)\)/); - if (spec) - return tokenStylesWith(state, TOKEN_STYLES.specialChar); - } - - if (ch === "<" && stream.match(/(\w+)[^>]+>[^<]+<\/\1>/)) - return tokenStylesWith(state, TOKEN_STYLES.html); - - if (ch === "?" && stream.eat("?")) - return togglePhraseModifier(stream, state, "cite", /\?\?/, 2); - - if (ch === "=" && stream.eat("=")) - return togglePhraseModifier(stream, state, "notextile", /==/, 2); - - if (ch === "-" && !stream.eat("-")) - return togglePhraseModifier(stream, state, "deletion", /-/, 1); - - if (ch === "+") - return togglePhraseModifier(stream, state, "addition", /\+/, 1); - - if (ch === "~") - return togglePhraseModifier(stream, state, "sub", /~/, 1); - - if (ch === "^") - return togglePhraseModifier(stream, state, "sup", /\^/, 1); - - if (ch === "%") - return togglePhraseModifier(stream, state, "span", /%/, 1); - - if (ch === "@") - return togglePhraseModifier(stream, state, "code", /@/, 1); - - if (ch === "!") { - var type = togglePhraseModifier(stream, state, "image", /(?:\([^\)]+\))?!/, 1); - stream.match(/^:\S+/); // optional Url portion - return type; - } - return tokenStyles(state); - } - - function togglePhraseModifier(stream, state, phraseModifier, closeRE, openSize) { - var charBefore = stream.pos > openSize ? stream.string.charAt(stream.pos - openSize - 1) : null; - var charAfter = stream.peek(); - if (state[phraseModifier]) { - if ((!charAfter || /\W/.test(charAfter)) && charBefore && /\S/.test(charBefore)) { - var type = tokenStyles(state); - state[phraseModifier] = false; - return type; - } - } else if ((!charBefore || /\W/.test(charBefore)) && charAfter && /\S/.test(charAfter) && - stream.match(new RegExp("^.*\\S" + closeRE.source + "(?:\\W|$)"), false)) { - state[phraseModifier] = true; - state.mode = Modes.attributes; - } - return tokenStyles(state); - }; - - function tokenStyles(state) { - var disabled = textileDisabled(state); - if (disabled) return disabled; - - var styles = []; - if (state.layoutType) styles.push(TOKEN_STYLES[state.layoutType]); - - styles = styles.concat(activeStyles( - state, "addition", "bold", "cite", "code", "deletion", "em", "footCite", - "image", "italic", "link", "span", "strong", "sub", "sup", "table", "tableHeading")); - - if (state.layoutType === "header") - styles.push(TOKEN_STYLES.header + "-" + state.header); - - return styles.length ? styles.join(" ") : null; - } - - function textileDisabled(state) { - var type = state.layoutType; - - switch(type) { - case "notextile": - case "code": - case "pre": - return TOKEN_STYLES[type]; - default: - if (state.notextile) - return TOKEN_STYLES.notextile + (type ? (" " + TOKEN_STYLES[type]) : ""); - return null; - } - } - - function tokenStylesWith(state, extraStyles) { - var disabled = textileDisabled(state); - if (disabled) return disabled; - - var type = tokenStyles(state); - if (extraStyles) - return type ? (type + " " + extraStyles) : extraStyles; - else - return type; - } - - function activeStyles(state) { - var styles = []; - for (var i = 1; i < arguments.length; ++i) { - if (state[arguments[i]]) - styles.push(TOKEN_STYLES[arguments[i]]); - } - return styles; - } - - function blankLine(state) { - var spanningLayout = state.spanningLayout, type = state.layoutType; - - for (var key in state) if (state.hasOwnProperty(key)) - delete state[key]; - - state.mode = Modes.newLayout; - if (spanningLayout) { - state.layoutType = type; - state.spanningLayout = true; - } - } - - var REs = { - cache: {}, - single: { - bc: "bc", - bq: "bq", - definitionList: /- [^(?::=)]+:=+/, - definitionListEnd: /.*=:\s*$/, - div: "div", - drawTable: /\|.*\|/, - foot: /fn\d+/, - header: /h[1-6]/, - html: /\s*<(?:\/)?(\w+)(?:[^>]+)?>(?:[^<]+<\/\1>)?/, - link: /[^"]+":\S/, - linkDefinition: /\[[^\s\]]+\]\S+/, - list: /(?:#+|\*+)/, - notextile: "notextile", - para: "p", - pre: "pre", - table: "table", - tableCellAttributes: /[\/\\]\d+/, - tableHeading: /\|_\./, - tableText: /[^"_\*\[\(\?\+~\^%@|-]+/, - text: /[^!"_=\*\[\(<\?\+~\^%@-]+/ - }, - attributes: { - align: /(?:<>|<|>|=)/, - selector: /\([^\(][^\)]+\)/, - lang: /\[[^\[\]]+\]/, - pad: /(?:\(+|\)+){1,2}/, - css: /\{[^\}]+\}/ - }, - createRe: function(name) { - switch (name) { - case "drawTable": - return REs.makeRe("^", REs.single.drawTable, "$"); - case "html": - return REs.makeRe("^", REs.single.html, "(?:", REs.single.html, ")*", "$"); - case "linkDefinition": - return REs.makeRe("^", REs.single.linkDefinition, "$"); - case "listLayout": - return REs.makeRe("^", REs.single.list, RE("allAttributes"), "*\\s+"); - case "tableCellAttributes": - return REs.makeRe("^", REs.choiceRe(REs.single.tableCellAttributes, - RE("allAttributes")), "+\\."); - case "type": - return REs.makeRe("^", RE("allTypes")); - case "typeLayout": - return REs.makeRe("^", RE("allTypes"), RE("allAttributes"), - "*\\.\\.?", "(\\s+|$)"); - case "attributes": - return REs.makeRe("^", RE("allAttributes"), "+"); - - case "allTypes": - return REs.choiceRe(REs.single.div, REs.single.foot, - REs.single.header, REs.single.bc, REs.single.bq, - REs.single.notextile, REs.single.pre, REs.single.table, - REs.single.para); - - case "allAttributes": - return REs.choiceRe(REs.attributes.selector, REs.attributes.css, - REs.attributes.lang, REs.attributes.align, REs.attributes.pad); - - default: - return REs.makeRe("^", REs.single[name]); - } - }, - makeRe: function() { - var pattern = ""; - for (var i = 0; i < arguments.length; ++i) { - var arg = arguments[i]; - pattern += (typeof arg === "string") ? arg : arg.source; - } - return new RegExp(pattern); - }, - choiceRe: function() { - var parts = [arguments[0]]; - for (var i = 1; i < arguments.length; ++i) { - parts[i * 2 - 1] = "|"; - parts[i * 2] = arguments[i]; - } - - parts.unshift("(?:"); - parts.push(")"); - return REs.makeRe.apply(null, parts); - } - }; - - function RE(name) { - return (REs.cache[name] || (REs.cache[name] = REs.createRe(name))); - } - - var Modes = { - newLayout: function(stream, state) { - if (stream.match(RE("typeLayout"), false)) { - state.spanningLayout = false; - return (state.mode = Modes.blockType)(stream, state); - } - var newMode; - if (!textileDisabled(state)) { - if (stream.match(RE("listLayout"), false)) - newMode = Modes.list; - else if (stream.match(RE("drawTable"), false)) - newMode = Modes.table; - else if (stream.match(RE("linkDefinition"), false)) - newMode = Modes.linkDefinition; - else if (stream.match(RE("definitionList"))) - newMode = Modes.definitionList; - else if (stream.match(RE("html"), false)) - newMode = Modes.html; - } - return (state.mode = (newMode || Modes.text))(stream, state); - }, - - blockType: function(stream, state) { - var match, type; - state.layoutType = null; - - if (match = stream.match(RE("type"))) - type = match[0]; - else - return (state.mode = Modes.text)(stream, state); - - if (match = type.match(RE("header"))) { - state.layoutType = "header"; - state.header = parseInt(match[0][1]); - } else if (type.match(RE("bq"))) { - state.layoutType = "quote"; - } else if (type.match(RE("bc"))) { - state.layoutType = "code"; - } else if (type.match(RE("foot"))) { - state.layoutType = "footnote"; - } else if (type.match(RE("notextile"))) { - state.layoutType = "notextile"; - } else if (type.match(RE("pre"))) { - state.layoutType = "pre"; - } else if (type.match(RE("div"))) { - state.layoutType = "div"; - } else if (type.match(RE("table"))) { - state.layoutType = "table"; - } - - state.mode = Modes.attributes; - return tokenStyles(state); - }, - - text: function(stream, state) { - if (stream.match(RE("text"))) return tokenStyles(state); - - var ch = stream.next(); - if (ch === '"') - return (state.mode = Modes.link)(stream, state); - return handlePhraseModifier(stream, state, ch); - }, - - attributes: function(stream, state) { - state.mode = Modes.layoutLength; - - if (stream.match(RE("attributes"))) - return tokenStylesWith(state, TOKEN_STYLES.attributes); - else - return tokenStyles(state); - }, - - layoutLength: function(stream, state) { - if (stream.eat(".") && stream.eat(".")) - state.spanningLayout = true; - - state.mode = Modes.text; - return tokenStyles(state); - }, - - list: function(stream, state) { - var match = stream.match(RE("list")); - state.listDepth = match[0].length; - var listMod = (state.listDepth - 1) % 3; - if (!listMod) - state.layoutType = "list1"; - else if (listMod === 1) - state.layoutType = "list2"; - else - state.layoutType = "list3"; - - state.mode = Modes.attributes; - return tokenStyles(state); - }, - - link: function(stream, state) { - state.mode = Modes.text; - if (stream.match(RE("link"))) { - stream.match(/\S+/); - return tokenStylesWith(state, TOKEN_STYLES.link); - } - return tokenStyles(state); - }, - - linkDefinition: function(stream, state) { - stream.skipToEnd(); - return tokenStylesWith(state, TOKEN_STYLES.linkDefinition); - }, - - definitionList: function(stream, state) { - stream.match(RE("definitionList")); - - state.layoutType = "definitionList"; - - if (stream.match(/\s*$/)) - state.spanningLayout = true; - else - state.mode = Modes.attributes; - - return tokenStyles(state); - }, - - html: function(stream, state) { - stream.skipToEnd(); - return tokenStylesWith(state, TOKEN_STYLES.html); - }, - - table: function(stream, state) { - state.layoutType = "table"; - return (state.mode = Modes.tableCell)(stream, state); - }, - - tableCell: function(stream, state) { - if (stream.match(RE("tableHeading"))) - state.tableHeading = true; - else - stream.eat("|"); - - state.mode = Modes.tableCellAttributes; - return tokenStyles(state); - }, - - tableCellAttributes: function(stream, state) { - state.mode = Modes.tableText; - - if (stream.match(RE("tableCellAttributes"))) - return tokenStylesWith(state, TOKEN_STYLES.attributes); - else - return tokenStyles(state); - }, - - tableText: function(stream, state) { - if (stream.match(RE("tableText"))) - return tokenStyles(state); - - if (stream.peek() === "|") { // end of cell - state.mode = Modes.tableCell; - return tokenStyles(state); - } - return handlePhraseModifier(stream, state, stream.next()); - } - }; - - CodeMirror.defineMode("textile", function() { - return { - startState: function() { - return { mode: Modes.newLayout }; - }, - token: function(stream, state) { - if (stream.sol()) startNewLine(stream, state); - return state.mode(stream, state); - }, - blankLine: blankLine - }; - }); - - CodeMirror.defineMIME("text/x-textile", "textile"); -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/tiddlywiki/index.html b/src/main/resources/static/editor.md-master/lib/codemirror/mode/tiddlywiki/index.html deleted file mode 100644 index 77dd045..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/tiddlywiki/index.html +++ /dev/null @@ -1,154 +0,0 @@ - - -CodeMirror: TiddlyWiki mode - - - - - - - - - - - -
-

TiddlyWiki mode

- - -
- - - -

TiddlyWiki mode supports a single configuration.

- -

MIME types defined: text/x-tiddlywiki.

-
diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/tiddlywiki/tiddlywiki.css b/src/main/resources/static/editor.md-master/lib/codemirror/mode/tiddlywiki/tiddlywiki.css deleted file mode 100644 index 9a69b63..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/tiddlywiki/tiddlywiki.css +++ /dev/null @@ -1,14 +0,0 @@ -span.cm-underlined { - text-decoration: underline; -} -span.cm-strikethrough { - text-decoration: line-through; -} -span.cm-brace { - color: #170; - font-weight: bold; -} -span.cm-table { - color: blue; - font-weight: bold; -} diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/tiddlywiki/tiddlywiki.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/tiddlywiki/tiddlywiki.js deleted file mode 100644 index 88c9768..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/tiddlywiki/tiddlywiki.js +++ /dev/null @@ -1,369 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -/*** - |''Name''|tiddlywiki.js| - |''Description''|Enables TiddlyWikiy syntax highlighting using CodeMirror| - |''Author''|PMario| - |''Version''|0.1.7| - |''Status''|''stable''| - |''Source''|[[GitHub|https://github.com/pmario/CodeMirror2/blob/tw-syntax/mode/tiddlywiki]]| - |''Documentation''|http://codemirror.tiddlyspace.com/| - |''License''|[[MIT License|http://www.opensource.org/licenses/mit-license.php]]| - |''CoreVersion''|2.5.0| - |''Requires''|codemirror.js| - |''Keywords''|syntax highlighting color code mirror codemirror| - ! Info - CoreVersion parameter is needed for TiddlyWiki only! -***/ -//{{{ - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { -"use strict"; - -CodeMirror.defineMode("tiddlywiki", function () { - // Tokenizer - var textwords = {}; - - var keywords = function () { - function kw(type) { - return { type: type, style: "macro"}; - } - return { - "allTags": kw('allTags'), "closeAll": kw('closeAll'), "list": kw('list'), - "newJournal": kw('newJournal'), "newTiddler": kw('newTiddler'), - "permaview": kw('permaview'), "saveChanges": kw('saveChanges'), - "search": kw('search'), "slider": kw('slider'), "tabs": kw('tabs'), - "tag": kw('tag'), "tagging": kw('tagging'), "tags": kw('tags'), - "tiddler": kw('tiddler'), "timeline": kw('timeline'), - "today": kw('today'), "version": kw('version'), "option": kw('option'), - - "with": kw('with'), - "filter": kw('filter') - }; - }(); - - var isSpaceName = /[\w_\-]/i, - reHR = /^\-\-\-\-+$/, //
- reWikiCommentStart = /^\/\*\*\*$/, // /*** - reWikiCommentStop = /^\*\*\*\/$/, // ***/ - reBlockQuote = /^<<<$/, - - reJsCodeStart = /^\/\/\{\{\{$/, // //{{{ js block start - reJsCodeStop = /^\/\/\}\}\}$/, // //}}} js stop - reXmlCodeStart = /^$/, // xml block start - reXmlCodeStop = /^$/, // xml stop - - reCodeBlockStart = /^\{\{\{$/, // {{{ TW text div block start - reCodeBlockStop = /^\}\}\}$/, // }}} TW text stop - - reUntilCodeStop = /.*?\}\}\}/; - - function chain(stream, state, f) { - state.tokenize = f; - return f(stream, state); - } - - // Used as scratch variables to communicate multiple values without - // consing up tons of objects. - var type, content; - - function ret(tp, style, cont) { - type = tp; - content = cont; - return style; - } - - function jsTokenBase(stream, state) { - var sol = stream.sol(), ch; - - state.block = false; // indicates the start of a code block. - - ch = stream.peek(); // don't eat, to make matching simpler - - // check start of blocks - if (sol && /[<\/\*{}\-]/.test(ch)) { - if (stream.match(reCodeBlockStart)) { - state.block = true; - return chain(stream, state, twTokenCode); - } - if (stream.match(reBlockQuote)) { - return ret('quote', 'quote'); - } - if (stream.match(reWikiCommentStart) || stream.match(reWikiCommentStop)) { - return ret('code', 'comment'); - } - if (stream.match(reJsCodeStart) || stream.match(reJsCodeStop) || stream.match(reXmlCodeStart) || stream.match(reXmlCodeStop)) { - return ret('code', 'comment'); - } - if (stream.match(reHR)) { - return ret('hr', 'hr'); - } - } // sol - ch = stream.next(); - - if (sol && /[\/\*!#;:>|]/.test(ch)) { - if (ch == "!") { // tw header - stream.skipToEnd(); - return ret("header", "header"); - } - if (ch == "*") { // tw list - stream.eatWhile('*'); - return ret("list", "comment"); - } - if (ch == "#") { // tw numbered list - stream.eatWhile('#'); - return ret("list", "comment"); - } - if (ch == ";") { // definition list, term - stream.eatWhile(';'); - return ret("list", "comment"); - } - if (ch == ":") { // definition list, description - stream.eatWhile(':'); - return ret("list", "comment"); - } - if (ch == ">") { // single line quote - stream.eatWhile(">"); - return ret("quote", "quote"); - } - if (ch == '|') { - return ret('table', 'header'); - } - } - - if (ch == '{' && stream.match(/\{\{/)) { - return chain(stream, state, twTokenCode); - } - - // rudimentary html:// file:// link matching. TW knows much more ... - if (/[hf]/i.test(ch)) { - if (/[ti]/i.test(stream.peek()) && stream.match(/\b(ttps?|tp|ile):\/\/[\-A-Z0-9+&@#\/%?=~_|$!:,.;]*[A-Z0-9+&@#\/%=~_|$]/i)) { - return ret("link", "link"); - } - } - // just a little string indicator, don't want to have the whole string covered - if (ch == '"') { - return ret('string', 'string'); - } - if (ch == '~') { // _no_ CamelCase indicator should be bold - return ret('text', 'brace'); - } - if (/[\[\]]/.test(ch)) { // check for [[..]] - if (stream.peek() == ch) { - stream.next(); - return ret('brace', 'brace'); - } - } - if (ch == "@") { // check for space link. TODO fix @@...@@ highlighting - stream.eatWhile(isSpaceName); - return ret("link", "link"); - } - if (/\d/.test(ch)) { // numbers - stream.eatWhile(/\d/); - return ret("number", "number"); - } - if (ch == "/") { // tw invisible comment - if (stream.eat("%")) { - return chain(stream, state, twTokenComment); - } - else if (stream.eat("/")) { // - return chain(stream, state, twTokenEm); - } - } - if (ch == "_") { // tw underline - if (stream.eat("_")) { - return chain(stream, state, twTokenUnderline); - } - } - // strikethrough and mdash handling - if (ch == "-") { - if (stream.eat("-")) { - // if strikethrough looks ugly, change CSS. - if (stream.peek() != ' ') - return chain(stream, state, twTokenStrike); - // mdash - if (stream.peek() == ' ') - return ret('text', 'brace'); - } - } - if (ch == "'") { // tw bold - if (stream.eat("'")) { - return chain(stream, state, twTokenStrong); - } - } - if (ch == "<") { // tw macro - if (stream.eat("<")) { - return chain(stream, state, twTokenMacro); - } - } - else { - return ret(ch); - } - - // core macro handling - stream.eatWhile(/[\w\$_]/); - var word = stream.current(), - known = textwords.propertyIsEnumerable(word) && textwords[word]; - - return known ? ret(known.type, known.style, word) : ret("text", null, word); - - } // jsTokenBase() - - // tw invisible comment - function twTokenComment(stream, state) { - var maybeEnd = false, - ch; - while (ch = stream.next()) { - if (ch == "/" && maybeEnd) { - state.tokenize = jsTokenBase; - break; - } - maybeEnd = (ch == "%"); - } - return ret("comment", "comment"); - } - - // tw strong / bold - function twTokenStrong(stream, state) { - var maybeEnd = false, - ch; - while (ch = stream.next()) { - if (ch == "'" && maybeEnd) { - state.tokenize = jsTokenBase; - break; - } - maybeEnd = (ch == "'"); - } - return ret("text", "strong"); - } - - // tw code - function twTokenCode(stream, state) { - var ch, sb = state.block; - - if (sb && stream.current()) { - return ret("code", "comment"); - } - - if (!sb && stream.match(reUntilCodeStop)) { - state.tokenize = jsTokenBase; - return ret("code", "comment"); - } - - if (sb && stream.sol() && stream.match(reCodeBlockStop)) { - state.tokenize = jsTokenBase; - return ret("code", "comment"); - } - - ch = stream.next(); - return (sb) ? ret("code", "comment") : ret("code", "comment"); - } - - // tw em / italic - function twTokenEm(stream, state) { - var maybeEnd = false, - ch; - while (ch = stream.next()) { - if (ch == "/" && maybeEnd) { - state.tokenize = jsTokenBase; - break; - } - maybeEnd = (ch == "/"); - } - return ret("text", "em"); - } - - // tw underlined text - function twTokenUnderline(stream, state) { - var maybeEnd = false, - ch; - while (ch = stream.next()) { - if (ch == "_" && maybeEnd) { - state.tokenize = jsTokenBase; - break; - } - maybeEnd = (ch == "_"); - } - return ret("text", "underlined"); - } - - // tw strike through text looks ugly - // change CSS if needed - function twTokenStrike(stream, state) { - var maybeEnd = false, ch; - - while (ch = stream.next()) { - if (ch == "-" && maybeEnd) { - state.tokenize = jsTokenBase; - break; - } - maybeEnd = (ch == "-"); - } - return ret("text", "strikethrough"); - } - - // macro - function twTokenMacro(stream, state) { - var ch, word, known; - - if (stream.current() == '<<') { - return ret('brace', 'macro'); - } - - ch = stream.next(); - if (!ch) { - state.tokenize = jsTokenBase; - return ret(ch); - } - if (ch == ">") { - if (stream.peek() == '>') { - stream.next(); - state.tokenize = jsTokenBase; - return ret("brace", "macro"); - } - } - - stream.eatWhile(/[\w\$_]/); - word = stream.current(); - known = keywords.propertyIsEnumerable(word) && keywords[word]; - - if (known) { - return ret(known.type, known.style, word); - } - else { - return ret("macro", null, word); - } - } - - // Interface - return { - startState: function () { - return { - tokenize: jsTokenBase, - indented: 0, - level: 0 - }; - }, - - token: function (stream, state) { - if (stream.eatSpace()) return null; - var style = state.tokenize(stream, state); - return style; - }, - - electricChars: "" - }; -}); - -CodeMirror.defineMIME("text/x-tiddlywiki", "tiddlywiki"); -}); - -//}}} diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/tiki/index.html b/src/main/resources/static/editor.md-master/lib/codemirror/mode/tiki/index.html deleted file mode 100644 index 091c5fb..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/tiki/index.html +++ /dev/null @@ -1,95 +0,0 @@ - - -CodeMirror: Tiki wiki mode - - - - - - - - - - -
-

Tiki wiki mode

- - -
- - - -
diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/tiki/tiki.css b/src/main/resources/static/editor.md-master/lib/codemirror/mode/tiki/tiki.css deleted file mode 100644 index 0dbc3ea..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/tiki/tiki.css +++ /dev/null @@ -1,26 +0,0 @@ -.cm-tw-syntaxerror { - color: #FFF; - background-color: #900; -} - -.cm-tw-deleted { - text-decoration: line-through; -} - -.cm-tw-header5 { - font-weight: bold; -} -.cm-tw-listitem:first-child { /*Added first child to fix duplicate padding when highlighting*/ - padding-left: 10px; -} - -.cm-tw-box { - border-top-width: 0px ! important; - border-style: solid; - border-width: 1px; - border-color: inherit; -} - -.cm-tw-underline { - text-decoration: underline; -} \ No newline at end of file diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/tiki/tiki.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/tiki/tiki.js deleted file mode 100644 index c90aac9..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/tiki/tiki.js +++ /dev/null @@ -1,323 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { -"use strict"; - -CodeMirror.defineMode('tiki', function(config) { - function inBlock(style, terminator, returnTokenizer) { - return function(stream, state) { - while (!stream.eol()) { - if (stream.match(terminator)) { - state.tokenize = inText; - break; - } - stream.next(); - } - - if (returnTokenizer) state.tokenize = returnTokenizer; - - return style; - }; - } - - function inLine(style) { - return function(stream, state) { - while(!stream.eol()) { - stream.next(); - } - state.tokenize = inText; - return style; - }; - } - - function inText(stream, state) { - function chain(parser) { - state.tokenize = parser; - return parser(stream, state); - } - - var sol = stream.sol(); - var ch = stream.next(); - - //non start of line - switch (ch) { //switch is generally much faster than if, so it is used here - case "{": //plugin - stream.eat("/"); - stream.eatSpace(); - var tagName = ""; - var c; - while ((c = stream.eat(/[^\s\u00a0=\"\'\/?(}]/))) tagName += c; - state.tokenize = inPlugin; - return "tag"; - break; - case "_": //bold - if (stream.eat("_")) { - return chain(inBlock("strong", "__", inText)); - } - break; - case "'": //italics - if (stream.eat("'")) { - // Italic text - return chain(inBlock("em", "''", inText)); - } - break; - case "(":// Wiki Link - if (stream.eat("(")) { - return chain(inBlock("variable-2", "))", inText)); - } - break; - case "[":// Weblink - return chain(inBlock("variable-3", "]", inText)); - break; - case "|": //table - if (stream.eat("|")) { - return chain(inBlock("comment", "||")); - } - break; - case "-": - if (stream.eat("=")) {//titleBar - return chain(inBlock("header string", "=-", inText)); - } else if (stream.eat("-")) {//deleted - return chain(inBlock("error tw-deleted", "--", inText)); - } - break; - case "=": //underline - if (stream.match("==")) { - return chain(inBlock("tw-underline", "===", inText)); - } - break; - case ":": - if (stream.eat(":")) { - return chain(inBlock("comment", "::")); - } - break; - case "^": //box - return chain(inBlock("tw-box", "^")); - break; - case "~": //np - if (stream.match("np~")) { - return chain(inBlock("meta", "~/np~")); - } - break; - } - - //start of line types - if (sol) { - switch (ch) { - case "!": //header at start of line - if (stream.match('!!!!!')) { - return chain(inLine("header string")); - } else if (stream.match('!!!!')) { - return chain(inLine("header string")); - } else if (stream.match('!!!')) { - return chain(inLine("header string")); - } else if (stream.match('!!')) { - return chain(inLine("header string")); - } else { - return chain(inLine("header string")); - } - break; - case "*": //unordered list line item, or
  • at start of line - case "#": //ordered list line item, or
  • at start of line - case "+": //ordered list line item, or
  • at start of line - return chain(inLine("tw-listitem bracket")); - break; - } - } - - //stream.eatWhile(/[&{]/); was eating up plugins, turned off to act less like html and more like tiki - return null; - } - - var indentUnit = config.indentUnit; - - // Return variables for tokenizers - var pluginName, type; - function inPlugin(stream, state) { - var ch = stream.next(); - var peek = stream.peek(); - - if (ch == "}") { - state.tokenize = inText; - //type = ch == ")" ? "endPlugin" : "selfclosePlugin"; inPlugin - return "tag"; - } else if (ch == "(" || ch == ")") { - return "bracket"; - } else if (ch == "=") { - type = "equals"; - - if (peek == ">") { - ch = stream.next(); - peek = stream.peek(); - } - - //here we detect values directly after equal character with no quotes - if (!/[\'\"]/.test(peek)) { - state.tokenize = inAttributeNoQuote(); - } - //end detect values - - return "operator"; - } else if (/[\'\"]/.test(ch)) { - state.tokenize = inAttribute(ch); - return state.tokenize(stream, state); - } else { - stream.eatWhile(/[^\s\u00a0=\"\'\/?]/); - return "keyword"; - } - } - - function inAttribute(quote) { - return function(stream, state) { - while (!stream.eol()) { - if (stream.next() == quote) { - state.tokenize = inPlugin; - break; - } - } - return "string"; - }; - } - - function inAttributeNoQuote() { - return function(stream, state) { - while (!stream.eol()) { - var ch = stream.next(); - var peek = stream.peek(); - if (ch == " " || ch == "," || /[ )}]/.test(peek)) { - state.tokenize = inPlugin; - break; - } - } - return "string"; -}; - } - -var curState, setStyle; -function pass() { - for (var i = arguments.length - 1; i >= 0; i--) curState.cc.push(arguments[i]); -} - -function cont() { - pass.apply(null, arguments); - return true; -} - -function pushContext(pluginName, startOfLine) { - var noIndent = curState.context && curState.context.noIndent; - curState.context = { - prev: curState.context, - pluginName: pluginName, - indent: curState.indented, - startOfLine: startOfLine, - noIndent: noIndent - }; -} - -function popContext() { - if (curState.context) curState.context = curState.context.prev; -} - -function element(type) { - if (type == "openPlugin") {curState.pluginName = pluginName; return cont(attributes, endplugin(curState.startOfLine));} - else if (type == "closePlugin") { - var err = false; - if (curState.context) { - err = curState.context.pluginName != pluginName; - popContext(); - } else { - err = true; - } - if (err) setStyle = "error"; - return cont(endcloseplugin(err)); - } - else if (type == "string") { - if (!curState.context || curState.context.name != "!cdata") pushContext("!cdata"); - if (curState.tokenize == inText) popContext(); - return cont(); - } - else return cont(); -} - -function endplugin(startOfLine) { - return function(type) { - if ( - type == "selfclosePlugin" || - type == "endPlugin" - ) - return cont(); - if (type == "endPlugin") {pushContext(curState.pluginName, startOfLine); return cont();} - return cont(); - }; -} - -function endcloseplugin(err) { - return function(type) { - if (err) setStyle = "error"; - if (type == "endPlugin") return cont(); - return pass(); - }; -} - -function attributes(type) { - if (type == "keyword") {setStyle = "attribute"; return cont(attributes);} - if (type == "equals") return cont(attvalue, attributes); - return pass(); -} -function attvalue(type) { - if (type == "keyword") {setStyle = "string"; return cont();} - if (type == "string") return cont(attvaluemaybe); - return pass(); -} -function attvaluemaybe(type) { - if (type == "string") return cont(attvaluemaybe); - else return pass(); -} -return { - startState: function() { - return {tokenize: inText, cc: [], indented: 0, startOfLine: true, pluginName: null, context: null}; - }, - token: function(stream, state) { - if (stream.sol()) { - state.startOfLine = true; - state.indented = stream.indentation(); - } - if (stream.eatSpace()) return null; - - setStyle = type = pluginName = null; - var style = state.tokenize(stream, state); - if ((style || type) && style != "comment") { - curState = state; - while (true) { - var comb = state.cc.pop() || element; - if (comb(type || style)) break; - } - } - state.startOfLine = false; - return setStyle || style; - }, - indent: function(state, textAfter) { - var context = state.context; - if (context && context.noIndent) return 0; - if (context && /^{\//.test(textAfter)) - context = context.prev; - while (context && !context.startOfLine) - context = context.prev; - if (context) return context.indent + indentUnit; - else return 0; - }, - electricChars: "/" - }; -}); - -CodeMirror.defineMIME("text/tiki", "tiki"); - -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/toml/index.html b/src/main/resources/static/editor.md-master/lib/codemirror/mode/toml/index.html deleted file mode 100644 index 90a2a02..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/toml/index.html +++ /dev/null @@ -1,73 +0,0 @@ - - -CodeMirror: TOML Mode - - - - - - - - - -
    -

    TOML Mode

    -
    - -

    The TOML Mode

    -

    Created by Forbes Lindesay.

    -

    MIME type defined: text/x-toml.

    -
    diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/toml/toml.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/toml/toml.js deleted file mode 100644 index baeca15..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/toml/toml.js +++ /dev/null @@ -1,88 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { -"use strict"; - -CodeMirror.defineMode("toml", function () { - return { - startState: function () { - return { - inString: false, - stringType: "", - lhs: true, - inArray: 0 - }; - }, - token: function (stream, state) { - //check for state changes - if (!state.inString && ((stream.peek() == '"') || (stream.peek() == "'"))) { - state.stringType = stream.peek(); - stream.next(); // Skip quote - state.inString = true; // Update state - } - if (stream.sol() && state.inArray === 0) { - state.lhs = true; - } - //return state - if (state.inString) { - while (state.inString && !stream.eol()) { - if (stream.peek() === state.stringType) { - stream.next(); // Skip quote - state.inString = false; // Clear flag - } else if (stream.peek() === '\\') { - stream.next(); - stream.next(); - } else { - stream.match(/^.[^\\\"\']*/); - } - } - return state.lhs ? "property string" : "string"; // Token style - } else if (state.inArray && stream.peek() === ']') { - stream.next(); - state.inArray--; - return 'bracket'; - } else if (state.lhs && stream.peek() === '[' && stream.skipTo(']')) { - stream.next();//skip closing ] - // array of objects has an extra open & close [] - if (stream.peek() === ']') stream.next(); - return "atom"; - } else if (stream.peek() === "#") { - stream.skipToEnd(); - return "comment"; - } else if (stream.eatSpace()) { - return null; - } else if (state.lhs && stream.eatWhile(function (c) { return c != '=' && c != ' '; })) { - return "property"; - } else if (state.lhs && stream.peek() === "=") { - stream.next(); - state.lhs = false; - return null; - } else if (!state.lhs && stream.match(/^\d\d\d\d[\d\-\:\.T]*Z/)) { - return 'atom'; //date - } else if (!state.lhs && (stream.match('true') || stream.match('false'))) { - return 'atom'; - } else if (!state.lhs && stream.peek() === '[') { - state.inArray++; - stream.next(); - return 'bracket'; - } else if (!state.lhs && stream.match(/^\-?\d+(?:\.\d+)?/)) { - return 'number'; - } else if (!stream.eatSpace()) { - stream.next(); - } - return null; - } - }; -}); - -CodeMirror.defineMIME('text/x-toml', 'toml'); - -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/tornado/index.html b/src/main/resources/static/editor.md-master/lib/codemirror/mode/tornado/index.html deleted file mode 100644 index 8ee7ef5..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/tornado/index.html +++ /dev/null @@ -1,63 +0,0 @@ - - -CodeMirror: Tornado template mode - - - - - - - - - - - - -
    -

    Tornado template mode

    -
    - - - -

    Mode for HTML with embedded Tornado template markup.

    - -

    MIME types defined: text/x-tornado

    -
    diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/tornado/tornado.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/tornado/tornado.js deleted file mode 100644 index dbfbc34..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/tornado/tornado.js +++ /dev/null @@ -1,68 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror"), require("../htmlmixed/htmlmixed"), - require("../../addon/mode/overlay")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror", "../htmlmixed/htmlmixed", - "../../addon/mode/overlay"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { - "use strict"; - - CodeMirror.defineMode("tornado:inner", function() { - var keywords = ["and","as","assert","autoescape","block","break","class","comment","context", - "continue","datetime","def","del","elif","else","end","escape","except", - "exec","extends","false","finally","for","from","global","if","import","in", - "include","is","json_encode","lambda","length","linkify","load","module", - "none","not","or","pass","print","put","raise","raw","return","self","set", - "squeeze","super","true","try","url_escape","while","with","without","xhtml_escape","yield"]; - keywords = new RegExp("^((" + keywords.join(")|(") + "))\\b"); - - function tokenBase (stream, state) { - stream.eatWhile(/[^\{]/); - var ch = stream.next(); - if (ch == "{") { - if (ch = stream.eat(/\{|%|#/)) { - state.tokenize = inTag(ch); - return "tag"; - } - } - } - function inTag (close) { - if (close == "{") { - close = "}"; - } - return function (stream, state) { - var ch = stream.next(); - if ((ch == close) && stream.eat("}")) { - state.tokenize = tokenBase; - return "tag"; - } - if (stream.match(keywords)) { - return "keyword"; - } - return close == "#" ? "comment" : "string"; - }; - } - return { - startState: function () { - return {tokenize: tokenBase}; - }, - token: function (stream, state) { - return state.tokenize(stream, state); - } - }; - }); - - CodeMirror.defineMode("tornado", function(config) { - var htmlBase = CodeMirror.getMode(config, "text/html"); - var tornadoInner = CodeMirror.getMode(config, "tornado:inner"); - return CodeMirror.overlayMode(htmlBase, tornadoInner); - }); - - CodeMirror.defineMIME("text/x-tornado", "tornado"); -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/turtle/index.html b/src/main/resources/static/editor.md-master/lib/codemirror/mode/turtle/index.html deleted file mode 100644 index a4962b6..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/turtle/index.html +++ /dev/null @@ -1,50 +0,0 @@ - - -CodeMirror: Turtle mode - - - - - - - - - -
    -

    Turtle mode

    -
    - - -

    MIME types defined: text/turtle.

    - -
    diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/turtle/turtle.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/turtle/turtle.js deleted file mode 100644 index 0988f0a..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/turtle/turtle.js +++ /dev/null @@ -1,162 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { -"use strict"; - -CodeMirror.defineMode("turtle", function(config) { - var indentUnit = config.indentUnit; - var curPunc; - - function wordRegexp(words) { - return new RegExp("^(?:" + words.join("|") + ")$", "i"); - } - var ops = wordRegexp([]); - var keywords = wordRegexp(["@prefix", "@base", "a"]); - var operatorChars = /[*+\-<>=&|]/; - - function tokenBase(stream, state) { - var ch = stream.next(); - curPunc = null; - if (ch == "<" && !stream.match(/^[\s\u00a0=]/, false)) { - stream.match(/^[^\s\u00a0>]*>?/); - return "atom"; - } - else if (ch == "\"" || ch == "'") { - state.tokenize = tokenLiteral(ch); - return state.tokenize(stream, state); - } - else if (/[{}\(\),\.;\[\]]/.test(ch)) { - curPunc = ch; - return null; - } - else if (ch == "#") { - stream.skipToEnd(); - return "comment"; - } - else if (operatorChars.test(ch)) { - stream.eatWhile(operatorChars); - return null; - } - else if (ch == ":") { - return "operator"; - } else { - stream.eatWhile(/[_\w\d]/); - if(stream.peek() == ":") { - return "variable-3"; - } else { - var word = stream.current(); - - if(keywords.test(word)) { - return "meta"; - } - - if(ch >= "A" && ch <= "Z") { - return "comment"; - } else { - return "keyword"; - } - } - var word = stream.current(); - if (ops.test(word)) - return null; - else if (keywords.test(word)) - return "meta"; - else - return "variable"; - } - } - - function tokenLiteral(quote) { - return function(stream, state) { - var escaped = false, ch; - while ((ch = stream.next()) != null) { - if (ch == quote && !escaped) { - state.tokenize = tokenBase; - break; - } - escaped = !escaped && ch == "\\"; - } - return "string"; - }; - } - - function pushContext(state, type, col) { - state.context = {prev: state.context, indent: state.indent, col: col, type: type}; - } - function popContext(state) { - state.indent = state.context.indent; - state.context = state.context.prev; - } - - return { - startState: function() { - return {tokenize: tokenBase, - context: null, - indent: 0, - col: 0}; - }, - - token: function(stream, state) { - if (stream.sol()) { - if (state.context && state.context.align == null) state.context.align = false; - state.indent = stream.indentation(); - } - if (stream.eatSpace()) return null; - var style = state.tokenize(stream, state); - - if (style != "comment" && state.context && state.context.align == null && state.context.type != "pattern") { - state.context.align = true; - } - - if (curPunc == "(") pushContext(state, ")", stream.column()); - else if (curPunc == "[") pushContext(state, "]", stream.column()); - else if (curPunc == "{") pushContext(state, "}", stream.column()); - else if (/[\]\}\)]/.test(curPunc)) { - while (state.context && state.context.type == "pattern") popContext(state); - if (state.context && curPunc == state.context.type) popContext(state); - } - else if (curPunc == "." && state.context && state.context.type == "pattern") popContext(state); - else if (/atom|string|variable/.test(style) && state.context) { - if (/[\}\]]/.test(state.context.type)) - pushContext(state, "pattern", stream.column()); - else if (state.context.type == "pattern" && !state.context.align) { - state.context.align = true; - state.context.col = stream.column(); - } - } - - return style; - }, - - indent: function(state, textAfter) { - var firstChar = textAfter && textAfter.charAt(0); - var context = state.context; - if (/[\]\}]/.test(firstChar)) - while (context && context.type == "pattern") context = context.prev; - - var closing = context && firstChar == context.type; - if (!context) - return 0; - else if (context.type == "pattern") - return context.col; - else if (context.align) - return context.col + (closing ? 0 : 1); - else - return context.indent + (closing ? 0 : indentUnit); - }, - - lineComment: "#" - }; -}); - -CodeMirror.defineMIME("text/turtle", "turtle"); - -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/vb/index.html b/src/main/resources/static/editor.md-master/lib/codemirror/mode/vb/index.html deleted file mode 100644 index adcc44f..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/vb/index.html +++ /dev/null @@ -1,102 +0,0 @@ - - -CodeMirror: VB.NET mode - - - - - - - - - - - -
    -

    VB.NET mode

    - - - -
    - -
    -
    
    -  

    MIME type defined: text/x-vb.

    - -
    diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/vb/vb.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/vb/vb.js deleted file mode 100644 index 902203e..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/vb/vb.js +++ /dev/null @@ -1,274 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { -"use strict"; - -CodeMirror.defineMode("vb", function(conf, parserConf) { - var ERRORCLASS = 'error'; - - function wordRegexp(words) { - return new RegExp("^((" + words.join(")|(") + "))\\b", "i"); - } - - var singleOperators = new RegExp("^[\\+\\-\\*/%&\\\\|\\^~<>!]"); - var singleDelimiters = new RegExp('^[\\(\\)\\[\\]\\{\\}@,:`=;\\.]'); - var doubleOperators = new RegExp("^((==)|(<>)|(<=)|(>=)|(<>)|(<<)|(>>)|(//)|(\\*\\*))"); - var doubleDelimiters = new RegExp("^((\\+=)|(\\-=)|(\\*=)|(%=)|(/=)|(&=)|(\\|=)|(\\^=))"); - var tripleDelimiters = new RegExp("^((//=)|(>>=)|(<<=)|(\\*\\*=))"); - var identifiers = new RegExp("^[_A-Za-z][_A-Za-z0-9]*"); - - var openingKeywords = ['class','module', 'sub','enum','select','while','if','function', 'get','set','property', 'try']; - var middleKeywords = ['else','elseif','case', 'catch']; - var endKeywords = ['next','loop']; - - var wordOperators = wordRegexp(['and', 'or', 'not', 'xor', 'in']); - var commonkeywords = ['as', 'dim', 'break', 'continue','optional', 'then', 'until', - 'goto', 'byval','byref','new','handles','property', 'return', - 'const','private', 'protected', 'friend', 'public', 'shared', 'static', 'true','false']; - var commontypes = ['integer','string','double','decimal','boolean','short','char', 'float','single']; - - var keywords = wordRegexp(commonkeywords); - var types = wordRegexp(commontypes); - var stringPrefixes = '"'; - - var opening = wordRegexp(openingKeywords); - var middle = wordRegexp(middleKeywords); - var closing = wordRegexp(endKeywords); - var doubleClosing = wordRegexp(['end']); - var doOpening = wordRegexp(['do']); - - var indentInfo = null; - - - - - function indent(_stream, state) { - state.currentIndent++; - } - - function dedent(_stream, state) { - state.currentIndent--; - } - // tokenizers - function tokenBase(stream, state) { - if (stream.eatSpace()) { - return null; - } - - var ch = stream.peek(); - - // Handle Comments - if (ch === "'") { - stream.skipToEnd(); - return 'comment'; - } - - - // Handle Number Literals - if (stream.match(/^((&H)|(&O))?[0-9\.a-f]/i, false)) { - var floatLiteral = false; - // Floats - if (stream.match(/^\d*\.\d+F?/i)) { floatLiteral = true; } - else if (stream.match(/^\d+\.\d*F?/)) { floatLiteral = true; } - else if (stream.match(/^\.\d+F?/)) { floatLiteral = true; } - - if (floatLiteral) { - // Float literals may be "imaginary" - stream.eat(/J/i); - return 'number'; - } - // Integers - var intLiteral = false; - // Hex - if (stream.match(/^&H[0-9a-f]+/i)) { intLiteral = true; } - // Octal - else if (stream.match(/^&O[0-7]+/i)) { intLiteral = true; } - // Decimal - else if (stream.match(/^[1-9]\d*F?/)) { - // Decimal literals may be "imaginary" - stream.eat(/J/i); - // TODO - Can you have imaginary longs? - intLiteral = true; - } - // Zero by itself with no other piece of number. - else if (stream.match(/^0(?![\dx])/i)) { intLiteral = true; } - if (intLiteral) { - // Integer literals may be "long" - stream.eat(/L/i); - return 'number'; - } - } - - // Handle Strings - if (stream.match(stringPrefixes)) { - state.tokenize = tokenStringFactory(stream.current()); - return state.tokenize(stream, state); - } - - // Handle operators and Delimiters - if (stream.match(tripleDelimiters) || stream.match(doubleDelimiters)) { - return null; - } - if (stream.match(doubleOperators) - || stream.match(singleOperators) - || stream.match(wordOperators)) { - return 'operator'; - } - if (stream.match(singleDelimiters)) { - return null; - } - if (stream.match(doOpening)) { - indent(stream,state); - state.doInCurrentLine = true; - return 'keyword'; - } - if (stream.match(opening)) { - if (! state.doInCurrentLine) - indent(stream,state); - else - state.doInCurrentLine = false; - return 'keyword'; - } - if (stream.match(middle)) { - return 'keyword'; - } - - if (stream.match(doubleClosing)) { - dedent(stream,state); - dedent(stream,state); - return 'keyword'; - } - if (stream.match(closing)) { - dedent(stream,state); - return 'keyword'; - } - - if (stream.match(types)) { - return 'keyword'; - } - - if (stream.match(keywords)) { - return 'keyword'; - } - - if (stream.match(identifiers)) { - return 'variable'; - } - - // Handle non-detected items - stream.next(); - return ERRORCLASS; - } - - function tokenStringFactory(delimiter) { - var singleline = delimiter.length == 1; - var OUTCLASS = 'string'; - - return function(stream, state) { - while (!stream.eol()) { - stream.eatWhile(/[^'"]/); - if (stream.match(delimiter)) { - state.tokenize = tokenBase; - return OUTCLASS; - } else { - stream.eat(/['"]/); - } - } - if (singleline) { - if (parserConf.singleLineStringErrors) { - return ERRORCLASS; - } else { - state.tokenize = tokenBase; - } - } - return OUTCLASS; - }; - } - - - function tokenLexer(stream, state) { - var style = state.tokenize(stream, state); - var current = stream.current(); - - // Handle '.' connected identifiers - if (current === '.') { - style = state.tokenize(stream, state); - current = stream.current(); - if (style === 'variable') { - return 'variable'; - } else { - return ERRORCLASS; - } - } - - - var delimiter_index = '[({'.indexOf(current); - if (delimiter_index !== -1) { - indent(stream, state ); - } - if (indentInfo === 'dedent') { - if (dedent(stream, state)) { - return ERRORCLASS; - } - } - delimiter_index = '])}'.indexOf(current); - if (delimiter_index !== -1) { - if (dedent(stream, state)) { - return ERRORCLASS; - } - } - - return style; - } - - var external = { - electricChars:"dDpPtTfFeE ", - startState: function() { - return { - tokenize: tokenBase, - lastToken: null, - currentIndent: 0, - nextLineIndent: 0, - doInCurrentLine: false - - - }; - }, - - token: function(stream, state) { - if (stream.sol()) { - state.currentIndent += state.nextLineIndent; - state.nextLineIndent = 0; - state.doInCurrentLine = 0; - } - var style = tokenLexer(stream, state); - - state.lastToken = {style:style, content: stream.current()}; - - - - return style; - }, - - indent: function(state, textAfter) { - var trueText = textAfter.replace(/^\s+|\s+$/g, '') ; - if (trueText.match(closing) || trueText.match(doubleClosing) || trueText.match(middle)) return conf.indentUnit*(state.currentIndent-1); - if(state.currentIndent < 0) return 0; - return state.currentIndent * conf.indentUnit; - } - - }; - return external; -}); - -CodeMirror.defineMIME("text/x-vb", "vb"); - -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/vbscript/index.html b/src/main/resources/static/editor.md-master/lib/codemirror/mode/vbscript/index.html deleted file mode 100644 index ad7532d..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/vbscript/index.html +++ /dev/null @@ -1,55 +0,0 @@ - - -CodeMirror: VBScript mode - - - - - - - - - -
    -

    VBScript mode

    - - -
    - - - -

    MIME types defined: text/vbscript.

    -
    diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/vbscript/vbscript.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/vbscript/vbscript.js deleted file mode 100644 index b66df22..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/vbscript/vbscript.js +++ /dev/null @@ -1,350 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -/* -For extra ASP classic objects, initialize CodeMirror instance with this option: - isASP: true - -E.G.: - var editor = CodeMirror.fromTextArea(document.getElementById("code"), { - lineNumbers: true, - isASP: true - }); -*/ - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { -"use strict"; - -CodeMirror.defineMode("vbscript", function(conf, parserConf) { - var ERRORCLASS = 'error'; - - function wordRegexp(words) { - return new RegExp("^((" + words.join(")|(") + "))\\b", "i"); - } - - var singleOperators = new RegExp("^[\\+\\-\\*/&\\\\\\^<>=]"); - var doubleOperators = new RegExp("^((<>)|(<=)|(>=))"); - var singleDelimiters = new RegExp('^[\\.,]'); - var brakets = new RegExp('^[\\(\\)]'); - var identifiers = new RegExp("^[A-Za-z][_A-Za-z0-9]*"); - - var openingKeywords = ['class','sub','select','while','if','function', 'property', 'with', 'for']; - var middleKeywords = ['else','elseif','case']; - var endKeywords = ['next','loop','wend']; - - var wordOperators = wordRegexp(['and', 'or', 'not', 'xor', 'is', 'mod', 'eqv', 'imp']); - var commonkeywords = ['dim', 'redim', 'then', 'until', 'randomize', - 'byval','byref','new','property', 'exit', 'in', - 'const','private', 'public', - 'get','set','let', 'stop', 'on error resume next', 'on error goto 0', 'option explicit', 'call', 'me']; - - //This list was from: http://msdn.microsoft.com/en-us/library/f8tbc79x(v=vs.84).aspx - var atomWords = ['true', 'false', 'nothing', 'empty', 'null']; - //This list was from: http://msdn.microsoft.com/en-us/library/3ca8tfek(v=vs.84).aspx - var builtinFuncsWords = ['abs', 'array', 'asc', 'atn', 'cbool', 'cbyte', 'ccur', 'cdate', 'cdbl', 'chr', 'cint', 'clng', 'cos', 'csng', 'cstr', 'date', 'dateadd', 'datediff', 'datepart', - 'dateserial', 'datevalue', 'day', 'escape', 'eval', 'execute', 'exp', 'filter', 'formatcurrency', 'formatdatetime', 'formatnumber', 'formatpercent', 'getlocale', 'getobject', - 'getref', 'hex', 'hour', 'inputbox', 'instr', 'instrrev', 'int', 'fix', 'isarray', 'isdate', 'isempty', 'isnull', 'isnumeric', 'isobject', 'join', 'lbound', 'lcase', 'left', - 'len', 'loadpicture', 'log', 'ltrim', 'rtrim', 'trim', 'maths', 'mid', 'minute', 'month', 'monthname', 'msgbox', 'now', 'oct', 'replace', 'rgb', 'right', 'rnd', 'round', - 'scriptengine', 'scriptenginebuildversion', 'scriptenginemajorversion', 'scriptengineminorversion', 'second', 'setlocale', 'sgn', 'sin', 'space', 'split', 'sqr', 'strcomp', - 'string', 'strreverse', 'tan', 'time', 'timer', 'timeserial', 'timevalue', 'typename', 'ubound', 'ucase', 'unescape', 'vartype', 'weekday', 'weekdayname', 'year']; - - //This list was from: http://msdn.microsoft.com/en-us/library/ydz4cfk3(v=vs.84).aspx - var builtinConsts = ['vbBlack', 'vbRed', 'vbGreen', 'vbYellow', 'vbBlue', 'vbMagenta', 'vbCyan', 'vbWhite', 'vbBinaryCompare', 'vbTextCompare', - 'vbSunday', 'vbMonday', 'vbTuesday', 'vbWednesday', 'vbThursday', 'vbFriday', 'vbSaturday', 'vbUseSystemDayOfWeek', 'vbFirstJan1', 'vbFirstFourDays', 'vbFirstFullWeek', - 'vbGeneralDate', 'vbLongDate', 'vbShortDate', 'vbLongTime', 'vbShortTime', 'vbObjectError', - 'vbOKOnly', 'vbOKCancel', 'vbAbortRetryIgnore', 'vbYesNoCancel', 'vbYesNo', 'vbRetryCancel', 'vbCritical', 'vbQuestion', 'vbExclamation', 'vbInformation', 'vbDefaultButton1', 'vbDefaultButton2', - 'vbDefaultButton3', 'vbDefaultButton4', 'vbApplicationModal', 'vbSystemModal', 'vbOK', 'vbCancel', 'vbAbort', 'vbRetry', 'vbIgnore', 'vbYes', 'vbNo', - 'vbCr', 'VbCrLf', 'vbFormFeed', 'vbLf', 'vbNewLine', 'vbNullChar', 'vbNullString', 'vbTab', 'vbVerticalTab', 'vbUseDefault', 'vbTrue', 'vbFalse', - 'vbEmpty', 'vbNull', 'vbInteger', 'vbLong', 'vbSingle', 'vbDouble', 'vbCurrency', 'vbDate', 'vbString', 'vbObject', 'vbError', 'vbBoolean', 'vbVariant', 'vbDataObject', 'vbDecimal', 'vbByte', 'vbArray']; - //This list was from: http://msdn.microsoft.com/en-us/library/hkc375ea(v=vs.84).aspx - var builtinObjsWords = ['WScript', 'err', 'debug', 'RegExp']; - var knownProperties = ['description', 'firstindex', 'global', 'helpcontext', 'helpfile', 'ignorecase', 'length', 'number', 'pattern', 'source', 'value', 'count']; - var knownMethods = ['clear', 'execute', 'raise', 'replace', 'test', 'write', 'writeline', 'close', 'open', 'state', 'eof', 'update', 'addnew', 'end', 'createobject', 'quit']; - - var aspBuiltinObjsWords = ['server', 'response', 'request', 'session', 'application']; - var aspKnownProperties = ['buffer', 'cachecontrol', 'charset', 'contenttype', 'expires', 'expiresabsolute', 'isclientconnected', 'pics', 'status', //response - 'clientcertificate', 'cookies', 'form', 'querystring', 'servervariables', 'totalbytes', //request - 'contents', 'staticobjects', //application - 'codepage', 'lcid', 'sessionid', 'timeout', //session - 'scripttimeout']; //server - var aspKnownMethods = ['addheader', 'appendtolog', 'binarywrite', 'end', 'flush', 'redirect', //response - 'binaryread', //request - 'remove', 'removeall', 'lock', 'unlock', //application - 'abandon', //session - 'getlasterror', 'htmlencode', 'mappath', 'transfer', 'urlencode']; //server - - var knownWords = knownMethods.concat(knownProperties); - - builtinObjsWords = builtinObjsWords.concat(builtinConsts); - - if (conf.isASP){ - builtinObjsWords = builtinObjsWords.concat(aspBuiltinObjsWords); - knownWords = knownWords.concat(aspKnownMethods, aspKnownProperties); - }; - - var keywords = wordRegexp(commonkeywords); - var atoms = wordRegexp(atomWords); - var builtinFuncs = wordRegexp(builtinFuncsWords); - var builtinObjs = wordRegexp(builtinObjsWords); - var known = wordRegexp(knownWords); - var stringPrefixes = '"'; - - var opening = wordRegexp(openingKeywords); - var middle = wordRegexp(middleKeywords); - var closing = wordRegexp(endKeywords); - var doubleClosing = wordRegexp(['end']); - var doOpening = wordRegexp(['do']); - var noIndentWords = wordRegexp(['on error resume next', 'exit']); - var comment = wordRegexp(['rem']); - - - function indent(_stream, state) { - state.currentIndent++; - } - - function dedent(_stream, state) { - state.currentIndent--; - } - // tokenizers - function tokenBase(stream, state) { - if (stream.eatSpace()) { - return 'space'; - //return null; - } - - var ch = stream.peek(); - - // Handle Comments - if (ch === "'") { - stream.skipToEnd(); - return 'comment'; - } - if (stream.match(comment)){ - stream.skipToEnd(); - return 'comment'; - } - - - // Handle Number Literals - if (stream.match(/^((&H)|(&O))?[0-9\.]/i, false) && !stream.match(/^((&H)|(&O))?[0-9\.]+[a-z_]/i, false)) { - var floatLiteral = false; - // Floats - if (stream.match(/^\d*\.\d+/i)) { floatLiteral = true; } - else if (stream.match(/^\d+\.\d*/)) { floatLiteral = true; } - else if (stream.match(/^\.\d+/)) { floatLiteral = true; } - - if (floatLiteral) { - // Float literals may be "imaginary" - stream.eat(/J/i); - return 'number'; - } - // Integers - var intLiteral = false; - // Hex - if (stream.match(/^&H[0-9a-f]+/i)) { intLiteral = true; } - // Octal - else if (stream.match(/^&O[0-7]+/i)) { intLiteral = true; } - // Decimal - else if (stream.match(/^[1-9]\d*F?/)) { - // Decimal literals may be "imaginary" - stream.eat(/J/i); - // TODO - Can you have imaginary longs? - intLiteral = true; - } - // Zero by itself with no other piece of number. - else if (stream.match(/^0(?![\dx])/i)) { intLiteral = true; } - if (intLiteral) { - // Integer literals may be "long" - stream.eat(/L/i); - return 'number'; - } - } - - // Handle Strings - if (stream.match(stringPrefixes)) { - state.tokenize = tokenStringFactory(stream.current()); - return state.tokenize(stream, state); - } - - // Handle operators and Delimiters - if (stream.match(doubleOperators) - || stream.match(singleOperators) - || stream.match(wordOperators)) { - return 'operator'; - } - if (stream.match(singleDelimiters)) { - return null; - } - - if (stream.match(brakets)) { - return "bracket"; - } - - if (stream.match(noIndentWords)) { - state.doInCurrentLine = true; - - return 'keyword'; - } - - if (stream.match(doOpening)) { - indent(stream,state); - state.doInCurrentLine = true; - - return 'keyword'; - } - if (stream.match(opening)) { - if (! state.doInCurrentLine) - indent(stream,state); - else - state.doInCurrentLine = false; - - return 'keyword'; - } - if (stream.match(middle)) { - return 'keyword'; - } - - - if (stream.match(doubleClosing)) { - dedent(stream,state); - dedent(stream,state); - - return 'keyword'; - } - if (stream.match(closing)) { - if (! state.doInCurrentLine) - dedent(stream,state); - else - state.doInCurrentLine = false; - - return 'keyword'; - } - - if (stream.match(keywords)) { - return 'keyword'; - } - - if (stream.match(atoms)) { - return 'atom'; - } - - if (stream.match(known)) { - return 'variable-2'; - } - - if (stream.match(builtinFuncs)) { - return 'builtin'; - } - - if (stream.match(builtinObjs)){ - return 'variable-2'; - } - - if (stream.match(identifiers)) { - return 'variable'; - } - - // Handle non-detected items - stream.next(); - return ERRORCLASS; - } - - function tokenStringFactory(delimiter) { - var singleline = delimiter.length == 1; - var OUTCLASS = 'string'; - - return function(stream, state) { - while (!stream.eol()) { - stream.eatWhile(/[^'"]/); - if (stream.match(delimiter)) { - state.tokenize = tokenBase; - return OUTCLASS; - } else { - stream.eat(/['"]/); - } - } - if (singleline) { - if (parserConf.singleLineStringErrors) { - return ERRORCLASS; - } else { - state.tokenize = tokenBase; - } - } - return OUTCLASS; - }; - } - - - function tokenLexer(stream, state) { - var style = state.tokenize(stream, state); - var current = stream.current(); - - // Handle '.' connected identifiers - if (current === '.') { - style = state.tokenize(stream, state); - - current = stream.current(); - if (style && (style.substr(0, 8) === 'variable' || style==='builtin' || style==='keyword')){//|| knownWords.indexOf(current.substring(1)) > -1) { - if (style === 'builtin' || style === 'keyword') style='variable'; - if (knownWords.indexOf(current.substr(1)) > -1) style='variable-2'; - - return style; - } else { - return ERRORCLASS; - } - } - - return style; - } - - var external = { - electricChars:"dDpPtTfFeE ", - startState: function() { - return { - tokenize: tokenBase, - lastToken: null, - currentIndent: 0, - nextLineIndent: 0, - doInCurrentLine: false, - ignoreKeyword: false - - - }; - }, - - token: function(stream, state) { - if (stream.sol()) { - state.currentIndent += state.nextLineIndent; - state.nextLineIndent = 0; - state.doInCurrentLine = 0; - } - var style = tokenLexer(stream, state); - - state.lastToken = {style:style, content: stream.current()}; - - if (style==='space') style=null; - - return style; - }, - - indent: function(state, textAfter) { - var trueText = textAfter.replace(/^\s+|\s+$/g, '') ; - if (trueText.match(closing) || trueText.match(doubleClosing) || trueText.match(middle)) return conf.indentUnit*(state.currentIndent-1); - if(state.currentIndent < 0) return 0; - return state.currentIndent * conf.indentUnit; - } - - }; - return external; -}); - -CodeMirror.defineMIME("text/vbscript", "vbscript"); - -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/velocity/index.html b/src/main/resources/static/editor.md-master/lib/codemirror/mode/velocity/index.html deleted file mode 100644 index 2747878..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/velocity/index.html +++ /dev/null @@ -1,118 +0,0 @@ - - -CodeMirror: Velocity mode - - - - - - - - - - -
    -

    Velocity mode

    -
    - - -

    MIME types defined: text/velocity.

    - -
    diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/velocity/velocity.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/velocity/velocity.js deleted file mode 100644 index 8fc4f95..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/velocity/velocity.js +++ /dev/null @@ -1,201 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { -"use strict"; - -CodeMirror.defineMode("velocity", function() { - function parseWords(str) { - var obj = {}, words = str.split(" "); - for (var i = 0; i < words.length; ++i) obj[words[i]] = true; - return obj; - } - - var keywords = parseWords("#end #else #break #stop #[[ #]] " + - "#{end} #{else} #{break} #{stop}"); - var functions = parseWords("#if #elseif #foreach #set #include #parse #macro #define #evaluate " + - "#{if} #{elseif} #{foreach} #{set} #{include} #{parse} #{macro} #{define} #{evaluate}"); - var specials = parseWords("$foreach.count $foreach.hasNext $foreach.first $foreach.last $foreach.topmost $foreach.parent.count $foreach.parent.hasNext $foreach.parent.first $foreach.parent.last $foreach.parent $velocityCount $!bodyContent $bodyContent"); - var isOperatorChar = /[+\-*&%=<>!?:\/|]/; - - function chain(stream, state, f) { - state.tokenize = f; - return f(stream, state); - } - function tokenBase(stream, state) { - var beforeParams = state.beforeParams; - state.beforeParams = false; - var ch = stream.next(); - // start of unparsed string? - if ((ch == "'") && state.inParams) { - state.lastTokenWasBuiltin = false; - return chain(stream, state, tokenString(ch)); - } - // start of parsed string? - else if ((ch == '"')) { - state.lastTokenWasBuiltin = false; - if (state.inString) { - state.inString = false; - return "string"; - } - else if (state.inParams) - return chain(stream, state, tokenString(ch)); - } - // is it one of the special signs []{}().,;? Seperator? - else if (/[\[\]{}\(\),;\.]/.test(ch)) { - if (ch == "(" && beforeParams) - state.inParams = true; - else if (ch == ")") { - state.inParams = false; - state.lastTokenWasBuiltin = true; - } - return null; - } - // start of a number value? - else if (/\d/.test(ch)) { - state.lastTokenWasBuiltin = false; - stream.eatWhile(/[\w\.]/); - return "number"; - } - // multi line comment? - else if (ch == "#" && stream.eat("*")) { - state.lastTokenWasBuiltin = false; - return chain(stream, state, tokenComment); - } - // unparsed content? - else if (ch == "#" && stream.match(/ *\[ *\[/)) { - state.lastTokenWasBuiltin = false; - return chain(stream, state, tokenUnparsed); - } - // single line comment? - else if (ch == "#" && stream.eat("#")) { - state.lastTokenWasBuiltin = false; - stream.skipToEnd(); - return "comment"; - } - // variable? - else if (ch == "$") { - stream.eatWhile(/[\w\d\$_\.{}]/); - // is it one of the specials? - if (specials && specials.propertyIsEnumerable(stream.current())) { - return "keyword"; - } - else { - state.lastTokenWasBuiltin = true; - state.beforeParams = true; - return "builtin"; - } - } - // is it a operator? - else if (isOperatorChar.test(ch)) { - state.lastTokenWasBuiltin = false; - stream.eatWhile(isOperatorChar); - return "operator"; - } - else { - // get the whole word - stream.eatWhile(/[\w\$_{}@]/); - var word = stream.current(); - // is it one of the listed keywords? - if (keywords && keywords.propertyIsEnumerable(word)) - return "keyword"; - // is it one of the listed functions? - if (functions && functions.propertyIsEnumerable(word) || - (stream.current().match(/^#@?[a-z0-9_]+ *$/i) && stream.peek()=="(") && - !(functions && functions.propertyIsEnumerable(word.toLowerCase()))) { - state.beforeParams = true; - state.lastTokenWasBuiltin = false; - return "keyword"; - } - if (state.inString) { - state.lastTokenWasBuiltin = false; - return "string"; - } - if (stream.pos > word.length && stream.string.charAt(stream.pos-word.length-1)=="." && state.lastTokenWasBuiltin) - return "builtin"; - // default: just a "word" - state.lastTokenWasBuiltin = false; - return null; - } - } - - function tokenString(quote) { - return function(stream, state) { - var escaped = false, next, end = false; - while ((next = stream.next()) != null) { - if ((next == quote) && !escaped) { - end = true; - break; - } - if (quote=='"' && stream.peek() == '$' && !escaped) { - state.inString = true; - end = true; - break; - } - escaped = !escaped && next == "\\"; - } - if (end) state.tokenize = tokenBase; - return "string"; - }; - } - - function tokenComment(stream, state) { - var maybeEnd = false, ch; - while (ch = stream.next()) { - if (ch == "#" && maybeEnd) { - state.tokenize = tokenBase; - break; - } - maybeEnd = (ch == "*"); - } - return "comment"; - } - - function tokenUnparsed(stream, state) { - var maybeEnd = 0, ch; - while (ch = stream.next()) { - if (ch == "#" && maybeEnd == 2) { - state.tokenize = tokenBase; - break; - } - if (ch == "]") - maybeEnd++; - else if (ch != " ") - maybeEnd = 0; - } - return "meta"; - } - // Interface - - return { - startState: function() { - return { - tokenize: tokenBase, - beforeParams: false, - inParams: false, - inString: false, - lastTokenWasBuiltin: false - }; - }, - - token: function(stream, state) { - if (stream.eatSpace()) return null; - return state.tokenize(stream, state); - }, - blockCommentStart: "#*", - blockCommentEnd: "*#", - lineComment: "##", - fold: "velocity" - }; -}); - -CodeMirror.defineMIME("text/velocity", "velocity"); - -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/verilog/index.html b/src/main/resources/static/editor.md-master/lib/codemirror/mode/verilog/index.html deleted file mode 100644 index 96b3d64..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/verilog/index.html +++ /dev/null @@ -1,120 +0,0 @@ - - -CodeMirror: Verilog/SystemVerilog mode - - - - - - - - - - -
    -

    SystemVerilog mode

    - -
    - - - -

    -Syntax highlighting and indentation for the Verilog and SystemVerilog languages (IEEE 1800). -

    Configuration options:

    -
      -
    • noIndentKeywords - List of keywords which should not cause identation to increase. E.g. ["package", "module"]. Default: None
    • -
    -

    - -

    MIME types defined: text/x-verilog and text/x-systemverilog.

    -
    diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/verilog/test.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/verilog/test.js deleted file mode 100644 index 9c8c094..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/verilog/test.js +++ /dev/null @@ -1,273 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function() { - var mode = CodeMirror.getMode({indentUnit: 4}, "verilog"); - function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); } - - MT("binary_literals", - "[number 1'b0]", - "[number 1'b1]", - "[number 1'bx]", - "[number 1'bz]", - "[number 1'bX]", - "[number 1'bZ]", - "[number 1'B0]", - "[number 1'B1]", - "[number 1'Bx]", - "[number 1'Bz]", - "[number 1'BX]", - "[number 1'BZ]", - "[number 1'b0]", - "[number 1'b1]", - "[number 2'b01]", - "[number 2'bxz]", - "[number 2'b11]", - "[number 2'b10]", - "[number 2'b1Z]", - "[number 12'b0101_0101_0101]", - "[number 1'b 0]", - "[number 'b0101]" - ); - - MT("octal_literals", - "[number 3'o7]", - "[number 3'O7]", - "[number 3'so7]", - "[number 3'SO7]" - ); - - MT("decimal_literals", - "[number 0]", - "[number 1]", - "[number 7]", - "[number 123_456]", - "[number 'd33]", - "[number 8'd255]", - "[number 8'D255]", - "[number 8'sd255]", - "[number 8'SD255]", - "[number 32'd123]", - "[number 32 'd123]", - "[number 32 'd 123]" - ); - - MT("hex_literals", - "[number 4'h0]", - "[number 4'ha]", - "[number 4'hF]", - "[number 4'hx]", - "[number 4'hz]", - "[number 4'hX]", - "[number 4'hZ]", - "[number 32'hdc78]", - "[number 32'hDC78]", - "[number 32 'hDC78]", - "[number 32'h DC78]", - "[number 32 'h DC78]", - "[number 32'h44x7]", - "[number 32'hFFF?]" - ); - - MT("real_number_literals", - "[number 1.2]", - "[number 0.1]", - "[number 2394.26331]", - "[number 1.2E12]", - "[number 1.2e12]", - "[number 1.30e-2]", - "[number 0.1e-0]", - "[number 23E10]", - "[number 29E-2]", - "[number 236.123_763_e-12]" - ); - - MT("operators", - "[meta ^]" - ); - - MT("keywords", - "[keyword logic]", - "[keyword logic] [variable foo]", - "[keyword reg] [variable abc]" - ); - - MT("variables", - "[variable _leading_underscore]", - "[variable _if]", - "[number 12] [variable foo]", - "[variable foo] [number 14]" - ); - - MT("tick_defines", - "[def `FOO]", - "[def `foo]", - "[def `FOO_bar]" - ); - - MT("system_calls", - "[meta $display]", - "[meta $vpi_printf]" - ); - - MT("line_comment", "[comment // Hello world]"); - - // Alignment tests - MT("align_port_map_style1", - /** - * mod mod(.a(a), - * .b(b) - * ); - */ - "[variable mod] [variable mod][bracket (].[variable a][bracket (][variable a][bracket )],", - " .[variable b][bracket (][variable b][bracket )]", - " [bracket )];", - "" - ); - - MT("align_port_map_style2", - /** - * mod mod( - * .a(a), - * .b(b) - * ); - */ - "[variable mod] [variable mod][bracket (]", - " .[variable a][bracket (][variable a][bracket )],", - " .[variable b][bracket (][variable b][bracket )]", - "[bracket )];", - "" - ); - - // Indentation tests - MT("indent_single_statement_if", - "[keyword if] [bracket (][variable foo][bracket )]", - " [keyword break];", - "" - ); - - MT("no_indent_after_single_line_if", - "[keyword if] [bracket (][variable foo][bracket )] [keyword break];", - "" - ); - - MT("indent_after_if_begin_same_line", - "[keyword if] [bracket (][variable foo][bracket )] [keyword begin]", - " [keyword break];", - " [keyword break];", - "[keyword end]", - "" - ); - - MT("indent_after_if_begin_next_line", - "[keyword if] [bracket (][variable foo][bracket )]", - " [keyword begin]", - " [keyword break];", - " [keyword break];", - " [keyword end]", - "" - ); - - MT("indent_single_statement_if_else", - "[keyword if] [bracket (][variable foo][bracket )]", - " [keyword break];", - "[keyword else]", - " [keyword break];", - "" - ); - - MT("indent_if_else_begin_same_line", - "[keyword if] [bracket (][variable foo][bracket )] [keyword begin]", - " [keyword break];", - " [keyword break];", - "[keyword end] [keyword else] [keyword begin]", - " [keyword break];", - " [keyword break];", - "[keyword end]", - "" - ); - - MT("indent_if_else_begin_next_line", - "[keyword if] [bracket (][variable foo][bracket )]", - " [keyword begin]", - " [keyword break];", - " [keyword break];", - " [keyword end]", - "[keyword else]", - " [keyword begin]", - " [keyword break];", - " [keyword break];", - " [keyword end]", - "" - ); - - MT("indent_if_nested_without_begin", - "[keyword if] [bracket (][variable foo][bracket )]", - " [keyword if] [bracket (][variable foo][bracket )]", - " [keyword if] [bracket (][variable foo][bracket )]", - " [keyword break];", - "" - ); - - MT("indent_case", - "[keyword case] [bracket (][variable state][bracket )]", - " [variable FOO]:", - " [keyword break];", - " [variable BAR]:", - " [keyword break];", - "[keyword endcase]", - "" - ); - - MT("unindent_after_end_with_preceding_text", - "[keyword begin]", - " [keyword break]; [keyword end]", - "" - ); - - MT("export_function_one_line_does_not_indent", - "[keyword export] [string \"DPI-C\"] [keyword function] [variable helloFromSV];", - "" - ); - - MT("export_task_one_line_does_not_indent", - "[keyword export] [string \"DPI-C\"] [keyword task] [variable helloFromSV];", - "" - ); - - MT("export_function_two_lines_indents_properly", - "[keyword export]", - " [string \"DPI-C\"] [keyword function] [variable helloFromSV];", - "" - ); - - MT("export_task_two_lines_indents_properly", - "[keyword export]", - " [string \"DPI-C\"] [keyword task] [variable helloFromSV];", - "" - ); - - MT("import_function_one_line_does_not_indent", - "[keyword import] [string \"DPI-C\"] [keyword function] [variable helloFromC];", - "" - ); - - MT("import_task_one_line_does_not_indent", - "[keyword import] [string \"DPI-C\"] [keyword task] [variable helloFromC];", - "" - ); - - MT("import_package_single_line_does_not_indent", - "[keyword import] [variable p]::[variable x];", - "[keyword import] [variable p]::[variable y];", - "" - ); - - MT("covergoup_with_function_indents_properly", - "[keyword covergroup] [variable cg] [keyword with] [keyword function] [variable sample][bracket (][keyword bit] [variable b][bracket )];", - " [variable c] : [keyword coverpoint] [variable c];", - "[keyword endgroup]: [variable cg]", - "" - ); - -})(); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/verilog/verilog.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/verilog/verilog.js deleted file mode 100644 index 96b9f24..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/verilog/verilog.js +++ /dev/null @@ -1,537 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { -"use strict"; - -CodeMirror.defineMode("verilog", function(config, parserConfig) { - - var indentUnit = config.indentUnit, - statementIndentUnit = parserConfig.statementIndentUnit || indentUnit, - dontAlignCalls = parserConfig.dontAlignCalls, - noIndentKeywords = parserConfig.noIndentKeywords || [], - multiLineStrings = parserConfig.multiLineStrings, - hooks = parserConfig.hooks || {}; - - function words(str) { - var obj = {}, words = str.split(" "); - for (var i = 0; i < words.length; ++i) obj[words[i]] = true; - return obj; - } - - /** - * Keywords from IEEE 1800-2012 - */ - var keywords = words( - "accept_on alias always always_comb always_ff always_latch and assert assign assume automatic before begin bind " + - "bins binsof bit break buf bufif0 bufif1 byte case casex casez cell chandle checker class clocking cmos config " + - "const constraint context continue cover covergroup coverpoint cross deassign default defparam design disable " + - "dist do edge else end endcase endchecker endclass endclocking endconfig endfunction endgenerate endgroup " + - "endinterface endmodule endpackage endprimitive endprogram endproperty endspecify endsequence endtable endtask " + - "enum event eventually expect export extends extern final first_match for force foreach forever fork forkjoin " + - "function generate genvar global highz0 highz1 if iff ifnone ignore_bins illegal_bins implements implies import " + - "incdir include initial inout input inside instance int integer interconnect interface intersect join join_any " + - "join_none large let liblist library local localparam logic longint macromodule matches medium modport module " + - "nand negedge nettype new nexttime nmos nor noshowcancelled not notif0 notif1 null or output package packed " + - "parameter pmos posedge primitive priority program property protected pull0 pull1 pulldown pullup " + - "pulsestyle_ondetect pulsestyle_onevent pure rand randc randcase randsequence rcmos real realtime ref reg " + - "reject_on release repeat restrict return rnmos rpmos rtran rtranif0 rtranif1 s_always s_eventually s_nexttime " + - "s_until s_until_with scalared sequence shortint shortreal showcancelled signed small soft solve specify " + - "specparam static string strong strong0 strong1 struct super supply0 supply1 sync_accept_on sync_reject_on " + - "table tagged task this throughout time timeprecision timeunit tran tranif0 tranif1 tri tri0 tri1 triand trior " + - "trireg type typedef union unique unique0 unsigned until until_with untyped use uwire var vectored virtual void " + - "wait wait_order wand weak weak0 weak1 while wildcard wire with within wor xnor xor"); - - /** Operators from IEEE 1800-2012 - unary_operator ::= - + | - | ! | ~ | & | ~& | | | ~| | ^ | ~^ | ^~ - binary_operator ::= - + | - | * | / | % | == | != | === | !== | ==? | !=? | && | || | ** - | < | <= | > | >= | & | | | ^ | ^~ | ~^ | >> | << | >>> | <<< - | -> | <-> - inc_or_dec_operator ::= ++ | -- - unary_module_path_operator ::= - ! | ~ | & | ~& | | | ~| | ^ | ~^ | ^~ - binary_module_path_operator ::= - == | != | && | || | & | | | ^ | ^~ | ~^ - */ - var isOperatorChar = /[\+\-\*\/!~&|^%=?:]/; - var isBracketChar = /[\[\]{}()]/; - - var unsignedNumber = /\d[0-9_]*/; - var decimalLiteral = /\d*\s*'s?d\s*\d[0-9_]*/i; - var binaryLiteral = /\d*\s*'s?b\s*[xz01][xz01_]*/i; - var octLiteral = /\d*\s*'s?o\s*[xz0-7][xz0-7_]*/i; - var hexLiteral = /\d*\s*'s?h\s*[0-9a-fxz?][0-9a-fxz?_]*/i; - var realLiteral = /(\d[\d_]*(\.\d[\d_]*)?E-?[\d_]+)|(\d[\d_]*\.\d[\d_]*)/i; - - var closingBracketOrWord = /^((\w+)|[)}\]])/; - var closingBracket = /[)}\]]/; - - var curPunc; - var curKeyword; - - // Block openings which are closed by a matching keyword in the form of ("end" + keyword) - // E.g. "task" => "endtask" - var blockKeywords = words( - "case checker class clocking config function generate interface module package" + - "primitive program property specify sequence table task" - ); - - // Opening/closing pairs - var openClose = {}; - for (var keyword in blockKeywords) { - openClose[keyword] = "end" + keyword; - } - openClose["begin"] = "end"; - openClose["casex"] = "endcase"; - openClose["casez"] = "endcase"; - openClose["do" ] = "while"; - openClose["fork" ] = "join;join_any;join_none"; - openClose["covergroup"] = "endgroup"; - - for (var i in noIndentKeywords) { - var keyword = noIndentKeywords[i]; - if (openClose[keyword]) { - openClose[keyword] = undefined; - } - } - - // Keywords which open statements that are ended with a semi-colon - var statementKeywords = words("always always_comb always_ff always_latch assert assign assume else export for foreach forever if import initial repeat while"); - - function tokenBase(stream, state) { - var ch = stream.peek(), style; - if (hooks[ch] && (style = hooks[ch](stream, state)) != false) return style; - if (hooks.tokenBase && (style = hooks.tokenBase(stream, state)) != false) - return style; - - if (/[,;:\.]/.test(ch)) { - curPunc = stream.next(); - return null; - } - if (isBracketChar.test(ch)) { - curPunc = stream.next(); - return "bracket"; - } - // Macros (tick-defines) - if (ch == '`') { - stream.next(); - if (stream.eatWhile(/[\w\$_]/)) { - return "def"; - } else { - return null; - } - } - // System calls - if (ch == '$') { - stream.next(); - if (stream.eatWhile(/[\w\$_]/)) { - return "meta"; - } else { - return null; - } - } - // Time literals - if (ch == '#') { - stream.next(); - stream.eatWhile(/[\d_.]/); - return "def"; - } - // Strings - if (ch == '"') { - stream.next(); - state.tokenize = tokenString(ch); - return state.tokenize(stream, state); - } - // Comments - if (ch == "/") { - stream.next(); - if (stream.eat("*")) { - state.tokenize = tokenComment; - return tokenComment(stream, state); - } - if (stream.eat("/")) { - stream.skipToEnd(); - return "comment"; - } - stream.backUp(1); - } - - // Numeric literals - if (stream.match(realLiteral) || - stream.match(decimalLiteral) || - stream.match(binaryLiteral) || - stream.match(octLiteral) || - stream.match(hexLiteral) || - stream.match(unsignedNumber) || - stream.match(realLiteral)) { - return "number"; - } - - // Operators - if (stream.eatWhile(isOperatorChar)) { - return "meta"; - } - - // Keywords / plain variables - if (stream.eatWhile(/[\w\$_]/)) { - var cur = stream.current(); - if (keywords[cur]) { - if (openClose[cur]) { - curPunc = "newblock"; - } - if (statementKeywords[cur]) { - curPunc = "newstatement"; - } - curKeyword = cur; - return "keyword"; - } - return "variable"; - } - - stream.next(); - return null; - } - - function tokenString(quote) { - return function(stream, state) { - var escaped = false, next, end = false; - while ((next = stream.next()) != null) { - if (next == quote && !escaped) {end = true; break;} - escaped = !escaped && next == "\\"; - } - if (end || !(escaped || multiLineStrings)) - state.tokenize = tokenBase; - return "string"; - }; - } - - function tokenComment(stream, state) { - var maybeEnd = false, ch; - while (ch = stream.next()) { - if (ch == "/" && maybeEnd) { - state.tokenize = tokenBase; - break; - } - maybeEnd = (ch == "*"); - } - return "comment"; - } - - function Context(indented, column, type, align, prev) { - this.indented = indented; - this.column = column; - this.type = type; - this.align = align; - this.prev = prev; - } - function pushContext(state, col, type) { - var indent = state.indented; - var c = new Context(indent, col, type, null, state.context); - return state.context = c; - } - function popContext(state) { - var t = state.context.type; - if (t == ")" || t == "]" || t == "}") { - state.indented = state.context.indented; - } - return state.context = state.context.prev; - } - - function isClosing(text, contextClosing) { - if (text == contextClosing) { - return true; - } else { - // contextClosing may be mulitple keywords separated by ; - var closingKeywords = contextClosing.split(";"); - for (var i in closingKeywords) { - if (text == closingKeywords[i]) { - return true; - } - } - return false; - } - } - - function buildElectricInputRegEx() { - // Reindentation should occur on any bracket char: {}()[] - // or on a match of any of the block closing keywords, at - // the end of a line - var allClosings = []; - for (var i in openClose) { - if (openClose[i]) { - var closings = openClose[i].split(";"); - for (var j in closings) { - allClosings.push(closings[j]); - } - } - } - var re = new RegExp("[{}()\\[\\]]|(" + allClosings.join("|") + ")$"); - return re; - } - - // Interface - return { - - // Regex to force current line to reindent - electricInput: buildElectricInputRegEx(), - - startState: function(basecolumn) { - var state = { - tokenize: null, - context: new Context((basecolumn || 0) - indentUnit, 0, "top", false), - indented: 0, - startOfLine: true - }; - if (hooks.startState) hooks.startState(state); - return state; - }, - - token: function(stream, state) { - var ctx = state.context; - if (stream.sol()) { - if (ctx.align == null) ctx.align = false; - state.indented = stream.indentation(); - state.startOfLine = true; - } - if (hooks.token) hooks.token(stream, state); - if (stream.eatSpace()) return null; - curPunc = null; - curKeyword = null; - var style = (state.tokenize || tokenBase)(stream, state); - if (style == "comment" || style == "meta" || style == "variable") return style; - if (ctx.align == null) ctx.align = true; - - if (curPunc == ctx.type) { - popContext(state); - } else if ((curPunc == ";" && ctx.type == "statement") || - (ctx.type && isClosing(curKeyword, ctx.type))) { - ctx = popContext(state); - while (ctx && ctx.type == "statement") ctx = popContext(state); - } else if (curPunc == "{") { - pushContext(state, stream.column(), "}"); - } else if (curPunc == "[") { - pushContext(state, stream.column(), "]"); - } else if (curPunc == "(") { - pushContext(state, stream.column(), ")"); - } else if (ctx && ctx.type == "endcase" && curPunc == ":") { - pushContext(state, stream.column(), "statement"); - } else if (curPunc == "newstatement") { - pushContext(state, stream.column(), "statement"); - } else if (curPunc == "newblock") { - if (curKeyword == "function" && ctx && (ctx.type == "statement" || ctx.type == "endgroup")) { - // The 'function' keyword can appear in some other contexts where it actually does not - // indicate a function (import/export DPI and covergroup definitions). - // Do nothing in this case - } else if (curKeyword == "task" && ctx && ctx.type == "statement") { - // Same thing for task - } else { - var close = openClose[curKeyword]; - pushContext(state, stream.column(), close); - } - } - - state.startOfLine = false; - return style; - }, - - indent: function(state, textAfter) { - if (state.tokenize != tokenBase && state.tokenize != null) return CodeMirror.Pass; - if (hooks.indent) { - var fromHook = hooks.indent(state); - if (fromHook >= 0) return fromHook; - } - var ctx = state.context, firstChar = textAfter && textAfter.charAt(0); - if (ctx.type == "statement" && firstChar == "}") ctx = ctx.prev; - var closing = false; - var possibleClosing = textAfter.match(closingBracketOrWord); - if (possibleClosing) - closing = isClosing(possibleClosing[0], ctx.type); - if (ctx.type == "statement") return ctx.indented + (firstChar == "{" ? 0 : statementIndentUnit); - else if (closingBracket.test(ctx.type) && ctx.align && !dontAlignCalls) return ctx.column + (closing ? 0 : 1); - else if (ctx.type == ")" && !closing) return ctx.indented + statementIndentUnit; - else return ctx.indented + (closing ? 0 : indentUnit); - }, - - blockCommentStart: "/*", - blockCommentEnd: "*/", - lineComment: "//" - }; -}); - - CodeMirror.defineMIME("text/x-verilog", { - name: "verilog" - }); - - CodeMirror.defineMIME("text/x-systemverilog", { - name: "verilog" - }); - - // SVXVerilog mode - - var svxchScopePrefixes = { - ">": "property", "->": "property", "-": "hr", "|": "link", "?$": "qualifier", "?*": "qualifier", - "@-": "variable-3", "@": "variable-3", "?": "qualifier" - }; - - function svxGenIndent(stream, state) { - var svxindentUnit = 2; - var rtnIndent = -1, indentUnitRq = 0, curIndent = stream.indentation(); - switch (state.svxCurCtlFlowChar) { - case "\\": - curIndent = 0; - break; - case "|": - if (state.svxPrevPrevCtlFlowChar == "@") { - indentUnitRq = -2; //-2 new pipe rq after cur pipe - break; - } - if (svxchScopePrefixes[state.svxPrevCtlFlowChar]) - indentUnitRq = 1; // +1 new scope - break; - case "M": // m4 - if (state.svxPrevPrevCtlFlowChar == "@") { - indentUnitRq = -2; //-2 new inst rq after pipe - break; - } - if (svxchScopePrefixes[state.svxPrevCtlFlowChar]) - indentUnitRq = 1; // +1 new scope - break; - case "@": - if (state.svxPrevCtlFlowChar == "S") - indentUnitRq = -1; // new pipe stage after stmts - if (state.svxPrevCtlFlowChar == "|") - indentUnitRq = 1; // 1st pipe stage - break; - case "S": - if (state.svxPrevCtlFlowChar == "@") - indentUnitRq = 1; // flow in pipe stage - if (svxchScopePrefixes[state.svxPrevCtlFlowChar]) - indentUnitRq = 1; // +1 new scope - break; - } - var statementIndentUnit = svxindentUnit; - rtnIndent = curIndent + (indentUnitRq*statementIndentUnit); - return rtnIndent >= 0 ? rtnIndent : curIndent; - } - - CodeMirror.defineMIME("text/x-svx", { - name: "verilog", - hooks: { - "\\": function(stream, state) { - var vxIndent = 0, style = false; - var curPunc = stream.string; - if ((stream.sol()) && (/\\SV/.test(stream.string))) { - curPunc = (/\\SVX_version/.test(stream.string)) - ? "\\SVX_version" : stream.string; - stream.skipToEnd(); - if (curPunc == "\\SV" && state.vxCodeActive) {state.vxCodeActive = false;}; - if ((/\\SVX/.test(curPunc) && !state.vxCodeActive) - || (curPunc=="\\SVX_version" && state.vxCodeActive)) {state.vxCodeActive = true;}; - style = "keyword"; - state.svxCurCtlFlowChar = state.svxPrevPrevCtlFlowChar - = state.svxPrevCtlFlowChar = ""; - if (state.vxCodeActive == true) { - state.svxCurCtlFlowChar = "\\"; - vxIndent = svxGenIndent(stream, state); - } - state.vxIndentRq = vxIndent; - } - return style; - }, - tokenBase: function(stream, state) { - var vxIndent = 0, style = false; - var svxisOperatorChar = /[\[\]=:]/; - var svxkpScopePrefixs = { - "**":"variable-2", "*":"variable-2", "$$":"variable", "$":"variable", - "^^":"attribute", "^":"attribute"}; - var ch = stream.peek(); - var vxCurCtlFlowCharValueAtStart = state.svxCurCtlFlowChar; - if (state.vxCodeActive == true) { - if (/[\[\]{}\(\);\:]/.test(ch)) { - // bypass nesting and 1 char punc - style = "meta"; - stream.next(); - } else if (ch == "/") { - stream.next(); - if (stream.eat("/")) { - stream.skipToEnd(); - style = "comment"; - state.svxCurCtlFlowChar = "S"; - } else { - stream.backUp(1); - } - } else if (ch == "@") { - // pipeline stage - style = svxchScopePrefixes[ch]; - state.svxCurCtlFlowChar = "@"; - stream.next(); - stream.eatWhile(/[\w\$_]/); - } else if (stream.match(/\b[mM]4+/, true)) { // match: function(pattern, consume, caseInsensitive) - // m4 pre proc - stream.skipTo("("); - style = "def"; - state.svxCurCtlFlowChar = "M"; - } else if (ch == "!" && stream.sol()) { - // v stmt in svx region - // state.svxCurCtlFlowChar = "S"; - style = "comment"; - stream.next(); - } else if (svxisOperatorChar.test(ch)) { - // operators - stream.eatWhile(svxisOperatorChar); - style = "operator"; - } else if (ch == "#") { - // phy hier - state.svxCurCtlFlowChar = (state.svxCurCtlFlowChar == "") - ? ch : state.svxCurCtlFlowChar; - stream.next(); - stream.eatWhile(/[+-]\d/); - style = "tag"; - } else if (svxkpScopePrefixs.propertyIsEnumerable(ch)) { - // special SVX operators - style = svxkpScopePrefixs[ch]; - state.svxCurCtlFlowChar = state.svxCurCtlFlowChar == "" ? "S" : state.svxCurCtlFlowChar; // stmt - stream.next(); - stream.match(/[a-zA-Z_0-9]+/); - } else if (style = svxchScopePrefixes[ch] || false) { - // special SVX operators - state.svxCurCtlFlowChar = state.svxCurCtlFlowChar == "" ? ch : state.svxCurCtlFlowChar; - stream.next(); - stream.match(/[a-zA-Z_0-9]+/); - } - if (state.svxCurCtlFlowChar != vxCurCtlFlowCharValueAtStart) { // flow change - vxIndent = svxGenIndent(stream, state); - state.vxIndentRq = vxIndent; - } - } - return style; - }, - token: function(stream, state) { - if (state.vxCodeActive == true && stream.sol() && state.svxCurCtlFlowChar != "") { - state.svxPrevPrevCtlFlowChar = state.svxPrevCtlFlowChar; - state.svxPrevCtlFlowChar = state.svxCurCtlFlowChar; - state.svxCurCtlFlowChar = ""; - } - }, - indent: function(state) { - return (state.vxCodeActive == true) ? state.vxIndentRq : -1; - }, - startState: function(state) { - state.svxCurCtlFlowChar = ""; - state.svxPrevCtlFlowChar = ""; - state.svxPrevPrevCtlFlowChar = ""; - state.vxCodeActive = true; - state.vxIndentRq = 0; - } - } - }); -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/xml/index.html b/src/main/resources/static/editor.md-master/lib/codemirror/mode/xml/index.html deleted file mode 100644 index 7149f06..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/xml/index.html +++ /dev/null @@ -1,57 +0,0 @@ - - -CodeMirror: XML mode - - - - - - - - - -
    -

    XML mode

    -
    - -

    The XML mode supports two configuration parameters:

    -
    -
    htmlMode (boolean)
    -
    This switches the mode to parse HTML instead of XML. This - means attributes do not have to be quoted, and some elements - (such as br) do not require a closing tag.
    -
    alignCDATA (boolean)
    -
    Setting this to true will force the opening tag of CDATA - blocks to not be indented.
    -
    - -

    MIME types defined: application/xml, text/html.

    -
    diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/xml/test.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/xml/test.js deleted file mode 100644 index f48156b..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/xml/test.js +++ /dev/null @@ -1,51 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function() { - var mode = CodeMirror.getMode({indentUnit: 2}, "xml"), mname = "xml"; - function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1), mname); } - - MT("matching", - "[tag&bracket <][tag top][tag&bracket >]", - " text", - " [tag&bracket <][tag inner][tag&bracket />]", - "[tag&bracket ]"); - - MT("nonmatching", - "[tag&bracket <][tag top][tag&bracket >]", - " [tag&bracket <][tag inner][tag&bracket />]", - " [tag&bracket ]"); - - MT("doctype", - "[meta ]", - "[tag&bracket <][tag top][tag&bracket />]"); - - MT("cdata", - "[tag&bracket <][tag top][tag&bracket >]", - " [atom ]", - "[tag&bracket ]"); - - // HTML tests - mode = CodeMirror.getMode({indentUnit: 2}, "text/html"); - - MT("selfclose", - "[tag&bracket <][tag html][tag&bracket >]", - " [tag&bracket <][tag link] [attribute rel]=[string stylesheet] [attribute href]=[string \"/foobar\"][tag&bracket >]", - "[tag&bracket ]"); - - MT("list", - "[tag&bracket <][tag ol][tag&bracket >]", - " [tag&bracket <][tag li][tag&bracket >]one", - " [tag&bracket <][tag li][tag&bracket >]two", - "[tag&bracket ]"); - - MT("valueless", - "[tag&bracket <][tag input] [attribute type]=[string checkbox] [attribute checked][tag&bracket />]"); - - MT("pThenArticle", - "[tag&bracket <][tag p][tag&bracket >]", - " foo", - "[tag&bracket <][tag article][tag&bracket >]bar"); - -})(); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/xml/xml.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/xml/xml.js deleted file mode 100644 index 2f3b8f8..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/xml/xml.js +++ /dev/null @@ -1,384 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { -"use strict"; - -CodeMirror.defineMode("xml", function(config, parserConfig) { - var indentUnit = config.indentUnit; - var multilineTagIndentFactor = parserConfig.multilineTagIndentFactor || 1; - var multilineTagIndentPastTag = parserConfig.multilineTagIndentPastTag; - if (multilineTagIndentPastTag == null) multilineTagIndentPastTag = true; - - var Kludges = parserConfig.htmlMode ? { - autoSelfClosers: {'area': true, 'base': true, 'br': true, 'col': true, 'command': true, - 'embed': true, 'frame': true, 'hr': true, 'img': true, 'input': true, - 'keygen': true, 'link': true, 'meta': true, 'param': true, 'source': true, - 'track': true, 'wbr': true, 'menuitem': true}, - implicitlyClosed: {'dd': true, 'li': true, 'optgroup': true, 'option': true, 'p': true, - 'rp': true, 'rt': true, 'tbody': true, 'td': true, 'tfoot': true, - 'th': true, 'tr': true}, - contextGrabbers: { - 'dd': {'dd': true, 'dt': true}, - 'dt': {'dd': true, 'dt': true}, - 'li': {'li': true}, - 'option': {'option': true, 'optgroup': true}, - 'optgroup': {'optgroup': true}, - 'p': {'address': true, 'article': true, 'aside': true, 'blockquote': true, 'dir': true, - 'div': true, 'dl': true, 'fieldset': true, 'footer': true, 'form': true, - 'h1': true, 'h2': true, 'h3': true, 'h4': true, 'h5': true, 'h6': true, - 'header': true, 'hgroup': true, 'hr': true, 'menu': true, 'nav': true, 'ol': true, - 'p': true, 'pre': true, 'section': true, 'table': true, 'ul': true}, - 'rp': {'rp': true, 'rt': true}, - 'rt': {'rp': true, 'rt': true}, - 'tbody': {'tbody': true, 'tfoot': true}, - 'td': {'td': true, 'th': true}, - 'tfoot': {'tbody': true}, - 'th': {'td': true, 'th': true}, - 'thead': {'tbody': true, 'tfoot': true}, - 'tr': {'tr': true} - }, - doNotIndent: {"pre": true}, - allowUnquoted: true, - allowMissing: true, - caseFold: true - } : { - autoSelfClosers: {}, - implicitlyClosed: {}, - contextGrabbers: {}, - doNotIndent: {}, - allowUnquoted: false, - allowMissing: false, - caseFold: false - }; - var alignCDATA = parserConfig.alignCDATA; - - // Return variables for tokenizers - var type, setStyle; - - function inText(stream, state) { - function chain(parser) { - state.tokenize = parser; - return parser(stream, state); - } - - var ch = stream.next(); - if (ch == "<") { - if (stream.eat("!")) { - if (stream.eat("[")) { - if (stream.match("CDATA[")) return chain(inBlock("atom", "]]>")); - else return null; - } else if (stream.match("--")) { - return chain(inBlock("comment", "-->")); - } else if (stream.match("DOCTYPE", true, true)) { - stream.eatWhile(/[\w\._\-]/); - return chain(doctype(1)); - } else { - return null; - } - } else if (stream.eat("?")) { - stream.eatWhile(/[\w\._\-]/); - state.tokenize = inBlock("meta", "?>"); - return "meta"; - } else { - type = stream.eat("/") ? "closeTag" : "openTag"; - state.tokenize = inTag; - return "tag bracket"; - } - } else if (ch == "&") { - var ok; - if (stream.eat("#")) { - if (stream.eat("x")) { - ok = stream.eatWhile(/[a-fA-F\d]/) && stream.eat(";"); - } else { - ok = stream.eatWhile(/[\d]/) && stream.eat(";"); - } - } else { - ok = stream.eatWhile(/[\w\.\-:]/) && stream.eat(";"); - } - return ok ? "atom" : "error"; - } else { - stream.eatWhile(/[^&<]/); - return null; - } - } - - function inTag(stream, state) { - var ch = stream.next(); - if (ch == ">" || (ch == "/" && stream.eat(">"))) { - state.tokenize = inText; - type = ch == ">" ? "endTag" : "selfcloseTag"; - return "tag bracket"; - } else if (ch == "=") { - type = "equals"; - return null; - } else if (ch == "<") { - state.tokenize = inText; - state.state = baseState; - state.tagName = state.tagStart = null; - var next = state.tokenize(stream, state); - return next ? next + " tag error" : "tag error"; - } else if (/[\'\"]/.test(ch)) { - state.tokenize = inAttribute(ch); - state.stringStartCol = stream.column(); - return state.tokenize(stream, state); - } else { - stream.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/); - return "word"; - } - } - - function inAttribute(quote) { - var closure = function(stream, state) { - while (!stream.eol()) { - if (stream.next() == quote) { - state.tokenize = inTag; - break; - } - } - return "string"; - }; - closure.isInAttribute = true; - return closure; - } - - function inBlock(style, terminator) { - return function(stream, state) { - while (!stream.eol()) { - if (stream.match(terminator)) { - state.tokenize = inText; - break; - } - stream.next(); - } - return style; - }; - } - function doctype(depth) { - return function(stream, state) { - var ch; - while ((ch = stream.next()) != null) { - if (ch == "<") { - state.tokenize = doctype(depth + 1); - return state.tokenize(stream, state); - } else if (ch == ">") { - if (depth == 1) { - state.tokenize = inText; - break; - } else { - state.tokenize = doctype(depth - 1); - return state.tokenize(stream, state); - } - } - } - return "meta"; - }; - } - - function Context(state, tagName, startOfLine) { - this.prev = state.context; - this.tagName = tagName; - this.indent = state.indented; - this.startOfLine = startOfLine; - if (Kludges.doNotIndent.hasOwnProperty(tagName) || (state.context && state.context.noIndent)) - this.noIndent = true; - } - function popContext(state) { - if (state.context) state.context = state.context.prev; - } - function maybePopContext(state, nextTagName) { - var parentTagName; - while (true) { - if (!state.context) { - return; - } - parentTagName = state.context.tagName; - if (!Kludges.contextGrabbers.hasOwnProperty(parentTagName) || - !Kludges.contextGrabbers[parentTagName].hasOwnProperty(nextTagName)) { - return; - } - popContext(state); - } - } - - function baseState(type, stream, state) { - if (type == "openTag") { - state.tagStart = stream.column(); - return tagNameState; - } else if (type == "closeTag") { - return closeTagNameState; - } else { - return baseState; - } - } - function tagNameState(type, stream, state) { - if (type == "word") { - state.tagName = stream.current(); - setStyle = "tag"; - return attrState; - } else { - setStyle = "error"; - return tagNameState; - } - } - function closeTagNameState(type, stream, state) { - if (type == "word") { - var tagName = stream.current(); - if (state.context && state.context.tagName != tagName && - Kludges.implicitlyClosed.hasOwnProperty(state.context.tagName)) - popContext(state); - if (state.context && state.context.tagName == tagName) { - setStyle = "tag"; - return closeState; - } else { - setStyle = "tag error"; - return closeStateErr; - } - } else { - setStyle = "error"; - return closeStateErr; - } - } - - function closeState(type, _stream, state) { - if (type != "endTag") { - setStyle = "error"; - return closeState; - } - popContext(state); - return baseState; - } - function closeStateErr(type, stream, state) { - setStyle = "error"; - return closeState(type, stream, state); - } - - function attrState(type, _stream, state) { - if (type == "word") { - setStyle = "attribute"; - return attrEqState; - } else if (type == "endTag" || type == "selfcloseTag") { - var tagName = state.tagName, tagStart = state.tagStart; - state.tagName = state.tagStart = null; - if (type == "selfcloseTag" || - Kludges.autoSelfClosers.hasOwnProperty(tagName)) { - maybePopContext(state, tagName); - } else { - maybePopContext(state, tagName); - state.context = new Context(state, tagName, tagStart == state.indented); - } - return baseState; - } - setStyle = "error"; - return attrState; - } - function attrEqState(type, stream, state) { - if (type == "equals") return attrValueState; - if (!Kludges.allowMissing) setStyle = "error"; - return attrState(type, stream, state); - } - function attrValueState(type, stream, state) { - if (type == "string") return attrContinuedState; - if (type == "word" && Kludges.allowUnquoted) {setStyle = "string"; return attrState;} - setStyle = "error"; - return attrState(type, stream, state); - } - function attrContinuedState(type, stream, state) { - if (type == "string") return attrContinuedState; - return attrState(type, stream, state); - } - - return { - startState: function() { - return {tokenize: inText, - state: baseState, - indented: 0, - tagName: null, tagStart: null, - context: null}; - }, - - token: function(stream, state) { - if (!state.tagName && stream.sol()) - state.indented = stream.indentation(); - - if (stream.eatSpace()) return null; - type = null; - var style = state.tokenize(stream, state); - if ((style || type) && style != "comment") { - setStyle = null; - state.state = state.state(type || style, stream, state); - if (setStyle) - style = setStyle == "error" ? style + " error" : setStyle; - } - return style; - }, - - indent: function(state, textAfter, fullLine) { - var context = state.context; - // Indent multi-line strings (e.g. css). - if (state.tokenize.isInAttribute) { - if (state.tagStart == state.indented) - return state.stringStartCol + 1; - else - return state.indented + indentUnit; - } - if (context && context.noIndent) return CodeMirror.Pass; - if (state.tokenize != inTag && state.tokenize != inText) - return fullLine ? fullLine.match(/^(\s*)/)[0].length : 0; - // Indent the starts of attribute names. - if (state.tagName) { - if (multilineTagIndentPastTag) - return state.tagStart + state.tagName.length + 2; - else - return state.tagStart + indentUnit * multilineTagIndentFactor; - } - if (alignCDATA && /$/, - blockCommentStart: "", - - configuration: parserConfig.htmlMode ? "html" : "xml", - helperType: parserConfig.htmlMode ? "html" : "xml" - }; -}); - -CodeMirror.defineMIME("text/xml", "xml"); -CodeMirror.defineMIME("application/xml", "xml"); -if (!CodeMirror.mimeModes.hasOwnProperty("text/html")) - CodeMirror.defineMIME("text/html", {name: "xml", htmlMode: true}); - -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/xquery/index.html b/src/main/resources/static/editor.md-master/lib/codemirror/mode/xquery/index.html deleted file mode 100644 index 7ac5aae..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/xquery/index.html +++ /dev/null @@ -1,210 +0,0 @@ - - -CodeMirror: XQuery mode - - - - - - - - - - -
    -

    XQuery mode

    - - -
    - -
    - - - -

    MIME types defined: application/xquery.

    - -

    Development of the CodeMirror XQuery mode was sponsored by - MarkLogic and developed by - Mike Brevoort. -

    - -
    diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/xquery/test.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/xquery/test.js deleted file mode 100644 index 1f148cd..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/xquery/test.js +++ /dev/null @@ -1,67 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -// Don't take these too seriously -- the expected results appear to be -// based on the results of actual runs without any serious manual -// verification. If a change you made causes them to fail, the test is -// as likely to wrong as the code. - -(function() { - var mode = CodeMirror.getMode({tabSize: 4}, "xquery"); - function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); } - - MT("eviltest", - "[keyword xquery] [keyword version] [variable "1][keyword .][atom 0][keyword -][variable ml"][def&variable ;] [comment (: this is : a \"comment\" :)]", - " [keyword let] [variable $let] [keyword :=] [variable <x] [variable attr][keyword =][variable "value">"test"<func>][def&variable ;function]() [variable $var] {[keyword function]()} {[variable $var]}[variable <][keyword /][variable func><][keyword /][variable x>]", - " [keyword let] [variable $joe][keyword :=][atom 1]", - " [keyword return] [keyword element] [variable element] {", - " [keyword attribute] [variable attribute] { [atom 1] },", - " [keyword element] [variable test] { [variable 'a'] }, [keyword attribute] [variable foo] { [variable "bar"] },", - " [def&variable fn:doc]()[[ [variable foo][keyword /][variable @bar] [keyword eq] [variable $let] ]],", - " [keyword //][variable x] } [comment (: a more 'evil' test :)]", - " [comment (: Modified Blakeley example (: with nested comment :) ... :)]", - " [keyword declare] [keyword private] [keyword function] [def&variable local:declare]() {()}[variable ;]", - " [keyword declare] [keyword private] [keyword function] [def&variable local:private]() {()}[variable ;]", - " [keyword declare] [keyword private] [keyword function] [def&variable local:function]() {()}[variable ;]", - " [keyword declare] [keyword private] [keyword function] [def&variable local:local]() {()}[variable ;]", - " [keyword let] [variable $let] [keyword :=] [variable <let>let] [variable $let] [keyword :=] [variable "let"<][keyword /let][variable >]", - " [keyword return] [keyword element] [variable element] {", - " [keyword attribute] [variable attribute] { [keyword try] { [def&variable xdmp:version]() } [keyword catch]([variable $e]) { [def&variable xdmp:log]([variable $e]) } },", - " [keyword attribute] [variable fn:doc] { [variable "bar"] [variable castable] [keyword as] [atom xs:string] },", - " [keyword element] [variable text] { [keyword text] { [variable "text"] } },", - " [def&variable fn:doc]()[[ [qualifier child::][variable eq][keyword /]([variable @bar] [keyword |] [qualifier attribute::][variable attribute]) [keyword eq] [variable $let] ]],", - " [keyword //][variable fn:doc]", - " }"); - - MT("testEmptySequenceKeyword", - "[string \"foo\"] [keyword instance] [keyword of] [keyword empty-sequence]()"); - - MT("testMultiAttr", - "[tag

    ][variable hello] [variable world][tag

    ]"); - - MT("test namespaced variable", - "[keyword declare] [keyword namespace] [variable e] [keyword =] [string \"http://example.com/ANamespace\"][variable ;declare] [keyword variable] [variable $e:exampleComThisVarIsNotRecognized] [keyword as] [keyword element]([keyword *]) [variable external;]"); - - MT("test EQName variable", - "[keyword declare] [keyword variable] [variable $\"http://www.example.com/ns/my\":var] [keyword :=] [atom 12][variable ;]", - "[tag ]{[variable $\"http://www.example.com/ns/my\":var]}[tag ]"); - - MT("test EQName function", - "[keyword declare] [keyword function] [def&variable \"http://www.example.com/ns/my\":fn] ([variable $a] [keyword as] [atom xs:integer]) [keyword as] [atom xs:integer] {", - " [variable $a] [keyword +] [atom 2]", - "}[variable ;]", - "[tag ]{[def&variable \"http://www.example.com/ns/my\":fn]([atom 12])}[tag ]"); - - MT("test EQName function with single quotes", - "[keyword declare] [keyword function] [def&variable 'http://www.example.com/ns/my':fn] ([variable $a] [keyword as] [atom xs:integer]) [keyword as] [atom xs:integer] {", - " [variable $a] [keyword +] [atom 2]", - "}[variable ;]", - "[tag ]{[def&variable 'http://www.example.com/ns/my':fn]([atom 12])}[tag ]"); - - MT("testProcessingInstructions", - "[def&variable data]([comment&meta ]) [keyword instance] [keyword of] [atom xs:string]"); - - MT("testQuoteEscapeDouble", - "[keyword let] [variable $rootfolder] [keyword :=] [string \"c:\\builds\\winnt\\HEAD\\qa\\scripts\\\"]", - "[keyword let] [variable $keysfolder] [keyword :=] [def&variable concat]([variable $rootfolder], [string \"keys\\\"])"); -})(); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/xquery/xquery.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/xquery/xquery.js deleted file mode 100644 index c8f3d90..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/xquery/xquery.js +++ /dev/null @@ -1,447 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { -"use strict"; - -CodeMirror.defineMode("xquery", function() { - - // The keywords object is set to the result of this self executing - // function. Each keyword is a property of the keywords object whose - // value is {type: atype, style: astyle} - var keywords = function(){ - // conveinence functions used to build keywords object - function kw(type) {return {type: type, style: "keyword"};} - var A = kw("keyword a") - , B = kw("keyword b") - , C = kw("keyword c") - , operator = kw("operator") - , atom = {type: "atom", style: "atom"} - , punctuation = {type: "punctuation", style: null} - , qualifier = {type: "axis_specifier", style: "qualifier"}; - - // kwObj is what is return from this function at the end - var kwObj = { - 'if': A, 'switch': A, 'while': A, 'for': A, - 'else': B, 'then': B, 'try': B, 'finally': B, 'catch': B, - 'element': C, 'attribute': C, 'let': C, 'implements': C, 'import': C, 'module': C, 'namespace': C, - 'return': C, 'super': C, 'this': C, 'throws': C, 'where': C, 'private': C, - ',': punctuation, - 'null': atom, 'fn:false()': atom, 'fn:true()': atom - }; - - // a list of 'basic' keywords. For each add a property to kwObj with the value of - // {type: basic[i], style: "keyword"} e.g. 'after' --> {type: "after", style: "keyword"} - var basic = ['after','ancestor','ancestor-or-self','and','as','ascending','assert','attribute','before', - 'by','case','cast','child','comment','declare','default','define','descendant','descendant-or-self', - 'descending','document','document-node','element','else','eq','every','except','external','following', - 'following-sibling','follows','for','function','if','import','in','instance','intersect','item', - 'let','module','namespace','node','node','of','only','or','order','parent','precedes','preceding', - 'preceding-sibling','processing-instruction','ref','return','returns','satisfies','schema','schema-element', - 'self','some','sortby','stable','text','then','to','treat','typeswitch','union','variable','version','where', - 'xquery', 'empty-sequence']; - for(var i=0, l=basic.length; i < l; i++) { kwObj[basic[i]] = kw(basic[i]);}; - - // a list of types. For each add a property to kwObj with the value of - // {type: "atom", style: "atom"} - var types = ['xs:string', 'xs:float', 'xs:decimal', 'xs:double', 'xs:integer', 'xs:boolean', 'xs:date', 'xs:dateTime', - 'xs:time', 'xs:duration', 'xs:dayTimeDuration', 'xs:time', 'xs:yearMonthDuration', 'numeric', 'xs:hexBinary', - 'xs:base64Binary', 'xs:anyURI', 'xs:QName', 'xs:byte','xs:boolean','xs:anyURI','xf:yearMonthDuration']; - for(var i=0, l=types.length; i < l; i++) { kwObj[types[i]] = atom;}; - - // each operator will add a property to kwObj with value of {type: "operator", style: "keyword"} - var operators = ['eq', 'ne', 'lt', 'le', 'gt', 'ge', ':=', '=', '>', '>=', '<', '<=', '.', '|', '?', 'and', 'or', 'div', 'idiv', 'mod', '*', '/', '+', '-']; - for(var i=0, l=operators.length; i < l; i++) { kwObj[operators[i]] = operator;}; - - // each axis_specifiers will add a property to kwObj with value of {type: "axis_specifier", style: "qualifier"} - var axis_specifiers = ["self::", "attribute::", "child::", "descendant::", "descendant-or-self::", "parent::", - "ancestor::", "ancestor-or-self::", "following::", "preceding::", "following-sibling::", "preceding-sibling::"]; - for(var i=0, l=axis_specifiers.length; i < l; i++) { kwObj[axis_specifiers[i]] = qualifier; }; - - return kwObj; - }(); - - // Used as scratch variables to communicate multiple values without - // consing up tons of objects. - var type, content; - - function ret(tp, style, cont) { - type = tp; content = cont; - return style; - } - - function chain(stream, state, f) { - state.tokenize = f; - return f(stream, state); - } - - // the primary mode tokenizer - function tokenBase(stream, state) { - var ch = stream.next(), - mightBeFunction = false, - isEQName = isEQNameAhead(stream); - - // an XML tag (if not in some sub, chained tokenizer) - if (ch == "<") { - if(stream.match("!--", true)) - return chain(stream, state, tokenXMLComment); - - if(stream.match("![CDATA", false)) { - state.tokenize = tokenCDATA; - return ret("tag", "tag"); - } - - if(stream.match("?", false)) { - return chain(stream, state, tokenPreProcessing); - } - - var isclose = stream.eat("/"); - stream.eatSpace(); - var tagName = "", c; - while ((c = stream.eat(/[^\s\u00a0=<>\"\'\/?]/))) tagName += c; - - return chain(stream, state, tokenTag(tagName, isclose)); - } - // start code block - else if(ch == "{") { - pushStateStack(state,{ type: "codeblock"}); - return ret("", null); - } - // end code block - else if(ch == "}") { - popStateStack(state); - return ret("", null); - } - // if we're in an XML block - else if(isInXmlBlock(state)) { - if(ch == ">") - return ret("tag", "tag"); - else if(ch == "/" && stream.eat(">")) { - popStateStack(state); - return ret("tag", "tag"); - } - else - return ret("word", "variable"); - } - // if a number - else if (/\d/.test(ch)) { - stream.match(/^\d*(?:\.\d*)?(?:E[+\-]?\d+)?/); - return ret("number", "atom"); - } - // comment start - else if (ch === "(" && stream.eat(":")) { - pushStateStack(state, { type: "comment"}); - return chain(stream, state, tokenComment); - } - // quoted string - else if ( !isEQName && (ch === '"' || ch === "'")) - return chain(stream, state, tokenString(ch)); - // variable - else if(ch === "$") { - return chain(stream, state, tokenVariable); - } - // assignment - else if(ch ===":" && stream.eat("=")) { - return ret("operator", "keyword"); - } - // open paren - else if(ch === "(") { - pushStateStack(state, { type: "paren"}); - return ret("", null); - } - // close paren - else if(ch === ")") { - popStateStack(state); - return ret("", null); - } - // open paren - else if(ch === "[") { - pushStateStack(state, { type: "bracket"}); - return ret("", null); - } - // close paren - else if(ch === "]") { - popStateStack(state); - return ret("", null); - } - else { - var known = keywords.propertyIsEnumerable(ch) && keywords[ch]; - - // if there's a EQName ahead, consume the rest of the string portion, it's likely a function - if(isEQName && ch === '\"') while(stream.next() !== '"'){} - if(isEQName && ch === '\'') while(stream.next() !== '\''){} - - // gobble up a word if the character is not known - if(!known) stream.eatWhile(/[\w\$_-]/); - - // gobble a colon in the case that is a lib func type call fn:doc - var foundColon = stream.eat(":"); - - // if there's not a second colon, gobble another word. Otherwise, it's probably an axis specifier - // which should get matched as a keyword - if(!stream.eat(":") && foundColon) { - stream.eatWhile(/[\w\$_-]/); - } - // if the next non whitespace character is an open paren, this is probably a function (if not a keyword of other sort) - if(stream.match(/^[ \t]*\(/, false)) { - mightBeFunction = true; - } - // is the word a keyword? - var word = stream.current(); - known = keywords.propertyIsEnumerable(word) && keywords[word]; - - // if we think it's a function call but not yet known, - // set style to variable for now for lack of something better - if(mightBeFunction && !known) known = {type: "function_call", style: "variable def"}; - - // if the previous word was element, attribute, axis specifier, this word should be the name of that - if(isInXmlConstructor(state)) { - popStateStack(state); - return ret("word", "variable", word); - } - // as previously checked, if the word is element,attribute, axis specifier, call it an "xmlconstructor" and - // push the stack so we know to look for it on the next word - if(word == "element" || word == "attribute" || known.type == "axis_specifier") pushStateStack(state, {type: "xmlconstructor"}); - - // if the word is known, return the details of that else just call this a generic 'word' - return known ? ret(known.type, known.style, word) : - ret("word", "variable", word); - } - } - - // handle comments, including nested - function tokenComment(stream, state) { - var maybeEnd = false, maybeNested = false, nestedCount = 0, ch; - while (ch = stream.next()) { - if (ch == ")" && maybeEnd) { - if(nestedCount > 0) - nestedCount--; - else { - popStateStack(state); - break; - } - } - else if(ch == ":" && maybeNested) { - nestedCount++; - } - maybeEnd = (ch == ":"); - maybeNested = (ch == "("); - } - - return ret("comment", "comment"); - } - - // tokenizer for string literals - // optionally pass a tokenizer function to set state.tokenize back to when finished - function tokenString(quote, f) { - return function(stream, state) { - var ch; - - if(isInString(state) && stream.current() == quote) { - popStateStack(state); - if(f) state.tokenize = f; - return ret("string", "string"); - } - - pushStateStack(state, { type: "string", name: quote, tokenize: tokenString(quote, f) }); - - // if we're in a string and in an XML block, allow an embedded code block - if(stream.match("{", false) && isInXmlAttributeBlock(state)) { - state.tokenize = tokenBase; - return ret("string", "string"); - } - - - while (ch = stream.next()) { - if (ch == quote) { - popStateStack(state); - if(f) state.tokenize = f; - break; - } - else { - // if we're in a string and in an XML block, allow an embedded code block in an attribute - if(stream.match("{", false) && isInXmlAttributeBlock(state)) { - state.tokenize = tokenBase; - return ret("string", "string"); - } - - } - } - - return ret("string", "string"); - }; - } - - // tokenizer for variables - function tokenVariable(stream, state) { - var isVariableChar = /[\w\$_-]/; - - // a variable may start with a quoted EQName so if the next character is quote, consume to the next quote - if(stream.eat("\"")) { - while(stream.next() !== '\"'){}; - stream.eat(":"); - } else { - stream.eatWhile(isVariableChar); - if(!stream.match(":=", false)) stream.eat(":"); - } - stream.eatWhile(isVariableChar); - state.tokenize = tokenBase; - return ret("variable", "variable"); - } - - // tokenizer for XML tags - function tokenTag(name, isclose) { - return function(stream, state) { - stream.eatSpace(); - if(isclose && stream.eat(">")) { - popStateStack(state); - state.tokenize = tokenBase; - return ret("tag", "tag"); - } - // self closing tag without attributes? - if(!stream.eat("/")) - pushStateStack(state, { type: "tag", name: name, tokenize: tokenBase}); - if(!stream.eat(">")) { - state.tokenize = tokenAttribute; - return ret("tag", "tag"); - } - else { - state.tokenize = tokenBase; - } - return ret("tag", "tag"); - }; - } - - // tokenizer for XML attributes - function tokenAttribute(stream, state) { - var ch = stream.next(); - - if(ch == "/" && stream.eat(">")) { - if(isInXmlAttributeBlock(state)) popStateStack(state); - if(isInXmlBlock(state)) popStateStack(state); - return ret("tag", "tag"); - } - if(ch == ">") { - if(isInXmlAttributeBlock(state)) popStateStack(state); - return ret("tag", "tag"); - } - if(ch == "=") - return ret("", null); - // quoted string - if (ch == '"' || ch == "'") - return chain(stream, state, tokenString(ch, tokenAttribute)); - - if(!isInXmlAttributeBlock(state)) - pushStateStack(state, { type: "attribute", tokenize: tokenAttribute}); - - stream.eat(/[a-zA-Z_:]/); - stream.eatWhile(/[-a-zA-Z0-9_:.]/); - stream.eatSpace(); - - // the case where the attribute has not value and the tag was closed - if(stream.match(">", false) || stream.match("/", false)) { - popStateStack(state); - state.tokenize = tokenBase; - } - - return ret("attribute", "attribute"); - } - - // handle comments, including nested - function tokenXMLComment(stream, state) { - var ch; - while (ch = stream.next()) { - if (ch == "-" && stream.match("->", true)) { - state.tokenize = tokenBase; - return ret("comment", "comment"); - } - } - } - - - // handle CDATA - function tokenCDATA(stream, state) { - var ch; - while (ch = stream.next()) { - if (ch == "]" && stream.match("]", true)) { - state.tokenize = tokenBase; - return ret("comment", "comment"); - } - } - } - - // handle preprocessing instructions - function tokenPreProcessing(stream, state) { - var ch; - while (ch = stream.next()) { - if (ch == "?" && stream.match(">", true)) { - state.tokenize = tokenBase; - return ret("comment", "comment meta"); - } - } - } - - - // functions to test the current context of the state - function isInXmlBlock(state) { return isIn(state, "tag"); } - function isInXmlAttributeBlock(state) { return isIn(state, "attribute"); } - function isInXmlConstructor(state) { return isIn(state, "xmlconstructor"); } - function isInString(state) { return isIn(state, "string"); } - - function isEQNameAhead(stream) { - // assume we've already eaten a quote (") - if(stream.current() === '"') - return stream.match(/^[^\"]+\"\:/, false); - else if(stream.current() === '\'') - return stream.match(/^[^\"]+\'\:/, false); - else - return false; - } - - function isIn(state, type) { - return (state.stack.length && state.stack[state.stack.length - 1].type == type); - } - - function pushStateStack(state, newState) { - state.stack.push(newState); - } - - function popStateStack(state) { - state.stack.pop(); - var reinstateTokenize = state.stack.length && state.stack[state.stack.length-1].tokenize; - state.tokenize = reinstateTokenize || tokenBase; - } - - // the interface for the mode API - return { - startState: function() { - return { - tokenize: tokenBase, - cc: [], - stack: [] - }; - }, - - token: function(stream, state) { - if (stream.eatSpace()) return null; - var style = state.tokenize(stream, state); - return style; - }, - - blockCommentStart: "(:", - blockCommentEnd: ":)" - - }; - -}); - -CodeMirror.defineMIME("application/xquery", "xquery"); - -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/yaml/index.html b/src/main/resources/static/editor.md-master/lib/codemirror/mode/yaml/index.html deleted file mode 100644 index be9b632..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/yaml/index.html +++ /dev/null @@ -1,80 +0,0 @@ - - -CodeMirror: YAML mode - - - - - - - - - -
    -

    YAML mode

    -
    - - -

    MIME types defined: text/x-yaml.

    - -
    diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/yaml/yaml.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/yaml/yaml.js deleted file mode 100644 index b7015e5..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/yaml/yaml.js +++ /dev/null @@ -1,117 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { -"use strict"; - -CodeMirror.defineMode("yaml", function() { - - var cons = ['true', 'false', 'on', 'off', 'yes', 'no']; - var keywordRegex = new RegExp("\\b(("+cons.join(")|(")+"))$", 'i'); - - return { - token: function(stream, state) { - var ch = stream.peek(); - var esc = state.escaped; - state.escaped = false; - /* comments */ - if (ch == "#" && (stream.pos == 0 || /\s/.test(stream.string.charAt(stream.pos - 1)))) { - stream.skipToEnd(); - return "comment"; - } - - if (stream.match(/^('([^']|\\.)*'?|"([^"]|\\.)*"?)/)) - return "string"; - - if (state.literal && stream.indentation() > state.keyCol) { - stream.skipToEnd(); return "string"; - } else if (state.literal) { state.literal = false; } - if (stream.sol()) { - state.keyCol = 0; - state.pair = false; - state.pairStart = false; - /* document start */ - if(stream.match(/---/)) { return "def"; } - /* document end */ - if (stream.match(/\.\.\./)) { return "def"; } - /* array list item */ - if (stream.match(/\s*-\s+/)) { return 'meta'; } - } - /* inline pairs/lists */ - if (stream.match(/^(\{|\}|\[|\])/)) { - if (ch == '{') - state.inlinePairs++; - else if (ch == '}') - state.inlinePairs--; - else if (ch == '[') - state.inlineList++; - else - state.inlineList--; - return 'meta'; - } - - /* list seperator */ - if (state.inlineList > 0 && !esc && ch == ',') { - stream.next(); - return 'meta'; - } - /* pairs seperator */ - if (state.inlinePairs > 0 && !esc && ch == ',') { - state.keyCol = 0; - state.pair = false; - state.pairStart = false; - stream.next(); - return 'meta'; - } - - /* start of value of a pair */ - if (state.pairStart) { - /* block literals */ - if (stream.match(/^\s*(\||\>)\s*/)) { state.literal = true; return 'meta'; }; - /* references */ - if (stream.match(/^\s*(\&|\*)[a-z0-9\._-]+\b/i)) { return 'variable-2'; } - /* numbers */ - if (state.inlinePairs == 0 && stream.match(/^\s*-?[0-9\.\,]+\s?$/)) { return 'number'; } - if (state.inlinePairs > 0 && stream.match(/^\s*-?[0-9\.\,]+\s?(?=(,|}))/)) { return 'number'; } - /* keywords */ - if (stream.match(keywordRegex)) { return 'keyword'; } - } - - /* pairs (associative arrays) -> key */ - if (!state.pair && stream.match(/^\s*(?:[,\[\]{}&*!|>'"%@`][^\s'":]|[^,\[\]{}#&*!|>'"%@`])[^#]*?(?=\s*:($|\s))/)) { - state.pair = true; - state.keyCol = stream.indentation(); - return "atom"; - } - if (state.pair && stream.match(/^:\s*/)) { state.pairStart = true; return 'meta'; } - - /* nothing found, continue */ - state.pairStart = false; - state.escaped = (ch == '\\'); - stream.next(); - return null; - }, - startState: function() { - return { - pair: false, - pairStart: false, - keyCol: 0, - inlinePairs: 0, - inlineList: 0, - literal: false, - escaped: false - }; - } - }; -}); - -CodeMirror.defineMIME("text/x-yaml", "yaml"); - -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/z80/index.html b/src/main/resources/static/editor.md-master/lib/codemirror/mode/z80/index.html deleted file mode 100644 index 1ad3ace..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/z80/index.html +++ /dev/null @@ -1,52 +0,0 @@ - - -CodeMirror: Z80 assembly mode - - - - - - - - - -
    -

    Z80 assembly mode

    - - -
    - - - -

    MIME type defined: text/x-z80.

    -
    diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/mode/z80/z80.js b/src/main/resources/static/editor.md-master/lib/codemirror/mode/z80/z80.js deleted file mode 100644 index ec41d05..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/mode/z80/z80.js +++ /dev/null @@ -1,100 +0,0 @@ -// CodeMirror, copyright (c) by Marijn Haverbeke and others -// Distributed under an MIT license: http://codemirror.net/LICENSE - -(function(mod) { - if (typeof exports == "object" && typeof module == "object") // CommonJS - mod(require("../../lib/codemirror")); - else if (typeof define == "function" && define.amd) // AMD - define(["../../lib/codemirror"], mod); - else // Plain browser env - mod(CodeMirror); -})(function(CodeMirror) { -"use strict"; - -CodeMirror.defineMode('z80', function() { - var keywords1 = /^(exx?|(ld|cp|in)([di]r?)?|pop|push|ad[cd]|cpl|daa|dec|inc|neg|sbc|sub|and|bit|[cs]cf|x?or|res|set|r[lr]c?a?|r[lr]d|s[lr]a|srl|djnz|nop|rst|[de]i|halt|im|ot[di]r|out[di]?)\b/i; - var keywords2 = /^(call|j[pr]|ret[in]?)\b/i; - var keywords3 = /^b_?(call|jump)\b/i; - var variables1 = /^(af?|bc?|c|de?|e|hl?|l|i[xy]?|r|sp)\b/i; - var variables2 = /^(n?[zc]|p[oe]?|m)\b/i; - var errors = /^([hl][xy]|i[xy][hl]|slia|sll)\b/i; - var numbers = /^([\da-f]+h|[0-7]+o|[01]+b|\d+)\b/i; - - return { - startState: function() { - return {context: 0}; - }, - token: function(stream, state) { - if (!stream.column()) - state.context = 0; - - if (stream.eatSpace()) - return null; - - var w; - - if (stream.eatWhile(/\w/)) { - w = stream.current(); - - if (stream.indentation()) { - if (state.context == 1 && variables1.test(w)) - return 'variable-2'; - - if (state.context == 2 && variables2.test(w)) - return 'variable-3'; - - if (keywords1.test(w)) { - state.context = 1; - return 'keyword'; - } else if (keywords2.test(w)) { - state.context = 2; - return 'keyword'; - } else if (keywords3.test(w)) { - state.context = 3; - return 'keyword'; - } - - if (errors.test(w)) - return 'error'; - } else if (numbers.test(w)) { - return 'number'; - } else { - return null; - } - } else if (stream.eat(';')) { - stream.skipToEnd(); - return 'comment'; - } else if (stream.eat('"')) { - while (w = stream.next()) { - if (w == '"') - break; - - if (w == '\\') - stream.next(); - } - return 'string'; - } else if (stream.eat('\'')) { - if (stream.match(/\\?.'/)) - return 'number'; - } else if (stream.eat('.') || stream.sol() && stream.eat('#')) { - state.context = 4; - - if (stream.eatWhile(/\w/)) - return 'def'; - } else if (stream.eat('$')) { - if (stream.eatWhile(/[\da-f]/i)) - return 'number'; - } else if (stream.eat('%')) { - if (stream.eatWhile(/[01]/)) - return 'number'; - } else { - stream.next(); - } - return null; - } - }; -}); - -CodeMirror.defineMIME("text/x-z80", "z80"); - -}); diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/modes.min.js b/src/main/resources/static/editor.md-master/lib/codemirror/modes.min.js deleted file mode 100644 index 49faebe..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/modes.min.js +++ /dev/null @@ -1,10 +0,0 @@ -/*! Editor.md v1.5.0 | modes.min.js | Open source online markdown editor. | MIT License | By: Pandao | https://github.com/pandao/editor.md | 2015-06-09 */ -!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../lib/codemirror")):"function"==typeof define&&define.amd?define(["../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";e.modeInfo=[{name:"APL",mime:"text/apl",mode:"apl",ext:["dyalog","apl"]},{name:"Asterisk",mime:"text/x-asterisk",mode:"asterisk",file:/^extensions\.conf$/i},{name:"C",mime:"text/x-csrc",mode:"clike",ext:["c","h"]},{name:"C++",mime:"text/x-c++src",mode:"clike",ext:["cpp","c++","cc","cxx","hpp","h++","hh","hxx"],alias:["cpp"]},{name:"Cobol",mime:"text/x-cobol",mode:"cobol",ext:["cob","cpy"]},{name:"C#",mime:"text/x-csharp",mode:"clike",ext:["cs"],alias:["csharp"]},{name:"Clojure",mime:"text/x-clojure",mode:"clojure",ext:["clj"]},{name:"CoffeeScript",mime:"text/x-coffeescript",mode:"coffeescript",ext:["coffee"],alias:["coffee","coffee-script"]},{name:"Common Lisp",mime:"text/x-common-lisp",mode:"commonlisp",ext:["cl","lisp","el"],alias:["lisp"]},{name:"Cypher",mime:"application/x-cypher-query",mode:"cypher",ext:["cyp","cypher"]},{name:"Cython",mime:"text/x-cython",mode:"python",ext:["pyx","pxd","pxi"]},{name:"CSS",mime:"text/css",mode:"css",ext:["css"]},{name:"CQL",mime:"text/x-cassandra",mode:"sql",ext:["cql"]},{name:"D",mime:"text/x-d",mode:"d",ext:["d"]},{name:"Dart",mimes:["application/dart","text/x-dart"],mode:"dart",ext:["dart"]},{name:"diff",mime:"text/x-diff",mode:"diff",ext:["diff","patch"]},{name:"Django",mime:"text/x-django",mode:"django"},{name:"Dockerfile",mime:"text/x-dockerfile",mode:"dockerfile",file:/^Dockerfile$/},{name:"DTD",mime:"application/xml-dtd",mode:"dtd",ext:["dtd"]},{name:"Dylan",mime:"text/x-dylan",mode:"dylan",ext:["dylan","dyl","intr"]},{name:"EBNF",mime:"text/x-ebnf",mode:"ebnf"},{name:"ECL",mime:"text/x-ecl",mode:"ecl",ext:["ecl"]},{name:"Eiffel",mime:"text/x-eiffel",mode:"eiffel",ext:["e"]},{name:"Embedded Javascript",mime:"application/x-ejs",mode:"htmlembedded",ext:["ejs"]},{name:"Embedded Ruby",mime:"application/x-erb",mode:"htmlembedded",ext:["erb"]},{name:"Erlang",mime:"text/x-erlang",mode:"erlang",ext:["erl"]},{name:"Forth",mime:"text/x-forth",mode:"forth",ext:["forth","fth","4th"]},{name:"Fortran",mime:"text/x-fortran",mode:"fortran",ext:["f","for","f77","f90"]},{name:"F#",mime:"text/x-fsharp",mode:"mllike",ext:["fs"],alias:["fsharp"]},{name:"Gas",mime:"text/x-gas",mode:"gas",ext:["s"]},{name:"Gherkin",mime:"text/x-feature",mode:"gherkin",ext:["feature"]},{name:"GitHub Flavored Markdown",mime:"text/x-gfm",mode:"gfm",file:/^(readme|contributing|history).md$/i},{name:"Go",mime:"text/x-go",mode:"go",ext:["go"]},{name:"Groovy",mime:"text/x-groovy",mode:"groovy",ext:["groovy"]},{name:"HAML",mime:"text/x-haml",mode:"haml",ext:["haml"]},{name:"Haskell",mime:"text/x-haskell",mode:"haskell",ext:["hs"]},{name:"Haxe",mime:"text/x-haxe",mode:"haxe",ext:["hx"]},{name:"HXML",mime:"text/x-hxml",mode:"haxe",ext:["hxml"]},{name:"ASP.NET",mime:"application/x-aspx",mode:"htmlembedded",ext:["aspx"],alias:["asp","aspx"]},{name:"HTML",mime:"text/html",mode:"htmlmixed",ext:["html","htm"],alias:["xhtml"]},{name:"HTTP",mime:"message/http",mode:"http"},{name:"IDL",mime:"text/x-idl",mode:"idl",ext:["pro"]},{name:"Jade",mime:"text/x-jade",mode:"jade",ext:["jade"]},{name:"Java",mime:"text/x-java",mode:"clike",ext:["java"]},{name:"Java Server Pages",mime:"application/x-jsp",mode:"htmlembedded",ext:["jsp"],alias:["jsp"]},{name:"JavaScript",mimes:["text/javascript","text/ecmascript","application/javascript","application/x-javascript","application/ecmascript"],mode:"javascript",ext:["js"],alias:["ecmascript","js","node"]},{name:"JSON",mimes:["application/json","application/x-json"],mode:"javascript",ext:["json","map"],alias:["json5"]},{name:"JSON-LD",mime:"application/ld+json",mode:"javascript",ext:["jsonld"],alias:["jsonld"]},{name:"Jinja2",mime:"null",mode:"jinja2"},{name:"Julia",mime:"text/x-julia",mode:"julia",ext:["jl"]},{name:"Kotlin",mime:"text/x-kotlin",mode:"kotlin",ext:["kt"]},{name:"LESS",mime:"text/x-less",mode:"css",ext:["less"]},{name:"LiveScript",mime:"text/x-livescript",mode:"livescript",ext:["ls"],alias:["ls"]},{name:"Lua",mime:"text/x-lua",mode:"lua",ext:["lua"]},{name:"Markdown",mime:"text/x-markdown",mode:"markdown",ext:["markdown","md","mkd"]},{name:"mIRC",mime:"text/mirc",mode:"mirc"},{name:"MariaDB SQL",mime:"text/x-mariadb",mode:"sql"},{name:"Modelica",mime:"text/x-modelica",mode:"modelica",ext:["mo"]},{name:"MS SQL",mime:"text/x-mssql",mode:"sql"},{name:"MySQL",mime:"text/x-mysql",mode:"sql"},{name:"Nginx",mime:"text/x-nginx-conf",mode:"nginx",file:/nginx.*\.conf$/i},{name:"NTriples",mime:"text/n-triples",mode:"ntriples",ext:["nt"]},{name:"Objective C",mime:"text/x-objectivec",mode:"clike",ext:["m","mm"]},{name:"OCaml",mime:"text/x-ocaml",mode:"mllike",ext:["ml","mli","mll","mly"]},{name:"Octave",mime:"text/x-octave",mode:"octave",ext:["m"]},{name:"Pascal",mime:"text/x-pascal",mode:"pascal",ext:["p","pas"]},{name:"PEG.js",mime:"null",mode:"pegjs",ext:["jsonld"]},{name:"Perl",mime:"text/x-perl",mode:"perl",ext:["pl","pm"]},{name:"PHP",mime:"application/x-httpd-php",mode:"php",ext:["php","php3","php4","php5","phtml"]},{name:"Pig",mime:"text/x-pig",mode:"pig",ext:["pig"]},{name:"Plain Text",mime:"text/plain",mode:"null",ext:["txt","text","conf","def","list","log"]},{name:"PLSQL",mime:"text/x-plsql",mode:"sql",ext:["pls"]},{name:"Properties files",mime:"text/x-properties",mode:"properties",ext:["properties","ini","in"],alias:["ini","properties"]},{name:"Python",mime:"text/x-python",mode:"python",ext:["py","pyw"]},{name:"Puppet",mime:"text/x-puppet",mode:"puppet",ext:["pp"]},{name:"Q",mime:"text/x-q",mode:"q",ext:["q"]},{name:"R",mime:"text/x-rsrc",mode:"r",ext:["r"],alias:["rscript"]},{name:"reStructuredText",mime:"text/x-rst",mode:"rst",ext:["rst"],alias:["rst"]},{name:"RPM Changes",mime:"text/x-rpm-changes",mode:"rpm"},{name:"RPM Spec",mime:"text/x-rpm-spec",mode:"rpm",ext:["spec"]},{name:"Ruby",mime:"text/x-ruby",mode:"ruby",ext:["rb"],alias:["jruby","macruby","rake","rb","rbx"]},{name:"Rust",mime:"text/x-rustsrc",mode:"rust",ext:["rs"]},{name:"Sass",mime:"text/x-sass",mode:"sass",ext:["sass"]},{name:"Scala",mime:"text/x-scala",mode:"clike",ext:["scala"]},{name:"Scheme",mime:"text/x-scheme",mode:"scheme",ext:["scm","ss"]},{name:"SCSS",mime:"text/x-scss",mode:"css",ext:["scss"]},{name:"Shell",mime:"text/x-sh",mode:"shell",ext:["sh","ksh","bash"],alias:["bash","sh","zsh"]},{name:"Sieve",mime:"application/sieve",mode:"sieve",ext:["siv","sieve"]},{name:"Slim",mimes:["text/x-slim","application/x-slim"],mode:"slim",ext:["slim"]},{name:"Smalltalk",mime:"text/x-stsrc",mode:"smalltalk",ext:["st"]},{name:"Smarty",mime:"text/x-smarty",mode:"smarty",ext:["tpl"]},{name:"SmartyMixed",mime:"text/x-smarty",mode:"smartymixed"},{name:"Solr",mime:"text/x-solr",mode:"solr"},{name:"Soy",mime:"text/x-soy",mode:"soy",ext:["soy"],alias:["closure template"]},{name:"SPARQL",mime:"application/sparql-query",mode:"sparql",ext:["rq","sparql"],alias:["sparul"]},{name:"Spreadsheet",mime:"text/x-spreadsheet",mode:"spreadsheet",alias:["excel","formula"]},{name:"SQL",mime:"text/x-sql",mode:"sql",ext:["sql"]},{name:"MariaDB",mime:"text/x-mariadb",mode:"sql"},{name:"sTeX",mime:"text/x-stex",mode:"stex"},{name:"LaTeX",mime:"text/x-latex",mode:"stex",ext:["text","ltx"],alias:["tex"]},{name:"SystemVerilog",mime:"text/x-systemverilog",mode:"verilog",ext:["v"]},{name:"Tcl",mime:"text/x-tcl",mode:"tcl",ext:["tcl"]},{name:"Textile",mime:"text/x-textile",mode:"textile",ext:["textile"]},{name:"TiddlyWiki ",mime:"text/x-tiddlywiki",mode:"tiddlywiki"},{name:"Tiki wiki",mime:"text/tiki",mode:"tiki"},{name:"TOML",mime:"text/x-toml",mode:"toml",ext:["toml"]},{name:"Tornado",mime:"text/x-tornado",mode:"tornado"},{name:"Turtle",mime:"text/turtle",mode:"turtle",ext:["ttl"]},{name:"TypeScript",mime:"application/typescript",mode:"javascript",ext:["ts"],alias:["ts"]},{name:"VB.NET",mime:"text/x-vb",mode:"vb",ext:["vb"]},{name:"VBScript",mime:"text/vbscript",mode:"vbscript",ext:["vbs"]},{name:"Velocity",mime:"text/velocity",mode:"velocity",ext:["vtl"]},{name:"Verilog",mime:"text/x-verilog",mode:"verilog",ext:["v"]},{name:"XML",mimes:["application/xml","text/xml"],mode:"xml",ext:["xml","xsl","xsd"],alias:["rss","wsdl","xsd"]},{name:"XQuery",mime:"application/xquery",mode:"xquery",ext:["xy","xquery"]},{name:"YAML",mime:"text/x-yaml",mode:"yaml",ext:["yaml"],alias:["yml"]},{name:"Z80",mime:"text/x-z80",mode:"z80",ext:["z80"]}];for(var t=0;t-1&&t.substring(i+1,t.length);return o?e.findModeByExtension(o):void 0},e.findModeByName=function(t){t=t.toLowerCase();for(var r=0;r")?(e.match("-->"),t.tokenize=null):e.skipToEnd(),["comment","comment"]}e.defineMode("css",function(t,r){function n(e,t){return m=t,e}function i(e,t){var r=e.next();if(g[r]){var i=g[r](e,t);if(i!==!1)return i}return"@"==r?(e.eatWhile(/[\w\\\-]/),n("def",e.current())):"="==r||("~"==r||"|"==r)&&e.eat("=")?n(null,"compare"):'"'==r||"'"==r?(t.tokenize=o(r),t.tokenize(e,t)):"#"==r?(e.eatWhile(/[\w\\\-]/),n("atom","hash")):"!"==r?(e.match(/^\s*\w*/),n("keyword","important")):/\d/.test(r)||"."==r&&e.eat(/\d/)?(e.eatWhile(/[\w.%]/),n("number","unit")):"-"!==r?/[,+>*\/]/.test(r)?n(null,"select-op"):"."==r&&e.match(/^-?[_a-z][_a-z0-9-]*/i)?n("qualifier","qualifier"):/[:;{}\[\]\(\)]/.test(r)?n(null,r):"u"==r&&e.match(/rl(-prefix)?\(/)||"d"==r&&e.match("omain(")||"r"==r&&e.match("egexp(")?(e.backUp(1),t.tokenize=a,n("property","word")):/[\w\\\-]/.test(r)?(e.eatWhile(/[\w\\\-]/),n("property","word")):n(null,null):/[\d.]/.test(e.peek())?(e.eatWhile(/[\w.%]/),n("number","unit")):e.match(/^-[\w\\\-]+/)?(e.eatWhile(/[\w\\\-]/),e.match(/^\s*:/,!1)?n("variable-2","variable-definition"):n("variable-2","variable")):e.match(/^\w+-/)?n("meta","meta"):void 0}function o(e){return function(t,r){for(var i,o=!1;null!=(i=t.next());){if(i==e&&!o){")"==e&&t.backUp(1);break}o=!o&&"\\"==i}return(i==e||!o&&")"!=e)&&(r.tokenize=null),n("string","string")}}function a(e,t){return e.next(),e.match(/\s*[\"\')]/,!1)?t.tokenize=null:t.tokenize=o(")"),n(null,"(")}function s(e,t,r){this.type=e,this.indent=t,this.prev=r}function l(e,t,r){return e.context=new s(r,t.indentation()+p,e.context),r}function c(e){return e.context=e.context.prev,e.context.type}function u(e,t,r){return M[r.context.type](e,t,r)}function d(e,t,r,n){for(var i=n||1;i>0;i--)r.context=r.context.prev;return u(e,t,r)}function f(e){var t=e.current().toLowerCase();h=S.hasOwnProperty(t)?"atom":C.hasOwnProperty(t)?"keyword":"variable"}r.propertyKeywords||(r=e.resolveMode("text/css"));var m,h,p=t.indentUnit,g=r.tokenHooks,v=r.documentTypes||{},b=r.mediaTypes||{},y=r.mediaFeatures||{},x=r.propertyKeywords||{},k=r.nonStandardPropertyKeywords||{},w=r.fontProperties||{},_=r.counterDescriptors||{},C=r.colorKeywords||{},S=r.valueKeywords||{},T=r.allowNested,M={};return M.top=function(e,t,r){if("{"==e)return l(r,t,"block");if("}"==e&&r.context.prev)return c(r);if(/@(media|supports|(-moz-)?document)/.test(e))return l(r,t,"atBlock");if(/@(font-face|counter-style)/.test(e))return r.stateArg=e,"restricted_atBlock_before";if(/^@(-(moz|ms|o|webkit)-)?keyframes$/.test(e))return"keyframes";if(e&&"@"==e.charAt(0))return l(r,t,"at");if("hash"==e)h="builtin";else if("word"==e)h="tag";else{if("variable-definition"==e)return"maybeprop";if("interpolation"==e)return l(r,t,"interpolation");if(":"==e)return"pseudo";if(T&&"("==e)return l(r,t,"parens")}return r.context.type},M.block=function(e,t,r){if("word"==e){var n=t.current().toLowerCase();return x.hasOwnProperty(n)?(h="property","maybeprop"):k.hasOwnProperty(n)?(h="string-2","maybeprop"):T?(h=t.match(/^\s*:(?:\s|$)/,!1)?"property":"tag","block"):(h+=" error","maybeprop")}return"meta"==e?"block":T||"hash"!=e&&"qualifier"!=e?M.top(e,t,r):(h="error","block")},M.maybeprop=function(e,t,r){return":"==e?l(r,t,"prop"):u(e,t,r)},M.prop=function(e,t,r){if(";"==e)return c(r);if("{"==e&&T)return l(r,t,"propBlock");if("}"==e||"{"==e)return d(e,t,r);if("("==e)return l(r,t,"parens");if("hash"!=e||/^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/.test(t.current())){if("word"==e)f(t);else if("interpolation"==e)return l(r,t,"interpolation")}else h+=" error";return"prop"},M.propBlock=function(e,t,r){return"}"==e?c(r):"word"==e?(h="property","maybeprop"):r.context.type},M.parens=function(e,t,r){return"{"==e||"}"==e?d(e,t,r):")"==e?c(r):"("==e?l(r,t,"parens"):("word"==e&&f(t),"parens")},M.pseudo=function(e,t,r){return"word"==e?(h="variable-3",r.context.type):u(e,t,r)},M.atBlock=function(e,t,r){if("("==e)return l(r,t,"atBlock_parens");if("}"==e)return d(e,t,r);if("{"==e)return c(r)&&l(r,t,T?"block":"top");if("word"==e){var n=t.current().toLowerCase();h="only"==n||"not"==n||"and"==n||"or"==n?"keyword":v.hasOwnProperty(n)?"tag":b.hasOwnProperty(n)?"attribute":y.hasOwnProperty(n)?"property":x.hasOwnProperty(n)?"property":k.hasOwnProperty(n)?"string-2":S.hasOwnProperty(n)?"atom":"error"}return r.context.type},M.atBlock_parens=function(e,t,r){return")"==e?c(r):"{"==e||"}"==e?d(e,t,r,2):M.atBlock(e,t,r)},M.restricted_atBlock_before=function(e,t,r){return"{"==e?l(r,t,"restricted_atBlock"):"word"==e&&"@counter-style"==r.stateArg?(h="variable","restricted_atBlock_before"):u(e,t,r)},M.restricted_atBlock=function(e,t,r){return"}"==e?(r.stateArg=null,c(r)):"word"==e?(h="@font-face"==r.stateArg&&!w.hasOwnProperty(t.current().toLowerCase())||"@counter-style"==r.stateArg&&!_.hasOwnProperty(t.current().toLowerCase())?"error":"property","maybeprop"):"restricted_atBlock"},M.keyframes=function(e,t,r){return"word"==e?(h="variable","keyframes"):"{"==e?l(r,t,"top"):u(e,t,r)},M.at=function(e,t,r){return";"==e?c(r):"{"==e||"}"==e?d(e,t,r):("word"==e?h="tag":"hash"==e&&(h="builtin"),"at")},M.interpolation=function(e,t,r){return"}"==e?c(r):"{"==e||";"==e?d(e,t,r):("variable"!=e&&(h="error"),"interpolation")},{startState:function(e){return{tokenize:null,state:"top",stateArg:null,context:new s("top",e||0,null)}},token:function(e,t){if(!t.tokenize&&e.eatSpace())return null;var r=(t.tokenize||i)(e,t);return r&&"object"==typeof r&&(m=r[1],r=r[0]),h=r,t.state=M[t.state](m,e,t),h},indent:function(e,t){var r=e.context,n=t&&t.charAt(0),i=r.indent;return"prop"!=r.type||"}"!=n&&")"!=n||(r=r.prev),!r.prev||("}"!=n||"block"!=r.type&&"top"!=r.type&&"interpolation"!=r.type&&"restricted_atBlock"!=r.type)&&(")"!=n||"parens"!=r.type&&"atBlock_parens"!=r.type)&&("{"!=n||"at"!=r.type&&"atBlock"!=r.type)||(i=r.indent-p,r=r.prev),i},electricChars:"}",blockCommentStart:"/*",blockCommentEnd:"*/",fold:"brace"}});var i=["domain","regexp","url","url-prefix"],o=t(i),a=["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"],s=t(a),l=["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid"],c=t(l),u=["align-content","align-items","align-self","alignment-adjust","alignment-baseline","anchor-point","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","azimuth","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","baseline-shift","binding","bleed","bookmark-label","bookmark-level","bookmark-state","bookmark-target","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","color","color-profile","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","crop","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","drop-initial-after-adjust","drop-initial-after-align","drop-initial-before-adjust","drop-initial-before-align","drop-initial-size","drop-initial-value","elevation","empty-cells","fit","fit-position","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-offset","flow-from","flow-into","font","font-feature-settings","font-family","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-weight","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-position","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","inline-box-align","justify-content","left","letter-spacing","line-break","line-height","line-stacking","line-stacking-ruby","line-stacking-shift","line-stacking-strategy","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marker-offset","marks","marquee-direction","marquee-loop","marquee-play-count","marquee-speed","marquee-style","max-height","max-width","min-height","min-width","move-to","nav-down","nav-index","nav-left","nav-right","nav-up","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-style","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","page-policy","pause","pause-after","pause-before","perspective","perspective-origin","pitch","pitch-range","play-during","position","presentation-level","punctuation-trim","quotes","region-break-after","region-break-before","region-break-inside","region-fragment","rendering-intent","resize","rest","rest-after","rest-before","richness","right","rotation","rotation-point","ruby-align","ruby-overhang","ruby-position","ruby-span","shape-image-threshold","shape-inside","shape-margin","shape-outside","size","speak","speak-as","speak-header","speak-numeral","speak-punctuation","speech-rate","stress","string-set","tab-size","table-layout","target","target-name","target-new","target-position","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-height","text-indent","text-justify","text-outline","text-overflow","text-shadow","text-size-adjust","text-space-collapse","text-transform","text-underline-position","text-wrap","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","volume","white-space","widows","width","word-break","word-spacing","word-wrap","z-index","clip-path","clip-rule","mask","enable-background","filter","flood-color","flood-opacity","lighting-color","stop-color","stop-opacity","pointer-events","color-interpolation","color-interpolation-filters","color-rendering","fill","fill-opacity","fill-rule","image-rendering","marker","marker-end","marker-mid","marker-start","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-rendering","baseline-shift","dominant-baseline","glyph-orientation-horizontal","glyph-orientation-vertical","text-anchor","writing-mode"],d=t(u),f=["scrollbar-arrow-color","scrollbar-base-color","scrollbar-dark-shadow-color","scrollbar-face-color","scrollbar-highlight-color","scrollbar-shadow-color","scrollbar-3d-light-color","scrollbar-track-color","shape-inside","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","zoom"],m=t(f),h=["font-family","src","unicode-range","font-variant","font-feature-settings","font-stretch","font-weight","font-style"],p=t(h),g=["additive-symbols","fallback","negative","pad","prefix","range","speak-as","suffix","symbols","system"],v=t(g),b=["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"],y=t(b),x=["above","absolute","activeborder","additive","activecaption","afar","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","amharic","amharic-abegede","antialiased","appworkspace","arabic-indic","armenian","asterisks","attr","auto","avoid","avoid-column","avoid-page","avoid-region","background","backwards","baseline","below","bidi-override","binary","bengali","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","cambodian","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","cjk-earthly-branch","cjk-heavenly-stem","cjk-ideographic","clear","clip","close-quote","col-resize","collapse","column","compact","condensed","contain","content","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","dashed","decimal","decimal-leading-zero","default","default-button","destination-atop","destination-in","destination-out","destination-over","devanagari","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic","ethiopic-abegede","ethiopic-abegede-am-et","ethiopic-abegede-gez","ethiopic-abegede-ti-er","ethiopic-abegede-ti-et","ethiopic-halehame-aa-er","ethiopic-halehame-aa-et","ethiopic-halehame-am-et","ethiopic-halehame-gez","ethiopic-halehame-om-et","ethiopic-halehame-sid-et","ethiopic-halehame-so-et","ethiopic-halehame-ti-er","ethiopic-halehame-ti-et","ethiopic-halehame-tig","ethiopic-numeric","ew-resize","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fixed","flat","flex","footnotes","forwards","from","geometricPrecision","georgian","graytext","groove","gujarati","gurmukhi","hand","hangul","hangul-consonant","hebrew","help","hidden","hide","higher","highlight","highlighttext","hiragana","hiragana-iroha","horizontal","hsl","hsla","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-table","inset","inside","intrinsic","invert","italic","japanese-formal","japanese-informal","justify","kannada","katakana","katakana-iroha","keep-all","khmer","korean-hangul-formal","korean-hanja-formal","korean-hanja-informal","landscape","lao","large","larger","left","level","lighter","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-alpha","lower-armenian","lower-greek","lower-hexadecimal","lower-latin","lower-norwegian","lower-roman","lowercase","ltr","malayalam","match","matrix","matrix3d","media-controls-background","media-current-time-display","media-fullscreen-button","media-mute-button","media-play-button","media-return-to-realtime-button","media-rewind-button","media-seek-back-button","media-seek-forward-button","media-slider","media-sliderthumb","media-time-remaining-display","media-volume-slider","media-volume-slider-container","media-volume-sliderthumb","medium","menu","menulist","menulist-button","menulist-text","menulist-textfield","menutext","message-box","middle","min-intrinsic","mix","mongolian","monospace","move","multiple","myanmar","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","octal","open-quote","optimizeLegibility","optimizeSpeed","oriya","oromo","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","persian","perspective","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row-resize","rtl","run-in","running","s-resize","sans-serif","scale","scale3d","scaleX","scaleY","scaleZ","scroll","scrollbar","se-resize","searchfield","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","semi-condensed","semi-expanded","separate","serif","show","sidama","simp-chinese-formal","simp-chinese-informal","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","solid","somali","source-atop","source-in","source-out","source-over","space","spell-out","square","square-button","start","static","status-bar","stretch","stroke","sub","subpixel-antialiased","super","sw-resize","symbolic","symbols","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","tamil","telugu","text","text-bottom","text-top","textarea","textfield","thai","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","tibetan","tigre","tigrinya-er","tigrinya-er-abegede","tigrinya-et","tigrinya-et-abegede","to","top","trad-chinese-formal","trad-chinese-informal","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","up","upper-alpha","upper-armenian","upper-greek","upper-hexadecimal","upper-latin","upper-norwegian","upper-roman","uppercase","urdu","url","var","vertical","vertical-text","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","x-large","x-small","xor","xx-large","xx-small"],k=t(x),w=i.concat(a).concat(l).concat(u).concat(f).concat(b).concat(x);e.registerHelper("hintWords","css",w),e.defineMIME("text/css",{documentTypes:o,mediaTypes:s,mediaFeatures:c,propertyKeywords:d,nonStandardPropertyKeywords:m,fontProperties:p,counterDescriptors:v,colorKeywords:y,valueKeywords:k,tokenHooks:{"<":function(e,t){return e.match("!--")?(t.tokenize=n,n(e,t)):!1},"/":function(e,t){return e.eat("*")?(t.tokenize=r,r(e,t)):!1}},name:"css"}),e.defineMIME("text/x-scss",{mediaTypes:s,mediaFeatures:c,propertyKeywords:d,nonStandardPropertyKeywords:m,colorKeywords:y,valueKeywords:k,fontProperties:p,allowNested:!0,tokenHooks:{"/":function(e,t){return e.eat("/")?(e.skipToEnd(),["comment","comment"]):e.eat("*")?(t.tokenize=r,r(e,t)):["operator","operator"]},":":function(e){return e.match(/\s*\{/)?[null,"{"]:!1},$:function(e){return e.match(/^[\w-]+/),e.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"]},"#":function(e){return e.eat("{")?[null,"interpolation"]:!1}},name:"css",helperType:"scss"}),e.defineMIME("text/x-less",{mediaTypes:s,mediaFeatures:c,propertyKeywords:d,nonStandardPropertyKeywords:m,colorKeywords:y,valueKeywords:k,fontProperties:p,allowNested:!0,tokenHooks:{"/":function(e,t){return e.eat("/")?(e.skipToEnd(),["comment","comment"]):e.eat("*")?(t.tokenize=r,r(e,t)):["operator","operator"]},"@":function(e){return e.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\b/,!1)?!1:(e.eatWhile(/[\w\\\-]/), -e.match(/^\s*:/,!1)?["variable-2","variable-definition"]:["variable-2","variable"])},"&":function(){return["atom","atom"]}},name:"css",helperType:"less"})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";e.defineMode("sass",function(e){function t(e){return new RegExp("^"+e.join("|"))}function r(e,t){var r=e.peek();return")"===r?(e.next(),t.tokenizer=l,"operator"):"("===r?(e.next(),e.eatSpace(),"operator"):"'"===r||'"'===r?(t.tokenizer=i(e.next()),"string"):(t.tokenizer=i(")",!1),"string")}function n(e,t){return function(r,n){return r.sol()&&r.indentation()<=e?(n.tokenizer=l,l(r,n)):(t&&r.skipTo("*/")?(r.next(),r.next(),n.tokenizer=l):r.skipToEnd(),"comment")}}function i(e,t){function r(n,i){var a=n.next(),s=n.peek(),c=n.string.charAt(n.pos-2),u="\\"!==a&&s===e||a===e&&"\\"!==c;return u?(a!==e&&t&&n.next(),i.tokenizer=l,"string"):"#"===a&&"{"===s?(i.tokenizer=o(r),n.next(),"operator"):"string"}return null==t&&(t=!0),r}function o(e){return function(t,r){return"}"===t.peek()?(t.next(),r.tokenizer=e,"operator"):l(t,r)}}function a(t){if(0==t.indentCount){t.indentCount++;var r=t.scopes[0].offset,n=r+e.indentUnit;t.scopes.unshift({offset:n})}}function s(e){1!=e.scopes.length&&e.scopes.shift()}function l(e,t){var c=e.peek();if(e.match("/*"))return t.tokenizer=n(e.indentation(),!0),t.tokenizer(e,t);if(e.match("//"))return t.tokenizer=n(e.indentation(),!1),t.tokenizer(e,t);if(e.match("#{"))return t.tokenizer=o(l),"operator";if('"'===c||"'"===c)return e.next(),t.tokenizer=i(c),"string";if(t.cursorHalf){if("#"===c&&(e.next(),e.match(/[0-9a-fA-F]{6}|[0-9a-fA-F]{3}/)))return e.peek()||(t.cursorHalf=0),"number";if(e.match(/^-?[0-9\.]+/))return e.peek()||(t.cursorHalf=0),"number";if(e.match(/^(px|em|in)\b/))return e.peek()||(t.cursorHalf=0),"unit";if(e.match(d))return e.peek()||(t.cursorHalf=0),"keyword";if(e.match(/^url/)&&"("===e.peek())return t.tokenizer=r,e.peek()||(t.cursorHalf=0),"atom";if("$"===c)return e.next(),e.eatWhile(/[\w-]/),e.peek()||(t.cursorHalf=0),"variable-3";if("!"===c)return e.next(),e.peek()||(t.cursorHalf=0),e.match(/^[\w]+/)?"keyword":"operator";if(e.match(m))return e.peek()||(t.cursorHalf=0),"operator";if(e.eatWhile(/[\w-]/))return e.peek()||(t.cursorHalf=0),"attribute";if(!e.peek())return t.cursorHalf=0,null}else{if("."===c){if(e.next(),e.match(/^[\w-]+/))return a(t),"atom";if("#"===e.peek())return a(t),"atom"}if("#"===c){if(e.next(),e.match(/^[\w-]+/))return a(t),"atom";if("#"===e.peek())return a(t),"atom"}if("$"===c)return e.next(),e.eatWhile(/[\w-]/),"variable-2";if(e.match(/^-?[0-9\.]+/))return"number";if(e.match(/^(px|em|in)\b/))return"unit";if(e.match(d))return"keyword";if(e.match(/^url/)&&"("===e.peek())return t.tokenizer=r,"atom";if("="===c&&e.match(/^=[\w-]+/))return a(t),"meta";if("+"===c&&e.match(/^\+[\w-]+/))return"variable-3";if("@"===c&&e.match(/@extend/)&&(e.match(/\s*[\w]/)||s(t)),e.match(/^@(else if|if|media|else|for|each|while|mixin|function)/))return a(t),"meta";if("@"===c)return e.next(),e.eatWhile(/[\w-]/),"meta";if(e.eatWhile(/[\w-]/))return e.match(/ *: *[\w-\+\$#!\("']/,!1)?"propery":e.match(/ *:/,!1)?(a(t),t.cursorHalf=1,"atom"):e.match(/ *,/,!1)?"atom":(a(t),"atom");if(":"===c)return e.match(h)?"keyword":(e.next(),t.cursorHalf=1,"operator")}return e.match(m)?"operator":(e.next(),null)}function c(t,r){t.sol()&&(r.indentCount=0);var n=r.tokenizer(t,r),i=t.current();if(("@return"===i||"}"===i)&&s(r),null!==n){for(var o=t.pos-i.length,a=o+e.indentUnit*r.indentCount,l=[],c=0;c","<","==",">=","<=","\\+","-","\\!=","/","\\*","%","and","or","not",";","\\{","\\}",":"],m=t(f),h=/^::?[a-zA-Z_][\w\-]*/;return{startState:function(){return{tokenizer:l,scopes:[{offset:0,type:"sass"}],indentCount:0,cursorHalf:0,definedVars:[],definedMixins:[]}},token:function(e,t){var r=c(e,t);return t.lastToken={style:r,content:e.current()},r},indent:function(e){return e.scopes[0].offset}}}),e.defineMIME("text/x-sass","sass")}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";e.defineMode("shell",function(){function e(e,t){for(var r=t.split(" "),n=0;n1&&e.eat("$");var i=e.next(),o=/\w/;return"{"===i&&(o=/[^}]/),"("===i?(t.tokens[0]=r(")"),n(e,t)):(/\d/.test(i)||(e.eatWhile(o),e.eat("}")),t.tokens.shift(),"def")};return{startState:function(){return{tokens:[]}},token:function(e,t){return n(e,t)},lineComment:"#",fold:"brace"}}),e.defineMIME("text/x-sh","shell")}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";e.defineMode("sql",function(t,r){function n(e,t){var r=e.next();if(h[r]){var n=h[r](e,t);if(n!==!1)return n}if(1==m.hexNumber&&("0"==r&&e.match(/^[xX][0-9a-fA-F]+/)||("x"==r||"X"==r)&&e.match(/^'[0-9a-fA-F]+'/)))return"number";if(1==m.binaryNumber&&(("b"==r||"B"==r)&&e.match(/^'[01]+'/)||"0"==r&&e.match(/^b[01]+/)))return"number";if(r.charCodeAt(0)>47&&r.charCodeAt(0)<58)return e.match(/^[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?/),1==m.decimallessFloat&&e.eat("."),"number";if("?"==r&&(e.eatSpace()||e.eol()||e.eat(";")))return"variable-3";if("'"==r||'"'==r&&m.doubleQuote)return t.tokenize=i(r),t.tokenize(e,t);if((1==m.nCharCast&&("n"==r||"N"==r)||1==m.charsetCast&&"_"==r&&e.match(/[a-z][a-z0-9]*/i))&&("'"==e.peek()||'"'==e.peek()))return"keyword";if(/^[\(\),\;\[\]]/.test(r))return null;if(m.commentSlashSlash&&"/"==r&&e.eat("/"))return e.skipToEnd(),"comment";if(m.commentHash&&"#"==r||"-"==r&&e.eat("-")&&(!m.commentSpaceRequired||e.eat(" ")))return e.skipToEnd(),"comment";if("/"==r&&e.eat("*"))return t.tokenize=o,t.tokenize(e,t);if("."!=r){if(f.test(r))return e.eatWhile(f),null;if("{"==r&&(e.match(/^( )*(d|D|t|T|ts|TS)( )*'[^']*'( )*}/)||e.match(/^( )*(d|D|t|T|ts|TS)( )*"[^"]*"( )*}/)))return"number";e.eatWhile(/^[_\w\d]/);var a=e.current().toLowerCase();return p.hasOwnProperty(a)&&(e.match(/^( )+'[^']*'/)||e.match(/^( )+"[^"]*"/))?"number":c.hasOwnProperty(a)?"atom":u.hasOwnProperty(a)?"builtin":d.hasOwnProperty(a)?"keyword":l.hasOwnProperty(a)?"string-2":null}return 1==m.zerolessFloat&&e.match(/^(?:\d+(?:e[+-]?\d+)?)/i)?"number":1==m.ODBCdotTable&&e.match(/^[a-zA-Z_]+/)?"variable-2":void 0}function i(e){return function(t,r){for(var i,o=!1;null!=(i=t.next());){if(i==e&&!o){r.tokenize=n;break}o=!o&&"\\"==i}return"string"}}function o(e,t){for(;;){if(!e.skipTo("*")){e.skipToEnd();break}if(e.next(),e.eat("/")){t.tokenize=n;break}}return"comment"}function a(e,t,r){t.context={prev:t.context,indent:e.indentation(),col:e.column(),type:r}}function s(e){e.indent=e.context.indent,e.context=e.context.prev}var l=r.client||{},c=r.atoms||{"false":!0,"true":!0,"null":!0},u=r.builtin||{},d=r.keywords||{},f=r.operatorChars||/^[*+\-%<>!=&|~^]/,m=r.support||{},h=r.hooks||{},p=r.dateSQL||{date:!0,time:!0,timestamp:!0};return{startState:function(){return{tokenize:n,context:null}},token:function(e,t){if(e.sol()&&t.context&&null==t.context.align&&(t.context.align=!1),e.eatSpace())return null;var r=t.tokenize(e,t);if("comment"==r)return r;t.context&&null==t.context.align&&(t.context.align=!0);var n=e.current();return"("==n?a(e,t,")"):"["==n?a(e,t,"]"):t.context&&t.context.type==n&&s(t),r},indent:function(r,n){var i=r.context;if(!i)return e.Pass;var o=n.charAt(0)==i.type;return i.align?i.col+(o?0:1):i.indent+(o?0:t.indentUnit)},blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:m.commentSlashSlash?"//":m.commentHash?"#":null}}),function(){function t(e){for(var t;null!=(t=e.next());)if("`"==t&&!e.eat("`"))return"variable-2";return e.backUp(e.current().length-1),e.eatWhile(/\w/)?"variable-2":null}function r(e){return e.eat("@")&&(e.match(/^session\./),e.match(/^local\./),e.match(/^global\./)),e.eat("'")?(e.match(/^.*'/),"variable-2"):e.eat('"')?(e.match(/^.*"/),"variable-2"):e.eat("`")?(e.match(/^.*`/),"variable-2"):e.match(/^[0-9a-zA-Z$\.\_]+/)?"variable-2":null}function n(e){return e.eat("N")?"atom":e.match(/^[a-zA-Z.#!?]/)?"variable-2":null}function i(e){for(var t={},r=e.split(" "),n=0;n!=]/,dateSQL:i("date time timestamp"),support:i("ODBCdotTable doubleQuote binaryNumber hexNumber")}),e.defineMIME("text/x-mssql",{name:"sql",client:i("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"),keywords:i(o+"begin trigger proc view index for add constraint key primary foreign collate clustered nonclustered"),builtin:i("bigint numeric bit smallint decimal smallmoney int tinyint money float real char varchar text nchar nvarchar ntext binary varbinary image cursor timestamp hierarchyid uniqueidentifier sql_variant xml table "),atoms:i("false true null unknown"),operatorChars:/^[*+\-%<>!=]/,dateSQL:i("date datetimeoffset datetime2 smalldatetime datetime time"),hooks:{"@":r}}),e.defineMIME("text/x-mysql",{name:"sql",client:i("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"),keywords:i(o+"accessible action add after algorithm all analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general get global grant grants group groupby_concat handler hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show signal slave slow smallint snapshot soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views warnings when while with work write xa xor year_month zerofill begin do then else loop repeat"),builtin:i("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric"),atoms:i("false true null unknown"),operatorChars:/^[*+\-%<>!=&|^]/,dateSQL:i("date time timestamp"),support:i("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired"),hooks:{"@":r,"`":t,"\\":n}}),e.defineMIME("text/x-mariadb",{name:"sql",client:i("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"),keywords:i(o+"accessible action add after algorithm all always analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general generated get global grant grants group groupby_concat handler hard hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password persistent phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show shutdown signal slave slow smallint snapshot soft soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views virtual warnings when while with work write xa xor year_month zerofill begin do then else loop repeat"),builtin:i("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric"),atoms:i("false true null unknown"),operatorChars:/^[*+\-%<>!=&|^]/,dateSQL:i("date time timestamp"),support:i("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired"),hooks:{"@":r,"`":t,"\\":n}}),e.defineMIME("text/x-cassandra",{name:"sql",client:{},keywords:i("use select from using consistency where limit first reversed first and in insert into values using consistency ttl update set delete truncate begin batch apply create keyspace with columnfamily primary key index on drop alter type add any one quorum all local_quorum each_quorum"),builtin:i("ascii bigint blob boolean counter decimal double float int text timestamp uuid varchar varint"),atoms:i("false true"),operatorChars:/^[<>=]/,dateSQL:{},support:i("commentSlashSlash decimallessFloat"),hooks:{}}),e.defineMIME("text/x-plsql",{name:"sql",client:i("appinfo arraysize autocommit autoprint autorecovery autotrace blockterminator break btitle cmdsep colsep compatibility compute concat copycommit copytypecheck define describe echo editfile embedded escape exec execute feedback flagger flush heading headsep instance linesize lno loboffset logsource long longchunksize markup native newpage numformat numwidth pagesize pause pno recsep recsepchar release repfooter repheader serveroutput shiftinout show showmode size spool sqlblanklines sqlcase sqlcode sqlcontinue sqlnumber sqlpluscompatibility sqlprefix sqlprompt sqlterminator suffix tab term termout time timing trimout trimspool ttitle underline verify version wrap"),keywords:i("abort accept access add all alter and any array arraylen as asc assert assign at attributes audit authorization avg base_table begin between binary_integer body boolean by case cast char char_base check close cluster clusters colauth column comment commit compress connect connected constant constraint crash create current currval cursor data_base database date dba deallocate debugoff debugon decimal declare default definition delay delete desc digits dispose distinct do drop else elseif elsif enable end entry escape exception exception_init exchange exclusive exists exit external fast fetch file for force form from function generic goto grant group having identified if immediate in increment index indexes indicator initial initrans insert interface intersect into is key level library like limited local lock log logging long loop master maxextents maxtrans member minextents minus mislabel mode modify multiset new next no noaudit nocompress nologging noparallel not nowait number_base object of off offline on online only open option or order out package parallel partition pctfree pctincrease pctused pls_integer positive positiven pragma primary prior private privileges procedure public raise range raw read rebuild record ref references refresh release rename replace resource restrict return returning returns reverse revoke rollback row rowid rowlabel rownum rows run savepoint schema segment select separate session set share snapshot some space split sql start statement storage subtype successful synonym tabauth table tables tablespace task terminate then to trigger truncate type union unique unlimited unrecoverable unusable update use using validate value values variable view views when whenever where while with work"),builtin:i("abs acos add_months ascii asin atan atan2 average bfile bfilename bigserial bit blob ceil character chartorowid chr clob concat convert cos cosh count dec decode deref dual dump dup_val_on_index empty error exp false float floor found glb greatest hextoraw initcap instr instrb int integer isopen last_day least lenght lenghtb ln lower lpad ltrim lub make_ref max min mlslabel mod months_between natural naturaln nchar nclob new_time next_day nextval nls_charset_decl_len nls_charset_id nls_charset_name nls_initcap nls_lower nls_sort nls_upper nlssort no_data_found notfound null number numeric nvarchar2 nvl others power rawtohex real reftohex round rowcount rowidtochar rowtype rpad rtrim serial sign signtype sin sinh smallint soundex sqlcode sqlerrm sqrt stddev string substr substrb sum sysdate tan tanh to_char text to_date to_label to_multi_byte to_number to_single_byte translate true trunc uid unlogged upper user userenv varchar varchar2 variance varying vsize xml"),operatorChars:/^[*+\-%<>!=~]/,dateSQL:i("date time timestamp"),support:i("doubleQuote nCharCast zerolessFloat binaryNumber hexNumber")}),e.defineMIME("text/x-hive",{name:"sql",keywords:i("select alter $elem$ $key$ $value$ add after all analyze and archive as asc before between binary both bucket buckets by cascade case cast change cluster clustered clusterstatus collection column columns comment compute concatenate continue create cross cursor data database databases dbproperties deferred delete delimited desc describe directory disable distinct distribute drop else enable end escaped exclusive exists explain export extended external false fetch fields fileformat first format formatted from full function functions grant group having hold_ddltime idxproperties if import in index indexes inpath inputdriver inputformat insert intersect into is items join keys lateral left like limit lines load local location lock locks mapjoin materialized minus msck no_drop nocompress not of offline on option or order out outer outputdriver outputformat overwrite partition partitioned partitions percent plus preserve procedure purge range rcfile read readonly reads rebuild recordreader recordwriter recover reduce regexp rename repair replace restrict revoke right rlike row schema schemas semi sequencefile serde serdeproperties set shared show show_database sort sorted ssl statistics stored streamtable table tables tablesample tblproperties temporary terminated textfile then tmp to touch transform trigger true unarchive undo union uniquejoin unlock update use using utc utc_tmestamp view when where while with"),builtin:i("bool boolean long timestamp tinyint smallint bigint int float double date datetime unsigned string array struct map uniontype"),atoms:i("false true null unknown"),operatorChars:/^[*+\-%<>!=]/,dateSQL:i("date timestamp"),support:i("ODBCdotTable doubleQuote binaryNumber hexNumber")})}()}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(e){for(var t={},r=e.split(" "),n=0;n!?|\/]/;return{startState:function(e){return{tokenize:null,context:new a((e||0)-u,0,"top",!1),indented:0,startOfLine:!0}},token:function(e,t){var r=t.context;if(e.sol()&&(null==r.align&&(r.align=!1),t.indented=e.indentation(),t.startOfLine=!0),e.eatSpace())return null;c=null;var i=(t.tokenize||n)(e,t);if("comment"==i||"meta"==i)return i;if(null==r.align&&(r.align=!0),";"!=c&&":"!=c&&","!=c||"statement"!=r.type)if("{"==c)s(t,e.column(),"}");else if("["==c)s(t,e.column(),"]");else if("("==c)s(t,e.column(),")");else if("}"==c){for(;"statement"==r.type;)r=l(t);for("}"==r.type&&(r=l(t));"statement"==r.type;)r=l(t)}else c==r.type?l(t):y&&(("}"==r.type||"top"==r.type)&&";"!=c||"statement"==r.type&&"newstatement"==c)&&s(t,e.column(),"statement");else l(t);return t.startOfLine=!1,i},indent:function(t,r){if(t.tokenize!=n&&null!=t.tokenize)return e.Pass;var i=t.context,o=r&&r.charAt(0);"statement"==i.type&&"}"==o&&(i=i.prev);var a=o==i.type;return"statement"==i.type?i.indented+("{"==o?0:d):!i.align||f&&")"==i.type?")"!=i.type||a?i.indented+(a?0:u):i.indented+d:i.column+(a?0:1)},electricChars:"{}",blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:"//",fold:"brace"}});var l="auto if break int case long char register continue return default short do sizeof double static else struct entry switch extern typedef float union for unsigned goto while enum void const signed volatile";a(["text/x-csrc","text/x-c","text/x-chdr"],{name:"clike",keywords:t(l),blockKeywords:t("case do else for if switch while struct"),atoms:t("null"),hooks:{"#":r},modeProps:{fold:["brace","include"]}}),a(["text/x-c++src","text/x-c++hdr"],{name:"clike",keywords:t(l+" asm dynamic_cast namespace reinterpret_cast try bool explicit new static_cast typeid catch operator template typename class friend private this using const_cast inline public throw virtual delete mutable protected wchar_t alignas alignof constexpr decltype nullptr noexcept thread_local final static_assert override"),blockKeywords:t("catch class do else finally for if struct switch try while"),atoms:t("true false null"),hooks:{"#":r,u:n,U:n,L:n,R:n},modeProps:{fold:["brace","include"]}}),a("text/x-java",{name:"clike",keywords:t("abstract assert boolean break byte case catch char class const continue default do double else enum extends final finally float for goto if implements import instanceof int interface long native new package private protected public return short static strictfp super switch synchronized this throw throws transient try void volatile while"),blockKeywords:t("catch class do else finally for if switch try while"),atoms:t("true false null"),hooks:{"@":function(e){return e.eatWhile(/[\w\$_]/),"meta"}},modeProps:{fold:["brace","import"]}}),a("text/x-csharp",{name:"clike",keywords:t("abstract as base break case catch checked class const continue default delegate do else enum event explicit extern finally fixed for foreach goto if implicit in interface internal is lock namespace new operator out override params private protected public readonly ref return sealed sizeof stackalloc static struct switch this throw try typeof unchecked unsafe using virtual void volatile while add alias ascending descending dynamic from get global group into join let orderby partial remove select set value var yield"),blockKeywords:t("catch class do else finally for foreach if struct switch try while"),builtin:t("Boolean Byte Char DateTime DateTimeOffset Decimal Double Guid Int16 Int32 Int64 Object SByte Single String TimeSpan UInt16 UInt32 UInt64 bool byte char decimal double short int long object sbyte float string ushort uint ulong"),atoms:t("true false null"),hooks:{"@":function(e,t){return e.eat('"')?(t.tokenize=i,i(e,t)):(e.eatWhile(/[\w\$_]/),"meta")}}}),a("text/x-scala",{name:"clike",keywords:t("abstract case catch class def do else extends false final finally for forSome if implicit import lazy match new null object override package private protected return sealed super this throw trait try trye type val var while with yield _ : = => <- <: <% >: # @ assert assume require print println printf readLine readBoolean readByte readShort readChar readInt readLong readFloat readDouble AnyVal App Application Array BufferedIterator BigDecimal BigInt Char Console Either Enumeration Equiv Error Exception Fractional Function IndexedSeq Integral Iterable Iterator List Map Numeric Nil NotNull Option Ordered Ordering PartialFunction PartialOrdering Product Proxy Range Responder Seq Serializable Set Specializable Stream StringBuilder StringContext Symbol Throwable Traversable TraversableOnce Tuple Unit Vector :: #:: Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable Compiler Double Exception Float Integer Long Math Number Object Package Pair Process Runtime Runnable SecurityManager Short StackTraceElement StrictMath String StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void"), -multiLineStrings:!0,blockKeywords:t("catch class do else finally for forSome if match switch try while"),atoms:t("true false null"),indentStatements:!1,hooks:{"@":function(e){return e.eatWhile(/[\w\$_]/),"meta"},'"':function(e,t){return e.match('""')?(t.tokenize=s,t.tokenize(e,t)):!1},"'":function(e){return e.eatWhile(/[\w\$_\xa1-\uffff]/),"atom"}}}),a(["x-shader/x-vertex","x-shader/x-fragment"],{name:"clike",keywords:t("float int bool void vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3 bvec4 mat2 mat3 mat4 sampler1D sampler2D sampler3D samplerCube sampler1DShadow sampler2DShadow const attribute uniform varying break continue discard return for while do if else struct in out inout"),blockKeywords:t("for while do if else struct"),builtin:t("radians degrees sin cos tan asin acos atan pow exp log exp2 sqrt inversesqrt abs sign floor ceil fract mod min max clamp mix step smoothstep length distance dot cross normalize ftransform faceforward reflect refract matrixCompMult lessThan lessThanEqual greaterThan greaterThanEqual equal notEqual any all not texture1D texture1DProj texture1DLod texture1DProjLod texture2D texture2DProj texture2DLod texture2DProjLod texture3D texture3DProj texture3DLod texture3DProjLod textureCube textureCubeLod shadow1D shadow2D shadow1DProj shadow2DProj shadow1DLod shadow2DLod shadow1DProjLod shadow2DProjLod dFdx dFdy fwidth noise1 noise2 noise3 noise4"),atoms:t("true false gl_FragColor gl_SecondaryColor gl_Normal gl_Vertex gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_FogCoord gl_PointCoord gl_Position gl_PointSize gl_ClipVertex gl_FrontColor gl_BackColor gl_FrontSecondaryColor gl_BackSecondaryColor gl_TexCoord gl_FogFragCoord gl_FragCoord gl_FrontFacing gl_FragData gl_FragDepth gl_ModelViewMatrix gl_ProjectionMatrix gl_ModelViewProjectionMatrix gl_TextureMatrix gl_NormalMatrix gl_ModelViewMatrixInverse gl_ProjectionMatrixInverse gl_ModelViewProjectionMatrixInverse gl_TexureMatrixTranspose gl_ModelViewMatrixInverseTranspose gl_ProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixInverseTranspose gl_TextureMatrixInverseTranspose gl_NormalScale gl_DepthRange gl_ClipPlane gl_Point gl_FrontMaterial gl_BackMaterial gl_LightSource gl_LightModel gl_FrontLightModelProduct gl_BackLightModelProduct gl_TextureColor gl_EyePlaneS gl_EyePlaneT gl_EyePlaneR gl_EyePlaneQ gl_FogParameters gl_MaxLights gl_MaxClipPlanes gl_MaxTextureUnits gl_MaxTextureCoords gl_MaxVertexAttribs gl_MaxVertexUniformComponents gl_MaxVaryingFloats gl_MaxVertexTextureImageUnits gl_MaxTextureImageUnits gl_MaxFragmentUniformComponents gl_MaxCombineTextureImageUnits gl_MaxDrawBuffers"),hooks:{"#":r},modeProps:{fold:["brace","include"]}}),a("text/x-nesc",{name:"clike",keywords:t(l+"as atomic async call command component components configuration event generic implementation includes interface module new norace nx_struct nx_union post provides signal task uses abstract extends"),blockKeywords:t("case do else for if switch while struct"),atoms:t("null"),hooks:{"#":r},modeProps:{fold:["brace","include"]}}),a("text/x-objectivec",{name:"clike",keywords:t(l+"inline restrict _Bool _Complex _Imaginery BOOL Class bycopy byref id IMP in inout nil oneway out Protocol SEL self super atomic nonatomic retain copy readwrite readonly"),atoms:t("YES NO NULL NILL ON OFF"),hooks:{"@":function(e){return e.eatWhile(/[\w\$]/),"keyword"},"#":r},modeProps:{fold:"brace"}})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror"),require("../htmlmixed/htmlmixed"),require("../clike/clike")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../htmlmixed/htmlmixed","../clike/clike"],e):e(CodeMirror)}(function(e){"use strict";function t(e){for(var t={},r=e.split(" "),n=0;n\w/,!1)&&(t.tokenize=r([[["->",null]],[[/[\w]+/,"variable"]]],n)),"variable-2";for(var i=!1;!e.eol()&&(i||!e.match("{$",!1)&&!e.match(/^(\$[a-zA-Z_][a-zA-Z0-9_]*|\$\{)/,!1));){if(!i&&e.match(n)){t.tokenize=null,t.tokStack.pop(),t.tokStack.pop();break}i="\\"==e.next()&&!i}return"string"}var o="abstract and array as break case catch class clone const continue declare default do else elseif enddeclare endfor endforeach endif endswitch endwhile extends final for foreach function global goto if implements interface instanceof namespace new or private protected public static switch throw trait try use var while xor die echo empty exit eval include include_once isset list require require_once return print unset __halt_compiler self static parent yield insteadof finally",a="true false null TRUE FALSE NULL __CLASS__ __DIR__ __FILE__ __LINE__ __METHOD__ __FUNCTION__ __NAMESPACE__ __TRAIT__",s="func_num_args func_get_arg func_get_args strlen strcmp strncmp strcasecmp strncasecmp each error_reporting define defined trigger_error user_error set_error_handler restore_error_handler get_declared_classes get_loaded_extensions extension_loaded get_extension_funcs debug_backtrace constant bin2hex hex2bin sleep usleep time mktime gmmktime strftime gmstrftime strtotime date gmdate getdate localtime checkdate flush wordwrap htmlspecialchars htmlentities html_entity_decode md5 md5_file crc32 getimagesize image_type_to_mime_type phpinfo phpversion phpcredits strnatcmp strnatcasecmp substr_count strspn strcspn strtok strtoupper strtolower strpos strrpos strrev hebrev hebrevc nl2br basename dirname pathinfo stripslashes stripcslashes strstr stristr strrchr str_shuffle str_word_count strcoll substr substr_replace quotemeta ucfirst ucwords strtr addslashes addcslashes rtrim str_replace str_repeat count_chars chunk_split trim ltrim strip_tags similar_text explode implode setlocale localeconv parse_str str_pad chop strchr sprintf printf vprintf vsprintf sscanf fscanf parse_url urlencode urldecode rawurlencode rawurldecode readlink linkinfo link unlink exec system escapeshellcmd escapeshellarg passthru shell_exec proc_open proc_close rand srand getrandmax mt_rand mt_srand mt_getrandmax base64_decode base64_encode abs ceil floor round is_finite is_nan is_infinite bindec hexdec octdec decbin decoct dechex base_convert number_format fmod ip2long long2ip getenv putenv getopt microtime gettimeofday getrusage uniqid quoted_printable_decode set_time_limit get_cfg_var magic_quotes_runtime set_magic_quotes_runtime get_magic_quotes_gpc get_magic_quotes_runtime import_request_variables error_log serialize unserialize memory_get_usage var_dump var_export debug_zval_dump print_r highlight_file show_source highlight_string ini_get ini_get_all ini_set ini_alter ini_restore get_include_path set_include_path restore_include_path setcookie header headers_sent connection_aborted connection_status ignore_user_abort parse_ini_file is_uploaded_file move_uploaded_file intval floatval doubleval strval gettype settype is_null is_resource is_bool is_long is_float is_int is_integer is_double is_real is_numeric is_string is_array is_object is_scalar ereg ereg_replace eregi eregi_replace split spliti join sql_regcase dl pclose popen readfile rewind rmdir umask fclose feof fgetc fgets fgetss fread fopen fpassthru ftruncate fstat fseek ftell fflush fwrite fputs mkdir rename copy tempnam tmpfile file file_get_contents stream_select stream_context_create stream_context_set_params stream_context_set_option stream_context_get_options stream_filter_prepend stream_filter_append fgetcsv flock get_meta_tags stream_set_write_buffer set_file_buffer set_socket_blocking stream_set_blocking socket_set_blocking stream_get_meta_data stream_register_wrapper stream_wrapper_register stream_set_timeout socket_set_timeout socket_get_status realpath fnmatch fsockopen pfsockopen pack unpack get_browser crypt opendir closedir chdir getcwd rewinddir readdir dir glob fileatime filectime filegroup fileinode filemtime fileowner fileperms filesize filetype file_exists is_writable is_writeable is_readable is_executable is_file is_dir is_link stat lstat chown touch clearstatcache mail ob_start ob_flush ob_clean ob_end_flush ob_end_clean ob_get_flush ob_get_clean ob_get_length ob_get_level ob_get_status ob_get_contents ob_implicit_flush ob_list_handlers ksort krsort natsort natcasesort asort arsort sort rsort usort uasort uksort shuffle array_walk count end prev next reset current key min max in_array array_search extract compact array_fill range array_multisort array_push array_pop array_shift array_unshift array_splice array_slice array_merge array_merge_recursive array_keys array_values array_count_values array_reverse array_reduce array_pad array_flip array_change_key_case array_rand array_unique array_intersect array_intersect_assoc array_diff array_diff_assoc array_sum array_filter array_map array_chunk array_key_exists pos sizeof key_exists assert assert_options version_compare ftok str_rot13 aggregate session_name session_module_name session_save_path session_id session_regenerate_id session_decode session_register session_unregister session_is_registered session_encode session_start session_destroy session_unset session_set_save_handler session_cache_limiter session_cache_expire session_set_cookie_params session_get_cookie_params session_write_close preg_match preg_match_all preg_replace preg_replace_callback preg_split preg_quote preg_grep overload ctype_alnum ctype_alpha ctype_cntrl ctype_digit ctype_lower ctype_graph ctype_print ctype_punct ctype_space ctype_upper ctype_xdigit virtual apache_request_headers apache_note apache_lookup_uri apache_child_terminate apache_setenv apache_response_headers apache_get_version getallheaders mysql_connect mysql_pconnect mysql_close mysql_select_db mysql_create_db mysql_drop_db mysql_query mysql_unbuffered_query mysql_db_query mysql_list_dbs mysql_list_tables mysql_list_fields mysql_list_processes mysql_error mysql_errno mysql_affected_rows mysql_insert_id mysql_result mysql_num_rows mysql_num_fields mysql_fetch_row mysql_fetch_array mysql_fetch_assoc mysql_fetch_object mysql_data_seek mysql_fetch_lengths mysql_fetch_field mysql_field_seek mysql_free_result mysql_field_name mysql_field_table mysql_field_len mysql_field_type mysql_field_flags mysql_escape_string mysql_real_escape_string mysql_stat mysql_thread_id mysql_client_encoding mysql_get_client_info mysql_get_host_info mysql_get_proto_info mysql_get_server_info mysql_info mysql mysql_fieldname mysql_fieldtable mysql_fieldlen mysql_fieldtype mysql_fieldflags mysql_selectdb mysql_createdb mysql_dropdb mysql_freeresult mysql_numfields mysql_numrows mysql_listdbs mysql_listtables mysql_listfields mysql_db_name mysql_dbname mysql_tablename mysql_table_name pg_connect pg_pconnect pg_close pg_connection_status pg_connection_busy pg_connection_reset pg_host pg_dbname pg_port pg_tty pg_options pg_ping pg_query pg_send_query pg_cancel_query pg_fetch_result pg_fetch_row pg_fetch_assoc pg_fetch_array pg_fetch_object pg_fetch_all pg_affected_rows pg_get_result pg_result_seek pg_result_status pg_free_result pg_last_oid pg_num_rows pg_num_fields pg_field_name pg_field_num pg_field_size pg_field_type pg_field_prtlen pg_field_is_null pg_get_notify pg_get_pid pg_result_error pg_last_error pg_last_notice pg_put_line pg_end_copy pg_copy_to pg_copy_from pg_trace pg_untrace pg_lo_create pg_lo_unlink pg_lo_open pg_lo_close pg_lo_read pg_lo_write pg_lo_read_all pg_lo_import pg_lo_export pg_lo_seek pg_lo_tell pg_escape_string pg_escape_bytea pg_unescape_bytea pg_client_encoding pg_set_client_encoding pg_meta_data pg_convert pg_insert pg_update pg_delete pg_select pg_exec pg_getlastoid pg_cmdtuples pg_errormessage pg_numrows pg_numfields pg_fieldname pg_fieldsize pg_fieldtype pg_fieldnum pg_fieldprtlen pg_fieldisnull pg_freeresult pg_result pg_loreadall pg_locreate pg_lounlink pg_loopen pg_loclose pg_loread pg_lowrite pg_loimport pg_loexport http_response_code get_declared_traits getimagesizefromstring socket_import_stream stream_set_chunk_size trait_exists header_register_callback class_uses session_status session_register_shutdown echo print global static exit array empty eval isset unset die include require include_once require_once json_decode json_encode json_last_error json_last_error_msg curl_close curl_copy_handle curl_errno curl_error curl_escape curl_exec curl_file_create curl_getinfo curl_init curl_multi_add_handle curl_multi_close curl_multi_exec curl_multi_getcontent curl_multi_info_read curl_multi_init curl_multi_remove_handle curl_multi_select curl_multi_setopt curl_multi_strerror curl_pause curl_reset curl_setopt_array curl_setopt curl_share_close curl_share_init curl_share_setopt curl_strerror curl_unescape curl_version mysqli_affected_rows mysqli_autocommit mysqli_change_user mysqli_character_set_name mysqli_close mysqli_commit mysqli_connect_errno mysqli_connect_error mysqli_connect mysqli_data_seek mysqli_debug mysqli_dump_debug_info mysqli_errno mysqli_error_list mysqli_error mysqli_fetch_all mysqli_fetch_array mysqli_fetch_assoc mysqli_fetch_field_direct mysqli_fetch_field mysqli_fetch_fields mysqli_fetch_lengths mysqli_fetch_object mysqli_fetch_row mysqli_field_count mysqli_field_seek mysqli_field_tell mysqli_free_result mysqli_get_charset mysqli_get_client_info mysqli_get_client_stats mysqli_get_client_version mysqli_get_connection_stats mysqli_get_host_info mysqli_get_proto_info mysqli_get_server_info mysqli_get_server_version mysqli_info mysqli_init mysqli_insert_id mysqli_kill mysqli_more_results mysqli_multi_query mysqli_next_result mysqli_num_fields mysqli_num_rows mysqli_options mysqli_ping mysqli_prepare mysqli_query mysqli_real_connect mysqli_real_escape_string mysqli_real_query mysqli_reap_async_query mysqli_refresh mysqli_rollback mysqli_select_db mysqli_set_charset mysqli_set_local_infile_default mysqli_set_local_infile_handler mysqli_sqlstate mysqli_ssl_set mysqli_stat mysqli_stmt_init mysqli_store_result mysqli_thread_id mysqli_thread_safe mysqli_use_result mysqli_warning_count";e.registerHelper("hintWords","php",[o,a,s].join(" ").split(" ")),e.registerHelper("wordChars","php",/[\w$]/);var l={name:"clike",helperType:"php",keywords:t(o),blockKeywords:t("catch do else elseif for foreach if switch try while finally"),atoms:t(a),builtin:t(s),multiLineStrings:!0,hooks:{$:function(e){return e.eatWhile(/[\w\$_]/),"variable-2"},"<":function(e,t){if(e.match(/<",!1);)e.next();return"comment"},"/":function(e){if(e.eat("/")){for(;!e.eol()&&!e.match("?>",!1);)e.next();return"comment"}return!1},'"':function(e,t){return(t.tokStack||(t.tokStack=[])).push('"',0),t.tokenize=n('"'),"string"},"{":function(e,t){return t.tokStack&&t.tokStack.length&&t.tokStack[t.tokStack.length-1]++,!1},"}":function(e,t){return t.tokStack&&t.tokStack.length>0&&!--t.tokStack[t.tokStack.length-1]&&(t.tokenize=n(t.tokStack[t.tokStack.length-2])),!1}}};e.defineMode("php",function(t,r){function n(e,t){var r=t.curMode==o;if(e.sol()&&t.pending&&'"'!=t.pending&&"'"!=t.pending&&(t.pending=null),r)return r&&null==t.php.tokenize&&e.match("?>")?(t.curMode=i,t.curState=t.html,"meta"):o.token(e,t.curState);if(e.match(/^<\?\w*/))return t.curMode=o,t.curState=t.php,"meta";if('"'==t.pending||"'"==t.pending){for(;!e.eol()&&e.next()!=t.pending;);var n="string"}else if(t.pending&&e.pos/.test(s)?t.pending=a[0]:t.pending={end:e.pos,style:n},e.backUp(s.length-l)),n}var i=e.getMode(t,"text/html"),o=e.getMode(t,l);return{startState:function(){var t=e.startState(i),n=e.startState(o);return{html:t,php:n,curMode:r.startOpen?o:i,curState:r.startOpen?n:t,pending:null}},copyState:function(t){var r,n=t.html,a=e.copyState(i,n),s=t.php,l=e.copyState(o,s);return r=t.curMode==i?a:l,{html:a,php:l,curMode:t.curMode,curState:r,pending:t.pending}},token:n,indent:function(e,t){return e.curMode!=o&&/^\s*<\//.test(t)||e.curMode==o&&/^\?>/.test(t)?i.indent(e.html,t):e.curMode.indent(e.curState,t)},blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:"//",innerMode:function(e){return{state:e.curState,mode:e.curMode}}}},"htmlmixed","clike"),e.defineMIME("application/x-httpd-php","php"),e.defineMIME("application/x-httpd-php-open",{name:"php",startOpen:!0}),e.defineMIME("text/x-php",l)}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";e.defineMode("xml",function(t,r){function n(e,t){function r(r){return t.tokenize=r,r(e,t)}var n=e.next();if("<"==n)return e.eat("!")?e.eat("[")?e.match("CDATA[")?r(a("atom","]]>")):null:e.match("--")?r(a("comment","-->")):e.match("DOCTYPE",!0,!0)?(e.eatWhile(/[\w\._\-]/),r(s(1))):null:e.eat("?")?(e.eatWhile(/[\w\._\-]/),t.tokenize=a("meta","?>"),"meta"):(_=e.eat("/")?"closeTag":"openTag",t.tokenize=i,"tag bracket");if("&"==n){var o;return o=e.eat("#")?e.eat("x")?e.eatWhile(/[a-fA-F\d]/)&&e.eat(";"):e.eatWhile(/[\d]/)&&e.eat(";"):e.eatWhile(/[\w\.\-:]/)&&e.eat(";"),o?"atom":"error"}return e.eatWhile(/[^&<]/),null}function i(e,t){var r=e.next();if(">"==r||"/"==r&&e.eat(">"))return t.tokenize=n,_=">"==r?"endTag":"selfcloseTag","tag bracket";if("="==r)return _="equals",null;if("<"==r){t.tokenize=n,t.state=d,t.tagName=t.tagStart=null;var i=t.tokenize(e,t);return i?i+" tag error":"tag error"}return/[\'\"]/.test(r)?(t.tokenize=o(r),t.stringStartCol=e.column(),t.tokenize(e,t)):(e.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/),"word")}function o(e){var t=function(t,r){for(;!t.eol();)if(t.next()==e){r.tokenize=i;break}return"string"};return t.isInAttribute=!0,t}function a(e,t){return function(r,i){for(;!r.eol();){if(r.match(t)){i.tokenize=n;break}r.next()}return e}}function s(e){return function(t,r){for(var i;null!=(i=t.next());){if("<"==i)return r.tokenize=s(e+1),r.tokenize(t,r);if(">"==i){if(1==e){r.tokenize=n;break}return r.tokenize=s(e-1),r.tokenize(t,r)}}return"meta"}}function l(e,t,r){this.prev=e.context,this.tagName=t,this.indent=e.indented,this.startOfLine=r,(S.doNotIndent.hasOwnProperty(t)||e.context&&e.context.noIndent)&&(this.noIndent=!0)}function c(e){e.context&&(e.context=e.context.prev)}function u(e,t){for(var r;;){if(!e.context)return;if(r=e.context.tagName,!S.contextGrabbers.hasOwnProperty(r)||!S.contextGrabbers[r].hasOwnProperty(t))return;c(e)}}function d(e,t,r){return"openTag"==e?(r.tagStart=t.column(),f):"closeTag"==e?m:d}function f(e,t,r){return"word"==e?(r.tagName=t.current(),C="tag",g):(C="error",f)}function m(e,t,r){if("word"==e){var n=t.current();return r.context&&r.context.tagName!=n&&S.implicitlyClosed.hasOwnProperty(r.context.tagName)&&c(r),r.context&&r.context.tagName==n?(C="tag",h):(C="tag error",p)}return C="error",p}function h(e,t,r){return"endTag"!=e?(C="error",h):(c(r),d)}function p(e,t,r){return C="error",h(e,t,r)}function g(e,t,r){if("word"==e)return C="attribute",v;if("endTag"==e||"selfcloseTag"==e){var n=r.tagName,i=r.tagStart;return r.tagName=r.tagStart=null,"selfcloseTag"==e||S.autoSelfClosers.hasOwnProperty(n)?u(r,n):(u(r,n),r.context=new l(r,n,i==r.indented)),d}return C="error",g}function v(e,t,r){return"equals"==e?b:(S.allowMissing||(C="error"),g(e,t,r))}function b(e,t,r){return"string"==e?y:"word"==e&&S.allowUnquoted?(C="string",g):(C="error",g(e,t,r))}function y(e,t,r){return"string"==e?y:g(e,t,r)}var x=t.indentUnit,k=r.multilineTagIndentFactor||1,w=r.multilineTagIndentPastTag;null==w&&(w=!0);var _,C,S=r.htmlMode?{autoSelfClosers:{area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},implicitlyClosed:{dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},contextGrabbers:{dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}},doNotIndent:{pre:!0},allowUnquoted:!0,allowMissing:!0,caseFold:!0}:{autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!1,allowMissing:!1,caseFold:!1},T=r.alignCDATA;return{startState:function(){return{tokenize:n,state:d,indented:0,tagName:null,tagStart:null,context:null}},token:function(e,t){if(!t.tagName&&e.sol()&&(t.indented=e.indentation()),e.eatSpace())return null;_=null;var r=t.tokenize(e,t);return(r||_)&&"comment"!=r&&(C=null,t.state=t.state(_||r,e,t),C&&(r="error"==C?r+" error":C)),r},indent:function(t,r,o){var a=t.context;if(t.tokenize.isInAttribute)return t.tagStart==t.indented?t.stringStartCol+1:t.indented+x;if(a&&a.noIndent)return e.Pass;if(t.tokenize!=i&&t.tokenize!=n)return o?o.match(/^(\s*)/)[0].length:0;if(t.tagName)return w?t.tagStart+t.tagName.length+2:t.tagStart+x*k;if(T&&/$/,blockCommentStart:"",configuration:r.htmlMode?"html":"xml",helperType:r.htmlMode?"html":"xml"}}),e.defineMIME("text/xml","xml"),e.defineMIME("application/xml","xml"),e.mimeModes.hasOwnProperty("text/html")||e.defineMIME("text/html",{name:"xml",htmlMode:!0})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror"),require("../xml/xml"),require("../meta")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../xml/xml","../meta"],e):e(CodeMirror)}(function(e){"use strict";e.defineMode("markdown",function(t,r){function n(r){if(e.findModeByName){var n=e.findModeByName(r);n&&(r=n.mime||n.mimes[0])}var i=e.getMode(t,r);return"null"==i.name?null:i}function i(e,t,r){return t.f=t.inline=r,r(e,t)}function o(e,t,r){return t.f=t.block=r,r(e,t)}function a(e){return e.linkTitle=!1,e.em=!1,e.strong=!1,e.strikethrough=!1,e.quote=0,k||e.f!=l||(e.f=m,e.block=s),e.trailingSpace=0,e.trailingSpaceNewLine=!1,e.thisLineHasContent=!1,null}function s(e,t){var o=e.sol(),a=t.list!==!1;t.list!==!1&&t.indentationDiff>=0?(t.indentationDiff<4&&(t.indentation-=t.indentationDiff),t.list=null):t.list!==!1&&t.indentation>0?(t.list=null,t.listDepth=Math.floor(t.indentation/4)):t.list!==!1&&(t.list=!1,t.listDepth=0);var s=null;if(t.indentationDiff>=4)return t.indentation-=4,e.skipToEnd(),S;if(e.eatSpace())return null;if(s=e.match(U))return t.header=s[0].length<=6?s[0].length:6,r.highlightFormatting&&(t.formatting="header"),t.f=t.inline,d(t);if(t.prevLineHasContent&&(s=e.match(W)))return t.header="="==s[0].charAt(0)?1:2,r.highlightFormatting&&(t.formatting="header"),t.f=t.inline,d(t);if(e.eat(">"))return t.indentation++,t.quote=o?1:t.quote+1,r.highlightFormatting&&(t.formatting="quote"),e.eatSpace(),d(t);if("["===e.peek())return i(e,t,v);if(e.match(F,!0))return q;if((!t.prevLineHasContent||a)&&(e.match(H,!1)||e.match(N,!1))){var l=null;return e.match(H,!0)?l="ul":(e.match(N,!0),l="ol"),t.indentation+=4,t.list=!0,t.listDepth++,r.taskLists&&e.match(B,!1)&&(t.taskList=!0),t.f=t.inline,r.highlightFormatting&&(t.formatting=["list","list-"+l]),d(t)}return r.fencedCodeBlocks&&e.match(/^```[ \t]*([\w+#]*)/,!0)?(t.localMode=n(RegExp.$1),t.localMode&&(t.localState=t.localMode.startState()),t.f=t.block=c,r.highlightFormatting&&(t.formatting="code-block"),t.code=!0,d(t)):i(e,t,t.inline)}function l(e,t){var r=w.token(e,t.htmlState);return(k&&null===t.htmlState.tagStart&&!t.htmlState.context||t.md_inside&&e.current().indexOf(">")>-1)&&(t.f=m,t.block=s,t.htmlState=null),r}function c(e,t){return e.sol()&&e.match("```",!1)?(t.localMode=t.localState=null,t.f=t.block=u,null):t.localMode?t.localMode.token(e,t.localState):(e.skipToEnd(),S)}function u(e,t){e.match("```"),t.block=s,t.f=m,r.highlightFormatting&&(t.formatting="code-block"),t.code=!0;var n=d(t);return t.code=!1,n}function d(e){var t=[];if(e.formatting){t.push(z),"string"==typeof e.formatting&&(e.formatting=[e.formatting]);for(var n=0;n=e.quote?z+"-"+e.formatting[n]+"-"+e.quote:"error")}if(e.taskOpen)return t.push("meta"),t.length?t.join(" "):null;if(e.taskClosed)return t.push("property"),t.length?t.join(" "):null;if(e.linkHref)return t.push(A),t.length?t.join(" "):null;if(e.strong&&t.push(O),e.em&&t.push($),e.strikethrough&&t.push(R),e.linkText&&t.push(D),e.code&&t.push(S),e.header&&(t.push(C),t.push(C+"-"+e.header)),e.quote&&(t.push(T),t.push(!r.maxBlockquoteDepth||r.maxBlockquoteDepth>=e.quote?T+"-"+e.quote:T+"-"+r.maxBlockquoteDepth)),e.list!==!1){var i=(e.listDepth-1)%3;t.push(i?1===i?L:E:M)}return e.trailingSpaceNewLine?t.push("trailing-space-new-line"):e.trailingSpace&&t.push("trailing-space-"+(e.trailingSpace%2?"a":"b")),t.length?t.join(" "):null}function f(e,t){return e.match(V,!0)?d(t):void 0}function m(t,n){var i=n.text(t,n);if("undefined"!=typeof i)return i;if(n.list)return n.list=null,d(n);if(n.taskList){var a="x"!==t.match(B,!0)[1];return a?n.taskOpen=!0:n.taskClosed=!0,r.highlightFormatting&&(n.formatting="task"),n.taskList=!1,d(n)}if(n.taskOpen=!1,n.taskClosed=!1,n.header&&t.match(/^#+$/,!0))return r.highlightFormatting&&(n.formatting="header"),d(n);var s=t.sol(),c=t.next();if("\\"===c&&(t.next(),r.highlightFormatting)){var u=d(n);return u?u+" formatting-escape":"formatting-escape"}if(n.linkTitle){n.linkTitle=!1;var f=c;"("===c&&(f=")"),f=(f+"").replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1");var m="^\\s*(?:[^"+f+"\\\\]+|\\\\\\\\|\\\\.)"+f;if(t.match(new RegExp(m),!0))return A}if("`"===c){var g=n.formatting;r.highlightFormatting&&(n.formatting="code");var v=d(n),b=t.pos;t.eatWhile("`");var y=1+t.pos-b;return n.code?y===_?(n.code=!1,v):(n.formatting=g,d(n)):(_=y,n.code=!0,d(n))}if(n.code)return d(n);if("!"===c&&t.match(/\[[^\]]*\] ?(?:\(|\[)/,!1))return t.match(/\[[^\]]*\]/),n.inline=n.f=p,j;if("["===c&&t.match(/.*\](\(.*\)| ?\[.*\])/,!1))return n.linkText=!0,r.highlightFormatting&&(n.formatting="link"),d(n);if("]"===c&&n.linkText&&t.match(/\(.*\)| ?\[.*\]/,!1)){r.highlightFormatting&&(n.formatting="link");var u=d(n);return n.linkText=!1,n.inline=n.f=p,u}if("<"===c&&t.match(/^(https?|ftps?):\/\/(?:[^\\>]|\\.)+>/,!1)){n.f=n.inline=h,r.highlightFormatting&&(n.formatting="link");var u=d(n);return u?u+=" ":u="",u+I}if("<"===c&&t.match(/^[^> \\]+@(?:[^\\>]|\\.)+>/,!1)){n.f=n.inline=h,r.highlightFormatting&&(n.formatting="link");var u=d(n);return u?u+=" ":u="",u+P}if("<"===c&&t.match(/^\w/,!1)){if(-1!=t.string.indexOf(">")){var x=t.string.substring(1,t.string.indexOf(">"));/markdown\s*=\s*('|"){0,1}1('|"){0,1}/.test(x)&&(n.md_inside=!0)}return t.backUp(1),n.htmlState=e.startState(w),o(t,n,l)}if("<"===c&&t.match(/^\/\w*?>/))return n.md_inside=!1,"tag";var k=!1;if(!r.underscoresBreakWords&&"_"===c&&"_"!==t.peek()&&t.match(/(\w)/,!1)){var C=t.pos-2;if(C>=0){var S=t.string.charAt(C);"_"!==S&&S.match(/(\w)/,!1)&&(k=!0)}}if("*"===c||"_"===c&&!k)if(s&&" "===t.peek());else{if(n.strong===c&&t.eat(c)){r.highlightFormatting&&(n.formatting="strong");var v=d(n);return n.strong=!1,v}if(!n.strong&&t.eat(c))return n.strong=c,r.highlightFormatting&&(n.formatting="strong"),d(n);if(n.em===c){r.highlightFormatting&&(n.formatting="em");var v=d(n);return n.em=!1,v}if(!n.em)return n.em=c,r.highlightFormatting&&(n.formatting="em"),d(n)}else if(" "===c&&(t.eat("*")||t.eat("_"))){if(" "===t.peek())return d(n);t.backUp(1)}if(r.strikethrough)if("~"===c&&t.eatWhile(c)){if(n.strikethrough){r.highlightFormatting&&(n.formatting="strikethrough");var v=d(n);return n.strikethrough=!1,v}if(t.match(/^[^\s]/,!1))return n.strikethrough=!0,r.highlightFormatting&&(n.formatting="strikethrough"),d(n)}else if(" "===c&&t.match(/^~~/,!0)){if(" "===t.peek())return d(n);t.backUp(2)}return" "===c&&(t.match(/ +$/,!1)?n.trailingSpace++:n.trailingSpace&&(n.trailingSpaceNewLine=!0)),d(n)}function h(e,t){var n=e.next();if(">"===n){t.f=t.inline=m,r.highlightFormatting&&(t.formatting="link");var i=d(t);return i?i+=" ":i="",i+I}return e.match(/^[^>]+/,!0),I}function p(e,t){if(e.eatSpace())return null;var n=e.next();return"("===n||"["===n?(t.f=t.inline=g("("===n?")":"]"),r.highlightFormatting&&(t.formatting="link-string"),t.linkHref=!0,d(t)):"error"}function g(e){return function(t,n){var i=t.next();if(i===e){n.f=n.inline=m,r.highlightFormatting&&(n.formatting="link-string");var o=d(n);return n.linkHref=!1,o}return t.match(x(e),!0)&&t.backUp(1),n.linkHref=!0,d(n)}}function v(e,t){return e.match(/^[^\]]*\]:/,!1)?(t.f=b,e.next(),r.highlightFormatting&&(t.formatting="link"),t.linkText=!0,d(t)):i(e,t,m)}function b(e,t){if(e.match(/^\]:/,!0)){t.f=t.inline=y,r.highlightFormatting&&(t.formatting="link");var n=d(t);return t.linkText=!1,n}return e.match(/^[^\]]+/,!0),D}function y(e,t){return e.eatSpace()?null:(e.match(/^[^\s]+/,!0),void 0===e.peek()?t.linkTitle=!0:e.match(/^(?:\s+(?:"(?:[^"\\]|\\\\|\\.)+"|'(?:[^'\\]|\\\\|\\.)+'|\((?:[^)\\]|\\\\|\\.)+\)))?/,!0),t.f=t.inline=m,A)}function x(e){return K[e]||(e=(e+"").replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1"),K[e]=new RegExp("^(?:[^\\\\]|\\\\.)*?("+e+")")),K[e]}var k=e.modes.hasOwnProperty("xml"),w=e.getMode(t,k?{name:"xml",htmlMode:!0}:"text/plain");void 0===r.highlightFormatting&&(r.highlightFormatting=!1),void 0===r.maxBlockquoteDepth&&(r.maxBlockquoteDepth=0),void 0===r.underscoresBreakWords&&(r.underscoresBreakWords=!0),void 0===r.fencedCodeBlocks&&(r.fencedCodeBlocks=!1),void 0===r.taskLists&&(r.taskLists=!1),void 0===r.strikethrough&&(r.strikethrough=!1);var _=0,C="header",S="comment",T="quote",M="variable-2",L="variable-3",E="keyword",q="hr",j="tag",z="formatting",I="link",P="link",D="link",A="string",$="em",O="strong",R="strikethrough",F=/^([*\-=_])(?:\s*\1){2,}\s*$/,H=/^[*\-+]\s+/,N=/^[0-9]+\.\s+/,B=/^\[(x| )\](?=\s)/,U=/^#+/,W=/^(?:\={1,}|-{1,})$/,V=/^[^#!\[\]*_\\<>` "'(~]+/,K=[],Z={startState:function(){return{f:s,prevLineHasContent:!1,thisLineHasContent:!1,block:s,htmlState:null,indentation:0,inline:m,text:f,formatting:!1,linkText:!1,linkHref:!1,linkTitle:!1,em:!1,strong:!1,header:0,taskList:!1,list:!1,listDepth:0,quote:0,trailingSpace:0,trailingSpaceNewLine:!1,strikethrough:!1}},copyState:function(t){return{f:t.f,prevLineHasContent:t.prevLineHasContent,thisLineHasContent:t.thisLineHasContent,block:t.block,htmlState:t.htmlState&&e.copyState(w,t.htmlState),indentation:t.indentation,localMode:t.localMode,localState:t.localMode?e.copyState(t.localMode,t.localState):null,inline:t.inline,text:t.text,formatting:!1,linkTitle:t.linkTitle,em:t.em,strong:t.strong,strikethrough:t.strikethrough,header:t.header,taskList:t.taskList,list:t.list,listDepth:t.listDepth,quote:t.quote, -trailingSpace:t.trailingSpace,trailingSpaceNewLine:t.trailingSpaceNewLine,md_inside:t.md_inside}},token:function(e,t){if(t.formatting=!1,e.sol()){var r=!!t.header;if(t.header=0,e.match(/^\s*$/,!0)||r)return t.prevLineHasContent=!1,a(t),r?this.token(e,t):null;t.prevLineHasContent=t.thisLineHasContent,t.thisLineHasContent=!0,t.taskList=!1,t.code=!1,t.trailingSpace=0,t.trailingSpaceNewLine=!1,t.f=t.block;var n=e.match(/^\s*/,!0)[0].replace(/\t/g," ").length,i=4*Math.floor((n-t.indentation)/4);i>4&&(i=4);var o=t.indentation+i;if(t.indentationDiff=o-t.indentation,t.indentation=o,n>0)return null}return t.f(e,t)},innerMode:function(e){return e.block==l?{state:e.htmlState,mode:w}:e.localState?{state:e.localState,mode:e.localMode}:{state:e,mode:Z}},blankLine:a,getType:d,fold:"markdown"};return Z},"xml"),e.defineMIME("text/x-markdown","markdown")}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";e.defineMode("javascript",function(t,r){function n(e){for(var t,r=!1,n=!1;null!=(t=e.next());){if(!r){if("/"==t&&!n)return;"["==t?n=!0:n&&"]"==t&&(n=!1)}r=!r&&"\\"==t}}function i(e,t,r){return pe=e,ge=r,t}function o(e,t){var r=e.next();if('"'==r||"'"==r)return t.tokenize=a(r),t.tokenize(e,t);if("."==r&&e.match(/^\d+(?:[eE][+\-]?\d+)?/))return i("number","number");if("."==r&&e.match(".."))return i("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(r))return i(r);if("="==r&&e.eat(">"))return i("=>","operator");if("0"==r&&e.eat(/x/i))return e.eatWhile(/[\da-f]/i),i("number","number");if(/\d/.test(r))return e.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/),i("number","number");if("/"==r)return e.eat("*")?(t.tokenize=s,s(e,t)):e.eat("/")?(e.skipToEnd(),i("comment","comment")):"operator"==t.lastType||"keyword c"==t.lastType||"sof"==t.lastType||/^[\[{}\(,;:]$/.test(t.lastType)?(n(e),e.match(/^\b(([gimyu])(?![gimyu]*\2))+\b/),i("regexp","string-2")):(e.eatWhile(Ce),i("operator","operator",e.current()));if("`"==r)return t.tokenize=l,l(e,t);if("#"==r)return e.skipToEnd(),i("error","error");if(Ce.test(r))return e.eatWhile(Ce),i("operator","operator",e.current());if(we.test(r)){e.eatWhile(we);var o=e.current(),c=_e.propertyIsEnumerable(o)&&_e[o];return c&&"."!=t.lastType?i(c.type,c.style,o):i("variable","variable",o)}}function a(e){return function(t,r){var n,a=!1;if(ye&&"@"==t.peek()&&t.match(Se))return r.tokenize=o,i("jsonld-keyword","meta");for(;null!=(n=t.next())&&(n!=e||a);)a=!a&&"\\"==n;return a||(r.tokenize=o),i("string","string")}}function s(e,t){for(var r,n=!1;r=e.next();){if("/"==r&&n){t.tokenize=o;break}n="*"==r}return i("comment","comment")}function l(e,t){for(var r,n=!1;null!=(r=e.next());){if(!n&&("`"==r||"$"==r&&e.eat("{"))){t.tokenize=o;break}n=!n&&"\\"==r}return i("quasi","string-2",e.current())}function c(e,t){t.fatArrowAt&&(t.fatArrowAt=null);var r=e.string.indexOf("=>",e.start);if(!(0>r)){for(var n=0,i=!1,o=r-1;o>=0;--o){var a=e.string.charAt(o),s=Te.indexOf(a);if(s>=0&&3>s){if(!n){++o;break}if(0==--n)break}else if(s>=3&&6>s)++n;else if(we.test(a))i=!0;else{if(/["'\/]/.test(a))return;if(i&&!n){++o;break}}}i&&!n&&(t.fatArrowAt=o)}}function u(e,t,r,n,i,o){this.indented=e,this.column=t,this.type=r,this.prev=i,this.info=o,null!=n&&(this.align=n)}function d(e,t){for(var r=e.localVars;r;r=r.next)if(r.name==t)return!0;for(var n=e.context;n;n=n.prev)for(var r=n.vars;r;r=r.next)if(r.name==t)return!0}function f(e,t,r,n,i){var o=e.cc;for(Le.state=e,Le.stream=i,Le.marked=null,Le.cc=o,Le.style=t,e.lexical.hasOwnProperty("align")||(e.lexical.align=!0);;){var a=o.length?o.pop():xe?w:k;if(a(r,n)){for(;o.length&&o[o.length-1].lex;)o.pop()();return Le.marked?Le.marked:"variable"==r&&d(e,n)?"variable-2":t}}}function m(){for(var e=arguments.length-1;e>=0;e--)Le.cc.push(arguments[e])}function h(){return m.apply(null,arguments),!0}function p(e){function t(t){for(var r=t;r;r=r.next)if(r.name==e)return!0;return!1}var n=Le.state;if(n.context){if(Le.marked="def",t(n.localVars))return;n.localVars={name:e,next:n.localVars}}else{if(t(n.globalVars))return;r.globalVars&&(n.globalVars={name:e,next:n.globalVars})}}function g(){Le.state.context={prev:Le.state.context,vars:Le.state.localVars},Le.state.localVars=Ee}function v(){Le.state.localVars=Le.state.context.vars,Le.state.context=Le.state.context.prev}function b(e,t){var r=function(){var r=Le.state,n=r.indented;if("stat"==r.lexical.type)n=r.lexical.indented;else for(var i=r.lexical;i&&")"==i.type&&i.align;i=i.prev)n=i.indented;r.lexical=new u(n,Le.stream.column(),e,null,r.lexical,t)};return r.lex=!0,r}function y(){var e=Le.state;e.lexical.prev&&(")"==e.lexical.type&&(e.indented=e.lexical.indented),e.lexical=e.lexical.prev)}function x(e){function t(r){return r==e?h():";"==e?m():h(t)}return t}function k(e,t){return"var"==e?h(b("vardef",t.length),B,x(";"),y):"keyword a"==e?h(b("form"),w,k,y):"keyword b"==e?h(b("form"),k,y):"{"==e?h(b("}"),F,y):";"==e?h():"if"==e?("else"==Le.state.lexical.info&&Le.state.cc[Le.state.cc.length-1]==y&&Le.state.cc.pop()(),h(b("form"),w,k,y,Z)):"function"==e?h(ee):"for"==e?h(b("form"),G,k,y):"variable"==e?h(b("stat"),I):"switch"==e?h(b("form"),w,b("}","switch"),x("{"),F,y,y):"case"==e?h(w,x(":")):"default"==e?h(x(":")):"catch"==e?h(b("form"),g,x("("),te,x(")"),k,y,v):"module"==e?h(b("form"),g,ae,v,y):"class"==e?h(b("form"),re,y):"export"==e?h(b("form"),se,y):"import"==e?h(b("form"),le,y):m(b("stat"),w,x(";"),y)}function w(e){return C(e,!1)}function _(e){return C(e,!0)}function C(e,t){if(Le.state.fatArrowAt==Le.stream.start){var r=t?z:j;if("("==e)return h(g,b(")"),O(U,")"),y,x("=>"),r,v);if("variable"==e)return m(g,U,x("=>"),r,v)}var n=t?L:M;return Me.hasOwnProperty(e)?h(n):"function"==e?h(ee,n):"keyword c"==e?h(t?T:S):"("==e?h(b(")"),S,me,x(")"),y,n):"operator"==e||"spread"==e?h(t?_:w):"["==e?h(b("]"),de,y,n):"{"==e?R(D,"}",null,n):"quasi"==e?m(E,n):h()}function S(e){return e.match(/[;\}\)\],]/)?m():m(w)}function T(e){return e.match(/[;\}\)\],]/)?m():m(_)}function M(e,t){return","==e?h(w):L(e,t,!1)}function L(e,t,r){var n=0==r?M:L,i=0==r?w:_;return"=>"==e?h(g,r?z:j,v):"operator"==e?/\+\+|--/.test(t)?h(n):"?"==t?h(w,x(":"),i):h(i):"quasi"==e?m(E,n):";"!=e?"("==e?R(_,")","call",n):"."==e?h(P,n):"["==e?h(b("]"),S,x("]"),y,n):void 0:void 0}function E(e,t){return"quasi"!=e?m():"${"!=t.slice(t.length-2)?h(E):h(w,q)}function q(e){return"}"==e?(Le.marked="string-2",Le.state.tokenize=l,h(E)):void 0}function j(e){return c(Le.stream,Le.state),m("{"==e?k:w)}function z(e){return c(Le.stream,Le.state),m("{"==e?k:_)}function I(e){return":"==e?h(y,k):m(M,x(";"),y)}function P(e){return"variable"==e?(Le.marked="property",h()):void 0}function D(e,t){return"variable"==e||"keyword"==Le.style?(Le.marked="property",h("get"==t||"set"==t?A:$)):"number"==e||"string"==e?(Le.marked=ye?"property":Le.style+" property",h($)):"jsonld-keyword"==e?h($):"["==e?h(w,x("]"),$):void 0}function A(e){return"variable"!=e?m($):(Le.marked="property",h(ee))}function $(e){return":"==e?h(_):"("==e?m(ee):void 0}function O(e,t){function r(n){if(","==n){var i=Le.state.lexical;return"call"==i.info&&(i.pos=(i.pos||0)+1),h(e,r)}return n==t?h():h(x(t))}return function(n){return n==t?h():m(e,r)}}function R(e,t,r){for(var n=3;n!?|~^]/,Se=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/,Te="([{}])",Me={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,"this":!0,"jsonld-keyword":!0},Le={state:null,column:null,marked:null,cc:null},Ee={name:"this",next:{name:"arguments"}};return y.lex=!0,{startState:function(e){var t={tokenize:o,lastType:"sof",cc:[],lexical:new u((e||0)-ve,0,"block",!1),localVars:r.localVars,context:r.localVars&&{vars:r.localVars},indented:0};return r.globalVars&&"object"==typeof r.globalVars&&(t.globalVars=r.globalVars),t},token:function(e,t){if(e.sol()&&(t.lexical.hasOwnProperty("align")||(t.lexical.align=!1),t.indented=e.indentation(),c(e,t)),t.tokenize!=s&&e.eatSpace())return null;var r=t.tokenize(e,t);return"comment"==pe?r:(t.lastType="operator"!=pe||"++"!=ge&&"--"!=ge?pe:"incdec",f(t,r,pe,ge,e))},indent:function(t,n){if(t.tokenize==s)return e.Pass;if(t.tokenize!=o)return 0;var i=n&&n.charAt(0),a=t.lexical;if(!/^\s*else\b/.test(n))for(var l=t.cc.length-1;l>=0;--l){var c=t.cc[l];if(c==y)a=a.prev;else if(c!=Z)break}"stat"==a.type&&"}"==i&&(a=a.prev),be&&")"==a.type&&"stat"==a.prev.type&&(a=a.prev);var u=a.type,d=i==u;return"vardef"==u?a.indented+("operator"==t.lastType||","==t.lastType?a.info+1:0):"form"==u&&"{"==i?a.indented:"form"==u?a.indented+ve:"stat"==u?a.indented+(he(t,n)?be||ve:0):"switch"!=a.info||d||0==r.doubleIndentSwitch?a.align?a.column+(d?0:1):a.indented+(d?0:ve):a.indented+(/^(?:case|default)\b/.test(n)?ve:2*ve)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:xe?null:"/*",blockCommentEnd:xe?null:"*/",lineComment:xe?null:"//",fold:"brace",helperType:xe?"json":"javascript",jsonldMode:ye,jsonMode:xe}}),e.registerHelper("wordChars","javascript",/[\w$]/),e.defineMIME("text/javascript","javascript"),e.defineMIME("text/ecmascript","javascript"),e.defineMIME("application/javascript","javascript"),e.defineMIME("application/x-javascript","javascript"),e.defineMIME("application/ecmascript","javascript"),e.defineMIME("application/json",{name:"javascript",json:!0}),e.defineMIME("application/x-json",{name:"javascript",json:!0}),e.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),e.defineMIME("text/typescript",{name:"javascript",typescript:!0}),e.defineMIME("application/typescript",{name:"javascript",typescript:!0})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror"),require("../xml/xml"),require("../javascript/javascript"),require("../css/css")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../xml/xml","../javascript/javascript","../css/css"],e):e(CodeMirror)}(function(e){"use strict";e.defineMode("htmlmixed",function(t,r){function n(e,t){var r=t.htmlState.tagName;r&&(r=r.toLowerCase());var n=s.token(e,t.htmlState);if("script"==r&&/\btag\b/.test(n)&&">"==e.current()){var i=e.string.slice(Math.max(0,e.pos-100),e.pos).match(/\btype\s*=\s*("[^"]+"|'[^']+'|\S+)[^<]*$/i);i=i?i[1]:"",i&&/[\"\']/.test(i.charAt(0))&&(i=i.slice(1,i.length-1));for(var u=0;u"==e.current()&&(t.token=a,t.localMode=l,t.localState=l.startState(s.indent(t.htmlState,"")));return n}function i(e,t,r){var n,i=e.current(),o=i.search(t);return o>-1?e.backUp(i.length-o):(n=i.match(/<\/?$/))&&(e.backUp(i.length),e.match(t,!1)||e.match(i)),r}function o(e,t){return e.match(/^<\/\s*script\s*>/i,!1)?(t.token=n,t.localState=t.localMode=null,null):i(e,/<\/\s*script\s*>/,t.localMode.token(e,t.localState))}function a(e,t){return e.match(/^<\/\s*style\s*>/i,!1)?(t.token=n,t.localState=t.localMode=null,null):i(e,/<\/\s*style\s*>/,l.token(e,t.localState))}var s=e.getMode(t,{name:"xml",htmlMode:!0,multilineTagIndentFactor:r.multilineTagIndentFactor,multilineTagIndentPastTag:r.multilineTagIndentPastTag}),l=e.getMode(t,"css"),c=[],u=r&&r.scriptTypes;if(c.push({matches:/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^$/i,mode:e.getMode(t,"javascript")}),u)for(var d=0;d]|\([^\s()<>]*\))+(?:\([^\s()<>]*\)|[^\s`*!()\[\]{};:'".,<>?«»“”‘’]))/i)&&"]("!=e.string.slice(e.start-2,e.start)?(t.combineTokens=!0,"link"):(e.next(),null)},blankLine:n},a={underscoresBreakWords:!1,taskLists:!0,fencedCodeBlocks:!0,strikethrough:!0};for(var s in r)a[s]=r[s];return a.name="markdown",e.defineMIME("gfmBase",a),e.overlayMode(e.getMode(t,"gfmBase"),o)},"markdown")}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";e.defineMode("http",function(){function e(e,t){return e.skipToEnd(),t.cur=a,"error"}function t(t,n){return t.match(/^HTTP\/\d\.\d/)?(n.cur=r,"keyword"):t.match(/^[A-Z]+/)&&/[ \t]/.test(t.peek())?(n.cur=i,"keyword"):e(t,n)}function r(t,r){var i=t.match(/^\d+/);if(!i)return e(t,r);r.cur=n;var o=Number(i[0]);return o>=100&&200>o?"positive informational":o>=200&&300>o?"positive success":o>=300&&400>o?"positive redirect":o>=400&&500>o?"negative client-error":o>=500&&600>o?"negative server-error":"error"}function n(e,t){return e.skipToEnd(),t.cur=a,null}function i(e,t){return e.eatWhile(/\S/),t.cur=o,"string-2"}function o(t,r){return t.match(/^HTTP\/\d\.\d$/)?(r.cur=a,"keyword"):e(t,r)}function a(e){return e.sol()&&!e.eat(/[ \t]/)?e.match(/^.*?:/)?"atom":(e.skipToEnd(),"error"):(e.skipToEnd(),"string")}function s(e){return e.skipToEnd(),null}return{token:function(e,t){var r=t.cur;return r!=a&&r!=s&&e.eatSpace()?null:r(e,t)},blankLine:function(e){e.cur=s},startState:function(){return{cur:t}}}}),e.defineMIME("message/http","http")}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";e.defineMode("go",function(e){function t(e,t){var i=e.next();if('"'==i||"'"==i||"`"==i)return t.tokenize=r(i),t.tokenize(e,t);if(/[\d\.]/.test(i))return"."==i?e.match(/^[0-9]+([eE][\-+]?[0-9]+)?/):"0"==i?e.match(/^[xX][0-9a-fA-F]+/)||e.match(/^0[0-7]+/):e.match(/^[0-9]*\.?[0-9]*([eE][\-+]?[0-9]+)?/),"number";if(/[\[\]{}\(\),;\:\.]/.test(i))return s=i,null;if("/"==i){if(e.eat("*"))return t.tokenize=n,n(e,t);if(e.eat("/"))return e.skipToEnd(),"comment"}if(d.test(i))return e.eatWhile(d),"operator";e.eatWhile(/[\w\$_\xa1-\uffff]/);var o=e.current();return c.propertyIsEnumerable(o)?(("case"==o||"default"==o)&&(s="case"),"keyword"):u.propertyIsEnumerable(o)?"atom":"variable"}function r(e){return function(r,n){for(var i,o=!1,a=!1;null!=(i=r.next());){if(i==e&&!o){a=!0;break}o=!o&&"\\"==i}return(a||!o&&"`"!=e)&&(n.tokenize=t),"string"}}function n(e,r){for(var n,i=!1;n=e.next();){if("/"==n&&i){r.tokenize=t;break}i="*"==n}return"comment"}function i(e,t,r,n,i){this.indented=e,this.column=t,this.type=r,this.align=n,this.prev=i}function o(e,t,r){return e.context=new i(e.indented,t,r,null,e.context)}function a(e){if(e.context.prev){var t=e.context.type;return(")"==t||"]"==t||"}"==t)&&(e.indented=e.context.indented),e.context=e.context.prev}}var s,l=e.indentUnit,c={"break":!0,"case":!0,chan:!0,"const":!0,"continue":!0,"default":!0,defer:!0,"else":!0,fallthrough:!0,"for":!0,func:!0,go:!0,"goto":!0,"if":!0,"import":!0,"interface":!0,map:!0,"package":!0,range:!0,"return":!0,select:!0,struct:!0,"switch":!0,type:!0,"var":!0,bool:!0,"byte":!0,complex64:!0,complex128:!0,float32:!0,float64:!0,int8:!0,int16:!0,int32:!0,int64:!0,string:!0,uint8:!0,uint16:!0,uint32:!0,uint64:!0,"int":!0,uint:!0,uintptr:!0},u={"true":!0,"false":!0,iota:!0,nil:!0,append:!0,cap:!0,close:!0,complex:!0,copy:!0,imag:!0,len:!0,make:!0,"new":!0,panic:!0,print:!0,println:!0,real:!0,recover:!0},d=/[+\-*&^%:=<>!|\/]/;return{startState:function(e){return{tokenize:null,context:new i((e||0)-l,0,"top",!1),indented:0,startOfLine:!0}},token:function(e,r){var n=r.context;if(e.sol()&&(null==n.align&&(n.align=!1),r.indented=e.indentation(),r.startOfLine=!0,"case"==n.type&&(n.type="}")),e.eatSpace())return null;s=null;var i=(r.tokenize||t)(e,r);return"comment"==i?i:(null==n.align&&(n.align=!0),"{"==s?o(r,e.column(),"}"):"["==s?o(r,e.column(),"]"):"("==s?o(r,e.column(),")"):"case"==s?n.type="case":"}"==s&&"}"==n.type?n=a(r):s==n.type&&a(r),r.startOfLine=!1,i)},indent:function(e,r){if(e.tokenize!=t&&null!=e.tokenize)return 0;var n=e.context,i=r&&r.charAt(0);if("case"==n.type&&/^(?:case|default)\b/.test(r))return e.context.type="}",n.indented;var o=i==n.type;return n.align?n.column+(o?0:1):n.indented+(o?0:l)},electricChars:"{}):",fold:"brace",blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:"//"}}),e.defineMIME("text/x-go","go")}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror"),require("../clike/clike")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../clike/clike"],e):e(CodeMirror)}(function(e){"use strict";function t(e){for(var t={},r=0;rr&&"coffee"==t.scope.type?"indent":r>n?"dedent":null}r>0&&s(e,t)}if(e.eatSpace())return null;var a=e.peek();if(e.match("####"))return e.skipToEnd(),"comment";if(e.match("###"))return t.tokenize=o,t.tokenize(e,t);if("#"===a)return e.skipToEnd(),"comment";if(e.match(/^-?[0-9\.]/,!1)){var l=!1;if(e.match(/^-?\d*\.\d+(e[\+\-]?\d+)?/i)&&(l=!0),e.match(/^-?\d+\.\d*/)&&(l=!0),e.match(/^-?\.\d+/)&&(l=!0),l)return"."==e.peek()&&e.backUp(1),"number";var p=!1;if(e.match(/^-?0x[0-9a-f]+/i)&&(p=!0),e.match(/^-?[1-9]\d*(e[\+\-]?\d+)?/)&&(p=!0),e.match(/^-?0(?![\dx])/i)&&(p=!0),p)return"number"}if(e.match(b))return t.tokenize=i(e.current(),!1,"string"),t.tokenize(e,t);if(e.match(y)){if("/"!=e.current()||e.match(/^.*\//,!1))return t.tokenize=i(e.current(),!0,"string-2"),t.tokenize(e,t);e.backUp(1)}return e.match(u)||e.match(h)?"operator":e.match(d)?"punctuation":e.match(k)?"atom":e.match(v)?"keyword":e.match(f)?"variable":e.match(m)?"property":(e.next(),c)}function i(e,r,i){return function(o,a){for(;!o.eol();)if(o.eatWhile(/[^'"\/\\]/),o.eat("\\")){if(o.next(),r&&o.eol())return i}else{if(o.match(e))return a.tokenize=n,i;o.eat(/['"\/]/)}return r&&(t.singleLineStringErrors?i=c:a.tokenize=n),i}}function o(e,t){for(;!e.eol();){if(e.eatWhile(/[^#]/),e.match("###")){t.tokenize=n;break}e.eatWhile("#")}return"comment"}function a(t,r,n){n=n||"coffee";for(var i=0,o=!1,a=null,s=r.scope;s;s=s.prev)if("coffee"===s.type||"}"==s.type){i=s.offset+e.indentUnit;break}"coffee"!==n?(o=null,a=t.column()+t.current().length):r.scope.align&&(r.scope.align=!1),r.scope={offset:i,type:n,prev:r.scope,align:o,alignOffset:a}}function s(e,t){if(t.scope.prev){if("coffee"===t.scope.type){for(var r=e.indentation(),n=!1,i=t.scope;i;i=i.prev)if(r===i.offset){n=!0;break}if(!n)return!0;for(;t.scope.prev&&t.scope.offset!==r;)t.scope=t.scope.prev;return!1}return t.scope=t.scope.prev,!1}}function l(e,t){var r=t.tokenize(e,t),n=e.current();if("."===n)return r=t.tokenize(e,t),n=e.current(),/^\.[\w$]+$/.test(n)?"variable":c;"return"===n&&(t.dedent=!0),("->"!==n&&"=>"!==n||t.lambda||e.peek())&&"indent"!==r||a(e,t);var i="[({".indexOf(n);if(-1!==i&&a(e,t,"])}".slice(i,i+1)),p.exec(n)&&a(e,t),"then"==n&&s(e,t),"dedent"===r&&s(e,t))return c;if(i="])}".indexOf(n),-1!==i){for(;"coffee"==t.scope.type&&t.scope.prev;)t.scope=t.scope.prev;t.scope.type==n&&(t.scope=t.scope.prev)}return t.dedent&&e.eol()&&("coffee"==t.scope.type&&t.scope.prev&&(t.scope=t.scope.prev),t.dedent=!1),r}var c="error",u=/^(?:->|=>|\+[+=]?|-[\-=]?|\*[\*=]?|\/[\/=]?|[=!]=|<[><]?=?|>>?=?|%=?|&=?|\|=?|\^=?|\~|!|\?|(or|and|\|\||&&|\?)=)/,d=/^(?:[()\[\]{},:`=;]|\.\.?\.?)/,f=/^[_A-Za-z$][_A-Za-z$0-9]*/,m=/^(@|this\.)[_A-Za-z$][_A-Za-z$0-9]*/,h=r(["and","or","not","is","isnt","in","instanceof","typeof"]),p=["for","while","loop","if","unless","else","switch","try","catch","finally","class"],g=["break","by","continue","debugger","delete","do","in","of","new","return","then","this","@","throw","when","until","extends"],v=r(p.concat(g));p=r(p);var b=/^('{3}|\"{3}|['\"])/,y=/^(\/{3}|\/)/,x=["Infinity","NaN","undefined","null","true","false","on","off","yes","no"],k=r(x),w={startState:function(e){return{tokenize:n,scope:{offset:e||0,type:"coffee",prev:null,align:!1},lastToken:null,lambda:!1,dedent:0}},token:function(e,t){var r=null===t.scope.align&&t.scope;r&&e.sol()&&(r.align=!1);var n=l(e,t);return r&&n&&"comment"!=n&&(r.align=!0),t.lastToken={style:n,content:e.current()},e.eol()&&e.lambda&&(t.lambda=!1),n},indent:function(e,t){if(e.tokenize!=n)return 0;var r=e.scope,i=t&&"])}".indexOf(t.charAt(0))>-1;if(i)for(;"coffee"==r.type&&r.prev;)r=r.prev;var o=i&&r.type===t.charAt(0);return r.align?r.alignOffset-(o?1:0):(o?r.prev:r).offset},lineComment:"#",fold:"indent"};return w}),e.defineMIME("text/x-coffeescript","coffeescript")}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";e.defineMode("nginx",function(e){function t(e){for(var t={},r=e.split(" "),n=0;n*\/]/.test(s)?r(null,"select-op"):/[;{}:\[\]]/.test(s)?r(null,s):(e.eatWhile(/[\w\\\-]/),r("variable","variable")):r(null,"compare"):void r(null,"compare")}function i(e,t){for(var i,o=!1;null!=(i=e.next());){if(o&&"/"==i){t.tokenize=n;break}o="*"==i}return r("comment","comment")}function o(e,t){for(var i,o=0;null!=(i=e.next());){if(o>=2&&">"==i){t.tokenize=n;break}o="-"==i?o+1:0}return r("comment","comment")}function a(e){return function(t,i){for(var o,a=!1;null!=(o=t.next())&&(o!=e||a);)a=!a&&"\\"==o;return a||(i.tokenize=n),r("string","string")}}var s,l=t("break return rewrite set accept_mutex accept_mutex_delay access_log add_after_body add_before_body add_header addition_types aio alias allow ancient_browser ancient_browser_value auth_basic auth_basic_user_file auth_http auth_http_header auth_http_timeout autoindex autoindex_exact_size autoindex_localtime charset charset_types client_body_buffer_size client_body_in_file_only client_body_in_single_buffer client_body_temp_path client_body_timeout client_header_buffer_size client_header_timeout client_max_body_size connection_pool_size create_full_put_path daemon dav_access dav_methods debug_connection debug_points default_type degradation degrade deny devpoll_changes devpoll_events directio directio_alignment empty_gif env epoll_events error_log eventport_events expires fastcgi_bind fastcgi_buffer_size fastcgi_buffers fastcgi_busy_buffers_size fastcgi_cache fastcgi_cache_key fastcgi_cache_methods fastcgi_cache_min_uses fastcgi_cache_path fastcgi_cache_use_stale fastcgi_cache_valid fastcgi_catch_stderr fastcgi_connect_timeout fastcgi_hide_header fastcgi_ignore_client_abort fastcgi_ignore_headers fastcgi_index fastcgi_intercept_errors fastcgi_max_temp_file_size fastcgi_next_upstream fastcgi_param fastcgi_pass_header fastcgi_pass_request_body fastcgi_pass_request_headers fastcgi_read_timeout fastcgi_send_lowat fastcgi_send_timeout fastcgi_split_path_info fastcgi_store fastcgi_store_access fastcgi_temp_file_write_size fastcgi_temp_path fastcgi_upstream_fail_timeout fastcgi_upstream_max_fails flv geoip_city geoip_country google_perftools_profiles gzip gzip_buffers gzip_comp_level gzip_disable gzip_hash gzip_http_version gzip_min_length gzip_no_buffer gzip_proxied gzip_static gzip_types gzip_vary gzip_window if_modified_since ignore_invalid_headers image_filter image_filter_buffer image_filter_jpeg_quality image_filter_transparency imap_auth imap_capabilities imap_client_buffer index ip_hash keepalive_requests keepalive_timeout kqueue_changes kqueue_events large_client_header_buffers limit_conn limit_conn_log_level limit_rate limit_rate_after limit_req limit_req_log_level limit_req_zone limit_zone lingering_time lingering_timeout lock_file log_format log_not_found log_subrequest map_hash_bucket_size map_hash_max_size master_process memcached_bind memcached_buffer_size memcached_connect_timeout memcached_next_upstream memcached_read_timeout memcached_send_timeout memcached_upstream_fail_timeout memcached_upstream_max_fails merge_slashes min_delete_depth modern_browser modern_browser_value msie_padding msie_refresh multi_accept open_file_cache open_file_cache_errors open_file_cache_events open_file_cache_min_uses open_file_cache_valid open_log_file_cache output_buffers override_charset perl perl_modules perl_require perl_set pid pop3_auth pop3_capabilities port_in_redirect postpone_gzipping postpone_output protocol proxy proxy_bind proxy_buffer proxy_buffer_size proxy_buffering proxy_buffers proxy_busy_buffers_size proxy_cache proxy_cache_key proxy_cache_methods proxy_cache_min_uses proxy_cache_path proxy_cache_use_stale proxy_cache_valid proxy_connect_timeout proxy_headers_hash_bucket_size proxy_headers_hash_max_size proxy_hide_header proxy_ignore_client_abort proxy_ignore_headers proxy_intercept_errors proxy_max_temp_file_size proxy_method proxy_next_upstream proxy_pass_error_message proxy_pass_header proxy_pass_request_body proxy_pass_request_headers proxy_read_timeout proxy_redirect proxy_send_lowat proxy_send_timeout proxy_set_body proxy_set_header proxy_ssl_session_reuse proxy_store proxy_store_access proxy_temp_file_write_size proxy_temp_path proxy_timeout proxy_upstream_fail_timeout proxy_upstream_max_fails random_index read_ahead real_ip_header recursive_error_pages request_pool_size reset_timedout_connection resolver resolver_timeout rewrite_log rtsig_overflow_events rtsig_overflow_test rtsig_overflow_threshold rtsig_signo satisfy secure_link_secret send_lowat send_timeout sendfile sendfile_max_chunk server_name_in_redirect server_names_hash_bucket_size server_names_hash_max_size server_tokens set_real_ip_from smtp_auth smtp_capabilities smtp_client_buffer smtp_greeting_delay so_keepalive source_charset ssi ssi_ignore_recycled_buffers ssi_min_file_chunk ssi_silent_errors ssi_types ssi_value_length ssl ssl_certificate ssl_certificate_key ssl_ciphers ssl_client_certificate ssl_crl ssl_dhparam ssl_engine ssl_prefer_server_ciphers ssl_protocols ssl_session_cache ssl_session_timeout ssl_verify_client ssl_verify_depth starttls stub_status sub_filter sub_filter_once sub_filter_types tcp_nodelay tcp_nopush thread_stack_size timeout timer_resolution types_hash_bucket_size types_hash_max_size underscores_in_headers uninitialized_variable_warn use user userid userid_domain userid_expires userid_mark userid_name userid_p3p userid_path userid_service valid_referers variables_hash_bucket_size variables_hash_max_size worker_connections worker_cpu_affinity worker_priority worker_processes worker_rlimit_core worker_rlimit_nofile worker_rlimit_sigpending worker_threads working_directory xclient xml_entities xslt_stylesheet xslt_typesdrew@li229-23"),c=t("http mail events server types location upstream charset_map limit_except if geo map"),u=t("include root server server_name listen internal proxy_pass memcached_pass fastcgi_pass try_files"),d=e.indentUnit; - -return{startState:function(e){return{tokenize:n,baseIndent:e||0,stack:[]}},token:function(e,t){if(e.eatSpace())return null;s=null;var r=t.tokenize(e,t),n=t.stack[t.stack.length-1];return"hash"==s&&"rule"==n?r="atom":"variable"==r&&("rule"==n?r="number":n&&"@media{"!=n||(r="tag")),"rule"==n&&/^[\{\};]$/.test(s)&&t.stack.pop(),"{"==s?"@media"==n?t.stack[t.stack.length-1]="@media{":t.stack.push("{"):"}"==s?t.stack.pop():"@media"==s?t.stack.push("@media"):"{"==n&&"comment"!=s&&t.stack.push("rule"),r},indent:function(e,t){var r=e.stack.length;return/^\}/.test(t)&&(r-="rule"==e.stack[e.stack.length-1]?2:1),e.baseIndent+r*d},electricChars:"}"}}),e.defineMIME("text/nginx","text/x-nginx-conf")}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(e){return new RegExp("^(("+e.join(")|(")+"))\\b")}function r(e){return e.scopes[e.scopes.length-1]}var n=t(["and","or","not","is"]),i=["as","assert","break","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","lambda","pass","raise","return","try","while","with","yield","in"],o=["abs","all","any","bin","bool","bytearray","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip","__import__","NotImplemented","Ellipsis","__debug__"],a={builtins:["apply","basestring","buffer","cmp","coerce","execfile","file","intern","long","raw_input","reduce","reload","unichr","unicode","xrange","False","True","None"],keywords:["exec","print"]},s={builtins:["ascii","bytes","exec","print"],keywords:["nonlocal","False","True","None"]};e.registerHelper("hintWords","python",i.concat(o)),e.defineMode("python",function(l,c){function u(e,t){if(e.sol()&&"py"==r(t).type){var n=r(t).offset;if(e.eatSpace()){var i=e.indentation();return i>n?m(e,t,"py"):n>i&&h(e,t)&&(t.errorToken=!0),null}var o=d(e,t);return n>0&&h(e,t)&&(o+=" "+g),o}return d(e,t)}function d(e,t){if(e.eatSpace())return null;var r=e.peek();if("#"==r)return e.skipToEnd(),"comment";if(e.match(/^[0-9\.]/,!1)){var i=!1;if(e.match(/^\d*\.\d+(e[\+\-]?\d+)?/i)&&(i=!0),e.match(/^\d+\.\d*/)&&(i=!0),e.match(/^\.\d+/)&&(i=!0),i)return e.eat(/J/i),"number";var o=!1;if(e.match(/^0x[0-9a-f]+/i)&&(o=!0),e.match(/^0b[01]+/i)&&(o=!0),e.match(/^0o[0-7]+/i)&&(o=!0),e.match(/^[1-9]\d*(e[\+\-]?\d+)?/)&&(e.eat(/J/i),o=!0),e.match(/^0(?![\dx])/i)&&(o=!0),o)return e.eat(/L/i),"number"}return e.match(T)?(t.tokenize=f(e.current()),t.tokenize(e,t)):e.match(x)||e.match(y)?null:e.match(b)||e.match(k)||e.match(n)?"operator":e.match(v)?null:e.match(M)?"keyword":e.match(L)?"builtin":e.match(/^(self|cls)\b/)?"variable-2":e.match(w)?"def"==t.lastToken||"class"==t.lastToken?"def":"variable":(e.next(),g)}function f(e){function t(t,i){for(;!t.eol();)if(t.eatWhile(/[^'"\\]/),t.eat("\\")){if(t.next(),r&&t.eol())return n}else{if(t.match(e))return i.tokenize=u,n;t.eat(/['"]/)}if(r){if(c.singleLineStringErrors)return g;i.tokenize=u}return n}for(;"rub".indexOf(e.charAt(0).toLowerCase())>=0;)e=e.substr(1);var r=1==e.length,n="string";return t.isString=!0,t}function m(e,t,n){var i=0,o=null;if("py"==n)for(;"py"!=r(t).type;)t.scopes.pop();i=r(t).offset+("py"==n?l.indentUnit:_),"py"==n||e.match(/^(\s|#.*)*$/,!1)||(o=e.column()+1),t.scopes.push({offset:i,type:n,align:o})}function h(e,t){for(var n=e.indentation();r(t).offset>n;){if("py"!=r(t).type)return!0;t.scopes.pop()}return r(t).offset!=n}function p(e,t){var n=t.tokenize(e,t),i=e.current();if("."==i)return n=e.match(w,!1)?null:g,null==n&&"meta"==t.lastStyle&&(n="meta"),n;if("@"==i)return c.version&&3==parseInt(c.version,10)?e.match(w,!1)?"meta":"operator":e.match(w,!1)?"meta":g;"variable"!=n&&"builtin"!=n||"meta"!=t.lastStyle||(n="meta"),("pass"==i||"return"==i)&&(t.dedent+=1),"lambda"==i&&(t.lambda=!0),":"!=i||t.lambda||"py"!=r(t).type||m(e,t,"py");var o=1==i.length?"[({".indexOf(i):-1;if(-1!=o&&m(e,t,"])}".slice(o,o+1)),o="])}".indexOf(i),-1!=o){if(r(t).type!=i)return g;t.scopes.pop()}return t.dedent>0&&e.eol()&&"py"==r(t).type&&(t.scopes.length>1&&t.scopes.pop(),t.dedent-=1),n}var g="error",v=c.singleDelimiters||new RegExp("^[\\(\\)\\[\\]\\{\\}@,:`=;\\.]"),b=c.doubleOperators||new RegExp("^((==)|(!=)|(<=)|(>=)|(<>)|(<<)|(>>)|(//)|(\\*\\*))"),y=c.doubleDelimiters||new RegExp("^((\\+=)|(\\-=)|(\\*=)|(%=)|(/=)|(&=)|(\\|=)|(\\^=))"),x=c.tripleDelimiters||new RegExp("^((//=)|(>>=)|(<<=)|(\\*\\*=))");if(c.version&&3==parseInt(c.version,10))var k=c.singleOperators||new RegExp("^[\\+\\-\\*/%&|\\^~<>!@]"),w=c.identifiers||new RegExp("^[_A-Za-z¡-￿][_A-Za-z0-9¡-￿]*");else var k=c.singleOperators||new RegExp("^[\\+\\-\\*/%&|\\^~<>!]"),w=c.identifiers||new RegExp("^[_A-Za-z][_A-Za-z0-9]*");var _=c.hangingIndent||l.indentUnit,C=i,S=o;if(void 0!=c.extra_keywords&&(C=C.concat(c.extra_keywords)),void 0!=c.extra_builtins&&(S=S.concat(c.extra_builtins)),c.version&&3==parseInt(c.version,10)){C=C.concat(s.keywords),S=S.concat(s.builtins);var T=new RegExp("^(([rb]|(br))?('{3}|\"{3}|['\"]))","i")}else{C=C.concat(a.keywords),S=S.concat(a.builtins);var T=new RegExp("^(([rub]|(ur)|(br))?('{3}|\"{3}|['\"]))","i")}var M=t(C),L=t(S),E={startState:function(e){return{tokenize:u,scopes:[{offset:e||0,type:"py",align:null}],lastStyle:null,lastToken:null,lambda:!1,dedent:0}},token:function(e,t){var r=t.errorToken;r&&(t.errorToken=!1);var n=p(e,t);t.lastStyle=n;var i=e.current();return i&&n&&(t.lastToken=i),e.eol()&&t.lambda&&(t.lambda=!1),r?n+" "+g:n},indent:function(t,n){if(t.tokenize!=u)return t.tokenize.isString?e.Pass:0;var i=r(t),o=n&&n.charAt(0)==i.type;return null!=i.align?i.align-(o?1:0):o&&t.scopes.length>1?t.scopes[t.scopes.length-2].offset:i.offset},lineComment:"#",fold:"indent"};return E}),e.defineMIME("text/x-python","python");var l=function(e){return e.split(" ")};e.defineMIME("text/x-cython",{name:"python",extra_keywords:l("by cdef cimport cpdef ctypedef enum exceptextern gil include nogil property publicreadonly struct union DEF IF ELIF ELSE")})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(e,t){return e.string.charAt(e.pos+(t||0))}function r(e,t){if(t){var r=e.pos-t;return e.string.substr(r>=0?r:0,t)}return e.string.substr(0,e.pos-1)}function n(e,t){var r=e.string.length,n=r-e.pos+1;return e.string.substr(e.pos,t&&r>t?t:n)}function i(e,t){var r,n=e.pos+t;0>=n?e.pos=0:n>=(r=e.string.length-1)?e.pos=r:e.pos=n}e.defineMode("perl",function(){function e(e,t,r,n,i){return t.chain=null,t.style=null,t.tail=null,t.tokenize=function(e,t){for(var o,s=!1,l=0;o=e.next();){if(o===r[l]&&!s)return void 0!==r[++l]?(t.chain=r[l],t.style=n,t.tail=i):i&&e.eatWhile(i),t.tokenize=a,n;s=!s&&"\\"==o}return n},t.tokenize(e,t)}function o(e,t,r){return t.tokenize=function(e,t){return e.string==r&&(t.tokenize=a),e.skipToEnd(),"string"},t.tokenize(e,t)}function a(a,u){if(a.eatSpace())return null;if(u.chain)return e(a,u,u.chain,u.style,u.tail);if(a.match(/^\-?[\d\.]/,!1)&&a.match(/^(\-?(\d*\.\d+(e[+-]?\d+)?|\d+\.\d*)|0x[\da-fA-F]+|0b[01]+|\d+(e[+-]?\d+)?)/))return"number";if(a.match(/^<<(?=\w)/))return a.eatWhile(/\w/),o(a,u,a.current().substr(2));if(a.sol()&&a.match(/^\=item(?!\w)/))return o(a,u,"=cut");var d=a.next();if('"'==d||"'"==d){if(r(a,3)=="<<"+d){var f=a.pos;a.eatWhile(/\w/);var m=a.current().substr(1);if(m&&a.eat(d))return o(a,u,m);a.pos=f}return e(a,u,[d],"string")}if("q"==d){var h=t(a,-2);if(!h||!/\w/.test(h))if(h=t(a,0),"x"==h){if(h=t(a,1),"("==h)return i(a,2),e(a,u,[")"],l,c);if("["==h)return i(a,2),e(a,u,["]"],l,c);if("{"==h)return i(a,2),e(a,u,["}"],l,c);if("<"==h)return i(a,2),e(a,u,[">"],l,c);if(/[\^'"!~\/]/.test(h))return i(a,1),e(a,u,[a.eat(h)],l,c)}else if("q"==h){if(h=t(a,1),"("==h)return i(a,2),e(a,u,[")"],"string");if("["==h)return i(a,2),e(a,u,["]"],"string");if("{"==h)return i(a,2),e(a,u,["}"],"string");if("<"==h)return i(a,2),e(a,u,[">"],"string");if(/[\^'"!~\/]/.test(h))return i(a,1),e(a,u,[a.eat(h)],"string")}else if("w"==h){if(h=t(a,1),"("==h)return i(a,2),e(a,u,[")"],"bracket");if("["==h)return i(a,2),e(a,u,["]"],"bracket");if("{"==h)return i(a,2),e(a,u,["}"],"bracket");if("<"==h)return i(a,2),e(a,u,[">"],"bracket");if(/[\^'"!~\/]/.test(h))return i(a,1),e(a,u,[a.eat(h)],"bracket")}else if("r"==h){if(h=t(a,1),"("==h)return i(a,2),e(a,u,[")"],l,c);if("["==h)return i(a,2),e(a,u,["]"],l,c);if("{"==h)return i(a,2),e(a,u,["}"],l,c);if("<"==h)return i(a,2),e(a,u,[">"],l,c);if(/[\^'"!~\/]/.test(h))return i(a,1),e(a,u,[a.eat(h)],l,c)}else if(/[\^'"!~\/(\[{<]/.test(h)){if("("==h)return i(a,1),e(a,u,[")"],"string");if("["==h)return i(a,1),e(a,u,["]"],"string");if("{"==h)return i(a,1),e(a,u,["}"],"string");if("<"==h)return i(a,1),e(a,u,[">"],"string");if(/[\^'"!~\/]/.test(h))return e(a,u,[a.eat(h)],"string")}}if("m"==d){var h=t(a,-2);if((!h||!/\w/.test(h))&&(h=a.eat(/[(\[{<\^'"!~\/]/))){if(/[\^'"!~\/]/.test(h))return e(a,u,[h],l,c);if("("==h)return e(a,u,[")"],l,c);if("["==h)return e(a,u,["]"],l,c);if("{"==h)return e(a,u,["}"],l,c);if("<"==h)return e(a,u,[">"],l,c)}}if("s"==d){var h=/[\/>\]})\w]/.test(t(a,-2));if(!h&&(h=a.eat(/[(\[{<\^'"!~\/]/)))return"["==h?e(a,u,["]","]"],l,c):"{"==h?e(a,u,["}","}"],l,c):"<"==h?e(a,u,[">",">"],l,c):"("==h?e(a,u,[")",")"],l,c):e(a,u,[h,h],l,c)}if("y"==d){var h=/[\/>\]})\w]/.test(t(a,-2));if(!h&&(h=a.eat(/[(\[{<\^'"!~\/]/)))return"["==h?e(a,u,["]","]"],l,c):"{"==h?e(a,u,["}","}"],l,c):"<"==h?e(a,u,[">",">"],l,c):"("==h?e(a,u,[")",")"],l,c):e(a,u,[h,h],l,c)}if("t"==d){var h=/[\/>\]})\w]/.test(t(a,-2));if(!h&&(h=a.eat("r"),h&&(h=a.eat(/[(\[{<\^'"!~\/]/))))return"["==h?e(a,u,["]","]"],l,c):"{"==h?e(a,u,["}","}"],l,c):"<"==h?e(a,u,[">",">"],l,c):"("==h?e(a,u,[")",")"],l,c):e(a,u,[h,h],l,c)}if("`"==d)return e(a,u,[d],"variable-2");if("/"==d)return/~\s*$/.test(r(a))?e(a,u,[d],l,c):"operator";if("$"==d){var f=a.pos;if(a.eatWhile(/\d/)||a.eat("{")&&a.eatWhile(/\d/)&&a.eat("}"))return"variable-2";a.pos=f}if(/[$@%]/.test(d)){var f=a.pos;if(a.eat("^")&&a.eat(/[A-Z]/)||!/[@$%&]/.test(t(a,-2))&&a.eat(/[=|\\\-#?@;:&`~\^!\[\]*'"$+.,\/<>()]/)){var h=a.current();if(s[h])return"variable-2"}a.pos=f}if(/[$@%&]/.test(d)&&(a.eatWhile(/[\w$\[\]]/)||a.eat("{")&&a.eatWhile(/[\w$\[\]]/)&&a.eat("}"))){var h=a.current();return s[h]?"variable-2":"variable"}if("#"==d&&"$"!=t(a,-2))return a.skipToEnd(),"comment";if(/[:+\-\^*$&%@=<>!?|\/~\.]/.test(d)){var f=a.pos;if(a.eatWhile(/[:+\-\^*$&%@=<>!?|\/~\.]/),s[a.current()])return"operator";a.pos=f}if("_"==d&&1==a.pos){if("_END__"==n(a,6))return e(a,u,["\x00"],"comment");if("_DATA__"==n(a,7))return e(a,u,["\x00"],"variable-2");if("_C__"==n(a,7))return e(a,u,["\x00"],"string")}if(/\w/.test(d)){var f=a.pos;if("{"==t(a,-2)&&("}"==t(a,0)||a.eatWhile(/\w/)&&"}"==t(a,0)))return"string";a.pos=f}if(/[A-Z]/.test(d)){var p=t(a,-2),f=a.pos;if(a.eatWhile(/[A-Z_]/),!/[\da-z]/.test(t(a,0))){var h=s[a.current()];return h?(h[1]&&(h=h[0]),":"!=p?1==h?"keyword":2==h?"def":3==h?"atom":4==h?"operator":5==h?"variable-2":"meta":"meta"):"meta"}a.pos=f}if(/[a-zA-Z_]/.test(d)){var p=t(a,-2);a.eatWhile(/\w/);var h=s[a.current()];return h?(h[1]&&(h=h[0]),":"!=p?1==h?"keyword":2==h?"def":3==h?"atom":4==h?"operator":5==h?"variable-2":"meta":"meta"):"meta"}return null}var s={"->":4,"++":4,"--":4,"**":4,"=~":4,"!~":4,"*":4,"/":4,"%":4,x:4,"+":4,"-":4,".":4,"<<":4,">>":4,"<":4,">":4,"<=":4,">=":4,lt:4,gt:4,le:4,ge:4,"==":4,"!=":4,"<=>":4,eq:4,ne:4,cmp:4,"~~":4,"&":4,"|":4,"^":4,"&&":4,"||":4,"//":4,"..":4,"...":4,"?":4,":":4,"=":4,"+=":4,"-=":4,"*=":4,",":4,"=>":4,"::":4,not:4,and:4,or:4,xor:4,BEGIN:[5,1],END:[5,1],PRINT:[5,1],PRINTF:[5,1],GETC:[5,1],READ:[5,1],READLINE:[5,1],DESTROY:[5,1],TIE:[5,1],TIEHANDLE:[5,1],UNTIE:[5,1],STDIN:5,STDIN_TOP:5,STDOUT:5,STDOUT_TOP:5,STDERR:5,STDERR_TOP:5,$ARG:5,$_:5,"@ARG":5,"@_":5,$LIST_SEPARATOR:5,'$"':5,$PROCESS_ID:5,$PID:5,$$:5,$REAL_GROUP_ID:5,$GID:5,"$(":5,$EFFECTIVE_GROUP_ID:5,$EGID:5,"$)":5,$PROGRAM_NAME:5,$0:5,$SUBSCRIPT_SEPARATOR:5,$SUBSEP:5,"$;":5,$REAL_USER_ID:5,$UID:5,"$<":5,$EFFECTIVE_USER_ID:5,$EUID:5,"$>":5,$a:5,$b:5,$COMPILING:5,"$^C":5,$DEBUGGING:5,"$^D":5,"${^ENCODING}":5,$ENV:5,"%ENV":5,$SYSTEM_FD_MAX:5,"$^F":5,"@F":5,"${^GLOBAL_PHASE}":5,"$^H":5,"%^H":5,"@INC":5,"%INC":5,$INPLACE_EDIT:5,"$^I":5,"$^M":5,$OSNAME:5,"$^O":5,"${^OPEN}":5,$PERLDB:5,"$^P":5,$SIG:5,"%SIG":5,$BASETIME:5,"$^T":5,"${^TAINT}":5,"${^UNICODE}":5,"${^UTF8CACHE}":5,"${^UTF8LOCALE}":5,$PERL_VERSION:5,"$^V":5,"${^WIN32_SLOPPY_STAT}":5,$EXECUTABLE_NAME:5,"$^X":5,$1:5,$MATCH:5,"$&":5,"${^MATCH}":5,$PREMATCH:5,"$`":5,"${^PREMATCH}":5,$POSTMATCH:5,"$'":5,"${^POSTMATCH}":5,$LAST_PAREN_MATCH:5,"$+":5,$LAST_SUBMATCH_RESULT:5,"$^N":5,"@LAST_MATCH_END":5,"@+":5,"%LAST_PAREN_MATCH":5,"%+":5,"@LAST_MATCH_START":5,"@-":5,"%LAST_MATCH_START":5,"%-":5,$LAST_REGEXP_CODE_RESULT:5,"$^R":5,"${^RE_DEBUG_FLAGS}":5,"${^RE_TRIE_MAXBUF}":5,$ARGV:5,"@ARGV":5,ARGV:5,ARGVOUT:5,$OUTPUT_FIELD_SEPARATOR:5,$OFS:5,"$,":5,$INPUT_LINE_NUMBER:5,$NR:5,"$.":5,$INPUT_RECORD_SEPARATOR:5,$RS:5,"$/":5,$OUTPUT_RECORD_SEPARATOR:5,$ORS:5,"$\\":5,$OUTPUT_AUTOFLUSH:5,"$|":5,$ACCUMULATOR:5,"$^A":5,$FORMAT_FORMFEED:5,"$^L":5,$FORMAT_PAGE_NUMBER:5,"$%":5,$FORMAT_LINES_LEFT:5,"$-":5,$FORMAT_LINE_BREAK_CHARACTERS:5,"$:":5,$FORMAT_LINES_PER_PAGE:5,"$=":5,$FORMAT_TOP_NAME:5,"$^":5,$FORMAT_NAME:5,"$~":5,"${^CHILD_ERROR_NATIVE}":5,$EXTENDED_OS_ERROR:5,"$^E":5,$EXCEPTIONS_BEING_CAUGHT:5,"$^S":5,$WARNING:5,"$^W":5,"${^WARNING_BITS}":5,$OS_ERROR:5,$ERRNO:5,"$!":5,"%OS_ERROR":5,"%ERRNO":5,"%!":5,$CHILD_ERROR:5,"$?":5,$EVAL_ERROR:5,"$@":5,$OFMT:5,"$#":5,"$*":5,$ARRAY_BASE:5,"$[":5,$OLD_PERL_VERSION:5,"$]":5,"if":[1,1],elsif:[1,1],"else":[1,1],"while":[1,1],unless:[1,1],"for":[1,1],foreach:[1,1],abs:1,accept:1,alarm:1,atan2:1,bind:1,binmode:1,bless:1,bootstrap:1,"break":1,caller:1,chdir:1,chmod:1,chomp:1,chop:1,chown:1,chr:1,chroot:1,close:1,closedir:1,connect:1,"continue":[1,1],cos:1,crypt:1,dbmclose:1,dbmopen:1,"default":1,defined:1,"delete":1,die:1,"do":1,dump:1,each:1,endgrent:1,endhostent:1,endnetent:1,endprotoent:1,endpwent:1,endservent:1,eof:1,eval:1,exec:1,exists:1,exit:1,exp:1,fcntl:1,fileno:1,flock:1,fork:1,format:1,formline:1,getc:1,getgrent:1,getgrgid:1,getgrnam:1,gethostbyaddr:1,gethostbyname:1,gethostent:1,getlogin:1,getnetbyaddr:1,getnetbyname:1,getnetent:1,getpeername:1,getpgrp:1,getppid:1,getpriority:1,getprotobyname:1,getprotobynumber:1,getprotoent:1,getpwent:1,getpwnam:1,getpwuid:1,getservbyname:1,getservbyport:1,getservent:1,getsockname:1,getsockopt:1,given:1,glob:1,gmtime:1,"goto":1,grep:1,hex:1,"import":1,index:1,"int":1,ioctl:1,join:1,keys:1,kill:1,last:1,lc:1,lcfirst:1,length:1,link:1,listen:1,local:2,localtime:1,lock:1,log:1,lstat:1,m:null,map:1,mkdir:1,msgctl:1,msgget:1,msgrcv:1,msgsnd:1,my:2,"new":1,next:1,no:1,oct:1,open:1,opendir:1,ord:1,our:2,pack:1,"package":1,pipe:1,pop:1,pos:1,print:1,printf:1,prototype:1,push:1,q:null,qq:null,qr:null,quotemeta:null,qw:null,qx:null,rand:1,read:1,readdir:1,readline:1,readlink:1,readpipe:1,recv:1,redo:1,ref:1,rename:1,require:1,reset:1,"return":1,reverse:1,rewinddir:1,rindex:1,rmdir:1,s:null,say:1,scalar:1,seek:1,seekdir:1,select:1,semctl:1,semget:1,semop:1,send:1,setgrent:1,sethostent:1,setnetent:1,setpgrp:1,setpriority:1,setprotoent:1,setpwent:1,setservent:1,setsockopt:1,shift:1,shmctl:1,shmget:1,shmread:1,shmwrite:1,shutdown:1,sin:1,sleep:1,socket:1,socketpair:1,sort:1,splice:1,split:1,sprintf:1,sqrt:1,srand:1,stat:1,state:1,study:1,sub:1,substr:1,symlink:1,syscall:1,sysopen:1,sysread:1,sysseek:1,system:1,syswrite:1,tell:1,telldir:1,tie:1,tied:1,time:1,times:1,tr:null,truncate:1,uc:1,ucfirst:1,umask:1,undef:1,unlink:1,unpack:1,unshift:1,untie:1,use:1,utime:1,values:1,vec:1,wait:1,waitpid:1,wantarray:1,warn:1,when:1,write:1,y:null},l="string-2",c=/[goseximacplud]/;return{startState:function(){return{tokenize:a,chain:null,style:null,tail:null}},token:function(e,t){return(t.tokenize||a)(e,t)},lineComment:"#"}}),e.registerHelper("wordChars","perl",/[\w$]/),e.defineMIME("text/x-perl","perl")}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";e.defineMode("lua",function(e,t){function r(e){return new RegExp("^(?:"+e.join("|")+")","i")}function n(e){return new RegExp("^(?:"+e.join("|")+")$","i")}function i(e){for(var t=0;e.eat("=");)++t;return e.eat("["),t}function o(e,t){var r=e.next();return"-"==r&&e.eat("-")?e.eat("[")&&e.eat("[")?(t.cur=a(i(e),"comment"))(e,t):(e.skipToEnd(),"comment"):'"'==r||"'"==r?(t.cur=s(r))(e,t):"["==r&&/[\[=]/.test(e.peek())?(t.cur=a(i(e),"string"))(e,t):/\d/.test(r)?(e.eatWhile(/[\w.%]/),"number"):/[\w_]/.test(r)?(e.eatWhile(/[\w\\\-_.]/),"variable"):null}function a(e,t){return function(r,n){for(var i,a=null;null!=(i=r.next());)if(null==a)"]"==i&&(a=0);else if("="==i)++a;else{if("]"==i&&a==e){n.cur=o;break}a=null}return t}}function s(e){return function(t,r){for(var n,i=!1;null!=(n=t.next())&&(n!=e||i);)i=!i&&"\\"==n;return i||(r.cur=o),"string"}}var l=e.indentUnit,c=n(t.specials||[]),u=n(["_G","_VERSION","assert","collectgarbage","dofile","error","getfenv","getmetatable","ipairs","load","loadfile","loadstring","module","next","pairs","pcall","print","rawequal","rawget","rawset","require","select","setfenv","setmetatable","tonumber","tostring","type","unpack","xpcall","coroutine.create","coroutine.resume","coroutine.running","coroutine.status","coroutine.wrap","coroutine.yield","debug.debug","debug.getfenv","debug.gethook","debug.getinfo","debug.getlocal","debug.getmetatable","debug.getregistry","debug.getupvalue","debug.setfenv","debug.sethook","debug.setlocal","debug.setmetatable","debug.setupvalue","debug.traceback","close","flush","lines","read","seek","setvbuf","write","io.close","io.flush","io.input","io.lines","io.open","io.output","io.popen","io.read","io.stderr","io.stdin","io.stdout","io.tmpfile","io.type","io.write","math.abs","math.acos","math.asin","math.atan","math.atan2","math.ceil","math.cos","math.cosh","math.deg","math.exp","math.floor","math.fmod","math.frexp","math.huge","math.ldexp","math.log","math.log10","math.max","math.min","math.modf","math.pi","math.pow","math.rad","math.random","math.randomseed","math.sin","math.sinh","math.sqrt","math.tan","math.tanh","os.clock","os.date","os.difftime","os.execute","os.exit","os.getenv","os.remove","os.rename","os.setlocale","os.time","os.tmpname","package.cpath","package.loaded","package.loaders","package.loadlib","package.path","package.preload","package.seeall","string.byte","string.char","string.dump","string.find","string.format","string.gmatch","string.gsub","string.len","string.lower","string.match","string.rep","string.reverse","string.sub","string.upper","table.concat","table.insert","table.maxn","table.remove","table.sort"]),d=n(["and","break","elseif","false","nil","not","or","return","true","function","end","if","then","else","do","while","repeat","until","for","in","local"]),f=n(["function","if","repeat","do","\\(","{"]),m=n(["end","until","\\)","}"]),h=r(["end","until","\\)","}","else","elseif"]);return{startState:function(e){return{basecol:e||0,indentDepth:0,cur:o}},token:function(e,t){if(e.eatSpace())return null;var r=t.cur(e,t),n=e.current();return"variable"==r&&(d.test(n)?r="keyword":u.test(n)?r="builtin":c.test(n)&&(r="variable-2")),"comment"!=r&&"string"!=r&&(f.test(n)?++t.indentDepth:m.test(n)&&--t.indentDepth),r},indent:function(e,t){var r=h.test(t);return e.basecol+l*(e.indentDepth-(r?1:0))},lineComment:"--",blockCommentStart:"--[[",blockCommentEnd:"]]"}}),e.defineMIME("text/x-lua","lua")}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";e.defineMode("r",function(e){function t(e){for(var t=e.split(" "),r={},n=0;n=!&|~$:]/;return{startState:function(){return{tokenize:r,ctx:{type:"top",indent:-e.indentUnit,align:!1},indent:0,afterIdent:!1}},token:function(e,t){if(e.sol()&&(null==t.ctx.align&&(t.ctx.align=!1),t.indent=e.indentation()),e.eatSpace())return null;var r=t.tokenize(e,t);"comment"!=r&&null==t.ctx.align&&(t.ctx.align=!0);var n=t.ctx.type;return";"!=a&&"{"!=a&&"}"!=a||"block"!=n||o(t),"{"==a?i(t,"}",e):"("==a?(i(t,")",e),t.afterIdent&&(t.ctx.argList=!0)):"["==a?i(t,"]",e):"block"==a?i(t,"block",e):a==n&&o(t),t.afterIdent="variable"==r||"keyword"==r,r},indent:function(t,n){if(t.tokenize!=r)return 0;var i=n&&n.charAt(0),o=t.ctx,a=i==o.type;return"block"==o.type?o.indent+("{"==i?0:e.indentUnit):o.align?o.column+(a?0:1):o.indent+(a?0:e.indentUnit)},lineComment:"#"}}),e.defineMIME("text/x-rsrc","r")}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";e.defineMode("ruby",function(e){function t(e){for(var t={},r=0,n=e.length;n>r;++r)t[e[r]]=!0;return t}function r(e,t,r){return r.tokenize.push(e),e(t,r)}function n(e,t){if(c=null,e.sol()&&e.match("=begin")&&e.eol())return t.tokenize.push(l),"comment";if(e.eatSpace())return null;var n,i=e.next();if("`"==i||"'"==i||'"'==i)return r(a(i,"string",'"'==i||"`"==i),e,t);if("/"==i){var o=e.current().length;if(e.skipTo("/")){var u=e.current().length;e.backUp(e.current().length-o);for(var d=0;e.current().lengthd)break}if(e.backUp(e.current().length-o),0==d)return r(a(i,"string-2",!0),e,t)}return"operator"}if("%"==i){var h="string",p=!0;e.eat("s")?h="atom":e.eat(/[WQ]/)?h="string":e.eat(/[r]/)?h="string-2":e.eat(/[wxq]/)&&(h="string",p=!1);var g=e.eat(/[^\w\s=]/);return g?(m.propertyIsEnumerable(g)&&(g=m[g]),r(a(g,h,p,!0),e,t)):"operator"}if("#"==i)return e.skipToEnd(),"comment";if("<"==i&&(n=e.match(/^<-?[\`\"\']?([a-zA-Z_?]\w*)[\`\"\']?(?:;|$)/)))return r(s(n[1]),e,t);if("0"==i)return e.eatWhile(e.eat("x")?/[\da-fA-F]/:e.eat("b")?/[01]/:/[0-7]/),"number";if(/\d/.test(i))return e.match(/^[\d_]*(?:\.[\d_]+)?(?:[eE][+\-]?[\d_]+)?/),"number";if("?"==i){for(;e.match(/^\\[CM]-/););return e.eat("\\")?e.eatWhile(/\w/):e.next(),"string"}if(":"==i)return e.eat("'")?r(a("'","atom",!1),e,t):e.eat('"')?r(a('"',"atom",!0),e,t):e.eat(/[\<\>]/)?(e.eat(/[\<\>]/),"atom"):e.eat(/[\+\-\*\/\&\|\:\!]/)?"atom":e.eat(/[a-zA-Z$@_\xa1-\uffff]/)?(e.eatWhile(/[\w$\xa1-\uffff]/),e.eat(/[\?\!\=]/),"atom"):"operator";if("@"==i&&e.match(/^@?[a-zA-Z_\xa1-\uffff]/))return e.eat("@"),e.eatWhile(/[\w\xa1-\uffff]/),"variable-2";if("$"==i)return e.eat(/[a-zA-Z_]/)?e.eatWhile(/[\w]/):e.eat(/\d/)?e.eat(/\d/):e.next(),"variable-3";if(/[a-zA-Z_\xa1-\uffff]/.test(i))return e.eatWhile(/[\w\xa1-\uffff]/),e.eat(/[\?\!]/),e.eat(":")?"atom":"ident";if("|"!=i||!t.varList&&"{"!=t.lastTok&&"do"!=t.lastTok){if(/[\(\)\[\]{}\\;]/.test(i))return c=i,null;if("-"==i&&e.eat(">"))return"arrow";if(/[=+\-\/*:\.^%<>~|]/.test(i)){var v=e.eatWhile(/[=+\-\/*:\.^%<>~|]/);return"."!=i||v||(c="."),"operator"}return null}return c="|",null}function i(e){return e||(e=1),function(t,r){if("}"==t.peek()){if(1==e)return r.tokenize.pop(),r.tokenize[r.tokenize.length-1](t,r);r.tokenize[r.tokenize.length-1]=i(e-1)}else"{"==t.peek()&&(r.tokenize[r.tokenize.length-1]=i(e+1));return n(t,r)}}function o(){var e=!1;return function(t,r){return e?(r.tokenize.pop(),r.tokenize[r.tokenize.length-1](t,r)):(e=!0,n(t,r))}}function a(e,t,r,n){return function(a,s){var l,c=!1;for("read-quoted-paused"===s.context.type&&(s.context=s.context.prev,a.eat("}"));null!=(l=a.next());){if(l==e&&(n||!c)){s.tokenize.pop();break}if(r&&"#"==l&&!c){if(a.eat("{")){"}"==e&&(s.context={prev:s.context,type:"read-quoted-paused"}),s.tokenize.push(i());break}if(/[@\$]/.test(a.peek())){s.tokenize.push(o());break}}c=!c&&"\\"==l}return t}}function s(e){return function(t,r){return t.match(e)?r.tokenize.pop():t.skipToEnd(),"string"}}function l(e,t){return e.sol()&&e.match("=end")&&e.eol()&&t.tokenize.pop(),e.skipToEnd(),"comment"}var c,u=t(["alias","and","BEGIN","begin","break","case","class","def","defined?","do","else","elsif","END","end","ensure","false","for","if","in","module","next","not","or","redo","rescue","retry","return","self","super","then","true","undef","unless","until","when","while","yield","nil","raise","throw","catch","fail","loop","callcc","caller","lambda","proc","public","protected","private","require","load","require_relative","extend","autoload","__END__","__FILE__","__LINE__","__dir__"]),d=t(["def","class","case","for","while","module","then","catch","loop","proc","begin"]),f=t(["end","until"]),m={"[":"]","{":"}","(":")"};return{startState:function(){return{tokenize:[n],indented:0,context:{type:"top",indented:-e.indentUnit},continuedLine:!1,lastTok:null,varList:!1}},token:function(e,t){e.sol()&&(t.indented=e.indentation());var r,n=t.tokenize[t.tokenize.length-1](e,t),i=c;if("ident"==n){var o=e.current();n="."==t.lastTok?"property":u.propertyIsEnumerable(e.current())?"keyword":/^[A-Z]/.test(o)?"tag":"def"==t.lastTok||"class"==t.lastTok||t.varList?"def":"variable","keyword"==n&&(i=o,d.propertyIsEnumerable(o)?r="indent":f.propertyIsEnumerable(o)?r="dedent":"if"!=o&&"unless"!=o||e.column()!=e.indentation()?"do"==o&&t.context.indented\\?]*[^\\W_])?)",y=new RegExp(r("^{0}",b)),x="(?:[^\\W\\d_](?:[\\w\\s!\"#$%&'()\\*\\+,\\-\\./:;<=>\\?]*[^\\W_])?)",k=r("(?:{0}|`{1}`)",b,x),w="(?:[^\\s\\|](?:[^\\|]*[^\\s\\|])?)",_="(?:[^\\`]+)",C=new RegExp(r("^{0}",_)),S=new RegExp("^([!'#$%&\"()*+,-./:;<=>?@\\[\\\\\\]^_`{|}~])\\1{3,}\\s*$"),T=new RegExp(r("^\\.\\.{0}",p)),M=new RegExp(r("^_{0}:{1}|^__:{1}",k,g)),L=new RegExp(r("^{0}::{1}",k,g)),E=new RegExp(r("^\\|{0}\\|{1}{2}::{3}",w,p,k,g)),q=new RegExp(r("^\\[(?:\\d+|#{0}?|\\*)]{1}",k,g)),j=new RegExp(r("^\\[{0}\\]{1}",k,g)),z=new RegExp(r("^\\|{0}\\|",w)),I=new RegExp(r("^\\[(?:\\d+|#{0}?|\\*)]_",k)),P=new RegExp(r("^\\[{0}\\]_",k)),D=new RegExp(r("^{0}__?",k)),A=new RegExp(r("^`{0}`_",_)),$=new RegExp(r("^:{0}:`{1}`{2}",b,_,g)),O=new RegExp(r("^`{1}`:{0}:{2}",b,_,g)),R=new RegExp(r("^:{0}:{1}",b,g)),F=new RegExp(r("^{0}",k)),H=new RegExp(r("^::{0}",g)),N=new RegExp(r("^\\|{0}\\|",w)),B=new RegExp(r("^{0}",p)),U=new RegExp(r("^{0}",k)),W=new RegExp(r("^::{0}",g)),V=new RegExp("^_"),K=new RegExp(r("^{0}|_",k)),Z=new RegExp(r("^:{0}",g)),G=new RegExp("^::\\s*$"),X=new RegExp("^\\s+(?:>>>|In \\[\\d+\\]:)\\s");return{startState:function(){return{tok:n,ctx:c(void 0,0)}},copyState:function(t){var r=t.ctx,n=t.tmp;return r.local&&(r={mode:r.mode,local:e.copyState(r.mode,r.local)}),n&&(n={mode:n.mode,local:e.copyState(n.mode,n.local)}),{tok:t.tok,ctx:r,tmp:n}},innerMode:function(e){return e.tmp?{state:e.tmp.local,mode:e.tmp.mode}:e.ctx.mode?{state:e.ctx.local,mode:e.ctx.mode}:null},token:function(e,t){return t.tok(e,t)}}},"python","stex"),e.defineMIME("text/x-rst","rst")}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror"),require("../htmlmixed/htmlmixed"),require("../smarty/smarty")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../htmlmixed/htmlmixed","../smarty/smarty"],e):e(CodeMirror)}(function(e){"use strict";e.defineMode("smartymixed",function(t){function r(e){return e.replace(/[^\s\w]/g,"\\$&")}var n=e.getMode(t,"htmlmixed"),i=e.getMode(t,"smarty"),o={rightDelimiter:"}",leftDelimiter:"{"};t.hasOwnProperty("leftDelimiter")&&(o.leftDelimiter=t.leftDelimiter),t.hasOwnProperty("rightDelimiter")&&(o.rightDelimiter=t.rightDelimiter);var a=r(o.leftDelimiter),s=r(o.rightDelimiter),l={smartyComment:new RegExp("^"+s+"\\*"),literalOpen:new RegExp(a+"literal"+s),literalClose:new RegExp(a+"/literal"+s),hasLeftDelimeter:new RegExp(".*"+a),htmlHasLeftDelimeter:new RegExp("[^<>]*"+a)},c={chain:function(e,t,r){return t.tokenize=r,r(e,t)},cleanChain:function(e,t,r){return t.tokenize=null,t.localState=null,t.localMode=null,"string"==typeof r?r?r:null:r(e,t)},maybeBackup:function(e,t,r){var n,i=e.current(),o=i.search(t);return o>-1?e.backUp(i.length-o):(n=i.match(/<\/?$/))&&(e.backUp(i.length),e.match(t,!1)||e.match(i[0])),r}},u={html:function(e,t){var r=t.htmlMixedState.htmlState.context&&t.htmlMixedState.htmlState.context.tagName?t.htmlMixedState.htmlState.context.tagName:null;return!t.inLiteral&&e.match(l.htmlHasLeftDelimeter,!1)&&null===r?(t.tokenize=u.smarty,t.localMode=i,t.localState=i.startState(n.indent(t.htmlMixedState,"")),c.maybeBackup(e,o.leftDelimiter,i.token(e,t.localState))):!t.inLiteral&&e.match(o.leftDelimiter,!1)?(t.tokenize=u.smarty,t.localMode=i,t.localState=i.startState(n.indent(t.htmlMixedState,"")),c.maybeBackup(e,o.leftDelimiter,i.token(e,t.localState))):n.token(e,t.htmlMixedState)},smarty:function(e,t){if(e.match(o.leftDelimiter,!1)){if(e.match(l.smartyComment,!1))return c.chain(e,t,u.inBlock("comment","*"+o.rightDelimiter))}else if(e.match(o.rightDelimiter,!1))return e.eat(o.rightDelimiter),t.tokenize=u.html,t.localMode=n,t.localState=t.htmlMixedState,"tag";return c.maybeBackup(e,o.rightDelimiter,i.token(e,t.localState))},inBlock:function(e,t){return function(r,n){for(;!r.eol();){if(r.match(t)){c.cleanChain(r,n,"");break}r.next()}return e}}};return{startState:function(){var e=n.startState();return{token:u.html,localMode:null,localState:null,htmlMixedState:e,tokenize:null,inLiteral:!1}},copyState:function(t){var r=null,o=t.tokenize||t.token;return t.localState&&(r=e.copyState(o!=u.html?i:n,t.localState)),{token:t.token,tokenize:t.tokenize,localMode:t.localMode,localState:r,htmlMixedState:e.copyState(n,t.htmlMixedState),inLiteral:t.inLiteral}},token:function(e,t){if(e.match(o.leftDelimiter,!1)){if(!t.inLiteral&&e.match(l.literalOpen,!0))return t.inLiteral=!0,"keyword";if(t.inLiteral&&e.match(l.literalClose,!0))return t.inLiteral=!1,"keyword"}t.inLiteral&&t.localState!=t.htmlMixedState&&(t.tokenize=u.html,t.localMode=n,t.localState=t.htmlMixedState);var r=(t.tokenize||t.token)(e,t);return r},indent:function(t,r){return t.localMode==i||t.inLiteral&&!t.localMode||l.hasLeftDelimeter.test(r)?e.Pass:n.indent(t.htmlMixedState,r)},innerMode:function(e){return{state:e.localState||e.htmlMixedState,mode:e.localMode||n}}}},"htmlmixed","smarty"),e.defineMIME("text/x-smarty","smartymixed")}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";e.defineMode("vb",function(e,t){function r(e){return new RegExp("^(("+e.join(")|(")+"))\\b","i")}function n(e,t){t.currentIndent++}function i(e,t){t.currentIndent--}function o(e,t){if(e.eatSpace())return null;var r=e.peek();if("'"===r)return e.skipToEnd(),"comment";if(e.match(/^((&H)|(&O))?[0-9\.a-f]/i,!1)){var o=!1;if(e.match(/^\d*\.\d+F?/i)?o=!0:e.match(/^\d+\.\d*F?/)?o=!0:e.match(/^\.\d+F?/)&&(o=!0),o)return e.eat(/J/i),"number";var s=!1;if(e.match(/^&H[0-9a-f]+/i)?s=!0:e.match(/^&O[0-7]+/i)?s=!0:e.match(/^[1-9]\d*F?/)?(e.eat(/J/i),s=!0):e.match(/^0(?![\dx])/i)&&(s=!0),s)return e.eat(/L/i),"number"}return e.match(_)?(t.tokenize=a(e.current()),t.tokenize(e,t)):e.match(m)||e.match(f)?null:e.match(d)||e.match(c)||e.match(b)?"operator":e.match(u)?null:e.match(L)?(n(e,t),t.doInCurrentLine=!0,"keyword"):e.match(C)?(t.doInCurrentLine?t.doInCurrentLine=!1:n(e,t),"keyword"):e.match(S)?"keyword":e.match(M)?(i(e,t),i(e,t),"keyword"):e.match(T)?(i(e,t),"keyword"):e.match(w)?"keyword":e.match(k)?"keyword":e.match(h)?"variable":(e.next(),l)}function a(e){var r=1==e.length,n="string";return function(i,a){for(;!i.eol();){if(i.eatWhile(/[^'"]/),i.match(e))return a.tokenize=o,n;i.eat(/['"]/)}if(r){if(t.singleLineStringErrors)return l;a.tokenize=o}return n}}function s(e,t){var r=t.tokenize(e,t),o=e.current();if("."===o)return r=t.tokenize(e,t),o=e.current(),"variable"===r?"variable":l;var a="[({".indexOf(o);return-1!==a&&n(e,t),"dedent"===E&&i(e,t)?l:(a="])}".indexOf(o),-1!==a&&i(e,t)?l:r)}var l="error",c=new RegExp("^[\\+\\-\\*/%&\\\\|\\^~<>!]"),u=new RegExp("^[\\(\\)\\[\\]\\{\\}@,:`=;\\.]"),d=new RegExp("^((==)|(<>)|(<=)|(>=)|(<>)|(<<)|(>>)|(//)|(\\*\\*))"),f=new RegExp("^((\\+=)|(\\-=)|(\\*=)|(%=)|(/=)|(&=)|(\\|=)|(\\^=))"),m=new RegExp("^((//=)|(>>=)|(<<=)|(\\*\\*=))"),h=new RegExp("^[_A-Za-z][_A-Za-z0-9]*"),p=["class","module","sub","enum","select","while","if","function","get","set","property","try"],g=["else","elseif","case","catch"],v=["next","loop"],b=r(["and","or","not","xor","in"]),y=["as","dim","break","continue","optional","then","until","goto","byval","byref","new","handles","property","return","const","private","protected","friend","public","shared","static","true","false"],x=["integer","string","double","decimal","boolean","short","char","float","single"],k=r(y),w=r(x),_='"',C=r(p),S=r(g),T=r(v),M=r(["end"]),L=r(["do"]),E=null,q={electricChars:"dDpPtTfFeE ",startState:function(){return{tokenize:o,lastToken:null,currentIndent:0,nextLineIndent:0,doInCurrentLine:!1}},token:function(e,t){e.sol()&&(t.currentIndent+=t.nextLineIndent,t.nextLineIndent=0,t.doInCurrentLine=0);var r=s(e,t);return t.lastToken={style:r,content:e.current()},r},indent:function(t,r){var n=r.replace(/^\s+|\s+$/g,"");return n.match(T)||n.match(M)||n.match(S)?e.indentUnit*(t.currentIndent-1):t.currentIndent<0?0:t.currentIndent*e.indentUnit}};return q}),e.defineMIME("text/x-vb","vb")}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";e.defineMode("vbscript",function(e,t){function r(e){return new RegExp("^(("+e.join(")|(")+"))\\b","i")}function n(e,t){t.currentIndent++}function i(e,t){t.currentIndent--}function o(e,t){if(e.eatSpace())return"space";var r=e.peek();if("'"===r)return e.skipToEnd(),"comment";if(e.match(H))return e.skipToEnd(),"comment";if(e.match(/^((&H)|(&O))?[0-9\.]/i,!1)&&!e.match(/^((&H)|(&O))?[0-9\.]+[a-z_]/i,!1)){var o=!1;if(e.match(/^\d*\.\d+/i)?o=!0:e.match(/^\d+\.\d*/)?o=!0:e.match(/^\.\d+/)&&(o=!0),o)return e.eat(/J/i),"number";var s=!1;if(e.match(/^&H[0-9a-f]+/i)?s=!0:e.match(/^&O[0-7]+/i)?s=!0:e.match(/^[1-9]\d*F?/)?(e.eat(/J/i),s=!0):e.match(/^0(?![\dx])/i)&&(s=!0),s)return e.eat(/L/i),"number"}return e.match(P)?(t.tokenize=a(e.current()),t.tokenize(e,t)):e.match(u)||e.match(c)||e.match(v)?"operator":e.match(d)?null:e.match(f)?"bracket":e.match(F)?(t.doInCurrentLine=!0,"keyword"):e.match(R)?(n(e,t),t.doInCurrentLine=!0,"keyword"):e.match(D)?(t.doInCurrentLine?t.doInCurrentLine=!1:n(e,t),"keyword"):e.match(A)?"keyword":e.match(O)?(i(e,t),i(e,t),"keyword"):e.match($)?(t.doInCurrentLine?t.doInCurrentLine=!1:i(e,t),"keyword"):e.match(E)?"keyword":e.match(q)?"atom":e.match(I)?"variable-2":e.match(j)?"builtin":e.match(z)?"variable-2":e.match(m)?"variable":(e.next(),l)}function a(e){var r=1==e.length,n="string";return function(i,a){for(;!i.eol();){if(i.eatWhile(/[^'"]/),i.match(e))return a.tokenize=o,n;i.eat(/['"]/)}if(r){if(t.singleLineStringErrors)return l;a.tokenize=o}return n}}function s(e,t){var r=t.tokenize(e,t),n=e.current();return"."===n?(r=t.tokenize(e,t),n=e.current(),!r||"variable"!==r.substr(0,8)&&"builtin"!==r&&"keyword"!==r?l:(("builtin"===r||"keyword"===r)&&(r="variable"),L.indexOf(n.substr(1))>-1&&(r="variable-2"),r)):r}var l="error",c=new RegExp("^[\\+\\-\\*/&\\\\\\^<>=]"),u=new RegExp("^((<>)|(<=)|(>=))"),d=new RegExp("^[\\.,]"),f=new RegExp("^[\\(\\)]"),m=new RegExp("^[A-Za-z][_A-Za-z0-9]*"),h=["class","sub","select","while","if","function","property","with","for"],p=["else","elseif","case"],g=["next","loop","wend"],v=r(["and","or","not","xor","is","mod","eqv","imp"]),b=["dim","redim","then","until","randomize","byval","byref","new","property","exit","in","const","private","public","get","set","let","stop","on error resume next","on error goto 0","option explicit","call","me"],y=["true","false","nothing","empty","null"],x=["abs","array","asc","atn","cbool","cbyte","ccur","cdate","cdbl","chr","cint","clng","cos","csng","cstr","date","dateadd","datediff","datepart","dateserial","datevalue","day","escape","eval","execute","exp","filter","formatcurrency","formatdatetime","formatnumber","formatpercent","getlocale","getobject","getref","hex","hour","inputbox","instr","instrrev","int","fix","isarray","isdate","isempty","isnull","isnumeric","isobject","join","lbound","lcase","left","len","loadpicture","log","ltrim","rtrim","trim","maths","mid","minute","month","monthname","msgbox","now","oct","replace","rgb","right","rnd","round","scriptengine","scriptenginebuildversion","scriptenginemajorversion","scriptengineminorversion","second","setlocale","sgn","sin","space","split","sqr","strcomp","string","strreverse","tan","time","timer","timeserial","timevalue","typename","ubound","ucase","unescape","vartype","weekday","weekdayname","year"],k=["vbBlack","vbRed","vbGreen","vbYellow","vbBlue","vbMagenta","vbCyan","vbWhite","vbBinaryCompare","vbTextCompare","vbSunday","vbMonday","vbTuesday","vbWednesday","vbThursday","vbFriday","vbSaturday","vbUseSystemDayOfWeek","vbFirstJan1","vbFirstFourDays","vbFirstFullWeek","vbGeneralDate","vbLongDate","vbShortDate","vbLongTime","vbShortTime","vbObjectError","vbOKOnly","vbOKCancel","vbAbortRetryIgnore","vbYesNoCancel","vbYesNo","vbRetryCancel","vbCritical","vbQuestion","vbExclamation","vbInformation","vbDefaultButton1","vbDefaultButton2","vbDefaultButton3","vbDefaultButton4","vbApplicationModal","vbSystemModal","vbOK","vbCancel","vbAbort","vbRetry","vbIgnore","vbYes","vbNo","vbCr","VbCrLf","vbFormFeed","vbLf","vbNewLine","vbNullChar","vbNullString","vbTab","vbVerticalTab","vbUseDefault","vbTrue","vbFalse","vbEmpty","vbNull","vbInteger","vbLong","vbSingle","vbDouble","vbCurrency","vbDate","vbString","vbObject","vbError","vbBoolean","vbVariant","vbDataObject","vbDecimal","vbByte","vbArray"],w=["WScript","err","debug","RegExp"],_=["description","firstindex","global","helpcontext","helpfile","ignorecase","length","number","pattern","source","value","count"],C=["clear","execute","raise","replace","test","write","writeline","close","open","state","eof","update","addnew","end","createobject","quit"],S=["server","response","request","session","application"],T=["buffer","cachecontrol","charset","contenttype","expires","expiresabsolute","isclientconnected","pics","status","clientcertificate","cookies","form","querystring","servervariables","totalbytes","contents","staticobjects","codepage","lcid","sessionid","timeout","scripttimeout"],M=["addheader","appendtolog","binarywrite","end","flush","redirect","binaryread","remove","removeall","lock","unlock","abandon","getlasterror","htmlencode","mappath","transfer","urlencode"],L=C.concat(_);w=w.concat(k),e.isASP&&(w=w.concat(S),L=L.concat(M,T));var E=r(b),q=r(y),j=r(x),z=r(w),I=r(L),P='"',D=r(h),A=r(p),$=r(g),O=r(["end"]),R=r(["do"]),F=r(["on error resume next","exit"]),H=r(["rem"]),N={electricChars:"dDpPtTfFeE ",startState:function(){return{tokenize:o,lastToken:null,currentIndent:0,nextLineIndent:0,doInCurrentLine:!1,ignoreKeyword:!1}},token:function(e,t){e.sol()&&(t.currentIndent+=t.nextLineIndent,t.nextLineIndent=0,t.doInCurrentLine=0);var r=s(e,t);return t.lastToken={style:r,content:e.current()},"space"===r&&(r=null),r},indent:function(t,r){var n=r.replace(/^\s+|\s+$/g,"");return n.match($)||n.match(O)||n.match(A)?e.indentUnit*(t.currentIndent-1):t.currentIndent<0?0:t.currentIndent*e.indentUnit}};return N}),e.defineMIME("text/vbscript","vbscript")}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";e.defineMode("velocity",function(){function e(e){for(var t={},r=e.split(" "),n=0;nf.length&&"."==e.string.charAt(e.pos-f.length-1)&&r.lastTokenWasBuiltin?"builtin":(r.lastTokenWasBuiltin=!1,null)}return r.lastTokenWasBuiltin=!1,r.inString?(r.inString=!1,"string"):r.inParams?t(e,r,n(d)):void 0}function n(e){return function(t,n){for(var i,o=!1,a=!1;null!=(i=t.next());){if(i==e&&!o){a=!0;break}if('"'==e&&"$"==t.peek()&&!o){n.inString=!0,a=!0;break}o=!o&&"\\"==i}return a&&(n.tokenize=r),"string"}}function i(e,t){for(var n,i=!1;n=e.next();){if("#"==n&&i){t.tokenize=r;break}i="*"==n}return"comment"}function o(e,t){for(var n,i=0;n=e.next();){if("#"==n&&2==i){t.tokenize=r;break}"]"==n?i++:" "!=n&&(i=0)}return"meta"}var a=e("#end #else #break #stop #[[ #]] #{end} #{else} #{break} #{stop}"),s=e("#if #elseif #foreach #set #include #parse #macro #define #evaluate #{if} #{elseif} #{foreach} #{set} #{include} #{parse} #{macro} #{define} #{evaluate}"),l=e("$foreach.count $foreach.hasNext $foreach.first $foreach.last $foreach.topmost $foreach.parent.count $foreach.parent.hasNext $foreach.parent.first $foreach.parent.last $foreach.parent $velocityCount $!bodyContent $bodyContent"),c=/[+\-*&%=<>!?:\/|]/;return{startState:function(){return{tokenize:r,beforeParams:!1,inParams:!1,inString:!1,lastTokenWasBuiltin:!1}},token:function(e,t){return e.eatSpace()?null:t.tokenize(e,t)},blockCommentStart:"#*",blockCommentEnd:"*#",lineComment:"##",fold:"velocity"}}),e.defineMIME("text/velocity","velocity")}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";e.defineMode("xquery",function(){function e(e,t,r){return y=e,x=r,t}function t(e,t,r){return t.tokenize=r,r(e,t)}function r(r,s){var f=r.next(),h=!1,g=p(r);if("<"==f){if(r.match("!--",!0))return t(r,s,l);if(r.match("![CDATA",!1))return s.tokenize=c,e("tag","tag");if(r.match("?",!1))return t(r,s,u);var y=r.eat("/");r.eatSpace();for(var x,w="";x=r.eat(/[^\s\u00a0=<>\"\'\/?]/);)w+=x;return t(r,s,a(w,y))}if("{"==f)return v(s,{type:"codeblock"}),e("",null);if("}"==f)return b(s),e("",null);if(d(s))return">"==f?e("tag","tag"):"/"==f&&r.eat(">")?(b(s),e("tag","tag")):e("word","variable");if(/\d/.test(f))return r.match(/^\d*(?:\.\d*)?(?:E[+\-]?\d+)?/),e("number","atom");if("("===f&&r.eat(":"))return v(s,{type:"comment"}),t(r,s,n);if(g||'"'!==f&&"'"!==f){if("$"===f)return t(r,s,o);if(":"===f&&r.eat("="))return e("operator","keyword");if("("===f)return v(s,{type:"paren"}),e("",null);if(")"===f)return b(s),e("",null);if("["===f)return v(s,{type:"bracket"}),e("",null);if("]"===f)return b(s),e("",null);var _=k.propertyIsEnumerable(f)&&k[f];if(g&&'"'===f)for(;'"'!==r.next(););if(g&&"'"===f)for(;"'"!==r.next(););_||r.eatWhile(/[\w\$_-]/);var C=r.eat(":");!r.eat(":")&&C&&r.eatWhile(/[\w\$_-]/),r.match(/^[ \t]*\(/,!1)&&(h=!0);var S=r.current();return _=k.propertyIsEnumerable(S)&&k[S],h&&!_&&(_={type:"function_call",style:"variable def"}),m(s)?(b(s),e("word","variable",S)):(("element"==S||"attribute"==S||"axis_specifier"==_.type)&&v(s,{type:"xmlconstructor"}),_?e(_.type,_.style,S):e("word","variable",S))}return t(r,s,i(f))}function n(t,r){for(var n,i=!1,o=!1,a=0;n=t.next();){if(")"==n&&i){if(!(a>0)){b(r);break}a--}else":"==n&&o&&a++;i=":"==n,o="("==n}return e("comment","comment")}function i(t,n){return function(o,a){var s;if(h(a)&&o.current()==t)return b(a),n&&(a.tokenize=n),e("string","string");if(v(a,{type:"string",name:t,tokenize:i(t,n)}),o.match("{",!1)&&f(a))return a.tokenize=r,e("string","string");for(;s=o.next();){if(s==t){b(a),n&&(a.tokenize=n);break}if(o.match("{",!1)&&f(a))return a.tokenize=r,e("string","string")}return e("string","string")}}function o(t,n){var i=/[\w\$_-]/;if(t.eat('"')){for(;'"'!==t.next(););t.eat(":")}else t.eatWhile(i),t.match(":=",!1)||t.eat(":");return t.eatWhile(i),n.tokenize=r,e("variable","variable")}function a(t,n){return function(i,o){return i.eatSpace(),n&&i.eat(">")?(b(o),o.tokenize=r,e("tag","tag")):(i.eat("/")||v(o,{type:"tag",name:t,tokenize:r}),i.eat(">")?(o.tokenize=r,e("tag","tag")):(o.tokenize=s,e("tag","tag")))}}function s(n,o){var a=n.next();return"/"==a&&n.eat(">")?(f(o)&&b(o),d(o)&&b(o),e("tag","tag")):">"==a?(f(o)&&b(o),e("tag","tag")):"="==a?e("",null):'"'==a||"'"==a?t(n,o,i(a,s)):(f(o)||v(o,{type:"attribute",tokenize:s}),n.eat(/[a-zA-Z_:]/),n.eatWhile(/[-a-zA-Z0-9_:.]/),n.eatSpace(),(n.match(">",!1)||n.match("/",!1))&&(b(o),o.tokenize=r),e("attribute","attribute"))}function l(t,n){for(var i;i=t.next();)if("-"==i&&t.match("->",!0))return n.tokenize=r,e("comment","comment")}function c(t,n){for(var i;i=t.next();)if("]"==i&&t.match("]",!0))return n.tokenize=r,e("comment","comment")}function u(t,n){for(var i;i=t.next();)if("?"==i&&t.match(">",!0))return n.tokenize=r,e("comment","comment meta")}function d(e){return g(e,"tag")}function f(e){return g(e,"attribute")}function m(e){return g(e,"xmlconstructor")}function h(e){return g(e,"string")}function p(e){return'"'===e.current()?e.match(/^[^\"]+\"\:/,!1):"'"===e.current()?e.match(/^[^\"]+\'\:/,!1):!1}function g(e,t){return e.stack.length&&e.stack[e.stack.length-1].type==t}function v(e,t){e.stack.push(t)}function b(e){e.stack.pop();var t=e.stack.length&&e.stack[e.stack.length-1].tokenize;e.tokenize=t||r}var y,x,k=function(){function e(e){return{type:e,style:"keyword"}}for(var t=e("keyword a"),r=e("keyword b"),n=e("keyword c"),i=e("operator"),o={type:"atom",style:"atom"},a={type:"punctuation",style:null},s={type:"axis_specifier",style:"qualifier"},l={"if":t,"switch":t,"while":t,"for":t,"else":r,then:r,"try":r,"finally":r,"catch":r,element:n,attribute:n,let:n,"implements":n,"import":n,module:n,namespace:n,"return":n,"super":n,"this":n,"throws":n,where:n,"private":n,",":a,"null":o,"fn:false()":o,"fn:true()":o},c=["after","ancestor","ancestor-or-self","and","as","ascending","assert","attribute","before","by","case","cast","child","comment","declare","default","define","descendant","descendant-or-self","descending","document","document-node","element","else","eq","every","except","external","following","following-sibling","follows","for","function","if","import","in","instance","intersect","item","let","module","namespace","node","node","of","only","or","order","parent","precedes","preceding","preceding-sibling","processing-instruction","ref","return","returns","satisfies","schema","schema-element","self","some","sortby","stable","text","then","to","treat","typeswitch","union","variable","version","where","xquery","empty-sequence"],u=0,d=c.length;d>u;u++)l[c[u]]=e(c[u]);for(var f=["xs:string","xs:float","xs:decimal","xs:double","xs:integer","xs:boolean","xs:date","xs:dateTime","xs:time","xs:duration","xs:dayTimeDuration","xs:time","xs:yearMonthDuration","numeric","xs:hexBinary","xs:base64Binary","xs:anyURI","xs:QName","xs:byte","xs:boolean","xs:anyURI","xf:yearMonthDuration"],u=0,d=f.length;d>u;u++)l[f[u]]=o;for(var m=["eq","ne","lt","le","gt","ge",":=","=",">",">=","<","<=",".","|","?","and","or","div","idiv","mod","*","/","+","-"],u=0,d=m.length;d>u;u++)l[m[u]]=i;for(var h=["self::","attribute::","child::","descendant::","descendant-or-self::","parent::","ancestor::","ancestor-or-self::","following::","preceding::","following-sibling::","preceding-sibling::"],u=0,d=h.length;d>u;u++)l[h[u]]=s;return l}();return{startState:function(){return{tokenize:r,cc:[],stack:[]}},token:function(e,t){if(e.eatSpace())return null;var r=t.tokenize(e,t);return r},blockCommentStart:"(:",blockCommentEnd:":)"}}),e.defineMIME("application/xquery","xquery")}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";e.defineMode("yaml",function(){var e=["true","false","on","off","yes","no"],t=new RegExp("\\b(("+e.join(")|(")+"))$","i");return{token:function(e,r){var n=e.peek(),i=r.escaped;if(r.escaped=!1,"#"==n&&(0==e.pos||/\s/.test(e.string.charAt(e.pos-1))))return e.skipToEnd(),"comment";if(e.match(/^('([^']|\\.)*'?|"([^"]|\\.)*"?)/))return"string";if(r.literal&&e.indentation()>r.keyCol)return e.skipToEnd(),"string";if(r.literal&&(r.literal=!1),e.sol()){if(r.keyCol=0,r.pair=!1,r.pairStart=!1,e.match(/---/))return"def";if(e.match(/\.\.\./))return"def";if(e.match(/\s*-\s+/))return"meta"}if(e.match(/^(\{|\}|\[|\])/))return"{"==n?r.inlinePairs++:"}"==n?r.inlinePairs--:"["==n?r.inlineList++:r.inlineList--,"meta";if(r.inlineList>0&&!i&&","==n)return e.next(),"meta";if(r.inlinePairs>0&&!i&&","==n)return r.keyCol=0,r.pair=!1,r.pairStart=!1,e.next(),"meta";if(r.pairStart){if(e.match(/^\s*(\||\>)\s*/))return r.literal=!0,"meta";if(e.match(/^\s*(\&|\*)[a-z0-9\._-]+\b/i))return"variable-2";if(0==r.inlinePairs&&e.match(/^\s*-?[0-9\.\,]+\s?$/))return"number";if(r.inlinePairs>0&&e.match(/^\s*-?[0-9\.\,]+\s?(?=(,|}))/))return"number";if(e.match(t))return"keyword"}return!r.pair&&e.match(/^\s*(?:[,\[\]{}&*!|>'"%@`][^\s'":]|[^,\[\]{}#&*!|>'"%@`])[^#]*?(?=\s*:($|\s))/)?(r.pair=!0,r.keyCol=e.indentation(),"atom"):r.pair&&e.match(/^:\s*/)?(r.pairStart=!0,"meta"):(r.pairStart=!1,r.escaped="\\"==n,e.next(),null)},startState:function(){return{pair:!1,pairStart:!1,keyCol:0,inlinePairs:0,inlineList:0,literal:!1,escaped:!1}}}}),e.defineMIME("text/x-yaml","yaml")}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";e.defineMIME("text/x-erlang","erlang"),e.defineMode("erlang",function(t){function r(e,t){if(t.in_string)return t.in_string=!o(e),u(t,e,"string");if(t.in_atom)return t.in_atom=!a(e),u(t,e,"atom");if(e.eatSpace())return u(t,e,"whitespace");if(!h(t)&&e.match(/-\s*[a-zß-öø-ÿ][\wØ-ÞÀ-Öß-öø-ÿ]*/))return c(e.current(),T)?u(t,e,"type"):u(t,e,"attribute");var r=e.next();if("%"==r)return e.skipToEnd(),u(t,e,"comment");if(":"==r)return u(t,e,"colon");if("?"==r)return e.eatSpace(),e.eatWhile(R),u(t,e,"macro");if("#"==r)return e.eatSpace(),e.eatWhile(R),u(t,e,"record");if("$"==r)return"\\"!=e.next()||e.match(F)?u(t,e,"number"):u(t,e,"error");if("."==r)return u(t,e,"dot");if("'"==r){if(!(t.in_atom=!a(e))){if(e.match(/\s*\/\s*[0-9]/,!1))return e.match(/\s*\/\s*[0-9]/,!0),u(t,e,"fun");if(e.match(/\s*\(/,!1)||e.match(/\s*:/,!1))return u(t,e,"function")}return u(t,e,"atom")}if('"'==r)return t.in_string=!o(e),u(t,e,"string");if(/[A-Z_Ø-ÞÀ-Ö]/.test(r))return e.eatWhile(R),u(t,e,"variable");if(/[a-z_ß-öø-ÿ]/.test(r)){if(e.eatWhile(R),e.match(/\s*\/\s*[0-9]/,!1))return e.match(/\s*\/\s*[0-9]/,!0),u(t,e,"fun");var s=e.current();return c(s,M)?u(t,e,"keyword"):c(s,q)?u(t,e,"operator"):e.match(/\s*\(/,!1)?!c(s,O)||":"==h(t).token&&"erlang"!=h(t,2).token?c(s,$)?u(t,e,"guard"):u(t,e,"function"):u(t,e,"builtin"):c(s,q)?u(t,e,"operator"):":"==l(e)?"erlang"==s?u(t,e,"builtin"):u(t,e,"function"):c(s,["true","false"])?u(t,e,"boolean"):c(s,["true","false"])?u(t,e,"boolean"):u(t,e,"atom")}var d=/[0-9]/,f=/[0-9a-zA-Z]/;return d.test(r)?(e.eatWhile(d),e.eat("#")?e.eatWhile(f)||e.backUp(1):e.eat(".")&&(e.eatWhile(d)?e.eat(/[eE]/)&&(e.eat(/[-+]/)?e.eatWhile(d)||e.backUp(2):e.eatWhile(d)||e.backUp(1)):e.backUp(1)),u(t,e,"number")):n(e,I,P)?u(t,e,"open_paren"):n(e,D,A)?u(t,e,"close_paren"):i(e,L,E)?u(t,e,"separator"):i(e,j,z)?u(t,e,"operator"):u(t,e,null)}function n(e,t,r){if(1==e.current().length&&t.test(e.current())){for(e.backUp(1);t.test(e.peek());)if(e.next(),c(e.current(),r))return!0;e.backUp(e.current().length-1)}return!1}function i(e,t,r){if(1==e.current().length&&t.test(e.current())){for(;t.test(e.peek());)e.next();for(;0r?!1:e.tokenStack[r-n]}function p(e,t){"comment"!=t.type&&"whitespace"!=t.type&&(e.tokenStack=g(e.tokenStack,t),e.tokenStack=v(e.tokenStack))}function g(e,t){var r=e.length-1;return r>0&&"record"===e[r].type&&"dot"===t.type?e.pop():r>0&&"group"===e[r].type?(e.pop(),e.push(t)):e.push(t),e}function v(e){var t=e.length-1;if("dot"===e[t].type)return[];if("fun"===e[t].type&&"fun"===e[t-1].token)return e.slice(0,t-1);switch(e[e.length-1].token){case"}":return b(e,{g:["{"]});case"]":return b(e,{i:["["]});case")":return b(e,{i:["("]});case">>":return b(e,{i:["<<"]});case"end":return b(e,{i:["begin","case","fun","if","receive","try"]});case",":return b(e,{e:["begin","try","when","->",",","(","[","{","<<"]});case"->":return b(e,{r:["when"],m:["try","if","case","receive"]});case";":return b(e,{E:["case","fun","if","receive","try","when"]});case"catch":return b(e,{e:["try"]});case"of":return b(e,{e:["case"]});case"after":return b(e,{e:["receive","try"]});default:return e}}function b(e,t){for(var r in t)for(var n=e.length-1,i=t[r],o=n-1;o>-1;o--)if(c(e[o].token,i)){var a=e.slice(0,o);switch(r){case"m":return a.concat(e[o]).concat(e[n]);case"r":return a.concat(e[n]);case"i":return a;case"g":return a.concat(m("group"));case"E":return a.concat(e[o]);case"e":return a.concat(e[o])}}return"E"==r?[]:e}function y(r,n){var i,o=t.indentUnit,a=x(n),s=h(r,1),l=h(r,2);return r.in_string||r.in_atom?e.Pass:l?"when"==s.token?s.column+o:"when"===a&&"function"===l.type?l.indent+o:"("===a&&"fun"===s.token?s.column+3:"catch"===a&&(i=_(r,["try"]))?i.column:c(a,["end","after","of"])?(i=_(r,["begin","case","fun","if","receive","try"]),i?i.column:e.Pass):c(a,A)?(i=_(r,P),i?i.column:e.Pass):c(s.token,[",","|","||"])||c(a,[",","|","||"])?(i=k(r),i?i.column+i.token.length:o):"->"==s.token?c(l.token,["receive","case","if","try"])?l.column+o+o:l.column+o:c(s.token,P)?s.column+s.token.length:(i=w(r),S(i)?i.column+o:0):0}function x(e){var t=e.match(/,|[a-z]+|\}|\]|\)|>>|\|+|\(/);return S(t)&&0===t.index?t[0]:""}function k(e){var t=e.tokenStack.slice(0,-1),r=C(t,"type",["open_paren"]);return S(t[r])?t[r]:!1}function w(e){var t=e.tokenStack,r=C(t,"type",["open_paren","separator","keyword"]),n=C(t,"type",["operator"]);return S(r)&&S(n)&&n>r?t[r+1]:S(r)?t[r]:!1}function _(e,t){var r=e.tokenStack,n=C(r,"token",t); - -return S(r[n])?r[n]:!1}function C(e,t,r){for(var n=e.length-1;n>-1;n--)if(c(e[n][t],r))return n;return!1}function S(e){return e!==!1&&null!=e}var T=["-type","-spec","-export_type","-opaque"],M=["after","begin","catch","case","cond","end","fun","if","let","of","query","receive","try","when"],L=/[\->,;]/,E=["->",";",","],q=["and","andalso","band","bnot","bor","bsl","bsr","bxor","div","not","or","orelse","rem","xor"],j=/[\+\-\*\/<>=\|:!]/,z=["=","+","-","*","/",">",">=","<","=<","=:=","==","=/=","/=","||","<-","!"],I=/[<\(\[\{]/,P=["<<","(","[","{"],D=/[>\)\]\}]/,A=["}","]",")",">>"],$=["is_atom","is_binary","is_bitstring","is_boolean","is_float","is_function","is_integer","is_list","is_number","is_pid","is_port","is_record","is_reference","is_tuple","atom","binary","bitstring","boolean","function","integer","list","number","pid","port","record","reference","tuple"],O=["abs","adler32","adler32_combine","alive","apply","atom_to_binary","atom_to_list","binary_to_atom","binary_to_existing_atom","binary_to_list","binary_to_term","bit_size","bitstring_to_list","byte_size","check_process_code","contact_binary","crc32","crc32_combine","date","decode_packet","delete_module","disconnect_node","element","erase","exit","float","float_to_list","garbage_collect","get","get_keys","group_leader","halt","hd","integer_to_list","internal_bif","iolist_size","iolist_to_binary","is_alive","is_atom","is_binary","is_bitstring","is_boolean","is_float","is_function","is_integer","is_list","is_number","is_pid","is_port","is_process_alive","is_record","is_reference","is_tuple","length","link","list_to_atom","list_to_binary","list_to_bitstring","list_to_existing_atom","list_to_float","list_to_integer","list_to_pid","list_to_tuple","load_module","make_ref","module_loaded","monitor_node","node","node_link","node_unlink","nodes","notalive","now","open_port","pid_to_list","port_close","port_command","port_connect","port_control","pre_loaded","process_flag","process_info","processes","purge_module","put","register","registered","round","self","setelement","size","spawn","spawn_link","spawn_monitor","spawn_opt","split_binary","statistics","term_to_binary","time","throw","tl","trunc","tuple_size","tuple_to_list","unlink","unregister","whereis"],R=/[\w@Ø-ÞÀ-Öß-öø-ÿ]/,F=/[0-7]{1,3}|[bdefnrstv\\"']|\^[a-zA-Z]|x[0-9a-zA-Z]{2}|x{[0-9a-zA-Z]+}/;return{startState:function(){return{tokenStack:[],in_string:!1,in_atom:!1}},token:function(e,t){return r(e,t)},indent:function(e,t){return y(e,t)},lineComment:"%"}})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror"),require("../javascript/javascript"),require("../css/css"),require("../htmlmixed/htmlmixed")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../javascript/javascript","../css/css","../htmlmixed/htmlmixed"],e):e(CodeMirror)}(function(e){"use strict";e.defineMode("jade",function(t){function r(){this.javaScriptLine=!1,this.javaScriptLineExcludesColon=!1,this.javaScriptArguments=!1,this.javaScriptArgumentsDepth=0,this.isInterpolating=!1,this.interpolationNesting=0,this.jsState=Q.startState(),this.restOfLine="",this.isIncludeFiltered=!1,this.isEach=!1,this.lastTag="",this.scriptType="",this.isAttrs=!1,this.attrsNest=[],this.inAttributeName=!0,this.attributeIsType=!1,this.attrValue="",this.indentOf=1/0,this.indentToken="",this.innerMode=null,this.innerState=null,this.innerModeForLine=!1}function n(e,t){if(e.sol()&&(t.javaScriptLine=!1,t.javaScriptLineExcludesColon=!1),t.javaScriptLine){if(t.javaScriptLineExcludesColon&&":"===e.peek())return t.javaScriptLine=!1,void(t.javaScriptLineExcludesColon=!1);var r=Q.token(e,t.jsState);return e.eol()&&(t.javaScriptLine=!1),r||!0}}function i(e,t){if(t.javaScriptArguments){if(0===t.javaScriptArgumentsDepth&&"("!==e.peek())return void(t.javaScriptArguments=!1);if("("===e.peek()?t.javaScriptArgumentsDepth++:")"===e.peek()&&t.javaScriptArgumentsDepth--,0===t.javaScriptArgumentsDepth)return void(t.javaScriptArguments=!1);var r=Q.token(e,t.jsState);return r||!0}}function o(e){return e.match(/^yield\b/)?"keyword":void 0}function a(e){return e.match(/^(?:doctype) *([^\n]+)?/)?K:void 0}function s(e,t){return e.match("#{")?(t.isInterpolating=!0,t.interpolationNesting=0,"punctuation"):void 0}function l(e,t){if(t.isInterpolating){if("}"===e.peek()){if(t.interpolationNesting--,t.interpolationNesting<0)return e.next(),t.isInterpolating=!1,"puncutation"}else"{"===e.peek()&&t.interpolationNesting++;return Q.token(e,t.jsState)||!0}}function c(e,t){return e.match(/^case\b/)?(t.javaScriptLine=!0,V):void 0}function u(e,t){return e.match(/^when\b/)?(t.javaScriptLine=!0,t.javaScriptLineExcludesColon=!0,V):void 0}function d(e){return e.match(/^default\b/)?V:void 0}function f(e,t){return e.match(/^extends?\b/)?(t.restOfLine="string",V):void 0}function m(e,t){return e.match(/^append\b/)?(t.restOfLine="variable",V):void 0}function h(e,t){return e.match(/^prepend\b/)?(t.restOfLine="variable",V):void 0}function p(e,t){return e.match(/^block\b *(?:(prepend|append)\b)?/)?(t.restOfLine="variable",V):void 0}function g(e,t){return e.match(/^include\b/)?(t.restOfLine="string",V):void 0}function v(e,t){return e.match(/^include:([a-zA-Z0-9\-]+)/,!1)&&e.match("include")?(t.isIncludeFiltered=!0,V):void 0}function b(e,t){if(t.isIncludeFiltered){var r=M(e,t);return t.isIncludeFiltered=!1,t.restOfLine="string",r}}function y(e,t){return e.match(/^mixin\b/)?(t.javaScriptLine=!0,V):void 0}function x(e,t){return e.match(/^\+([-\w]+)/)?(e.match(/^\( *[-\w]+ *=/,!1)||(t.javaScriptArguments=!0,t.javaScriptArgumentsDepth=0),"variable"):e.match(/^\+#{/,!1)?(e.next(),t.mixinCallAfter=!0,s(e,t)):void 0}function k(e,t){return t.mixinCallAfter?(t.mixinCallAfter=!1,e.match(/^\( *[-\w]+ *=/,!1)||(t.javaScriptArguments=!0,t.javaScriptArgumentsDepth=0),!0):void 0}function w(e,t){return e.match(/^(if|unless|else if|else)\b/)?(t.javaScriptLine=!0,V):void 0}function _(e,t){return e.match(/^(- *)?(each|for)\b/)?(t.isEach=!0,V):void 0}function C(e,t){if(t.isEach){if(e.match(/^ in\b/))return t.javaScriptLine=!0,t.isEach=!1,V;if(e.sol()||e.eol())t.isEach=!1;else if(e.next()){for(;!e.match(/^ in\b/,!1)&&e.next(););return"variable"}}}function S(e,t){return e.match(/^while\b/)?(t.javaScriptLine=!0,V):void 0}function T(e,t){var r;return(r=e.match(/^(\w(?:[-:\w]*\w)?)\/?/))?(t.lastTag=r[1].toLowerCase(),"script"===t.lastTag&&(t.scriptType="application/javascript"),"tag"):void 0}function M(r,n){if(r.match(/^:([\w\-]+)/)){var i;return t&&t.innerModes&&(i=t.innerModes(r.current().substring(1))),i||(i=r.current().substring(1)),"string"==typeof i&&(i=e.getMode(t,i)),F(r,n,i),"atom"}}function L(e,t){return e.match(/^(!?=|-)/)?(t.javaScriptLine=!0,"punctuation"):void 0}function E(e){return e.match(/^#([\w-]+)/)?Z:void 0}function q(e){return e.match(/^\.([\w-]+)/)?G:void 0}function j(e,t){return"("==e.peek()?(e.next(),t.isAttrs=!0,t.attrsNest=[],t.inAttributeName=!0,t.attrValue="",t.attributeIsType=!1,"punctuation"):void 0}function z(e,t){if(t.isAttrs){if(X[e.peek()]&&t.attrsNest.push(X[e.peek()]),t.attrsNest[t.attrsNest.length-1]===e.peek())t.attrsNest.pop();else if(e.eat(")"))return t.isAttrs=!1,"punctuation";if(t.inAttributeName&&e.match(/^[^=,\)!]+/))return("="===e.peek()||"!"===e.peek())&&(t.inAttributeName=!1,t.jsState=Q.startState(),"script"===t.lastTag&&"type"===e.current().trim().toLowerCase()?t.attributeIsType=!0:t.attributeIsType=!1),"attribute";var r=Q.token(e,t.jsState);if(t.attributeIsType&&"string"===r&&(t.scriptType=e.current().toString()),0===t.attrsNest.length&&("string"===r||"variable"===r||"keyword"===r))try{return Function("","var x "+t.attrValue.replace(/,\s*$/,"").replace(/^!/,"")),t.inAttributeName=!0,t.attrValue="",e.backUp(e.current().length),z(e,t)}catch(n){}return t.attrValue+=e.current(),r||!0}}function I(e,t){return e.match(/^&attributes\b/)?(t.javaScriptArguments=!0,t.javaScriptArgumentsDepth=0,"keyword"):void 0}function P(e){return e.sol()&&e.eatSpace()?"indent":void 0}function D(e,t){return e.match(/^ *\/\/(-)?([^\n]*)/)?(t.indentOf=e.indentation(),t.indentToken="comment","comment"):void 0}function A(e){return e.match(/^: */)?"colon":void 0}function $(e,t){return e.match(/^(?:\| ?| )([^\n]+)/)?"string":e.match(/^(<[^\n]*)/,!1)?(F(e,t,"htmlmixed"),t.innerModeForLine=!0,H(e,t,!0)):void 0}function O(e,t){if(e.eat(".")){var r=null;return"script"===t.lastTag&&-1!=t.scriptType.toLowerCase().indexOf("javascript")?r=t.scriptType.toLowerCase().replace(/"|'/g,""):"style"===t.lastTag&&(r="css"),F(e,t,r),"dot"}}function R(e){return e.next(),null}function F(r,n,i){i=e.mimeModes[i]||i,i=t.innerModes?t.innerModes(i)||i:i,i=e.mimeModes[i]||i,i=e.getMode(t,i),n.indentOf=r.indentation(),i&&"null"!==i.name?n.innerMode=i:n.indentToken="string"}function H(e,t,r){return e.indentation()>t.indentOf||t.innerModeForLine&&!e.sol()||r?t.innerMode?(t.innerState||(t.innerState=t.innerMode.startState?t.innerMode.startState(e.indentation()):{}),e.hideFirstChars(t.indentOf+2,function(){return t.innerMode.token(e,t.innerState)||!0})):(e.skipToEnd(),t.indentToken):void(e.sol()&&(t.indentOf=1/0,t.indentToken=null,t.innerMode=null,t.innerState=null))}function N(e,t){if(e.sol()&&(t.restOfLine=""),t.restOfLine){e.skipToEnd();var r=t.restOfLine;return t.restOfLine="",r}}function B(){return new r}function U(e){return e.copy()}function W(e,t){var r=H(e,t)||N(e,t)||l(e,t)||b(e,t)||C(e,t)||z(e,t)||n(e,t)||i(e,t)||k(e,t)||o(e,t)||a(e,t)||s(e,t)||c(e,t)||u(e,t)||d(e,t)||f(e,t)||m(e,t)||h(e,t)||p(e,t)||g(e,t)||v(e,t)||y(e,t)||x(e,t)||w(e,t)||_(e,t)||S(e,t)||T(e,t)||M(e,t)||L(e,t)||E(e,t)||q(e,t)||j(e,t)||I(e,t)||P(e,t)||$(e,t)||D(e,t)||A(e,t)||O(e,t)||R(e,t);return r===!0?null:r}var V="keyword",K="meta",Z="builtin",G="qualifier",X={"{":"}","(":")","[":"]"},Q=e.getMode(t,"javascript");return r.prototype.copy=function(){var t=new r;return t.javaScriptLine=this.javaScriptLine,t.javaScriptLineExcludesColon=this.javaScriptLineExcludesColon,t.javaScriptArguments=this.javaScriptArguments,t.javaScriptArgumentsDepth=this.javaScriptArgumentsDepth,t.isInterpolating=this.isInterpolating,t.interpolationNesting=this.intpolationNesting,t.jsState=e.copyState(Q,this.jsState),t.innerMode=this.innerMode,this.innerMode&&this.innerState&&(t.innerState=e.copyState(this.innerMode,this.innerState)),t.restOfLine=this.restOfLine,t.isIncludeFiltered=this.isIncludeFiltered,t.isEach=this.isEach,t.lastTag=this.lastTag,t.scriptType=this.scriptType,t.isAttrs=this.isAttrs,t.attrsNest=this.attrsNest.slice(),t.inAttributeName=this.inAttributeName,t.attributeIsType=this.attributeIsType,t.attrValue=this.attrValue,t.indentOf=this.indentOf,t.indentToken=this.indentToken,t.innerModeForLine=this.innerModeForLine,t},{startState:B,copyState:U,token:W}}),e.defineMIME("text/x-jade","jade")}); \ No newline at end of file diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/package.json b/src/main/resources/static/editor.md-master/lib/codemirror/package.json deleted file mode 100644 index b4a9b53..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/package.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "codemirror", - "version":"5.0.0", - "main": "lib/codemirror.js", - "description": "In-browser code editing made bearable", - "licenses": [{"type": "MIT", - "url": "http://codemirror.net/LICENSE"}], - "directories": {"lib": "./lib"}, - "scripts": {"test": "node ./test/run.js"}, - "devDependencies": {"node-static": "0.6.0", - "phantomjs": "1.9.2-5", - "blint": ">=0.1.1"}, - "bugs": "http://github.com/codemirror/CodeMirror/issues", - "keywords": ["JavaScript", "CodeMirror", "Editor"], - "homepage": "http://codemirror.net", - "maintainers":[{"name": "Marijn Haverbeke", - "email": "marijnh@gmail.com", - "web": "http://marijnhaverbeke.nl"}], - "repository": {"type": "git", - "url": "https://github.com/codemirror/CodeMirror.git"} -} diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/theme/3024-day.css b/src/main/resources/static/editor.md-master/lib/codemirror/theme/3024-day.css deleted file mode 100644 index 3592816..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/theme/3024-day.css +++ /dev/null @@ -1,40 +0,0 @@ -/* - - Name: 3024 day - Author: Jan T. Sott (http://github.com/idleberg) - - CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror) - Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) - -*/ - -.cm-s-3024-day.CodeMirror {background: #f7f7f7; color: #3a3432;} -.cm-s-3024-day div.CodeMirror-selected {background: #d6d5d4 !important;} -.cm-s-3024-day.CodeMirror ::selection { background: #d6d5d4; } -.cm-s-3024-day.CodeMirror ::-moz-selection { background: #d9d9d9; } - -.cm-s-3024-day .CodeMirror-gutters {background: #f7f7f7; border-right: 0px;} -.cm-s-3024-day .CodeMirror-guttermarker { color: #db2d20; } -.cm-s-3024-day .CodeMirror-guttermarker-subtle { color: #807d7c; } -.cm-s-3024-day .CodeMirror-linenumber {color: #807d7c;} - -.cm-s-3024-day .CodeMirror-cursor {border-left: 1px solid #5c5855 !important;} - -.cm-s-3024-day span.cm-comment {color: #cdab53;} -.cm-s-3024-day span.cm-atom {color: #a16a94;} -.cm-s-3024-day span.cm-number {color: #a16a94;} - -.cm-s-3024-day span.cm-property, .cm-s-3024-day span.cm-attribute {color: #01a252;} -.cm-s-3024-day span.cm-keyword {color: #db2d20;} -.cm-s-3024-day span.cm-string {color: #fded02;} - -.cm-s-3024-day span.cm-variable {color: #01a252;} -.cm-s-3024-day span.cm-variable-2 {color: #01a0e4;} -.cm-s-3024-day span.cm-def {color: #e8bbd0;} -.cm-s-3024-day span.cm-bracket {color: #3a3432;} -.cm-s-3024-day span.cm-tag {color: #db2d20;} -.cm-s-3024-day span.cm-link {color: #a16a94;} -.cm-s-3024-day span.cm-error {background: #db2d20; color: #5c5855;} - -.cm-s-3024-day .CodeMirror-activeline-background {background: #e8f2ff !important;} -.cm-s-3024-day .CodeMirror-matchingbracket { text-decoration: underline; color: #a16a94 !important;} diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/theme/3024-night.css b/src/main/resources/static/editor.md-master/lib/codemirror/theme/3024-night.css deleted file mode 100644 index ccab9d5..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/theme/3024-night.css +++ /dev/null @@ -1,39 +0,0 @@ -/* - - Name: 3024 night - Author: Jan T. Sott (http://github.com/idleberg) - - CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror) - Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) - -*/ - -.cm-s-3024-night.CodeMirror {background: #090300; color: #d6d5d4;} -.cm-s-3024-night div.CodeMirror-selected {background: #3a3432 !important;} -.cm-s-3024-night.CodeMirror ::selection { background: rgba(58, 52, 50, .99); } -.cm-s-3024-night.CodeMirror ::-moz-selection { background: rgba(58, 52, 50, .99); } -.cm-s-3024-night .CodeMirror-gutters {background: #090300; border-right: 0px;} -.cm-s-3024-night .CodeMirror-guttermarker { color: #db2d20; } -.cm-s-3024-night .CodeMirror-guttermarker-subtle { color: #5c5855; } -.cm-s-3024-night .CodeMirror-linenumber {color: #5c5855;} - -.cm-s-3024-night .CodeMirror-cursor {border-left: 1px solid #807d7c !important;} - -.cm-s-3024-night span.cm-comment {color: #cdab53;} -.cm-s-3024-night span.cm-atom {color: #a16a94;} -.cm-s-3024-night span.cm-number {color: #a16a94;} - -.cm-s-3024-night span.cm-property, .cm-s-3024-night span.cm-attribute {color: #01a252;} -.cm-s-3024-night span.cm-keyword {color: #db2d20;} -.cm-s-3024-night span.cm-string {color: #fded02;} - -.cm-s-3024-night span.cm-variable {color: #01a252;} -.cm-s-3024-night span.cm-variable-2 {color: #01a0e4;} -.cm-s-3024-night span.cm-def {color: #e8bbd0;} -.cm-s-3024-night span.cm-bracket {color: #d6d5d4;} -.cm-s-3024-night span.cm-tag {color: #db2d20;} -.cm-s-3024-night span.cm-link {color: #a16a94;} -.cm-s-3024-night span.cm-error {background: #db2d20; color: #807d7c;} - -.cm-s-3024-night .CodeMirror-activeline-background {background: #2F2F2F !important;} -.cm-s-3024-night .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;} diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/theme/ambiance-mobile.css b/src/main/resources/static/editor.md-master/lib/codemirror/theme/ambiance-mobile.css deleted file mode 100644 index 88d332e..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/theme/ambiance-mobile.css +++ /dev/null @@ -1,5 +0,0 @@ -.cm-s-ambiance.CodeMirror { - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; -} diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/theme/ambiance.css b/src/main/resources/static/editor.md-master/lib/codemirror/theme/ambiance.css deleted file mode 100644 index afcf15a..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/theme/ambiance.css +++ /dev/null @@ -1,75 +0,0 @@ -/* ambiance theme for codemirror */ - -/* Color scheme */ - -.cm-s-ambiance .cm-keyword { color: #cda869; } -.cm-s-ambiance .cm-atom { color: #CF7EA9; } -.cm-s-ambiance .cm-number { color: #78CF8A; } -.cm-s-ambiance .cm-def { color: #aac6e3; } -.cm-s-ambiance .cm-variable { color: #ffb795; } -.cm-s-ambiance .cm-variable-2 { color: #eed1b3; } -.cm-s-ambiance .cm-variable-3 { color: #faded3; } -.cm-s-ambiance .cm-property { color: #eed1b3; } -.cm-s-ambiance .cm-operator {color: #fa8d6a;} -.cm-s-ambiance .cm-comment { color: #555; font-style:italic; } -.cm-s-ambiance .cm-string { color: #8f9d6a; } -.cm-s-ambiance .cm-string-2 { color: #9d937c; } -.cm-s-ambiance .cm-meta { color: #D2A8A1; } -.cm-s-ambiance .cm-qualifier { color: yellow; } -.cm-s-ambiance .cm-builtin { color: #9999cc; } -.cm-s-ambiance .cm-bracket { color: #24C2C7; } -.cm-s-ambiance .cm-tag { color: #fee4ff } -.cm-s-ambiance .cm-attribute { color: #9B859D; } -.cm-s-ambiance .cm-header {color: blue;} -.cm-s-ambiance .cm-quote { color: #24C2C7; } -.cm-s-ambiance .cm-hr { color: pink; } -.cm-s-ambiance .cm-link { color: #F4C20B; } -.cm-s-ambiance .cm-special { color: #FF9D00; } -.cm-s-ambiance .cm-error { color: #AF2018; } - -.cm-s-ambiance .CodeMirror-matchingbracket { color: #0f0; } -.cm-s-ambiance .CodeMirror-nonmatchingbracket { color: #f22; } - -.cm-s-ambiance .CodeMirror-selected { background: rgba(255, 255, 255, 0.15); } -.cm-s-ambiance.CodeMirror-focused .CodeMirror-selected { background: rgba(255, 255, 255, 0.10); } -.cm-s-ambiance.CodeMirror ::selection { background: rgba(255, 255, 255, 0.10); } -.cm-s-ambiance.CodeMirror ::-moz-selection { background: rgba(255, 255, 255, 0.10); } - -/* Editor styling */ - -.cm-s-ambiance.CodeMirror { - line-height: 1.40em; - color: #E6E1DC; - background-color: #202020; - -webkit-box-shadow: inset 0 0 10px black; - -moz-box-shadow: inset 0 0 10px black; - box-shadow: inset 0 0 10px black; -} - -.cm-s-ambiance .CodeMirror-gutters { - background: #3D3D3D; - border-right: 1px solid #4D4D4D; - box-shadow: 0 10px 20px black; -} - -.cm-s-ambiance .CodeMirror-linenumber { - text-shadow: 0px 1px 1px #4d4d4d; - color: #111; - padding: 0 5px; -} - -.cm-s-ambiance .CodeMirror-guttermarker { color: #aaa; } -.cm-s-ambiance .CodeMirror-guttermarker-subtle { color: #111; } - -.cm-s-ambiance .CodeMirror-lines .CodeMirror-cursor { - border-left: 1px solid #7991E8; -} - -.cm-s-ambiance .CodeMirror-activeline-background { - background: none repeat scroll 0% 0% rgba(255, 255, 255, 0.031); -} - -.cm-s-ambiance.CodeMirror, -.cm-s-ambiance .CodeMirror-gutters { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAQAAAAHUWYVAABFFUlEQVQYGbzBCeDVU/74/6fj9HIcx/FRHx9JCFmzMyGRURhLZIkUsoeRfUjS2FNDtr6WkMhO9sm+S8maJfu+Jcsg+/o/c+Z4z/t97/vezy3z+z8ekGlnYICG/o7gdk+wmSHZ1z4pJItqapjoKXWahm8NmV6eOTbWUOp6/6a/XIg6GQqmenJ2lDHyvCFZ2cBDbmtHA043VFhHwXxClWmeYAdLhV00Bd85go8VmaFCkbVkzlQENzfBDZ5gtN7HwF0KDrTwJ0dypSOzpaKCMwQHKTIreYIxlmhXTzTWkVm+LTynZhiSBT3RZQ7aGfjGEd3qyXQ1FDymqbKxpspERQN2MiRjNZlFFQXfCNFm9nM1zpAsoYjmtRTc5ajwuaXc5xrWskT97RaKzAGe5ARHhVUsDbjKklziiX5WROcJwSNCNI+9w1Jwv4Zb2r7lCMZ4oq5C0EdTx+2GzNuKpJ+iFf38JEWkHJn9DNF7mmBDITrWEg0VWL3pHU20tSZnuqWu+R3BtYa8XxV1HO7GyD32UkOpL/yDloINFTmvtId+nmAjxRw40VMwVKiwrKLE4bK5UOVntYwhOcSSXKrJHKPJedocpGjVz/ZMIbnYUPB10/eKCrs5apqpgVmWzBYWpmtKHecJPjaUuEgRDDaU0oZghCJ6zNMQ5ZhDYx05r5v2muQdM0EILtXUsaKiQX9WMEUotagQzFbUNN6NUPC2nm5pxEWGCjMc3GdJHjSU2kORLK/JGSrkfGEIjncU/CYUnOipoYemwj8tST9NsJmB7TUVXtbUtXATJVZXBMvYeTXJfobgJUPmGMP/yFaWonaa6BcFO3nqcIqCozSZoZoSr1g4zJOzuyGnxTEX3lUEJ7WcZgme8ddaWvWJo2AJR9DZU3CUIbhCSG6ybSwN6qtJVnCU2svDTP2ZInOw2cBTrqtQahtNZn9NcJ4l2NaSmSkkP1noZWnVwkLmdUPOwLZEwy2Z3S3R+4rIG9hcbpPXHFVWcQdZkn2FOta3cKWQnNRC5g1LsJah4GCzSVsKnCOY5OAFRTBekyyryeyilhFKva75r4Mc0aWanGEaThcy31s439KKxTzJYY5WTHPU1FtIHjQU3Oip4xlNzj/lBw23dYZVliQa7WAXf4shetcQfatI+jWRDBPmyNeW6A1P5kdDgyYJlba0BIM8BZu1JfrFwItyjcAMR3K0BWOIrtMEXyhyrlVEx3ui5dUBjmB/Q3CXW85R4mBD0s7B+4q5tKUjOlb9qqmhi5AZ6GFIC5HXtOobdYGlVdMVbNJ8toNTFcHxnoL+muBagcctjWnbNMuR00uI7nQESwg5q2qqrKWIfrNUmeQocY6HuyxJV02wj36w00yhpmUFenv4p6fUkZYqLyuinx2RGOjhCXYyJF84oiU00YMOOhhquNdfbOB7gU88pY4xJO8LVdp6/q2voeB4R04vIdhSE40xZObx1HGGJ/ja0LBthFInKaLPPFzuCaYaoj8JjPME8yoyxo6zlBqkiUZYgq00OYMswbWO5NGmq+xhipxHLRW29ARjNKXO0wRnear8XSg4XFPLKEPUS1GqvyLwiuBUoa7zpZ0l5xxFwWmWZC1H5h5FwU8eQ7K+g8UcVY6TMQreVQT/8uQ8Z+ALIXnSEa2pYZQneE9RZbSBNYXfWYJzW/h/4j4Dp1tYVcFIC5019Vyi4ThPqSFCzjGWaHQTBU8q6vrVwgxP9Lkm840imWKpcLCjYTtrKuwvsKSnrvHCXGkSMk9p6lhckfRpIeis+N2PiszT+mFLspyGleUhDwcLrZqmyeylxwjBcKHEapqkmyangyLZRVOijwOtCY5SsG5zL0OwlCJ4y5KznF3EUNDDrinwiyLZRzOXtlBbK5ITHFGLp8Q0R6ab6mS7enI2cFrxOyHvOCFaT1HThS1krjCwqWeurCkk+willhCC+RSZnRXBiZaC5RXRIZYKp2lyfrHwiKPKR0JDzrdU2EFgpidawlFDR6FgXUMNa+g1FY3bUQh2cLCwosRdnuQTS/S+JVrGLeWIvtQUvONJxlqSQYYKpwoN2kaocLjdVsis4Mk80ESF2YpSkzwldjHkjFCUutI/r+EHDU8oCs6yzL3PhWiEooZdFMkymlas4AcI3KmoMMNSQ3tHzjGWCrcJJdYyZC7QFGwjRL9p+MrRkAGWzIaWCn9W0F3TsK01c2ZvQw0byvxuQU0r1lM0qJO7wW0kRIMdDTtXEdzi4VIh+EoIHm0mWtAtpCixlabgn83fKTI7anJe9ST7WIK1DMGpQmYeA58ImV6ezOGOzK2Kgq01pd60cKWiUi9Lievb/0vIDPHQ05Kzt4ddPckQBQtoaurjyHnek/nKzpQLrVgKPjIkh2v4uyezpv+Xoo7fPFXaGFp1vaLKxQ4uUpQQS5VuQs7BCq4xRJv7fwpVvvFEB3j+620haOuocqMhWd6TTPAEx+mdFNGHdranFe95WrWmIvlY4F1Dle2ECgc6cto7SryuqGGGha0tFQ5V53migUKmg6XKAo4qS3mik+0OZpAhOLeZKicacgaYcyx5hypYQE02ZA4xi/pNhOQxR4klNKyqacj+mpxnLTnnGSo85++3ZCZq6lrZkXlGEX3o+C9FieccJbZWVFjC0Yo1FZnJhoYMFoI1hEZ9r6hwg75HwzBNhbZCdJEfJwTPGzJvaKImw1yYX1HDAmpXR+ZJQ/SmgqMNVQb5vgamGwLtt7VwvP7Qk1xpiM5x5Cyv93E06MZmgs0Nya2azIKOYKCGBQQW97RmhKNKF02JZqHEJ4o58qp7X5EcZmc56trXEqzjCBZ1MFGR87Ql2tSTs6CGxS05PTzRQorkbw7aKoKXFDXsYW42VJih/q+FP2BdTzDTwVqOYB13liM50vG7wy28qagyuIXMeQI/Oqq8bcn5wJI50xH00CRntyfpL1T4hydYpoXgNiFzoIUTDZnLNRzh4TBHwbYGDvZkxmlyJloyr6tRihpeUG94GnKtIznREF0tzJG/OOr73JBcrSh1k6WuTprgLU+mnSGnv6Zge0NNz+kTDdH8nuAuTdJDCNb21LCiIuqlYbqGzT3RAoZofQfjFazkqeNWdYaGvYTM001EW2oKPvVk1ldUGSgUtHFwjKM1h9jnFcmy5lChoLNaQMGGDsYbKixlaMBmmsx1QjCfflwTfO/gckW0ruZ3jugKR3R5W9hGUWqCgxuFgsuaCHorotGKzGaeZB9DMsaTnKCpMtwTvOzhYk0rdrArKCqcaWmVk1+F372ur1YkKxgatI8Qfe1gIX9wE9FgS8ESmuABIXnRUbCapcKe+nO7slClSZFzpV/LkLncEb1qiO42fS3R855Su2mCLh62t1SYZZYVmKwIHjREF2uihTzB20JOkz7dkxzYQnK0UOU494wh+VWRc6Un2kpTaVgLDFEkJ/uhzRcI0YKGgpGWOlocBU/a4fKoJ/pEaNV6jip3+Es9VXY078rGnmAdf7t9ylPXS34RBSuYPs1UecZTU78WanhBCHpZ5sAoTz0LGZKjPf9TRypqWEiTvOFglL1fCEY3wY/++rbk7C8bWebA6p6om6PgOL2kp44TFJlVNBXae2rqqdZztOJpT87GQsE9jqCPIe9VReZuQ/CIgacsyZdCpIScSYqcZk8r+nsyCzhyfhOqHGOIvrLknC8wTpFcaYiGC/RU1NRbUeUpocQOnkRpGOrIOcNRx+1uA0UrzhSSt+VyS3SJpnFWkzNDqOFGIWcfR86DnmARTQ1HKIL33ExPiemeOhYSSjzlSUZZuE4TveoJLnBUOFof6KiysCbnAEcZgcUNTDOwkqWu3RWtmGpZwlHhJENdZ3miGz0lJlsKnjbwqSHQjpxnFDlTLLwqJPMZMjd7KrzkSG7VsxXBZE+F8YZkb01Oe00yyRK9psh5SYh29ySPKBo2ylNht7ZkZnsKenjKNJu9PNEyZpaCHv4Kt6RQsLvAVp7M9kIimmCUwGeWqLMmGuIotYMmWNpSahkhZw9FqZsVnKJhsjAHvtHMsTM9fCI06Dx/u3vfUXCqfsKRc4oFY2jMsoo/7DJDwZ1CsIKnJu+J9ldkpmiCxQx1rWjI+T9FwcWWzOuaYH0Hj7klNRVWEQpmaqosakiGNTFHdjS/qnUdmf0NJW5xsL0HhimCCZZSRzmSPTXJQ4aaztAwtZnoabebJ+htCaZ7Cm535ByoqXKbX1WRc4Eh2MkRXWzImVc96Cj4VdOKVxR84VdQsIUM8Psoou2byVHyZFuq7O8otbSQ2UAoeEWTudATLGSpZzVLlXVkPU2Jc+27lsw2jmg5T5VhbeE3BT083K9WsTTkFU/Osi0rC5lRlpwRHUiesNS0sOvmqGML1aRbPAxTJD9ZKtxuob+hhl8cwYGWpJ8nub7t5p6coYbMovZ1BTdaKn1jYD6h4GFDNFyT/Kqe1XCXphXHOKLZmuRSRdBPEfVUXQzJm5YGPGGJdvAEr7hHNdGZnuBvrpciGmopOLf5N0uVMy0FfYToJk90uUCbJupaVpO53UJXR2bVpoU00V2KOo4zMFrBd0Jtz2pa0clT5Q5L8IpQ177mWQejPMEJhuQjS10ref6HHjdEhy1P1EYR7GtO0uSsKJQYLiTnG1rVScj5lyazpqWGl5uBbRWl7m6ixGOOnEsMJR7z8J0n6KMnCdxhiNYQCoZ6CmYLnO8omC3MkW3bktlPmEt/VQQHejL3+dOE5FlPdK/Mq8hZxxJtLyRrepLThYKbLZxkSb5W52vYxNOaOxUF0yxMUPwBTYqCzy01XayYK0sJyWBLqX0MwU5CzoymRzV0EjjeUeLgDpTo6ij42ZAzvD01dHUUTPLU96MdLbBME8nFBn7zJCMtJcZokn8YoqU0FS5WFKyniHobguMcmW8N0XkWZjkyN3hqOMtS08r+/xTBwpZSZ3qiVRX8SzMHHjfUNFjgHEPmY9PL3ykEzxkSre/1ZD6z/NuznuB0RcE1TWTm9zRgfUWVJiG6yrzgmWPXC8EAR4Wxhlad0ZbgQyEz3pG5RVEwwDJH2mgKpjcTiCOzn1lfUWANFbZ2BA8balnEweJC9J0iuaeZoI+ippFCztEKVvckR2iice1JvhVytrQwUAZpgsubCPaU7xUe9vWnaOpaSBEspalykhC9bUlOMpT42ZHca6hyrqKmw/wMR8H5ZmdFoBVJb03O4UL0tSNnvIeRmkrLWqrs78gcrEn2tpcboh0UPOW3UUR9PMk4T4nnNKWmCjlrefhCwxRNztfmIQVdDElvS4m1/WuOujoZCs5XVOjtKPGokJzsYCtFYoWonSPT21DheU/wWhM19FcElwqNGOsp9Q8N/cwXaiND1MmeL1Q5XROtYYgGeFq1aTMsoMmcrKjQrOFQTQ1fmBYhmW6o8Jkjc7iDJRTBIo5kgJD5yMEYA3srCg7VFKwiVJkmRCc5ohGOKhsYMn/XBLdo5taZjlb9YAlGWRimqbCsoY7HFAXLa5I1HPRxMMsQDHFkWtRNniqT9UEeNjcE7RUlrCJ4R2CSJuqlKHWvJXjAUNcITYkenuBRB84TbeepcqTj3zZyFJzgYQdHnqfgI0ddUwS6GqWpsKWhjq9cV0vBAEMN2znq+EBfIWT+pClYw5xsTlJU6GeIBsjGmmANTzJZiIYpgrM0Oa8ZMjd7NP87jxhqGOhJlnQtjuQpB+8aEE00wZFznSJPyHxgH3HkPOsJFvYk8zqCHzTs1BYOa4J3PFU+UVRZxlHDM4YavlNUuMoRveiZA2d7grMNc2g+RbSCEKzmgYsUmWmazFJyoiOZ4KnyhKOGRzWJa0+moyV4TVHDzn51Awtqaphfk/lRQ08FX1iiqxTB/kLwd0VynKfEvI6cd4XMV5bMhZ7gZUWVzYQ6Nm2BYzxJbw3bGthEUUMfgbGeorae6DxHtJoZ6alhZ0+ytiVoK1R4z5PTrOECT/SugseEOlb1MMNR4VRNcJy+V1Hg9ONClSZFZjdHlc6W6FBLdJja2MC5hhpu0DBYEY1TFGwiFAxRRCsYkiM9JRb0JNMVkW6CZYT/2EiTGWmo8k+h4FhDNE7BvppoTSFnmCV5xZKzvcCdDo7VVPnIU+I+Rc68juApC90MwcFCsJ5hDqxgScYKreruyQwTqrzoqDCmhWi4IbhB0Yrt3RGa6GfDv52rKXWhh28dyZaWUvcZeMTBaZoSGyiCtRU5J8iviioHaErs7Jkj61syVzTTgOcUOQ8buFBTYWdL5g3T4qlpe0+wvD63heAXRfCCIed9RbCsp2CiI7raUOYOTU13N8PNHvpaGvayo4a3LLT1lDrVEPT2zLUlheB1R+ZTRfKWJ+dcocLJfi11vyJ51lLqJ0WD7tRwryezjiV5W28uJO9qykzX8JDe2lHl/9oyBwa2UMfOngpXCixvKdXTk3wrsKmiVYdZIqsoWEERjbcUNDuiaQomGoIbFdEHmsyWnuR+IeriKDVLnlawlyNHKwKlSU631PKep8J4Q+ayjkSLKYLhalNHlYvttb6fHm0p6OApsZ4l2VfdqZkjuysy6ysKLlckf1KUutCTs39bmCgEyyoasIWlVaMF7mgmWtBT8Kol5xpH9IGllo8cJdopcvZ2sImlDmMIbtDk3KIpeNiS08lQw11NFPTwVFlPP6pJ2gvRfI7gQUfmNAtf6Gs0wQxDsKGlVBdF8rCa3jzdwMaGHOsItrZk7hAyOzpK9VS06j5F49b0VNGOOfKs3lDToMsMBe9ZWtHFEgxTJLs7qrygKZjUnmCYoeAqeU6jqWuLJup4WghOdvCYJnrSkSzoyRkm5M2StQwVltPkfCAk58tET/CSg+8MUecmotMEnhBKfWBIZsg2ihruMJQaoIm+tkTLKEqspMh00w95gvFCQRtDwTT1gVDDSEVdlwqZfxoQRbK0g+tbiBZxzKlpnpypejdDwTaeOvorMk/IJE10h9CqRe28hhLbe0pMsdSwv4ZbhKivo2BjDWfL8UKJgeavwlwb5KlwhyE4u4XkGE2ytZCznKLCDZZq42VzT8HLCrpruFbIfOIINmh/qCdZ1ZBc65kLHR1Bkyf5zn6pN3SvGKIlFNGplhrO9QSXanLOMQTLCa0YJCRrCZm/CZmrLTm7WzCK4GJDiWUdFeYx1LCFg3NMd0XmCuF3Y5rITLDUsYS9zoHVzwnJoYpSTQoObyEzr4cFBNqYTopoaU/wkyLZ2lPhX/5Y95ulxGTV7KjhWrOZgl8MyUUafjYraNjNU1N3IWcjT5WzWqjwtoarHSUObGYO3GCJZpsBlnJGPd6ZYLyl1GdCA2625IwwJDP8GUKymbzuyPlZlvTUsaUh5zFDhRWFzPKKZLAlWdcQbObgF9tOqOsmB1dqcqYJmWstFbZRRI9poolmqiLnU0POvxScpah2iSL5UJNzgScY5+AuIbpO0YD3NCW+dLMszFSdFCWGqG6eVq2uYVNDdICGD6W7EPRWZEY5gpsE9rUkS3mijzzJnm6UpUFXG1hCUeVoS5WfNcFpblELL2qqrCvMvRfd45oalvKU2tiQ6ePJOVMRXase9iTtLJztPxJKLWpo2CRDcJwn2sWSLKIO1WQWNTCvpVUvOZhgSC40JD0dOctaSqzkCRbXsKlb11Oip6PCJ0IwSJM31j3akRxlP7Rwn6aGaUL0qiLnJkvB3xWZ2+Q1TfCwpQH3G0o92UzmX4o/oJNQMMSQc547wVHhdk+VCw01DFYEnTxzZKAm74QmeNNR1w6WzEhNK15VJzuCdxQ53dRUDws5KvwgBMOEgpcVNe0hZI6RXT1Jd0cyj5nsaEAHgVmGaJIlWdsc5Ui2ElrRR6jrRAttNMEAIWrTDFubkZaok7/AkzfIwfuWVq0jHzuCK4QabtLUMVPB3kJ0oyHTSVFlqMALilJf2Rf8k5aaHtMfayocLBS8L89oKoxpJvnAkDPa0qp5DAUTHKWmCcnthlou8iCKaFFLHWcINd1nyIwXqrSxMNmSs6KmoL2QrKuWtlQ5V0120xQ5vRyZS1rgFkWwhiOwiuQbR0OOVhQM9iS3tiXp4RawRPMp5tDletOOBL95MpM01dZTBM9pkn5qF010rIeHFcFZhmSGpYpTsI6nwhqe5C9ynhlpp5ophuRb6WcJFldkVnVEwwxVfrVkvnWUuNLCg5bgboFHPDlDPDmnK7hUrWiIbjadDclujlZcaokOFup4Ri1kacV6jmrrK1hN9bGwpKEBQ4Q6DvIUXOmo6U5LqQM6EPyiKNjVkPnJkDPNEaxhiFay5ExW1NXVUGqcpYYdPcGiCq7z/TSlbhL4pplWXKd7NZO5QQFrefhRQW/NHOsqcIglc4UhWklR8K0QzbAw08CBDnpbgqXdeD/QUsM4RZXDFBW6WJKe/mFPdH0LtBgiq57wFLzlyQzz82qYx5D5WJP5yVJDW01BfyHnS6HKO/reZqId1WGa4Hkh2kWodJ8i6KoIPlAj2hPt76CzXsVR6koPRzWTfKqIentatYpQw2me4AA3y1Kind3SwoOKZDcFXTwl9tWU6mfgRk9d71sKtlNwrjnYw5tC5n5LdKiGry3JKNlHEd3oaMCFHrazBPMp/uNJ+V7IudcSbeOIdjUEdwl0VHCOZo5t6YluEuaC9mQeMgSfOyKnYGFHcIeQ84yQWbuJYJpZw5CzglDH7gKnWqqM9ZTaXcN0TeYhR84eQtJT76JJ1lREe7WnnvsMmRc9FQ7SBBM9mV3lCUdmHk/S2RAMt0QjFNFqQpWjDPQ01DXWUdDBkXziKPjGEP3VP+zIWU2t7im41FOloyWzn/L6dkUy3VLDaZ6appgDLHPjJEsyvJngWEPUyVBiAaHCTEXwrLvSEbV1e1gKJniicWorC1MUrVjB3uDhJE/wgSOzk1DXpk0k73qCM8xw2UvD5kJmDUfOomqMpWCkJRlvKXGmoeBm18USjVIk04SClxTB6YrgLAPLWYK9HLUt5cmc0vYES8GnTeRc6skZbQkWdxRsIcyBRzx1DbTk9FbU0caTPOgJHhJKnOGIVhQqvKmo0llRw9sabrZkDtdg3PqaKi9oatjY8B+G371paMg6+mZFNNtQ04mWBq3rYLOmtWWQp8KJnpy9DdFensyjdqZ+yY40VJlH8wcdLzC8PZnvHMFUTZUrDTkLyQaGus5X5LzpYAf3i+e/ZlhqGqWhh6Ou6xTR9Z6oi5AZZtp7Mj2EEm8oSpxiYZCHU/1fbGdNNNRRoZMhmilEb2gqHOEJDtXkHK/JnG6IrvbPCwV3NhONVdS1thBMs1T4QOBcTWa2IzhMk2nW5Kyn9tXUtpv9RsG2msxk+ZsQzRQacJncpgke0+T8y5Fzj8BiGo7XlJjaTIlpQs7KFjpqGnKuoyEPeIKnFMkZHvopgh81ySxNFWvJWcKRs70j2FOT012IllEEO1n4pD1513Yg2ssQPOThOkvyrqHUdEXOSEsihmBbTbKX1kLBPWqWkLOqJbjB3GBIZmoa8qWl4CG/iZ7oiA72ZL7TJNeZUY7kFQftDcHHluBzRbCegzMtrRjVQpX2lgoPKKLJAkcbMl01XK2p7yhL8pCBbQ3BN2avJgKvttcrWDK3CiUOVxQ8ZP+pqXKyIxnmBymCg5vJjNfkPK4+c8cIfK8ocVt7kmfd/I5SR1hKvCzUtb+lhgc00ZaO6CyhIQP1Uv4yIZjload72PXX0OIJvnFU+0Zf6MhsJwTfW0r0UwQfW4LNLZl5HK261JCZ4qnBaAreVAS3WrjV0LBnNDUNNDToCEeFfwgcb4gOEqLRhirWkexrCEYKVV711DLYEE1XBEsp5tpTGjorkomKYF9FDXv7fR3BGwbettSxnyL53MBPjsxDZjMh+VUW9NRxq1DhVk+FSxQcaGjV9Pawv6eGByw5qzoy7xk4RsOShqjJwWKe/1pEEfzkobeD/dQJmpqedcyBTy2sr4nGNRH0c0SPWTLrqAc0OQcb/gemKgqucQT7ySWKCn2EUotoCvpZct7RO2sy/QW0IWcXd7pQRQyZVwT2USRO87uhjioTLKV2brpMUcMQRbKH/N2T+UlTpaMls6cmc6CCNy3JdYYSUzzJQ4oSD3oKLncULOiJvjBEC2oqnCJkJluCYy2ZQ5so9YYlZ1VLlQU1mXEW1jZERwj/MUSRc24TdexlqLKfQBtDTScJUV8FszXBEY5ktpD5Ur9hYB4Nb1iikw3JoYpkKX+RodRKFt53MMuRnKSpY31PwYaGaILh3wxJGz9TkTPEETxoCWZrgvOlmyMzxFEwVJE5xZKzvyJ4WxEc16Gd4Xe3Weq4XH2jKRikqOkGQ87hQnC7wBmGYLAnesX3M+S87eFATauuN+Qcrh7xIxXJbUIdMw3JGE3ylCWzrieaqCn4zhGM19TQ3z1oH1AX+pWEqIc7wNGAkULBo/ZxRaV9NNyh4Br3rCHZzbzmSfawBL0dNRwpW1kK9mxPXR9povcdrGSZK9c2k0xwFGzjuniCtRSZCZ6ccZ7gaktmgAOtKbG/JnOkJrjcQTdFMsxRQ2cLY3WTIrlCw1eWKn8R6pvt4GFDso3QoL4a3nLk3G6JrtME3dSenpx7PNFTmga0EaJTLQ061sEeQoWXhSo9LTXsaSjoJQRXeZLtDclbCrYzfzHHeaKjHCVOUkQHO3JeEepr56mhiyaYYKjjNU+Fed1wS5VlhWSqI/hYUdDOkaxiKehoyOnrCV5yBHtbWFqTHCCwtpDcYolesVR5yUzTZBb3RNMd0d6WP+SvhuBmRcGxnuQzT95IC285cr41cLGQ6aJJhmi4TMGempxeimBRQw1tFKV+8jd6KuzoSTqqDxzRtpZkurvKEHxlqXKRIjjfUNNXQsNOsRScoWFLT+YeRZVD3GRN0MdQcKqQjHDMrdGGVu3iYJpQx3WGUvfbmxwFfR20WBq0oYY7LMFhhgYtr8jpaEnaOzjawWWaTP8mMr0t/EPDPoqcnxTBI5o58L7uoWnMrpoqPwgVrlAUWE+V+TQl9rawoyP6QGAlQw2TPRX+YSkxyBC8Z6jhHkXBgQL7WII3DVFnRfCrBfxewv9D6xsyjys4VkhWb9pUU627JllV0YDNHMku/ldNMMXDEo4aFnAkk4U6frNEU4XgZUPmEKHUl44KrzmYamjAbh0JFvGnaTLPu1s9jPCwjFpYiN7z1DTOk/nc07CfDFzmCf7i+bfNHXhDtLeBXzTBT5rkMvWOIxpl4EMh2LGJBu2syDnAEx2naEhHDWMMzPZEhygyS1mS5RTJr5ZkoKbEUoYqr2kqdDUE8ztK7OaIntJkFrIECwv8LJTaVx5XJE86go8dFeZ3FN3rjabCAYpoYEeC9zzJVULBbmZhDyd7ko09ydpNZ3nm2Kee4FPPXHnYEF1nqOFEC08LUVcDvYXkJHW8gTaKCk9YGOeIJhqiE4ToPEepdp7IWFjdwnWaufGMwJJCMtUTTBBK9BGCOy2tGGrJTHIwyEOzp6aPzNMOtlZkDvcEWpP5SVNhfkvDxhmSazTJXYrM9U1E0xwFVwqZQwzJxw6+kGGGUj2FglGGmnb1/G51udRSMNlTw6GGnCcUwVcOpmsqTHa06o72sw1RL02p9z0VbnMLOaIX3QKaYKSCFQzBKEUNHTSc48k53RH9wxGMtpQa5KjjW0W0n6XCCCG4yxNNdhQ4R4l1Ff+2sSd6UFHiIEOyqqFgT01mEUMD+joy75jPhOA+oVVLm309FR4yVOlp4RhLiScNmSmaYF5Pw0STrOIoWMSR2UkRXOMp+M4SHW8o8Zoi6OZgjKOaFar8zZDzkWzvKOjkKBjmCXby8JahhjXULY4KlzgKLvAwxVGhvyd4zxB1d9T0piazmKLCVZY5sKiD0y2ZSYrkUEPUbIk+dlQ4SJHTR50k1DPaUWIdTZW9NJwnJMOECgd7ou/MnppMJ02O1VT4Wsh85MnZzcFTngpXGKo84qmwgKbCL/orR/SzJ2crA+t6Mp94KvxJUeIbT3CQu1uIdlQEOzlKfS3UMcrTiFmOuroocrZrT2AcmamOKg8YomeEKm/rlT2sociMaybaUlFhuqHCM2qIJ+rg4EcDFymiDSxzaHdPcpE62pD5kyM5SBMoA1PaUtfIthS85ig1VPiPPYXgYEMNk4Qq7TXBgo7oT57gPUdwgCHzhIVFPFU6OYJzHAX9m5oNrVjeE61miDrqQ4VSa1oiURTsKHC0IfjNwU2WzK6eqK8jWln4g15TVBnqmDteCJ501PGAocJhhqjZdtBEB6lnhLreFJKxmlKbeGrqLiSThVIbCdGzloasa6lpMQXHCME2boLpJgT7yWaemu6wBONbqGNVRS0PKIL7LckbjmQtR7K8I5qtqel+T/ChJTNIKLjdUMNIRyvOEko9YYl2cwQveBikCNawJKcLBbc7+JM92mysNvd/Fqp8a0k6CNEe7cnZrxlW0wQXaXjaktnRwNOGZKYiONwS7a1JVheq3WgJHlQUGKHKmp4KAxXR/ULURcNgoa4zhKSLpZR3kxRRb0NmD0OFn+UCS7CzI1nbP6+o4x47QZE5xRCt3ZagnYcvmpYQktXdk5YKXTzBC57kKEe0VVuiSYqapssMS3C9p2CKkHOg8B8Pa8p5atrIw3qezIWanMGa5HRDNF6RM9wcacl0N+Q8Z8hsIkSnaIIdHRUOEebAPy1zbCkhM062FCJtif7PU+UtoVXzWKqM1PxXO8cfdruhFQ/a6x3JKYagvVDhQEtNiyiiSQ7OsuRsZUku0CRNDs4Sog6KKjsZgk2bYJqijgsEenoKeniinRXBn/U3lgpPdyDZynQx8IiioMnCep5Ky8mjGs6Wty0l1hUQTcNWswS3WRp2kCNZwJG8omG8JphPUaFbC8lEfabwP7VtM9yoaNCAjpR41VNhrD9LkbN722v0CoZMByFzhaW+MyzRYEWFDQwN2M4/JiT76PuljT3VU/A36eaIThb+R9oZGOAJ9tewkgGvqOMNRWYjT/Cwu99Q8LqDE4TgbLWxJ1jaDDAERsFOFrobgjUsBScaguXU8kKm2RL19tRypSHnHNlHiIZqgufs4opgQdVdwxBNNFBR6kVFqb8ogimOzB6a6HTzrlDHEpYaxjiiA4TMQobkDg2vejjfwJGWmnbVFAw3H3hq2NyQfG7hz4aC+w3BbwbesG0swYayvpAs6++Ri1Vfzx93mFChvyN5xVHTS+0p9aqCAxyZ6ZacZyw5+7uuQkFPR9DDk9NOiE7X1PCYJVjVUqq7JlrHwWALF5nfHNGjApdpqgzx5OwilDhCiDYTgnc9waGW4BdLNNUQvOtpzDOWHDH8D7TR/A/85KljEQu3NREc4Pl/6B1Hhc8Umb5CsKMmGC9EPcxoT2amwHNCmeOEnOPbklnMkbOgIvO5UMOpQrS9UGVdt6iH/fURjhI/WOpaW9OKLYRod6HCUEdOX000wpDZQ6hwg6LgZfOqo1RfT/CrJzjekXOGhpc1VW71ZLbXyyp+93ILbC1kPtIEYx0FIx1VDrLoVzXRKRYWk809yYlC9ImcrinxtabKnzRJk3lAU1OLEN1j2zrYzr2myHRXJFf4h4QKT1qSTzTB5+ZNTzTRkAxX8FcLV2uS8eoQQ2aAkFzvCM72sJIcJET3WPjRk5wi32uSS9rfZajpWEvj9hW42F4o5NytSXYy8IKHay10VYdrcl4SkqscrXpMwyGOgtkajheSxdQqmpxP1L3t4R5PqasFnrQEjytq6qgp9Y09Qx9o4S1FzhUCn1kyHSzBWLemoSGvOqLNhZyBjmCaAUYpMgt4Ck7wBBMMwWKWgjsUwTaGVsxWC1mYoKiyqqeGKYqonSIRQ3KIkHO0pmAxTdBHkbOvfllfr+AA+7gnc50huVKYK393FOyg7rbPO/izI7hE4CnHHHnJ0ogNPRUGeUpsrZZTBJcrovUcJe51BPsr6GkJdhCCsZ6aTtMEb2pqWkqeVtDXE/QVggsU/Nl86d9RMF3DxvZTA58agu810RWawCiSzzXBeU3MMW9oyJUedvNEvQyNu1f10BSMddR1vaLCYpYa/mGocLSiYDcLbQz8aMn5iyF4xBNMs1P0QEOV7o5gaWGuzSeLue4tt3ro7y4Tgm4G/mopdZgl6q0o6KzJWE3mMksNr3r+a6CbT8g5wZNzT9O7fi/zpaOmnz3BRoqos+tv9zMbdpxsqDBOEewtJLt7cg5wtKKbvldpSzRRCD43VFheCI7yZLppggMVBS/KMAdHODJvOwq2NQSbKKKPLdFWQs7Fqo+mpl01JXYRgq8dnGLhTiFzqmWsUMdpllZdbKlyvSdYxhI9YghOtxR8LgSLWHK62mGGVoxzBE8LNWzqH9CUesQzFy5RQzTc56mhi6fgXEWwpKfE5Z7M05ZgZUPmo6auiv8YKzDYwWBLMErIbKHJvOwIrvEdhOBcQ9JdU1NHQ7CXn2XIDFBKU2WAgcX9UAUzDXWd5alwuyJ41Z9rjKLCL4aCp4WarhPm2rH+SaHUYE001JDZ2ZAzXPjdMpZWvC9wmqIB2lLhQ01D5jO06hghWMndbM7yRJMsoCj1vYbnFQVrW9jak3OlEJ3s/96+p33dEPRV5GxiqaGjIthUU6FFEZyqCa5qJrpBdzSw95IUnOPIrCUUjRZQFrbw5PR0R1qiYx3cb6nrWUMrBmmiBQxVHtTew5ICP/ip6g4hed/Akob/32wvBHsIOX83cI8hGeNeNPCIkPmXe8fPKx84OMSRM1MTdXSwjCZ4S30jVGhvqTRak/OVhgGazHuOCud5onEO1lJr6ecVyaOK6H7zqlBlIaHE0oroCgfvGJIdPcmfLNGLjpz7hZwZQpUbFME0A1cIJa7VNORkgfsMBatbKgwwJM9bSvQXeNOvbIjelg6WWvo5kvbKaJJNHexkKNHL9xRyFlH8Ti2riB5wVPhUk7nGkJnoCe428LR/wRGdYIlmWebCyxou1rCk4g/ShugBDX0V0ZQWkh0dOVsagkM0yV6OoLd5ye+pRlsCr0n+KiQrGuq5yJDzrTAXHtLUMduTDBVKrSm3eHL+6ijxhFDX9Z5gVU/wliHYTMiMFpKLNMEywu80wd3meoFmt6VbRMPenhrOc6DVe4pgXU8DnnHakLOIIrlF4FZPIw6R+zxBP0dyq6OOZ4Q5sLKCcz084ok+VsMMyQhNZmmBgX5xIXOEJTmi7VsGTvMTNdHHhpzdbE8Du2oKxgvBqQKdDDnTFOylCFaxR1syz2iqrOI/FEpNc3C6f11/7+ASS6l2inq2ciTrCCzgyemrCL5SVPjQkdPZUmGy2c9Sw9FtR1sS30RmsKPCS4rkIC/2U0MduwucYolGaPjKEyhzmiPYXagyWbYz8LWBDdzRimAXzxx4z8K9hpzlhLq+NiQ97HuKorMUfK/OVvC2JfiHUPCQI/q7J2gjK+tTDNxkCc4TMssqCs4TGtLVwQihyoAWgj9bosU80XGW6Ac9TJGziaUh5+hnFcHOnlaM1iRn29NaqGENTTTSUHCH2tWTeV0osUhH6psuVLjRUmGWhm6OZEshGeNowABHcJ2Bpy2ZszRcKkRXd2QuKVEeXnbfaEq825FguqfgfE2whlChSRMdron+LATTPQ2Z369t4B9C5gs/ylzv+CMmepIDPclFQl13W0rspPd1JOcbghGOEutqCv5qacURQl3dDKyvyJlqKXGPgcM9FfawJAMVmdcspcYKOZc4GjDYkFlK05olNMHyHn4zFNykyOxt99RkHlfwmiHo60l2EKI+mhreEKp080Tbug08BVPcgoqC5zWt+NLDTZ7oNSF51N1qie7Va3uCCwyZbkINf/NED6jzOsBdZjFN8oqG3wxVunqCSYYKf3EdhJyf9YWGf7tRU2oH3VHgPr1fe5J9hOgHd7xQ0y7qBwXr23aGErP0cm64JVjZwsOGqL+mhNgZmhJLW2oY4UhedsyBgzrCKrq7BmcpNVhR6jBPq64Vgi+kn6XE68pp8J5/+0wRHGOpsKenQn9DZntPzjRLZpDAdD2fnSgkG9tmIXnUwQ6WVighs7Yi2MxQ0N3CqYaCXkJ0oyOztMDJjmSSpcpvlrk0RMMOjmArQ04PRV1DO1FwhCVaUVPpKUM03JK5SxPsIWRu8/CGHi8UHChiqGFDTbSRJWeYUDDcH6vJWUxR4k1FXbMUwV6e4AJFXS8oMqsZKqzvYQ9DDQdZckY4aGsIhtlubbd2r3j4QBMoTamdPZk7O/Bf62lacZwneNjQoGcdVU7zJOd7ghsUHOkosagic6cnWc8+4gg285R6zZP5s1/LUbCKIznTwK36PkdwlOrl4U1LwfdCCa+IrvFkmgw1PCAUXKWo0sURXWcI2muKJlgyFzhynCY4RBOsqCjoI1R5zREco0n2Vt09BQtYSizgKNHfUmUrQ5UOCh51BFcLmY7umhYqXKQomOop8bUnWNNQcIiBcYaC6xzMNOS8JQQfeqKBmmglB+97ok/lfk3ygaHSyZaCRTzRxQo6GzLfa2jWBPepw+UmT7SQEJyiyRkhBLMVOfcoMjcK0eZChfUNzFAUzCsEN5vP/X1uP/n/aoMX+K+nw/Hjr/9xOo7j7Pju61tLcgvJpTWXNbfN5jLpi6VfCOviTktKlFusQixdEKWmEBUKNaIpjZRSSOXSgzaaKLdabrm1/9nZ+/f+vd/vz/v9+Xy+zZ7PRorYoZqyLrCwQdEAixxVOEXNNnjX2nUSRlkqGmWowk8lxR50JPy9Bo6qJXaXwNvREBvnThPEPrewryLhcAnj5WE15Fqi8W7R1sAuEu86S4ENikItFN4xkv9Af4nXSnUVcLiA9xzesFpivRRVeFKtsMRaKBhuSbjOELnAUtlSQUpXgdfB4Z1oSbnFEetbQ0IrAe+Y+pqnDcEJFj6S8LDZzZHwY4e3XONNlARraomNEt2bkvGsosA3ioyHm+6jCMbI59wqt4eeara28IzEmyPgoRaUOEDhTVdEJhmCoTWfC0p8aNkCp0oYqih2iqGi4yXeMkOsn4LdLLnmKfh/YogjNsPebeFGR4m9BJHLzB61XQ3BtpISfS2FugsK9FAtLWX1dCRcrCnUp44CNzuCowUZmxSRgYaE6Za0W2u/E7CVXCiI/UOR8aAm1+OSyE3mOUcwyc1zBBeoX1kiKy0Zfxck1Gsyulti11i83QTBF5Kg3pDQThFMVHiPSlK+0cSedng/VaS8bOZbtsBcTcZAR8JP5KeqQ1OYKAi20njdNNRpgnsU//K+JnaXJaGTomr7aYIphoRn9aeShJWKEq9LcozSF7QleEfDI5LYm5bgVkFkRwVDBCVu0DDIkGupo8TZBq+/pMQURYErJQmPKGKjNDkWOLx7Jd5QizdUweIaKrlP7SwJDhZvONjLkOsBBX9UpGxnydhXkfBLQ8IxgojQbLFnJf81JytSljclYYyEFyx0kVBvKWOFJmONpshGAcsduQY5giVNCV51eOdJYo/pLhbvM0uDHSevNKRcrKZIqnCtJeEsO95RoqcgGK4ocZcho1tTYtcZvH41pNQ7vA0WrhIfOSraIIntIAi+NXWCErdbkvrWwjRLrt0NKUdL6KSOscTOdMSOUtBHwL6OLA0vNSdynaWQEnCpIvKaIrJJEbvHkmuNhn6OjM8VkSGSqn1uYJCGHnq9I3aLhNME3t6GjIkO7xrNFumpyTNX/NrwX7CrIRiqqWijI9JO4d1iieykyfiposQIQ8YjjsjlBh6oHWbwRjgYJQn2NgSnNycmJAk3NiXhx44Sxykihxm8ybUwT1OVKySc7vi3OXVkdBJ4AyXBeksDXG0IhgtYY0lY5ahCD0ehborIk5aUWRJviMA7Xt5kyRjonrXENkm8yYqgs8VzgrJmClK20uMM3jRJ0FiQICQF9hdETlLQWRIb5ki6WDfWRPobvO6a4GP5mcOrNzDFELtTkONLh9dXE8xypEg7z8A9jkhrQ6Fhjlg/QVktJXxt4WXzT/03Q8IaQWSqIuEvloQ2mqC9Jfi7wRul4RX3pSPlzpoVlmCtI2jvKHCFhjcM3sN6lqF6HxnKelLjXWbwrpR4xzuCrTUZx2qq9oAh8p6ixCUGr78g8oyjRAtB5CZFwi80VerVpI0h+IeBxa6Zg6kWvpDHaioYYuEsRbDC3eOmC2JvGYLeioxGknL2UATNJN6hmtj1DlpLvDVmocYbrGCVJKOrg4X6DgddLA203BKMFngdJJFtFd7vJLm6KEpc5yjQrkk7M80SGe34X24nSex1Ra5Omgb71JKyg8SrU3i/kARKwWpH0kOGhKkObyfd0ZGjvyXlAkVZ4xRbYJ2irFMkFY1SwyWxr2oo4zlNiV+7zmaweFpT4kR3kaDAFW6xpSqzJay05FtYR4HmZhc9UxKbbfF2V8RG1MBmSaE+kmC6JnaRXK9gsiXhJHl/U0qM0WTcbyhwkYIvFGwjSbjfwhiJt8ZSQU+Bd5+marPMOkVkD0muxYLIfEuhh60x/J92itguihJSEMySVPQnTewnEm+620rTQEMsOfo4/kP/0ARvWjitlpSX7GxBgcMEsd3EEeYWvdytd+Saawi6aCIj1CkGb6Aj9rwhx16Cf3vAwFy5pyLhVonXzy51FDpdEblbkdJbUcEPDEFzQ8qNmhzzLTmmKWKbFCXeEuRabp6rxbvAtLF442QjQ+wEA9eL1xSR7Q0JXzlSHjJ4exq89yR0laScJ/FW6z4a73pFMEfDiRZvuvijIt86RaSFOl01riV2mD1UEvxGk/Geg5aWwGki1zgKPG9J2U8PEg8qYvMsZeytiTRXBMslCU8JSlxi8EabjwUldlDNLfzTUmCgxWsjqWCOHavYAqsknKFIO0yQ61VL5AVFxk6WhEaCAkdJgt9aSkzXlKNX2jEa79waYuc7gq0N3GDJGCBhoiTXUEPsdknCUE1CK0fwsiaylSF2uiDyO4XX3pFhNd7R4itFGc0k/ElBZwWvq+GC6szVeEoS/MZ+qylwpKNKv9Z469UOjqCjwlusicyTxG6VpNxcQ8IncoR4RhLbR+NdpGGmJWOcIzJGUuKPGpQg8rrG21dOMqQssJQ4RxH5jaUqnZuQ0F4Q+cjxLwPtpZbIAk3QTJHQWBE5S1BokoVtDd6lhqr9UpHSUxMcIYl9pojsb8h4SBOsMQcqvOWC2E8EVehqiJ1hrrAEbQxeK0NGZ0Gkq+guSRgniM23bIHVkqwx4hiHd7smaOyglyIyQuM978j4VS08J/A2G1KeMBRo4fBaSNhKUEZfQewVQ/C1I+MgfbEleEzCUw7mKXI0M3hd1EESVji8x5uQ41nxs1q4RMJCCXs7Iq9acpxn22oSDnQ/sJTxsCbHIYZiLyhY05TY0ZLIOQrGaSJDDN4t8pVaIrsqqFdEegtizc1iTew5Q4ayBDMUsQMkXocaYkc0hZua412siZ1rSXlR460zRJ5SlHGe5j801RLMlJTxtaOM3Q1pvxJ45zUlWFD7rsAbpfEm1JHxG0eh8w2R7QQVzBUw28FhFp5QZzq8t2rx2joqulYTWSuJdTYfWwqMFMcovFmSyJPNyLhE4E10pHzYjOC3huArRa571ZsGajQpQx38SBP5pyZB6lMU3khDnp0MBV51BE9o2E+TY5Ml2E8S7C0o6w1xvCZjf0HkVEHCzFoyNmqC+9wdcqN+Tp7jSDheE9ws8Y5V0NJCn2bk2tqSY4okdrEhx1iDN8cSudwepWmAGXKcJXK65H9to8jYQRH7SBF01ESUJdd0TayVInaWhLkOjlXE5irKGOnI6GSWGCJa482zBI9rCr0jyTVcEuzriC1vcr6mwFGSiqy5zMwxBH/TJHwjSPhL8+01kaaSUuMFKTcLEvaUePcrSmwn8DZrgikWb7CGPxkSjhQwrRk57tctmxLsb9sZvL9LSlyuSLlWkqOjwduo8b6Uv1DkmudIeFF2dHCgxVtk8dpIvHpBxhEOdhKk7OLIUSdJ+cSRY57B+0DgGUUlNfpthTfGkauzxrvTsUUaCVhlKeteTXCoJDCa2NOKhOmC4G1H8JBd4OBZReSRGkqcb/CO1PyLJTLB4j1q8JYaIutEjSLX8YKM+a6phdMsdLFUoV5RTm9JSkuDN8WcIon0NZMNZWh1q8C7SJEwV5HxrmnnTrf3KoJBlmCYI2ilSLlfEvlE4011NNgjgthzEua0oKK7JLE7HZHlEl60BLMVFewg4EWNt0ThrVNEVkkiTwpKXSWJzdRENgvKGq4IhjsiezgSFtsfCUq8qki5S1LRQeYQQ4nemmCkImWMw3tFUoUBZk4NOeZYEp4XRKTGa6wJjrWNHBVJR4m3FCnbuD6aak2WsMTh3SZImGCIPKNgsDpVwnsa70K31lCFJZYcwwSMFcQulGTsZuEaSdBXkPGZhu0FsdUO73RHjq8MPGGIfaGIbVTk6iuI3GFgucHrIQkmWSJdBd7BBu+uOryWAhY7+Lki9rK5wtEQzWwvtbqGhIMFwWRJsElsY4m9IIg9L6lCX0VklaPAYkfkZEGDnOWowlBJjtMUkcGK4Lg6EtoZInMUBVYLgn0UsdmCyCz7gIGHFfk+k1QwTh5We7A9x+IdJ6CvIkEagms0hR50eH9UnTQJ+2oiKyVlLFUE+8gBGu8MQ3CppUHesnjTHN4QB/UGPhCTHLFPHMFrCqa73gqObUJGa03wgbhHkrCfpEpzNLE7JDS25FMKhlhKKWKfCgqstLCPu1zBXy0J2ztwjtixBu8UTRn9LVtkmCN2iyFhtME70JHRQ1KVZXqKI/KNIKYMCYs1GUMEKbM1bKOI9LDXC7zbHS+bt+1MTWS9odA9DtrYtpbImQJ2VHh/lisEwaHqUk1kjKTAKknkBEXkbkdMGwq0dnhzLJF3NJH3JVwrqOB4Sca2hti75nmJN0WzxS6UxDYoEpxpa4htVlRjkYE7DZGzJVU72uC9IyhQL4i8YfGWSYLLNcHXloyz7QhNifmKSE9JgfGmuyLhc403Xm9vqcp6gXe3xuuv8F6VJNxkyTHEkHG2g0aKXL0MsXc1bGfgas2//dCONXiNLCX+5mB7eZIl1kHh7ajwpikyzlUUWOVOsjSQlsS+M0R+pPje/dzBXRZGO0rMtgQrLLG9VSu9n6CMXS3BhwYmSoIBhsjNBmZbgusE9BCPCP5triU4VhNbJfE+swSP27aayE8tuTpYYjtrYjMVGZdp2NpS1s6aBnKSHDsbKuplKbHM4a0wMFd/5/DmGyKrJSUaW4IBrqUhx0vyfzTBBLPIUcnZdrAkNsKR0sWRspumSns6Ch0v/qqIbBYUWKvPU/CFoyrDJGwSNFhbA/MlzKqjrO80hRbpKx0Jewsi/STftwGSlKc1JZyAzx05dhLEdnfQvhZOqiHWWEAHC7+30FuRcZUgaO5gpaIK+xsiHRUsqaPElTV40xQZQ107Q9BZE1nryDVGU9ZSQ47bmhBpLcYpUt7S+xuK/FiT8qKjwXYw5ypS2iuCv7q1gtgjhuBuB8LCFY5cUuCNtsQOFcT+4Ih9JX+k8Ea6v0iCIRZOtCT0Et00JW5UeC85Cg0ScK0k411HcG1zKtre3SeITBRk7WfwDhEvaYLTHP9le0m8By0JDwn4TlLW/aJOvGHxdjYUes+ScZigCkYQdNdEOhkiezgShqkx8ueKjI8lDfK2oNiOFvrZH1hS+tk7NV7nOmLHicGWEgubkXKdwdtZknCLJXaCpkrjZBtLZFsDP9CdxWsSr05Sxl6CMmoFbCOgryX40uDtamB7SVmXW4Ihlgpmq+00tBKUUa83WbjLUNkzDmY7cow1JDygyPGlhgGKYKz4vcV7QBNbJIgM11TUqZaMdwTeSguH6rOaw1JRKzaaGyxVm2EJ/uCIrVWUcZUkcp2grMsEjK+DMwS59jQk3Kd6SEq1d0S6uVmO4Bc1lDXTUcHjluCXEq+1OlBDj1pi9zgiXxnKuE0SqTXwhqbETW6RggMEnGl/q49UT2iCzgJvRwVXS2K/d6+ZkyUl7jawSVLit46EwxVljDZwoSQ20sDBihztHfk2yA8NVZghiXwrYHQdfKAOtzsayjhY9bY0yE2CWEeJ9xfzO423xhL5syS2TFJofO2pboHob0nY4GiAgRrvGQEDa/FWSsoaaYl0syRsEt3kWoH3B01shCXhTUWe9w3Bt44SC9QCh3eShQctwbaK2ApLroGCMlZrYqvlY3qYhM0aXpFkPOuoqJ3Dm6fxXrGwVF9gCWZagjPqznfkuMKQ8DPTQRO8ZqG1hPGKEm9IgpGW4DZDgTNriTxvFiq+Lz+0cKfp4wj6OCK9JSnzNSn9LFU7UhKZZMnYwcJ8s8yRsECScK4j5UOB95HFO0CzhY4xJxuCix0lDlEUeMdS6EZBkTsUkZ4K74dugyTXS7aNgL8aqjDfkCE0ZbwkCXpaWCKhl8P7VD5jxykivSyxyZrYERbe168LYu9ZYh86IkscgVLE7tWPKmJv11CgoyJltMEbrohtVAQfO4ImltiHEroYEs7RxAarVpY8AwXMcMReFOTYWe5iiLRQxJ5Q8DtJ8LQhWOhIeFESPGsILhbNDRljNbHzNRlTFbk2S3L0NOS6V1KFJYKUbSTcIIhM0wQ/s2TM0SRMNcQmSap3jCH4yhJZKSkwyRHpYYgsFeQ4U7xoCB7VVOExhXepo9ABBsYbvGWKXPME3lyH95YioZ0gssQRWWbI+FaSMkXijZXwgiTlYdPdkNLaETxlyDVIwqeaEus0aTcYcg0RVOkpR3CSJqIddK+90JCxzsDVloyrFd5ZAr4TBKfaWa6boEA7C7s6EpYaeFPjveooY72mjIccLHJ9HUwVlDhKkmutJDJBwnp1rvulJZggKDRfbXAkvC/4l3ozQOG9a8lxjx0i7nV4jSXc7vhe3OwIxjgSHjdEhhsif9YkPGlus3iLFDnWOFhtCZbJg0UbQcIaR67JjthoCyMEZRwhiXWyxO5QxI6w5NhT4U1WsJvDO60J34fW9hwzwlKij6ZAW9ne4L0s8C6XeBMEkd/LQy1VucBRot6QMlbivaBhoBgjqGiCJNhsqVp/S2SsG6DIONCR0dXhvWbJ+MRRZJkkuEjgDXJjFQW6SSL7GXK8Z2CZg7cVsbWGoKmEpzQ5elpiy8Ryg7dMkLLUEauzeO86CuwlSOlgYLojZWeJ9xM3S1PWfEfKl5ISLQ0MEKR8YOB2QfCxJBjrKPCN4f9MkaSsqoVXJBmP7EpFZ9UQfOoOFwSzBN4MQ8LsGrymlipcJQhmy0GaQjPqCHaXRwuCZwRbqK2Fg9wlClZqYicrIgMdZfxTQ0c7TBIbrChxmuzoKG8XRaSrIhhiyNFJkrC7oIAWMEOQa5aBekPCRknCo4IKPrYkvCDI8aYmY7WFtprgekcJZ3oLIqssCSMtFbQTJKwXYy3BY5oCh2iKPCpJOE+zRdpYgi6O2KmOAgvVCYaU4ySRek1sgyFhJ403QFHiVEmJHwtybO1gs8Hr5+BETQX3War0qZngYGgtVZtoqd6vFSk/UwdZElYqyjrF4HXUeFspIi9IGKf4j92pKGAdCYMVsbcV3kRF0N+R8LUd5PCsIGWoxDtBkCI0nKofdJQxT+LtZflvuc8Q3CjwWkq8KwUpHzkK/NmSsclCL0nseQdj5FRH5CNHSgtLiW80Of5HU9Hhlsga9bnBq3fEVltKfO5IaSTmGjjc4J0otcP7QsJUSQM8pEj5/wCuUuC2DWz8AAAAAElFTkSuQmCC"); -} diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/theme/base16-dark.css b/src/main/resources/static/editor.md-master/lib/codemirror/theme/base16-dark.css deleted file mode 100644 index b009d2b..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/theme/base16-dark.css +++ /dev/null @@ -1,38 +0,0 @@ -/* - - Name: Base16 Default Dark - Author: Chris Kempson (http://chriskempson.com) - - CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-chrome-devtools) - Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) - -*/ - -.cm-s-base16-dark.CodeMirror {background: #151515; color: #e0e0e0;} -.cm-s-base16-dark div.CodeMirror-selected {background: #303030 !important;} -.cm-s-base16-dark.CodeMirror ::selection { background: rgba(48, 48, 48, .99); } -.cm-s-base16-dark.CodeMirror ::-moz-selection { background: rgba(48, 48, 48, .99); } -.cm-s-base16-dark .CodeMirror-gutters {background: #151515; border-right: 0px;} -.cm-s-base16-dark .CodeMirror-guttermarker { color: #ac4142; } -.cm-s-base16-dark .CodeMirror-guttermarker-subtle { color: #505050; } -.cm-s-base16-dark .CodeMirror-linenumber {color: #505050;} -.cm-s-base16-dark .CodeMirror-cursor {border-left: 1px solid #b0b0b0 !important;} - -.cm-s-base16-dark span.cm-comment {color: #8f5536;} -.cm-s-base16-dark span.cm-atom {color: #aa759f;} -.cm-s-base16-dark span.cm-number {color: #aa759f;} - -.cm-s-base16-dark span.cm-property, .cm-s-base16-dark span.cm-attribute {color: #90a959;} -.cm-s-base16-dark span.cm-keyword {color: #ac4142;} -.cm-s-base16-dark span.cm-string {color: #f4bf75;} - -.cm-s-base16-dark span.cm-variable {color: #90a959;} -.cm-s-base16-dark span.cm-variable-2 {color: #6a9fb5;} -.cm-s-base16-dark span.cm-def {color: #d28445;} -.cm-s-base16-dark span.cm-bracket {color: #e0e0e0;} -.cm-s-base16-dark span.cm-tag {color: #ac4142;} -.cm-s-base16-dark span.cm-link {color: #aa759f;} -.cm-s-base16-dark span.cm-error {background: #ac4142; color: #b0b0b0;} - -.cm-s-base16-dark .CodeMirror-activeline-background {background: #202020 !important;} -.cm-s-base16-dark .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;} diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/theme/base16-light.css b/src/main/resources/static/editor.md-master/lib/codemirror/theme/base16-light.css deleted file mode 100644 index 15df6d3..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/theme/base16-light.css +++ /dev/null @@ -1,38 +0,0 @@ -/* - - Name: Base16 Default Light - Author: Chris Kempson (http://chriskempson.com) - - CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-chrome-devtools) - Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) - -*/ - -.cm-s-base16-light.CodeMirror {background: #f5f5f5; color: #202020;} -.cm-s-base16-light div.CodeMirror-selected {background: #e0e0e0 !important;} -.cm-s-base16-light.CodeMirror ::selection { background: #e0e0e0; } -.cm-s-base16-light.CodeMirror ::-moz-selection { background: #e0e0e0; } -.cm-s-base16-light .CodeMirror-gutters {background: #f5f5f5; border-right: 0px;} -.cm-s-base16-light .CodeMirror-guttermarker { color: #ac4142; } -.cm-s-base16-light .CodeMirror-guttermarker-subtle { color: #b0b0b0; } -.cm-s-base16-light .CodeMirror-linenumber {color: #b0b0b0;} -.cm-s-base16-light .CodeMirror-cursor {border-left: 1px solid #505050 !important;} - -.cm-s-base16-light span.cm-comment {color: #8f5536;} -.cm-s-base16-light span.cm-atom {color: #aa759f;} -.cm-s-base16-light span.cm-number {color: #aa759f;} - -.cm-s-base16-light span.cm-property, .cm-s-base16-light span.cm-attribute {color: #90a959;} -.cm-s-base16-light span.cm-keyword {color: #ac4142;} -.cm-s-base16-light span.cm-string {color: #f4bf75;} - -.cm-s-base16-light span.cm-variable {color: #90a959;} -.cm-s-base16-light span.cm-variable-2 {color: #6a9fb5;} -.cm-s-base16-light span.cm-def {color: #d28445;} -.cm-s-base16-light span.cm-bracket {color: #202020;} -.cm-s-base16-light span.cm-tag {color: #ac4142;} -.cm-s-base16-light span.cm-link {color: #aa759f;} -.cm-s-base16-light span.cm-error {background: #ac4142; color: #505050;} - -.cm-s-base16-light .CodeMirror-activeline-background {background: #DDDCDC !important;} -.cm-s-base16-light .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;} diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/theme/blackboard.css b/src/main/resources/static/editor.md-master/lib/codemirror/theme/blackboard.css deleted file mode 100644 index 02289b6..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/theme/blackboard.css +++ /dev/null @@ -1,32 +0,0 @@ -/* Port of TextMate's Blackboard theme */ - -.cm-s-blackboard.CodeMirror { background: #0C1021; color: #F8F8F8; } -.cm-s-blackboard .CodeMirror-selected { background: #253B76 !important; } -.cm-s-blackboard.CodeMirror ::selection { background: rgba(37, 59, 118, .99); } -.cm-s-blackboard.CodeMirror ::-moz-selection { background: rgba(37, 59, 118, .99); } -.cm-s-blackboard .CodeMirror-gutters { background: #0C1021; border-right: 0; } -.cm-s-blackboard .CodeMirror-guttermarker { color: #FBDE2D; } -.cm-s-blackboard .CodeMirror-guttermarker-subtle { color: #888; } -.cm-s-blackboard .CodeMirror-linenumber { color: #888; } -.cm-s-blackboard .CodeMirror-cursor { border-left: 1px solid #A7A7A7 !important; } - -.cm-s-blackboard .cm-keyword { color: #FBDE2D; } -.cm-s-blackboard .cm-atom { color: #D8FA3C; } -.cm-s-blackboard .cm-number { color: #D8FA3C; } -.cm-s-blackboard .cm-def { color: #8DA6CE; } -.cm-s-blackboard .cm-variable { color: #FF6400; } -.cm-s-blackboard .cm-operator { color: #FBDE2D;} -.cm-s-blackboard .cm-comment { color: #AEAEAE; } -.cm-s-blackboard .cm-string { color: #61CE3C; } -.cm-s-blackboard .cm-string-2 { color: #61CE3C; } -.cm-s-blackboard .cm-meta { color: #D8FA3C; } -.cm-s-blackboard .cm-builtin { color: #8DA6CE; } -.cm-s-blackboard .cm-tag { color: #8DA6CE; } -.cm-s-blackboard .cm-attribute { color: #8DA6CE; } -.cm-s-blackboard .cm-header { color: #FF6400; } -.cm-s-blackboard .cm-hr { color: #AEAEAE; } -.cm-s-blackboard .cm-link { color: #8DA6CE; } -.cm-s-blackboard .cm-error { background: #9D1E15; color: #F8F8F8; } - -.cm-s-blackboard .CodeMirror-activeline-background {background: #3C3636 !important;} -.cm-s-blackboard .CodeMirror-matchingbracket {outline:1px solid grey;color:white !important} \ No newline at end of file diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/theme/cobalt.css b/src/main/resources/static/editor.md-master/lib/codemirror/theme/cobalt.css deleted file mode 100644 index 3915589..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/theme/cobalt.css +++ /dev/null @@ -1,25 +0,0 @@ -.cm-s-cobalt.CodeMirror { background: #002240; color: white; } -.cm-s-cobalt div.CodeMirror-selected { background: #b36539 !important; } -.cm-s-cobalt.CodeMirror ::selection { background: rgba(179, 101, 57, .99); } -.cm-s-cobalt.CodeMirror ::-moz-selection { background: rgba(179, 101, 57, .99); } -.cm-s-cobalt .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; } -.cm-s-cobalt .CodeMirror-guttermarker { color: #ffee80; } -.cm-s-cobalt .CodeMirror-guttermarker-subtle { color: #d0d0d0; } -.cm-s-cobalt .CodeMirror-linenumber { color: #d0d0d0; } -.cm-s-cobalt .CodeMirror-cursor { border-left: 1px solid white !important; } - -.cm-s-cobalt span.cm-comment { color: #08f; } -.cm-s-cobalt span.cm-atom { color: #845dc4; } -.cm-s-cobalt span.cm-number, .cm-s-cobalt span.cm-attribute { color: #ff80e1; } -.cm-s-cobalt span.cm-keyword { color: #ffee80; } -.cm-s-cobalt span.cm-string { color: #3ad900; } -.cm-s-cobalt span.cm-meta { color: #ff9d00; } -.cm-s-cobalt span.cm-variable-2, .cm-s-cobalt span.cm-tag { color: #9effff; } -.cm-s-cobalt span.cm-variable-3, .cm-s-cobalt span.cm-def { color: white; } -.cm-s-cobalt span.cm-bracket { color: #d8d8d8; } -.cm-s-cobalt span.cm-builtin, .cm-s-cobalt span.cm-special { color: #ff9e59; } -.cm-s-cobalt span.cm-link { color: #845dc4; } -.cm-s-cobalt span.cm-error { color: #9d1e15; } - -.cm-s-cobalt .CodeMirror-activeline-background {background: #002D57 !important;} -.cm-s-cobalt .CodeMirror-matchingbracket {outline:1px solid grey;color:white !important} diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/theme/colorforth.css b/src/main/resources/static/editor.md-master/lib/codemirror/theme/colorforth.css deleted file mode 100644 index 73fbf80..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/theme/colorforth.css +++ /dev/null @@ -1,33 +0,0 @@ -.cm-s-colorforth.CodeMirror { background: #000000; color: #f8f8f8; } -.cm-s-colorforth .CodeMirror-gutters { background: #0a001f; border-right: 1px solid #aaa; } -.cm-s-colorforth .CodeMirror-guttermarker { color: #FFBD40; } -.cm-s-colorforth .CodeMirror-guttermarker-subtle { color: #78846f; } -.cm-s-colorforth .CodeMirror-linenumber { color: #bababa; } -.cm-s-colorforth .CodeMirror-cursor { border-left: 1px solid white !important; } - -.cm-s-colorforth span.cm-comment { color: #ededed; } -.cm-s-colorforth span.cm-def { color: #ff1c1c; font-weight:bold; } -.cm-s-colorforth span.cm-keyword { color: #ffd900; } -.cm-s-colorforth span.cm-builtin { color: #00d95a; } -.cm-s-colorforth span.cm-variable { color: #73ff00; } -.cm-s-colorforth span.cm-string { color: #007bff; } -.cm-s-colorforth span.cm-number { color: #00c4ff; } -.cm-s-colorforth span.cm-atom { color: #606060; } - -.cm-s-colorforth span.cm-variable-2 { color: #EEE; } -.cm-s-colorforth span.cm-variable-3 { color: #DDD; } -.cm-s-colorforth span.cm-property {} -.cm-s-colorforth span.cm-operator {} - -.cm-s-colorforth span.cm-meta { color: yellow; } -.cm-s-colorforth span.cm-qualifier { color: #FFF700; } -.cm-s-colorforth span.cm-bracket { color: #cc7; } -.cm-s-colorforth span.cm-tag { color: #FFBD40; } -.cm-s-colorforth span.cm-attribute { color: #FFF700; } -.cm-s-colorforth span.cm-error { color: #f00; } - -.cm-s-colorforth .CodeMirror-selected { background: #333d53 !important; } - -.cm-s-colorforth span.cm-compilation { background: rgba(255, 255, 255, 0.12); } - -.cm-s-colorforth .CodeMirror-activeline-background {background: #253540 !important;} diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/theme/eclipse.css b/src/main/resources/static/editor.md-master/lib/codemirror/theme/eclipse.css deleted file mode 100644 index 317218e..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/theme/eclipse.css +++ /dev/null @@ -1,23 +0,0 @@ -.cm-s-eclipse span.cm-meta {color: #FF1717;} -.cm-s-eclipse span.cm-keyword { line-height: 1em; font-weight: bold; color: #7F0055; } -.cm-s-eclipse span.cm-atom {color: #219;} -.cm-s-eclipse span.cm-number {color: #164;} -.cm-s-eclipse span.cm-def {color: #00f;} -.cm-s-eclipse span.cm-variable {color: black;} -.cm-s-eclipse span.cm-variable-2 {color: #0000C0;} -.cm-s-eclipse span.cm-variable-3 {color: #0000C0;} -.cm-s-eclipse span.cm-property {color: black;} -.cm-s-eclipse span.cm-operator {color: black;} -.cm-s-eclipse span.cm-comment {color: #3F7F5F;} -.cm-s-eclipse span.cm-string {color: #2A00FF;} -.cm-s-eclipse span.cm-string-2 {color: #f50;} -.cm-s-eclipse span.cm-qualifier {color: #555;} -.cm-s-eclipse span.cm-builtin {color: #30a;} -.cm-s-eclipse span.cm-bracket {color: #cc7;} -.cm-s-eclipse span.cm-tag {color: #170;} -.cm-s-eclipse span.cm-attribute {color: #00c;} -.cm-s-eclipse span.cm-link {color: #219;} -.cm-s-eclipse span.cm-error {color: #f00;} - -.cm-s-eclipse .CodeMirror-activeline-background {background: #e8f2ff !important;} -.cm-s-eclipse .CodeMirror-matchingbracket {outline:1px solid grey; color:black !important;} diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/theme/elegant.css b/src/main/resources/static/editor.md-master/lib/codemirror/theme/elegant.css deleted file mode 100644 index dd7df7b..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/theme/elegant.css +++ /dev/null @@ -1,13 +0,0 @@ -.cm-s-elegant span.cm-number, .cm-s-elegant span.cm-string, .cm-s-elegant span.cm-atom {color: #762;} -.cm-s-elegant span.cm-comment {color: #262; font-style: italic; line-height: 1em;} -.cm-s-elegant span.cm-meta {color: #555; font-style: italic; line-height: 1em;} -.cm-s-elegant span.cm-variable {color: black;} -.cm-s-elegant span.cm-variable-2 {color: #b11;} -.cm-s-elegant span.cm-qualifier {color: #555;} -.cm-s-elegant span.cm-keyword {color: #730;} -.cm-s-elegant span.cm-builtin {color: #30a;} -.cm-s-elegant span.cm-link {color: #762;} -.cm-s-elegant span.cm-error {background-color: #fdd;} - -.cm-s-elegant .CodeMirror-activeline-background {background: #e8f2ff !important;} -.cm-s-elegant .CodeMirror-matchingbracket {outline:1px solid grey; color:black !important;} diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/theme/erlang-dark.css b/src/main/resources/static/editor.md-master/lib/codemirror/theme/erlang-dark.css deleted file mode 100644 index 25c7e0a..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/theme/erlang-dark.css +++ /dev/null @@ -1,34 +0,0 @@ -.cm-s-erlang-dark.CodeMirror { background: #002240; color: white; } -.cm-s-erlang-dark div.CodeMirror-selected { background: #b36539 !important; } -.cm-s-erlang-dark.CodeMirror ::selection { background: rgba(179, 101, 57, .99); } -.cm-s-erlang-dark.CodeMirror ::-moz-selection { background: rgba(179, 101, 57, .99); } -.cm-s-erlang-dark .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; } -.cm-s-erlang-dark .CodeMirror-guttermarker { color: white; } -.cm-s-erlang-dark .CodeMirror-guttermarker-subtle { color: #d0d0d0; } -.cm-s-erlang-dark .CodeMirror-linenumber { color: #d0d0d0; } -.cm-s-erlang-dark .CodeMirror-cursor { border-left: 1px solid white !important; } - -.cm-s-erlang-dark span.cm-atom { color: #f133f1; } -.cm-s-erlang-dark span.cm-attribute { color: #ff80e1; } -.cm-s-erlang-dark span.cm-bracket { color: #ff9d00; } -.cm-s-erlang-dark span.cm-builtin { color: #eaa; } -.cm-s-erlang-dark span.cm-comment { color: #77f; } -.cm-s-erlang-dark span.cm-def { color: #e7a; } -.cm-s-erlang-dark span.cm-keyword { color: #ffee80; } -.cm-s-erlang-dark span.cm-meta { color: #50fefe; } -.cm-s-erlang-dark span.cm-number { color: #ffd0d0; } -.cm-s-erlang-dark span.cm-operator { color: #d55; } -.cm-s-erlang-dark span.cm-property { color: #ccc; } -.cm-s-erlang-dark span.cm-qualifier { color: #ccc; } -.cm-s-erlang-dark span.cm-quote { color: #ccc; } -.cm-s-erlang-dark span.cm-special { color: #ffbbbb; } -.cm-s-erlang-dark span.cm-string { color: #3ad900; } -.cm-s-erlang-dark span.cm-string-2 { color: #ccc; } -.cm-s-erlang-dark span.cm-tag { color: #9effff; } -.cm-s-erlang-dark span.cm-variable { color: #50fe50; } -.cm-s-erlang-dark span.cm-variable-2 { color: #e0e; } -.cm-s-erlang-dark span.cm-variable-3 { color: #ccc; } -.cm-s-erlang-dark span.cm-error { color: #9d1e15; } - -.cm-s-erlang-dark .CodeMirror-activeline-background {background: #013461 !important;} -.cm-s-erlang-dark .CodeMirror-matchingbracket {outline:1px solid grey; color:white !important;} diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/theme/lesser-dark.css b/src/main/resources/static/editor.md-master/lib/codemirror/theme/lesser-dark.css deleted file mode 100644 index 5af8b7f..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/theme/lesser-dark.css +++ /dev/null @@ -1,47 +0,0 @@ -/* -http://lesscss.org/ dark theme -Ported to CodeMirror by Peter Kroon -*/ -.cm-s-lesser-dark { - line-height: 1.3em; -} -.cm-s-lesser-dark.CodeMirror { background: #262626; color: #EBEFE7; text-shadow: 0 -1px 1px #262626; } -.cm-s-lesser-dark div.CodeMirror-selected {background: #45443B !important;} /* 33322B*/ -.cm-s-lesser-dark.CodeMirror ::selection { background: rgba(69, 68, 59, .99); } -.cm-s-lesser-dark.CodeMirror ::-moz-selection { background: rgba(69, 68, 59, .99); } -.cm-s-lesser-dark .CodeMirror-cursor { border-left: 1px solid white !important; } -.cm-s-lesser-dark pre { padding: 0 8px; }/*editable code holder*/ - -.cm-s-lesser-dark.CodeMirror span.CodeMirror-matchingbracket { color: #7EFC7E; }/*65FC65*/ - -.cm-s-lesser-dark .CodeMirror-gutters { background: #262626; border-right:1px solid #aaa; } -.cm-s-lesser-dark .CodeMirror-guttermarker { color: #599eff; } -.cm-s-lesser-dark .CodeMirror-guttermarker-subtle { color: #777; } -.cm-s-lesser-dark .CodeMirror-linenumber { color: #777; } - -.cm-s-lesser-dark span.cm-keyword { color: #599eff; } -.cm-s-lesser-dark span.cm-atom { color: #C2B470; } -.cm-s-lesser-dark span.cm-number { color: #B35E4D; } -.cm-s-lesser-dark span.cm-def {color: white;} -.cm-s-lesser-dark span.cm-variable { color:#D9BF8C; } -.cm-s-lesser-dark span.cm-variable-2 { color: #669199; } -.cm-s-lesser-dark span.cm-variable-3 { color: white; } -.cm-s-lesser-dark span.cm-property {color: #92A75C;} -.cm-s-lesser-dark span.cm-operator {color: #92A75C;} -.cm-s-lesser-dark span.cm-comment { color: #666; } -.cm-s-lesser-dark span.cm-string { color: #BCD279; } -.cm-s-lesser-dark span.cm-string-2 {color: #f50;} -.cm-s-lesser-dark span.cm-meta { color: #738C73; } -.cm-s-lesser-dark span.cm-qualifier {color: #555;} -.cm-s-lesser-dark span.cm-builtin { color: #ff9e59; } -.cm-s-lesser-dark span.cm-bracket { color: #EBEFE7; } -.cm-s-lesser-dark span.cm-tag { color: #669199; } -.cm-s-lesser-dark span.cm-attribute {color: #00c;} -.cm-s-lesser-dark span.cm-header {color: #a0a;} -.cm-s-lesser-dark span.cm-quote {color: #090;} -.cm-s-lesser-dark span.cm-hr {color: #999;} -.cm-s-lesser-dark span.cm-link {color: #00c;} -.cm-s-lesser-dark span.cm-error { color: #9d1e15; } - -.cm-s-lesser-dark .CodeMirror-activeline-background {background: #3C3A3A !important;} -.cm-s-lesser-dark .CodeMirror-matchingbracket {outline:1px solid grey; color:white !important;} diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/theme/mbo.css b/src/main/resources/static/editor.md-master/lib/codemirror/theme/mbo.css deleted file mode 100644 index e398795..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/theme/mbo.css +++ /dev/null @@ -1,37 +0,0 @@ -/****************************************************************/ -/* Based on mbonaci's Brackets mbo theme */ -/* https://github.com/mbonaci/global/blob/master/Mbo.tmTheme */ -/* Create your own: http://tmtheme-editor.herokuapp.com */ -/****************************************************************/ - -.cm-s-mbo.CodeMirror {background: #2c2c2c; color: #ffffec;} -.cm-s-mbo div.CodeMirror-selected {background: #716C62 !important;} -.cm-s-mbo.CodeMirror ::selection { background: rgba(113, 108, 98, .99); } -.cm-s-mbo.CodeMirror ::-moz-selection { background: rgba(113, 108, 98, .99); } -.cm-s-mbo .CodeMirror-gutters {background: #4e4e4e; border-right: 0px;} -.cm-s-mbo .CodeMirror-guttermarker { color: white; } -.cm-s-mbo .CodeMirror-guttermarker-subtle { color: grey; } -.cm-s-mbo .CodeMirror-linenumber {color: #dadada;} -.cm-s-mbo .CodeMirror-cursor {border-left: 1px solid #ffffec !important;} - -.cm-s-mbo span.cm-comment {color: #95958a;} -.cm-s-mbo span.cm-atom {color: #00a8c6;} -.cm-s-mbo span.cm-number {color: #00a8c6;} - -.cm-s-mbo span.cm-property, .cm-s-mbo span.cm-attribute {color: #9ddfe9;} -.cm-s-mbo span.cm-keyword {color: #ffb928;} -.cm-s-mbo span.cm-string {color: #ffcf6c;} -.cm-s-mbo span.cm-string.cm-property {color: #ffffec;} - -.cm-s-mbo span.cm-variable {color: #ffffec;} -.cm-s-mbo span.cm-variable-2 {color: #00a8c6;} -.cm-s-mbo span.cm-def {color: #ffffec;} -.cm-s-mbo span.cm-bracket {color: #fffffc; font-weight: bold;} -.cm-s-mbo span.cm-tag {color: #9ddfe9;} -.cm-s-mbo span.cm-link {color: #f54b07;} -.cm-s-mbo span.cm-error {border-bottom: #636363; color: #ffffec;} -.cm-s-mbo span.cm-qualifier {color: #ffffec;} - -.cm-s-mbo .CodeMirror-activeline-background {background: #494b41 !important;} -.cm-s-mbo .CodeMirror-matchingbracket {color: #222 !important;} -.cm-s-mbo .CodeMirror-matchingtag {background: rgba(255, 255, 255, .37);} diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/theme/mdn-like.css b/src/main/resources/static/editor.md-master/lib/codemirror/theme/mdn-like.css deleted file mode 100644 index 93293c0..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/theme/mdn-like.css +++ /dev/null @@ -1,46 +0,0 @@ -/* - MDN-LIKE Theme - Mozilla - Ported to CodeMirror by Peter Kroon - Report bugs/issues here: https://github.com/codemirror/CodeMirror/issues - GitHub: @peterkroon - - The mdn-like theme is inspired on the displayed code examples at: https://developer.mozilla.org/en-US/docs/Web/CSS/animation - -*/ -.cm-s-mdn-like.CodeMirror { color: #999; background-color: #fff; } -.cm-s-mdn-like .CodeMirror-selected { background: #cfc !important; } -.cm-s-mdn-like.CodeMirror ::selection { background: #cfc; } -.cm-s-mdn-like.CodeMirror ::-moz-selection { background: #cfc; } - -.cm-s-mdn-like .CodeMirror-gutters { background: #f8f8f8; border-left: 6px solid rgba(0,83,159,0.65); color: #333; } -.cm-s-mdn-like .CodeMirror-linenumber { color: #aaa; margin-left: 3px; } -div.cm-s-mdn-like .CodeMirror-cursor { border-left: 2px solid #222; } - -.cm-s-mdn-like .cm-keyword { color: #6262FF; } -.cm-s-mdn-like .cm-atom { color: #F90; } -.cm-s-mdn-like .cm-number { color: #ca7841; } -.cm-s-mdn-like .cm-def { color: #8DA6CE; } -.cm-s-mdn-like span.cm-variable-2, .cm-s-mdn-like span.cm-tag { color: #690; } -.cm-s-mdn-like span.cm-variable-3, .cm-s-mdn-like span.cm-def { color: #07a; } - -.cm-s-mdn-like .cm-variable { color: #07a; } -.cm-s-mdn-like .cm-property { color: #905; } -.cm-s-mdn-like .cm-qualifier { color: #690; } - -.cm-s-mdn-like .cm-operator { color: #cda869; } -.cm-s-mdn-like .cm-comment { color:#777; font-weight:normal; } -.cm-s-mdn-like .cm-string { color:#07a; font-style:italic; } -.cm-s-mdn-like .cm-string-2 { color:#bd6b18; } /*?*/ -.cm-s-mdn-like .cm-meta { color: #000; } /*?*/ -.cm-s-mdn-like .cm-builtin { color: #9B7536; } /*?*/ -.cm-s-mdn-like .cm-tag { color: #997643; } -.cm-s-mdn-like .cm-attribute { color: #d6bb6d; } /*?*/ -.cm-s-mdn-like .cm-header { color: #FF6400; } -.cm-s-mdn-like .cm-hr { color: #AEAEAE; } -.cm-s-mdn-like .cm-link { color:#ad9361; font-style:italic; text-decoration:none; } -.cm-s-mdn-like .cm-error { border-bottom: 1px solid red; } - -div.cm-s-mdn-like .CodeMirror-activeline-background {background: #efefff;} -div.cm-s-mdn-like span.CodeMirror-matchingbracket {outline:1px solid grey; color: inherit;} - -.cm-s-mdn-like.CodeMirror { background-image: url(data:image/png;base64,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); } diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/theme/midnight.css b/src/main/resources/static/editor.md-master/lib/codemirror/theme/midnight.css deleted file mode 100644 index 296af4f..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/theme/midnight.css +++ /dev/null @@ -1,47 +0,0 @@ -/* Based on the theme at http://bonsaiden.github.com/JavaScript-Garden */ - -/**/ -.cm-s-midnight span.CodeMirror-matchhighlight { background: #494949; } -.cm-s-midnight.CodeMirror-focused span.CodeMirror-matchhighlight { background: #314D67 !important; } - -/**/ -.cm-s-midnight .CodeMirror-activeline-background {background: #253540 !important;} - -.cm-s-midnight.CodeMirror { - background: #0F192A; - color: #D1EDFF; -} - -.cm-s-midnight.CodeMirror {border-top: 1px solid black; border-bottom: 1px solid black;} - -.cm-s-midnight div.CodeMirror-selected {background: #314D67 !important;} -.cm-s-midnight.CodeMirror ::selection { background: rgba(49, 77, 103, .99); } -.cm-s-midnight.CodeMirror ::-moz-selection { background: rgba(49, 77, 103, .99); } -.cm-s-midnight .CodeMirror-gutters {background: #0F192A; border-right: 1px solid;} -.cm-s-midnight .CodeMirror-guttermarker { color: white; } -.cm-s-midnight .CodeMirror-guttermarker-subtle { color: #d0d0d0; } -.cm-s-midnight .CodeMirror-linenumber {color: #D0D0D0;} -.cm-s-midnight .CodeMirror-cursor { - border-left: 1px solid #F8F8F0 !important; -} - -.cm-s-midnight span.cm-comment {color: #428BDD;} -.cm-s-midnight span.cm-atom {color: #AE81FF;} -.cm-s-midnight span.cm-number {color: #D1EDFF;} - -.cm-s-midnight span.cm-property, .cm-s-midnight span.cm-attribute {color: #A6E22E;} -.cm-s-midnight span.cm-keyword {color: #E83737;} -.cm-s-midnight span.cm-string {color: #1DC116;} - -.cm-s-midnight span.cm-variable {color: #FFAA3E;} -.cm-s-midnight span.cm-variable-2 {color: #FFAA3E;} -.cm-s-midnight span.cm-def {color: #4DD;} -.cm-s-midnight span.cm-bracket {color: #D1EDFF;} -.cm-s-midnight span.cm-tag {color: #449;} -.cm-s-midnight span.cm-link {color: #AE81FF;} -.cm-s-midnight span.cm-error {background: #F92672; color: #F8F8F0;} - -.cm-s-midnight .CodeMirror-matchingbracket { - text-decoration: underline; - color: white !important; -} diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/theme/monokai.css b/src/main/resources/static/editor.md-master/lib/codemirror/theme/monokai.css deleted file mode 100644 index 6dfcc73..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/theme/monokai.css +++ /dev/null @@ -1,33 +0,0 @@ -/* Based on Sublime Text's Monokai theme */ - -.cm-s-monokai.CodeMirror {background: #272822; color: #f8f8f2;} -.cm-s-monokai div.CodeMirror-selected {background: #49483E !important;} -.cm-s-monokai.CodeMirror ::selection { background: rgba(73, 72, 62, .99); } -.cm-s-monokai.CodeMirror ::-moz-selection { background: rgba(73, 72, 62, .99); } -.cm-s-monokai .CodeMirror-gutters {background: #272822; border-right: 0px;} -.cm-s-monokai .CodeMirror-guttermarker { color: white; } -.cm-s-monokai .CodeMirror-guttermarker-subtle { color: #d0d0d0; } -.cm-s-monokai .CodeMirror-linenumber {color: #d0d0d0;} -.cm-s-monokai .CodeMirror-cursor {border-left: 1px solid #f8f8f0 !important;} - -.cm-s-monokai span.cm-comment {color: #75715e;} -.cm-s-monokai span.cm-atom {color: #ae81ff;} -.cm-s-monokai span.cm-number {color: #ae81ff;} - -.cm-s-monokai span.cm-property, .cm-s-monokai span.cm-attribute {color: #a6e22e;} -.cm-s-monokai span.cm-keyword {color: #f92672;} -.cm-s-monokai span.cm-string {color: #e6db74;} - -.cm-s-monokai span.cm-variable {color: #a6e22e;} -.cm-s-monokai span.cm-variable-2 {color: #9effff;} -.cm-s-monokai span.cm-def {color: #fd971f;} -.cm-s-monokai span.cm-bracket {color: #f8f8f2;} -.cm-s-monokai span.cm-tag {color: #f92672;} -.cm-s-monokai span.cm-link {color: #ae81ff;} -.cm-s-monokai span.cm-error {background: #f92672; color: #f8f8f0;} - -.cm-s-monokai .CodeMirror-activeline-background {background: #373831 !important;} -.cm-s-monokai .CodeMirror-matchingbracket { - text-decoration: underline; - color: white !important; -} diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/theme/neat.css b/src/main/resources/static/editor.md-master/lib/codemirror/theme/neat.css deleted file mode 100644 index 115083b..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/theme/neat.css +++ /dev/null @@ -1,12 +0,0 @@ -.cm-s-neat span.cm-comment { color: #a86; } -.cm-s-neat span.cm-keyword { line-height: 1em; font-weight: bold; color: blue; } -.cm-s-neat span.cm-string { color: #a22; } -.cm-s-neat span.cm-builtin { line-height: 1em; font-weight: bold; color: #077; } -.cm-s-neat span.cm-special { line-height: 1em; font-weight: bold; color: #0aa; } -.cm-s-neat span.cm-variable { color: black; } -.cm-s-neat span.cm-number, .cm-s-neat span.cm-atom { color: #3a3; } -.cm-s-neat span.cm-meta {color: #555;} -.cm-s-neat span.cm-link { color: #3a3; } - -.cm-s-neat .CodeMirror-activeline-background {background: #e8f2ff !important;} -.cm-s-neat .CodeMirror-matchingbracket {outline:1px solid grey; color:black !important;} diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/theme/neo.css b/src/main/resources/static/editor.md-master/lib/codemirror/theme/neo.css deleted file mode 100644 index cecaaf2..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/theme/neo.css +++ /dev/null @@ -1,43 +0,0 @@ -/* neo theme for codemirror */ - -/* Color scheme */ - -.cm-s-neo.CodeMirror { - background-color:#ffffff; - color:#2e383c; - line-height:1.4375; -} -.cm-s-neo .cm-comment {color:#75787b} -.cm-s-neo .cm-keyword, .cm-s-neo .cm-property {color:#1d75b3} -.cm-s-neo .cm-atom,.cm-s-neo .cm-number {color:#75438a} -.cm-s-neo .cm-node,.cm-s-neo .cm-tag {color:#9c3328} -.cm-s-neo .cm-string {color:#b35e14} -.cm-s-neo .cm-variable,.cm-s-neo .cm-qualifier {color:#047d65} - - -/* Editor styling */ - -.cm-s-neo pre { - padding:0; -} - -.cm-s-neo .CodeMirror-gutters { - border:none; - border-right:10px solid transparent; - background-color:transparent; -} - -.cm-s-neo .CodeMirror-linenumber { - padding:0; - color:#e0e2e5; -} - -.cm-s-neo .CodeMirror-guttermarker { color: #1d75b3; } -.cm-s-neo .CodeMirror-guttermarker-subtle { color: #e0e2e5; } - -.cm-s-neo div.CodeMirror-cursor { - width: auto; - border: 0; - background: rgba(155,157,162,0.37); - z-index: 1; -} diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/theme/night.css b/src/main/resources/static/editor.md-master/lib/codemirror/theme/night.css deleted file mode 100644 index 6b2ac6c..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/theme/night.css +++ /dev/null @@ -1,28 +0,0 @@ -/* Loosely based on the Midnight Textmate theme */ - -.cm-s-night.CodeMirror { background: #0a001f; color: #f8f8f8; } -.cm-s-night div.CodeMirror-selected { background: #447 !important; } -.cm-s-night.CodeMirror ::selection { background: rgba(68, 68, 119, .99); } -.cm-s-night.CodeMirror ::-moz-selection { background: rgba(68, 68, 119, .99); } -.cm-s-night .CodeMirror-gutters { background: #0a001f; border-right: 1px solid #aaa; } -.cm-s-night .CodeMirror-guttermarker { color: white; } -.cm-s-night .CodeMirror-guttermarker-subtle { color: #bbb; } -.cm-s-night .CodeMirror-linenumber { color: #f8f8f8; } -.cm-s-night .CodeMirror-cursor { border-left: 1px solid white !important; } - -.cm-s-night span.cm-comment { color: #6900a1; } -.cm-s-night span.cm-atom { color: #845dc4; } -.cm-s-night span.cm-number, .cm-s-night span.cm-attribute { color: #ffd500; } -.cm-s-night span.cm-keyword { color: #599eff; } -.cm-s-night span.cm-string { color: #37f14a; } -.cm-s-night span.cm-meta { color: #7678e2; } -.cm-s-night span.cm-variable-2, .cm-s-night span.cm-tag { color: #99b2ff; } -.cm-s-night span.cm-variable-3, .cm-s-night span.cm-def { color: white; } -.cm-s-night span.cm-bracket { color: #8da6ce; } -.cm-s-night span.cm-comment { color: #6900a1; } -.cm-s-night span.cm-builtin, .cm-s-night span.cm-special { color: #ff9e59; } -.cm-s-night span.cm-link { color: #845dc4; } -.cm-s-night span.cm-error { color: #9d1e15; } - -.cm-s-night .CodeMirror-activeline-background {background: #1C005A !important;} -.cm-s-night .CodeMirror-matchingbracket {outline:1px solid grey; color:white !important;} diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/theme/paraiso-dark.css b/src/main/resources/static/editor.md-master/lib/codemirror/theme/paraiso-dark.css deleted file mode 100644 index af914b6..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/theme/paraiso-dark.css +++ /dev/null @@ -1,38 +0,0 @@ -/* - - Name: Paraíso (Dark) - Author: Jan T. Sott - - Color scheme by Jan T. Sott (https://github.com/idleberg/Paraiso-CodeMirror) - Inspired by the art of Rubens LP (http://www.rubenslp.com.br) - -*/ - -.cm-s-paraiso-dark.CodeMirror {background: #2f1e2e; color: #b9b6b0;} -.cm-s-paraiso-dark div.CodeMirror-selected {background: #41323f !important;} -.cm-s-paraiso-dark.CodeMirror ::selection { background: rgba(65, 50, 63, .99); } -.cm-s-paraiso-dark.CodeMirror ::-moz-selection { background: rgba(65, 50, 63, .99); } -.cm-s-paraiso-dark .CodeMirror-gutters {background: #2f1e2e; border-right: 0px;} -.cm-s-paraiso-dark .CodeMirror-guttermarker { color: #ef6155; } -.cm-s-paraiso-dark .CodeMirror-guttermarker-subtle { color: #776e71; } -.cm-s-paraiso-dark .CodeMirror-linenumber {color: #776e71;} -.cm-s-paraiso-dark .CodeMirror-cursor {border-left: 1px solid #8d8687 !important;} - -.cm-s-paraiso-dark span.cm-comment {color: #e96ba8;} -.cm-s-paraiso-dark span.cm-atom {color: #815ba4;} -.cm-s-paraiso-dark span.cm-number {color: #815ba4;} - -.cm-s-paraiso-dark span.cm-property, .cm-s-paraiso-dark span.cm-attribute {color: #48b685;} -.cm-s-paraiso-dark span.cm-keyword {color: #ef6155;} -.cm-s-paraiso-dark span.cm-string {color: #fec418;} - -.cm-s-paraiso-dark span.cm-variable {color: #48b685;} -.cm-s-paraiso-dark span.cm-variable-2 {color: #06b6ef;} -.cm-s-paraiso-dark span.cm-def {color: #f99b15;} -.cm-s-paraiso-dark span.cm-bracket {color: #b9b6b0;} -.cm-s-paraiso-dark span.cm-tag {color: #ef6155;} -.cm-s-paraiso-dark span.cm-link {color: #815ba4;} -.cm-s-paraiso-dark span.cm-error {background: #ef6155; color: #8d8687;} - -.cm-s-paraiso-dark .CodeMirror-activeline-background {background: #4D344A !important;} -.cm-s-paraiso-dark .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;} diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/theme/paraiso-light.css b/src/main/resources/static/editor.md-master/lib/codemirror/theme/paraiso-light.css deleted file mode 100644 index e198066..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/theme/paraiso-light.css +++ /dev/null @@ -1,38 +0,0 @@ -/* - - Name: Paraíso (Light) - Author: Jan T. Sott - - Color scheme by Jan T. Sott (https://github.com/idleberg/Paraiso-CodeMirror) - Inspired by the art of Rubens LP (http://www.rubenslp.com.br) - -*/ - -.cm-s-paraiso-light.CodeMirror {background: #e7e9db; color: #41323f;} -.cm-s-paraiso-light div.CodeMirror-selected {background: #b9b6b0 !important;} -.cm-s-paraiso-light.CodeMirror ::selection { background: #b9b6b0; } -.cm-s-paraiso-light.CodeMirror ::-moz-selection { background: #b9b6b0; } -.cm-s-paraiso-light .CodeMirror-gutters {background: #e7e9db; border-right: 0px;} -.cm-s-paraiso-light .CodeMirror-guttermarker { color: black; } -.cm-s-paraiso-light .CodeMirror-guttermarker-subtle { color: #8d8687; } -.cm-s-paraiso-light .CodeMirror-linenumber {color: #8d8687;} -.cm-s-paraiso-light .CodeMirror-cursor {border-left: 1px solid #776e71 !important;} - -.cm-s-paraiso-light span.cm-comment {color: #e96ba8;} -.cm-s-paraiso-light span.cm-atom {color: #815ba4;} -.cm-s-paraiso-light span.cm-number {color: #815ba4;} - -.cm-s-paraiso-light span.cm-property, .cm-s-paraiso-light span.cm-attribute {color: #48b685;} -.cm-s-paraiso-light span.cm-keyword {color: #ef6155;} -.cm-s-paraiso-light span.cm-string {color: #fec418;} - -.cm-s-paraiso-light span.cm-variable {color: #48b685;} -.cm-s-paraiso-light span.cm-variable-2 {color: #06b6ef;} -.cm-s-paraiso-light span.cm-def {color: #f99b15;} -.cm-s-paraiso-light span.cm-bracket {color: #41323f;} -.cm-s-paraiso-light span.cm-tag {color: #ef6155;} -.cm-s-paraiso-light span.cm-link {color: #815ba4;} -.cm-s-paraiso-light span.cm-error {background: #ef6155; color: #776e71;} - -.cm-s-paraiso-light .CodeMirror-activeline-background {background: #CFD1C4 !important;} -.cm-s-paraiso-light .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;} diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/theme/pastel-on-dark.css b/src/main/resources/static/editor.md-master/lib/codemirror/theme/pastel-on-dark.css deleted file mode 100644 index 0d06f63..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/theme/pastel-on-dark.css +++ /dev/null @@ -1,53 +0,0 @@ -/** - * Pastel On Dark theme ported from ACE editor - * @license MIT - * @copyright AtomicPages LLC 2014 - * @author Dennis Thompson, AtomicPages LLC - * @version 1.1 - * @source https://github.com/atomicpages/codemirror-pastel-on-dark-theme - */ - -.cm-s-pastel-on-dark.CodeMirror { - background: #2c2827; - color: #8F938F; - line-height: 1.5; - font-size: 14px; -} -.cm-s-pastel-on-dark div.CodeMirror-selected { background: rgba(221,240,255,0.2) !important; } -.cm-s-pastel-on-dark.CodeMirror ::selection { background: rgba(221,240,255,0.2); } -.cm-s-pastel-on-dark.CodeMirror ::-moz-selection { background: rgba(221,240,255,0.2); } - -.cm-s-pastel-on-dark .CodeMirror-gutters { - background: #34302f; - border-right: 0px; - padding: 0 3px; -} -.cm-s-pastel-on-dark .CodeMirror-guttermarker { color: white; } -.cm-s-pastel-on-dark .CodeMirror-guttermarker-subtle { color: #8F938F; } -.cm-s-pastel-on-dark .CodeMirror-linenumber { color: #8F938F; } -.cm-s-pastel-on-dark .CodeMirror-cursor { border-left: 1px solid #A7A7A7 !important; } -.cm-s-pastel-on-dark span.cm-comment { color: #A6C6FF; } -.cm-s-pastel-on-dark span.cm-atom { color: #DE8E30; } -.cm-s-pastel-on-dark span.cm-number { color: #CCCCCC; } -.cm-s-pastel-on-dark span.cm-property { color: #8F938F; } -.cm-s-pastel-on-dark span.cm-attribute { color: #a6e22e; } -.cm-s-pastel-on-dark span.cm-keyword { color: #AEB2F8; } -.cm-s-pastel-on-dark span.cm-string { color: #66A968; } -.cm-s-pastel-on-dark span.cm-variable { color: #AEB2F8; } -.cm-s-pastel-on-dark span.cm-variable-2 { color: #BEBF55; } -.cm-s-pastel-on-dark span.cm-variable-3 { color: #DE8E30; } -.cm-s-pastel-on-dark span.cm-def { color: #757aD8; } -.cm-s-pastel-on-dark span.cm-bracket { color: #f8f8f2; } -.cm-s-pastel-on-dark span.cm-tag { color: #C1C144; } -.cm-s-pastel-on-dark span.cm-link { color: #ae81ff; } -.cm-s-pastel-on-dark span.cm-qualifier,.cm-s-pastel-on-dark span.cm-builtin { color: #C1C144; } -.cm-s-pastel-on-dark span.cm-error { - background: #757aD8; - color: #f8f8f0; -} -.cm-s-pastel-on-dark .CodeMirror-activeline-background { background: rgba(255, 255, 255, 0.031) !important; } -.cm-s-pastel-on-dark .CodeMirror-matchingbracket { - border: 1px solid rgba(255,255,255,0.25); - color: #8F938F !important; - margin: -1px -1px 0 -1px; -} diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/theme/rubyblue.css b/src/main/resources/static/editor.md-master/lib/codemirror/theme/rubyblue.css deleted file mode 100644 index d2fc0ec..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/theme/rubyblue.css +++ /dev/null @@ -1,25 +0,0 @@ -.cm-s-rubyblue.CodeMirror { background: #112435; color: white; } -.cm-s-rubyblue div.CodeMirror-selected { background: #38566F !important; } -.cm-s-rubyblue.CodeMirror ::selection { background: rgba(56, 86, 111, 0.99); } -.cm-s-rubyblue.CodeMirror ::-moz-selection { background: rgba(56, 86, 111, 0.99); } -.cm-s-rubyblue .CodeMirror-gutters { background: #1F4661; border-right: 7px solid #3E7087; } -.cm-s-rubyblue .CodeMirror-guttermarker { color: white; } -.cm-s-rubyblue .CodeMirror-guttermarker-subtle { color: #3E7087; } -.cm-s-rubyblue .CodeMirror-linenumber { color: white; } -.cm-s-rubyblue .CodeMirror-cursor { border-left: 1px solid white !important; } - -.cm-s-rubyblue span.cm-comment { color: #999; font-style:italic; line-height: 1em; } -.cm-s-rubyblue span.cm-atom { color: #F4C20B; } -.cm-s-rubyblue span.cm-number, .cm-s-rubyblue span.cm-attribute { color: #82C6E0; } -.cm-s-rubyblue span.cm-keyword { color: #F0F; } -.cm-s-rubyblue span.cm-string { color: #F08047; } -.cm-s-rubyblue span.cm-meta { color: #F0F; } -.cm-s-rubyblue span.cm-variable-2, .cm-s-rubyblue span.cm-tag { color: #7BD827; } -.cm-s-rubyblue span.cm-variable-3, .cm-s-rubyblue span.cm-def { color: white; } -.cm-s-rubyblue span.cm-bracket { color: #F0F; } -.cm-s-rubyblue span.cm-link { color: #F4C20B; } -.cm-s-rubyblue span.CodeMirror-matchingbracket { color:#F0F !important; } -.cm-s-rubyblue span.cm-builtin, .cm-s-rubyblue span.cm-special { color: #FF9D00; } -.cm-s-rubyblue span.cm-error { color: #AF2018; } - -.cm-s-rubyblue .CodeMirror-activeline-background {background: #173047 !important;} diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/theme/solarized.css b/src/main/resources/static/editor.md-master/lib/codemirror/theme/solarized.css deleted file mode 100644 index 4a10b7c..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/theme/solarized.css +++ /dev/null @@ -1,165 +0,0 @@ -/* -Solarized theme for code-mirror -http://ethanschoonover.com/solarized -*/ - -/* -Solarized color pallet -http://ethanschoonover.com/solarized/img/solarized-palette.png -*/ - -.solarized.base03 { color: #002b36; } -.solarized.base02 { color: #073642; } -.solarized.base01 { color: #586e75; } -.solarized.base00 { color: #657b83; } -.solarized.base0 { color: #839496; } -.solarized.base1 { color: #93a1a1; } -.solarized.base2 { color: #eee8d5; } -.solarized.base3 { color: #fdf6e3; } -.solarized.solar-yellow { color: #b58900; } -.solarized.solar-orange { color: #cb4b16; } -.solarized.solar-red { color: #dc322f; } -.solarized.solar-magenta { color: #d33682; } -.solarized.solar-violet { color: #6c71c4; } -.solarized.solar-blue { color: #268bd2; } -.solarized.solar-cyan { color: #2aa198; } -.solarized.solar-green { color: #859900; } - -/* Color scheme for code-mirror */ - -.cm-s-solarized { - line-height: 1.45em; - color-profile: sRGB; - rendering-intent: auto; -} -.cm-s-solarized.cm-s-dark { - color: #839496; - background-color: #002b36; - text-shadow: #002b36 0 1px; -} -.cm-s-solarized.cm-s-light { - background-color: #fdf6e3; - color: #657b83; - text-shadow: #eee8d5 0 1px; -} - -.cm-s-solarized .CodeMirror-widget { - text-shadow: none; -} - - -.cm-s-solarized .cm-keyword { color: #cb4b16 } -.cm-s-solarized .cm-atom { color: #d33682; } -.cm-s-solarized .cm-number { color: #d33682; } -.cm-s-solarized .cm-def { color: #2aa198; } - -.cm-s-solarized .cm-variable { color: #268bd2; } -.cm-s-solarized .cm-variable-2 { color: #b58900; } -.cm-s-solarized .cm-variable-3 { color: #6c71c4; } - -.cm-s-solarized .cm-property { color: #2aa198; } -.cm-s-solarized .cm-operator {color: #6c71c4;} - -.cm-s-solarized .cm-comment { color: #586e75; font-style:italic; } - -.cm-s-solarized .cm-string { color: #859900; } -.cm-s-solarized .cm-string-2 { color: #b58900; } - -.cm-s-solarized .cm-meta { color: #859900; } -.cm-s-solarized .cm-qualifier { color: #b58900; } -.cm-s-solarized .cm-builtin { color: #d33682; } -.cm-s-solarized .cm-bracket { color: #cb4b16; } -.cm-s-solarized .CodeMirror-matchingbracket { color: #859900; } -.cm-s-solarized .CodeMirror-nonmatchingbracket { color: #dc322f; } -.cm-s-solarized .cm-tag { color: #93a1a1 } -.cm-s-solarized .cm-attribute { color: #2aa198; } -.cm-s-solarized .cm-header { color: #586e75; } -.cm-s-solarized .cm-quote { color: #93a1a1; } -.cm-s-solarized .cm-hr { - color: transparent; - border-top: 1px solid #586e75; - display: block; -} -.cm-s-solarized .cm-link { color: #93a1a1; cursor: pointer; } -.cm-s-solarized .cm-special { color: #6c71c4; } -.cm-s-solarized .cm-em { - color: #999; - text-decoration: underline; - text-decoration-style: dotted; -} -.cm-s-solarized .cm-strong { color: #eee; } -.cm-s-solarized .cm-error, -.cm-s-solarized .cm-invalidchar { - color: #586e75; - border-bottom: 1px dotted #dc322f; -} - -.cm-s-solarized.cm-s-dark .CodeMirror-selected { background: #073642; } -.cm-s-solarized.cm-s-dark.CodeMirror ::selection { background: rgba(7, 54, 66, 0.99); } -.cm-s-solarized.cm-s-dark.CodeMirror ::-moz-selection { background: rgba(7, 54, 66, 0.99); } - -.cm-s-solarized.cm-s-light .CodeMirror-selected { background: #eee8d5; } -.cm-s-solarized.cm-s-light.CodeMirror ::selection { background: #eee8d5; } -.cm-s-solarized.cm-s-lightCodeMirror ::-moz-selection { background: #eee8d5; } - -/* Editor styling */ - - - -/* Little shadow on the view-port of the buffer view */ -.cm-s-solarized.CodeMirror { - -moz-box-shadow: inset 7px 0 12px -6px #000; - -webkit-box-shadow: inset 7px 0 12px -6px #000; - box-shadow: inset 7px 0 12px -6px #000; -} - -/* Gutter border and some shadow from it */ -.cm-s-solarized .CodeMirror-gutters { - border-right: 1px solid; -} - -/* Gutter colors and line number styling based of color scheme (dark / light) */ - -/* Dark */ -.cm-s-solarized.cm-s-dark .CodeMirror-gutters { - background-color: #002b36; - border-color: #00232c; -} - -.cm-s-solarized.cm-s-dark .CodeMirror-linenumber { - text-shadow: #021014 0 -1px; -} - -/* Light */ -.cm-s-solarized.cm-s-light .CodeMirror-gutters { - background-color: #fdf6e3; - border-color: #eee8d5; -} - -/* Common */ -.cm-s-solarized .CodeMirror-linenumber { - color: #586e75; - padding: 0 5px; -} -.cm-s-solarized .CodeMirror-guttermarker-subtle { color: #586e75; } -.cm-s-solarized.cm-s-dark .CodeMirror-guttermarker { color: #ddd; } -.cm-s-solarized.cm-s-light .CodeMirror-guttermarker { color: #cb4b16; } - -.cm-s-solarized .CodeMirror-gutter .CodeMirror-gutter-text { - color: #586e75; -} - -.cm-s-solarized .CodeMirror-lines .CodeMirror-cursor { - border-left: 1px solid #819090; -} - -/* -Active line. Negative margin compensates left padding of the text in the -view-port -*/ -.cm-s-solarized.cm-s-dark .CodeMirror-activeline-background { - background: rgba(255, 255, 255, 0.10); -} -.cm-s-solarized.cm-s-light .CodeMirror-activeline-background { - background: rgba(0, 0, 0, 0.10); -} diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/theme/the-matrix.css b/src/main/resources/static/editor.md-master/lib/codemirror/theme/the-matrix.css deleted file mode 100644 index f29b22b..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/theme/the-matrix.css +++ /dev/null @@ -1,30 +0,0 @@ -.cm-s-the-matrix.CodeMirror { background: #000000; color: #00FF00; } -.cm-s-the-matrix div.CodeMirror-selected { background: #2D2D2D !important; } -.cm-s-the-matrix.CodeMirror ::selection { background: rgba(45, 45, 45, 0.99); } -.cm-s-the-matrix.CodeMirror ::-moz-selection { background: rgba(45, 45, 45, 0.99); } -.cm-s-the-matrix .CodeMirror-gutters { background: #060; border-right: 2px solid #00FF00; } -.cm-s-the-matrix .CodeMirror-guttermarker { color: #0f0; } -.cm-s-the-matrix .CodeMirror-guttermarker-subtle { color: white; } -.cm-s-the-matrix .CodeMirror-linenumber { color: #FFFFFF; } -.cm-s-the-matrix .CodeMirror-cursor { border-left: 1px solid #00FF00 !important; } - -.cm-s-the-matrix span.cm-keyword {color: #008803; font-weight: bold;} -.cm-s-the-matrix span.cm-atom {color: #3FF;} -.cm-s-the-matrix span.cm-number {color: #FFB94F;} -.cm-s-the-matrix span.cm-def {color: #99C;} -.cm-s-the-matrix span.cm-variable {color: #F6C;} -.cm-s-the-matrix span.cm-variable-2 {color: #C6F;} -.cm-s-the-matrix span.cm-variable-3 {color: #96F;} -.cm-s-the-matrix span.cm-property {color: #62FFA0;} -.cm-s-the-matrix span.cm-operator {color: #999} -.cm-s-the-matrix span.cm-comment {color: #CCCCCC;} -.cm-s-the-matrix span.cm-string {color: #39C;} -.cm-s-the-matrix span.cm-meta {color: #C9F;} -.cm-s-the-matrix span.cm-qualifier {color: #FFF700;} -.cm-s-the-matrix span.cm-builtin {color: #30a;} -.cm-s-the-matrix span.cm-bracket {color: #cc7;} -.cm-s-the-matrix span.cm-tag {color: #FFBD40;} -.cm-s-the-matrix span.cm-attribute {color: #FFF700;} -.cm-s-the-matrix span.cm-error {color: #FF0000;} - -.cm-s-the-matrix .CodeMirror-activeline-background {background: #040;} diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/theme/tomorrow-night-bright.css b/src/main/resources/static/editor.md-master/lib/codemirror/theme/tomorrow-night-bright.css deleted file mode 100644 index decb82d..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/theme/tomorrow-night-bright.css +++ /dev/null @@ -1,35 +0,0 @@ -/* - - Name: Tomorrow Night - Bright - Author: Chris Kempson - - Port done by Gerard Braad - -*/ - -.cm-s-tomorrow-night-bright.CodeMirror {background: #000000; color: #eaeaea;} -.cm-s-tomorrow-night-bright div.CodeMirror-selected {background: #424242 !important;} -.cm-s-tomorrow-night-bright .CodeMirror-gutters {background: #000000; border-right: 0px;} -.cm-s-tomorrow-night-bright .CodeMirror-guttermarker { color: #e78c45; } -.cm-s-tomorrow-night-bright .CodeMirror-guttermarker-subtle { color: #777; } -.cm-s-tomorrow-night-bright .CodeMirror-linenumber {color: #424242;} -.cm-s-tomorrow-night-bright .CodeMirror-cursor {border-left: 1px solid #6A6A6A !important;} - -.cm-s-tomorrow-night-bright span.cm-comment {color: #d27b53;} -.cm-s-tomorrow-night-bright span.cm-atom {color: #a16a94;} -.cm-s-tomorrow-night-bright span.cm-number {color: #a16a94;} - -.cm-s-tomorrow-night-bright span.cm-property, .cm-s-tomorrow-night-bright span.cm-attribute {color: #99cc99;} -.cm-s-tomorrow-night-bright span.cm-keyword {color: #d54e53;} -.cm-s-tomorrow-night-bright span.cm-string {color: #e7c547;} - -.cm-s-tomorrow-night-bright span.cm-variable {color: #b9ca4a;} -.cm-s-tomorrow-night-bright span.cm-variable-2 {color: #7aa6da;} -.cm-s-tomorrow-night-bright span.cm-def {color: #e78c45;} -.cm-s-tomorrow-night-bright span.cm-bracket {color: #eaeaea;} -.cm-s-tomorrow-night-bright span.cm-tag {color: #d54e53;} -.cm-s-tomorrow-night-bright span.cm-link {color: #a16a94;} -.cm-s-tomorrow-night-bright span.cm-error {background: #d54e53; color: #6A6A6A;} - -.cm-s-tomorrow-night-bright .CodeMirror-activeline-background {background: #2a2a2a !important;} -.cm-s-tomorrow-night-bright .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;} diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/theme/tomorrow-night-eighties.css b/src/main/resources/static/editor.md-master/lib/codemirror/theme/tomorrow-night-eighties.css deleted file mode 100644 index 5fca3ca..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/theme/tomorrow-night-eighties.css +++ /dev/null @@ -1,38 +0,0 @@ -/* - - Name: Tomorrow Night - Eighties - Author: Chris Kempson - - CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror) - Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) - -*/ - -.cm-s-tomorrow-night-eighties.CodeMirror {background: #000000; color: #CCCCCC;} -.cm-s-tomorrow-night-eighties div.CodeMirror-selected {background: #2D2D2D !important;} -.cm-s-tomorrow-night-eighties.CodeMirror ::selection { background: rgba(45, 45, 45, 0.99); } -.cm-s-tomorrow-night-eighties.CodeMirror ::-moz-selection { background: rgba(45, 45, 45, 0.99); } -.cm-s-tomorrow-night-eighties .CodeMirror-gutters {background: #000000; border-right: 0px;} -.cm-s-tomorrow-night-eighties .CodeMirror-guttermarker { color: #f2777a; } -.cm-s-tomorrow-night-eighties .CodeMirror-guttermarker-subtle { color: #777; } -.cm-s-tomorrow-night-eighties .CodeMirror-linenumber {color: #515151;} -.cm-s-tomorrow-night-eighties .CodeMirror-cursor {border-left: 1px solid #6A6A6A !important;} - -.cm-s-tomorrow-night-eighties span.cm-comment {color: #d27b53;} -.cm-s-tomorrow-night-eighties span.cm-atom {color: #a16a94;} -.cm-s-tomorrow-night-eighties span.cm-number {color: #a16a94;} - -.cm-s-tomorrow-night-eighties span.cm-property, .cm-s-tomorrow-night-eighties span.cm-attribute {color: #99cc99;} -.cm-s-tomorrow-night-eighties span.cm-keyword {color: #f2777a;} -.cm-s-tomorrow-night-eighties span.cm-string {color: #ffcc66;} - -.cm-s-tomorrow-night-eighties span.cm-variable {color: #99cc99;} -.cm-s-tomorrow-night-eighties span.cm-variable-2 {color: #6699cc;} -.cm-s-tomorrow-night-eighties span.cm-def {color: #f99157;} -.cm-s-tomorrow-night-eighties span.cm-bracket {color: #CCCCCC;} -.cm-s-tomorrow-night-eighties span.cm-tag {color: #f2777a;} -.cm-s-tomorrow-night-eighties span.cm-link {color: #a16a94;} -.cm-s-tomorrow-night-eighties span.cm-error {background: #f2777a; color: #6A6A6A;} - -.cm-s-tomorrow-night-eighties .CodeMirror-activeline-background {background: #343600 !important;} -.cm-s-tomorrow-night-eighties .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;} diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/theme/twilight.css b/src/main/resources/static/editor.md-master/lib/codemirror/theme/twilight.css deleted file mode 100644 index 889a83d..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/theme/twilight.css +++ /dev/null @@ -1,32 +0,0 @@ -.cm-s-twilight.CodeMirror { background: #141414; color: #f7f7f7; } /**/ -.cm-s-twilight .CodeMirror-selected { background: #323232 !important; } /**/ -.cm-s-twilight.CodeMirror ::selection { background: rgba(50, 50, 50, 0.99); } -.cm-s-twilight.CodeMirror ::-moz-selection { background: rgba(50, 50, 50, 0.99); } - -.cm-s-twilight .CodeMirror-gutters { background: #222; border-right: 1px solid #aaa; } -.cm-s-twilight .CodeMirror-guttermarker { color: white; } -.cm-s-twilight .CodeMirror-guttermarker-subtle { color: #aaa; } -.cm-s-twilight .CodeMirror-linenumber { color: #aaa; } -.cm-s-twilight .CodeMirror-cursor { border-left: 1px solid white !important; } - -.cm-s-twilight .cm-keyword { color: #f9ee98; } /**/ -.cm-s-twilight .cm-atom { color: #FC0; } -.cm-s-twilight .cm-number { color: #ca7841; } /**/ -.cm-s-twilight .cm-def { color: #8DA6CE; } -.cm-s-twilight span.cm-variable-2, .cm-s-twilight span.cm-tag { color: #607392; } /**/ -.cm-s-twilight span.cm-variable-3, .cm-s-twilight span.cm-def { color: #607392; } /**/ -.cm-s-twilight .cm-operator { color: #cda869; } /**/ -.cm-s-twilight .cm-comment { color:#777; font-style:italic; font-weight:normal; } /**/ -.cm-s-twilight .cm-string { color:#8f9d6a; font-style:italic; } /**/ -.cm-s-twilight .cm-string-2 { color:#bd6b18 } /*?*/ -.cm-s-twilight .cm-meta { background-color:#141414; color:#f7f7f7; } /*?*/ -.cm-s-twilight .cm-builtin { color: #cda869; } /*?*/ -.cm-s-twilight .cm-tag { color: #997643; } /**/ -.cm-s-twilight .cm-attribute { color: #d6bb6d; } /*?*/ -.cm-s-twilight .cm-header { color: #FF6400; } -.cm-s-twilight .cm-hr { color: #AEAEAE; } -.cm-s-twilight .cm-link { color:#ad9361; font-style:italic; text-decoration:none; } /**/ -.cm-s-twilight .cm-error { border-bottom: 1px solid red; } - -.cm-s-twilight .CodeMirror-activeline-background {background: #27282E !important;} -.cm-s-twilight .CodeMirror-matchingbracket {outline:1px solid grey; color:white !important;} diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/theme/vibrant-ink.css b/src/main/resources/static/editor.md-master/lib/codemirror/theme/vibrant-ink.css deleted file mode 100644 index 8ea5359..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/theme/vibrant-ink.css +++ /dev/null @@ -1,34 +0,0 @@ -/* Taken from the popular Visual Studio Vibrant Ink Schema */ - -.cm-s-vibrant-ink.CodeMirror { background: black; color: white; } -.cm-s-vibrant-ink .CodeMirror-selected { background: #35493c !important; } -.cm-s-vibrant-ink.CodeMirror ::selection { background: rgba(53, 73, 60, 0.99); } -.cm-s-vibrant-ink.CodeMirror ::-moz-selection { background: rgba(53, 73, 60, 0.99); } - -.cm-s-vibrant-ink .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; } -.cm-s-vibrant-ink .CodeMirror-guttermarker { color: white; } -.cm-s-vibrant-ink .CodeMirror-guttermarker-subtle { color: #d0d0d0; } -.cm-s-vibrant-ink .CodeMirror-linenumber { color: #d0d0d0; } -.cm-s-vibrant-ink .CodeMirror-cursor { border-left: 1px solid white !important; } - -.cm-s-vibrant-ink .cm-keyword { color: #CC7832; } -.cm-s-vibrant-ink .cm-atom { color: #FC0; } -.cm-s-vibrant-ink .cm-number { color: #FFEE98; } -.cm-s-vibrant-ink .cm-def { color: #8DA6CE; } -.cm-s-vibrant-ink span.cm-variable-2, .cm-s-vibrant span.cm-tag { color: #FFC66D } -.cm-s-vibrant-ink span.cm-variable-3, .cm-s-vibrant span.cm-def { color: #FFC66D } -.cm-s-vibrant-ink .cm-operator { color: #888; } -.cm-s-vibrant-ink .cm-comment { color: gray; font-weight: bold; } -.cm-s-vibrant-ink .cm-string { color: #A5C25C } -.cm-s-vibrant-ink .cm-string-2 { color: red } -.cm-s-vibrant-ink .cm-meta { color: #D8FA3C; } -.cm-s-vibrant-ink .cm-builtin { color: #8DA6CE; } -.cm-s-vibrant-ink .cm-tag { color: #8DA6CE; } -.cm-s-vibrant-ink .cm-attribute { color: #8DA6CE; } -.cm-s-vibrant-ink .cm-header { color: #FF6400; } -.cm-s-vibrant-ink .cm-hr { color: #AEAEAE; } -.cm-s-vibrant-ink .cm-link { color: blue; } -.cm-s-vibrant-ink .cm-error { border-bottom: 1px solid red; } - -.cm-s-vibrant-ink .CodeMirror-activeline-background {background: #27282E !important;} -.cm-s-vibrant-ink .CodeMirror-matchingbracket {outline:1px solid grey; color:white !important;} diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/theme/xq-dark.css b/src/main/resources/static/editor.md-master/lib/codemirror/theme/xq-dark.css deleted file mode 100644 index d537993..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/theme/xq-dark.css +++ /dev/null @@ -1,53 +0,0 @@ -/* -Copyright (C) 2011 by MarkLogic Corporation -Author: Mike Brevoort - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -*/ -.cm-s-xq-dark.CodeMirror { background: #0a001f; color: #f8f8f8; } -.cm-s-xq-dark .CodeMirror-selected { background: #27007A !important; } -.cm-s-xq-dark.CodeMirror ::selection { background: rgba(39, 0, 122, 0.99); } -.cm-s-xq-dark.CodeMirror ::-moz-selection { background: rgba(39, 0, 122, 0.99); } -.cm-s-xq-dark .CodeMirror-gutters { background: #0a001f; border-right: 1px solid #aaa; } -.cm-s-xq-dark .CodeMirror-guttermarker { color: #FFBD40; } -.cm-s-xq-dark .CodeMirror-guttermarker-subtle { color: #f8f8f8; } -.cm-s-xq-dark .CodeMirror-linenumber { color: #f8f8f8; } -.cm-s-xq-dark .CodeMirror-cursor { border-left: 1px solid white !important; } - -.cm-s-xq-dark span.cm-keyword {color: #FFBD40;} -.cm-s-xq-dark span.cm-atom {color: #6C8CD5;} -.cm-s-xq-dark span.cm-number {color: #164;} -.cm-s-xq-dark span.cm-def {color: #FFF; text-decoration:underline;} -.cm-s-xq-dark span.cm-variable {color: #FFF;} -.cm-s-xq-dark span.cm-variable-2 {color: #EEE;} -.cm-s-xq-dark span.cm-variable-3 {color: #DDD;} -.cm-s-xq-dark span.cm-property {} -.cm-s-xq-dark span.cm-operator {} -.cm-s-xq-dark span.cm-comment {color: gray;} -.cm-s-xq-dark span.cm-string {color: #9FEE00;} -.cm-s-xq-dark span.cm-meta {color: yellow;} -.cm-s-xq-dark span.cm-qualifier {color: #FFF700;} -.cm-s-xq-dark span.cm-builtin {color: #30a;} -.cm-s-xq-dark span.cm-bracket {color: #cc7;} -.cm-s-xq-dark span.cm-tag {color: #FFBD40;} -.cm-s-xq-dark span.cm-attribute {color: #FFF700;} -.cm-s-xq-dark span.cm-error {color: #f00;} - -.cm-s-xq-dark .CodeMirror-activeline-background {background: #27282E !important;} -.cm-s-xq-dark .CodeMirror-matchingbracket {outline:1px solid grey; color:white !important;} \ No newline at end of file diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/theme/xq-light.css b/src/main/resources/static/editor.md-master/lib/codemirror/theme/xq-light.css deleted file mode 100644 index 20b5c79..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/theme/xq-light.css +++ /dev/null @@ -1,43 +0,0 @@ -/* -Copyright (C) 2011 by MarkLogic Corporation -Author: Mike Brevoort - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -*/ -.cm-s-xq-light span.cm-keyword {line-height: 1em; font-weight: bold; color: #5A5CAD; } -.cm-s-xq-light span.cm-atom {color: #6C8CD5;} -.cm-s-xq-light span.cm-number {color: #164;} -.cm-s-xq-light span.cm-def {text-decoration:underline;} -.cm-s-xq-light span.cm-variable {color: black; } -.cm-s-xq-light span.cm-variable-2 {color:black;} -.cm-s-xq-light span.cm-variable-3 {color: black; } -.cm-s-xq-light span.cm-property {} -.cm-s-xq-light span.cm-operator {} -.cm-s-xq-light span.cm-comment {color: #0080FF; font-style: italic;} -.cm-s-xq-light span.cm-string {color: red;} -.cm-s-xq-light span.cm-meta {color: yellow;} -.cm-s-xq-light span.cm-qualifier {color: grey} -.cm-s-xq-light span.cm-builtin {color: #7EA656;} -.cm-s-xq-light span.cm-bracket {color: #cc7;} -.cm-s-xq-light span.cm-tag {color: #3F7F7F;} -.cm-s-xq-light span.cm-attribute {color: #7F007F;} -.cm-s-xq-light span.cm-error {color: #f00;} - -.cm-s-xq-light .CodeMirror-activeline-background {background: #e8f2ff !important;} -.cm-s-xq-light .CodeMirror-matchingbracket {outline:1px solid grey;color:black !important;background:yellow;} \ No newline at end of file diff --git a/src/main/resources/static/editor.md-master/lib/codemirror/theme/zenburn.css b/src/main/resources/static/editor.md-master/lib/codemirror/theme/zenburn.css deleted file mode 100644 index f817198..0000000 --- a/src/main/resources/static/editor.md-master/lib/codemirror/theme/zenburn.css +++ /dev/null @@ -1,37 +0,0 @@ -/** - * " - * Using Zenburn color palette from the Emacs Zenburn Theme - * https://github.com/bbatsov/zenburn-emacs/blob/master/zenburn-theme.el - * - * Also using parts of https://github.com/xavi/coderay-lighttable-theme - * " - * From: https://github.com/wisenomad/zenburn-lighttable-theme/blob/master/zenburn.css - */ - -.cm-s-zenburn .CodeMirror-gutters { background: #3f3f3f !important; } -.cm-s-zenburn .CodeMirror-foldgutter-open, .CodeMirror-foldgutter-folded { color: #999; } -.cm-s-zenburn .CodeMirror-cursor { border-left: 1px solid white !important; } -.cm-s-zenburn { background-color: #3f3f3f; color: #dcdccc; } -.cm-s-zenburn span.cm-builtin { color: #dcdccc; font-weight: bold; } -.cm-s-zenburn span.cm-comment { color: #7f9f7f; } -.cm-s-zenburn span.cm-keyword { color: #f0dfaf; font-weight: bold; } -.cm-s-zenburn span.cm-atom { color: #bfebbf; } -.cm-s-zenburn span.cm-def { color: #dcdccc; } -.cm-s-zenburn span.cm-variable { color: #dfaf8f; } -.cm-s-zenburn span.cm-variable-2 { color: #dcdccc; } -.cm-s-zenburn span.cm-string { color: #cc9393; } -.cm-s-zenburn span.cm-string-2 { color: #cc9393; } -.cm-s-zenburn span.cm-number { color: #dcdccc; } -.cm-s-zenburn span.cm-tag { color: #93e0e3; } -.cm-s-zenburn span.cm-property { color: #dfaf8f; } -.cm-s-zenburn span.cm-attribute { color: #dfaf8f; } -.cm-s-zenburn span.cm-qualifier { color: #7cb8bb; } -.cm-s-zenburn span.cm-meta { color: #f0dfaf; } -.cm-s-zenburn span.cm-header { color: #f0efd0; } -.cm-s-zenburn span.cm-operator { color: #f0efd0; } -.cm-s-zenburn span.CodeMirror-matchingbracket { box-sizing: border-box; background: transparent; border-bottom: 1px solid; } -.cm-s-zenburn span.CodeMirror-nonmatchingbracket { border-bottom: 1px solid; background: none; } -.cm-s-zenburn .CodeMirror-activeline { background: #000000; } -.cm-s-zenburn .CodeMirror-activeline-background { background: #000000; } -.cm-s-zenburn .CodeMirror-selected { background: #545454; } -.cm-s-zenburn .CodeMirror-focused .CodeMirror-selected { background: #4f4f4f; } diff --git a/src/main/resources/static/editor.md-master/lib/flowchart.min.js b/src/main/resources/static/editor.md-master/lib/flowchart.min.js deleted file mode 100644 index 7808021..0000000 --- a/src/main/resources/static/editor.md-master/lib/flowchart.min.js +++ /dev/null @@ -1,5 +0,0 @@ -// flowchart, v1.3.4 -// Copyright (c)2014 Adriano Raiano (adrai). -// Distributed under MIT license -// http://adrai.github.io/flowchart.js -!function(){function a(b,c){if(!b||"function"==typeof b)return c;var d={};for(var e in c)d[e]=c[e];for(e in b)b[e]&&(d[e]="object"==typeof d[e]?a(d[e],b[e]):b[e]);return d}function b(a,b){if("function"==typeof Object.create)a.super_=b,a.prototype=Object.create(b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}});else{a.super_=b;var c=function(){};c.prototype=b.prototype,a.prototype=new c,a.prototype.constructor=a}}function c(a,b,c){var d,e,f="M{0},{1}";for(d=2,e=2*c.length+2;e>d;d+=2)f+=" L{"+d+"},{"+(d+1)+"}";var g=[b.x,b.y];for(d=0,e=c.length;e>d;d++)g.push(c[d].x),g.push(c[d].y);var h=a.paper.path(f,g);h.attr("stroke",a.options["element-color"]),h.attr("stroke-width",a.options["line-width"]);var i=a.options.font,j=a.options["font-family"],k=a.options["font-weight"];return i&&h.attr({font:i}),j&&h.attr({"font-family":j}),k&&h.attr({"font-weight":k}),h}function d(a,b,c,d){var e,f;"[object Array]"!==Object.prototype.toString.call(c)&&(c=[c]);var g="M{0},{1}";for(e=2,f=2*c.length+2;f>e;e+=2)g+=" L{"+e+"},{"+(e+1)+"}";var h=[b.x,b.y];for(e=0,f=c.length;f>e;e++)h.push(c[e].x),h.push(c[e].y);var i=a.paper.path(g,h);i.attr({stroke:a.options["line-color"],"stroke-width":a.options["line-width"],"arrow-end":a.options["arrow-end"]});var j=a.options.font,k=a.options["font-family"],l=a.options["font-weight"];if(j&&i.attr({font:j}),k&&i.attr({"font-family":k}),l&&i.attr({"font-weight":l}),d){var m=!1,n=a.paper.text(0,0,d),o=!1,p=c[0];b.y===p.y&&(o=!0);var q=0,r=0;m?(q=b.x>p.x?b.x-(b.x-p.x)/2:p.x-(p.x-b.x)/2,r=b.y>p.y?b.y-(b.y-p.y)/2:p.y-(p.y-b.y)/2,o?(q-=n.getBBox().width/2,r-=a.options["text-margin"]):(q+=a.options["text-margin"],r-=n.getBBox().height/2)):(q=b.x,r=b.y,o?(q+=a.options["text-margin"]/2,r-=a.options["text-margin"]):(q+=a.options["text-margin"]/2,r+=a.options["text-margin"])),n.attr({"text-anchor":"start","font-size":a.options["font-size"],fill:a.options["font-color"],x:q,y:r}),j&&n.attr({font:j}),k&&n.attr({"font-family":k}),l&&n.attr({"font-weight":l})}return i}function e(a,b,c,d,e,f,g,h){var i,j,k,l,m,n={x:null,y:null,onLine1:!1,onLine2:!1};return i=(h-f)*(c-a)-(g-e)*(d-b),0===i?n:(j=b-f,k=a-e,l=(g-e)*j-(h-f)*k,m=(c-a)*j-(d-b)*k,j=l/i,k=m/i,n.x=a+j*(c-a),n.y=b+j*(d-b),j>0&&1>j&&(n.onLine1=!0),k>0&&1>k&&(n.onLine2=!0),n)}function f(a,b){b=b||{},this.paper=new Raphael(a),this.options=r.defaults(b,q),this.symbols=[],this.lines=[],this.start=null}function g(a,b,c){this.chart=a,this.group=this.chart.paper.set(),this.symbol=c,this.connectedTo=[],this.symbolType=b.symbolType,this.flowstate=b.flowstate||"future",this.next_direction=b.next&&b.direction_next?b.direction_next:void 0,this.text=this.chart.paper.text(0,0,b.text),b.key&&(this.text.node.id=b.key+"t"),this.text.node.setAttribute("class",this.getAttr("class")+"t"),this.text.attr({"text-anchor":"start",x:this.getAttr("text-margin"),fill:this.getAttr("font-color"),"font-size":this.getAttr("font-size")});var d=this.getAttr("font"),e=this.getAttr("font-family"),f=this.getAttr("font-weight");d&&this.text.attr({font:d}),e&&this.text.attr({"font-family":e}),f&&this.text.attr({"font-weight":f}),b.link&&this.text.attr("href",b.link),b.target&&this.text.attr("target",b.target);var g=this.getAttr("maxWidth");if(g){for(var h=b.text.split(" "),i="",j=0,k=h.length;k>j;j++){var l=h[j];this.text.attr("text",i+" "+l),i+=this.text.getBBox().width>g?"\n"+l:" "+l}this.text.attr("text",i.substring(1))}if(this.group.push(this.text),c){var m=this.getAttr("text-margin");c.attr({fill:this.getAttr("fill"),stroke:this.getAttr("element-color"),"stroke-width":this.getAttr("line-width"),width:this.text.getBBox().width+2*m,height:this.text.getBBox().height+2*m}),c.node.setAttribute("class",this.getAttr("class")),b.link&&c.attr("href",b.link),b.target&&c.attr("target",b.target),b.key&&(c.node.id=b.key),this.group.push(c),c.insertBefore(this.text),this.text.attr({y:c.getBBox().height/2}),this.initialize()}}function h(a,b){var c=a.paper.rect(0,0,0,0,20);b=b||{},b.text=b.text||"Start",g.call(this,a,b,c)}function i(a,b){var c=a.paper.rect(0,0,0,0,20);b=b||{},b.text=b.text||"End",g.call(this,a,b,c)}function j(a,b){var c=a.paper.rect(0,0,0,0);b=b||{},g.call(this,a,b,c)}function k(a,b){var c=a.paper.rect(0,0,0,0);b=b||{},g.call(this,a,b,c),c.attr({width:this.text.getBBox().width+4*this.getAttr("text-margin")}),this.text.attr({x:2*this.getAttr("text-margin")});var d=a.paper.rect(0,0,0,0);d.attr({x:this.getAttr("text-margin"),stroke:this.getAttr("element-color"),"stroke-width":this.getAttr("line-width"),width:this.text.getBBox().width+2*this.getAttr("text-margin"),height:this.text.getBBox().height+2*this.getAttr("text-margin"),fill:this.getAttr("fill")}),b.key&&(d.node.id=b.key+"i");var e=this.getAttr("font"),f=this.getAttr("font-family"),h=this.getAttr("font-weight");e&&d.attr({font:e}),f&&d.attr({"font-family":f}),h&&d.attr({"font-weight":h}),b.link&&d.attr("href",b.link),b.target&&d.attr("target",b.target),this.group.push(d),d.insertBefore(this.text),this.initialize()}function l(a,b){b=b||{},g.call(this,a,b),this.textMargin=this.getAttr("text-margin"),this.text.attr({x:3*this.textMargin});var d=this.text.getBBox().width+4*this.textMargin,e=this.text.getBBox().height+2*this.textMargin,f=this.textMargin,h=e/2,i={x:f,y:h},j=[{x:f-this.textMargin,y:e},{x:f-this.textMargin+d,y:e},{x:f-this.textMargin+d+2*this.textMargin,y:0},{x:f-this.textMargin+2*this.textMargin,y:0},{x:f,y:h}],k=c(a,i,j);k.attr({stroke:this.getAttr("element-color"),"stroke-width":this.getAttr("line-width"),fill:this.getAttr("fill")}),b.link&&k.attr("href",b.link),b.target&&k.attr("target",b.target),b.key&&(k.node.id=b.key),k.node.setAttribute("class",this.getAttr("class")),this.text.attr({y:k.getBBox().height/2}),this.group.push(k),k.insertBefore(this.text),this.initialize()}function m(a,b){b=b||{},g.call(this,a,b),this.textMargin=this.getAttr("text-margin"),this.yes_direction="bottom",this.no_direction="right",b.yes&&b.direction_yes&&b.no&&!b.direction_no?"right"===b.direction_yes?(this.no_direction="bottom",this.yes_direction="right"):(this.no_direction="right",this.yes_direction="bottom"):b.yes&&!b.direction_yes&&b.no&&b.direction_no?"right"===b.direction_no?(this.yes_direction="bottom",this.no_direction="right"):(this.yes_direction="right",this.no_direction="bottom"):(this.yes_direction="bottom",this.no_direction="right"),this.yes_direction=this.yes_direction||"bottom",this.no_direction=this.no_direction||"right",this.text.attr({x:2*this.textMargin});var d=this.text.getBBox().width+3*this.textMargin;d+=d/2;var e=this.text.getBBox().height+2*this.textMargin;e+=e/2,e=Math.max(.5*d,e);var f=d/4,h=e/4;this.text.attr({x:f+this.textMargin/2});var i={x:f,y:h},j=[{x:f-d/4,y:h+e/4},{x:f-d/4+d/2,y:h+e/4+e/2},{x:f-d/4+d,y:h+e/4},{x:f-d/4+d/2,y:h+e/4-e/2},{x:f-d/4,y:h+e/4}],k=c(a,i,j);k.attr({stroke:this.getAttr("element-color"),"stroke-width":this.getAttr("line-width"),fill:this.getAttr("fill")}),b.link&&k.attr("href",b.link),b.target&&k.attr("target",b.target),b.key&&(k.node.id=b.key),k.node.setAttribute("class",this.getAttr("class")),this.text.attr({y:k.getBBox().height/2}),this.group.push(k),k.insertBefore(this.text),this.initialize()}function n(a){function b(a){var b=a.indexOf("(")+1,c=a.indexOf(")");return b>=0&&c>=0?d.symbols[a.substring(0,b-1)]:d.symbols[a]}function c(a){var b="next",c=a.indexOf("(")+1,d=a.indexOf(")");return c>=0&&d>=0&&(b=D.substring(c,d),b.indexOf(",")<0&&"yes"!==b&&"no"!==b&&(b="next, "+b)),b}a=a||"",a=a.trim();for(var d={symbols:{},start:null,drawSVG:function(a,b){function c(a){if(g[a.key])return g[a.key];switch(a.symbolType){case"start":g[a.key]=new h(e,a);break;case"end":g[a.key]=new i(e,a);break;case"operation":g[a.key]=new j(e,a);break;case"inputoutput":g[a.key]=new l(e,a);break;case"subroutine":g[a.key]=new k(e,a);break;case"condition":g[a.key]=new m(e,a);break;default:return new Error("Wrong symbol type!")}return g[a.key]}var d=this;this.diagram&&this.diagram.clean();var e=new f(a,b);this.diagram=e;var g={};!function n(a,b,f){var g=c(a);return d.start===a?e.startWith(g):b&&f&&!b.pathOk&&(b instanceof m?(f.yes===a&&b.yes(g),f.no===a&&b.no(g)):b.then(g)),g.pathOk?g:(g instanceof m?(a.yes&&n(a.yes,g,a),a.no&&n(a.no,g,a)):a.next&&n(a.next,g,a),g)}(this.start),e.render()},clean:function(){this.diagram.clean()}},e=[],g=0,n=1,o=a.length;o>n;n++)if("\n"===a[n]&&"\\"!==a[n-1]){var p=a.substring(g,n);g=n+1,e.push(p.replace(/\\\n/g,"\n"))}gq;){var s=e[q];s.indexOf(": ")<0&&s.indexOf("(")<0&&s.indexOf(")")<0&&s.indexOf("->")<0&&s.indexOf("=>")<0?(e[q-1]+="\n"+s,e.splice(q,1),r--):q++}for(;e.length>0;){var t=e.splice(0,1)[0];if(t.indexOf("=>")>=0){var u,v=t.split("=>"),w={key:v[0],symbolType:v[1],text:null,link:null,target:null,flowstate:null};if(w.symbolType.indexOf(": ")>=0&&(u=w.symbolType.split(": "),w.symbolType=u[0],w.text=u[1]),w.text&&w.text.indexOf(":>")>=0?(u=w.text.split(":>"),w.text=u[0],w.link=u[1]):w.symbolType.indexOf(":>")>=0&&(u=w.symbolType.split(":>"),w.symbolType=u[0],w.link=u[1]),w.symbolType.indexOf("\n")>=0&&(w.symbolType=w.symbolType.split("\n")[0]),w.link){var x=w.link.indexOf("[")+1,y=w.link.indexOf("]");x>=0&&y>=0&&(w.target=w.link.substring(x,y),w.link=w.link.substring(0,x-1))}if(w.text&&w.text.indexOf("|")>=0){var z=w.text.split("|");w.text=z[0],w.flowstate=z[1].trim()}d.symbols[w.key]=w}else if(t.indexOf("->")>=0)for(var A=t.split("->"),B=0,C=A.length;C>B;B++){var D=A[B],E=b(D),F=c(D),G=null;if(F.indexOf(",")>=0){var H=F.split(",");F=H[0],G=H[1].trim()}if(d.start||(d.start=E),C>B+1){var I=A[B+1];E[F]=b(I),E["direction_"+F]=G,G=null}}}return d}Array.prototype.indexOf||(Array.prototype.indexOf=function(a){"use strict";if(null===this)throw new TypeError;var b=Object(this),c=b.length>>>0;if(0===c)return-1;var d=0;if(arguments.length>0&&(d=Number(arguments[1]),d!=d?d=0:0!==d&&1/0!=d&&d!=-1/0&&(d=(d>0||-1)*Math.floor(Math.abs(d)))),d>=c)return-1;for(var e=d>=0?d:Math.max(c-Math.abs(d),0);c>e;e++)if(e in b&&b[e]===a)return e;return-1}),Array.prototype.lastIndexOf||(Array.prototype.lastIndexOf=function(a){"use strict";if(null===this)throw new TypeError;var b=Object(this),c=b.length>>>0;if(0===c)return-1;var d=c;arguments.length>1&&(d=Number(arguments[1]),d!=d?d=0:0!==d&&d!=1/0&&d!=-(1/0)&&(d=(d>0||-1)*Math.floor(Math.abs(d))));for(var e=d>=0?Math.min(d,c-1):c-Math.abs(d);e>=0;e--)if(e in b&&b[e]===a)return e;return-1}),String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")});var o=this,p={};"undefined"!=typeof module&&module.exports?module.exports=p:o.flowchart=o.flowchart||p;var q={x:0,y:0,"line-width":3,"line-length":50,"text-margin":10,"font-size":14,"font-color":"black","line-color":"black","element-color":"black",fill:"white","yes-text":"yes","no-text":"no","arrow-end":"block","class":"flowchart",symbols:{start:{},end:{},condition:{},inputoutput:{},operation:{},subroutine:{}}},r={defaults:a,inherits:b};f.prototype.handle=function(a){this.symbols.indexOf(a)<=-1&&this.symbols.push(a);var b=this;return a instanceof m?(a.yes=function(c){return a.yes_symbol=c,a.no_symbol&&(a.pathOk=!0),b.handle(c)},a.no=function(c){return a.no_symbol=c,a.yes_symbol&&(a.pathOk=!0),b.handle(c)}):a.then=function(c){return a.next=c,a.pathOk=!0,b.handle(c)},a},f.prototype.startWith=function(a){return this.start=a,this.handle(a)},f.prototype.render=function(){var a,b=0,c=0,d=0,e=0,f=0,g=0;for(d=0,e=this.symbols.length;e>d;d++)a=this.symbols[d],a.width>b&&(b=a.width),a.height>c&&(c=a.height);for(d=0,e=this.symbols.length;e>d;d++)a=this.symbols[d],a.shiftX(this.options.x+(b-a.width)/2+this.options["line-width"]),a.shiftY(this.options.y+(c-a.height)/2+this.options["line-width"]);for(this.start.render(),d=0,e=this.symbols.length;e>d;d++)a=this.symbols[d],a.renderLines();for(f=this.maxXFromLine,d=0,e=this.symbols.length;e>d;d++){a=this.symbols[d];var h=a.getX()+a.width,i=a.getY()+a.height;h>f&&(f=h),i>g&&(g=i)}this.paper.setSize(f+this.options["line-width"],g+this.options["line-width"])},f.prototype.clean=function(){if(this.paper){var a=this.paper.canvas;a.parentNode.removeChild(a)}},g.prototype.getAttr=function(a){if(!this.chart)return void 0;var b,c=this.chart.options?this.chart.options[a]:void 0,d=this.chart.options.symbols?this.chart.options.symbols[this.symbolType][a]:void 0;return this.chart.options.flowstate&&this.chart.options.flowstate[this.flowstate]&&(b=this.chart.options.flowstate[this.flowstate][a]),b||d||c},g.prototype.initialize=function(){this.group.transform("t"+this.getAttr("line-width")+","+this.getAttr("line-width")),this.width=this.group.getBBox().width,this.height=this.group.getBBox().height},g.prototype.getCenter=function(){return{x:this.getX()+this.width/2,y:this.getY()+this.height/2}},g.prototype.getX=function(){return this.group.getBBox().x},g.prototype.getY=function(){return this.group.getBBox().y},g.prototype.shiftX=function(a){this.group.transform("t"+(this.getX()+a)+","+this.getY())},g.prototype.setX=function(a){this.group.transform("t"+a+","+this.getY())},g.prototype.shiftY=function(a){this.group.transform("t"+this.getX()+","+(this.getY()+a))},g.prototype.setY=function(a){this.group.transform("t"+this.getX()+","+a)},g.prototype.getTop=function(){var a=this.getY(),b=this.getX()+this.width/2;return{x:b,y:a}},g.prototype.getBottom=function(){var a=this.getY()+this.height,b=this.getX()+this.width/2;return{x:b,y:a}},g.prototype.getLeft=function(){var a=this.getY()+this.group.getBBox().height/2,b=this.getX();return{x:b,y:a}},g.prototype.getRight=function(){var a=this.getY()+this.group.getBBox().height/2,b=this.getX()+this.group.getBBox().width;return{x:b,y:a}},g.prototype.render=function(){if(this.next){var a=this.getAttr("line-length");if("right"===this.next_direction){var b=this.getRight();if(this.next.getLeft(),!this.next.isPositioned){this.next.setY(b.y-this.next.height/2),this.next.shiftX(this.group.getBBox().x+this.width+a);var c=this;!function e(){for(var b,d=!1,f=0,g=c.chart.symbols.length;g>f;f++){b=c.chart.symbols[f];var h=Math.abs(b.getCenter().x-c.next.getCenter().x);if(b.getCenter().y>c.next.getCenter().y&&h<=c.next.width/2){d=!0;break}}d&&(c.next.setX(b.getX()+b.width+a),e())}(),this.next.isPositioned=!0,this.next.render()}}else{var d=this.getBottom();this.next.getTop(),this.next.isPositioned||(this.next.shiftY(this.getY()+this.height+a),this.next.setX(d.x-this.next.width/2),this.next.isPositioned=!0,this.next.render())}}},g.prototype.renderLines=function(){this.next&&(this.next_direction?this.drawLineTo(this.next,"",this.next_direction):this.drawLineTo(this.next))},g.prototype.drawLineTo=function(a,b,c){this.connectedTo.indexOf(a)<0&&this.connectedTo.push(a);var f,g=this.getCenter().x,h=this.getCenter().y,i=(this.getTop(),this.getRight()),j=this.getBottom(),k=this.getLeft(),l=a.getCenter().x,m=a.getCenter().y,n=a.getTop(),o=a.getRight(),p=(a.getBottom(),a.getLeft()),q=g===l,r=h===m,s=m>h,t=h>m,u=g>l,v=l>g,w=0,x=this.getAttr("line-length"),y=this.getAttr("line-width");if(c&&"bottom"!==c||!q||!s)if(c&&"right"!==c||!r||!v)if(c&&"left"!==c||!r||!u)if(c&&"right"!==c||!q||!t)if(c&&"right"!==c||!q||!s)if(c&&"bottom"!==c||!u)if(c&&"bottom"!==c||!v)if(c&&"right"===c&&u)f=d(this.chart,i,[{x:i.x+x/2,y:i.y},{x:i.x+x/2,y:n.y-x/2},{x:n.x,y:n.y-x/2},{x:n.x,y:n.y}],b),this.rightStart=!0,a.topEnd=!0,w=i.x+x/2;else if(c&&"right"===c&&v)f=d(this.chart,i,[{x:n.x,y:i.y},{x:n.x,y:n.y}],b),this.rightStart=!0,a.topEnd=!0,w=i.x+x/2;else if(c&&"bottom"===c&&q&&t)f=d(this.chart,j,[{x:j.x,y:j.y+x/2},{x:i.x+x/2,y:j.y+x/2},{x:i.x+x/2,y:n.y-x/2},{x:n.x,y:n.y-x/2},{x:n.x,y:n.y}],b),this.bottomStart=!0,a.topEnd=!0,w=j.x+x/2;else if("left"===c&&q&&t){var z=k.x-x/2;p.xA;A++)for(var C,D=this.chart.lines[A],E=D.attr("path"),F=f.attr("path"),G=0,H=E.length-1;H>G;G++){var I=[];I.push(["M",E[G][1],E[G][2]]),I.push(["L",E[G+1][1],E[G+1][2]]);for(var J=I[0][1],K=I[0][2],L=I[1][1],M=I[1][2],N=0,O=F.length-1;O>N;N++){var P=[];P.push(["M",F[N][1],F[N][2]]),P.push(["L",F[N+1][1],F[N+1][2]]);var Q=P[0][1],R=P[0][2],S=P[1][1],T=P[1][2],U=e(J,K,L,M,Q,R,S,T);if(U.onLine1&&U.onLine2){var V;R===T?Q>S?(V=["L",U.x+2*y,R],F.splice(N+1,0,V),V=["C",U.x+2*y,R,U.x,R-4*y,U.x-2*y,R],F.splice(N+2,0,V),f.attr("path",F)):(V=["L",U.x-2*y,R],F.splice(N+1,0,V),V=["C",U.x-2*y,R,U.x,R-4*y,U.x+2*y,R],F.splice(N+2,0,V),f.attr("path",F)):R>T?(V=["L",Q,U.y+2*y],F.splice(N+1,0,V),V=["C",Q,U.y+2*y,Q+4*y,U.y,Q,U.y-2*y],F.splice(N+2,0,V),f.attr("path",F)):(V=["L",Q,U.y-2*y],F.splice(N+1,0,V),V=["C",Q,U.y-2*y,Q+4*y,U.y,Q,U.y+2*y],F.splice(N+2,0,V),f.attr("path",F)),N+=2,C+=2}}}this.chart.lines.push(f)}(!this.chart.maxXFromLine||this.chart.maxXFromLine&&w>this.chart.maxXFromLine)&&(this.chart.maxXFromLine=w)},r.inherits(h,g),r.inherits(i,g),r.inherits(j,g),r.inherits(k,g),r.inherits(l,g),l.prototype.getLeft=function(){var a=this.getY()+this.group.getBBox().height/2,b=this.getX()+this.textMargin;return{x:b,y:a}},l.prototype.getRight=function(){var a=this.getY()+this.group.getBBox().height/2,b=this.getX()+this.group.getBBox().width-this.textMargin;return{x:b,y:a}},r.inherits(m,g),m.prototype.render=function(){this.yes_direction&&(this[this.yes_direction+"_symbol"]=this.yes_symbol),this.no_direction&&(this[this.no_direction+"_symbol"]=this.no_symbol);var a=this.getAttr("line-length");if(this.bottom_symbol){var b=this.getBottom();this.bottom_symbol.getTop(),this.bottom_symbol.isPositioned||(this.bottom_symbol.shiftY(this.getY()+this.height+a),this.bottom_symbol.setX(b.x-this.bottom_symbol.width/2),this.bottom_symbol.isPositioned=!0,this.bottom_symbol.render())}if(this.right_symbol){var c=this.getRight();if(this.right_symbol.getLeft(),!this.right_symbol.isPositioned){this.right_symbol.setY(c.y-this.right_symbol.height/2),this.right_symbol.shiftX(this.group.getBBox().x+this.width+a);var d=this;!function e(){for(var b,c=!1,f=0,g=d.chart.symbols.length;g>f;f++){b=d.chart.symbols[f];var h=Math.abs(b.getCenter().x-d.right_symbol.getCenter().x);if(b.getCenter().y>d.right_symbol.getCenter().y&&h<=d.right_symbol.width/2){c=!0;break}}c&&(d.right_symbol.setX(b.getX()+b.width+a),e())}(),this.right_symbol.isPositioned=!0,this.right_symbol.render()}}},m.prototype.renderLines=function(){this.yes_symbol&&this.drawLineTo(this.yes_symbol,this.getAttr("yes-text"),this.yes_direction),this.no_symbol&&this.drawLineTo(this.no_symbol,this.getAttr("no-text"),this.no_direction)},p.parse=n}(); \ No newline at end of file diff --git a/src/main/resources/static/editor.md-master/lib/jquery.flowchart.min.js b/src/main/resources/static/editor.md-master/lib/jquery.flowchart.min.js deleted file mode 100644 index a30a8fd..0000000 --- a/src/main/resources/static/editor.md-master/lib/jquery.flowchart.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! jQuery.flowchart.js v1.1.0 | jquery.flowchart.min.js | jQuery plugin for flowchart.js. | MIT License | By: Pandao | https://github.com/pandao/jquery.flowchart.js | 2015-03-09 */ -(function(factory){if(typeof require==="function"&&typeof exports==="object"&&typeof module==="object"){module.exports=factory}else{if(typeof define==="function"){factory(jQuery,flowchart)}else{factory($,flowchart)}}}(function(jQuery,flowchart){(function($){$.fn.flowChart=function(options){options=options||{};var defaults={"x":0,"y":0,"line-width":2,"line-length":50,"text-margin":10,"font-size":14,"font-color":"black","line-color":"black","element-color":"black","fill":"white","yes-text":"yes","no-text":"no","arrow-end":"block","symbols":{"start":{"font-color":"black","element-color":"black","fill":"white"},"end":{"class":"end-element"}},"flowstate":{"past":{"fill":"#CCCCCC","font-size":12},"current":{"fill":"black","font-color":"white","font-weight":"bold"},"future":{"fill":"white"},"request":{"fill":"blue"},"invalid":{"fill":"#444444"},"approved":{"fill":"#58C4A3","font-size":12,"yes-text":"APPROVED","no-text":"n/a"},"rejected":{"fill":"#C45879","font-size":12,"yes-text":"n/a","no-text":"REJECTED"}}};return this.each(function(){var $this=$(this);var diagram=flowchart.parse($this.text());var settings=$.extend(true,defaults,options);$this.html("");diagram.drawSVG(this,settings)})}})(jQuery)})); \ No newline at end of file diff --git a/src/main/resources/static/editor.md-master/lib/marked.min.js b/src/main/resources/static/editor.md-master/lib/marked.min.js deleted file mode 100644 index 5597fa4..0000000 --- a/src/main/resources/static/editor.md-master/lib/marked.min.js +++ /dev/null @@ -1,9 +0,0 @@ -/** - * marked v0.3.3 - a markdown parser - * Copyright (c) 2011-2014, Christopher Jeffrey. (MIT Licensed) - * https://github.com/chjj/marked - */ -(function(){var block={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:noop,hr:/^( *[-*_]){3,} *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,nptable:noop,lheading:/^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,blockquote:/^( *>[^\n]+(\n(?!def)[^\n]+)*\n*)+/,list:/^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment *(?:\n|\s*$)|closed *(?:\n{2,}|\s*$)|closing *(?:\n{2,}|\s*$))/,def:/^ *\[([^\]]+)\]: *]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,table:noop,paragraph:/^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,text:/^[^\n]+/};block.bullet=/(?:[*+-]|\d+\.)/;block.item=/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/;block.item=replace(block.item,"gm")(/bull/g,block.bullet)();block.list=replace(block.list)(/bull/g,block.bullet)("hr","\\n+(?=\\1?(?:[-*_] *){3,}(?:\\n+|$))")("def","\\n+(?="+block.def.source+")")();block.blockquote=replace(block.blockquote)("def",block.def)();block._tag="(?!(?:"+"a|em|strong|small|s|cite|q|dfn|abbr|data|time|code"+"|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo"+"|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b";block.html=replace(block.html)("comment",//)("closed",/<(tag)[\s\S]+?<\/\1>/)("closing",/])*?>/)(/tag/g,block._tag)();block.paragraph=replace(block.paragraph)("hr",block.hr)("heading",block.heading)("lheading",block.lheading)("blockquote",block.blockquote)("tag","<"+block._tag)("def",block.def)();block.normal=merge({},block);block.gfm=merge({},block.normal,{fences:/^ *(`{3,}|~{3,}) *(\S+)? *\n([\s\S]+?)\s*\1 *(?:\n+|$)/,paragraph:/^/});block.gfm.paragraph=replace(block.paragraph)("(?!","(?!"+block.gfm.fences.source.replace("\\1","\\2")+"|"+block.list.source.replace("\\1","\\3")+"|")();block.tables=merge({},block.gfm,{nptable:/^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,table:/^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/});function Lexer(options){this.tokens=[];this.tokens.links={};this.options=options||marked.defaults;this.rules=block.normal;if(this.options.gfm){if(this.options.tables){this.rules=block.tables}else{this.rules=block.gfm}}}Lexer.rules=block;Lexer.lex=function(src,options){var lexer=new Lexer(options);return lexer.lex(src)};Lexer.prototype.lex=function(src){src=src.replace(/\r\n|\r/g,"\n").replace(/\t/g," ").replace(/\u00a0/g," ").replace(/\u2424/g,"\n");return this.token(src,true)};Lexer.prototype.token=function(src,top,bq){var src=src.replace(/^ +$/gm,""),next,loose,cap,bull,b,item,space,i,l;while(src){if(cap=this.rules.newline.exec(src)){src=src.substring(cap[0].length);if(cap[0].length>1){this.tokens.push({type:"space"})}}if(cap=this.rules.code.exec(src)){src=src.substring(cap[0].length);cap=cap[0].replace(/^ {4}/gm,"");this.tokens.push({type:"code",text:!this.options.pedantic?cap.replace(/\n+$/,""):cap});continue}if(cap=this.rules.fences.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"code",lang:cap[2],text:cap[3]});continue}if(cap=this.rules.heading.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"heading",depth:cap[1].length,text:cap[2]});continue}if(top&&(cap=this.rules.nptable.exec(src))){src=src.substring(cap[0].length);item={type:"table",header:cap[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:cap[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:cap[3].replace(/\n$/,"").split("\n")};for(i=0;i ?/gm,"");this.token(cap,top,true);this.tokens.push({type:"blockquote_end"});continue}if(cap=this.rules.list.exec(src)){src=src.substring(cap[0].length);bull=cap[2];this.tokens.push({type:"list_start",ordered:bull.length>1});cap=cap[0].match(this.rules.item);next=false;l=cap.length;i=0;for(;i1&&b.length>1)){src=cap.slice(i+1).join("\n")+src;i=l-1}}loose=next||/\n\n(?!\s*$)/.test(item);if(i!==l-1){next=item.charAt(item.length-1)==="\n";if(!loose){loose=next}}this.tokens.push({type:loose?"loose_item_start":"list_item_start"});this.token(item,false,bq); -this.tokens.push({type:"list_item_end"})}this.tokens.push({type:"list_end"});continue}if(cap=this.rules.html.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:this.options.sanitize?"paragraph":"html",pre:cap[1]==="pre"||cap[1]==="script"||cap[1]==="style",text:cap[0]});continue}if((!bq&&top)&&(cap=this.rules.def.exec(src))){src=src.substring(cap[0].length);this.tokens.links[cap[1].toLowerCase()]={href:cap[2],title:cap[3]};continue}if(top&&(cap=this.rules.table.exec(src))){src=src.substring(cap[0].length);item={type:"table",header:cap[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:cap[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:cap[3].replace(/(?: *\| *)?\n$/,"").split("\n")};for(i=0;i])/,autolink:/^<([^ >]+(@|:\/)[^ >]+)>/,url:noop,tag:/^|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/,link:/^!?\[(inside)\]\(href\)/,reflink:/^!?\[(inside)\]\s*\[([^\]]*)\]/,nolink:/^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,strong:/^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,em:/^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,code:/^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,del:noop,text:/^[\s\S]+?(?=[\\?(?:\s+['"]([\s\S]*?)['"])?\s*/;inline.link=replace(inline.link)("inside",inline._inside)("href",inline._href)();inline.reflink=replace(inline.reflink)("inside",inline._inside)();inline.normal=merge({},inline);inline.pedantic=merge({},inline.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/});inline.gfm=merge({},inline.normal,{escape:replace(inline.escape)("])","~|])")(),url:/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,del:/^~~(?=\S)([\s\S]*?\S)~~/,text:replace(inline.text)("]|","~]|")("|","|https?://|")()});inline.breaks=merge({},inline.gfm,{br:replace(inline.br)("{2,}","*")(),text:replace(inline.gfm.text)("{2,}","*")()});function InlineLexer(links,options){this.options=options||marked.defaults;this.links=links;this.rules=inline.normal;this.renderer=this.options.renderer||new Renderer;this.renderer.options=this.options;if(!this.links){throw new Error("Tokens array requires a `links` property.")}if(this.options.gfm){if(this.options.breaks){this.rules=inline.breaks}else{this.rules=inline.gfm}}else{if(this.options.pedantic){this.rules=inline.pedantic}}}InlineLexer.rules=inline;InlineLexer.output=function(src,links,options){var inline=new InlineLexer(links,options);return inline.output(src)};InlineLexer.prototype.output=function(src){var out="",link,text,href,cap;while(src){if(cap=this.rules.escape.exec(src)){src=src.substring(cap[0].length);out+=cap[1];continue}if(cap=this.rules.autolink.exec(src)){src=src.substring(cap[0].length);if(cap[2]==="@"){text=cap[1].charAt(6)===":"?this.mangle(cap[1].substring(7)):this.mangle(cap[1]);href=this.mangle("mailto:")+text}else{text=escape(cap[1]);href=text}out+=this.renderer.link(href,null,text);continue}if(!this.inLink&&(cap=this.rules.url.exec(src))){src=src.substring(cap[0].length);text=escape(cap[1]);href=text;out+=this.renderer.link(href,null,text);continue}if(cap=this.rules.tag.exec(src)){if(!this.inLink&&/^/i.test(cap[0])){this.inLink=false}}src=src.substring(cap[0].length);out+=this.options.sanitize?escape(cap[0]):cap[0];continue}if(cap=this.rules.link.exec(src)){src=src.substring(cap[0].length);this.inLink=true;out+=this.outputLink(cap,{href:cap[2],title:cap[3]});this.inLink=false;continue}if((cap=this.rules.reflink.exec(src))||(cap=this.rules.nolink.exec(src))){src=src.substring(cap[0].length);link=(cap[2]||cap[1]).replace(/\s+/g," ");link=this.links[link.toLowerCase()];if(!link||!link.href){out+=cap[0].charAt(0);src=cap[0].substring(1)+src;continue}this.inLink=true;out+=this.outputLink(cap,link);this.inLink=false;continue}if(cap=this.rules.strong.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.strong(this.output(cap[2]||cap[1]));continue}if(cap=this.rules.em.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.em(this.output(cap[2]||cap[1]));continue -}if(cap=this.rules.code.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.codespan(escape(cap[2],true));continue}if(cap=this.rules.br.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.br();continue}if(cap=this.rules.del.exec(src)){src=src.substring(cap[0].length);out+=this.renderer.del(this.output(cap[1]));continue}if(cap=this.rules.text.exec(src)){src=src.substring(cap[0].length);out+=escape(this.smartypants(cap[0]));continue}if(src){throw new Error("Infinite loop on byte: "+src.charCodeAt(0))}}return out};InlineLexer.prototype.outputLink=function(cap,link){var href=escape(link.href),title=link.title?escape(link.title):null;return cap[0].charAt(0)!=="!"?this.renderer.link(href,title,this.output(cap[1])):this.renderer.image(href,title,escape(cap[1]))};InlineLexer.prototype.smartypants=function(text){if(!this.options.smartypants){return text}return text.replace(/--/g,"\u2014").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1\u2018").replace(/'/g,"\u2019").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1\u201c").replace(/"/g,"\u201d").replace(/\.{3}/g,"\u2026")};InlineLexer.prototype.mangle=function(text){var out="",l=text.length,i=0,ch;for(;i0.5){ch="x"+ch.toString(16)}out+="&#"+ch+";"}return out};function Renderer(options){this.options=options||{}}Renderer.prototype.code=function(code,lang,escaped){if(this.options.highlight){var out=this.options.highlight(code,lang);if(out!=null&&out!==code){escaped=true;code=out}}if(!lang){return"
    "+(escaped?code:escape(code,true))+"\n
    "}return'
    '+(escaped?code:escape(code,true))+"\n
    \n"};Renderer.prototype.blockquote=function(quote){return"
    \n"+quote+"
    \n"};Renderer.prototype.html=function(html){return html};Renderer.prototype.heading=function(text,level,raw){return"'+text+"\n"};Renderer.prototype.hr=function(){return this.options.xhtml?"
    \n":"
    \n"};Renderer.prototype.list=function(body,ordered){var type=ordered?"ol":"ul";return"<"+type+">\n"+body+"\n"};Renderer.prototype.listitem=function(text){return"
  • "+text+"
  • \n"};Renderer.prototype.paragraph=function(text){return"

    "+text+"

    \n"};Renderer.prototype.table=function(header,body){return"\n"+"\n"+header+"\n"+"\n"+body+"\n"+"
    \n"};Renderer.prototype.tablerow=function(content){return"\n"+content+"\n"};Renderer.prototype.tablecell=function(content,flags){var type=flags.header?"th":"td";var tag=flags.align?"<"+type+' style="text-align:'+flags.align+'">':"<"+type+">";return tag+content+"\n"};Renderer.prototype.strong=function(text){return""+text+""};Renderer.prototype.em=function(text){return""+text+""};Renderer.prototype.codespan=function(text){return""+text+""};Renderer.prototype.br=function(){return this.options.xhtml?"
    ":"
    "};Renderer.prototype.del=function(text){return""+text+""};Renderer.prototype.link=function(href,title,text){if(this.options.sanitize){try{var prot=decodeURIComponent(unescape(href)).replace(/[^\w:]/g,"").toLowerCase()}catch(e){return""}if(prot.indexOf("javascript:")===0||prot.indexOf("vbscript:")===0){return""}}var out='
    ";return out};Renderer.prototype.image=function(href,title,text){var out=''+text+'":">";return out};function Parser(options){this.tokens=[];this.token=null;this.options=options||marked.defaults;this.options.renderer=this.options.renderer||new Renderer;this.renderer=this.options.renderer;this.renderer.options=this.options}Parser.parse=function(src,options,renderer){var parser=new Parser(options,renderer);return parser.parse(src)};Parser.prototype.parse=function(src){this.inline=new InlineLexer(src.links,this.options,this.renderer);this.tokens=src.reverse();var out="";while(this.next()){out+=this.tok()}return out};Parser.prototype.next=function(){return this.token=this.tokens.pop()};Parser.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0};Parser.prototype.parseText=function(){var body=this.token.text;while(this.peek().type==="text"){body+="\n"+this.next().text}return this.inline.output(body)};Parser.prototype.tok=function(){switch(this.token.type){case"space":return"";case"hr":return this.renderer.hr();case"heading":return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,this.token.text);case"code":return this.renderer.code(this.token.text,this.token.lang,this.token.escaped);case"table":var header="",body="",i,row,cell,flags,j;cell="";for(i=0;i/g,">").replace(/"/g,""").replace(/'/g,"'")}function unescape(html){return html.replace(/&([#\w]+);/g,function(_,n){n=n.toLowerCase();if(n==="colon"){return":"}if(n.charAt(0)==="#"){return n.charAt(1)==="x"?String.fromCharCode(parseInt(n.substring(2),16)):String.fromCharCode(+n.substring(1))}return""})}function replace(regex,opt){regex=regex.source;opt=opt||"";return function self(name,val){if(!name){return new RegExp(regex,opt)}val=val.source||val;val=val.replace(/(^|[^\[])\^/g,"$1");regex=regex.replace(name,val);return self}}function noop(){}noop.exec=noop;function merge(obj){var i=1,target,key;for(;iAn error occured:

    "+escape(e.message+"",true)+"
    "}throw e}}marked.options=marked.setOptions=function(opt){merge(marked.defaults,opt);return marked};marked.defaults={gfm:true,tables:true,breaks:false,pedantic:false,sanitize:false,smartLists:false,silent:false,highlight:null,langPrefix:"lang-",smartypants:false,headerPrefix:"",renderer:new Renderer,xhtml:false};marked.Parser=Parser;marked.parser=Parser.parse;marked.Renderer=Renderer;marked.Lexer=Lexer;marked.lexer=Lexer.lex;marked.InlineLexer=InlineLexer;marked.inlineLexer=InlineLexer.output;marked.parse=marked;if(typeof module!=="undefined"&&typeof exports==="object"){module.exports=marked}else{if(typeof define==="function"&&define.amd){define(function(){return marked})}else{this.marked=marked}}}).call(function(){return this||(typeof window!=="undefined"?window:global)}()); \ No newline at end of file diff --git a/src/main/resources/static/editor.md-master/lib/prettify.min.js b/src/main/resources/static/editor.md-master/lib/prettify.min.js deleted file mode 100644 index 056f968..0000000 --- a/src/main/resources/static/editor.md-master/lib/prettify.min.js +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright (C) 2006 Google Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -var IN_GLOBAL_SCOPE=true;window["PR_SHOULD_USE_CONTINUATION"]=true;var prettyPrintOne;var prettyPrint;(function(){var P=window;var i=["break,continue,do,else,for,if,return,while"];var u=[i,"auto,case,char,const,default,"+"double,enum,extern,float,goto,inline,int,long,register,short,signed,"+"sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,"+"new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,"+"concept,concept_map,const_cast,constexpr,decltype,delegate,"+"dynamic_cast,explicit,export,friend,generic,late_check,"+"mutable,namespace,nullptr,property,reinterpret_cast,static_assert,"+"static_cast,template,typeid,typename,using,virtual,where"];var y=[p,"abstract,assert,boolean,byte,extends,final,finally,implements,import,"+"instanceof,interface,null,native,package,strictfp,super,synchronized,"+"throws,transient"];var U=[y,"as,base,by,checked,decimal,delegate,descending,dynamic,event,"+"fixed,foreach,from,group,implicit,in,internal,into,is,let,"+"lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,"+"sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,"+"var,virtual,where"];var r="all,and,by,catch,class,else,extends,false,finally,"+"for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,"+"throw,true,try,unless,until,when,while,yes";var x=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,"+"Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,"+"goto,if,import,last,local,my,next,no,our,print,package,redo,require,"+"sub,undef,unless,until,use,wantarray,while,BEGIN,END";var K=[i,"and,as,assert,class,def,del,"+"elif,except,exec,finally,from,global,import,in,is,lambda,"+"nonlocal,not,or,pass,print,raise,try,with,yield,"+"False,True,None"];var g=[i,"alias,and,begin,case,class,"+"def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,"+"rescue,retry,self,super,then,true,undef,unless,until,when,yield,"+"BEGIN,END"];var z=[i,"as,assert,const,copy,drop,"+"enum,extern,fail,false,fn,impl,let,log,loop,match,mod,move,mut,priv,"+"pub,pure,ref,self,static,struct,true,trait,type,unsafe,use"];var J=[i,"case,done,elif,esac,eval,fi,"+"function,in,local,set,then,until"];var C=[l,U,x,s,K,g,J];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)\b/;var E="str";var B="kwd";var j="com";var R="typ";var I="lit";var N="pun";var H="pln";var m="tag";var G="dec";var L="src";var S="atn";var n="atv";var Q="nocode";var O="(?:^^\\.?|[+-]|[!=]=?=?|\\#|%=?|&&?=?|\\(|\\*=?|[+\\-]=|->|\\/=?|::?|<>?>?=?|,|;|\\?|@|\\[|~|{|\\^\\^?=?|\\|\\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(ac){var ag=0;var V=false;var af=false;for(var Y=0,X=ac.length;Y122)){if(!(an<65||aj>90)){ai.push([Math.max(65,aj)|32,Math.min(an,90)|32])}if(!(an<97||aj>122)){ai.push([Math.max(97,aj)&~32,Math.min(an,122)&~32])}}}}ai.sort(function(ax,aw){return(ax[0]-aw[0])||(aw[1]-ax[1])});var al=[];var ar=[];for(var au=0;auav[0]){if(av[1]+1>av[0]){ap.push("-")}ap.push(W(av[1]))}}ap.push("]");return ap.join("")}function Z(ao){var am=ao.source.match(new RegExp("(?:"+"\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]"+"|\\\\u[A-Fa-f0-9]{4}"+"|\\\\x[A-Fa-f0-9]{2}"+"|\\\\[0-9]+"+"|\\\\[^ux0-9]"+"|\\(\\?[:!=]"+"|[\\(\\)\\^]"+"|[^\\x5B\\x5C\\(\\)\\^]+"+")","g"));var ak=am.length;var aq=[];for(var an=0,ap=0;an=2&&al==="["){am[an]=aa(aj)}else{if(al!=="\\"){am[an]=aj.replace(/[a-zA-Z]/g,function(ar){var at=ar.charCodeAt(0);return"["+String.fromCharCode(at&~32,at|32)+"]"})}}}}return am.join("")}var ad=[];for(var Y=0,X=ac.length;Y=0;){V[af.charAt(ah)]=ab}}var ai=ab[1];var ad=""+ai;if(!aj.hasOwnProperty(ad)){ak.push(ai);aj[ad]=null}}ak.push(/[\0-\uffff]/);Y=k(ak)})();var aa=W.length;var Z=function(ak){var ac=ak.sourceCode,ab=ak.basePos;var ag=[ab,H];var ai=0;var aq=ac.match(Y)||[];var am={};for(var ah=0,au=aq.length;ah=5&&"lang-"===at.substring(0,5);if(ap&&!(al&&typeof al[1]==="string")){ap=false;at=L}if(!ap){am[aj]=at}}var ae=ai;ai+=aj.length;if(!ap){ag.push(ab+ae,at)}else{var ao=al[1];var an=aj.indexOf(ao);var af=an+ao.length;if(al[2]){af=aj.length-al[2].length;an=af-ao.length}var av=at.substring(5);D(ab+ae,aj.substring(0,an),Z,ag);D(ab+ae+an,ao,q(av,ao),ag);D(ab+ae+af,aj.substring(af),Z,ag)}}ak.decorations=ag};return Z}function h(af){var X=[],ab=[];if(af["tripleQuotedStrings"]){X.push([E,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(af["multiLineStrings"]){X.push([E,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{X.push([E,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(af["verbatimStrings"]){ab.push([E,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var ad=af["hashComments"];if(ad){if(af["cStyleComments"]){if(ad>1){X.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{X.push([j,/^#(?:(?:define|e(?:l|nd)if|else|error|ifn?def|include|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}ab.push([E,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h(?:h|pp|\+\+)?|[a-z]\w*)>/,null])}else{X.push([j,/^#[^\r\n]*/,null,"#"])}}if(af["cStyleComments"]){ab.push([j,/^\/\/[^\r\n]*/,null]);ab.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}var W=af["regexLiterals"];if(W){var Y=W>1?"":"\n\r";var aa=Y?".":"[\\S\\s]";var Z=("/(?=[^/*"+Y+"])"+"(?:[^/\\x5B\\x5C"+Y+"]"+"|\\x5C"+aa+"|\\x5B(?:[^\\x5C\\x5D"+Y+"]"+"|\\x5C"+aa+")*(?:\\x5D|$))+"+"/");ab.push(["lang-regex",RegExp("^"+O+"("+Z+")")])}var ae=af["types"];if(ae){ab.push([R,ae])}var ac=(""+af["keywords"]).replace(/^ | $/g,"");if(ac.length){ab.push([B,new RegExp("^(?:"+ac.replace(/[\s,]+/g,"|")+")\\b"),null])}X.push([H,/^\s+/,null," \r\n\t\xA0"]);var V="^.[^\\s\\w.$@'\"`/\\\\]*";if(af["regexLiterals"]){V+="(?!s*/)"}ab.push([I,/^@[a-z_$][a-z_$@0-9]*/i,null],[R,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[H,/^[a-z_$][a-z_$@0-9]*/i,null],[I,new RegExp("^(?:"+"0x[a-f0-9]+"+"|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)"+"(?:e[+\\-]?\\d+)?"+")"+"[a-z]*","i"),null,"0123456789"],[H,/^\\[\s\S]?/,null],[N,new RegExp(V),null]);return f(X,ab)}var M=h({"keywords":C,"hashComments":true,"cStyleComments":true,"multiLineStrings":true,"regexLiterals":true});function T(X,ai,ab){var W=/(?:^|\s)nocode(?:\s|$)/;var ad=/\r\n?|\n/;var ae=X.ownerDocument;var ah=ae.createElement("li");while(X.firstChild){ah.appendChild(X.firstChild)}var Y=[ah];function ag(ao){var an=ao.nodeType;if(an==1&&!W.test(ao.className)){if("br"===ao.nodeName){af(ao);if(ao.parentNode){ao.parentNode.removeChild(ao)}}else{for(var aq=ao.firstChild;aq;aq=aq.nextSibling){ag(aq)}}}else{if((an==3||an==4)&&ab){var ap=ao.nodeValue;var al=ap.match(ad);if(al){var ak=ap.substring(0,al.index);ao.nodeValue=ak;var aj=ap.substring(al.index+al[0].length);if(aj){var am=ao.parentNode;am.insertBefore(ae.createTextNode(aj),ao.nextSibling)}af(ao);if(!ak){ao.parentNode.removeChild(ao)}}}}}function af(am){while(!am.nextSibling){am=am.parentNode;if(!am){return}}function ak(an,au){var at=au?an.cloneNode(false):an;var aq=an.parentNode;if(aq){var ar=ak(aq,1);var ap=an.nextSibling;ar.appendChild(at);for(var ao=ap;ao;ao=ap){ap=ao.nextSibling;ar.appendChild(ao)}}return at}var aj=ak(am.nextSibling,0);for(var al;(al=aj.parentNode)&&al.nodeType===1;){aj=al}Y.push(aj)}for(var aa=0;aa=V){ak+=2}if(Z>=at){ad+=2}}}finally{if(av){av.style.display=al}}}var t={};function c(X,Y){for(var V=Y.length;--V>=0;){var W=Y[V];if(!t.hasOwnProperty(W)){t[W]=X}else{if(P["console"]){console["warn"]("cannot override language handler %s",W)}}}}function q(W,V){if(!(W&&t.hasOwnProperty(W))){W=/^\s*]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[N,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(f([[H,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[S,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[N,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(f([],[[n,/^[\s\S]+/]]),["uq.val"]);c(h({"keywords":l,"hashComments":true,"cStyleComments":true,"types":e}),["c","cc","cpp","cxx","cyc","m"]);c(h({"keywords":"null,true,false"}),["json"]);c(h({"keywords":U,"hashComments":true,"cStyleComments":true,"verbatimStrings":true,"types":e}),["cs"]);c(h({"keywords":y,"cStyleComments":true}),["java"]);c(h({"keywords":J,"hashComments":true,"multiLineStrings":true}),["bash","bsh","csh","sh"]);c(h({"keywords":K,"hashComments":true,"multiLineStrings":true,"tripleQuotedStrings":true}),["cv","py","python"]);c(h({"keywords":s,"hashComments":true,"multiLineStrings":true,"regexLiterals":2}),["perl","pl","pm"]);c(h({"keywords":g,"hashComments":true,"multiLineStrings":true,"regexLiterals":true}),["rb","ruby"]);c(h({"keywords":x,"cStyleComments":true,"regexLiterals":true}),["javascript","js"]);c(h({"keywords":r,"hashComments":3,"cStyleComments":true,"multilineStrings":true,"tripleQuotedStrings":true,"regexLiterals":true}),["coffee"]);c(h({"keywords":z,"cStyleComments":true,"multilineStrings":true}),["rc","rs","rust"]);c(f([],[[E,/^[\s\S]+/]]),["regex"]);function d(Y){var X=Y.langExtension;try{var V=b(Y.sourceNode,Y.pre);var W=V.sourceCode;Y.sourceCode=W;Y.spans=V.spans;Y.basePos=0;q(X,W)(Y);F(Y)}catch(Z){if(P["console"]){console["log"](Z&&Z["stack"]||Z)}}}function A(Z,Y,X){var V=document.createElement("div");V.innerHTML="
    "+Z+"
    ";V=V.firstChild;if(X){T(V,X,true)}var W={langExtension:Y,numberLines:X,sourceNode:V,pre:1};d(W);return V.innerHTML}function w(al,ab){var ah=ab||document.body;var ao=ah.ownerDocument||document;function aa(aq){return ah.getElementsByTagName(aq)}var ad=[aa("pre"),aa("code"),aa("xmp")];var ae=[];for(var ak=0;akp;p++)"zIndex"in h[p]&&(l.push(h[p].zIndex),h[p].zIndex<0&&(m[h[p].zIndex]=h[p]));for(l.sort(i);l[j]<0;)if(e=m[l[j++]],n.push(e.apply(d,g)),c)return c=f,n;for(p=0;q>p;p++)if(e=h[p],"zIndex"in e)if(e.zIndex==l[j]){if(n.push(e.apply(d,g)),c)break;do if(j++,e=m[l[j]],e&&n.push(e.apply(d,g)),c)break;while(e)}else m[e.zIndex]=e;else if(n.push(e.apply(d,g)),c)break;return c=f,b=o,n.length?n:null};k._events=j,k.listeners=function(a){var b,c,d,e,h,i,k,l,m=a.split(f),n=j,o=[n],p=[];for(e=0,h=m.length;h>e;e++){for(l=[],i=0,k=o.length;k>i;i++)for(n=o[i].n,c=[n[m[e]],n[g]],d=2;d--;)b=c[d],b&&(l.push(b),p=p.concat(b.f||[]));o=l}return p},k.on=function(a,b){if(a=String(a),"function"!=typeof b)return function(){};for(var c=a.split(f),d=j,e=0,g=c.length;g>e;e++)d=d.n,d=d.hasOwnProperty(c[e])&&d[c[e]]||(d[c[e]]={n:{}});for(d.f=d.f||[],e=0,g=d.f.length;g>e;e++)if(d.f[e]==b)return h;return d.f.push(b),function(a){+a==+a&&(b.zIndex=+a)}},k.f=function(a){var b=[].slice.call(arguments,1);return function(){k.apply(null,[a,null].concat(b).concat([].slice.call(arguments,0)))}},k.stop=function(){c=1},k.nt=function(a){return a?new RegExp("(?:\\.|\\/|^)"+a+"(?:\\.|\\/|$)").test(b):b},k.nts=function(){return b.split(f)},k.off=k.unbind=function(a,b){if(!a)return void(k._events=j={n:{}});var c,d,h,i,l,m,n,o=a.split(f),p=[j];for(i=0,l=o.length;l>i;i++)for(m=0;mi;i++)for(c=p[i];c.n;){if(b){if(c.f){for(m=0,n=c.f.length;n>m;m++)if(c.f[m]==b){c.f.splice(m,1);break}!c.f.length&&delete c.f}for(d in c.n)if(c.n[e](d)&&c.n[d].f){var q=c.n[d].f;for(m=0,n=q.length;n>m;m++)if(q[m]==b){q.splice(m,1);break}!q.length&&delete c.n[d].f}}else{delete c.f;for(d in c.n)c.n[e](d)&&c.n[d].f&&delete c.n[d].f}c=c.n}},k.once=function(a,b){var c=function(){return k.unbind(a,c),b.apply(this,arguments)};return k.on(a,c)},k.version=d,k.toString=function(){return"You are running Eve "+d},"undefined"!=typeof module&&module.exports?module.exports=k:"undefined"!=typeof define?define("eve",[],function(){return k}):a.eve=k}(window||this),function(a,b){"function"==typeof define&&define.amd?define(["eve"],function(c){return b(a,c)}):b(a,a.eve||"function"==typeof require&&require("eve"))}(this,function(a,b){function c(a){if(c.is(a,"function"))return u?a():b.on("raphael.DOMload",a);if(c.is(a,V))return c._engine.create[D](c,a.splice(0,3+c.is(a[0],T))).add(a);var d=Array.prototype.slice.call(arguments,0);if(c.is(d[d.length-1],"function")){var e=d.pop();return u?e.call(c._engine.create[D](c,d)):b.on("raphael.DOMload",function(){e.call(c._engine.create[D](c,d))})}return c._engine.create[D](c,arguments)}function d(a){if("function"==typeof a||Object(a)!==a)return a;var b=new a.constructor;for(var c in a)a[z](c)&&(b[c]=d(a[c]));return b}function e(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return a.push(a.splice(c,1)[0])}function f(a,b,c){function d(){var f=Array.prototype.slice.call(arguments,0),g=f.join("␀"),h=d.cache=d.cache||{},i=d.count=d.count||[];return h[z](g)?(e(i,g),c?c(h[g]):h[g]):(i.length>=1e3&&delete h[i.shift()],i.push(g),h[g]=a[D](b,f),c?c(h[g]):h[g])}return d}function g(){return this.hex}function h(a,b){for(var c=[],d=0,e=a.length;e-2*!b>d;d+=2){var f=[{x:+a[d-2],y:+a[d-1]},{x:+a[d],y:+a[d+1]},{x:+a[d+2],y:+a[d+3]},{x:+a[d+4],y:+a[d+5]}];b?d?e-4==d?f[3]={x:+a[0],y:+a[1]}:e-2==d&&(f[2]={x:+a[0],y:+a[1]},f[3]={x:+a[2],y:+a[3]}):f[0]={x:+a[e-2],y:+a[e-1]}:e-4==d?f[3]=f[2]:d||(f[0]={x:+a[d],y:+a[d+1]}),c.push(["C",(-f[0].x+6*f[1].x+f[2].x)/6,(-f[0].y+6*f[1].y+f[2].y)/6,(f[1].x+6*f[2].x-f[3].x)/6,(f[1].y+6*f[2].y-f[3].y)/6,f[2].x,f[2].y])}return c}function i(a,b,c,d,e){var f=-3*b+9*c-9*d+3*e,g=a*f+6*b-12*c+6*d;return a*g-3*b+3*c}function j(a,b,c,d,e,f,g,h,j){null==j&&(j=1),j=j>1?1:0>j?0:j;for(var k=j/2,l=12,m=[-.1252,.1252,-.3678,.3678,-.5873,.5873,-.7699,.7699,-.9041,.9041,-.9816,.9816],n=[.2491,.2491,.2335,.2335,.2032,.2032,.1601,.1601,.1069,.1069,.0472,.0472],o=0,p=0;l>p;p++){var q=k*m[p]+k,r=i(q,a,c,e,g),s=i(q,b,d,f,h),t=r*r+s*s;o+=n[p]*N.sqrt(t)}return k*o}function k(a,b,c,d,e,f,g,h,i){if(!(0>i||j(a,b,c,d,e,f,g,h)o;)m/=2,n+=(i>k?1:-1)*m,k=j(a,b,c,d,e,f,g,h,n);return n}}function l(a,b,c,d,e,f,g,h){if(!(O(a,c)O(e,g)||O(b,d)O(f,h))){var i=(a*d-b*c)*(e-g)-(a-c)*(e*h-f*g),j=(a*d-b*c)*(f-h)-(b-d)*(e*h-f*g),k=(a-c)*(f-h)-(b-d)*(e-g);if(k){var l=i/k,m=j/k,n=+l.toFixed(2),o=+m.toFixed(2);if(!(n<+P(a,c).toFixed(2)||n>+O(a,c).toFixed(2)||n<+P(e,g).toFixed(2)||n>+O(e,g).toFixed(2)||o<+P(b,d).toFixed(2)||o>+O(b,d).toFixed(2)||o<+P(f,h).toFixed(2)||o>+O(f,h).toFixed(2)))return{x:l,y:m}}}}function m(a,b,d){var e=c.bezierBBox(a),f=c.bezierBBox(b);if(!c.isBBoxIntersect(e,f))return d?0:[];for(var g=j.apply(0,a),h=j.apply(0,b),i=O(~~(g/5),1),k=O(~~(h/5),1),m=[],n=[],o={},p=d?0:[],q=0;i+1>q;q++){var r=c.findDotsAtSegment.apply(c,a.concat(q/i));m.push({x:r.x,y:r.y,t:q/i})}for(q=0;k+1>q;q++)r=c.findDotsAtSegment.apply(c,b.concat(q/k)),n.push({x:r.x,y:r.y,t:q/k});for(q=0;i>q;q++)for(var s=0;k>s;s++){var t=m[q],u=m[q+1],v=n[s],w=n[s+1],x=Q(u.x-t.x)<.001?"y":"x",y=Q(w.x-v.x)<.001?"y":"x",z=l(t.x,t.y,u.x,u.y,v.x,v.y,w.x,w.y);if(z){if(o[z.x.toFixed(4)]==z.y.toFixed(4))continue;o[z.x.toFixed(4)]=z.y.toFixed(4);var A=t.t+Q((z[x]-t[x])/(u[x]-t[x]))*(u.t-t.t),B=v.t+Q((z[y]-v[y])/(w[y]-v[y]))*(w.t-v.t);A>=0&&1.001>=A&&B>=0&&1.001>=B&&(d?p++:p.push({x:z.x,y:z.y,t1:P(A,1),t2:P(B,1)}))}}return p}function n(a,b,d){a=c._path2curve(a),b=c._path2curve(b);for(var e,f,g,h,i,j,k,l,n,o,p=d?0:[],q=0,r=a.length;r>q;q++){var s=a[q];if("M"==s[0])e=i=s[1],f=j=s[2];else{"C"==s[0]?(n=[e,f].concat(s.slice(1)),e=n[6],f=n[7]):(n=[e,f,e,f,i,j,i,j],e=i,f=j);for(var t=0,u=b.length;u>t;t++){var v=b[t];if("M"==v[0])g=k=v[1],h=l=v[2];else{"C"==v[0]?(o=[g,h].concat(v.slice(1)),g=o[6],h=o[7]):(o=[g,h,g,h,k,l,k,l],g=k,h=l);var w=m(n,o,d);if(d)p+=w;else{for(var x=0,y=w.length;y>x;x++)w[x].segment1=q,w[x].segment2=t,w[x].bez1=n,w[x].bez2=o;p=p.concat(w)}}}}}return p}function o(a,b,c,d,e,f){null!=a?(this.a=+a,this.b=+b,this.c=+c,this.d=+d,this.e=+e,this.f=+f):(this.a=1,this.b=0,this.c=0,this.d=1,this.e=0,this.f=0)}function p(){return this.x+H+this.y+H+this.width+" × "+this.height}function q(a,b,c,d,e,f){function g(a){return((l*a+k)*a+j)*a}function h(a,b){var c=i(a,b);return((o*c+n)*c+m)*c}function i(a,b){var c,d,e,f,h,i;for(e=a,i=0;8>i;i++){if(f=g(e)-a,Q(f)e)return c;if(e>d)return d;for(;d>c;){if(f=g(e),Q(f-a)f?c=e:d=e,e=(d-c)/2+c}return e}var j=3*b,k=3*(d-b)-j,l=1-j-k,m=3*c,n=3*(e-c)-m,o=1-m-n;return h(a,1/(200*f))}function r(a,b){var c=[],d={};if(this.ms=b,this.times=1,a){for(var e in a)a[z](e)&&(d[_(e)]=a[e],c.push(_(e)));c.sort(lb)}this.anim=d,this.top=c[c.length-1],this.percents=c}function s(a,d,e,f,g,h){e=_(e);var i,j,k,l,m,n,p=a.ms,r={},s={},t={};if(f)for(v=0,x=ic.length;x>v;v++){var u=ic[v];if(u.el.id==d.id&&u.anim==a){u.percent!=e?(ic.splice(v,1),k=1):j=u,d.attr(u.totalOrigin);break}}else f=+s;for(var v=0,x=a.percents.length;x>v;v++){if(a.percents[v]==e||a.percents[v]>f*a.top){e=a.percents[v],m=a.percents[v-1]||0,p=p/a.top*(e-m),l=a.percents[v+1],i=a.anim[e];break}f&&d.attr(a.anim[a.percents[v]])}if(i){if(j)j.initstatus=f,j.start=new Date-j.ms*f;else{for(var y in i)if(i[z](y)&&(db[z](y)||d.paper.customAttributes[z](y)))switch(r[y]=d.attr(y),null==r[y]&&(r[y]=cb[y]),s[y]=i[y],db[y]){case T:t[y]=(s[y]-r[y])/p;break;case"colour":r[y]=c.getRGB(r[y]);var A=c.getRGB(s[y]);t[y]={r:(A.r-r[y].r)/p,g:(A.g-r[y].g)/p,b:(A.b-r[y].b)/p};break;case"path":var B=Kb(r[y],s[y]),C=B[1];for(r[y]=B[0],t[y]=[],v=0,x=r[y].length;x>v;v++){t[y][v]=[0];for(var D=1,F=r[y][v].length;F>D;D++)t[y][v][D]=(C[v][D]-r[y][v][D])/p}break;case"transform":var G=d._,H=Pb(G[y],s[y]);if(H)for(r[y]=H.from,s[y]=H.to,t[y]=[],t[y].real=!0,v=0,x=r[y].length;x>v;v++)for(t[y][v]=[r[y][v][0]],D=1,F=r[y][v].length;F>D;D++)t[y][v][D]=(s[y][v][D]-r[y][v][D])/p;else{var K=d.matrix||new o,L={_:{transform:G.transform},getBBox:function(){return d.getBBox(1)}};r[y]=[K.a,K.b,K.c,K.d,K.e,K.f],Nb(L,s[y]),s[y]=L._.transform,t[y]=[(L.matrix.a-K.a)/p,(L.matrix.b-K.b)/p,(L.matrix.c-K.c)/p,(L.matrix.d-K.d)/p,(L.matrix.e-K.e)/p,(L.matrix.f-K.f)/p]}break;case"csv":var M=I(i[y])[J](w),N=I(r[y])[J](w);if("clip-rect"==y)for(r[y]=N,t[y]=[],v=N.length;v--;)t[y][v]=(M[v]-r[y][v])/p;s[y]=M;break;default:for(M=[][E](i[y]),N=[][E](r[y]),t[y]=[],v=d.paper.customAttributes[y].length;v--;)t[y][v]=((M[v]||0)-(N[v]||0))/p}var O=i.easing,P=c.easing_formulas[O];if(!P)if(P=I(O).match(Z),P&&5==P.length){var Q=P;P=function(a){return q(a,+Q[1],+Q[2],+Q[3],+Q[4],p)}}else P=nb;if(n=i.start||a.start||+new Date,u={anim:a,percent:e,timestamp:n,start:n+(a.del||0),status:0,initstatus:f||0,stop:!1,ms:p,easing:P,from:r,diff:t,to:s,el:d,callback:i.callback,prev:m,next:l,repeat:h||a.times,origin:d.attr(),totalOrigin:g},ic.push(u),f&&!j&&!k&&(u.stop=!0,u.start=new Date-p*f,1==ic.length))return kc();k&&(u.start=new Date-u.ms*f),1==ic.length&&jc(kc)}b("raphael.anim.start."+d.id,d,a)}}function t(a){for(var b=0;be;e++)for(i=a[e],f=1,h=i.length;h>f;f+=2)c=b.x(i[f],i[f+1]),d=b.y(i[f],i[f+1]),i[f]=c,i[f+1]=d;return a};if(c._g=A,c.type=A.win.SVGAngle||A.doc.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")?"SVG":"VML","VML"==c.type){var sb,tb=A.doc.createElement("div");if(tb.innerHTML='',sb=tb.firstChild,sb.style.behavior="url(#default#VML)",!sb||"object"!=typeof sb.adj)return c.type=G;tb=null}c.svg=!(c.vml="VML"==c.type),c._Paper=C,c.fn=v=C.prototype=c.prototype,c._id=0,c._oid=0,c.is=function(a,b){return b=M.call(b),"finite"==b?!Y[z](+a):"array"==b?a instanceof Array:"null"==b&&null===a||b==typeof a&&null!==a||"object"==b&&a===Object(a)||"array"==b&&Array.isArray&&Array.isArray(a)||W.call(a).slice(8,-1).toLowerCase()==b},c.angle=function(a,b,d,e,f,g){if(null==f){var h=a-d,i=b-e;return h||i?(180+180*N.atan2(-i,-h)/S+360)%360:0}return c.angle(a,b,f,g)-c.angle(d,e,f,g)},c.rad=function(a){return a%360*S/180},c.deg=function(a){return 180*a/S%360},c.snapTo=function(a,b,d){if(d=c.is(d,"finite")?d:10,c.is(a,V)){for(var e=a.length;e--;)if(Q(a[e]-b)<=d)return a[e]}else{a=+a;var f=b%a;if(d>f)return b-f;if(f>a-d)return b-f+a}return b};c.createUUID=function(a,b){return function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(a,b).toUpperCase()}}(/[xy]/g,function(a){var b=16*N.random()|0,c="x"==a?b:3&b|8;return c.toString(16)});c.setWindow=function(a){b("raphael.setWindow",c,A.win,a),A.win=a,A.doc=A.win.document,c._engine.initWin&&c._engine.initWin(A.win)};var ub=function(a){if(c.vml){var b,d=/^\s+|\s+$/g;try{var e=new ActiveXObject("htmlfile");e.write(""),e.close(),b=e.body}catch(g){b=createPopup().document.body}var h=b.createTextRange();ub=f(function(a){try{b.style.color=I(a).replace(d,G);var c=h.queryCommandValue("ForeColor");return c=(255&c)<<16|65280&c|(16711680&c)>>>16,"#"+("000000"+c.toString(16)).slice(-6)}catch(e){return"none"}})}else{var i=A.doc.createElement("i");i.title="Raphaël Colour Picker",i.style.display="none",A.doc.body.appendChild(i),ub=f(function(a){return i.style.color=a,A.doc.defaultView.getComputedStyle(i,G).getPropertyValue("color")})}return ub(a)},vb=function(){return"hsb("+[this.h,this.s,this.b]+")"},wb=function(){return"hsl("+[this.h,this.s,this.l]+")"},xb=function(){return this.hex},yb=function(a,b,d){if(null==b&&c.is(a,"object")&&"r"in a&&"g"in a&&"b"in a&&(d=a.b,b=a.g,a=a.r),null==b&&c.is(a,U)){var e=c.getRGB(a);a=e.r,b=e.g,d=e.b}return(a>1||b>1||d>1)&&(a/=255,b/=255,d/=255),[a,b,d]},zb=function(a,b,d,e){a*=255,b*=255,d*=255;var f={r:a,g:b,b:d,hex:c.rgb(a,b,d),toString:xb};return c.is(e,"finite")&&(f.opacity=e),f};c.color=function(a){var b;return c.is(a,"object")&&"h"in a&&"s"in a&&"b"in a?(b=c.hsb2rgb(a),a.r=b.r,a.g=b.g,a.b=b.b,a.hex=b.hex):c.is(a,"object")&&"h"in a&&"s"in a&&"l"in a?(b=c.hsl2rgb(a),a.r=b.r,a.g=b.g,a.b=b.b,a.hex=b.hex):(c.is(a,"string")&&(a=c.getRGB(a)),c.is(a,"object")&&"r"in a&&"g"in a&&"b"in a?(b=c.rgb2hsl(a),a.h=b.h,a.s=b.s,a.l=b.l,b=c.rgb2hsb(a),a.v=b.b):(a={hex:"none"},a.r=a.g=a.b=a.h=a.s=a.v=a.l=-1)),a.toString=xb,a},c.hsb2rgb=function(a,b,c,d){this.is(a,"object")&&"h"in a&&"s"in a&&"b"in a&&(c=a.b,b=a.s,d=a.o,a=a.h),a*=360;var e,f,g,h,i;return a=a%360/60,i=c*b,h=i*(1-Q(a%2-1)),e=f=g=c-i,a=~~a,e+=[i,h,0,0,h,i][a],f+=[h,i,i,h,0,0][a],g+=[0,0,h,i,i,h][a],zb(e,f,g,d)},c.hsl2rgb=function(a,b,c,d){this.is(a,"object")&&"h"in a&&"s"in a&&"l"in a&&(c=a.l,b=a.s,a=a.h),(a>1||b>1||c>1)&&(a/=360,b/=100,c/=100),a*=360;var e,f,g,h,i;return a=a%360/60,i=2*b*(.5>c?c:1-c),h=i*(1-Q(a%2-1)),e=f=g=c-i/2,a=~~a,e+=[i,h,0,0,h,i][a],f+=[h,i,i,h,0,0][a],g+=[0,0,h,i,i,h][a],zb(e,f,g,d)},c.rgb2hsb=function(a,b,c){c=yb(a,b,c),a=c[0],b=c[1],c=c[2];var d,e,f,g;return f=O(a,b,c),g=f-P(a,b,c),d=0==g?null:f==a?(b-c)/g:f==b?(c-a)/g+2:(a-b)/g+4,d=(d+360)%6*60/360,e=0==g?0:g/f,{h:d,s:e,b:f,toString:vb}},c.rgb2hsl=function(a,b,c){c=yb(a,b,c),a=c[0],b=c[1],c=c[2];var d,e,f,g,h,i;return g=O(a,b,c),h=P(a,b,c),i=g-h,d=0==i?null:g==a?(b-c)/i:g==b?(c-a)/i+2:(a-b)/i+4,d=(d+360)%6*60/360,f=(g+h)/2,e=0==i?0:.5>f?i/(2*f):i/(2-2*f),{h:d,s:e,l:f,toString:wb}},c._path2string=function(){return this.join(",").replace(gb,"$1")};c._preload=function(a,b){var c=A.doc.createElement("img");c.style.cssText="position:absolute;left:-9999em;top:-9999em",c.onload=function(){b.call(this),this.onload=null,A.doc.body.removeChild(this)},c.onerror=function(){A.doc.body.removeChild(this)},A.doc.body.appendChild(c),c.src=a};c.getRGB=f(function(a){if(!a||(a=I(a)).indexOf("-")+1)return{r:-1,g:-1,b:-1,hex:"none",error:1,toString:g};if("none"==a)return{r:-1,g:-1,b:-1,hex:"none",toString:g};!(fb[z](a.toLowerCase().substring(0,2))||"#"==a.charAt())&&(a=ub(a));var b,d,e,f,h,i,j=a.match(X);return j?(j[2]&&(e=ab(j[2].substring(5),16),d=ab(j[2].substring(3,5),16),b=ab(j[2].substring(1,3),16)),j[3]&&(e=ab((h=j[3].charAt(3))+h,16),d=ab((h=j[3].charAt(2))+h,16),b=ab((h=j[3].charAt(1))+h,16)),j[4]&&(i=j[4][J](eb),b=_(i[0]),"%"==i[0].slice(-1)&&(b*=2.55),d=_(i[1]),"%"==i[1].slice(-1)&&(d*=2.55),e=_(i[2]),"%"==i[2].slice(-1)&&(e*=2.55),"rgba"==j[1].toLowerCase().slice(0,4)&&(f=_(i[3])),i[3]&&"%"==i[3].slice(-1)&&(f/=100)),j[5]?(i=j[5][J](eb),b=_(i[0]),"%"==i[0].slice(-1)&&(b*=2.55),d=_(i[1]),"%"==i[1].slice(-1)&&(d*=2.55),e=_(i[2]),"%"==i[2].slice(-1)&&(e*=2.55),("deg"==i[0].slice(-3)||"°"==i[0].slice(-1))&&(b/=360),"hsba"==j[1].toLowerCase().slice(0,4)&&(f=_(i[3])),i[3]&&"%"==i[3].slice(-1)&&(f/=100),c.hsb2rgb(b,d,e,f)):j[6]?(i=j[6][J](eb),b=_(i[0]),"%"==i[0].slice(-1)&&(b*=2.55),d=_(i[1]),"%"==i[1].slice(-1)&&(d*=2.55),e=_(i[2]),"%"==i[2].slice(-1)&&(e*=2.55),("deg"==i[0].slice(-3)||"°"==i[0].slice(-1))&&(b/=360),"hsla"==j[1].toLowerCase().slice(0,4)&&(f=_(i[3])),i[3]&&"%"==i[3].slice(-1)&&(f/=100),c.hsl2rgb(b,d,e,f)):(j={r:b,g:d,b:e,toString:g},j.hex="#"+(16777216|e|d<<8|b<<16).toString(16).slice(1),c.is(f,"finite")&&(j.opacity=f),j)):{r:-1,g:-1,b:-1,hex:"none",error:1,toString:g}},c),c.hsb=f(function(a,b,d){return c.hsb2rgb(a,b,d).hex}),c.hsl=f(function(a,b,d){return c.hsl2rgb(a,b,d).hex}),c.rgb=f(function(a,b,c){return"#"+(16777216|c|b<<8|a<<16).toString(16).slice(1)}),c.getColor=function(a){var b=this.getColor.start=this.getColor.start||{h:0,s:1,b:a||.75},c=this.hsb2rgb(b.h,b.s,b.b);return b.h+=.075,b.h>1&&(b.h=0,b.s-=.2,b.s<=0&&(this.getColor.start={h:0,s:1,b:b.b})),c.hex},c.getColor.reset=function(){delete this.start},c.parsePathString=function(a){if(!a)return null;var b=Ab(a);if(b.arr)return Cb(b.arr);var d={a:7,c:6,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,z:0},e=[];return c.is(a,V)&&c.is(a[0],V)&&(e=Cb(a)),e.length||I(a).replace(hb,function(a,b,c){var f=[],g=b.toLowerCase();if(c.replace(jb,function(a,b){b&&f.push(+b)}),"m"==g&&f.length>2&&(e.push([b][E](f.splice(0,2))),g="l",b="m"==b?"l":"L"),"r"==g)e.push([b][E](f));else for(;f.length>=d[g]&&(e.push([b][E](f.splice(0,d[g]))),d[g]););}),e.toString=c._path2string,b.arr=Cb(e),e},c.parseTransformString=f(function(a){if(!a)return null;var b=[];return c.is(a,V)&&c.is(a[0],V)&&(b=Cb(a)),b.length||I(a).replace(ib,function(a,c,d){{var e=[];M.call(c)}d.replace(jb,function(a,b){b&&e.push(+b)}),b.push([c][E](e))}),b.toString=c._path2string,b});var Ab=function(a){var b=Ab.ps=Ab.ps||{};return b[a]?b[a].sleep=100:b[a]={sleep:100},setTimeout(function(){for(var c in b)b[z](c)&&c!=a&&(b[c].sleep--,!b[c].sleep&&delete b[c])}),b[a]};c.findDotsAtSegment=function(a,b,c,d,e,f,g,h,i){var j=1-i,k=R(j,3),l=R(j,2),m=i*i,n=m*i,o=k*a+3*l*i*c+3*j*i*i*e+n*g,p=k*b+3*l*i*d+3*j*i*i*f+n*h,q=a+2*i*(c-a)+m*(e-2*c+a),r=b+2*i*(d-b)+m*(f-2*d+b),s=c+2*i*(e-c)+m*(g-2*e+c),t=d+2*i*(f-d)+m*(h-2*f+d),u=j*a+i*c,v=j*b+i*d,w=j*e+i*g,x=j*f+i*h,y=90-180*N.atan2(q-s,r-t)/S;return(q>s||t>r)&&(y+=180),{x:o,y:p,m:{x:q,y:r},n:{x:s,y:t},start:{x:u,y:v},end:{x:w,y:x},alpha:y}},c.bezierBBox=function(a,b,d,e,f,g,h,i){c.is(a,"array")||(a=[a,b,d,e,f,g,h,i]);var j=Jb.apply(null,a);return{x:j.min.x,y:j.min.y,x2:j.max.x,y2:j.max.y,width:j.max.x-j.min.x,height:j.max.y-j.min.y}},c.isPointInsideBBox=function(a,b,c){return b>=a.x&&b<=a.x2&&c>=a.y&&c<=a.y2},c.isBBoxIntersect=function(a,b){var d=c.isPointInsideBBox;return d(b,a.x,a.y)||d(b,a.x2,a.y)||d(b,a.x,a.y2)||d(b,a.x2,a.y2)||d(a,b.x,b.y)||d(a,b.x2,b.y)||d(a,b.x,b.y2)||d(a,b.x2,b.y2)||(a.xb.x||b.xa.x)&&(a.yb.y||b.ya.y)},c.pathIntersection=function(a,b){return n(a,b)},c.pathIntersectionNumber=function(a,b){return n(a,b,1)},c.isPointInsidePath=function(a,b,d){var e=c.pathBBox(a);return c.isPointInsideBBox(e,b,d)&&n(a,[["M",b,d],["H",e.x2+10]],1)%2==1},c._removedFactory=function(a){return function(){b("raphael.log",null,"Raphaël: you are calling to method “"+a+"” of removed object",a)}};var Bb=c.pathBBox=function(a){var b=Ab(a);if(b.bbox)return d(b.bbox);if(!a)return{x:0,y:0,width:0,height:0,x2:0,y2:0};a=Kb(a);for(var c,e=0,f=0,g=[],h=[],i=0,j=a.length;j>i;i++)if(c=a[i],"M"==c[0])e=c[1],f=c[2],g.push(e),h.push(f);else{var k=Jb(e,f,c[1],c[2],c[3],c[4],c[5],c[6]);g=g[E](k.min.x,k.max.x),h=h[E](k.min.y,k.max.y),e=c[5],f=c[6]}var l=P[D](0,g),m=P[D](0,h),n=O[D](0,g),o=O[D](0,h),p=n-l,q=o-m,r={x:l,y:m,x2:n,y2:o,width:p,height:q,cx:l+p/2,cy:m+q/2};return b.bbox=d(r),r},Cb=function(a){var b=d(a);return b.toString=c._path2string,b},Db=c._pathToRelative=function(a){var b=Ab(a);if(b.rel)return Cb(b.rel);c.is(a,V)&&c.is(a&&a[0],V)||(a=c.parsePathString(a));var d=[],e=0,f=0,g=0,h=0,i=0;"M"==a[0][0]&&(e=a[0][1],f=a[0][2],g=e,h=f,i++,d.push(["M",e,f]));for(var j=i,k=a.length;k>j;j++){var l=d[j]=[],m=a[j];if(m[0]!=M.call(m[0]))switch(l[0]=M.call(m[0]),l[0]){case"a":l[1]=m[1],l[2]=m[2],l[3]=m[3],l[4]=m[4],l[5]=m[5],l[6]=+(m[6]-e).toFixed(3),l[7]=+(m[7]-f).toFixed(3);break;case"v":l[1]=+(m[1]-f).toFixed(3);break;case"m":g=m[1],h=m[2];default:for(var n=1,o=m.length;o>n;n++)l[n]=+(m[n]-(n%2?e:f)).toFixed(3)}else{l=d[j]=[],"m"==m[0]&&(g=m[1]+e,h=m[2]+f);for(var p=0,q=m.length;q>p;p++)d[j][p]=m[p]}var r=d[j].length;switch(d[j][0]){case"z":e=g,f=h;break;case"h":e+=+d[j][r-1];break;case"v":f+=+d[j][r-1];break;default:e+=+d[j][r-2],f+=+d[j][r-1]}}return d.toString=c._path2string,b.rel=Cb(d),d},Eb=c._pathToAbsolute=function(a){var b=Ab(a);if(b.abs)return Cb(b.abs);if(c.is(a,V)&&c.is(a&&a[0],V)||(a=c.parsePathString(a)),!a||!a.length)return[["M",0,0]];var d=[],e=0,f=0,g=0,i=0,j=0;"M"==a[0][0]&&(e=+a[0][1],f=+a[0][2],g=e,i=f,j++,d[0]=["M",e,f]);for(var k,l,m=3==a.length&&"M"==a[0][0]&&"R"==a[1][0].toUpperCase()&&"Z"==a[2][0].toUpperCase(),n=j,o=a.length;o>n;n++){if(d.push(k=[]),l=a[n],l[0]!=bb.call(l[0]))switch(k[0]=bb.call(l[0]),k[0]){case"A":k[1]=l[1],k[2]=l[2],k[3]=l[3],k[4]=l[4],k[5]=l[5],k[6]=+(l[6]+e),k[7]=+(l[7]+f);break;case"V":k[1]=+l[1]+f;break;case"H":k[1]=+l[1]+e;break;case"R":for(var p=[e,f][E](l.slice(1)),q=2,r=p.length;r>q;q++)p[q]=+p[q]+e,p[++q]=+p[q]+f;d.pop(),d=d[E](h(p,m));break;case"M":g=+l[1]+e,i=+l[2]+f;default:for(q=1,r=l.length;r>q;q++)k[q]=+l[q]+(q%2?e:f)}else if("R"==l[0])p=[e,f][E](l.slice(1)),d.pop(),d=d[E](h(p,m)),k=["R"][E](l.slice(-2));else for(var s=0,t=l.length;t>s;s++)k[s]=l[s];switch(k[0]){case"Z":e=g,f=i;break;case"H":e=k[1];break;case"V":f=k[1];break;case"M":g=k[k.length-2],i=k[k.length-1];default:e=k[k.length-2],f=k[k.length-1]}}return d.toString=c._path2string,b.abs=Cb(d),d},Fb=function(a,b,c,d){return[a,b,c,d,c,d]},Gb=function(a,b,c,d,e,f){var g=1/3,h=2/3;return[g*a+h*c,g*b+h*d,g*e+h*c,g*f+h*d,e,f]},Hb=function(a,b,c,d,e,g,h,i,j,k){var l,m=120*S/180,n=S/180*(+e||0),o=[],p=f(function(a,b,c){var d=a*N.cos(c)-b*N.sin(c),e=a*N.sin(c)+b*N.cos(c);return{x:d,y:e}});if(k)y=k[0],z=k[1],w=k[2],x=k[3];else{l=p(a,b,-n),a=l.x,b=l.y,l=p(i,j,-n),i=l.x,j=l.y;var q=(N.cos(S/180*e),N.sin(S/180*e),(a-i)/2),r=(b-j)/2,s=q*q/(c*c)+r*r/(d*d);s>1&&(s=N.sqrt(s),c=s*c,d=s*d);var t=c*c,u=d*d,v=(g==h?-1:1)*N.sqrt(Q((t*u-t*r*r-u*q*q)/(t*r*r+u*q*q))),w=v*c*r/d+(a+i)/2,x=v*-d*q/c+(b+j)/2,y=N.asin(((b-x)/d).toFixed(9)),z=N.asin(((j-x)/d).toFixed(9));y=w>a?S-y:y,z=w>i?S-z:z,0>y&&(y=2*S+y),0>z&&(z=2*S+z),h&&y>z&&(y-=2*S),!h&&z>y&&(z-=2*S)}var A=z-y;if(Q(A)>m){var B=z,C=i,D=j;z=y+m*(h&&z>y?1:-1),i=w+c*N.cos(z),j=x+d*N.sin(z),o=Hb(i,j,c,d,e,0,h,C,D,[z,B,w,x])}A=z-y;var F=N.cos(y),G=N.sin(y),H=N.cos(z),I=N.sin(z),K=N.tan(A/4),L=4/3*c*K,M=4/3*d*K,O=[a,b],P=[a+L*G,b-M*F],R=[i+L*I,j-M*H],T=[i,j];if(P[0]=2*O[0]-P[0],P[1]=2*O[1]-P[1],k)return[P,R,T][E](o);o=[P,R,T][E](o).join()[J](",");for(var U=[],V=0,W=o.length;W>V;V++)U[V]=V%2?p(o[V-1],o[V],n).y:p(o[V],o[V+1],n).x;return U},Ib=function(a,b,c,d,e,f,g,h,i){var j=1-i;return{x:R(j,3)*a+3*R(j,2)*i*c+3*j*i*i*e+R(i,3)*g,y:R(j,3)*b+3*R(j,2)*i*d+3*j*i*i*f+R(i,3)*h}},Jb=f(function(a,b,c,d,e,f,g,h){var i,j=e-2*c+a-(g-2*e+c),k=2*(c-a)-2*(e-c),l=a-c,m=(-k+N.sqrt(k*k-4*j*l))/2/j,n=(-k-N.sqrt(k*k-4*j*l))/2/j,o=[b,h],p=[a,g];return Q(m)>"1e12"&&(m=.5),Q(n)>"1e12"&&(n=.5),m>0&&1>m&&(i=Ib(a,b,c,d,e,f,g,h,m),p.push(i.x),o.push(i.y)),n>0&&1>n&&(i=Ib(a,b,c,d,e,f,g,h,n),p.push(i.x),o.push(i.y)),j=f-2*d+b-(h-2*f+d),k=2*(d-b)-2*(f-d),l=b-d,m=(-k+N.sqrt(k*k-4*j*l))/2/j,n=(-k-N.sqrt(k*k-4*j*l))/2/j,Q(m)>"1e12"&&(m=.5),Q(n)>"1e12"&&(n=.5),m>0&&1>m&&(i=Ib(a,b,c,d,e,f,g,h,m),p.push(i.x),o.push(i.y)),n>0&&1>n&&(i=Ib(a,b,c,d,e,f,g,h,n),p.push(i.x),o.push(i.y)),{min:{x:P[D](0,p),y:P[D](0,o)},max:{x:O[D](0,p),y:O[D](0,o)}}}),Kb=c._path2curve=f(function(a,b){var c=!b&&Ab(a);if(!b&&c.curve)return Cb(c.curve);for(var d=Eb(a),e=b&&Eb(b),f={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},g={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},h=(function(a,b,c){var d,e,f={T:1,Q:1};if(!a)return["C",b.x,b.y,b.x,b.y,b.x,b.y];switch(!(a[0]in f)&&(b.qx=b.qy=null),a[0]){case"M":b.X=a[1],b.Y=a[2];break;case"A":a=["C"][E](Hb[D](0,[b.x,b.y][E](a.slice(1))));break;case"S":"C"==c||"S"==c?(d=2*b.x-b.bx,e=2*b.y-b.by):(d=b.x,e=b.y),a=["C",d,e][E](a.slice(1));break;case"T":"Q"==c||"T"==c?(b.qx=2*b.x-b.qx,b.qy=2*b.y-b.qy):(b.qx=b.x,b.qy=b.y),a=["C"][E](Gb(b.x,b.y,b.qx,b.qy,a[1],a[2]));break;case"Q":b.qx=a[1],b.qy=a[2],a=["C"][E](Gb(b.x,b.y,a[1],a[2],a[3],a[4]));break;case"L":a=["C"][E](Fb(b.x,b.y,a[1],a[2]));break;case"H":a=["C"][E](Fb(b.x,b.y,a[1],b.y));break;case"V":a=["C"][E](Fb(b.x,b.y,b.x,a[1]));break;case"Z":a=["C"][E](Fb(b.x,b.y,b.X,b.Y))}return a}),i=function(a,b){if(a[b].length>7){a[b].shift();for(var c=a[b];c.length;)k[b]="A",e&&(l[b]="A"),a.splice(b++,0,["C"][E](c.splice(0,6)));a.splice(b,1),p=O(d.length,e&&e.length||0)}},j=function(a,b,c,f,g){a&&b&&"M"==a[g][0]&&"M"!=b[g][0]&&(b.splice(g,0,["M",f.x,f.y]),c.bx=0,c.by=0,c.x=a[g][1],c.y=a[g][2],p=O(d.length,e&&e.length||0))},k=[],l=[],m="",n="",o=0,p=O(d.length,e&&e.length||0);p>o;o++){d[o]&&(m=d[o][0]),"C"!=m&&(k[o]=m,o&&(n=k[o-1])),d[o]=h(d[o],f,n),"A"!=k[o]&&"C"==m&&(k[o]="C"),i(d,o),e&&(e[o]&&(m=e[o][0]),"C"!=m&&(l[o]=m,o&&(n=l[o-1])),e[o]=h(e[o],g,n),"A"!=l[o]&&"C"==m&&(l[o]="C"),i(e,o)),j(d,e,f,g,o),j(e,d,g,f,o);var q=d[o],r=e&&e[o],s=q.length,t=e&&r.length;f.x=q[s-2],f.y=q[s-1],f.bx=_(q[s-4])||f.x,f.by=_(q[s-3])||f.y,g.bx=e&&(_(r[t-4])||g.x),g.by=e&&(_(r[t-3])||g.y),g.x=e&&r[t-2],g.y=e&&r[t-1]}return e||(c.curve=Cb(d)),e?[d,e]:d},null,Cb),Lb=(c._parseDots=f(function(a){for(var b=[],d=0,e=a.length;e>d;d++){var f={},g=a[d].match(/^([^:]*):?([\d\.]*)/);if(f.color=c.getRGB(g[1]),f.color.error)return null;f.color=f.color.hex,g[2]&&(f.offset=g[2]+"%"),b.push(f)}for(d=1,e=b.length-1;e>d;d++)if(!b[d].offset){for(var h=_(b[d-1].offset||0),i=0,j=d+1;e>j;j++)if(b[j].offset){i=b[j].offset;break}i||(i=100,j=e),i=_(i);for(var k=(i-h)/(j-d+1);j>d;d++)h+=k,b[d].offset=h+"%"}return b}),c._tear=function(a,b){a==b.top&&(b.top=a.prev),a==b.bottom&&(b.bottom=a.next),a.next&&(a.next.prev=a.prev),a.prev&&(a.prev.next=a.next)}),Mb=(c._tofront=function(a,b){b.top!==a&&(Lb(a,b),a.next=null,a.prev=b.top,b.top.next=a,b.top=a)},c._toback=function(a,b){b.bottom!==a&&(Lb(a,b),a.next=b.bottom,a.prev=null,b.bottom.prev=a,b.bottom=a)},c._insertafter=function(a,b,c){Lb(a,c),b==c.top&&(c.top=a),b.next&&(b.next.prev=a),a.next=b.next,a.prev=b,b.next=a},c._insertbefore=function(a,b,c){Lb(a,c),b==c.bottom&&(c.bottom=a),b.prev&&(b.prev.next=a),a.prev=b.prev,b.prev=a,a.next=b},c.toMatrix=function(a,b){var c=Bb(a),d={_:{transform:G},getBBox:function(){return c}};return Nb(d,b),d.matrix}),Nb=(c.transformPath=function(a,b){return rb(a,Mb(a,b))},c._extractTransform=function(a,b){if(null==b)return a._.transform;b=I(b).replace(/\.{3}|\u2026/g,a._.transform||G);var d=c.parseTransformString(b),e=0,f=0,g=0,h=1,i=1,j=a._,k=new o;if(j.transform=d||[],d)for(var l=0,m=d.length;m>l;l++){var n,p,q,r,s,t=d[l],u=t.length,v=I(t[0]).toLowerCase(),w=t[0]!=v,x=w?k.invert():0;"t"==v&&3==u?w?(n=x.x(0,0),p=x.y(0,0),q=x.x(t[1],t[2]),r=x.y(t[1],t[2]),k.translate(q-n,r-p)):k.translate(t[1],t[2]):"r"==v?2==u?(s=s||a.getBBox(1),k.rotate(t[1],s.x+s.width/2,s.y+s.height/2),e+=t[1]):4==u&&(w?(q=x.x(t[2],t[3]),r=x.y(t[2],t[3]),k.rotate(t[1],q,r)):k.rotate(t[1],t[2],t[3]),e+=t[1]):"s"==v?2==u||3==u?(s=s||a.getBBox(1),k.scale(t[1],t[u-1],s.x+s.width/2,s.y+s.height/2),h*=t[1],i*=t[u-1]):5==u&&(w?(q=x.x(t[3],t[4]),r=x.y(t[3],t[4]),k.scale(t[1],t[2],q,r)):k.scale(t[1],t[2],t[3],t[4]),h*=t[1],i*=t[2]):"m"==v&&7==u&&k.add(t[1],t[2],t[3],t[4],t[5],t[6]),j.dirtyT=1,a.matrix=k}a.matrix=k,j.sx=h,j.sy=i,j.deg=e,j.dx=f=k.e,j.dy=g=k.f,1==h&&1==i&&!e&&j.bbox?(j.bbox.x+=+f,j.bbox.y+=+g):j.dirtyT=1}),Ob=function(a){var b=a[0];switch(b.toLowerCase()){case"t":return[b,0,0];case"m":return[b,1,0,0,1,0,0];case"r":return 4==a.length?[b,0,a[2],a[3]]:[b,0];case"s":return 5==a.length?[b,1,1,a[3],a[4]]:3==a.length?[b,1,1]:[b,1]}},Pb=c._equaliseTransform=function(a,b){b=I(b).replace(/\.{3}|\u2026/g,a),a=c.parseTransformString(a)||[],b=c.parseTransformString(b)||[]; -for(var d,e,f,g,h=O(a.length,b.length),i=[],j=[],k=0;h>k;k++){if(f=a[k]||Ob(b[k]),g=b[k]||Ob(f),f[0]!=g[0]||"r"==f[0].toLowerCase()&&(f[2]!=g[2]||f[3]!=g[3])||"s"==f[0].toLowerCase()&&(f[3]!=g[3]||f[4]!=g[4]))return;for(i[k]=[],j[k]=[],d=0,e=O(f.length,g.length);e>d;d++)d in f&&(i[k][d]=f[d]),d in g&&(j[k][d]=g[d])}return{from:i,to:j}};c._getContainer=function(a,b,d,e){var f;return f=null!=e||c.is(a,"object")?a:A.doc.getElementById(a),null!=f?f.tagName?null==b?{container:f,width:f.style.pixelWidth||f.offsetWidth,height:f.style.pixelHeight||f.offsetHeight}:{container:f,width:b,height:d}:{container:1,x:a,y:b,width:d,height:e}:void 0},c.pathToRelative=Db,c._engine={},c.path2curve=Kb,c.matrix=function(a,b,c,d,e,f){return new o(a,b,c,d,e,f)},function(a){function b(a){return a[0]*a[0]+a[1]*a[1]}function d(a){var c=N.sqrt(b(a));a[0]&&(a[0]/=c),a[1]&&(a[1]/=c)}a.add=function(a,b,c,d,e,f){var g,h,i,j,k=[[],[],[]],l=[[this.a,this.c,this.e],[this.b,this.d,this.f],[0,0,1]],m=[[a,c,e],[b,d,f],[0,0,1]];for(a&&a instanceof o&&(m=[[a.a,a.c,a.e],[a.b,a.d,a.f],[0,0,1]]),g=0;3>g;g++)for(h=0;3>h;h++){for(j=0,i=0;3>i;i++)j+=l[g][i]*m[i][h];k[g][h]=j}this.a=k[0][0],this.b=k[1][0],this.c=k[0][1],this.d=k[1][1],this.e=k[0][2],this.f=k[1][2]},a.invert=function(){var a=this,b=a.a*a.d-a.b*a.c;return new o(a.d/b,-a.b/b,-a.c/b,a.a/b,(a.c*a.f-a.d*a.e)/b,(a.b*a.e-a.a*a.f)/b)},a.clone=function(){return new o(this.a,this.b,this.c,this.d,this.e,this.f)},a.translate=function(a,b){this.add(1,0,0,1,a,b)},a.scale=function(a,b,c,d){null==b&&(b=a),(c||d)&&this.add(1,0,0,1,c,d),this.add(a,0,0,b,0,0),(c||d)&&this.add(1,0,0,1,-c,-d)},a.rotate=function(a,b,d){a=c.rad(a),b=b||0,d=d||0;var e=+N.cos(a).toFixed(9),f=+N.sin(a).toFixed(9);this.add(e,f,-f,e,b,d),this.add(1,0,0,1,-b,-d)},a.x=function(a,b){return a*this.a+b*this.c+this.e},a.y=function(a,b){return a*this.b+b*this.d+this.f},a.get=function(a){return+this[I.fromCharCode(97+a)].toFixed(4)},a.toString=function(){return c.svg?"matrix("+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)].join()+")":[this.get(0),this.get(2),this.get(1),this.get(3),0,0].join()},a.toFilter=function(){return"progid:DXImageTransform.Microsoft.Matrix(M11="+this.get(0)+", M12="+this.get(2)+", M21="+this.get(1)+", M22="+this.get(3)+", Dx="+this.get(4)+", Dy="+this.get(5)+", sizingmethod='auto expand')"},a.offset=function(){return[this.e.toFixed(4),this.f.toFixed(4)]},a.split=function(){var a={};a.dx=this.e,a.dy=this.f;var e=[[this.a,this.c],[this.b,this.d]];a.scalex=N.sqrt(b(e[0])),d(e[0]),a.shear=e[0][0]*e[1][0]+e[0][1]*e[1][1],e[1]=[e[1][0]-e[0][0]*a.shear,e[1][1]-e[0][1]*a.shear],a.scaley=N.sqrt(b(e[1])),d(e[1]),a.shear/=a.scaley;var f=-e[0][1],g=e[1][1];return 0>g?(a.rotate=c.deg(N.acos(g)),0>f&&(a.rotate=360-a.rotate)):a.rotate=c.deg(N.asin(f)),a.isSimple=!(+a.shear.toFixed(9)||a.scalex.toFixed(9)!=a.scaley.toFixed(9)&&a.rotate),a.isSuperSimple=!+a.shear.toFixed(9)&&a.scalex.toFixed(9)==a.scaley.toFixed(9)&&!a.rotate,a.noRotation=!+a.shear.toFixed(9)&&!a.rotate,a},a.toTransformString=function(a){var b=a||this[J]();return b.isSimple?(b.scalex=+b.scalex.toFixed(4),b.scaley=+b.scaley.toFixed(4),b.rotate=+b.rotate.toFixed(4),(b.dx||b.dy?"t"+[b.dx,b.dy]:G)+(1!=b.scalex||1!=b.scaley?"s"+[b.scalex,b.scaley,0,0]:G)+(b.rotate?"r"+[b.rotate,0,0]:G)):"m"+[this.get(0),this.get(1),this.get(2),this.get(3),this.get(4),this.get(5)]}}(o.prototype);var Qb=navigator.userAgent.match(/Version\/(.*?)\s/)||navigator.userAgent.match(/Chrome\/(\d+)/);v.safari="Apple Computer, Inc."==navigator.vendor&&(Qb&&Qb[1]<4||"iP"==navigator.platform.slice(0,2))||"Google Inc."==navigator.vendor&&Qb&&Qb[1]<8?function(){var a=this.rect(-99,-99,this.width+99,this.height+99).attr({stroke:"none"});setTimeout(function(){a.remove()})}:mb;for(var Rb=function(){this.returnValue=!1},Sb=function(){return this.originalEvent.preventDefault()},Tb=function(){this.cancelBubble=!0},Ub=function(){return this.originalEvent.stopPropagation()},Vb=function(a){var b=A.doc.documentElement.scrollTop||A.doc.body.scrollTop,c=A.doc.documentElement.scrollLeft||A.doc.body.scrollLeft;return{x:a.clientX+c,y:a.clientY+b}},Wb=function(){return A.doc.addEventListener?function(a,b,c,d){var e=function(a){var b=Vb(a);return c.call(d,a,b.x,b.y)};if(a.addEventListener(b,e,!1),F&&L[b]){var f=function(b){for(var e=Vb(b),f=b,g=0,h=b.targetTouches&&b.targetTouches.length;h>g;g++)if(b.targetTouches[g].target==a){b=b.targetTouches[g],b.originalEvent=f,b.preventDefault=Sb,b.stopPropagation=Ub;break}return c.call(d,b,e.x,e.y)};a.addEventListener(L[b],f,!1)}return function(){return a.removeEventListener(b,e,!1),F&&L[b]&&a.removeEventListener(L[b],f,!1),!0}}:A.doc.attachEvent?function(a,b,c,d){var e=function(a){a=a||A.win.event;var b=A.doc.documentElement.scrollTop||A.doc.body.scrollTop,e=A.doc.documentElement.scrollLeft||A.doc.body.scrollLeft,f=a.clientX+e,g=a.clientY+b;return a.preventDefault=a.preventDefault||Rb,a.stopPropagation=a.stopPropagation||Tb,c.call(d,a,f,g)};a.attachEvent("on"+b,e);var f=function(){return a.detachEvent("on"+b,e),!0};return f}:void 0}(),Xb=[],Yb=function(a){for(var c,d=a.clientX,e=a.clientY,f=A.doc.documentElement.scrollTop||A.doc.body.scrollTop,g=A.doc.documentElement.scrollLeft||A.doc.body.scrollLeft,h=Xb.length;h--;){if(c=Xb[h],F&&a.touches){for(var i,j=a.touches.length;j--;)if(i=a.touches[j],i.identifier==c.el._drag.id){d=i.clientX,e=i.clientY,(a.originalEvent?a.originalEvent:a).preventDefault();break}}else a.preventDefault();var k,l=c.el.node,m=l.nextSibling,n=l.parentNode,o=l.style.display;A.win.opera&&n.removeChild(l),l.style.display="none",k=c.el.paper.getElementByPoint(d,e),l.style.display=o,A.win.opera&&(m?n.insertBefore(l,m):n.appendChild(l)),k&&b("raphael.drag.over."+c.el.id,c.el,k),d+=g,e+=f,b("raphael.drag.move."+c.el.id,c.move_scope||c.el,d-c.el._drag.x,e-c.el._drag.y,d,e,a)}},Zb=function(a){c.unmousemove(Yb).unmouseup(Zb);for(var d,e=Xb.length;e--;)d=Xb[e],d.el._drag={},b("raphael.drag.end."+d.el.id,d.end_scope||d.start_scope||d.move_scope||d.el,a);Xb=[]},$b=c.el={},_b=K.length;_b--;)!function(a){c[a]=$b[a]=function(b,d){return c.is(b,"function")&&(this.events=this.events||[],this.events.push({name:a,f:b,unbind:Wb(this.shape||this.node||A.doc,a,b,d||this)})),this},c["un"+a]=$b["un"+a]=function(b){for(var d=this.events||[],e=d.length;e--;)d[e].name!=a||!c.is(b,"undefined")&&d[e].f!=b||(d[e].unbind(),d.splice(e,1),!d.length&&delete this.events);return this}}(K[_b]);$b.data=function(a,d){var e=kb[this.id]=kb[this.id]||{};if(0==arguments.length)return e;if(1==arguments.length){if(c.is(a,"object")){for(var f in a)a[z](f)&&this.data(f,a[f]);return this}return b("raphael.data.get."+this.id,this,e[a],a),e[a]}return e[a]=d,b("raphael.data.set."+this.id,this,d,a),this},$b.removeData=function(a){return null==a?kb[this.id]={}:kb[this.id]&&delete kb[this.id][a],this},$b.getData=function(){return d(kb[this.id]||{})},$b.hover=function(a,b,c,d){return this.mouseover(a,c).mouseout(b,d||c)},$b.unhover=function(a,b){return this.unmouseover(a).unmouseout(b)};var ac=[];$b.drag=function(a,d,e,f,g,h){function i(i){(i.originalEvent||i).preventDefault();var j=i.clientX,k=i.clientY,l=A.doc.documentElement.scrollTop||A.doc.body.scrollTop,m=A.doc.documentElement.scrollLeft||A.doc.body.scrollLeft;if(this._drag.id=i.identifier,F&&i.touches)for(var n,o=i.touches.length;o--;)if(n=i.touches[o],this._drag.id=n.identifier,n.identifier==this._drag.id){j=n.clientX,k=n.clientY;break}this._drag.x=j+m,this._drag.y=k+l,!Xb.length&&c.mousemove(Yb).mouseup(Zb),Xb.push({el:this,move_scope:f,start_scope:g,end_scope:h}),d&&b.on("raphael.drag.start."+this.id,d),a&&b.on("raphael.drag.move."+this.id,a),e&&b.on("raphael.drag.end."+this.id,e),b("raphael.drag.start."+this.id,g||f||this,i.clientX+m,i.clientY+l,i)}return this._drag={},ac.push({el:this,start:i}),this.mousedown(i),this},$b.onDragOver=function(a){a?b.on("raphael.drag.over."+this.id,a):b.unbind("raphael.drag.over."+this.id)},$b.undrag=function(){for(var a=ac.length;a--;)ac[a].el==this&&(this.unmousedown(ac[a].start),ac.splice(a,1),b.unbind("raphael.drag.*."+this.id));!ac.length&&c.unmousemove(Yb).unmouseup(Zb),Xb=[]},v.circle=function(a,b,d){var e=c._engine.circle(this,a||0,b||0,d||0);return this.__set__&&this.__set__.push(e),e},v.rect=function(a,b,d,e,f){var g=c._engine.rect(this,a||0,b||0,d||0,e||0,f||0);return this.__set__&&this.__set__.push(g),g},v.ellipse=function(a,b,d,e){var f=c._engine.ellipse(this,a||0,b||0,d||0,e||0);return this.__set__&&this.__set__.push(f),f},v.path=function(a){a&&!c.is(a,U)&&!c.is(a[0],V)&&(a+=G);var b=c._engine.path(c.format[D](c,arguments),this);return this.__set__&&this.__set__.push(b),b},v.image=function(a,b,d,e,f){var g=c._engine.image(this,a||"about:blank",b||0,d||0,e||0,f||0);return this.__set__&&this.__set__.push(g),g},v.text=function(a,b,d){var e=c._engine.text(this,a||0,b||0,I(d));return this.__set__&&this.__set__.push(e),e},v.set=function(a){!c.is(a,"array")&&(a=Array.prototype.splice.call(arguments,0,arguments.length));var b=new mc(a);return this.__set__&&this.__set__.push(b),b.paper=this,b.type="set",b},v.setStart=function(a){this.__set__=a||this.set()},v.setFinish=function(){var a=this.__set__;return delete this.__set__,a},v.getSize=function(){var a=this.canvas.parentNode;return{width:a.offsetWidth,height:a.offsetHeight}},v.setSize=function(a,b){return c._engine.setSize.call(this,a,b)},v.setViewBox=function(a,b,d,e,f){return c._engine.setViewBox.call(this,a,b,d,e,f)},v.top=v.bottom=null,v.raphael=c;var bc=function(a){var b=a.getBoundingClientRect(),c=a.ownerDocument,d=c.body,e=c.documentElement,f=e.clientTop||d.clientTop||0,g=e.clientLeft||d.clientLeft||0,h=b.top+(A.win.pageYOffset||e.scrollTop||d.scrollTop)-f,i=b.left+(A.win.pageXOffset||e.scrollLeft||d.scrollLeft)-g;return{y:h,x:i}};v.getElementByPoint=function(a,b){var c=this,d=c.canvas,e=A.doc.elementFromPoint(a,b);if(A.win.opera&&"svg"==e.tagName){var f=bc(d),g=d.createSVGRect();g.x=a-f.x,g.y=b-f.y,g.width=g.height=1;var h=d.getIntersectionList(g,null);h.length&&(e=h[h.length-1])}if(!e)return null;for(;e.parentNode&&e!=d.parentNode&&!e.raphael;)e=e.parentNode;return e==c.canvas.parentNode&&(e=d),e=e&&e.raphael?c.getById(e.raphaelid):null},v.getElementsByBBox=function(a){var b=this.set();return this.forEach(function(d){c.isBBoxIntersect(d.getBBox(),a)&&b.push(d)}),b},v.getById=function(a){for(var b=this.bottom;b;){if(b.id==a)return b;b=b.next}return null},v.forEach=function(a,b){for(var c=this.bottom;c;){if(a.call(b,c)===!1)return this;c=c.next}return this},v.getElementsByPoint=function(a,b){var c=this.set();return this.forEach(function(d){d.isPointInside(a,b)&&c.push(d)}),c},$b.isPointInside=function(a,b){var d=this.realPath=qb[this.type](this);return this.attr("transform")&&this.attr("transform").length&&(d=c.transformPath(d,this.attr("transform"))),c.isPointInsidePath(d,a,b)},$b.getBBox=function(a){if(this.removed)return{};var b=this._;return a?((b.dirty||!b.bboxwt)&&(this.realPath=qb[this.type](this),b.bboxwt=Bb(this.realPath),b.bboxwt.toString=p,b.dirty=0),b.bboxwt):((b.dirty||b.dirtyT||!b.bbox)&&((b.dirty||!this.realPath)&&(b.bboxwt=0,this.realPath=qb[this.type](this)),b.bbox=Bb(rb(this.realPath,this.matrix)),b.bbox.toString=p,b.dirty=b.dirtyT=0),b.bbox)},$b.clone=function(){if(this.removed)return null;var a=this.paper[this.type]().attr(this.attr());return this.__set__&&this.__set__.push(a),a},$b.glow=function(a){if("text"==this.type)return null;a=a||{};var b={width:(a.width||10)+(+this.attr("stroke-width")||1),fill:a.fill||!1,opacity:a.opacity||.5,offsetx:a.offsetx||0,offsety:a.offsety||0,color:a.color||"#000"},c=b.width/2,d=this.paper,e=d.set(),f=this.realPath||qb[this.type](this);f=this.matrix?rb(f,this.matrix):f;for(var g=1;c+1>g;g++)e.push(d.path(f).attr({stroke:b.color,fill:b.fill?b.color:"none","stroke-linejoin":"round","stroke-linecap":"round","stroke-width":+(b.width/c*g).toFixed(3),opacity:+(b.opacity/c).toFixed(3)}));return e.insertBefore(this).translate(b.offsetx,b.offsety)};var cc=function(a,b,d,e,f,g,h,i,l){return null==l?j(a,b,d,e,f,g,h,i):c.findDotsAtSegment(a,b,d,e,f,g,h,i,k(a,b,d,e,f,g,h,i,l))},dc=function(a,b){return function(d,e,f){d=Kb(d);for(var g,h,i,j,k,l="",m={},n=0,o=0,p=d.length;p>o;o++){if(i=d[o],"M"==i[0])g=+i[1],h=+i[2];else{if(j=cc(g,h,i[1],i[2],i[3],i[4],i[5],i[6]),n+j>e){if(b&&!m.start){if(k=cc(g,h,i[1],i[2],i[3],i[4],i[5],i[6],e-n),l+=["C"+k.start.x,k.start.y,k.m.x,k.m.y,k.x,k.y],f)return l;m.start=l,l=["M"+k.x,k.y+"C"+k.n.x,k.n.y,k.end.x,k.end.y,i[5],i[6]].join(),n+=j,g=+i[5],h=+i[6];continue}if(!a&&!b)return k=cc(g,h,i[1],i[2],i[3],i[4],i[5],i[6],e-n),{x:k.x,y:k.y,alpha:k.alpha}}n+=j,g=+i[5],h=+i[6]}l+=i.shift()+i}return m.end=l,k=a?n:b?m:c.findDotsAtSegment(g,h,i[0],i[1],i[2],i[3],i[4],i[5],1),k.alpha&&(k={x:k.x,y:k.y,alpha:k.alpha}),k}},ec=dc(1),fc=dc(),gc=dc(0,1);c.getTotalLength=ec,c.getPointAtLength=fc,c.getSubpath=function(a,b,c){if(this.getTotalLength(a)-c<1e-6)return gc(a,b).end;var d=gc(a,c,1);return b?gc(d,b).end:d},$b.getTotalLength=function(){var a=this.getPath();if(a)return this.node.getTotalLength?this.node.getTotalLength():ec(a)},$b.getPointAtLength=function(a){var b=this.getPath();if(b)return fc(b,a)},$b.getPath=function(){var a,b=c._getPath[this.type];if("text"!=this.type&&"set"!=this.type)return b&&(a=b(this)),a},$b.getSubpath=function(a,b){var d=this.getPath();if(d)return c.getSubpath(d,a,b)};var hc=c.easing_formulas={linear:function(a){return a},"<":function(a){return R(a,1.7)},">":function(a){return R(a,.48)},"<>":function(a){var b=.48-a/1.04,c=N.sqrt(.1734+b*b),d=c-b,e=R(Q(d),1/3)*(0>d?-1:1),f=-c-b,g=R(Q(f),1/3)*(0>f?-1:1),h=e+g+.5;return 3*(1-h)*h*h+h*h*h},backIn:function(a){var b=1.70158;return a*a*((b+1)*a-b)},backOut:function(a){a-=1;var b=1.70158;return a*a*((b+1)*a+b)+1},elastic:function(a){return a==!!a?a:R(2,-10*a)*N.sin(2*(a-.075)*S/.3)+1},bounce:function(a){var b,c=7.5625,d=2.75;return 1/d>a?b=c*a*a:2/d>a?(a-=1.5/d,b=c*a*a+.75):2.5/d>a?(a-=2.25/d,b=c*a*a+.9375):(a-=2.625/d,b=c*a*a+.984375),b}};hc.easeIn=hc["ease-in"]=hc["<"],hc.easeOut=hc["ease-out"]=hc[">"],hc.easeInOut=hc["ease-in-out"]=hc["<>"],hc["back-in"]=hc.backIn,hc["back-out"]=hc.backOut;var ic=[],jc=a.requestAnimationFrame||a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame||a.msRequestAnimationFrame||function(a){setTimeout(a,16)},kc=function(){for(var a=+new Date,d=0;dh))if(i>h){var q=j(h/i);for(var r in k)if(k[z](r)){switch(db[r]){case T:f=+k[r]+q*i*l[r];break;case"colour":f="rgb("+[lc($(k[r].r+q*i*l[r].r)),lc($(k[r].g+q*i*l[r].g)),lc($(k[r].b+q*i*l[r].b))].join(",")+")";break;case"path":f=[];for(var t=0,u=k[r].length;u>t;t++){f[t]=[k[r][t][0]];for(var v=1,w=k[r][t].length;w>v;v++)f[t][v]=+k[r][t][v]+q*i*l[r][t][v];f[t]=f[t].join(H)}f=f.join(H);break;case"transform":if(l[r].real)for(f=[],t=0,u=k[r].length;u>t;t++)for(f[t]=[k[r][t][0]],v=1,w=k[r][t].length;w>v;v++)f[t][v]=k[r][t][v]+q*i*l[r][t][v];else{var x=function(a){return+k[r][a]+q*i*l[r][a]};f=[["m",x(0),x(1),x(2),x(3),x(4),x(5)]]}break;case"csv":if("clip-rect"==r)for(f=[],t=4;t--;)f[t]=+k[r][t]+q*i*l[r][t];break;default:var y=[][E](k[r]);for(f=[],t=n.paper.customAttributes[r].length;t--;)f[t]=+y[t]+q*i*l[r][t]}o[r]=f}n.attr(o),function(a,c,d){setTimeout(function(){b("raphael.anim.frame."+a,c,d)})}(n.id,n,e.anim)}else{if(function(a,d,e){setTimeout(function(){b("raphael.anim.frame."+d.id,d,e),b("raphael.anim.finish."+d.id,d,e),c.is(a,"function")&&a.call(d)})}(e.callback,n,e.anim),n.attr(m),ic.splice(d--,1),e.repeat>1&&!e.next){for(g in m)m[z](g)&&(p[g]=e.totalOrigin[g]);e.el.attr(p),s(e.anim,e.el,e.anim.percents[0],null,e.totalOrigin,e.repeat-1)}e.next&&!e.stop&&s(e.anim,e.el,e.next,null,e.totalOrigin,e.repeat)}}}c.svg&&n&&n.paper&&n.paper.safari(),ic.length&&jc(kc)},lc=function(a){return a>255?255:0>a?0:a};$b.animateWith=function(a,b,d,e,f,g){var h=this;if(h.removed)return g&&g.call(h),h;var i=d instanceof r?d:c.animation(d,e,f,g);s(i,h,i.percents[0],null,h.attr());for(var j=0,k=ic.length;k>j;j++)if(ic[j].anim==b&&ic[j].el==a){ic[k-1].start=ic[j].start;break}return h},$b.onAnimation=function(a){return a?b.on("raphael.anim.frame."+this.id,a):b.unbind("raphael.anim.frame."+this.id),this},r.prototype.delay=function(a){var b=new r(this.anim,this.ms);return b.times=this.times,b.del=+a||0,b},r.prototype.repeat=function(a){var b=new r(this.anim,this.ms);return b.del=this.del,b.times=N.floor(O(a,0))||1,b},c.animation=function(a,b,d,e){if(a instanceof r)return a;(c.is(d,"function")||!d)&&(e=e||d||null,d=null),a=Object(a),b=+b||0;var f,g,h={};for(g in a)a[z](g)&&_(g)!=g&&_(g)+"%"!=g&&(f=!0,h[g]=a[g]);if(f)return d&&(h.easing=d),e&&(h.callback=e),new r({100:h},b);if(e){var i=0;for(var j in a){var k=ab(j);a[z](j)&&k>i&&(i=k)}i+="%",!a[i].callback&&(a[i].callback=e)}return new r(a,b)},$b.animate=function(a,b,d,e){var f=this;if(f.removed)return e&&e.call(f),f;var g=a instanceof r?a:c.animation(a,b,d,e);return s(g,f,g.percents[0],null,f.attr()),f},$b.setTime=function(a,b){return a&&null!=b&&this.status(a,P(b,a.ms)/a.ms),this},$b.status=function(a,b){var c,d,e=[],f=0;if(null!=b)return s(a,this,-1,P(b,1)),this;for(c=ic.length;c>f;f++)if(d=ic[f],d.el.id==this.id&&(!a||d.anim==a)){if(a)return d.status;e.push({anim:d.anim,status:d.status})}return a?0:e},$b.pause=function(a){for(var c=0;cb;b++)!a[b]||a[b].constructor!=$b.constructor&&a[b].constructor!=mc||(this[this.items.length]=this.items[this.items.length]=a[b],this.length++)},nc=mc.prototype;nc.push=function(){for(var a,b,c=0,d=arguments.length;d>c;c++)a=arguments[c],!a||a.constructor!=$b.constructor&&a.constructor!=mc||(b=this.items.length,this[b]=this.items[b]=a,this.length++);return this},nc.pop=function(){return this.length&&delete this[this.length--],this.items.pop()},nc.forEach=function(a,b){for(var c=0,d=this.items.length;d>c;c++)if(a.call(b,this.items[c],c)===!1)return this;return this};for(var oc in $b)$b[z](oc)&&(nc[oc]=function(a){return function(){var b=arguments;return this.forEach(function(c){c[a][D](c,b)})}}(oc));return nc.attr=function(a,b){if(a&&c.is(a,V)&&c.is(a[0],"object"))for(var d=0,e=a.length;e>d;d++)this.items[d].attr(a[d]);else for(var f=0,g=this.items.length;g>f;f++)this.items[f].attr(a,b);return this},nc.clear=function(){for(;this.length;)this.pop()},nc.splice=function(a,b){a=0>a?O(this.length+a,0):a,b=O(0,P(this.length-a,b));var c,d=[],e=[],f=[];for(c=2;cc;c++)e.push(this[a+c]);for(;cc?f[c]:d[c-g];for(c=this.items.length=this.length-=b-g;this[c];)delete this[c++];return new mc(e)},nc.exclude=function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]==a)return this.splice(b,1),!0},nc.animate=function(a,b,d,e){(c.is(d,"function")||!d)&&(e=d||null);var f,g,h=this.items.length,i=h,j=this;if(!h)return this;e&&(g=function(){!--h&&e.call(j)}),d=c.is(d,U)?d:g;var k=c.animation(a,b,d,g);for(f=this.items[--i].animate(k);i--;)this.items[i]&&!this.items[i].removed&&this.items[i].animateWith(f,k,k),this.items[i]&&!this.items[i].removed||h--;return this},nc.insertAfter=function(a){for(var b=this.items.length;b--;)this.items[b].insertAfter(a);return this},nc.getBBox=function(){for(var a=[],b=[],c=[],d=[],e=this.items.length;e--;)if(!this.items[e].removed){var f=this.items[e].getBBox();a.push(f.x),b.push(f.y),c.push(f.x+f.width),d.push(f.y+f.height)}return a=P[D](0,a),b=P[D](0,b),c=O[D](0,c),d=O[D](0,d),{x:a,y:b,x2:c,y2:d,width:c-a,height:d-b}},nc.clone=function(a){a=this.paper.set();for(var b=0,c=this.items.length;c>b;b++)a.push(this.items[b].clone());return a},nc.toString=function(){return"Raphaël‘s set"},nc.glow=function(a){var b=this.paper.set();return this.forEach(function(c){var d=c.glow(a);null!=d&&d.forEach(function(a){b.push(a)})}),b},nc.isPointInside=function(a,b){var c=!1;return this.forEach(function(d){return d.isPointInside(a,b)?(c=!0,!1):void 0}),c},c.registerFont=function(a){if(!a.face)return a;this.fonts=this.fonts||{};var b={w:a.w,face:{},glyphs:{}},c=a.face["font-family"];for(var d in a.face)a.face[z](d)&&(b.face[d]=a.face[d]);if(this.fonts[c]?this.fonts[c].push(b):this.fonts[c]=[b],!a.svg){b.face["units-per-em"]=ab(a.face["units-per-em"],10);for(var e in a.glyphs)if(a.glyphs[z](e)){var f=a.glyphs[e];if(b.glyphs[e]={w:f.w,k:{},d:f.d&&"M"+f.d.replace(/[mlcxtrv]/g,function(a){return{l:"L",c:"C",x:"z",t:"m",r:"l",v:"c"}[a]||"M"})+"z"},f.k)for(var g in f.k)f[z](g)&&(b.glyphs[e].k[g]=f.k[g])}}return a},v.getFont=function(a,b,d,e){if(e=e||"normal",d=d||"normal",b=+b||{normal:400,bold:700,lighter:300,bolder:800}[b]||400,c.fonts){var f=c.fonts[a];if(!f){var g=new RegExp("(^|\\s)"+a.replace(/[^\w\d\s+!~.:_-]/g,G)+"(\\s|$)","i");for(var h in c.fonts)if(c.fonts[z](h)&&g.test(h)){f=c.fonts[h];break}}var i;if(f)for(var j=0,k=f.length;k>j&&(i=f[j],i.face["font-weight"]!=b||i.face["font-style"]!=d&&i.face["font-style"]||i.face["font-stretch"]!=e);j++);return i}},v.print=function(a,b,d,e,f,g,h,i){g=g||"middle",h=O(P(h||0,1),-1),i=O(P(i||1,3),1);var j,k=I(d)[J](G),l=0,m=0,n=G;if(c.is(e,"string")&&(e=this.getFont(e)),e){j=(f||16)/e.face["units-per-em"];for(var o=e.face.bbox[J](w),p=+o[0],q=o[3]-o[1],r=0,s=+o[1]+("baseline"==g?q+ +e.face.descent:q/2),t=0,u=k.length;u>t;t++){if("\n"==k[t])l=0,x=0,m=0,r+=q*i;else{var v=m&&e.glyphs[k[t-1]]||{},x=e.glyphs[k[t]];l+=m?(v.w||e.w)+(v.k&&v.k[k[t]]||0)+e.w*h:0,m=1}x&&x.d&&(n+=c.transformPath(x.d,["t",l*j,r*j,"s",j,j,p,s,"t",(a-p)/j,(b-s)/j]))}}return this.path(n).attr({fill:"#000",stroke:"none"})},v.add=function(a){if(c.is(a,"array"))for(var b,d=this.set(),e=0,f=a.length;f>e;e++)b=a[e]||{},x[z](b.type)&&d.push(this[b.type]().attr(b));return d},c.format=function(a,b){var d=c.is(b,V)?[0][E](b):arguments;return a&&c.is(a,U)&&d.length-1&&(a=a.replace(y,function(a,b){return null==d[++b]?G:d[b]})),a||G},c.fullfill=function(){var a=/\{([^\}]+)\}/g,b=/(?:(?:^|\.)(.+?)(?=\[|\.|$|\()|\[('|")(.+?)\2\])(\(\))?/g,c=function(a,c,d){var e=d;return c.replace(b,function(a,b,c,d,f){b=b||d,e&&(b in e&&(e=e[b]),"function"==typeof e&&f&&(e=e()))}),e=(null==e||e==d?a:e)+""};return function(b,d){return String(b).replace(a,function(a,b){return c(a,b,d)})}}(),c.ninja=function(){return B.was?A.win.Raphael=B.is:delete Raphael,c},c.st=nc,b.on("raphael.DOMload",function(){u=!0}),function(a,b,d){function e(){/in/.test(a.readyState)?setTimeout(e,9):c.eve("raphael.DOMload")}null==a.readyState&&a.addEventListener&&(a.addEventListener(b,d=function(){a.removeEventListener(b,d,!1),a.readyState="complete"},!1),a.readyState="loading"),e()}(document,"DOMContentLoaded"),function(){if(c.svg){var a="hasOwnProperty",b=String,d=parseFloat,e=parseInt,f=Math,g=f.max,h=f.abs,i=f.pow,j=/[, ]+/,k=c.eve,l="",m=" ",n="http://www.w3.org/1999/xlink",o={block:"M5,0 0,2.5 5,5z",classic:"M5,0 0,2.5 5,5 3.5,3 3.5,2z",diamond:"M2.5,0 5,2.5 2.5,5 0,2.5z",open:"M6,1 1,3.5 6,6",oval:"M2.5,0A2.5,2.5,0,0,1,2.5,5 2.5,2.5,0,0,1,2.5,0z"},p={};c.toString=function(){return"Your browser supports SVG.\nYou are running Raphaël "+this.version};var q=function(d,e){if(e){"string"==typeof d&&(d=q(d));for(var f in e)e[a](f)&&("xlink:"==f.substring(0,6)?d.setAttributeNS(n,f.substring(6),b(e[f])):d.setAttribute(f,b(e[f])))}else d=c._g.doc.createElementNS("http://www.w3.org/2000/svg",d),d.style&&(d.style.webkitTapHighlightColor="rgba(0,0,0,0)");return d},r=function(a,e){var j="linear",k=a.id+e,m=.5,n=.5,o=a.node,p=a.paper,r=o.style,s=c._g.doc.getElementById(k);if(!s){if(e=b(e).replace(c._radial_gradient,function(a,b,c){if(j="radial",b&&c){m=d(b),n=d(c);var e=2*(n>.5)-1;i(m-.5,2)+i(n-.5,2)>.25&&(n=f.sqrt(.25-i(m-.5,2))*e+.5)&&.5!=n&&(n=n.toFixed(5)-1e-5*e)}return l}),e=e.split(/\s*\-\s*/),"linear"==j){var t=e.shift();if(t=-d(t),isNaN(t))return null;var u=[0,0,f.cos(c.rad(t)),f.sin(c.rad(t))],v=1/(g(h(u[2]),h(u[3]))||1);u[2]*=v,u[3]*=v,u[2]<0&&(u[0]=-u[2],u[2]=0),u[3]<0&&(u[1]=-u[3],u[3]=0)}var w=c._parseDots(e);if(!w)return null;if(k=k.replace(/[\(\)\s,\xb0#]/g,"_"),a.gradient&&k!=a.gradient.id&&(p.defs.removeChild(a.gradient),delete a.gradient),!a.gradient){s=q(j+"Gradient",{id:k}),a.gradient=s,q(s,"radial"==j?{fx:m,fy:n}:{x1:u[0],y1:u[1],x2:u[2],y2:u[3],gradientTransform:a.matrix.invert()}),p.defs.appendChild(s);for(var x=0,y=w.length;y>x;x++)s.appendChild(q("stop",{offset:w[x].offset?w[x].offset:x?"100%":"0%","stop-color":w[x].color||"#fff"}))}}return q(o,{fill:"url("+document.location+"#"+k+")",opacity:1,"fill-opacity":1}),r.fill=l,r.opacity=1,r.fillOpacity=1,1},s=function(a){var b=a.getBBox(1);q(a.pattern,{patternTransform:a.matrix.invert()+" translate("+b.x+","+b.y+")"})},t=function(d,e,f){if("path"==d.type){for(var g,h,i,j,k,m=b(e).toLowerCase().split("-"),n=d.paper,r=f?"end":"start",s=d.node,t=d.attrs,u=t["stroke-width"],v=m.length,w="classic",x=3,y=3,z=5;v--;)switch(m[v]){case"block":case"classic":case"oval":case"diamond":case"open":case"none":w=m[v];break;case"wide":y=5;break;case"narrow":y=2;break;case"long":x=5;break;case"short":x=2}if("open"==w?(x+=2,y+=2,z+=2,i=1,j=f?4:1,k={fill:"none",stroke:t.stroke}):(j=i=x/2,k={fill:t.stroke,stroke:"none"}),d._.arrows?f?(d._.arrows.endPath&&p[d._.arrows.endPath]--,d._.arrows.endMarker&&p[d._.arrows.endMarker]--):(d._.arrows.startPath&&p[d._.arrows.startPath]--,d._.arrows.startMarker&&p[d._.arrows.startMarker]--):d._.arrows={},"none"!=w){var A="raphael-marker-"+w,B="raphael-marker-"+r+w+x+y+"-obj"+d.id;c._g.doc.getElementById(A)?p[A]++:(n.defs.appendChild(q(q("path"),{"stroke-linecap":"round",d:o[w],id:A})),p[A]=1);var C,D=c._g.doc.getElementById(B);D?(p[B]++,C=D.getElementsByTagName("use")[0]):(D=q(q("marker"),{id:B,markerHeight:y,markerWidth:x,orient:"auto",refX:j,refY:y/2}),C=q(q("use"),{"xlink:href":"#"+A,transform:(f?"rotate(180 "+x/2+" "+y/2+") ":l)+"scale("+x/z+","+y/z+")","stroke-width":(1/((x/z+y/z)/2)).toFixed(4)}),D.appendChild(C),n.defs.appendChild(D),p[B]=1),q(C,k);var E=i*("diamond"!=w&&"oval"!=w);f?(g=d._.arrows.startdx*u||0,h=c.getTotalLength(t.path)-E*u):(g=E*u,h=c.getTotalLength(t.path)-(d._.arrows.enddx*u||0)),k={},k["marker-"+r]="url(#"+B+")",(h||g)&&(k.d=c.getSubpath(t.path,g,h)),q(s,k),d._.arrows[r+"Path"]=A,d._.arrows[r+"Marker"]=B,d._.arrows[r+"dx"]=E,d._.arrows[r+"Type"]=w,d._.arrows[r+"String"]=e}else f?(g=d._.arrows.startdx*u||0,h=c.getTotalLength(t.path)-g):(g=0,h=c.getTotalLength(t.path)-(d._.arrows.enddx*u||0)),d._.arrows[r+"Path"]&&q(s,{d:c.getSubpath(t.path,g,h)}),delete d._.arrows[r+"Path"],delete d._.arrows[r+"Marker"],delete d._.arrows[r+"dx"],delete d._.arrows[r+"Type"],delete d._.arrows[r+"String"];for(k in p)if(p[a](k)&&!p[k]){var F=c._g.doc.getElementById(k);F&&F.parentNode.removeChild(F)}}},u={"":[0],none:[0],"-":[3,1],".":[1,1],"-.":[3,1,1,1],"-..":[3,1,1,1,1,1],". ":[1,3],"- ":[4,3],"--":[8,3],"- .":[4,3,1,3],"--.":[8,3,1,3],"--..":[8,3,1,3,1,3]},v=function(a,c,d){if(c=u[b(c).toLowerCase()]){for(var e=a.attrs["stroke-width"]||"1",f={round:e,square:e,butt:0}[a.attrs["stroke-linecap"]||d["stroke-linecap"]]||0,g=[],h=c.length;h--;)g[h]=c[h]*e+(h%2?1:-1)*f;q(a.node,{"stroke-dasharray":g.join(",")})}},w=function(d,f){var i=d.node,k=d.attrs,m=i.style.visibility;i.style.visibility="hidden";for(var o in f)if(f[a](o)){if(!c._availableAttrs[a](o))continue;var p=f[o];switch(k[o]=p,o){case"blur":d.blur(p);break;case"title":var u=i.getElementsByTagName("title");if(u.length&&(u=u[0]))u.firstChild.nodeValue=p;else{u=q("title");var w=c._g.doc.createTextNode(p);u.appendChild(w),i.appendChild(u)}break;case"href":case"target":var x=i.parentNode;if("a"!=x.tagName.toLowerCase()){var z=q("a");x.insertBefore(z,i),z.appendChild(i),x=z}"target"==o?x.setAttributeNS(n,"show","blank"==p?"new":p):x.setAttributeNS(n,o,p);break;case"cursor":i.style.cursor=p;break;case"transform":d.transform(p);break;case"arrow-start":t(d,p);break;case"arrow-end":t(d,p,1);break;case"clip-rect":var A=b(p).split(j);if(4==A.length){d.clip&&d.clip.parentNode.parentNode.removeChild(d.clip.parentNode);var B=q("clipPath"),C=q("rect");B.id=c.createUUID(),q(C,{x:A[0],y:A[1],width:A[2],height:A[3]}),B.appendChild(C),d.paper.defs.appendChild(B),q(i,{"clip-path":"url(#"+B.id+")"}),d.clip=C}if(!p){var D=i.getAttribute("clip-path");if(D){var E=c._g.doc.getElementById(D.replace(/(^url\(#|\)$)/g,l));E&&E.parentNode.removeChild(E),q(i,{"clip-path":l}),delete d.clip}}break;case"path":"path"==d.type&&(q(i,{d:p?k.path=c._pathToAbsolute(p):"M0,0"}),d._.dirty=1,d._.arrows&&("startString"in d._.arrows&&t(d,d._.arrows.startString),"endString"in d._.arrows&&t(d,d._.arrows.endString,1)));break;case"width":if(i.setAttribute(o,p),d._.dirty=1,!k.fx)break;o="x",p=k.x;case"x":k.fx&&(p=-k.x-(k.width||0));case"rx":if("rx"==o&&"rect"==d.type)break;case"cx":i.setAttribute(o,p),d.pattern&&s(d),d._.dirty=1;break;case"height":if(i.setAttribute(o,p),d._.dirty=1,!k.fy)break;o="y",p=k.y;case"y":k.fy&&(p=-k.y-(k.height||0));case"ry":if("ry"==o&&"rect"==d.type)break;case"cy":i.setAttribute(o,p),d.pattern&&s(d),d._.dirty=1;break;case"r":"rect"==d.type?q(i,{rx:p,ry:p}):i.setAttribute(o,p),d._.dirty=1;break;case"src":"image"==d.type&&i.setAttributeNS(n,"href",p);break;case"stroke-width":(1!=d._.sx||1!=d._.sy)&&(p/=g(h(d._.sx),h(d._.sy))||1),i.setAttribute(o,p),k["stroke-dasharray"]&&v(d,k["stroke-dasharray"],f),d._.arrows&&("startString"in d._.arrows&&t(d,d._.arrows.startString),"endString"in d._.arrows&&t(d,d._.arrows.endString,1));break;case"stroke-dasharray":v(d,p,f);break;case"fill":var F=b(p).match(c._ISURL);if(F){B=q("pattern");var G=q("image");B.id=c.createUUID(),q(B,{x:0,y:0,patternUnits:"userSpaceOnUse",height:1,width:1}),q(G,{x:0,y:0,"xlink:href":F[1]}),B.appendChild(G),function(a){c._preload(F[1],function(){var b=this.offsetWidth,c=this.offsetHeight;q(a,{width:b,height:c}),q(G,{width:b,height:c}),d.paper.safari()})}(B),d.paper.defs.appendChild(B),q(i,{fill:"url(#"+B.id+")"}),d.pattern=B,d.pattern&&s(d);break}var H=c.getRGB(p);if(H.error){if(("circle"==d.type||"ellipse"==d.type||"r"!=b(p).charAt())&&r(d,p)){if("opacity"in k||"fill-opacity"in k){var I=c._g.doc.getElementById(i.getAttribute("fill").replace(/^url\(#|\)$/g,l));if(I){var J=I.getElementsByTagName("stop");q(J[J.length-1],{"stop-opacity":("opacity"in k?k.opacity:1)*("fill-opacity"in k?k["fill-opacity"]:1)})}}k.gradient=p,k.fill="none";break}}else delete f.gradient,delete k.gradient,!c.is(k.opacity,"undefined")&&c.is(f.opacity,"undefined")&&q(i,{opacity:k.opacity}),!c.is(k["fill-opacity"],"undefined")&&c.is(f["fill-opacity"],"undefined")&&q(i,{"fill-opacity":k["fill-opacity"]});H[a]("opacity")&&q(i,{"fill-opacity":H.opacity>1?H.opacity/100:H.opacity});case"stroke":H=c.getRGB(p),i.setAttribute(o,H.hex),"stroke"==o&&H[a]("opacity")&&q(i,{"stroke-opacity":H.opacity>1?H.opacity/100:H.opacity}),"stroke"==o&&d._.arrows&&("startString"in d._.arrows&&t(d,d._.arrows.startString),"endString"in d._.arrows&&t(d,d._.arrows.endString,1));break;case"gradient":("circle"==d.type||"ellipse"==d.type||"r"!=b(p).charAt())&&r(d,p);break; -case"opacity":k.gradient&&!k[a]("stroke-opacity")&&q(i,{"stroke-opacity":p>1?p/100:p});case"fill-opacity":if(k.gradient){I=c._g.doc.getElementById(i.getAttribute("fill").replace(/^url\(#|\)$/g,l)),I&&(J=I.getElementsByTagName("stop"),q(J[J.length-1],{"stop-opacity":p}));break}default:"font-size"==o&&(p=e(p,10)+"px");var K=o.replace(/(\-.)/g,function(a){return a.substring(1).toUpperCase()});i.style[K]=p,d._.dirty=1,i.setAttribute(o,p)}}y(d,f),i.style.visibility=m},x=1.2,y=function(d,f){if("text"==d.type&&(f[a]("text")||f[a]("font")||f[a]("font-size")||f[a]("x")||f[a]("y"))){var g=d.attrs,h=d.node,i=h.firstChild?e(c._g.doc.defaultView.getComputedStyle(h.firstChild,l).getPropertyValue("font-size"),10):10;if(f[a]("text")){for(g.text=f.text;h.firstChild;)h.removeChild(h.firstChild);for(var j,k=b(f.text).split("\n"),m=[],n=0,o=k.length;o>n;n++)j=q("tspan"),n&&q(j,{dy:i*x,x:g.x}),j.appendChild(c._g.doc.createTextNode(k[n])),h.appendChild(j),m[n]=j}else for(m=h.getElementsByTagName("tspan"),n=0,o=m.length;o>n;n++)n?q(m[n],{dy:i*x,x:g.x}):q(m[0],{dy:0});q(h,{x:g.x,y:g.y}),d._.dirty=1;var p=d._getBBox(),r=g.y-(p.y+p.height/2);r&&c.is(r,"finite")&&q(m[0],{dy:r})}},z=function(a){return a.parentNode&&"a"===a.parentNode.tagName.toLowerCase()?a.parentNode:a};Element=function(a,b){this[0]=this.node=a,a.raphael=!0,this.id=c._oid++,a.raphaelid=this.id,this.matrix=c.matrix(),this.realPath=null,this.paper=b,this.attrs=this.attrs||{},this._={transform:[],sx:1,sy:1,deg:0,dx:0,dy:0,dirty:1},!b.bottom&&(b.bottom=this),this.prev=b.top,b.top&&(b.top.next=this),b.top=this,this.next=null},$b=c.el,Element.prototype=$b,$b.constructor=Element,c._engine.path=function(a,b){var c=q("path");b.canvas&&b.canvas.appendChild(c);var d=new Element(c,b);return d.type="path",w(d,{fill:"none",stroke:"#000",path:a}),d},$b.rotate=function(a,c,e){if(this.removed)return this;if(a=b(a).split(j),a.length-1&&(c=d(a[1]),e=d(a[2])),a=d(a[0]),null==e&&(c=e),null==c||null==e){var f=this.getBBox(1);c=f.x+f.width/2,e=f.y+f.height/2}return this.transform(this._.transform.concat([["r",a,c,e]])),this},$b.scale=function(a,c,e,f){if(this.removed)return this;if(a=b(a).split(j),a.length-1&&(c=d(a[1]),e=d(a[2]),f=d(a[3])),a=d(a[0]),null==c&&(c=a),null==f&&(e=f),null==e||null==f)var g=this.getBBox(1);return e=null==e?g.x+g.width/2:e,f=null==f?g.y+g.height/2:f,this.transform(this._.transform.concat([["s",a,c,e,f]])),this},$b.translate=function(a,c){return this.removed?this:(a=b(a).split(j),a.length-1&&(c=d(a[1])),a=d(a[0])||0,c=+c||0,this.transform(this._.transform.concat([["t",a,c]])),this)},$b.transform=function(b){var d=this._;if(null==b)return d.transform;if(c._extractTransform(this,b),this.clip&&q(this.clip,{transform:this.matrix.invert()}),this.pattern&&s(this),this.node&&q(this.node,{transform:this.matrix}),1!=d.sx||1!=d.sy){var e=this.attrs[a]("stroke-width")?this.attrs["stroke-width"]:1;this.attr({"stroke-width":e})}return this},$b.hide=function(){return!this.removed&&this.paper.safari(this.node.style.display="none"),this},$b.show=function(){return!this.removed&&this.paper.safari(this.node.style.display=""),this},$b.remove=function(){var a=z(this.node);if(!this.removed&&a.parentNode){var b=this.paper;b.__set__&&b.__set__.exclude(this),k.unbind("raphael.*.*."+this.id),this.gradient&&b.defs.removeChild(this.gradient),c._tear(this,b),a.parentNode.removeChild(a),this.removeData();for(var d in this)this[d]="function"==typeof this[d]?c._removedFactory(d):null;this.removed=!0}},$b._getBBox=function(){if("none"==this.node.style.display){this.show();var a=!0}var b,c=!1;this.paper.canvas.parentElement?b=this.paper.canvas.parentElement.style:this.paper.canvas.parentNode&&(b=this.paper.canvas.parentNode.style),b&&"none"==b.display&&(c=!0,b.display="");var d={};try{d=this.node.getBBox()}catch(e){d={x:this.node.clientLeft,y:this.node.clientTop,width:this.node.clientWidth,height:this.node.clientHeight}}finally{d=d||{},c&&(b.display="none")}return a&&this.hide(),d},$b.attr=function(b,d){if(this.removed)return this;if(null==b){var e={};for(var f in this.attrs)this.attrs[a](f)&&(e[f]=this.attrs[f]);return e.gradient&&"none"==e.fill&&(e.fill=e.gradient)&&delete e.gradient,e.transform=this._.transform,e}if(null==d&&c.is(b,"string")){if("fill"==b&&"none"==this.attrs.fill&&this.attrs.gradient)return this.attrs.gradient;if("transform"==b)return this._.transform;for(var g=b.split(j),h={},i=0,l=g.length;l>i;i++)b=g[i],h[b]=b in this.attrs?this.attrs[b]:c.is(this.paper.customAttributes[b],"function")?this.paper.customAttributes[b].def:c._availableAttrs[b];return l-1?h:h[g[0]]}if(null==d&&c.is(b,"array")){for(h={},i=0,l=b.length;l>i;i++)h[b[i]]=this.attr(b[i]);return h}if(null!=d){var m={};m[b]=d}else null!=b&&c.is(b,"object")&&(m=b);for(var n in m)k("raphael.attr."+n+"."+this.id,this,m[n]);for(n in this.paper.customAttributes)if(this.paper.customAttributes[a](n)&&m[a](n)&&c.is(this.paper.customAttributes[n],"function")){var o=this.paper.customAttributes[n].apply(this,[].concat(m[n]));this.attrs[n]=m[n];for(var p in o)o[a](p)&&(m[p]=o[p])}return w(this,m),this},$b.toFront=function(){if(this.removed)return this;var a=z(this.node);a.parentNode.appendChild(a);var b=this.paper;return b.top!=this&&c._tofront(this,b),this},$b.toBack=function(){if(this.removed)return this;var a=z(this.node),b=a.parentNode;b.insertBefore(a,b.firstChild),c._toback(this,this.paper);this.paper;return this},$b.insertAfter=function(a){if(this.removed||!a)return this;var b=z(this.node),d=z(a.node||a[a.length-1].node);return d.nextSibling?d.parentNode.insertBefore(b,d.nextSibling):d.parentNode.appendChild(b),c._insertafter(this,a,this.paper),this},$b.insertBefore=function(a){if(this.removed||!a)return this;var b=z(this.node),d=z(a.node||a[0].node);return d.parentNode.insertBefore(b,d),c._insertbefore(this,a,this.paper),this},$b.blur=function(a){var b=this;if(0!==+a){var d=q("filter"),e=q("feGaussianBlur");b.attrs.blur=a,d.id=c.createUUID(),q(e,{stdDeviation:+a||1.5}),d.appendChild(e),b.paper.defs.appendChild(d),b._blur=d,q(b.node,{filter:"url(#"+d.id+")"})}else b._blur&&(b._blur.parentNode.removeChild(b._blur),delete b._blur,delete b.attrs.blur),b.node.removeAttribute("filter");return b},c._engine.circle=function(a,b,c,d){var e=q("circle");a.canvas&&a.canvas.appendChild(e);var f=new Element(e,a);return f.attrs={cx:b,cy:c,r:d,fill:"none",stroke:"#000"},f.type="circle",q(e,f.attrs),f},c._engine.rect=function(a,b,c,d,e,f){var g=q("rect");a.canvas&&a.canvas.appendChild(g);var h=new Element(g,a);return h.attrs={x:b,y:c,width:d,height:e,rx:f||0,ry:f||0,fill:"none",stroke:"#000"},h.type="rect",q(g,h.attrs),h},c._engine.ellipse=function(a,b,c,d,e){var f=q("ellipse");a.canvas&&a.canvas.appendChild(f);var g=new Element(f,a);return g.attrs={cx:b,cy:c,rx:d,ry:e,fill:"none",stroke:"#000"},g.type="ellipse",q(f,g.attrs),g},c._engine.image=function(a,b,c,d,e,f){var g=q("image");q(g,{x:c,y:d,width:e,height:f,preserveAspectRatio:"none"}),g.setAttributeNS(n,"href",b),a.canvas&&a.canvas.appendChild(g);var h=new Element(g,a);return h.attrs={x:c,y:d,width:e,height:f,src:b},h.type="image",h},c._engine.text=function(a,b,d,e){var f=q("text");a.canvas&&a.canvas.appendChild(f);var g=new Element(f,a);return g.attrs={x:b,y:d,"text-anchor":"middle",text:e,"font-family":c._availableAttrs["font-family"],"font-size":c._availableAttrs["font-size"],stroke:"none",fill:"#000"},g.type="text",w(g,g.attrs),g},c._engine.setSize=function(a,b){return this.width=a||this.width,this.height=b||this.height,this.canvas.setAttribute("width",this.width),this.canvas.setAttribute("height",this.height),this._viewBox&&this.setViewBox.apply(this,this._viewBox),this},c._engine.create=function(){var a=c._getContainer.apply(0,arguments),b=a&&a.container,d=a.x,e=a.y,f=a.width,g=a.height;if(!b)throw new Error("SVG container not found.");var h,i=q("svg"),j="overflow:hidden;";return d=d||0,e=e||0,f=f||512,g=g||342,q(i,{height:g,version:1.1,width:f,xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"}),1==b?(i.style.cssText=j+"position:absolute;left:"+d+"px;top:"+e+"px",c._g.doc.body.appendChild(i),h=1):(i.style.cssText=j+"position:relative",b.firstChild?b.insertBefore(i,b.firstChild):b.appendChild(i)),b=new c._Paper,b.width=f,b.height=g,b.canvas=i,b.clear(),b._left=b._top=0,h&&(b.renderfix=function(){}),b.renderfix(),b},c._engine.setViewBox=function(a,b,c,d,e){k("raphael.setViewBox",this,this._viewBox,[a,b,c,d,e]);var f,h,i=this.getSize(),j=g(c/i.width,d/i.height),l=this.top,n=e?"xMidYMid meet":"xMinYMin";for(null==a?(this._vbSize&&(j=1),delete this._vbSize,f="0 0 "+this.width+m+this.height):(this._vbSize=j,f=a+m+b+m+c+m+d),q(this.canvas,{viewBox:f,preserveAspectRatio:n});j&&l;)h="stroke-width"in l.attrs?l.attrs["stroke-width"]:1,l.attr({"stroke-width":h}),l._.dirty=1,l._.dirtyT=1,l=l.prev;return this._viewBox=[a,b,c,d,!!e],this},c.prototype.renderfix=function(){var a,b=this.canvas,c=b.style;try{a=b.getScreenCTM()||b.createSVGMatrix()}catch(d){a=b.createSVGMatrix()}var e=-a.e%1,f=-a.f%1;(e||f)&&(e&&(this._left=(this._left+e)%1,c.left=this._left+"px"),f&&(this._top=(this._top+f)%1,c.top=this._top+"px"))},c.prototype.clear=function(){c.eve("raphael.clear",this);for(var a=this.canvas;a.firstChild;)a.removeChild(a.firstChild);this.bottom=this.top=null,(this.desc=q("desc")).appendChild(c._g.doc.createTextNode("Created with Raphaël "+c.version)),a.appendChild(this.desc),a.appendChild(this.defs=q("defs"))},c.prototype.remove=function(){k("raphael.remove",this),this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas);for(var a in this)this[a]="function"==typeof this[a]?c._removedFactory(a):null};var A=c.st;for(var B in $b)$b[a](B)&&!A[a](B)&&(A[B]=function(a){return function(){var b=arguments;return this.forEach(function(c){c[a].apply(c,b)})}}(B))}}(),function(){if(c.vml){var a="hasOwnProperty",b=String,d=parseFloat,e=Math,f=e.round,g=e.max,h=e.min,i=e.abs,j="fill",k=/[, ]+/,l=c.eve,m=" progid:DXImageTransform.Microsoft",n=" ",o="",p={M:"m",L:"l",C:"c",Z:"x",m:"t",l:"r",c:"v",z:"x"},q=/([clmz]),?([^clmz]*)/gi,r=/ progid:\S+Blur\([^\)]+\)/g,s=/-?[^,\s-]+/g,t="position:absolute;left:0;top:0;width:1px;height:1px;behavior:url(#default#VML)",u=21600,v={path:1,rect:1,image:1},w={circle:1,ellipse:1},x=function(a){var d=/[ahqstv]/gi,e=c._pathToAbsolute;if(b(a).match(d)&&(e=c._path2curve),d=/[clmz]/g,e==c._pathToAbsolute&&!b(a).match(d)){var g=b(a).replace(q,function(a,b,c){var d=[],e="m"==b.toLowerCase(),g=p[b];return c.replace(s,function(a){e&&2==d.length&&(g+=d+p["m"==b?"l":"L"],d=[]),d.push(f(a*u))}),g+d});return g}var h,i,j=e(a);g=[];for(var k=0,l=j.length;l>k;k++){h=j[k],i=j[k][0].toLowerCase(),"z"==i&&(i="x");for(var m=1,r=h.length;r>m;m++)i+=f(h[m]*u)+(m!=r-1?",":o);g.push(i)}return g.join(n)},y=function(a,b,d){var e=c.matrix();return e.rotate(-a,.5,.5),{dx:e.x(b,d),dy:e.y(b,d)}},z=function(a,b,c,d,e,f){var g=a._,h=a.matrix,k=g.fillpos,l=a.node,m=l.style,o=1,p="",q=u/b,r=u/c;if(m.visibility="hidden",b&&c){if(l.coordsize=i(q)+n+i(r),m.rotation=f*(0>b*c?-1:1),f){var s=y(f,d,e);d=s.dx,e=s.dy}if(0>b&&(p+="x"),0>c&&(p+=" y")&&(o=-1),m.flip=p,l.coordorigin=d*-q+n+e*-r,k||g.fillsize){var t=l.getElementsByTagName(j);t=t&&t[0],l.removeChild(t),k&&(s=y(f,h.x(k[0],k[1]),h.y(k[0],k[1])),t.position=s.dx*o+n+s.dy*o),g.fillsize&&(t.size=g.fillsize[0]*i(b)+n+g.fillsize[1]*i(c)),l.appendChild(t)}m.visibility="visible"}};c.toString=function(){return"Your browser doesn’t support SVG. Falling down to VML.\nYou are running Raphaël "+this.version};var A=function(a,c,d){for(var e=b(c).toLowerCase().split("-"),f=d?"end":"start",g=e.length,h="classic",i="medium",j="medium";g--;)switch(e[g]){case"block":case"classic":case"oval":case"diamond":case"open":case"none":h=e[g];break;case"wide":case"narrow":j=e[g];break;case"long":case"short":i=e[g]}var k=a.node.getElementsByTagName("stroke")[0];k[f+"arrow"]=h,k[f+"arrowlength"]=i,k[f+"arrowwidth"]=j},B=function(e,i){e.attrs=e.attrs||{};var l=e.node,m=e.attrs,p=l.style,q=v[e.type]&&(i.x!=m.x||i.y!=m.y||i.width!=m.width||i.height!=m.height||i.cx!=m.cx||i.cy!=m.cy||i.rx!=m.rx||i.ry!=m.ry||i.r!=m.r),r=w[e.type]&&(m.cx!=i.cx||m.cy!=i.cy||m.r!=i.r||m.rx!=i.rx||m.ry!=i.ry),s=e;for(var t in i)i[a](t)&&(m[t]=i[t]);if(q&&(m.path=c._getPath[e.type](e),e._.dirty=1),i.href&&(l.href=i.href),i.title&&(l.title=i.title),i.target&&(l.target=i.target),i.cursor&&(p.cursor=i.cursor),"blur"in i&&e.blur(i.blur),(i.path&&"path"==e.type||q)&&(l.path=x(~b(m.path).toLowerCase().indexOf("r")?c._pathToAbsolute(m.path):m.path),e._.dirty=1,"image"==e.type&&(e._.fillpos=[m.x,m.y],e._.fillsize=[m.width,m.height],z(e,1,1,0,0,0))),"transform"in i&&e.transform(i.transform),r){var y=+m.cx,B=+m.cy,D=+m.rx||+m.r||0,E=+m.ry||+m.r||0;l.path=c.format("ar{0},{1},{2},{3},{4},{1},{4},{1}x",f((y-D)*u),f((B-E)*u),f((y+D)*u),f((B+E)*u),f(y*u)),e._.dirty=1}if("clip-rect"in i){var G=b(i["clip-rect"]).split(k);if(4==G.length){G[2]=+G[2]+ +G[0],G[3]=+G[3]+ +G[1];var H=l.clipRect||c._g.doc.createElement("div"),I=H.style;I.clip=c.format("rect({1}px {2}px {3}px {0}px)",G),l.clipRect||(I.position="absolute",I.top=0,I.left=0,I.width=e.paper.width+"px",I.height=e.paper.height+"px",l.parentNode.insertBefore(H,l),H.appendChild(l),l.clipRect=H)}i["clip-rect"]||l.clipRect&&(l.clipRect.style.clip="auto")}if(e.textpath){var J=e.textpath.style;i.font&&(J.font=i.font),i["font-family"]&&(J.fontFamily='"'+i["font-family"].split(",")[0].replace(/^['"]+|['"]+$/g,o)+'"'),i["font-size"]&&(J.fontSize=i["font-size"]),i["font-weight"]&&(J.fontWeight=i["font-weight"]),i["font-style"]&&(J.fontStyle=i["font-style"])}if("arrow-start"in i&&A(s,i["arrow-start"]),"arrow-end"in i&&A(s,i["arrow-end"],1),null!=i.opacity||null!=i["stroke-width"]||null!=i.fill||null!=i.src||null!=i.stroke||null!=i["stroke-width"]||null!=i["stroke-opacity"]||null!=i["fill-opacity"]||null!=i["stroke-dasharray"]||null!=i["stroke-miterlimit"]||null!=i["stroke-linejoin"]||null!=i["stroke-linecap"]){var K=l.getElementsByTagName(j),L=!1;if(K=K&&K[0],!K&&(L=K=F(j)),"image"==e.type&&i.src&&(K.src=i.src),i.fill&&(K.on=!0),(null==K.on||"none"==i.fill||null===i.fill)&&(K.on=!1),K.on&&i.fill){var M=b(i.fill).match(c._ISURL);if(M){K.parentNode==l&&l.removeChild(K),K.rotate=!0,K.src=M[1],K.type="tile";var N=e.getBBox(1);K.position=N.x+n+N.y,e._.fillpos=[N.x,N.y],c._preload(M[1],function(){e._.fillsize=[this.offsetWidth,this.offsetHeight]})}else K.color=c.getRGB(i.fill).hex,K.src=o,K.type="solid",c.getRGB(i.fill).error&&(s.type in{circle:1,ellipse:1}||"r"!=b(i.fill).charAt())&&C(s,i.fill,K)&&(m.fill="none",m.gradient=i.fill,K.rotate=!1)}if("fill-opacity"in i||"opacity"in i){var O=((+m["fill-opacity"]+1||2)-1)*((+m.opacity+1||2)-1)*((+c.getRGB(i.fill).o+1||2)-1);O=h(g(O,0),1),K.opacity=O,K.src&&(K.color="none")}l.appendChild(K);var P=l.getElementsByTagName("stroke")&&l.getElementsByTagName("stroke")[0],Q=!1;!P&&(Q=P=F("stroke")),(i.stroke&&"none"!=i.stroke||i["stroke-width"]||null!=i["stroke-opacity"]||i["stroke-dasharray"]||i["stroke-miterlimit"]||i["stroke-linejoin"]||i["stroke-linecap"])&&(P.on=!0),("none"==i.stroke||null===i.stroke||null==P.on||0==i.stroke||0==i["stroke-width"])&&(P.on=!1);var R=c.getRGB(i.stroke);P.on&&i.stroke&&(P.color=R.hex),O=((+m["stroke-opacity"]+1||2)-1)*((+m.opacity+1||2)-1)*((+R.o+1||2)-1);var S=.75*(d(i["stroke-width"])||1);if(O=h(g(O,0),1),null==i["stroke-width"]&&(S=m["stroke-width"]),i["stroke-width"]&&(P.weight=S),S&&1>S&&(O*=S)&&(P.weight=1),P.opacity=O,i["stroke-linejoin"]&&(P.joinstyle=i["stroke-linejoin"]||"miter"),P.miterlimit=i["stroke-miterlimit"]||8,i["stroke-linecap"]&&(P.endcap="butt"==i["stroke-linecap"]?"flat":"square"==i["stroke-linecap"]?"square":"round"),"stroke-dasharray"in i){var T={"-":"shortdash",".":"shortdot","-.":"shortdashdot","-..":"shortdashdotdot",". ":"dot","- ":"dash","--":"longdash","- .":"dashdot","--.":"longdashdot","--..":"longdashdotdot"};P.dashstyle=T[a](i["stroke-dasharray"])?T[i["stroke-dasharray"]]:o}Q&&l.appendChild(P)}if("text"==s.type){s.paper.canvas.style.display=o;var U=s.paper.span,V=100,W=m.font&&m.font.match(/\d+(?:\.\d*)?(?=px)/);p=U.style,m.font&&(p.font=m.font),m["font-family"]&&(p.fontFamily=m["font-family"]),m["font-weight"]&&(p.fontWeight=m["font-weight"]),m["font-style"]&&(p.fontStyle=m["font-style"]),W=d(m["font-size"]||W&&W[0])||10,p.fontSize=W*V+"px",s.textpath.string&&(U.innerHTML=b(s.textpath.string).replace(/"));var X=U.getBoundingClientRect();s.W=m.w=(X.right-X.left)/V,s.H=m.h=(X.bottom-X.top)/V,s.X=m.x,s.Y=m.y+s.H/2,("x"in i||"y"in i)&&(s.path.v=c.format("m{0},{1}l{2},{1}",f(m.x*u),f(m.y*u),f(m.x*u)+1));for(var Y=["x","y","text","font","font-family","font-weight","font-style","font-size"],Z=0,$=Y.length;$>Z;Z++)if(Y[Z]in i){s._.dirty=1;break}switch(m["text-anchor"]){case"start":s.textpath.style["v-text-align"]="left",s.bbx=s.W/2;break;case"end":s.textpath.style["v-text-align"]="right",s.bbx=-s.W/2;break;default:s.textpath.style["v-text-align"]="center",s.bbx=0}s.textpath.style["v-text-kern"]=!0}},C=function(a,f,g){a.attrs=a.attrs||{};var h=(a.attrs,Math.pow),i="linear",j=".5 .5";if(a.attrs.gradient=f,f=b(f).replace(c._radial_gradient,function(a,b,c){return i="radial",b&&c&&(b=d(b),c=d(c),h(b-.5,2)+h(c-.5,2)>.25&&(c=e.sqrt(.25-h(b-.5,2))*(2*(c>.5)-1)+.5),j=b+n+c),o}),f=f.split(/\s*\-\s*/),"linear"==i){var k=f.shift();if(k=-d(k),isNaN(k))return null}var l=c._parseDots(f);if(!l)return null;if(a=a.shape||a.node,l.length){a.removeChild(g),g.on=!0,g.method="none",g.color=l[0].color,g.color2=l[l.length-1].color;for(var m=[],p=0,q=l.length;q>p;p++)l[p].offset&&m.push(l[p].offset+n+l[p].color);g.colors=m.length?m.join():"0% "+g.color,"radial"==i?(g.type="gradientTitle",g.focus="100%",g.focussize="0 0",g.focusposition=j,g.angle=0):(g.type="gradient",g.angle=(270-k)%360),a.appendChild(g)}return 1},D=function(a,b){this[0]=this.node=a,a.raphael=!0,this.id=c._oid++,a.raphaelid=this.id,this.X=0,this.Y=0,this.attrs={},this.paper=b,this.matrix=c.matrix(),this._={transform:[],sx:1,sy:1,dx:0,dy:0,deg:0,dirty:1,dirtyT:1},!b.bottom&&(b.bottom=this),this.prev=b.top,b.top&&(b.top.next=this),b.top=this,this.next=null},E=c.el;D.prototype=E,E.constructor=D,E.transform=function(a){if(null==a)return this._.transform;var d,e=this.paper._viewBoxShift,f=e?"s"+[e.scale,e.scale]+"-1-1t"+[e.dx,e.dy]:o;e&&(d=a=b(a).replace(/\.{3}|\u2026/g,this._.transform||o)),c._extractTransform(this,f+a);var g,h=this.matrix.clone(),i=this.skew,j=this.node,k=~b(this.attrs.fill).indexOf("-"),l=!b(this.attrs.fill).indexOf("url(");if(h.translate(1,1),l||k||"image"==this.type)if(i.matrix="1 0 0 1",i.offset="0 0",g=h.split(),k&&g.noRotation||!g.isSimple){j.style.filter=h.toFilter();var m=this.getBBox(),p=this.getBBox(1),q=m.x-p.x,r=m.y-p.y;j.coordorigin=q*-u+n+r*-u,z(this,1,1,q,r,0)}else j.style.filter=o,z(this,g.scalex,g.scaley,g.dx,g.dy,g.rotate);else j.style.filter=o,i.matrix=b(h),i.offset=h.offset();return null!==d&&(this._.transform=d,c._extractTransform(this,d)),this},E.rotate=function(a,c,e){if(this.removed)return this;if(null!=a){if(a=b(a).split(k),a.length-1&&(c=d(a[1]),e=d(a[2])),a=d(a[0]),null==e&&(c=e),null==c||null==e){var f=this.getBBox(1);c=f.x+f.width/2,e=f.y+f.height/2}return this._.dirtyT=1,this.transform(this._.transform.concat([["r",a,c,e]])),this}},E.translate=function(a,c){return this.removed?this:(a=b(a).split(k),a.length-1&&(c=d(a[1])),a=d(a[0])||0,c=+c||0,this._.bbox&&(this._.bbox.x+=a,this._.bbox.y+=c),this.transform(this._.transform.concat([["t",a,c]])),this)},E.scale=function(a,c,e,f){if(this.removed)return this;if(a=b(a).split(k),a.length-1&&(c=d(a[1]),e=d(a[2]),f=d(a[3]),isNaN(e)&&(e=null),isNaN(f)&&(f=null)),a=d(a[0]),null==c&&(c=a),null==f&&(e=f),null==e||null==f)var g=this.getBBox(1);return e=null==e?g.x+g.width/2:e,f=null==f?g.y+g.height/2:f,this.transform(this._.transform.concat([["s",a,c,e,f]])),this._.dirtyT=1,this},E.hide=function(){return!this.removed&&(this.node.style.display="none"),this},E.show=function(){return!this.removed&&(this.node.style.display=o),this},E.auxGetBBox=c.el.getBBox,E.getBBox=function(){var a=this.auxGetBBox();if(this.paper&&this.paper._viewBoxShift){var b={},c=1/this.paper._viewBoxShift.scale;return b.x=a.x-this.paper._viewBoxShift.dx,b.x*=c,b.y=a.y-this.paper._viewBoxShift.dy,b.y*=c,b.width=a.width*c,b.height=a.height*c,b.x2=b.x+b.width,b.y2=b.y+b.height,b}return a},E._getBBox=function(){return this.removed?{}:{x:this.X+(this.bbx||0)-this.W/2,y:this.Y-this.H,width:this.W,height:this.H}},E.remove=function(){if(!this.removed&&this.node.parentNode){this.paper.__set__&&this.paper.__set__.exclude(this),c.eve.unbind("raphael.*.*."+this.id),c._tear(this,this.paper),this.node.parentNode.removeChild(this.node),this.shape&&this.shape.parentNode.removeChild(this.shape);for(var a in this)this[a]="function"==typeof this[a]?c._removedFactory(a):null;this.removed=!0}},E.attr=function(b,d){if(this.removed)return this;if(null==b){var e={};for(var f in this.attrs)this.attrs[a](f)&&(e[f]=this.attrs[f]);return e.gradient&&"none"==e.fill&&(e.fill=e.gradient)&&delete e.gradient,e.transform=this._.transform,e}if(null==d&&c.is(b,"string")){if(b==j&&"none"==this.attrs.fill&&this.attrs.gradient)return this.attrs.gradient;for(var g=b.split(k),h={},i=0,m=g.length;m>i;i++)b=g[i],h[b]=b in this.attrs?this.attrs[b]:c.is(this.paper.customAttributes[b],"function")?this.paper.customAttributes[b].def:c._availableAttrs[b];return m-1?h:h[g[0]]}if(this.attrs&&null==d&&c.is(b,"array")){for(h={},i=0,m=b.length;m>i;i++)h[b[i]]=this.attr(b[i]);return h}var n;null!=d&&(n={},n[b]=d),null==d&&c.is(b,"object")&&(n=b);for(var o in n)l("raphael.attr."+o+"."+this.id,this,n[o]);if(n){for(o in this.paper.customAttributes)if(this.paper.customAttributes[a](o)&&n[a](o)&&c.is(this.paper.customAttributes[o],"function")){var p=this.paper.customAttributes[o].apply(this,[].concat(n[o]));this.attrs[o]=n[o];for(var q in p)p[a](q)&&(n[q]=p[q])}n.text&&"text"==this.type&&(this.textpath.string=n.text),B(this,n)}return this},E.toFront=function(){return!this.removed&&this.node.parentNode.appendChild(this.node),this.paper&&this.paper.top!=this&&c._tofront(this,this.paper),this},E.toBack=function(){return this.removed?this:(this.node.parentNode.firstChild!=this.node&&(this.node.parentNode.insertBefore(this.node,this.node.parentNode.firstChild),c._toback(this,this.paper)),this)},E.insertAfter=function(a){return this.removed?this:(a.constructor==c.st.constructor&&(a=a[a.length-1]),a.node.nextSibling?a.node.parentNode.insertBefore(this.node,a.node.nextSibling):a.node.parentNode.appendChild(this.node),c._insertafter(this,a,this.paper),this)},E.insertBefore=function(a){return this.removed?this:(a.constructor==c.st.constructor&&(a=a[0]),a.node.parentNode.insertBefore(this.node,a.node),c._insertbefore(this,a,this.paper),this)},E.blur=function(a){var b=this.node.runtimeStyle,d=b.filter;return d=d.replace(r,o),0!==+a?(this.attrs.blur=a,b.filter=d+n+m+".Blur(pixelradius="+(+a||1.5)+")",b.margin=c.format("-{0}px 0 0 -{0}px",f(+a||1.5))):(b.filter=d,b.margin=0,delete this.attrs.blur),this},c._engine.path=function(a,b){var c=F("shape");c.style.cssText=t,c.coordsize=u+n+u,c.coordorigin=b.coordorigin;var d=new D(c,b),e={fill:"none",stroke:"#000"};a&&(e.path=a),d.type="path",d.path=[],d.Path=o,B(d,e),b.canvas.appendChild(c);var f=F("skew");return f.on=!0,c.appendChild(f),d.skew=f,d.transform(o),d},c._engine.rect=function(a,b,d,e,f,g){var h=c._rectPath(b,d,e,f,g),i=a.path(h),j=i.attrs;return i.X=j.x=b,i.Y=j.y=d,i.W=j.width=e,i.H=j.height=f,j.r=g,j.path=h,i.type="rect",i},c._engine.ellipse=function(a,b,c,d,e){{var f=a.path();f.attrs}return f.X=b-d,f.Y=c-e,f.W=2*d,f.H=2*e,f.type="ellipse",B(f,{cx:b,cy:c,rx:d,ry:e}),f},c._engine.circle=function(a,b,c,d){{var e=a.path();e.attrs}return e.X=b-d,e.Y=c-d,e.W=e.H=2*d,e.type="circle",B(e,{cx:b,cy:c,r:d}),e},c._engine.image=function(a,b,d,e,f,g){var h=c._rectPath(d,e,f,g),i=a.path(h).attr({stroke:"none"}),k=i.attrs,l=i.node,m=l.getElementsByTagName(j)[0];return k.src=b,i.X=k.x=d,i.Y=k.y=e,i.W=k.width=f,i.H=k.height=g,k.path=h,i.type="image",m.parentNode==l&&l.removeChild(m),m.rotate=!0,m.src=b,m.type="tile",i._.fillpos=[d,e],i._.fillsize=[f,g],l.appendChild(m),z(i,1,1,0,0,0),i},c._engine.text=function(a,d,e,g){var h=F("shape"),i=F("path"),j=F("textpath");d=d||0,e=e||0,g=g||"",i.v=c.format("m{0},{1}l{2},{1}",f(d*u),f(e*u),f(d*u)+1),i.textpathok=!0,j.string=b(g),j.on=!0,h.style.cssText=t,h.coordsize=u+n+u,h.coordorigin="0 0";var k=new D(h,a),l={fill:"#000",stroke:"none",font:c._availableAttrs.font,text:g};k.shape=h,k.path=i,k.textpath=j,k.type="text",k.attrs.text=b(g),k.attrs.x=d,k.attrs.y=e,k.attrs.w=1,k.attrs.h=1,B(k,l),h.appendChild(j),h.appendChild(i),a.canvas.appendChild(h);var m=F("skew");return m.on=!0,h.appendChild(m),k.skew=m,k.transform(o),k},c._engine.setSize=function(a,b){var d=this.canvas.style;return this.width=a,this.height=b,a==+a&&(a+="px"),b==+b&&(b+="px"),d.width=a,d.height=b,d.clip="rect(0 "+a+" "+b+" 0)",this._viewBox&&c._engine.setViewBox.apply(this,this._viewBox),this},c._engine.setViewBox=function(a,b,d,e,f){c.eve("raphael.setViewBox",this,this._viewBox,[a,b,d,e,f]);var g,h,i=this.getSize(),j=i.width,k=i.height;return f&&(g=k/e,h=j/d,j>d*g&&(a-=(j-d*g)/2/g),k>e*h&&(b-=(k-e*h)/2/h)),this._viewBox=[a,b,d,e,!!f],this._viewBoxShift={dx:-a,dy:-b,scale:size},this.forEach(function(a){a.transform("...")}),this};var F;c._engine.initWin=function(a){var b=a.document;b.styleSheets.length<31?b.createStyleSheet().addRule(".rvml","behavior:url(#default#VML)"):b.styleSheets[0].addRule(".rvml","behavior:url(#default#VML)");try{!b.namespaces.rvml&&b.namespaces.add("rvml","urn:schemas-microsoft-com:vml"),F=function(a){return b.createElement("')}}catch(c){F=function(a){return b.createElement("<"+a+' xmlns="urn:schemas-microsoft.com:vml" class="rvml">')}}},c._engine.initWin(c._g.win),c._engine.create=function(){var a=c._getContainer.apply(0,arguments),b=a.container,d=a.height,e=a.width,f=a.x,g=a.y;if(!b)throw new Error("VML container not found.");var h=new c._Paper,i=h.canvas=c._g.doc.createElement("div"),j=i.style;return f=f||0,g=g||0,e=e||512,d=d||342,h.width=e,h.height=d,e==+e&&(e+="px"),d==+d&&(d+="px"),h.coordsize=1e3*u+n+1e3*u,h.coordorigin="0 0",h.span=c._g.doc.createElement("span"),h.span.style.cssText="position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;",i.appendChild(h.span),j.cssText=c.format("top:0;left:0;width:{0};height:{1};display:inline-block;position:relative;clip:rect(0 {0} {1} 0);overflow:hidden",e,d),1==b?(c._g.doc.body.appendChild(i),j.left=f+"px",j.top=g+"px",j.position="absolute"):b.firstChild?b.insertBefore(i,b.firstChild):b.appendChild(i),h.renderfix=function(){},h},c.prototype.clear=function(){c.eve("raphael.clear",this),this.canvas.innerHTML=o,this.span=c._g.doc.createElement("span"),this.span.style.cssText="position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;",this.canvas.appendChild(this.span),this.bottom=this.top=null},c.prototype.remove=function(){c.eve("raphael.remove",this),this.canvas.parentNode.removeChild(this.canvas);for(var a in this)this[a]="function"==typeof this[a]?c._removedFactory(a):null;return!0};var G=c.st;for(var H in E)E[a](H)&&!G[a](H)&&(G[H]=function(a){return function(){var b=arguments;return this.forEach(function(c){c[a].apply(c,b)})}}(H))}}(),B.was?A.win.Raphael=c:Raphael=c,"object"==typeof exports&&(module.exports=c),c}); \ No newline at end of file diff --git a/src/main/resources/static/editor.md-master/lib/sequence-diagram.min.js b/src/main/resources/static/editor.md-master/lib/sequence-diagram.min.js deleted file mode 100644 index 521b782..0000000 --- a/src/main/resources/static/editor.md-master/lib/sequence-diagram.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/** js sequence diagrams 1.0.4 - * http://bramp.github.io/js-sequence-diagrams/ - * (c) 2012-2013 Andrew Brampton (bramp.net) - * @license Simplified BSD license. - */ -!function(){"use strict";function Diagram(){this.title=void 0,this.actors=[],this.signals=[]}function ParseError(message,hash){_.extend(this,hash),this.name="ParseError",this.message=message||""}Diagram.prototype.getActor=function(alias){var s=/^(.+) as (\S+)$/i.exec(alias.trim());s?(name=s[1].trim(),alias=s[2].trim()):name=alias.trim(),name=name.replace(/\\n/gm,"\n");var i,actors=this.actors;for(i in actors)if(actors[i].alias==alias)return actors[i];return i=actors.push(new Diagram.Actor(alias,name,actors.length)),actors[i-1]},Diagram.prototype.setTitle=function(title){this.title=title},Diagram.prototype.addSignal=function(signal){this.signals.push(signal)},Diagram.Actor=function(alias,name,index){this.alias=alias,this.name=name,this.index=index},Diagram.Signal=function(actorA,signaltype,actorB,message){this.type="Signal",this.actorA=actorA,this.actorB=actorB,this.linetype=3&signaltype,this.arrowtype=3&signaltype>>2,this.message=message},Diagram.Signal.prototype.isSelf=function(){return this.actorA.index==this.actorB.index},Diagram.Note=function(actor,placement,message){if(this.type="Note",this.actor=actor,this.placement=placement,this.message=message,this.hasManyActors()&&actor[0]==actor[1])throw new Error("Note should be over two different actors")},Diagram.Note.prototype.hasManyActors=function(){return _.isArray(this.actor)},Diagram.LINETYPE={SOLID:0,DOTTED:1},Diagram.ARROWTYPE={FILLED:0,OPEN:1},Diagram.PLACEMENT={LEFTOF:0,RIGHTOF:1,OVER:2};var grammar=function(){function Parser(){this.yy={}}var parser={trace:function(){},yy:{},symbols_:{error:2,start:3,document:4,EOF:5,line:6,statement:7,NL:8,participant:9,actor:10,signal:11,note_statement:12,title:13,message:14,note:15,placement:16,over:17,actor_pair:18,",":19,left_of:20,right_of:21,signaltype:22,ACTOR:23,linetype:24,arrowtype:25,LINE:26,DOTLINE:27,ARROW:28,OPENARROW:29,MESSAGE:30,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",8:"NL",9:"participant",13:"title",15:"note",17:"over",19:",",20:"left_of",21:"right_of",23:"ACTOR",26:"LINE",27:"DOTLINE",28:"ARROW",29:"OPENARROW",30:"MESSAGE"},productions_:[0,[3,2],[4,0],[4,2],[6,1],[6,1],[7,2],[7,1],[7,1],[7,2],[12,4],[12,4],[18,1],[18,3],[16,1],[16,1],[11,4],[10,1],[22,2],[22,1],[24,1],[24,1],[25,1],[25,1],[14,1]],performAction:function(yytext,yyleng,yylineno,yy,yystate,$$){var $0=$$.length-1;switch(yystate){case 1:return yy;case 4:break;case 6:$$[$0];break;case 7:yy.addSignal($$[$0]);break;case 8:yy.addSignal($$[$0]);break;case 9:yy.setTitle($$[$0]);break;case 10:this.$=new Diagram.Note($$[$0-1],$$[$0-2],$$[$0]);break;case 11:this.$=new Diagram.Note($$[$0-1],Diagram.PLACEMENT.OVER,$$[$0]);break;case 12:this.$=$$[$0];break;case 13:this.$=[$$[$0-2],$$[$0]];break;case 14:this.$=Diagram.PLACEMENT.LEFTOF;break;case 15:this.$=Diagram.PLACEMENT.RIGHTOF;break;case 16:this.$=new Diagram.Signal($$[$0-3],$$[$0-2],$$[$0-1],$$[$0]);break;case 17:this.$=yy.getActor($$[$0]);break;case 18:this.$=$$[$0-1]|$$[$0]<<2;break;case 19:this.$=$$[$0];break;case 20:this.$=Diagram.LINETYPE.SOLID;break;case 21:this.$=Diagram.LINETYPE.DOTTED;break;case 22:this.$=Diagram.ARROWTYPE.FILLED;break;case 23:this.$=Diagram.ARROWTYPE.OPEN;break;case 24:this.$=$$[$0].substring(1).trim().replace(/\\n/gm,"\n")}},table:[{3:1,4:2,5:[2,2],8:[2,2],9:[2,2],13:[2,2],15:[2,2],23:[2,2]},{1:[3]},{5:[1,3],6:4,7:5,8:[1,6],9:[1,7],10:11,11:8,12:9,13:[1,10],15:[1,12],23:[1,13]},{1:[2,1]},{5:[2,3],8:[2,3],9:[2,3],13:[2,3],15:[2,3],23:[2,3]},{5:[2,4],8:[2,4],9:[2,4],13:[2,4],15:[2,4],23:[2,4]},{5:[2,5],8:[2,5],9:[2,5],13:[2,5],15:[2,5],23:[2,5]},{10:14,23:[1,13]},{5:[2,7],8:[2,7],9:[2,7],13:[2,7],15:[2,7],23:[2,7]},{5:[2,8],8:[2,8],9:[2,8],13:[2,8],15:[2,8],23:[2,8]},{14:15,30:[1,16]},{22:17,24:18,26:[1,19],27:[1,20]},{16:21,17:[1,22],20:[1,23],21:[1,24]},{5:[2,17],8:[2,17],9:[2,17],13:[2,17],15:[2,17],19:[2,17],23:[2,17],26:[2,17],27:[2,17],30:[2,17]},{5:[2,6],8:[2,6],9:[2,6],13:[2,6],15:[2,6],23:[2,6]},{5:[2,9],8:[2,9],9:[2,9],13:[2,9],15:[2,9],23:[2,9]},{5:[2,24],8:[2,24],9:[2,24],13:[2,24],15:[2,24],23:[2,24]},{10:25,23:[1,13]},{23:[2,19],25:26,28:[1,27],29:[1,28]},{23:[2,20],28:[2,20],29:[2,20]},{23:[2,21],28:[2,21],29:[2,21]},{10:29,23:[1,13]},{10:31,18:30,23:[1,13]},{23:[2,14]},{23:[2,15]},{14:32,30:[1,16]},{23:[2,18]},{23:[2,22]},{23:[2,23]},{14:33,30:[1,16]},{14:34,30:[1,16]},{19:[1,35],30:[2,12]},{5:[2,16],8:[2,16],9:[2,16],13:[2,16],15:[2,16],23:[2,16]},{5:[2,10],8:[2,10],9:[2,10],13:[2,10],15:[2,10],23:[2,10]},{5:[2,11],8:[2,11],9:[2,11],13:[2,11],15:[2,11],23:[2,11]},{10:36,23:[1,13]},{30:[2,13]}],defaultActions:{3:[2,1],23:[2,14],24:[2,15],26:[2,18],27:[2,22],28:[2,23],36:[2,13]},parseError:function(str,hash){if(!hash.recoverable)throw new Error(str);this.trace(str)},parse:function(input){function lex(){var token;return token=self.lexer.lex()||EOF,"number"!=typeof token&&(token=self.symbols_[token]||token),token}var self=this,stack=[0],vstack=[null],lstack=[],table=this.table,yytext="",yylineno=0,yyleng=0,recovering=0,TERROR=2,EOF=1;this.lexer.setInput(input),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,this.yy.parser=this,"undefined"==typeof this.lexer.yylloc&&(this.lexer.yylloc={});var yyloc=this.lexer.yylloc;lstack.push(yyloc);var ranges=this.lexer.options&&this.lexer.options.ranges;this.parseError="function"==typeof this.yy.parseError?this.yy.parseError:Object.getPrototypeOf(this).parseError;for(var symbol,preErrorSymbol,state,action,r,p,len,newState,expected,yyval={};;){if(state=stack[stack.length-1],this.defaultActions[state]?action=this.defaultActions[state]:((null===symbol||"undefined"==typeof symbol)&&(symbol=lex()),action=table[state]&&table[state][symbol]),"undefined"==typeof action||!action.length||!action[0]){var errStr="";expected=[];for(p in table[state])this.terminals_[p]&&p>TERROR&&expected.push("'"+this.terminals_[p]+"'");errStr=this.lexer.showPosition?"Parse error on line "+(yylineno+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+expected.join(", ")+", got '"+(this.terminals_[symbol]||symbol)+"'":"Parse error on line "+(yylineno+1)+": Unexpected "+(symbol==EOF?"end of input":"'"+(this.terminals_[symbol]||symbol)+"'"),this.parseError(errStr,{text:this.lexer.match,token:this.terminals_[symbol]||symbol,line:this.lexer.yylineno,loc:yyloc,expected:expected})}if(action[0]instanceof Array&&action.length>1)throw new Error("Parse Error: multiple actions possible at state: "+state+", token: "+symbol);switch(action[0]){case 1:stack.push(symbol),vstack.push(this.lexer.yytext),lstack.push(this.lexer.yylloc),stack.push(action[1]),symbol=null,preErrorSymbol?(symbol=preErrorSymbol,preErrorSymbol=null):(yyleng=this.lexer.yyleng,yytext=this.lexer.yytext,yylineno=this.lexer.yylineno,yyloc=this.lexer.yylloc,recovering>0&&recovering--);break;case 2:if(len=this.productions_[action[1]][1],yyval.$=vstack[vstack.length-len],yyval._$={first_line:lstack[lstack.length-(len||1)].first_line,last_line:lstack[lstack.length-1].last_line,first_column:lstack[lstack.length-(len||1)].first_column,last_column:lstack[lstack.length-1].last_column},ranges&&(yyval._$.range=[lstack[lstack.length-(len||1)].range[0],lstack[lstack.length-1].range[1]]),r=this.performAction.call(yyval,yytext,yyleng,yylineno,this.yy,action[1],vstack,lstack),"undefined"!=typeof r)return r;len&&(stack=stack.slice(0,2*-1*len),vstack=vstack.slice(0,-1*len),lstack=lstack.slice(0,-1*len)),stack.push(this.productions_[action[1]][0]),vstack.push(yyval.$),lstack.push(yyval._$),newState=table[stack[stack.length-2]][stack[stack.length-1]],stack.push(newState);break;case 3:return!0}}return!0}},lexer=function(){var lexer={EOF:1,parseError:function(str,hash){if(!this.yy.parser)throw new Error(str);this.yy.parser.parseError(str,hash)},setInput:function(input){return this._input=input,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var ch=this._input[0];this.yytext+=ch,this.yyleng++,this.offset++,this.match+=ch,this.matched+=ch;var lines=ch.match(/(?:\r\n?|\n).*/g);return lines?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),ch},unput:function(ch){var len=ch.length,lines=ch.split(/(?:\r\n?|\n)/g);this._input=ch+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-len-1),this.offset-=len;var oldLines=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),lines.length-1&&(this.yylineno-=lines.length-1);var r=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:lines?(lines.length===oldLines.length?this.yylloc.first_column:0)+oldLines[oldLines.length-lines.length].length-lines[0].length:this.yylloc.first_column-len},this.options.ranges&&(this.yylloc.range=[r[0],r[0]+this.yyleng-len]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},less:function(n){this.unput(this.match.slice(n))},pastInput:function(){var past=this.matched.substr(0,this.matched.length-this.match.length);return(past.length>20?"...":"")+past.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var next=this.match;return next.length<20&&(next+=this._input.substr(0,20-next.length)),(next.substr(0,20)+(next.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var pre=this.pastInput(),c=new Array(pre.length+1).join("-");return pre+this.upcomingInput()+"\n"+c+"^"},test_match:function(match,indexed_rule){var token,lines,backup;if(this.options.backtrack_lexer&&(backup={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(backup.yylloc.range=this.yylloc.range.slice(0))),lines=match[0].match(/(?:\r\n?|\n).*/g),lines&&(this.yylineno+=lines.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:lines?lines[lines.length-1].length-lines[lines.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+match[0].length},this.yytext+=match[0],this.match+=match[0],this.matches=match,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(match[0].length),this.matched+=match[0],token=this.performAction.call(this,this.yy,this,indexed_rule,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),token)return token;if(this._backtrack){for(var k in backup)this[k]=backup[k];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var token,match,tempMatch,index;this._more||(this.yytext="",this.match="");for(var rules=this._currentRules(),i=0;imatch[0].length)){if(match=tempMatch,index=i,this.options.backtrack_lexer){if(token=this.test_match(tempMatch,rules[i]),token!==!1)return token;if(this._backtrack){match=!1;continue}return!1}if(!this.options.flex)break}return match?(token=this.test_match(match,rules[index]),token!==!1?token:!1):""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var r=this.next();return r?r:this.lex()},begin:function(condition){this.conditionStack.push(condition)},popState:function(){var n=this.conditionStack.length-1;return n>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(n){return n=this.conditionStack.length-1-Math.abs(n||0),n>=0?this.conditionStack[n]:"INITIAL"},pushState:function(condition){this.begin(condition)},stateStackSize:function(){return this.conditionStack.length},options:{"case-insensitive":!0},performAction:function(yy,yy_,$avoiding_name_collisions,YY_START){switch($avoiding_name_collisions){case 0:return 8;case 1:break;case 2:break;case 3:return 9;case 4:return 20;case 5:return 21;case 6:return 17;case 7:return 15;case 8:return 13;case 9:return 19;case 10:return 23;case 11:return 27;case 12:return 26;case 13:return 29;case 14:return 28;case 15:return 30;case 16:return 5;case 17:return"INVALID"}},rules:[/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:participant\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:title\b)/i,/^(?:,)/i,/^(?:[^\->:\n,]+)/i,/^(?:--)/i,/^(?:-)/i,/^(?:>>)/i,/^(?:>)/i,/^(?:[^#\n]+)/i,/^(?:$)/i,/^(?:.)/i],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],inclusive:!0}}};return lexer}();return parser.lexer=lexer,Parser.prototype=parser,parser.Parser=Parser,new Parser}();"undefined"!=typeof require&&"undefined"!=typeof exports&&(exports.parser=grammar,exports.Parser=grammar.Parser,exports.parse=function(){return grammar.parse.apply(grammar,arguments)},exports.main=function(args){args[1]||(console.log("Usage: "+args[0]+" FILE"),process.exit(1));var source=require("fs").readFileSync(require("path").normalize(args[1]),"utf8");return exports.parser.parse(source)},"undefined"!=typeof module&&require.main===module&&exports.main(process.argv.slice(1))),ParseError.prototype=new Error,Diagram.ParseError=ParseError,grammar.parseError=function(message,hash){throw new ParseError(message,hash)},Diagram.parse=function(input){return grammar.yy=new Diagram,grammar.parse(input)},this.Diagram=Diagram}.call(this),"undefined"!=typeof jQuery&&function($){$.fn.sequenceDiagram=function(options){return this.each(function(){var $this=$(this),diagram=Diagram.parse($this.text());$this.html(""),diagram.drawSVG(this,options)})}}(jQuery),Raphael.registerFont({w:209,face:{"font-family":"daniel","font-weight":700,"font-stretch":"normal","units-per-em":"360","panose-1":"2 11 8 0 0 0 0 0 0 0",ascent:"288",descent:"-72","x-height":"7",bbox:"-92.0373 -310.134 632 184.967","underline-thickness":"3.51562","underline-position":"-21.6211","unicode-range":"U+0009-U+F002"},glyphs:{" ":{w:179}," ":{w:179},"!":{d:"66,-306v9,3,18,11,19,24v-18,73,-20,111,-37,194v0,10,2,34,-12,34v-12,0,-18,-9,-18,-28v0,-85,23,-136,38,-214v1,-7,4,-10,10,-10xm25,-30v15,-1,28,34,5,35v-11,-1,-38,-36,-5,-35",w:115},'"':{d:"91,-214v-32,3,-25,-40,-20,-68v3,-16,7,-25,12,-27v35,13,14,56,8,95xm8,-231v4,-31,1,-40,18,-75v37,7,11,51,11,79v-3,3,-4,8,-5,13v-17,4,-16,-10,-24,-17",w:117},"#":{d:"271,-64v-30,26,-96,-7,-102,51v-6,2,-13,2,-24,-2v-2,-11,10,-21,2,-28v-14,5,-48,0,-48,22v0,23,-11,14,-29,10v-7,-6,6,-19,-1,-24r-32,4v-19,-8,-15,-24,5,-28r33,-6v4,0,24,-23,11,-27v-26,0,-63,14,-74,-10v3,-1,9,-17,16,-10v15,-8,81,4,89,-30v8,-14,16,-34,24,-38v23,9,24,38,5,49v37,24,55,-38,72,-43v19,10,20,23,-1,45v2,8,23,1,29,4v3,3,6,6,10,11v-14,13,-20,12,-45,12v-17,0,-16,17,-19,29v18,-7,49,3,67,-2v4,0,8,4,12,11xm161,-104v-30,-1,-44,10,-44,37v14,1,24,0,40,-5v0,-1,3,-10,8,-26v0,-4,-1,-6,-4,-6",w:285},$:{d:"164,-257v29,4,1,42,-3,50v5,5,38,13,41,24v8,4,6,15,-2,21v-18,3,-36,-17,-49,-17v-17,1,-31,40,-28,48v5,4,8,8,9,10v13,1,35,37,28,44v-10,21,-36,20,-65,28v-10,10,-12,40,-17,51v-9,-3,-28,1,-18,-17v0,-13,5,-24,-1,-35v-18,1,-59,-10,-42,-29v21,0,56,16,55,-16v5,-4,9,-18,9,-26v-14,-15,-55,-41,-53,-65v2,-33,56,-19,98,-26v10,-14,31,-43,38,-45xm93,-152v11,-10,15,-15,14,-29v-17,-3,-37,1,-43,6v10,12,20,19,29,23xm111,-103v-8,1,-11,12,-10,22v10,0,28,2,27,-8v0,-4,-13,-15,-17,-14",w:225},"%":{d:"181,-96v24,-7,67,-13,104,1v14,18,21,19,22,44v-13,43,-99,61,-146,36v-9,-9,-22,-11,-32,-29v0,-27,24,-53,52,-52xm139,-185v-9,68,-138,73,-131,-5v0,-3,3,-9,9,-17v13,1,27,1,17,-16v5,-39,63,0,93,-6v36,1,80,-9,102,11v15,32,12,32,-8,56v-16,21,-103,78,-152,125r-14,28v-23,11,-25,-7,-29,-20v34,-71,133,-98,171,-162v-13,-12,-52,-5,-61,1v0,1,1,3,3,5xm38,-190v0,34,55,29,70,8v0,-14,-20,-11,-32,-14v-14,-3,-24,-9,-40,-10v1,0,5,11,2,16xm172,-53v12,27,90,18,102,-5v-18,-7,-32,-10,-40,-10v-29,3,-57,-4,-62,15",w:308},"&":{d:"145,-82v17,-8,47,-15,71,-26v13,2,25,12,9,23v-23,7,-40,16,-53,27r0,6v13,8,30,21,36,38v0,8,-4,12,-11,12v-19,0,-43,-39,-59,-44v-30,12,-65,29,-97,32v-32,3,-45,-41,-23,-63v21,-20,52,-26,70,-48v-4,-31,-12,-47,9,-73v13,-16,20,-29,23,-39v15,-15,32,-22,51,-22v30,9,62,64,32,96v-2,3,-47,42,-69,48v-15,8,-11,9,0,22v6,7,10,11,11,11xm114,-138v25,-13,62,-38,74,-62v0,-9,-10,-31,-20,-29v-28,7,-60,42,-60,75v0,10,2,15,6,16xm99,-91v-18,10,-54,18,-59,45v26,5,61,-12,77,-22v-1,-5,-13,-23,-18,-23",w:253},"'":{d:"36,-182v-36,7,-34,-61,-17,-80v15,1,21,19,21,20r-1,-1v0,0,-1,12,-5,35v1,5,3,17,2,26",w:63},"(":{d:"130,-306v13,2,23,43,-1,43v-49,43,-77,77,-90,148v5,49,27,67,64,101v4,14,5,6,2,19r-15,0v-35,-17,-79,-58,-79,-120v0,-58,66,-176,119,-191",w:120},")":{d:"108,-138v-2,73,-48,120,-98,153v-17,-5,-16,-20,-6,-31v52,-64,73,-62,74,-135v1,-42,-40,-98,-58,-128v0,-5,-1,-12,-2,-22v18,-18,25,0,42,27v25,39,50,66,48,136",w:120},"*":{d:"121,-271v15,-5,36,-8,40,9v-5,10,-31,19,-47,31v0,11,34,43,14,53v-18,8,-24,-24,-34,-20v-4,10,-4,19,-12,41v-25,7,-15,-30,-17,-47v-13,-1,-17,9,-46,30r-10,0v-20,-32,37,-43,54,-64v-10,-11,-36,-33,-16,-51v3,0,14,8,33,24v8,-10,26,-39,32,-42v14,7,15,23,9,36",w:177},"+":{d:"163,-64v-7,22,-65,2,-77,21v-2,10,-6,21,-11,35v-20,4,-21,-12,-19,-29v3,-23,-44,6,-39,-27v-8,-22,36,-8,49,-18v8,-13,6,-36,24,-40v19,-4,14,32,11,39v18,3,19,2,54,8v2,1,5,5,8,11",w:170},",":{d:"25,63v-26,21,-48,-2,-22,-24v14,-12,35,-40,35,-69v3,-2,3,-11,12,-9v35,17,5,88,-25,102",w:97},"-":{d:"57,-94v19,4,55,-5,54,17v-15,23,-54,20,-91,15v-4,2,-13,-10,-11,-16v-1,-22,28,-15,48,-16",w:124},".":{d:"40,-48v21,20,21,44,-4,44v-33,0,-26,-24,-10,-44r14,0",w:67},"/":{d:"21,20v-22,-45,21,-95,41,-126v38,-57,115,-158,193,-201v2,0,4,3,7,11v11,29,-15,34,-25,55v-81,56,-189,208,-197,261r-19,0",w:275},0:{d:"78,-237v70,-47,269,-41,270,59v0,34,-11,53,-29,76v-13,35,-30,32,-85,64v-6,2,-10,6,-7,8v-73,14,-98,38,-173,1v-7,-13,-52,-48,-46,-88v9,-57,27,-75,70,-120xm123,-38v100,0,202,-46,195,-153v-32,-55,-144,-73,-211,-35v-16,34,-68,54,-53,108v6,25,1,22,-3,39v6,24,41,41,72,41",w:353},1:{d:"39,-208v0,-14,6,-59,29,-39v3,4,6,13,10,24r-22,128r8,87v-4,6,-9,3,-16,2v-44,-38,-9,-137,-9,-202",w:93},2:{d:"88,-35v47,-10,119,-24,168,-9v0,12,-23,13,-35,16v1,1,3,1,5,1v-74,8,-118,23,-194,23v-14,0,-20,-13,-21,-28v55,-40,83,-61,123,-104v26,-13,65,-67,71,-102v-1,-9,-11,-16,-22,-16v-20,-1,-120,29,-156,49v-10,-2,-30,-20,-10,-28v50,-21,111,-51,178,-48v25,10,44,22,36,39v12,30,-19,64,-34,83v-39,48,-37,39,-115,109v0,5,-3,8,-8,11v4,3,8,4,14,4",w:265},3:{d:"188,-282v34,-10,74,25,47,51v-19,32,-55,50,-92,70v28,14,116,25,108,70v8,14,-49,40,-63,48v-29,9,-130,22,-168,42v-6,-5,-19,-7,-12,-22v56,-36,175,-21,210,-76v-9,-20,-88,-42,-97,-33v-20,-1,-41,2,-56,-7r5,-21v56,-25,103,-36,137,-78v1,-1,2,-5,4,-11v-15,-14,-56,7,-79,0v-10,9,-73,22,-92,31v-11,-4,-28,-23,-13,-30v50,-22,96,-26,154,-37v0,-1,8,3,7,3",w:260},4:{d:"79,-249v-7,17,-29,75,-33,96v0,6,3,8,8,8v43,-2,111,6,141,-6v17,-47,20,-100,63,-148v9,4,16,7,21,10v-17,31,-44,95,-51,141v7,4,24,-4,23,10v-1,16,-29,12,-31,23v-10,22,-9,69,-7,103v-3,2,-7,5,-10,9v-47,-11,-23,-74,-16,-114v0,-4,-2,-6,-7,-6v-65,2,-89,13,-162,4v-22,-22,-2,-53,5,-76v16,-15,17,-57,35,-70v6,-1,21,11,21,16",w:267},5:{d:"185,-272v30,7,45,-8,53,18v1,16,-17,18,-34,14v0,0,-95,-11,-129,1v-6,9,-24,33,-29,54v76,10,171,5,214,47v11,11,22,30,5,52v-14,12,-30,14,-34,27v-26,11,-141,63,-157,60v-16,-2,-25,-19,-4,-27v48,-18,128,-39,170,-86v4,-14,-65,-41,-85,-41r-92,0v-10,-4,-66,-1,-57,-23v0,-23,23,-51,35,-83v11,-28,133,-10,144,-13",w:284},6:{d:"70,-64v9,-51,63,-74,123,-71v43,2,109,3,111,41r-25,47v0,1,1,2,2,3v-5,0,-39,10,-41,20v-15,3,-22,4,-22,11v-39,1,-77,20,-119,13v-42,-7,-35,-9,-77,-46v-56,-118,94,-201,176,-229v7,0,21,8,20,15v-2,17,-23,15,-43,24v-69,31,-119,72,-134,145v-5,25,36,68,78,64v59,-6,128,-18,153,-61v-7,-14,-13,-9,-32,-21v-67,-15,-118,-5,-150,43r0,12v-13,4,-17,-3,-20,-10",w:310},7:{d:"37,-228v33,-14,173,-17,181,-19v28,-1,24,31,9,45v-17,15,-45,49,-59,69v-17,26,-55,67,-61,113v-10,13,-9,14,-14,20v-33,-13,-20,-25,-11,-53v16,-48,73,-115,109,-156v2,-7,5,-14,-10,-12v-26,4,-54,6,-76,13v-23,-5,-83,31,-94,-9v2,-8,18,-19,26,-11",w:245},8:{d:"57,-236v40,-50,166,-51,213,-10v22,28,10,63,-22,78r-35,17v8,5,54,24,53,44v-5,14,-4,33,-18,42v-13,13,-35,18,-44,34v-60,27,-190,49,-194,-42v7,-41,17,-54,59,-70r0,-4v-32,-9,-73,-62,-26,-85v4,0,8,-2,14,-4xm142,-160v24,-2,160,-31,99,-72v-28,-18,-108,-33,-146,-5v-16,12,-28,30,-33,59v24,12,37,20,80,18xm41,-62v30,65,189,6,199,-37v3,-14,-60,-30,-74,-30v-70,0,-118,10,-125,67",w:290},9:{d:"11,-192v15,-49,119,-61,161,-23v16,15,27,55,11,79v-20,62,-51,79,-96,118v-10,4,-45,27,-50,6v9,-15,66,-52,98,-99v-7,-7,-8,-3,-25,0v-49,-11,-96,-25,-99,-81xm145,-131v7,-5,13,-34,13,-41v-2,-51,-104,-38,-114,-6v-2,10,37,35,46,35v23,1,43,-1,55,12",w:198},":":{d:"39,-125v15,-8,40,-1,40,15v0,15,-6,22,-19,22v-13,0,-29,-21,-21,-37xm66,-17v-8,27,-51,19,-46,-8v-1,-6,8,-22,14,-20v29,0,30,6,32,28",w:95},";":{d:"56,-93v2,-30,37,-22,40,2v0,2,-1,7,-3,15v-13,8,-15,6,-27,4xm64,-44v11,-11,30,-4,32,14v-21,39,-63,71,-92,85v-5,0,-11,-2,-18,-8v11,-23,36,-36,50,-61v11,-7,19,-20,28,-30",w:107},"<":{d:"166,-202v12,0,29,15,24,29v0,4,-119,64,-120,73v15,21,89,64,91,86v2,29,-18,12,-30,15v-27,-29,-59,-54,-95,-75v-18,-10,-25,-13,-24,-41",w:176},"=":{d:"125,-121v18,7,55,-9,69,14v0,17,-45,26,-135,26v-18,0,-27,-7,-27,-21v-1,-37,60,-5,93,-19xm138,-71v20,0,48,-1,50,16v-13,24,-86,32,-131,29v-29,-2,-43,-10,-43,-24v-7,-23,36,-14,39,-17v27,6,57,-4,85,-4",w:196},">":{d:"4,-14v20,-48,77,-59,118,-94v-16,-19,-58,-52,-81,-75v-11,-7,-15,-38,-1,-40v33,16,83,71,121,105v26,23,-6,35,-41,53v-29,16,-56,28,-73,54v-21,15,-16,20,-34,15v-3,0,-9,-16,-9,-18",w:174},"?":{d:"105,-291v57,-13,107,-4,107,39v0,67,-136,85,-155,137v-1,6,10,23,-4,23v-23,1,-33,-35,-23,-57v31,-41,124,-60,149,-103v-8,-21,-72,-5,-88,-1v-23,6,-59,39,-71,8v0,0,-1,0,1,-17v10,-4,45,-20,84,-29xm80,-25v-6,4,-8,39,-24,22v-24,3,-22,-21,-13,-35v17,-7,29,5,37,13",w:216},"@":{d:"218,-207v23,8,42,14,47,37v44,68,-27,137,-87,85r1,0v0,2,-59,19,-61,17v-35,0,-42,-47,-17,-68r0,-4v-19,-1,-45,37,-49,40v-37,76,58,72,121,62v11,-2,34,-13,36,3v-14,31,-69,31,-114,33v-51,2,-99,-41,-80,-92v2,-30,22,-40,42,-63v35,-20,91,-53,161,-50xm217,-101v23,0,35,-19,35,-41v0,-43,-75,-41,-102,-19v36,3,55,16,62,41v-6,5,-6,19,5,19xm127,-110v8,5,51,-15,28,-16v-4,0,-25,4,-28,16",w:291},A:{d:"97,-81v-23,-10,-39,38,-52,60v-8,6,-8,6,-22,18v-22,-7,-23,-37,-4,-49v7,-8,11,-15,15,-23r-1,1v-14,-26,23,-29,31,-40v1,-1,15,-29,26,-36v17,-31,39,-58,54,-92v16,-20,20,-51,41,-66v29,5,34,62,45,92v9,64,21,103,49,155v-3,25,-44,11,-54,0v-34,-12,-97,-29,-128,-20xm107,-118v20,6,80,10,111,17v6,-7,-4,-15,-7,-24v-11,-28,-9,-92,-30,-117v-9,9,-19,44,-34,55v-9,23,-27,40,-40,69",w:294},B:{d:"256,-179v41,10,115,34,91,91v-6,3,-14,12,-19,20v-37,19,-50,34,-63,25v-9,10,-12,11,-34,13r3,-3v-4,-4,-12,-4,-18,0v0,0,2,2,5,4v-21,14,-26,6,-44,15v-4,0,-7,-2,-8,-5v-6,11,-20,-5,-18,11v-36,4,-91,35,-114,4v-7,-62,-10,-138,4,-199v-1,-19,-37,2,-37,-27v0,-8,2,-13,6,-15v68,-31,231,-92,311,-39v8,12,12,20,12,25v-8,42,-32,49,-77,80xm79,-160v72,-17,135,-39,184,-70v20,-13,31,-23,31,-27v1,-6,-30,-13,-38,-12v-54,0,-116,13,-186,41v11,21,1,48,9,68xm262,-43v0,-4,3,-6,-4,-5v0,1,1,2,4,5xm211,-140v-34,7,-94,24,-139,15v-6,20,-4,56,-4,82v0,29,43,1,56,2v48,-11,108,-25,154,-48v20,-10,32,-17,32,-25v0,-18,-33,-26,-99,-26xm195,-20v6,1,6,-2,5,-7v-3,2,-7,2,-5,7",w:364},C:{d:"51,-114v-12,75,96,76,166,71r145,-10v9,2,9,5,9,18v-37,18,-85,28,-109,22v-18,10,-47,10,-71,10v-29,0,-68,1,-105,-11v-6,-1,-10,-3,-10,-8v-33,-13,-48,-33,-66,-59v-19,-114,146,-150,224,-177v35,0,88,-31,99,7v-1,29,-49,14,-76,28v-55,8,-115,35,-175,71v-13,8,-23,21,-31,38",w:376},D:{d:"312,-78v-2,1,-3,7,-10,5v6,-3,10,-4,10,-5xm4,-252v2,-27,83,-38,106,-39v130,-7,267,1,291,109v0,0,-2,8,-3,25v-5,9,-4,28,-23,34v-4,4,-2,5,-7,0v-3,3,-15,7,-5,10v0,0,-10,14,-13,2v-11,1,-8,5,-20,14v1,2,7,3,9,1v-4,13,-22,13,-11,4v0,-3,1,-6,-3,-5v-40,29,-103,38,-141,65v10,6,22,-7,34,-3v-41,20,-127,44,-171,46v-21,1,-47,-33,-11,-39v15,-2,43,-6,56,-11v-16,-101,-5,-130,9,-207v2,0,4,-1,6,-3v-16,-17,-91,38,-103,-3xm297,-69v-7,3,-17,8,-25,7v1,1,3,2,5,2v-4,2,-11,5,-23,9v4,-11,30,-21,43,-18xm240,-51v10,0,12,2,0,6r0,-6xm220,-36v-1,-3,4,-6,6,-3v0,1,-2,1,-6,3xm125,-48v16,6,137,-46,155,-53v29,-18,101,-44,82,-93v-21,-53,-84,-61,-168,-67v-20,7,-50,3,-77,8v33,54,-12,132,8,205xm159,-22v-4,-1,-15,-5,-15,2v7,-1,12,-2,15,-2",w:381},E:{d:"45,-219v-19,-36,34,-41,63,-36v44,-10,133,-8,194,-15v3,2,38,11,52,15v-73,19,-171,21,-246,38v-9,11,-16,32,-20,61v35,11,133,-6,183,3v1,6,2,7,3,14v-46,24,-118,16,-193,27v-15,13,-22,52,-22,66v60,1,121,-20,188,-20v22,10,53,-7,74,5v16,29,-23,26,-43,32v-73,4,-139,13,-216,27r-52,-10v-4,-22,23,-69,26,-98v-3,0,-10,-15,-12,-24v20,-12,34,-23,35,-67v2,-1,5,-5,5,-7v0,-4,-14,-11,-19,-11",w:353},F:{d:"270,-258v13,2,59,6,48,34v-78,-3,-143,1,-212,22v-10,16,-21,43,-24,69r145,-9v8,3,29,-3,16,21v-14,-1,-59,13,-60,7v-12,13,-67,18,-108,21v-2,1,-4,3,-7,6v-2,23,-8,43,-7,69v1,28,-30,11,-40,5r10,-80r-26,-14v5,-10,10,-33,28,-25v21,-3,15,-46,26,-59v-1,-3,-32,-13,-28,-24v2,-22,45,-16,59,-30v47,4,99,-14,151,-9v5,-3,25,-3,29,-4",w:236},G:{d:"311,-168v53,0,94,57,74,110v-31,37,-71,34,-136,52v-13,-7,-41,10,-57,7v-73,-1,-122,-17,-162,-59v-49,-51,-24,-80,5,-130v35,-61,138,-93,214,-106v16,4,42,-1,40,21v-5,40,-39,2,-73,21v-76,19,-162,65,-177,142v28,103,237,76,312,29v2,-3,3,-7,3,-13v-10,-35,-37,-43,-87,-45v-16,-13,-53,-9,-78,1v-4,-3,-5,-7,-5,-11v17,-29,73,-17,108,-24v12,4,18,5,19,5",w:391},H:{d:"300,-268v18,12,19,32,4,51v-35,44,-34,140,-46,217v-1,5,-5,13,-11,12v-6,1,-19,-14,-18,-27r7,-106v-28,7,-76,22,-116,14v-18,2,-36,6,-55,3v-43,-8,-14,53,-33,75v-29,1,-26,-67,-21,-97v5,-31,28,-73,43,-98v2,2,7,3,14,3v13,33,-11,48,-13,78v61,4,118,2,176,2v8,0,13,-6,15,-20v4,-47,21,-87,54,-107",w:288},I:{d:"63,-266v34,10,-4,105,-8,128r-24,126v-2,2,-3,1,-9,6v-12,-10,-12,-15,-12,-47v0,-93,9,-156,28,-188v10,-17,19,-25,25,-25",w:79},J:{d:"235,-291v26,11,31,104,31,142v0,37,-2,95,-32,126v-33,34,-121,26,-167,1v-18,-11,-54,-29,-59,-59v0,-3,5,-15,16,-14v31,36,90,57,162,51v63,-30,56,-148,32,-226v-1,-16,11,-13,17,-21",w:282},K:{d:"212,-219v17,-5,80,-60,80,-19v0,9,-2,14,-5,16r-132,78v-34,23,-54,32,-21,50v39,21,74,23,124,41v5,2,7,5,7,9v-4,24,-55,15,-79,8v-67,-19,-98,-36,-116,-83v9,-24,38,-35,66,-61v7,-4,49,-30,76,-39xm47,-194v11,-20,11,-45,31,-55v2,2,4,3,6,0v29,39,-21,96,-18,128v-17,24,-15,62,-29,113v-4,3,-10,7,-19,11v-12,-13,-10,-28,-8,-53v3,-31,17,-79,37,-144",w:270},L:{d:"84,-43v58,0,179,-27,242,-4v3,17,-29,24,-40,26v-85,-4,-202,46,-268,3v-24,-16,-2,-33,-4,-57v26,-76,38,-108,86,-191v14,-7,26,-50,45,-32v6,22,5,31,-12,46v-20,39,-50,82,-67,142v-7,6,-19,46,-19,54v0,9,12,13,37,13",w:331},M:{d:"174,-236v-1,52,-11,92,-7,143v10,5,15,-12,22,-18v42,-55,90,-130,136,-174r15,-18v42,2,32,53,11,80v-12,58,-54,143,-34,210v0,3,-3,12,-9,10v-31,-5,-32,-57,-27,-92v4,-27,12,-58,25,-93v-5,-10,5,-19,6,-30v-46,44,-66,110,-129,172v-11,10,-18,15,-22,15v-34,6,-28,-103,-28,-152v-28,22,-65,119,-96,170v-9,15,-34,3,-31,-19v30,-64,91,-177,139,-229v12,-1,29,13,29,25",w:343},N:{d:"248,-20v-3,17,-37,18,-43,3v-24,-35,-53,-145,-80,-203v-32,40,-55,120,-92,174v-13,3,-26,-13,-27,-22r87,-171v4,-13,20,-57,42,-32v42,48,46,139,82,198v29,-45,46,-88,65,-153v12,-19,23,-42,38,-60v27,-1,14,18,4,44v-6,46,-32,68,-37,121v-15,29,-33,69,-39,101",w:307},O:{d:"240,-268v85,1,163,29,150,125v13,7,-12,18,-5,26v-23,63,-133,112,-228,124v-80,-16,-171,-56,-148,-153v11,-47,20,-43,53,-83v17,-9,39,-22,73,-29v45,-10,81,-10,105,-10xm363,-156v16,-51,-62,-85,-111,-79v-25,-11,-50,8,-81,0v-15,10,-70,16,-85,31v6,20,-27,24,-39,45v-42,75,40,128,115,128v56,0,209,-71,201,-125",w:383},P:{d:"70,-225v-7,-12,-36,16,-49,19v-4,0,-9,-5,-14,-17v21,-47,114,-55,172,-59v41,-3,132,33,99,87v-21,34,-72,59,-144,80v-2,16,-79,3,-74,46v3,25,-5,47,-10,68v-22,-1,-23,-29,-22,-56v2,-25,-20,-32,-8,-50v21,-5,10,-35,25,-57v6,-28,14,-48,25,-61xm71,-229v47,14,-2,50,-1,99v41,-3,113,-37,173,-76v5,-9,8,-14,8,-15v-28,-47,-125,-29,-180,-8",w:252},Q:{d:"374,-217v20,59,-11,127,-48,156r30,38v-1,6,-8,16,-14,9v-3,0,-19,-9,-47,-26v-72,35,-173,75,-236,12v-70,-40,-67,-213,26,-217r8,5v24,-20,72,-48,112,-38v21,-4,22,-1,50,-2v66,-2,94,20,119,63xm296,-88v13,5,61,-49,63,-84v4,-62,-54,-78,-119,-76v-14,-6,-49,5,-71,3v-42,16,-89,41,-93,94v-9,11,1,25,-7,38v-12,-19,-7,-67,-1,-88v-56,30,-37,137,19,155v27,17,92,19,119,0v12,-2,29,-9,52,-20v2,-2,3,-3,3,-6v-11,-12,-46,-27,-54,-56v0,-13,3,-19,9,-19v18,1,60,52,80,59",w:379},R:{d:"100,-275v96,-23,196,-10,208,78v-3,18,-17,52,-49,62v-14,20,-54,23,-79,40v-2,0,-14,2,-36,6v-40,8,-30,14,-3,33v37,27,52,30,118,55v16,6,31,23,12,27v-58,-2,-104,-29,-143,-61v-14,-3,-16,-15,-39,-27v-23,-19,-28,-12,-15,-38v63,-19,111,-15,163,-53v27,-20,43,-36,43,-49v0,-64,-120,-62,-173,-38v-9,4,-38,9,-40,18v-10,32,-16,70,-13,116v-10,21,-8,47,-6,75v2,31,-9,29,-27,22v-9,-55,5,-140,15,-190v-8,-6,-24,10,-24,-11v0,-34,16,-34,42,-55v2,-1,17,-4,46,-10",w:297},S:{d:"13,-3v-7,-3,-22,-18,-5,-22v68,-15,119,-32,154,-45v51,-19,39,-34,3,-53v-46,-25,-82,-30,-121,-64v-33,-29,-50,-35,-25,-58v37,-20,119,-29,181,-29v29,0,44,6,44,18v-9,26,-62,6,-104,14v-17,2,-72,6,-92,16v37,53,132,58,180,111v8,9,11,20,11,30v-4,17,-23,35,-42,34v-21,16,-17,1,-49,17v-14,7,-41,9,-56,20v-25,-3,-49,10,-79,11",w:234},T:{d:"141,-3v-36,-6,1,-49,-3,-79v10,-19,6,-35,15,-64r26,-85v-51,-9,-100,10,-141,14v-16,2,-30,-26,-11,-32v26,-8,143,-8,179,-19r12,6v67,-2,142,-1,200,-1v8,0,14,3,19,10v-18,16,-74,3,-103,14v-48,-4,-60,4,-113,7v-42,22,-36,130,-58,187v1,12,-9,44,-22,42",w:277},U:{d:"365,-262v13,56,-22,104,-36,141v-19,22,-30,38,-57,56v-4,18,-60,35,-78,50v-53,28,-142,0,-161,-34v-31,-56,-37,-108,-11,-164v17,-33,29,-50,48,-29v-2,2,-3,7,-4,13v-44,36,-38,149,7,174v30,26,55,19,102,4v56,-17,66,-34,120,-76v12,-24,56,-68,46,-122r0,-16v0,1,-1,3,-1,6v4,-13,11,-10,25,-3",w:368},V:{d:"246,-258v21,-22,31,-26,44,-8v1,1,-12,22,-28,35v-15,25,-41,38,-56,69v-13,15,-20,31,-28,57v-15,13,-11,29,-27,72v3,21,-5,24,-27,27v-33,-45,-54,-118,-84,-167v-5,-26,-18,-50,-25,-76v-3,-12,24,-8,29,-5v8,13,18,52,26,70r52,115v9,-2,4,-9,10,-21r25,-47v25,-44,46,-76,89,-121",w:234},W:{d:"31,-213v16,46,17,106,41,151v31,-35,49,-89,76,-127v30,-15,39,27,52,56v10,22,21,48,35,67v2,0,4,-1,5,-3v16,-28,50,-76,79,-121v14,-21,40,-63,64,-83r5,8v-30,58,-76,110,-97,173v-18,28,-25,37,-33,63v-11,1,-16,25,-30,15v-21,-31,-44,-89,-62,-131v0,-2,-1,-3,-5,-5v-17,11,-16,36,-31,50v-20,33,-20,84,-68,94v-24,-19,-23,-81,-39,-111v-1,-15,-29,-94,-10,-108v9,2,12,5,18,12",w:331},X:{d:"143,-183v43,-25,69,-36,126,-62v22,-10,86,-10,56,21v-51,3,-158,61,-154,64v10,15,41,30,50,52v27,17,46,60,70,82v9,14,-6,30,-24,20v-35,-43,-75,-100,-116,-132v-48,13,-100,47,-118,94v-1,49,-26,34,-27,4v-1,-26,13,-27,17,-48v22,-27,68,-55,90,-77v-9,-12,-60,-39,-79,-57v-6,-10,-6,-25,12,-25",w:312},Y:{d:"216,-240v19,-14,42,10,22,26v-54,66,-121,109,-156,197v-8,21,-11,15,-30,4v3,-37,27,-61,33,-76v12,-12,15,-19,32,-42v-8,-6,-40,5,-45,5v-48,-6,-69,-65,-56,-113v14,0,13,-1,24,7v2,33,12,75,42,73v36,-2,102,-57,134,-81",w:189},Z:{d:"60,-255v66,12,200,-34,240,21v-13,42,-63,62,-98,89v-19,15,-47,33,-82,55v-25,16,-47,32,-66,47v58,24,129,-6,208,-6v23,0,36,12,13,19v-33,2,-53,5,-86,10v-32,18,-88,15,-135,15v-9,-1,-55,-1,-48,-29v1,-24,30,-24,40,-41v64,-50,151,-86,208,-147v-38,-17,-155,12,-198,-4v0,0,-11,-33,4,-29",w:310},"[":{d:"72,-258r-15,250v30,4,55,-3,80,-6v7,-1,8,17,9,23v-28,15,-73,23,-121,21v-7,0,-10,-6,-10,-17v0,-60,25,-193,22,-288v0,-16,13,-20,33,-19v9,-3,34,-12,51,-12v16,0,15,16,19,29v-16,7,-48,10,-68,19",w:151},"\\":{d:"21,38v-20,-21,9,-72,13,-90v44,-78,113,-189,200,-253v2,0,5,4,7,12v11,31,-13,36,-24,58v-74,61,-174,219,-180,273r-16,0",w:257},"]":{d:"133,-258v-23,-13,-84,6,-85,-32v0,-10,5,-15,14,-15v0,0,30,2,90,7v10,1,15,13,15,36v2,7,-8,59,-13,112r-11,125v-9,48,9,90,-59,71v-20,-4,-39,-1,-59,-4v-5,-10,-25,-12,-14,-30v8,-3,61,-13,78,-8v14,1,8,-7,10,-17v15,-69,21,-166,34,-245",w:171},"^":{d:"68,-306v20,15,47,36,58,60v-1,4,0,7,-9,7v-26,0,-47,-38,-49,-32v-15,9,-41,50,-54,30v-2,-31,17,-23,33,-51v8,-9,15,-14,21,-14",w:135},_:{d:"11,15v-8,33,18,45,50,34r205,2r197,-5v11,-5,14,-9,7,-28v-95,-21,-258,-10,-376,-10v-25,0,-72,-3,-83,7",w:485},"`":{d:"75,-264v16,8,56,14,39,43v-30,-8,-65,-23,-105,-44v-1,-3,-3,-28,5,-25v16,5,44,17,61,26",w:129},a:{d:"124,-56v10,4,59,41,65,50v1,7,-6,17,-12,17r-60,-30v-22,2,-42,21,-65,19v-33,4,-68,-67,-15,-81v41,-27,96,-39,110,9v0,6,-4,12,-11,16v-33,-25,-67,-5,-88,12v10,16,61,-18,76,-12",w:196},b:{d:"80,-140v69,1,123,0,134,52v5,26,-71,71,-97,70v-11,11,-88,22,-94,22v-11,-3,-26,-18,-6,-24v19,-5,-2,-19,-1,-35v1,-18,11,-36,-5,-47v-6,-17,-6,-21,14,-32v6,-45,18,-89,28,-124v2,-7,8,-12,17,-15v5,3,10,11,16,28v-12,27,-13,63,-23,96v0,6,6,9,17,9xm87,-107v-40,-9,-31,31,-39,54v8,15,0,25,12,22v30,-8,60,-18,88,-32v39,-18,49,-33,-1,-42v-20,-4,-45,-7,-60,-2",w:217},c:{d:"128,-123v29,-7,37,29,12,33v-27,-4,-40,6,-79,25v-8,4,-13,11,-16,22v30,32,91,3,134,11v5,13,-8,26,-22,19v-51,25,-139,28,-150,-30v6,-50,69,-82,121,-80",w:194},d:{d:"224,-201v0,-35,-17,-111,24,-94v7,86,-2,119,0,197v-4,2,-8,21,-18,16v-62,-7,-154,-8,-185,29v6,17,28,26,51,26v16,0,100,-15,132,-18v7,5,-6,20,-10,22v-24,8,-122,42,-163,25v-32,-5,-62,-53,-36,-80v35,-37,118,-46,198,-43v1,-22,7,-49,7,-80",w:265},e:{d:"4,-57v0,-58,51,-71,110,-74v33,-1,45,16,59,35v1,14,2,39,-7,42v-24,-2,-73,13,-99,11v-2,2,-2,3,-2,3v0,3,12,8,37,15v21,0,69,9,31,22v-9,14,-34,6,-56,6v-27,-5,-73,-28,-73,-60xm123,-102v-22,2,-68,5,-65,26v24,-2,66,5,79,-6v-5,-13,-1,-13,-14,-20",w:182},f:{d:"6,-59v6,-29,53,-4,53,-43v0,-64,29,-118,84,-150v45,-25,167,-24,155,51v-1,2,-7,6,0,6r-10,2v-45,-58,-165,-39,-186,39v-7,26,-11,42,-9,62v44,8,95,-21,135,-7v-12,25,-39,21,-76,30v-19,5,-18,7,-54,19v-2,8,15,32,17,35v-6,25,-26,26,-40,-5r-15,-24v-41,10,-44,12,-54,-15",w:234},g:{d:"132,-97v30,27,21,75,30,117v-12,31,-11,66,-36,103v-32,46,-105,83,-167,39v-31,-21,-49,-29,-51,-75v-2,-37,77,-50,121,-57v37,-6,68,-10,95,-11v7,-6,3,-32,4,-46v0,0,-1,1,-1,2v0,-18,-5,-31,-14,-45v-44,5,-79,20,-94,-18v3,-54,73,-54,125,-50v12,7,12,13,4,25v-30,-11,-76,8,-90,20v23,3,50,-16,74,-4xm-34,121v60,53,168,1,159,-86v-47,-7,-93,24,-142,30v-12,7,-45,19,-42,29v0,10,8,19,25,27",w:188},h:{d:"100,-310v11,-2,10,19,11,20v-11,52,-40,133,-53,189v-6,30,-9,37,-9,47v27,0,113,-34,143,-34v42,0,31,47,39,79v0,4,-5,17,-16,16v4,2,11,3,4,6v-24,-1,-28,-34,-25,-64v-1,-1,-2,-3,-5,-5v-51,0,-110,38,-162,51v-9,1,-15,-15,-16,-23v17,-89,39,-141,71,-264v0,-9,6,-19,18,-18",w:251},i:{d:"62,-209v7,18,9,23,-5,38v-23,-6,-21,-18,-11,-36v2,0,8,-1,16,-2xm34,-7v-18,-21,-8,-73,-1,-106v7,-10,20,-8,23,6v-1,36,7,72,-2,104v-8,2,-8,0,-20,-4",w:80},j:{d:"88,-191v5,28,-18,40,-28,21v0,-20,12,-29,28,-21xm82,-99v28,-1,16,35,16,61v0,60,-19,150,-35,202v-12,8,-19,31,-35,16v-32,-7,-43,-19,-56,-44r2,-17v11,4,49,45,61,18v10,-55,27,-107,30,-171v0,-16,0,-59,17,-65",w:120},k:{d:"59,-66v33,26,114,37,155,62v8,-4,22,-2,19,-17v0,-4,-12,-11,-30,-24v-36,-25,-54,-22,-99,-33v14,-21,119,-13,103,-63r-16,-7r-123,47r25,-93v-3,-15,16,-49,18,-81v1,-15,-21,-14,-25,-3v-31,82,-49,168,-75,257v2,2,22,30,27,10v2,-5,4,-9,9,-11v4,-16,4,-15,12,-44",w:236},l:{d:"66,-300v21,-6,37,23,30,55v-10,51,-28,135,-28,208v0,11,6,36,-13,37v-29,-5,-30,-48,-25,-83r28,-177v-6,-17,1,-29,8,-40",w:102},m:{d:"348,-59v-2,21,0,57,3,73v-17,3,-30,-1,-32,-16v-8,-7,-5,-44,-13,-70v-35,3,-82,49,-111,70v-12,8,-40,4,-39,-15r2,-56v-1,-13,4,-28,-8,-29v-35,8,-79,72,-115,87v-6,2,-20,-18,-21,-22v1,-20,14,-105,39,-64r8,15v17,-14,72,-56,93,-54v27,3,49,40,43,80v24,-2,66,-55,124,-53v11,14,28,23,27,54",w:368},n:{d:"121,-136v37,6,62,54,62,111v0,32,-16,25,-31,17v-18,-30,-5,-45,-22,-85v-37,-13,-71,55,-92,65v-20,-3,-39,-39,-21,-62v2,-12,3,-15,11,-30v12,-8,20,11,29,12",w:194},o:{d:"108,-139v52,-24,104,18,104,63v0,59,-66,67,-114,83v-52,-2,-115,-50,-80,-105v23,-18,52,-35,90,-41xm45,-60v16,54,125,16,131,-23v-12,-59,-129,-8,-131,23",w:217},p:{d:"82,14v-10,12,-8,117,-24,142v-15,2,-19,0,-29,-13v0,-76,9,-113,22,-192v14,-27,35,-6,37,13v0,8,-3,21,-7,38v2,2,3,2,4,2v26,-9,116,-33,126,-72v-7,-17,-24,-33,-49,-31v-40,3,-116,13,-116,47v-5,7,-2,17,-16,20v-17,-12,-18,-20,-12,-38v8,-25,74,-61,110,-59v55,-15,113,15,118,70v-15,52,-84,79,-146,83v-5,0,-11,-4,-18,-10",w:251},q:{d:"144,-147v27,-8,89,-3,97,31v-9,29,-42,-4,-73,1v-32,6,-118,20,-111,49v0,7,13,13,21,13v21,0,78,-24,104,-34v2,0,9,8,22,21v1,1,1,2,1,5v-27,90,-22,70,-43,203v11,15,-15,54,-33,33v-6,-8,-10,-20,-3,-28v1,-72,5,-114,15,-172v-35,3,-35,10,-59,8v-41,-4,-98,-41,-56,-85v33,-34,59,-27,118,-45",w:248},r:{d:"242,-117v2,22,5,10,-14,23v-73,-7,-166,-23,-174,56v-8,6,-3,20,-8,36v-29,10,-40,-9,-33,-46v6,-31,7,-69,32,-55v58,-37,66,-42,175,-19v3,5,15,4,22,5",w:229},s:{d:"154,-151v19,1,27,24,13,32v-4,1,-22,4,-53,7v-16,8,-22,-2,-39,9v23,21,89,16,96,62v-13,24,-85,35,-124,42v-9,-3,-18,-3,-27,0v-6,-4,-21,-16,-8,-25v30,-6,83,-13,102,-24v-17,-16,-80,-33,-97,-48v-3,-2,-4,-7,-4,-15v-6,-6,3,-13,15,-18v22,-9,94,-23,126,-22",w:188},t:{d:"85,-150v10,-41,35,-126,65,-134v4,1,24,19,11,36v-17,22,-29,57,-36,104v26,8,50,-7,73,5v14,0,22,3,22,9v-1,19,-44,18,-57,23v-10,1,-46,0,-54,10v-10,24,-4,67,-20,98v-21,-3,-26,1,-26,-20v0,-9,2,-36,8,-81v-15,-13,-81,9,-77,-27v4,-38,71,6,91,-23",w:194},u:{d:"207,-136v-1,-2,11,-14,14,-13v6,0,10,7,10,22v-3,40,-23,56,-40,82v-13,19,-62,43,-93,43v-67,-2,-111,-75,-71,-133v26,-3,21,29,19,49v-1,27,26,44,57,42v41,-2,93,-55,104,-92",w:242},v:{d:"24,-127r52,71v42,-16,70,-54,124,-65v5,4,8,7,8,11v-8,19,-4,8,-33,32v0,1,-1,3,-1,5v-61,45,-93,68,-97,68v-40,-15,-50,-72,-68,-100v6,-14,10,-22,15,-22",w:214},w:{d:"15,-139v38,-2,27,57,45,86v30,2,67,-66,101,-78v26,6,36,69,60,78v47,-35,51,-54,119,-104v3,0,7,-2,15,-4v19,23,-9,28,-21,49v-33,28,-68,90,-107,109v-10,6,-52,-47,-72,-71v-20,17,-85,74,-97,73v-38,7,-41,-98,-52,-122v0,-1,3,-7,9,-16",w:325},x:{d:"95,-124v22,-13,78,-32,99,-31v16,0,23,6,23,18v0,22,-17,11,-49,21v-3,0,-45,20,-42,24v0,1,2,4,8,10v20,24,49,41,44,80v-35,3,-27,-9,-60,-44v-40,-43,-37,-26,-79,9v-1,1,-2,3,-3,8v-12,8,-28,10,-27,-11v-6,-8,45,-65,48,-65v-17,-21,-61,-52,-24,-68v9,0,48,37,62,49",w:223},y:{d:"44,-65v22,33,70,4,99,-8v5,-4,28,-15,41,-31r17,0v25,47,-26,70,-40,114v-5,4,-9,8,-10,21v-16,12,-11,33,-27,51v-5,18,-12,43,-23,71v-1,-1,-2,34,-18,29v-12,1,-22,-12,-22,-23v20,-70,24,-65,68,-177v-47,16,-111,8,-116,-39v-11,-13,-7,-62,8,-62v18,0,22,26,23,54",w:216},z:{d:"189,-43v9,-1,46,-6,41,12v0,7,-5,13,-15,14v-45,6,-148,24,-181,13v0,-3,-5,-8,-14,-15v5,-44,66,-46,90,-85v-15,-18,-84,21,-84,-14v0,-10,5,-17,14,-18v33,-3,79,-13,109,-3v4,-2,14,11,12,15v0,23,-26,51,-78,84v28,10,73,-3,106,-3",w:244},"{":{d:"94,-303v27,-9,90,-14,79,26v-20,17,-55,-5,-87,13v-4,1,-6,4,-6,8v33,42,31,44,7,85v-6,10,-13,16,-13,13v5,6,17,17,15,31r-33,78v7,35,28,49,57,63r49,0v7,42,-51,41,-86,20v-43,-13,-51,-51,-56,-89v-2,-25,25,-54,27,-71v-3,-4,-46,-5,-41,-21v2,-10,-3,-29,11,-25v2,0,51,-17,52,-38v4,-3,-25,-23,-25,-49v0,-41,8,-30,50,-44",w:179},"|":{d:"30,-308v26,5,14,50,15,80v5,78,-8,153,-3,225v-2,15,-1,31,-11,36v-8,-3,-25,-22,-25,-32r9,-183v0,-40,0,-78,1,-112v0,-4,9,-15,14,-14",w:63},"}":{d:"47,-298v34,-17,118,-18,112,36v6,25,-76,98,-69,103v4,16,39,7,44,28v7,34,-34,17,-37,39v8,29,49,83,23,123v-15,23,-43,26,-73,46v-34,8,-43,11,-49,-17v1,-15,30,-15,33,-20v24,-12,70,-27,55,-61v-14,-33,-37,-68,-19,-103v-46,-50,46,-100,60,-141v-10,-16,-68,6,-77,-12",w:143},"~":{d:"7,-254v2,-6,59,-50,67,-46v11,-1,35,19,46,26v5,0,27,-10,66,-31v21,8,-1,25,-7,38v-27,21,-48,31,-65,31v-24,-11,-37,-39,-65,-9v-7,7,-26,36,-42,11v3,-5,-3,-17,0,-20",w:199},"Ä":{d:"161,-217v20,53,23,124,54,170v-2,20,-34,9,-42,0v-27,-12,-78,-18,-101,-18v-26,6,-29,51,-54,63v-18,-4,-19,-30,-3,-38v5,-9,15,-16,8,-29v1,-12,23,-9,26,-19v6,-10,11,-20,20,-27r70,-121v12,-4,16,4,22,19xm82,-91v17,3,62,7,86,13v-13,-33,-13,-80,-29,-109v-15,30,-38,63,-57,96xm187,-259v0,8,-4,13,-12,13v-18,0,-21,-20,-16,-34v18,-1,28,2,28,21xm90,-284v7,3,28,11,28,18v0,9,-9,18,-18,17v-17,0,-25,-24,-10,-35"},"Å":{d:"161,-217v20,53,23,124,54,170v-2,20,-34,9,-42,0v-27,-12,-78,-18,-101,-18v-26,6,-29,51,-54,63v-18,-4,-19,-30,-3,-38v5,-9,15,-16,8,-29v1,-12,23,-9,26,-19v6,-10,11,-20,20,-27r70,-121v12,-4,16,4,22,19xm82,-91v17,3,62,7,86,13v-13,-33,-13,-80,-29,-109v-15,30,-38,63,-57,96xm112,-239v-31,-17,-9,-61,29,-56v12,2,22,3,33,12v24,39,-30,62,-62,44xm119,-262v2,14,41,8,41,-4v0,-4,-8,-6,-24,-9v-10,-2,-17,10,-17,13"},"Ç":{d:"48,-108v-12,70,90,71,159,67r138,-9v9,-1,7,9,7,17v-37,16,-80,27,-103,21v-14,9,-40,3,-67,9v-30,0,-64,1,-100,-10v-6,-1,-10,-4,-10,-8v-32,-12,-46,-31,-63,-56v-16,-61,47,-103,83,-121v82,-42,118,-45,200,-60v21,-4,36,34,11,37v-90,11,-148,31,-225,77v-12,8,-23,20,-30,36xm172,18v29,4,47,14,53,35v-2,7,-14,31,-27,31v-28,7,-55,9,-84,14v-18,-5,-13,-32,7,-32v21,0,55,-5,69,-13v-16,-14,-63,10,-50,-35v9,-10,1,-27,23,-29v7,8,11,16,9,29",w:331},"É":{d:"49,-160v1,-4,-10,-9,-15,-8v-15,-35,32,-30,57,-31r142,-8v2,1,30,7,40,10v-52,16,-133,17,-190,30v-7,9,-12,24,-15,47v26,10,102,-6,141,3v1,3,1,6,2,10v-36,18,-92,12,-149,21v-11,9,-16,41,-16,51v55,-1,111,-21,168,-13v15,-8,48,1,31,18v-53,16,-130,13,-198,29r-39,-8v-4,-19,17,-53,20,-76v-1,0,-7,-11,-9,-18v18,-7,22,-28,30,-57xm133,-248v27,-11,48,-32,59,-14v3,11,-79,52,-88,53v-14,1,-16,-11,-12,-21v10,-4,23,-11,41,-18",w:252},"Ñ":{d:"224,-182v1,-17,15,-24,22,-38v20,0,13,10,3,33v-3,36,-25,52,-28,94v-10,24,-30,55,-29,82r-19,7v-32,-8,-36,-70,-58,-111v-2,-23,-7,-27,-19,-54v-28,36,-41,93,-71,133v-9,5,-20,-9,-20,-17r73,-149v9,-24,31,-5,36,7v19,41,31,98,53,139v22,-35,34,-69,50,-118v2,-3,3,-3,7,-8xm203,-257v22,-8,41,-24,65,-26v3,11,-8,9,-7,21v-26,20,-46,31,-59,31v-2,3,-49,-27,-49,-29v-11,0,-32,31,-46,32v-11,-2,-12,-21,-4,-23v4,-6,28,-30,48,-34v17,-4,43,28,52,28",w:219},"Ö":{d:"62,-184v78,-31,249,-50,238,74v-6,65,-102,105,-179,115v-77,-7,-152,-71,-101,-149v2,-5,24,-33,42,-40xm279,-120v14,-38,-47,-64,-85,-61v-20,-9,-41,7,-62,0v-11,7,-54,12,-66,24v0,20,-51,35,-38,66v-1,43,50,67,96,67v44,0,162,-55,155,-96xm197,-229v0,8,-4,13,-12,13v-17,0,-19,-19,-16,-34v18,-1,29,1,28,21xm101,-254v7,3,28,9,27,18v1,8,-8,17,-17,17v-18,0,-26,-24,-10,-35",w:273},"Ü":{d:"281,-202v6,67,-30,121,-71,152v-3,14,-47,26,-60,39v-41,20,-110,1,-125,-26v-24,-44,-28,-84,-8,-127v12,-26,23,-38,37,-22v-2,2,-3,5,-3,10v-34,26,-29,116,5,134v22,32,86,-1,109,-8v38,-28,104,-64,97,-149v2,-10,7,-8,19,-3xm197,-227v0,8,-4,13,-12,13v-18,0,-21,-20,-16,-34v18,-1,28,2,28,21xm101,-252v7,3,27,10,27,18v0,8,-9,18,-18,17v-18,-1,-24,-25,-9,-35",w:262},"á":{d:"118,-53v10,4,55,41,62,47v0,7,-5,16,-12,16r-57,-28v-20,3,-40,19,-61,18v-10,2,-43,-17,-42,-36v0,-14,7,-40,27,-41v39,-26,92,-36,104,9v0,6,-2,11,-9,15v-32,-24,-64,-6,-84,11v8,15,58,-17,72,-11xm32,-117v24,-3,85,-55,101,-32v3,11,-80,53,-89,53v-13,2,-14,-10,-12,-21",w:173},"à":{d:"118,-53v10,4,55,41,62,47v0,7,-5,16,-12,16r-57,-28v-20,3,-40,19,-61,18v-10,2,-43,-17,-42,-36v0,-14,7,-40,27,-41v39,-26,92,-36,104,9v0,6,-2,11,-9,15v-32,-24,-64,-6,-84,11v8,15,58,-17,72,-11xm99,-137v7,6,56,14,37,40v-28,-7,-62,-21,-100,-41v-2,-3,-2,-26,5,-23v16,4,42,17,58,24",w:173},"â":{d:"118,-53v10,4,55,41,62,47v0,7,-5,16,-12,16r-57,-28v-20,3,-40,19,-61,18v-10,2,-43,-17,-42,-36v0,-14,7,-40,27,-41v39,-26,92,-36,104,9v0,6,-2,11,-9,15v-32,-24,-64,-6,-84,11v8,15,58,-17,72,-11xm147,-97v-27,-6,-39,-26,-60,-37v-21,7,-38,46,-65,23v-2,-5,-3,-10,-4,-14v18,-4,43,-31,61,-42v28,5,40,21,62,36v12,8,18,17,18,25v0,6,-4,9,-12,9",w:173},"ä":{d:"118,-53v10,4,55,41,62,47v0,7,-5,16,-12,16r-57,-28v-20,3,-40,19,-61,18v-32,5,-66,-64,-15,-77v39,-26,92,-36,104,9v0,6,-3,11,-9,15v-32,-24,-64,-6,-84,11v8,15,58,-17,72,-11xm142,-119v0,8,-4,13,-12,13v-18,0,-21,-20,-16,-34v18,-1,28,2,28,21xm46,-144v7,3,28,9,27,18v1,8,-9,18,-18,17v-18,-1,-25,-25,-9,-35",w:173},"ã":{d:"118,-53v10,4,55,41,62,47v0,7,-5,16,-12,16r-57,-28v-20,3,-40,19,-61,18v-10,2,-43,-17,-42,-36v0,-14,7,-40,27,-41v39,-26,92,-36,104,9v0,6,-2,11,-9,15v-32,-24,-64,-6,-84,11v8,15,58,-17,72,-11xm114,-136v22,-8,41,-24,64,-26v3,11,-7,10,-7,21v-26,20,-45,30,-58,30v-3,3,-49,-26,-49,-28v-10,-1,-32,35,-51,31v-12,-32,8,-29,32,-51v24,-21,54,20,69,23",w:173},"å":{d:"118,-53v10,4,55,41,62,47v0,7,-5,16,-12,16r-57,-28v-20,3,-40,19,-61,18v-10,2,-43,-17,-42,-36v0,-14,7,-40,27,-41v39,-26,92,-36,104,9v0,6,-2,11,-9,15v-32,-24,-64,-6,-84,11v8,15,58,-17,72,-11xm54,-101v-37,-20,-9,-71,34,-65v13,1,25,3,38,13v27,45,-34,73,-72,52xm61,-128v4,20,48,7,49,-5v0,-5,-9,-7,-28,-10v-12,-2,-21,11,-21,15",w:173},"ç":{d:"108,-118v30,-6,56,21,25,33v-24,-6,-39,5,-75,23v-7,4,-12,12,-15,22v31,28,86,3,128,9v3,28,-29,16,-44,28v-53,15,-106,10,-120,-37v0,-48,62,-70,101,-78xm92,18v23,4,45,12,48,32v-2,6,-12,28,-25,28v-24,6,-50,10,-77,13v-16,-4,-11,-28,7,-29v17,-1,51,-4,63,-12v-14,-15,-57,10,-46,-32v9,-8,0,-25,21,-26v6,6,12,14,9,26",w:171},"é":{d:"108,-124v42,-3,70,39,50,73v-22,-1,-70,12,-94,10v-1,1,-2,3,-2,3v0,3,12,7,35,14v18,0,64,7,30,21v-10,14,-31,6,-53,6v-26,-7,-70,-26,-70,-58v0,-54,48,-65,104,-69xm130,-78v-2,-35,-66,-13,-77,3v16,6,62,6,77,-3xm76,-169v26,-11,48,-32,59,-14v3,10,-80,53,-89,53v-14,1,-14,-10,-12,-21v15,-7,16,-7,42,-18",w:161},"è":{d:"108,-124v42,-3,70,39,50,73v-22,-1,-70,12,-94,10v-1,1,-2,3,-2,3v0,3,12,7,35,14v18,0,64,7,30,21v-10,14,-31,6,-53,6v-26,-7,-70,-26,-70,-58v0,-54,48,-65,104,-69xm130,-78v-2,-35,-66,-13,-77,3v16,6,62,6,77,-3xm95,-166v7,6,54,14,37,40v-28,-7,-62,-21,-100,-41v-3,-3,-3,-26,5,-24v16,5,42,18,58,25",w:161},"ê":{d:"108,-124v42,-3,70,39,50,73v-22,-1,-70,12,-94,10v-1,1,-2,3,-2,3v0,3,12,7,35,14v18,0,64,7,30,21v-10,14,-31,6,-53,6v-26,-7,-70,-26,-70,-58v0,-54,48,-65,104,-69xm130,-78v-2,-35,-66,-13,-77,3v16,6,62,6,77,-3xm145,-129v-27,-6,-39,-26,-60,-37v-8,0,-10,4,-14,10v-11,15,-51,34,-56,0v17,-4,44,-32,61,-43v28,5,41,21,63,36v12,8,17,17,17,25v0,6,-3,9,-11,9",w:161},"ë":{d:"108,-124v42,-3,70,39,50,73v-22,-1,-70,12,-94,10r-3,3v0,3,12,7,36,14v18,0,64,7,30,21v-10,14,-31,6,-53,6v-26,-7,-67,-27,-71,-58v7,-52,48,-65,105,-69xm130,-78v-2,-35,-66,-13,-77,3v16,6,62,6,77,-3xm140,-144v0,8,-4,12,-12,12v-18,0,-19,-19,-16,-33v18,-1,29,1,28,21xm44,-169v7,3,28,9,28,17v0,9,-9,18,-18,18v-18,0,-25,-24,-10,-35",w:161},"í":{d:"59,-98v20,4,15,53,10,95v-6,1,-11,2,-19,-4v1,-7,-12,-18,-10,-24v4,-22,-4,-65,19,-67xm50,-139v27,-11,49,-32,59,-14v3,11,-80,53,-89,53v-14,1,-14,-12,-11,-22v15,-7,14,-6,41,-17",w:105},"ì":{d:"57,-98v22,5,13,50,11,95v-7,1,-11,2,-20,-4v1,-7,-12,-18,-10,-24v4,-22,-2,-64,19,-67xm70,-139v14,10,54,14,37,41v-28,-7,-61,-22,-99,-42v-3,-2,-3,-25,5,-23v15,5,41,17,57,24",w:109},"î":{d:"72,-98v20,5,12,51,10,95v-6,2,-13,1,-20,-4v1,-8,-12,-18,-10,-24v4,-22,-3,-65,20,-67xm134,-94v-26,-7,-39,-25,-60,-37v-7,0,-9,4,-13,10v-14,15,-51,34,-56,-1v18,-4,45,-33,61,-43v27,6,40,22,62,37v12,8,18,17,18,25v0,6,-4,9,-12,9",w:143},"ï":{d:"55,-97v19,5,15,53,10,95v-17,5,-26,-14,-30,-28v6,-20,-3,-65,20,-67xm110,-118v0,8,-4,13,-12,13v-17,0,-19,-19,-16,-34v18,-1,29,1,28,21xm14,-143v6,3,28,8,28,17v0,9,-9,18,-18,18v-18,0,-25,-24,-10,-35",w:107},"ñ":{d:"115,-129v34,6,59,50,59,105v0,31,-15,24,-30,17v-15,-29,-5,-42,-20,-81v-35,-13,-68,52,-88,61v-20,-4,-38,-36,-19,-59v0,-12,3,-14,10,-28v11,-8,18,11,27,12xm117,-166v22,-7,41,-23,64,-26v3,11,-7,10,-7,21v-26,20,-45,30,-58,30v-3,3,-49,-26,-49,-28v-10,-1,-32,35,-51,31v-5,-12,-8,-16,0,-23v4,-6,28,-29,48,-33v17,-3,43,28,53,28",w:171},"ó":{d:"102,-132v50,-20,99,16,99,60v0,54,-60,64,-108,79v-50,-2,-110,-48,-76,-100v22,-17,49,-33,85,-39xm136,-104v-34,0,-91,27,-94,47v16,51,125,16,125,-22v0,-17,-10,-25,-31,-25xm49,-154v24,-3,85,-55,101,-32v3,11,-80,53,-89,53v-14,0,-13,-8,-12,-21",w:191},"ò":{d:"102,-132v50,-20,99,16,99,60v0,54,-60,64,-108,79v-50,-2,-110,-48,-76,-100v22,-17,49,-33,85,-39xm136,-104v-34,0,-91,27,-94,47v16,51,125,16,125,-22v0,-17,-10,-25,-31,-25xm115,-181v14,10,51,13,37,40v-28,-7,-62,-21,-100,-41v-3,-2,-3,-26,5,-23v16,5,42,17,58,24",w:191},"ô":{d:"102,-132v50,-20,99,16,99,60v0,54,-60,64,-108,79v-50,-2,-110,-48,-76,-100v22,-17,49,-33,85,-39xm136,-104v-34,0,-91,27,-94,47v16,51,125,16,125,-22v0,-17,-10,-25,-31,-25xm110,-177v-22,6,-38,45,-65,22v-2,-4,-3,-9,-4,-13v18,-4,43,-32,61,-43v27,6,40,21,62,36v12,9,18,17,18,25v1,11,-15,10,-23,7",w:191},"ö":{d:"102,-132v50,-20,99,16,99,60v0,54,-60,64,-108,79v-50,-2,-110,-48,-76,-100v22,-17,49,-33,85,-39xm136,-104v-34,0,-91,27,-94,47v16,51,125,16,125,-22v0,-17,-10,-25,-31,-25xm161,-160v0,8,-4,13,-12,13v-17,0,-19,-19,-16,-34v18,-1,29,1,28,21xm65,-185v7,3,28,9,28,18v0,7,-9,18,-18,17v-18,1,-25,-24,-10,-35",w:191},"õ":{d:"102,-132v50,-20,99,16,99,60v0,54,-60,64,-108,79v-50,-2,-110,-48,-76,-100v22,-17,49,-33,85,-39xm136,-104v-34,0,-91,27,-94,47v16,51,125,16,125,-22v0,-17,-10,-25,-31,-25xm58,-199v26,-21,54,18,69,22v4,0,15,-5,34,-13v22,-9,21,-16,31,-13v3,11,-9,9,-7,22v-26,20,-46,30,-59,30v-2,4,-49,-28,-49,-29v-11,0,-32,31,-46,32v-12,-3,-13,-21,-4,-23v4,-6,14,-15,31,-28",w:191},"ú":{d:"196,-129v-1,-4,12,-13,15,-13v6,0,8,7,8,21v0,24,-7,25,-13,45v-7,7,-14,21,-24,29v-9,24,-61,45,-89,45v-63,0,-105,-72,-67,-126v24,-3,19,27,18,46v-1,26,23,42,54,40v38,-3,88,-51,98,-87xm106,-174v26,-11,48,-32,59,-14v3,11,-81,53,-89,54v-13,1,-15,-12,-11,-22v15,-7,14,-7,41,-18",w:213},"ù":{d:"196,-129v-1,-4,12,-13,15,-13v6,0,8,7,8,21v0,24,-7,25,-13,45v-7,7,-14,21,-24,29v-9,24,-61,45,-89,45v-63,0,-105,-72,-67,-126v24,-3,19,27,18,46v-1,26,23,42,54,40v38,-3,88,-51,98,-87xm126,-166v7,6,56,14,37,40v-28,-7,-62,-22,-100,-42v-2,-3,-2,-26,5,-23v16,4,42,18,58,25",w:213},"û":{d:"196,-129v-1,-4,12,-13,15,-13v6,0,8,7,8,21v0,24,-7,25,-13,45v-7,7,-14,21,-24,29v-9,24,-61,45,-89,45v-63,0,-105,-72,-67,-126v24,-3,19,27,18,46v-1,26,23,42,54,40v38,-3,88,-51,98,-87xm172,-143v-27,-6,-39,-26,-60,-37v-8,0,-10,4,-14,10v-11,15,-49,35,-56,0v17,-4,44,-32,61,-43v27,6,41,21,63,36v12,9,17,17,17,25v0,6,-3,9,-11,9",w:213},"ü":{d:"196,-129v-1,-4,12,-13,15,-13v6,0,8,7,8,21v0,24,-7,25,-13,45v-7,7,-14,21,-24,29v-9,24,-61,45,-89,45v-63,0,-105,-72,-67,-126v24,-3,19,27,18,46v-1,26,23,42,54,40v38,-3,88,-51,98,-87xm168,-161v0,8,-3,13,-11,13v-17,0,-20,-19,-17,-34v18,-1,29,1,28,21xm72,-186v7,3,29,9,28,18v0,7,-9,18,-18,17v-18,1,-25,-24,-10,-35",w:213},"†":{d:"22,-286v15,6,5,-20,19,-19v9,-3,15,21,17,22v6,1,12,3,20,6v3,10,5,16,-9,16v-34,-10,-6,51,-34,52v-20,-7,11,-47,-15,-49v-14,3,-25,-5,-17,-24v7,-2,14,-4,19,-4",w:77},"°":{d:"106,-268v0,36,-35,38,-51,46v-48,5,-60,-58,-25,-78v33,-11,76,-9,76,32xm38,-257v16,7,39,2,38,-17v-13,-9,-28,-1,-32,11v-5,3,-7,0,-6,6",w:114},"¢":{d:"105,-188v13,-12,14,-18,26,-15v7,23,7,15,-3,49v6,0,18,14,17,20v-3,5,-12,19,-26,13v-14,1,-14,5,-16,21v10,10,46,-13,38,18v-9,17,-23,16,-54,20v-17,16,-4,55,-29,60v-37,-10,19,-64,-24,-71v-20,-10,-37,-47,-6,-62v23,-20,73,-4,77,-53xm65,-101v4,-9,7,-8,3,-13v-14,4,-22,10,-3,13",w:154},"£":{d:"153,-170v3,22,62,0,49,39v-18,6,-31,12,-58,9v-12,-1,-17,30,-23,39v19,26,50,56,91,35v9,-2,27,-13,27,4v0,27,-27,39,-58,42v-32,-5,-59,-19,-78,-39v-6,1,-35,44,-57,39v-25,0,-37,-15,-37,-46v0,-41,43,-53,73,-50v4,1,12,-18,12,-21v-7,-15,-49,0,-44,-30v-2,-31,31,-16,60,-19v16,-30,25,-119,93,-113v16,2,75,16,50,44v-4,5,-7,7,-12,8v-18,-12,-32,-18,-41,-18v-35,-1,-38,52,-47,77xm43,-45v4,5,12,-2,11,-9v-1,2,-12,1,-11,9",w:242},"§":{d:"141,-115v12,10,29,36,28,56v-4,68,-129,69,-152,16v-1,-12,-10,-22,8,-23v17,3,47,21,67,23v16,1,40,-8,38,-21v-8,-49,-119,-30,-117,-85v1,-28,15,-45,-3,-64v-1,-53,55,-61,103,-62v15,-5,6,-5,20,-2v16,17,23,27,23,30v-1,26,-29,7,-45,7v-21,0,-51,2,-62,17v19,14,87,8,97,43v18,14,16,57,-5,65xm64,-147r57,17v10,-28,-22,-43,-47,-44v-25,-1,-35,19,-10,27",w:174},"•":{d:"130,-114v0,47,-124,54,-120,-8r6,-31v44,-28,64,-34,104,0v8,6,10,20,10,39",w:139},"¶":{d:"121,-237v21,-9,44,-13,63,-1v-1,7,5,6,7,11r-4,190v-2,33,4,39,-15,40v-16,1,-10,-20,-10,-33r4,-161v0,-17,-1,-34,-16,-25v2,10,1,23,1,35v-9,46,-6,75,-15,156v-3,4,-7,5,-12,5v-17,-10,-3,-89,-10,-115v-43,14,-98,10,-101,-29v-4,-53,59,-63,104,-75v3,1,4,2,4,2xm95,-204v2,9,-30,50,1,50v35,0,23,-13,29,-43v0,-1,-2,-7,-4,-15v-12,-1,-14,2,-26,8",w:206},"ß":{d:"33,10v-29,4,-28,-32,-16,-70v18,-58,17,-137,56,-176v12,-24,46,-58,82,-43v20,8,47,24,47,54v0,30,-62,59,-67,90v33,23,56,33,63,63v-18,21,-22,36,-48,54v-24,17,-27,41,-53,16v-2,-19,7,-35,24,-42v15,-13,26,-22,34,-40v-13,-17,-78,-29,-56,-70v-3,-27,64,-54,66,-86v-8,-25,-41,-4,-52,8v-29,30,-47,83,-51,141v-17,25,-8,71,-29,101"},"®":{d:"75,-194v78,-29,116,9,130,84v-2,42,-22,47,-57,67v-74,20,-161,-19,-129,-110v6,-18,29,-34,57,-40xm46,-86v51,36,84,21,129,-15v7,-15,0,-39,-10,-49v-13,-37,-49,-26,-86,-18v-28,7,-49,46,-33,82xm72,-123v-5,-43,68,-57,75,-14v-17,26,-18,17,3,32v2,25,-25,18,-45,7r-4,-4v-1,8,-3,20,-12,24v-10,-3,-21,-34,-17,-45xm112,-135v-10,-1,-20,13,-9,14v6,-6,9,-11,9,-14",w:217},"©":{d:"102,-29v-74,5,-124,-84,-70,-140v22,-22,53,-35,97,-38v46,-4,88,49,74,100v0,44,-51,75,-101,78xm96,-66v42,-3,75,-23,75,-69v0,-23,-4,-38,-44,-38v-16,0,-33,6,-49,20v36,-4,55,-12,62,20v-5,16,-49,1,-50,21v10,15,53,-14,54,11v0,18,-14,27,-42,27v-22,1,-46,-11,-46,-31v0,-25,7,-39,20,-44v-1,-1,-2,-2,-3,-2v-51,22,-32,89,23,85",w:217},"™":{d:"213,-307v28,9,11,49,7,75v-1,4,-4,6,-11,6v-7,1,-11,-14,-11,-34v-14,-6,-34,34,-46,28v-2,0,-10,-9,-24,-27v-10,7,-3,36,-27,31v-15,-24,-3,-27,1,-48v-6,-7,-27,-1,-31,3v-3,14,-7,30,-11,51v-5,10,-29,9,-24,-12v-5,-8,1,-18,3,-35v-13,6,-33,2,-29,-18v20,-17,64,-17,100,-19v28,-1,29,30,45,39v11,-6,35,-32,58,-40",w:239},"´":{d:"52,-284v29,-11,50,-34,62,-14v3,12,-86,54,-94,56v-14,0,-16,-12,-12,-23v11,-5,25,-11,44,-19",w:120},"¨":{d:"124,-259v0,9,-4,13,-12,13v-18,0,-22,-21,-17,-35v19,-1,30,1,29,22xm23,-285v7,2,30,9,29,18v1,10,-9,19,-18,19v-19,0,-28,-26,-11,-37",w:136},"≠":{d:"48,-130v29,11,49,-57,60,-50v25,6,7,27,-1,46v22,5,29,7,21,22v-18,2,-48,-1,-50,15v9,8,53,-7,54,10v-4,22,-46,20,-72,24v-7,13,-18,32,-34,57v-8,6,-15,-3,-13,-14v-1,-9,15,-39,14,-45v-30,5,-24,-17,-13,-25v12,-1,36,4,29,-13v-14,0,-47,6,-36,-12v0,-18,27,-13,41,-15",w:140},"Æ":{d:"335,-259v0,30,-102,12,-122,34v10,21,2,79,16,100v24,-6,59,-13,86,-16v23,-2,32,21,13,26r-103,29v-3,22,-4,38,8,43v28,-5,60,-6,86,-14v5,-1,14,7,14,11v6,16,-90,40,-107,40v-29,0,-39,-19,-32,-46v-2,-4,0,-26,-9,-28v-29,2,-58,6,-88,6v-31,0,-40,74,-82,73v-18,-23,4,-37,12,-50v40,-65,112,-126,165,-207v20,-17,69,-11,112,-13v21,0,31,4,31,12xm123,-111v28,1,44,-2,67,-10v-4,-22,5,-49,-7,-65v-3,6,-65,61,-60,75",w:348},"Ø":{d:"76,-211v41,-13,100,-22,140,-3v26,-19,40,-29,44,-29v10,0,15,7,15,20v0,15,-23,23,-30,35v23,39,29,114,-21,139v-36,19,-102,35,-147,18v-14,-5,-29,29,-46,35v-25,-13,-19,-24,3,-56v-9,-17,-28,-27,-28,-60v0,-38,23,-72,70,-99xm107,-66v55,15,125,-12,123,-70v0,-16,-5,-25,-13,-29r-110,95r0,4xm39,-108v-1,3,17,31,22,27v8,-6,109,-90,123,-106v-15,-11,-43,1,-63,2v-33,10,-80,35,-82,77",w:270},"∞":{d:"322,-72v-4,22,-54,41,-76,41v-43,0,-83,-17,-114,-35v-46,19,-125,53,-128,-18v-1,-14,10,-22,13,-35v29,-10,62,-31,97,-4v37,28,47,5,75,-8v40,-19,73,-10,114,1v13,1,18,55,19,58xm228,-69v15,0,62,-12,61,-25v-19,-23,-89,-10,-105,11v0,2,1,4,2,4v28,6,42,10,42,10xm75,-102v-13,2,-41,4,-44,19v0,4,3,7,10,7v21,0,40,-6,54,-17v-9,-6,-16,-9,-20,-9",w:330},"±":{d:"93,-163v-7,46,76,-4,46,47v-14,6,-27,13,-38,8v-24,2,-14,28,-28,44r-14,0v-7,-12,-5,-15,-7,-33v-12,-7,-41,-1,-37,-24v2,-11,23,-17,36,-14r28,-38v4,0,9,4,14,10xm113,-27v-12,18,-58,27,-85,24v-16,2,-22,-23,-13,-36v28,-7,85,-11,98,12",w:151},"≤":{d:"73,-109v10,15,87,16,87,42v0,11,-5,16,-13,16v-36,-11,-69,-24,-109,-31v-18,-8,-18,-13,-9,-36v59,-56,93,-83,101,-83v16,0,18,17,14,28v-27,24,-42,35,-71,64xm10,-29v35,-12,117,-26,148,-3v1,2,-5,19,-8,18r-124,15v-16,2,-26,-18,-16,-30",w:168},"≥":{d:"115,-174v20,7,53,36,20,57v-19,11,-91,68,-82,59v-18,3,-25,-22,-13,-31v15,-10,14,-10,70,-51r-50,-37v-5,-4,-5,-27,4,-28v16,7,40,17,51,31xm14,-32v33,-10,86,-14,127,-10v12,12,5,23,-11,27v-49,9,-82,13,-99,13v-22,0,-24,-16,-17,-30",w:163},"¥":{d:"31,-248v30,-3,64,64,74,59v37,-22,77,-65,107,-82v20,-11,34,18,21,32v-28,19,-52,38,-70,57v-18,8,-40,21,-35,60v2,19,39,7,64,7v25,0,16,21,2,27v-36,16,-46,8,-68,18v6,11,101,-20,66,24v-21,11,-42,12,-75,20v-2,1,-5,6,-10,18v-8,3,-11,10,-24,8v-7,-17,-2,-18,-9,-26v-13,5,-39,3,-53,-2v-10,-17,-7,-27,0,-34v23,-1,45,1,64,-5v-11,-7,-28,-4,-64,-6v-13,-8,-15,-24,-6,-35v33,-2,102,9,76,-37v-14,-14,-33,-38,-60,-66v-10,-10,-8,-28,0,-37",w:219},"µ":{d:"123,-114v41,0,54,-9,127,-17v12,-2,20,-6,25,-12v5,-78,43,-127,119,-138v38,-5,46,23,55,48v-5,5,2,4,2,12v-2,47,-72,81,-129,95v-17,4,-12,32,-2,39v30,-5,24,0,99,4v14,9,14,20,-1,23v-17,3,-71,-1,-85,13v1,19,18,35,-3,47v-1,-6,-10,-7,-16,-5v-3,-3,-20,-37,-29,-41v-15,8,-50,22,-49,-9v1,-19,2,-27,28,-26v24,1,13,-12,8,-30v-22,1,-64,16,-111,23v-50,7,-17,47,-17,57v0,10,-5,15,-13,15v-20,-9,-27,-30,-33,-55v-20,-17,-52,8,-85,-6v-2,-10,-13,-26,4,-29v32,-6,41,-1,65,-7v-17,-74,-4,-173,69,-180v55,-20,130,8,131,65v-11,9,-10,2,-29,-11v-33,-23,-37,-26,-76,-25v-41,13,-69,38,-67,100v0,34,4,50,13,50xm317,-152v29,-6,106,-43,106,-71v0,-23,-24,-25,-42,-17v-31,1,-74,48,-64,88",w:462},"∂":{d:"456,-113v55,-37,119,-8,176,5v-19,37,-104,-5,-144,18v-5,64,-45,87,-130,87v-43,0,-70,-8,-96,-21v-54,15,-146,29,-209,10v-18,-11,-43,-26,-46,-53v-1,-9,28,-48,51,-46v55,-10,55,-8,101,-8v29,0,17,-26,23,-56v4,-19,4,-74,34,-49v4,42,-7,83,-10,124v0,4,-11,10,-34,17v-29,-1,-45,-4,-74,1v-10,2,-57,3,-52,18v30,43,132,30,190,18v2,-10,-7,-19,-5,-28v5,-36,31,-59,74,-56v27,2,71,4,70,35v-1,30,-37,41,-58,57v35,13,131,15,135,-23v2,-19,-5,-36,4,-50xm262,-85v0,3,13,28,19,25v7,0,48,-13,61,-29v-10,-17,-71,-17,-80,4",w:640},"∑":{d:"235,-95v-3,-59,120,-41,160,-28v3,-2,15,-3,14,4v1,3,-16,19,-21,18r-97,4v-25,5,-18,18,-23,56v-16,14,-25,24,-36,18v-83,32,-154,29,-212,-17v-45,-68,41,-114,107,-119v50,-4,59,66,22,85v-16,8,-61,10,-79,15v36,27,185,24,165,-36xm128,-119v-23,-3,-43,4,-53,15v13,5,46,-4,53,-15",w:414},"∏":{d:"243,-190v7,-18,27,-19,38,6v0,2,-5,8,-14,16v-8,-9,-27,-4,-24,-22xm221,-111v55,-7,60,22,45,64v5,23,17,47,-22,47v-35,0,-18,-40,-15,-70v-2,-19,-35,-13,-52,-18v-2,0,-13,1,-34,3v-4,0,-10,11,-13,31v-3,20,1,43,-11,54v-12,-4,-13,-5,-21,-3v-13,-13,-3,-25,-12,-41v7,-6,12,-22,10,-39v-23,-8,-79,15,-87,-21v12,-28,78,-4,101,-20r36,-96v8,-19,17,-28,27,-28v10,0,15,6,15,18v-6,32,-31,62,-38,109v25,10,47,-1,71,10",w:282},"π":{d:"247,-240v-3,5,-14,12,-21,6v-41,5,-71,-4,-85,37v-6,7,-21,42,-25,61v28,12,104,-16,129,24v8,11,12,24,12,38v-7,17,-2,99,-40,68v-9,-23,-5,-47,-1,-73v3,-24,-40,-24,-50,-19v-4,0,-18,2,-44,6v-30,-6,-16,49,-33,58v-19,-11,-14,2,-29,-10v8,-71,20,-114,43,-170v-24,-2,-49,4,-73,7v-30,3,-32,-33,-7,-36r184,-22v17,-1,40,13,40,25",w:265},"∫":{d:"62,-151v-7,-70,20,-130,63,-150v28,1,39,10,70,23v20,8,6,33,-6,35v-29,-13,-45,-20,-49,-20v-20,-4,-45,51,-43,70v8,60,5,129,5,189v0,62,-27,93,-79,93v-37,-1,-71,-14,-63,-57v21,0,79,34,91,-2v16,-3,14,-64,21,-85v-2,-31,-1,-74,-10,-96",w:156},"ª":{d:"6,-265v1,-31,58,-53,80,-22v-11,14,25,28,25,36v-2,8,-15,12,-27,10v-22,-29,-68,19,-78,-24xm52,-281v-8,1,-24,10,-9,13v11,1,24,-10,9,-13",w:117},"º":{d:"13,-273v1,-31,56,-41,83,-18v36,8,14,48,-9,52v-35,6,-64,-5,-74,-34xm81,-269v-7,-7,-20,-11,-29,-6v5,13,13,11,29,6",w:128},"Ω":{d:"121,-111v9,16,43,-5,54,5v28,-4,62,8,81,-5v48,-33,166,-28,160,44v15,34,-51,53,-88,53v-34,0,-53,-21,-71,-37v-15,7,-32,-4,-28,-22v-26,-4,-93,-6,-108,8v8,17,5,37,12,54v-1,15,-18,15,-31,10v-9,-15,-20,-39,-19,-63v-20,-9,-73,15,-79,-18v4,-28,50,-11,77,-24v12,-99,36,-168,137,-178v35,5,64,20,67,57v0,13,-14,18,-20,5v-15,-35,-83,-31,-104,4v-26,20,-39,82,-40,107xm334,-45v15,2,51,-14,53,-22v-7,-20,-36,-31,-69,-29v-8,-1,-39,6,-37,14v-3,10,44,38,53,37",w:424},"æ":{d:"145,-44r33,7v2,42,-59,29,-85,16v-6,7,-35,24,-48,15v-19,2,-35,-21,-33,-37v2,-24,5,-19,28,-36v-6,-8,-45,3,-33,-21v21,-22,58,-12,85,-1v6,-5,35,-28,45,-15v20,-4,36,17,36,35v0,23,-4,21,-28,37xm111,-72v12,3,49,-16,19,-17v-5,0,-20,12,-19,17xm74,-50v-14,-4,-48,16,-19,17v4,1,19,-14,19,-17",w:184},"ø":{d:"76,-136v17,7,33,-8,51,0v9,-6,21,-13,36,-21v23,22,-13,31,3,50v11,13,4,21,14,35v-4,5,-1,14,-4,23v-14,23,-45,41,-84,39v-12,2,-29,28,-41,38v-2,-11,-34,-10,-15,-30v3,-7,5,-11,5,-11v-15,-24,-60,-54,-22,-89v23,-21,25,-32,57,-34xm102,-54v18,1,50,-19,30,-32v-12,7,-22,18,-30,32xm85,-92v-14,3,-26,8,-38,17v2,20,17,13,26,0v6,-8,12,-13,12,-17",w:188},"¿":{d:"181,-247v3,1,31,2,29,15v-4,22,-37,27,-41,4v1,-5,7,-20,12,-19xm161,-34v-45,-1,-105,19,-124,51v0,11,18,17,54,17v39,0,82,-13,112,4v-10,35,-58,31,-100,31v-47,0,-80,-10,-99,-31v-10,-56,22,-73,64,-90v8,-3,32,-9,74,-18v21,-15,7,-62,22,-92v-1,-5,-1,-11,4,-12v16,0,24,7,24,22v-8,30,-8,73,-17,111v-3,5,-7,7,-14,7",w:213},"¡":{d:"86,-197v8,16,-7,41,-24,25v-11,-11,-4,-16,-3,-29v13,0,15,-2,27,4xm46,-107v4,-8,11,-16,23,-7v19,26,-5,57,-6,87v-7,0,-5,18,-9,28v0,14,-17,52,-11,70v-2,7,-15,28,-25,12v-4,-6,-15,-7,-6,-16v2,-39,14,-96,34,-174",w:95},"¬":{d:"141,-99v47,7,103,-3,149,6v14,24,18,15,10,39v-10,34,-7,31,-26,76v-4,6,-15,8,-16,21v-4,2,-4,1,-13,5v-22,-33,-4,-33,16,-104v-5,-9,-28,-4,-38,-6r-183,4v-14,0,-41,-29,-17,-36v31,-9,82,5,118,-5",w:315},"√":{d:"364,-218v43,-21,80,-51,104,-32v-3,19,-24,21,-44,40v-41,15,-78,53,-136,78r-137,98v-20,16,-79,66,-91,68v-3,1,-25,-11,-24,-13v-4,-28,-43,-61,-30,-85v26,-15,42,19,58,32r295,-188v0,1,2,2,5,2",w:474},"ƒ":{d:"115,-262v-23,6,-39,63,-38,96v1,3,57,2,54,16v1,22,-45,15,-51,30v3,34,12,68,10,103v14,17,-18,53,-28,63v-48,8,-89,5,-95,-37v20,-5,77,21,83,-18v17,-29,-4,-61,0,-98v0,-5,-3,-10,-7,-17v-33,4,-43,-17,-25,-37v10,-4,27,5,27,-10v0,-43,15,-77,32,-109v12,-7,16,-22,38,-20v11,1,51,35,25,55v-9,1,-16,-17,-25,-17",w:145},"≈":{d:"133,-112v21,15,48,-30,78,-17v3,3,5,7,5,9v-8,30,-47,45,-76,45v-19,0,-64,-48,-90,-21r-29,20v-6,-1,-17,-16,-15,-32v24,-17,70,-42,107,-21v4,4,10,9,20,17xm138,-57v28,2,48,-25,76,-26v13,30,-21,42,-40,53v-41,24,-77,-15,-114,-23v-15,14,-46,32,-49,-1v-3,-9,27,-28,54,-30",w:223},"∆":{d:"18,-1v-24,-30,8,-48,25,-71v14,-19,34,-28,40,-56v20,-35,29,-14,57,4v9,39,43,62,57,102v0,16,-34,17,-50,14v-28,2,-72,4,-129,7xm139,-47r-22,-52v-12,-5,-12,15,-24,27v-7,6,-14,16,-23,28v23,1,36,-1,69,-3",w:199},"«":{d:"191,-64v16,6,87,37,53,63v-39,-9,-71,-28,-107,-40v-14,-13,-13,-34,10,-47v27,-15,48,-55,84,-62v9,-2,21,10,21,18r-13,21v-16,5,-44,22,-51,41v0,4,1,6,3,6xm71,-65v17,6,87,35,55,62v-39,-8,-66,-27,-108,-40v-14,-13,-13,-36,10,-46v23,-18,50,-56,84,-63v9,-2,21,10,21,18r-13,22v-20,6,-32,17,-51,37v0,3,-1,11,2,10",w:265},"»":{d:"120,-129v9,-33,48,-10,64,5v9,20,86,52,50,86v-36,11,-66,31,-107,40v-6,-7,-9,-13,-9,-17v-2,-13,50,-46,63,-46v11,-18,-33,-42,-48,-47xm1,-128v10,-33,46,-8,64,6v8,19,86,50,51,85v-40,13,-69,30,-108,40v-6,-7,-8,-12,-8,-16v-2,-14,50,-46,63,-47v7,-13,-9,-20,-19,-30v-10,-9,-20,-15,-30,-17",w:252},"…":{d:"244,-24v-1,21,-38,32,-41,3v-2,-19,23,-22,34,-17v0,7,0,15,7,14xm113,-24v0,-22,28,-21,38,-8v5,34,-39,40,-38,8xm35,-2v-10,-2,-36,-17,-18,-29v-1,-15,17,-17,31,-6v7,17,6,33,-13,35",w:258}," ":{w:179},"À":{d:"161,-217v20,53,23,124,54,170v-2,20,-34,9,-42,0v-27,-12,-78,-18,-101,-18v-26,6,-29,51,-54,63v-18,-4,-19,-30,-3,-38v5,-9,15,-16,8,-29v1,-12,23,-9,26,-19v6,-10,11,-20,20,-27r70,-121v12,-4,16,4,22,19xm82,-91v17,3,62,7,86,13v-13,-33,-13,-80,-29,-109v-15,30,-38,63,-57,96xm150,-268v14,10,54,14,37,41v-28,-7,-62,-22,-100,-42v-2,-3,-2,-26,5,-23v16,4,42,17,58,24"},"Ã":{d:"161,-217v20,53,23,124,54,170v-2,20,-34,9,-42,0v-27,-12,-78,-18,-101,-18v-26,6,-29,51,-54,63v-18,-4,-19,-30,-3,-38v5,-9,15,-16,8,-29v1,-12,23,-9,26,-19v6,-10,11,-20,20,-27r70,-121v12,-4,16,4,22,19xm82,-91v17,3,62,7,86,13v-13,-33,-13,-80,-29,-109v-15,30,-38,63,-57,96xm100,-285v26,-19,54,19,69,22v4,0,15,-5,34,-13v23,-9,22,-17,31,-12v3,11,-9,9,-7,21v-26,20,-46,30,-59,30v-3,3,-50,-26,-49,-29v-12,1,-31,35,-51,32v-3,-8,-5,-14,-5,-18v10,-9,16,-17,37,-33"},"Õ":{d:"62,-184v78,-31,249,-50,238,74v-6,65,-102,105,-179,115v-77,-7,-152,-71,-101,-149v2,-5,24,-33,42,-40xm279,-120v14,-38,-47,-64,-85,-61v-20,-9,-41,7,-62,0v-11,7,-54,12,-66,24v0,20,-51,35,-38,66v-1,43,50,67,96,67v44,0,162,-55,155,-96xm116,-270v26,-19,54,19,69,22v4,0,15,-5,34,-13v23,-10,22,-16,31,-12v3,11,-8,9,-7,21v-45,28,-47,42,-88,16v-29,-19,-12,-20,-43,2v-8,5,-12,18,-23,15v-13,-3,-12,-20,-4,-23v4,-6,14,-15,31,-28",w:273},"Œ":{d:"247,-243v71,4,161,-7,245,-8v17,0,27,6,27,17v-8,27,-70,14,-104,23v-3,1,-52,0,-65,7r0,4v16,16,17,29,17,65v32,10,74,-14,99,16v-14,25,-76,17,-127,24v-17,18,-55,32,-75,51v85,0,128,-3,204,-11v15,-2,21,11,20,29v-78,24,-177,12,-270,24v-24,3,-24,-29,-48,-15v-46,7,-70,4,-105,-4v-19,-18,-42,-22,-52,-55v-10,-34,0,-47,12,-78v-18,-59,48,-78,105,-84v17,-18,103,-13,117,-5xm125,-45v76,-9,186,-43,209,-105v-26,-67,-137,-83,-217,-54v3,34,-45,25,-60,58v-41,48,5,108,68,101",w:492},"œ":{d:"185,-54v25,28,107,-17,104,33v-12,12,-60,14,-87,14v0,0,1,1,2,1v-11,1,-39,-9,-50,-17v-28,17,-75,32,-114,7v-22,-14,-34,-11,-34,-41v0,-36,33,-49,48,-75v29,-16,72,-3,95,11v12,-9,48,-27,59,-26v30,0,64,15,65,40v0,7,-6,20,-20,37v-29,1,-44,11,-68,16xm226,-106v-21,-7,-41,-2,-48,13v14,1,42,-7,48,-13xm132,-87v-21,-35,-94,11,-92,24v-2,14,43,21,61,21v25,0,36,-20,31,-45",w:295},"–":{d:"6,-66v-8,-72,79,-21,146,-39v37,-10,79,7,111,0v9,8,14,13,14,17v2,26,-72,13,-99,21v-83,4,-124,21,-172,1",w:282},"—":{d:"175,-106v86,-9,201,1,286,-1v11,6,13,11,6,30v-118,15,-246,10,-377,10v-25,0,-73,3,-82,-8r-2,-26v11,-13,32,-9,52,-7v38,3,84,-5,117,2",w:485},"“":{d:"66,-261v-21,5,-37,51,-22,77v0,4,-2,6,-7,6v-31,-9,-38,-62,-12,-94v12,-15,21,-28,31,-34v16,-1,19,24,22,34v10,-11,22,-32,43,-23v-2,8,4,16,5,19v-6,11,-51,53,-29,74v-12,21,-30,5,-33,-17v-6,-13,9,-28,2,-42",w:118},"”":{d:"120,-294v12,3,30,26,19,34v2,15,-40,70,-55,66v-40,-10,10,-51,14,-64v3,-3,8,-31,22,-36xm70,-306v14,3,26,34,16,49v-19,30,-31,45,-58,59v-12,-11,-33,-17,-7,-36v13,-19,36,-27,36,-59v0,-5,9,-13,13,-13",w:148},"‘":{d:"73,-262v-10,7,-41,39,-38,69v-15,13,-27,-16,-28,-28v-2,-20,51,-83,66,-83v20,0,25,41,0,42",w:95},"’":{d:"74,-300v13,31,-1,99,-44,101v-13,0,-19,-5,-19,-15v6,-10,31,-34,35,-59v2,-11,1,-32,11,-32v6,0,11,2,17,5",w:90},"÷":{d:"167,-158v-4,3,-7,9,-10,20v-23,4,-34,-8,-29,-31v14,-6,18,1,39,11xm78,-72v-53,11,-53,12,-69,-15v-1,-12,11,-17,22,-14v71,-13,151,-18,230,-24v11,1,21,16,23,28v-28,20,-90,11,-126,16v-36,5,-62,5,-80,9xm123,-40v19,-17,41,-1,41,17v0,13,-6,19,-17,19v-15,0,-29,-14,-24,-36",w:293},"◊":{d:"76,-158v48,-8,64,11,100,36v28,19,-5,39,-22,54v-15,13,-40,32,-48,49v-17,5,-12,0,-27,-16v-6,-6,-86,-31,-68,-53r2,-9v27,-23,48,-44,63,-61xm93,-65v12,-2,35,-31,41,-38v-5,-10,-16,-14,-34,-24v-12,12,-36,29,-40,44v19,11,30,18,33,18",w:199},"ÿ":{d:"118,85v-11,11,-11,38,-22,61v-2,-1,-2,31,-17,27v-11,0,-21,-10,-21,-22v20,-66,23,-61,64,-168v-22,1,-38,16,-58,4v-22,4,-51,-16,-51,-42v-11,-13,-7,-59,7,-58v16,1,21,24,22,51v21,33,66,5,94,-7v4,-3,26,-14,38,-29r17,0v23,44,-23,59,-34,102v-6,9,-13,9,-13,26v-15,6,-12,33,-27,48v0,2,1,4,1,7xm158,-136v0,8,-4,13,-12,13v-18,0,-21,-20,-16,-34v18,-1,29,1,28,21xm62,-161v7,3,28,9,27,18v1,8,-8,17,-17,17v-18,0,-26,-24,-10,-35",w:190},"Ÿ":{d:"176,-189v35,20,-25,54,-39,72v-26,34,-57,57,-74,104v-10,15,-4,14,-23,3r0,-10v19,-44,27,-46,50,-81v-9,-5,-24,4,-34,4v-38,0,-54,-50,-44,-87v21,-5,18,19,22,35v4,18,15,27,29,27v41,0,60,-39,113,-67xm153,-222v0,8,-3,12,-11,12v-18,0,-21,-19,-16,-33v18,-1,28,2,27,21xm57,-247v8,2,29,9,28,17v0,21,-37,24,-36,1v0,-7,2,-13,8,-18",w:135},"⁄":{d:"193,-305v7,6,17,31,3,41v-10,7,-12,13,-21,25v-79,56,-190,209,-197,260r-18,0v-23,-19,9,-70,15,-85v52,-83,121,-179,218,-241",w:120},"¤":{d:"308,-133r-200,16v-2,1,-6,4,-10,10v70,-2,144,-14,211,-8v3,0,8,4,13,8v-1,4,-3,9,-9,17v-57,11,-164,6,-219,25v26,32,112,25,173,25v9,0,35,2,35,19v0,9,-4,13,-12,14v-115,12,-146,23,-211,-19v-12,-4,-22,-9,-25,-27v-6,-29,-61,3,-43,-49v17,-1,36,7,42,-12v-32,7,-36,-39,-11,-40v29,14,63,-25,73,-30v52,-25,72,-44,142,-44v23,0,21,41,-1,39v-35,-3,-61,9,-102,31v2,2,5,4,8,4v18,-6,101,-9,115,-9v7,0,55,13,31,30",w:312},"€":{d:"308,-133r-200,16v-2,1,-6,4,-10,10v70,-2,144,-14,211,-8v3,0,8,4,13,8v-1,4,-3,9,-9,17v-57,11,-164,6,-219,25v26,32,112,25,173,25v9,0,35,2,35,19v0,9,-4,13,-12,14v-115,12,-146,23,-211,-19v-12,-4,-22,-9,-25,-27v-6,-29,-61,3,-43,-49v17,-1,36,7,42,-12v-32,7,-36,-39,-11,-40v29,14,63,-25,73,-30v52,-25,72,-44,142,-44v23,0,21,41,-1,39v-35,-3,-61,9,-102,31v2,2,5,4,8,4v18,-6,101,-9,115,-9v7,0,55,13,31,30",w:312},"‹":{d:"64,-107v9,17,86,17,87,43v0,11,-4,16,-13,16v-36,-11,-70,-22,-109,-31v-19,-4,-18,-14,-9,-36v59,-56,93,-84,101,-84v17,0,19,20,13,29",w:159},"›":{d:"41,-181v26,27,112,44,70,91r-82,60v-20,3,-25,-23,-13,-32r70,-51r-66,-46v-5,-6,-4,-28,5,-29v4,2,9,4,16,7",w:137},"":{d:"74,-74v-6,-24,-70,8,-68,-27v0,-6,6,-20,20,-18v44,6,45,-9,42,-49v7,-40,26,-114,90,-104v48,-2,63,-1,90,30v11,25,4,14,2,44v-7,17,-54,9,-49,-7r8,-21v-5,-13,-22,-9,-43,-11v-56,-6,-63,45,-67,92v-2,21,5,23,22,22v37,-1,80,-9,113,-1v13,31,-9,82,-22,106v-13,10,-26,-6,-22,-25r11,-46v0,-3,-2,-6,-6,-6v-19,0,-47,3,-83,9v-6,1,-9,4,-8,11r12,59v-1,9,-11,30,-23,18v-18,-18,-15,-59,-19,-76",w:272},"":{d:"43,-61v-21,4,-36,2,-39,-15v-4,-35,41,-8,34,-47v4,-59,12,-99,46,-124v11,-42,157,-47,149,13v1,7,-7,15,-13,15v-18,-7,-19,-26,-47,-23v-34,3,-65,6,-79,37v-12,27,-22,52,-21,91v13,9,31,-11,45,-4v32,-15,50,-6,94,-13v12,-30,19,-79,36,-133v1,-5,5,-8,12,-8v44,18,-18,106,-12,144v-9,22,-1,73,-16,104v2,28,-23,28,-37,16v1,-26,9,-48,11,-75v0,-6,-3,-9,-9,-9v-43,0,-83,8,-119,24v8,40,17,33,-7,56v-20,-9,-21,-19,-28,-49",w:283},"‡":{d:"102,-284v16,2,42,-2,33,18v-7,15,-42,1,-38,30v3,3,31,1,30,11v4,15,-29,19,-36,24v-2,18,-4,24,-16,29r-25,-26v-25,7,-53,3,-42,-25v4,-10,70,0,51,-22v-17,4,-41,12,-39,-15v-5,-16,39,-18,44,-20v4,-2,7,-10,10,-24v19,-3,23,6,28,20",w:145},"∙":{d:"57,-77v6,18,-7,21,-19,23v-34,6,-25,-40,-9,-43v18,-3,29,8,28,20",w:67},"‚":{d:"25,63v-26,21,-48,-2,-22,-24v14,-12,35,-40,35,-69v3,-2,3,-11,12,-9v35,17,5,88,-25,102",w:97},"„":{d:"25,63v-26,21,-48,-2,-22,-24v11,-9,36,-41,35,-69v3,-2,4,-12,12,-9v36,14,5,89,-25,102xm84,64v-24,20,-45,-1,-21,-24v21,-20,32,-35,35,-69v3,-2,3,-11,12,-9v36,17,9,86,-26,102",w:135},"‰":{d:"398,-131v58,-1,87,13,72,65v-1,30,-66,63,-99,65v-56,3,-99,-58,-62,-102v2,2,5,2,8,2v20,-16,51,-17,81,-30xm202,-279v33,0,94,-24,95,18v-7,31,-33,27,-54,55v-36,32,-71,74,-112,99v-18,18,-40,34,-51,58v-19,14,-25,37,-56,40v-17,2,-25,-29,-10,-40v15,-11,40,-37,52,-52r87,-72v-51,13,-100,6,-116,-27v1,-5,-6,-30,-9,-36v-3,-5,22,-41,27,-39v29,2,16,34,5,49v0,15,14,23,42,23v42,0,59,-31,28,-38v-17,-4,-53,3,-50,-23v0,-7,1,-12,4,-16v16,-9,36,4,49,5v0,0,23,-4,69,-4xm222,-118v33,-2,55,18,50,57v-29,36,-48,45,-96,50v-27,-5,-56,-17,-58,-51v13,-37,64,-43,104,-56xm335,-61v13,44,101,7,108,-31v-11,-3,-20,-4,-30,-4v-18,-1,-82,18,-78,35xm225,-244v-18,0,-29,-1,-46,3v7,15,6,28,0,43v15,-14,34,-30,46,-46xm164,-53v26,5,59,-10,76,-26v-17,-16,-49,2,-67,14v1,8,-8,6,-9,12",w:485},"Â":{d:"161,-217v20,53,23,124,54,170v-2,20,-34,9,-42,0v-27,-12,-78,-18,-101,-18v-26,6,-29,51,-54,63v-18,-4,-19,-30,-3,-38v5,-9,15,-16,8,-29v1,-12,23,-9,26,-19v6,-10,11,-20,20,-27r70,-121v12,-4,16,4,22,19xm82,-91v17,3,62,7,86,13v-13,-33,-13,-80,-29,-109v-15,30,-38,63,-57,96xm202,-219v-27,-6,-40,-26,-61,-37v-21,7,-39,46,-65,23v-2,-4,-3,-10,-4,-14v19,-4,43,-32,61,-43v27,6,40,22,62,37v12,8,18,17,18,25v0,6,-3,9,-11,9"},"Ê":{d:"49,-160v1,-4,-10,-9,-15,-8v-15,-35,32,-30,57,-31r142,-8v2,1,30,7,40,10v-52,16,-133,17,-190,30v-7,9,-12,24,-15,47v26,10,102,-6,141,3v1,3,1,6,2,10v-36,18,-92,12,-149,21v-11,9,-16,41,-16,51v55,-1,111,-21,168,-13v15,-8,48,1,31,18v-53,16,-130,13,-198,29r-39,-8v-4,-19,17,-53,20,-76v-1,0,-7,-11,-9,-18v18,-7,22,-28,30,-57xm199,-211v-27,-6,-39,-26,-60,-37v-21,7,-40,47,-65,22v-2,-7,-2,-7,-4,-13v18,-5,44,-31,61,-43v27,6,41,22,62,37v12,9,18,17,18,25v0,6,-4,9,-12,9",w:252},"Á":{d:"161,-217v20,53,23,124,54,170v-2,20,-34,9,-42,0v-27,-12,-78,-18,-101,-18v-26,6,-29,51,-54,63v-18,-4,-19,-30,-3,-38v5,-9,15,-16,8,-29v1,-12,23,-9,26,-19v6,-10,11,-20,20,-27r70,-121v12,-4,16,4,22,19xm82,-91v17,3,62,7,86,13v-13,-33,-13,-80,-29,-109v-15,30,-38,63,-57,96xm84,-250v31,-5,83,-53,100,-31v0,5,-11,15,-35,28v-16,5,-51,28,-53,25v-14,1,-16,-11,-12,-22"},"Ë":{d:"49,-160v1,-4,-10,-9,-15,-8v-15,-35,32,-30,57,-31r142,-8v2,1,30,7,40,10v-52,16,-133,17,-190,30v-7,9,-12,24,-15,47v26,10,102,-6,141,3v1,3,1,6,2,10v-36,18,-92,12,-149,21v-11,9,-17,41,-17,51v55,0,112,-21,169,-13v15,-8,48,1,31,18v-53,16,-130,13,-198,29r-39,-8v-3,-21,17,-53,20,-76v-1,0,-7,-11,-9,-18v18,-7,22,-28,30,-57xm191,-236v0,8,-4,13,-12,13v-17,0,-19,-19,-16,-34v18,-1,29,1,28,21xm95,-261v7,3,29,9,28,18v0,7,-9,17,-18,17v-18,0,-26,-25,-10,-35",w:252},"È":{d:"49,-160v1,-4,-10,-9,-15,-8v-15,-35,32,-30,57,-31r142,-8v2,1,30,7,40,10v-52,16,-133,17,-190,30v-7,9,-12,24,-15,47v26,10,102,-6,141,3v1,3,1,6,2,10v-36,18,-92,12,-149,21v-11,9,-16,41,-16,51v55,-1,111,-21,168,-13v15,-8,48,1,31,18v-53,16,-130,13,-198,29r-39,-8v-4,-19,17,-53,20,-76v-1,0,-7,-11,-9,-18v18,-7,22,-28,30,-57xm184,-236v6,9,5,13,0,23v-28,-7,-62,-21,-100,-41v-3,-2,-3,-27,5,-23v34,11,60,25,95,41",w:252},"Í":{d:"26,-5v-9,-6,-9,-12,-9,-36v0,-71,7,-119,21,-144v8,-13,14,-20,19,-20v28,19,-7,89,-10,120v-2,21,-8,47,-14,76v-2,1,-2,0,-7,4xm6,-233v31,-6,83,-53,101,-31v2,11,-80,53,-89,53v-14,1,-14,-11,-12,-22",w:104},"Î":{d:"53,-9v-15,7,-16,-3,-16,-32v0,-71,7,-119,21,-144v8,-13,14,-20,19,-20v28,19,-7,89,-10,120v-2,21,-8,47,-14,76xm137,-209v-27,-6,-40,-26,-61,-37v-8,0,-9,4,-13,10v-11,13,-50,37,-56,0v18,-5,43,-32,61,-43v28,5,40,21,62,36v12,9,18,17,18,25v0,6,-4,9,-11,9",w:144},"Ï":{d:"33,-5v-9,-6,-9,-12,-9,-36v0,-71,8,-119,22,-144v8,-13,14,-20,19,-20v27,20,-11,87,-10,120r-15,76v-1,1,-4,2,-7,4xm111,-222v0,8,-4,12,-12,12v-18,0,-19,-19,-16,-33v18,-1,29,1,28,21xm15,-247v8,2,29,9,28,17v0,21,-37,24,-36,1v0,-7,2,-13,8,-18",w:110},"Ì":{d:"33,-5v-9,-6,-9,-12,-9,-36v0,-71,8,-119,22,-144v8,-13,14,-20,19,-20v27,20,-11,87,-10,120r-15,76v-1,1,-4,2,-7,4xm72,-247v7,6,55,15,36,40v-28,-7,-61,-21,-99,-41v-3,-2,-3,-27,5,-23v18,3,41,17,58,24",w:111},"Ó":{d:"62,-184v78,-31,249,-50,238,74v-6,65,-102,105,-179,115v-77,-7,-152,-71,-101,-149v2,-5,24,-33,42,-40xm279,-120v14,-38,-47,-64,-85,-61v-20,-9,-41,7,-62,0v-11,7,-54,12,-66,24v0,20,-51,35,-38,66v-1,43,50,67,96,67v44,0,162,-55,155,-96xm142,-250v27,-11,47,-32,59,-14v2,11,-80,53,-89,53v-13,1,-15,-11,-12,-21v10,-5,24,-11,42,-18",w:273},"Ô":{d:"62,-184v78,-31,249,-50,238,74v-6,65,-102,105,-179,115v-77,-7,-152,-71,-101,-149v2,-5,24,-33,42,-40xm279,-120v14,-38,-47,-64,-85,-61v-20,-9,-41,7,-62,0v-11,7,-54,12,-66,24v0,20,-51,35,-38,66v-1,43,50,67,96,67v44,0,162,-55,155,-96xm157,-282v17,18,52,34,54,63v-24,12,-52,-36,-53,-29r-42,34v-23,-4,-6,-31,5,-34v1,1,27,-37,36,-34",w:273},"":{d:"231,-188v31,-74,91,-99,188,-116v28,1,6,39,1,51v-20,52,-100,91,-148,126v2,4,6,7,12,10v42,-42,181,-41,166,46v-1,8,-19,8,-28,5v-43,1,-168,42,-106,86v15,16,33,28,61,39v0,10,0,17,-6,22v-8,8,-35,26,-78,51v-52,7,-128,22,-154,-17v-23,-35,-99,-35,-117,-77v-29,-68,25,-149,75,-175v44,-23,89,5,135,13v14,-26,2,-39,-1,-64",w:461},"Ò":{d:"62,-184v78,-31,249,-50,238,74v-6,65,-102,105,-179,115v-77,-7,-152,-71,-101,-149v2,-5,24,-33,42,-40xm279,-120v14,-38,-47,-64,-85,-61v-20,-9,-41,7,-62,0v-11,7,-54,12,-66,24v0,20,-51,35,-38,66v-1,43,50,67,96,67v44,0,162,-55,155,-96xm161,-262v14,10,52,13,37,41v-28,-7,-62,-21,-100,-41v-3,-3,-3,-26,5,-24v16,5,42,17,58,24",w:273},"Ú":{d:"281,-202v6,67,-30,121,-71,152v-3,14,-47,26,-60,39v-41,20,-110,1,-125,-26v-24,-44,-28,-84,-8,-127v12,-26,23,-38,37,-22v-2,2,-3,5,-3,10v-34,26,-30,116,5,134v22,32,86,-1,109,-8v38,-28,104,-64,97,-149v2,-10,7,-8,19,-3xm194,-265v3,-1,11,4,11,6v3,12,-81,52,-89,54v-14,0,-13,-9,-12,-22",w:262},"Û":{d:"281,-202v6,67,-30,121,-71,152v-3,14,-47,26,-60,39v-41,20,-110,1,-125,-26v-24,-44,-28,-84,-8,-127v12,-26,23,-38,37,-22v-2,2,-3,5,-3,10v-34,26,-30,116,5,134v22,32,86,-1,109,-8v38,-28,104,-64,97,-149v2,-10,7,-8,19,-3xm150,-266v24,11,58,27,73,46v0,5,-3,6,-10,6v-28,2,-61,-30,-63,-25v-10,0,-57,40,-69,23v3,-10,-8,-15,8,-19v17,-1,34,-29,61,-31",w:262},"Ù":{d:"281,-202v6,67,-30,121,-71,152v-3,14,-47,26,-60,39v-41,20,-110,1,-125,-26v-24,-44,-28,-84,-8,-127v12,-26,23,-38,37,-22v-2,2,-3,5,-3,10v-34,26,-30,116,5,134v22,32,86,-1,109,-8v38,-28,104,-64,97,-149v2,-10,7,-8,19,-3xm151,-243v14,10,54,14,37,41v-28,-7,-61,-22,-99,-42v-3,-2,-4,-25,4,-23v16,5,42,17,58,24",w:262},"ı":{d:"43,-103v21,4,16,56,11,100v-7,2,-11,1,-20,-5v0,-7,-13,-18,-11,-25v4,-23,-3,-68,20,-70",w:80},"ˆ":{d:"144,-220v-29,0,-41,-27,-63,-39v-8,0,-11,5,-15,11v-17,12,-32,31,-54,13v-2,-5,-3,-9,-4,-14v20,-5,45,-33,64,-45v28,6,43,23,65,38v12,9,19,19,19,27v0,6,-4,9,-12,9",w:165},"˜":{d:"47,-300v26,-21,57,19,72,23v4,0,16,-5,36,-14v24,-10,22,-16,32,-13v3,12,-7,11,-7,23v-27,21,-48,32,-62,32v-3,2,-52,-27,-51,-31v-12,-2,-34,40,-54,33v-4,-13,-8,-18,1,-24v5,-7,16,-15,33,-29",w:186},"¯":{d:"63,-295v28,-7,73,10,105,7v11,1,6,8,5,19v-37,21,-72,11,-136,11v-23,0,-31,-14,-27,-36v12,-15,40,0,53,-1",w:183},"˘":{d:"65,-269v20,-11,45,-31,74,-36v20,30,-42,40,-59,66v-5,6,-11,8,-18,8v-8,-3,-45,-32,-51,-54v5,-24,14,-13,34,1",w:158},"˙":{d:"23,-302v15,-13,32,1,32,18v1,22,-36,29,-39,4v0,0,3,-7,7,-22",w:70},"˚":{d:"23,-225v-43,-24,-11,-85,41,-78v16,2,31,4,46,17v32,54,-41,86,-87,61xm33,-257v2,20,57,11,57,-6v0,-6,-11,-9,-33,-12v-14,-2,-24,13,-24,18",w:123},"¸":{d:"74,16v32,2,49,14,55,36v-3,7,-14,31,-29,33v-28,4,-57,11,-88,14v-19,-6,-13,-31,8,-33v20,-1,59,-5,73,-14v-17,-14,-68,8,-53,-37v9,-10,2,-28,24,-30v8,8,13,17,10,31",w:129},"˝":{d:"91,-249v15,-11,38,-53,57,-29v0,9,0,14,-3,23v-2,3,-20,22,-54,55v-5,5,-10,8,-16,8v-17,2,-6,-22,-7,-31v-1,0,-2,0,-4,1v-17,21,-29,31,-50,27v-5,-18,-3,-15,3,-27v23,-27,40,-46,48,-59v7,-12,31,3,29,9v-1,14,-3,24,-13,31v4,4,9,-1,10,-8",w:151},"˛":{d:"82,-5v-8,12,-16,55,-21,75v0,4,2,7,7,7v6,0,22,-7,50,-20v8,0,12,7,12,20v-2,22,-6,14,-27,30v-15,12,-26,16,-30,16v-47,-8,-59,-14,-56,-75v8,-27,12,-54,25,-77v19,-21,35,15,40,24",w:138},"ˇ":{d:"39,-286v33,46,63,-4,96,-16v6,0,9,6,9,19v0,24,-49,46,-77,46v-32,0,-52,-28,-59,-48v0,-25,23,-17,31,-1",w:153},"\r":{w:179}}}),function(){"use strict"; -function AssertException(message){this.message=message}function assert(exp,message){if(!exp)throw new AssertException(message)}function getCenterX(box){return box.x+box.width/2}function getCenterY(box){return box.y+box.height/2}var DIAGRAM_MARGIN=10,ACTOR_MARGIN=10,ACTOR_PADDING=10,SIGNAL_MARGIN=5,SIGNAL_PADDING=5,NOTE_MARGIN=10,NOTE_PADDING=5,NOTE_OVERLAP=15,TITLE_MARGIN=0,TITLE_PADDING=5,SELF_SIGNAL_WIDTH=20,PLACEMENT=Diagram.PLACEMENT,LINETYPE=Diagram.LINETYPE,ARROWTYPE=Diagram.ARROWTYPE,LINE={stroke:"#000","stroke-width":2},RECT={fill:"#fff"};AssertException.prototype.toString=function(){return"AssertException: "+this.message},String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")}),Raphael.fn.line=function(x1,y1,x2,y2){return assert(_.all([x1,x2,y1,y2],_.isFinite),"x1,x2,y1,y2 must be numeric"),this.path("M{0},{1} L{2},{3}",x1,y1,x2,y2)},Raphael.fn.wobble=function(x1,y1,x2,y2){assert(_.all([x1,x2,y1,y2],_.isFinite),"x1,x2,y1,y2 must be numeric");var wobble=Math.sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1))/25,r1=Math.random(),r2=Math.random(),xfactor=Math.random()>.5?wobble:-wobble,yfactor=Math.random()>.5?wobble:-wobble,p1={x:(x2-x1)*r1+x1+xfactor,y:(y2-y1)*r1+y1+yfactor},p2={x:(x2-x1)*r2+x1-xfactor,y:(y2-y1)*r2+y1-yfactor};return"C"+p1.x+","+p1.y+" "+p2.x+","+p2.y+" "+x2+","+y2},Raphael.fn.text_bbox=function(text,font){var p;font._obj?p=this.print_center(0,0,text,font._obj,font["font-size"]):(p=this.text(0,0,text),p.attr(font));var bb=p.getBBox();return p.remove(),bb},Raphael.fn.handRect=function(x,y,w,h){return assert(_.all([x,y,w,h],_.isFinite),"x, y, w, h must be numeric"),this.path("M"+x+","+y+this.wobble(x,y,x+w,y)+this.wobble(x+w,y,x+w,y+h)+this.wobble(x+w,y+h,x,y+h)+this.wobble(x,y+h,x,y)).attr(RECT)},Raphael.fn.handLine=function(x1,y1,x2,y2){return assert(_.all([x1,x2,y1,y2],_.isFinite),"x1,x2,y1,y2 must be numeric"),this.path("M"+x1+","+y1+this.wobble(x1,y1,x2,y2))},Raphael.fn.print_center=function(x,y,string,font,size,letter_spacing){var path=this.print(x,y,string,font,size,"baseline",letter_spacing),bb=path.getBBox(),dx=x-bb.x-bb.width/2,dy=y-bb.y-bb.height/2,m=new Raphael.matrix;return m.translate(dx,dy),path.attr("path",Raphael.mapPath(path.attr("path"),m))};var BaseTheme=function(diagram){this.init(diagram)};_.extend(BaseTheme.prototype,{init:function(diagram){this.diagram=diagram,this._paper=void 0,this._font=void 0,this._title=void 0,this._actors_height=0,this._signals_height=0;var a=this.arrow_types={};a[ARROWTYPE.FILLED]="block",a[ARROWTYPE.OPEN]="open";var l=this.line_types={};l[LINETYPE.SOLID]="",l[LINETYPE.DOTTED]="-"},init_paper:function(container){this._paper=new Raphael(container,320,200)},init_font:function(){},draw_line:function(x1,y1,x2,y2){return this._paper.line(x1,y1,x2,y2)},draw_rect:function(x,y,w,h){return this._paper.rect(x,y,w,h)},draw:function(container){var diagram=this.diagram;this.init_paper(container),this.init_font(),this.layout();var title_height=this._title?this._title.height:0;this._paper.setStart(),this._paper.setSize(diagram.width,diagram.height);var y=DIAGRAM_MARGIN+title_height;this.draw_title(),this.draw_actors(y),this.draw_signals(y+this._actors_height),this._paper.setFinish()},layout:function(){function actor_ensure_distance(a,b,d){assert(b>a,"a must be less than or equal to b"),0>a?(b=actors[b],b.x=Math.max(d-b.width/2,b.x)):b>=actors.length?(a=actors[a],a.padding_right=Math.max(d,a.padding_right)):(a=actors[a],a.distances[b]=Math.max(d,a.distances[b]?a.distances[b]:0))}var diagram=this.diagram,paper=this._paper,font=this._font,actors=diagram.actors,signals=diagram.signals;if(diagram.width=0,diagram.height=0,diagram.title){var title=this._title={},bb=paper.text_bbox(diagram.title,font);title.text_bb=bb,title.message=diagram.title,title.width=bb.width+2*(TITLE_PADDING+TITLE_MARGIN),title.height=bb.height+2*(TITLE_PADDING+TITLE_MARGIN),title.x=DIAGRAM_MARGIN,title.y=DIAGRAM_MARGIN,diagram.width+=title.width,diagram.height+=title.height}_.each(actors,function(a){var bb=paper.text_bbox(a.name,font);a.text_bb=bb,a.x=0,a.y=0,a.width=bb.width+2*(ACTOR_PADDING+ACTOR_MARGIN),a.height=bb.height+2*(ACTOR_PADDING+ACTOR_MARGIN),a.distances=[],a.padding_right=0,this._actors_height=Math.max(a.height,this._actors_height)},this),_.each(signals,function(s){var a,b,bb=paper.text_bbox(s.message,font);s.text_bb=bb,s.width=bb.width,s.height=bb.height;var extra_width=0;if("Signal"==s.type)s.width+=2*(SIGNAL_MARGIN+SIGNAL_PADDING),s.height+=2*(SIGNAL_MARGIN+SIGNAL_PADDING),s.isSelf()?(a=s.actorA.index,b=a+1,s.width+=SELF_SIGNAL_WIDTH):(a=Math.min(s.actorA.index,s.actorB.index),b=Math.max(s.actorA.index,s.actorB.index));else{if("Note"!=s.type)throw new Error("Unhandled signal type:"+s.type);if(s.width+=2*(NOTE_MARGIN+NOTE_PADDING),s.height+=2*(NOTE_MARGIN+NOTE_PADDING),extra_width=2*ACTOR_MARGIN,s.placement==PLACEMENT.LEFTOF)b=s.actor.index,a=b-1;else if(s.placement==PLACEMENT.RIGHTOF)a=s.actor.index,b=a+1;else if(s.placement==PLACEMENT.OVER&&s.hasManyActors())a=Math.min(s.actor[0].index,s.actor[1].index),b=Math.max(s.actor[0].index,s.actor[1].index),extra_width=-(2*NOTE_PADDING+2*NOTE_OVERLAP);else if(s.placement==PLACEMENT.OVER)return a=s.actor.index,actor_ensure_distance(a-1,a,s.width/2),actor_ensure_distance(a,a+1,s.width/2),this._signals_height+=s.height,void 0}actor_ensure_distance(a,b,s.width+extra_width),this._signals_height+=s.height},this);var actors_x=0;return _.each(actors,function(a){a.x=Math.max(actors_x,a.x),_.each(a.distances,function(distance,b){"undefined"!=typeof distance&&(b=actors[b],distance=Math.max(distance,a.width/2,b.width/2),b.x=Math.max(b.x,a.x+a.width/2+distance-b.width/2))}),actors_x=a.x+a.width+a.padding_right},this),diagram.width=Math.max(actors_x,diagram.width),diagram.width+=2*DIAGRAM_MARGIN,diagram.height+=2*DIAGRAM_MARGIN+2*this._actors_height+this._signals_height,this},draw_title:function(){var title=this._title;title&&this.draw_text_box(title,title.message,TITLE_MARGIN,TITLE_PADDING,this._font)},draw_actors:function(offsetY){var y=offsetY;_.each(this.diagram.actors,function(a){this.draw_actor(a,y,this._actors_height),this.draw_actor(a,y+this._actors_height+this._signals_height,this._actors_height);var aX=getCenterX(a),line=this.draw_line(aX,y+this._actors_height-ACTOR_MARGIN,aX,y+this._actors_height+ACTOR_MARGIN+this._signals_height);line.attr(LINE)},this)},draw_actor:function(actor,offsetY,height){actor.y=offsetY,actor.height=height,this.draw_text_box(actor,actor.name,ACTOR_MARGIN,ACTOR_PADDING,this._font)},draw_signals:function(offsetY){var y=offsetY;_.each(this.diagram.signals,function(s){"Signal"==s.type?s.isSelf()?this.draw_self_signal(s,y):this.draw_signal(s,y):"Note"==s.type&&this.draw_note(s,y),y+=s.height},this)},draw_self_signal:function(signal,offsetY){assert(signal.isSelf(),"signal must be a self signal");var text_bb=signal.text_bb,aX=getCenterX(signal.actorA),x=aX+SELF_SIGNAL_WIDTH+SIGNAL_PADDING-text_bb.x,y=offsetY+signal.height/2;this.draw_text(x,y,signal.message,this._font);var line,attr=_.extend({},LINE,{"stroke-dasharray":this.line_types[signal.linetype]}),y1=offsetY+SIGNAL_MARGIN,y2=y1+signal.height-SIGNAL_MARGIN;line=this.draw_line(aX,y1,aX+SELF_SIGNAL_WIDTH,y1),line.attr(attr),line=this.draw_line(aX+SELF_SIGNAL_WIDTH,y1,aX+SELF_SIGNAL_WIDTH,y2),line.attr(attr),line=this.draw_line(aX+SELF_SIGNAL_WIDTH,y2,aX,y2),attr["arrow-end"]=this.arrow_types[signal.arrowtype]+"-wide-long",line.attr(attr)},draw_signal:function(signal,offsetY){var aX=getCenterX(signal.actorA),bX=getCenterX(signal.actorB),x=(bX-aX)/2+aX,y=offsetY+SIGNAL_MARGIN+2*SIGNAL_PADDING;this.draw_text(x,y,signal.message,this._font),y=offsetY+signal.height-SIGNAL_MARGIN-SIGNAL_PADDING;var line=this.draw_line(aX,y,bX,y);line.attr(LINE),line.attr({"arrow-end":this.arrow_types[signal.arrowtype]+"-wide-long","stroke-dasharray":this.line_types[signal.linetype]})},draw_note:function(note,offsetY){note.y=offsetY;var actorA=note.hasManyActors()?note.actor[0]:note.actor,aX=getCenterX(actorA);switch(note.placement){case PLACEMENT.RIGHTOF:note.x=aX+ACTOR_MARGIN;break;case PLACEMENT.LEFTOF:note.x=aX-ACTOR_MARGIN-note.width;break;case PLACEMENT.OVER:if(note.hasManyActors()){var bX=getCenterX(note.actor[1]),overlap=NOTE_OVERLAP+NOTE_PADDING;note.x=aX-overlap,note.width=bX+overlap-note.x}else note.x=aX-note.width/2;break;default:throw new Error("Unhandled note placement:"+note.placement)}this.draw_text_box(note,note.message,NOTE_MARGIN,NOTE_PADDING,this._font)},draw_text:function(x,y,text,font){var t,paper=this._paper,f=font||{};f._obj?t=paper.print_center(x,y,text,f._obj,f["font-size"]):(t=paper.text(x,y,text),t.attr(f));var bb=t.getBBox(),r=paper.rect(bb.x,bb.y,bb.width,bb.height);r.attr({fill:"#fff",stroke:"none"}),t.toFront()},draw_text_box:function(box,text,margin,padding,font){var x=box.x+margin,y=box.y+margin,w=box.width-2*margin,h=box.height-2*margin,rect=this.draw_rect(x,y,w,h);rect.attr(LINE),x=getCenterX(box),y=getCenterY(box),this.draw_text(x,y,text,font)}});var RaphaëlTheme=function(diagram){this.init(diagram)};_.extend(RaphaëlTheme.prototype,BaseTheme.prototype,{init_font:function(){this._font={"font-size":16,"font-family":"Andale Mono, monospace"}}});var HandRaphaëlTheme=function(diagram){this.init(diagram)};_.extend(HandRaphaëlTheme.prototype,BaseTheme.prototype,{init_font:function(){this._font={"font-size":16,"font-family":"daniel"},this._font._obj=this._paper.getFont("daniel")},draw_line:function(x1,y1,x2,y2){return this._paper.handLine(x1,y1,x2,y2)},draw_rect:function(x,y,w,h){return this._paper.handRect(x,y,w,h)}});var themes={simple:RaphaëlTheme,hand:HandRaphaëlTheme};Diagram.prototype.drawSVG=function(container,options){var default_options={theme:"hand"};if(options=_.defaults(options||{},default_options),!(options.theme in themes))throw new Error("Unsupported theme: "+options.theme);var drawing=new themes[options.theme](this);drawing.draw(container)}}(); \ No newline at end of file diff --git a/src/main/resources/static/editor.md-master/lib/underscore.min.js b/src/main/resources/static/editor.md-master/lib/underscore.min.js deleted file mode 100644 index 447e19b..0000000 --- a/src/main/resources/static/editor.md-master/lib/underscore.min.js +++ /dev/null @@ -1,5 +0,0 @@ -// Underscore.js 1.8.2 -// http://underscorejs.org -// (c) 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors -// Underscore may be freely distributed under the MIT license. -(function(){function n(n){function t(t,r,e,u,i,o){for(;i>=0&&o>i;i+=n){var a=u?u[i]:i;e=r(e,t[a],a,t)}return e}return function(r,e,u,i){e=d(e,i,4);var o=!w(r)&&m.keys(r),a=(o||r).length,c=n>0?0:a-1;return arguments.length<3&&(u=r[o?o[c]:c],c+=n),t(r,e,u,o,c,a)}}function t(n){return function(t,r,e){r=b(r,e);for(var u=null!=t&&t.length,i=n>0?0:u-1;i>=0&&u>i;i+=n)if(r(t[i],i,t))return i;return-1}}function r(n,t){var r=S.length,e=n.constructor,u=m.isFunction(e)&&e.prototype||o,i="constructor";for(m.has(n,i)&&!m.contains(t,i)&&t.push(i);r--;)i=S[r],i in n&&n[i]!==u[i]&&!m.contains(t,i)&&t.push(i)}var e=this,u=e._,i=Array.prototype,o=Object.prototype,a=Function.prototype,c=i.push,l=i.slice,f=o.toString,s=o.hasOwnProperty,p=Array.isArray,h=Object.keys,v=a.bind,g=Object.create,y=function(){},m=function(n){return n instanceof m?n:this instanceof m?void(this._wrapped=n):new m(n)};"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=m),exports._=m):e._=m,m.VERSION="1.8.2";var d=function(n,t,r){if(t===void 0)return n;switch(null==r?3:r){case 1:return function(r){return n.call(t,r)};case 2:return function(r,e){return n.call(t,r,e)};case 3:return function(r,e,u){return n.call(t,r,e,u)};case 4:return function(r,e,u,i){return n.call(t,r,e,u,i)}}return function(){return n.apply(t,arguments)}},b=function(n,t,r){return null==n?m.identity:m.isFunction(n)?d(n,t,r):m.isObject(n)?m.matcher(n):m.property(n)};m.iteratee=function(n,t){return b(n,t,1/0)};var x=function(n,t){return function(r){var e=arguments.length;if(2>e||null==r)return r;for(var u=1;e>u;u++)for(var i=arguments[u],o=n(i),a=o.length,c=0;a>c;c++){var l=o[c];t&&r[l]!==void 0||(r[l]=i[l])}return r}},_=function(n){if(!m.isObject(n))return{};if(g)return g(n);y.prototype=n;var t=new y;return y.prototype=null,t},j=Math.pow(2,53)-1,w=function(n){var t=n&&n.length;return"number"==typeof t&&t>=0&&j>=t};m.each=m.forEach=function(n,t,r){t=d(t,r);var e,u;if(w(n))for(e=0,u=n.length;u>e;e++)t(n[e],e,n);else{var i=m.keys(n);for(e=0,u=i.length;u>e;e++)t(n[i[e]],i[e],n)}return n},m.map=m.collect=function(n,t,r){t=b(t,r);for(var e=!w(n)&&m.keys(n),u=(e||n).length,i=Array(u),o=0;u>o;o++){var a=e?e[o]:o;i[o]=t(n[a],a,n)}return i},m.reduce=m.foldl=m.inject=n(1),m.reduceRight=m.foldr=n(-1),m.find=m.detect=function(n,t,r){var e;return e=w(n)?m.findIndex(n,t,r):m.findKey(n,t,r),e!==void 0&&e!==-1?n[e]:void 0},m.filter=m.select=function(n,t,r){var e=[];return t=b(t,r),m.each(n,function(n,r,u){t(n,r,u)&&e.push(n)}),e},m.reject=function(n,t,r){return m.filter(n,m.negate(b(t)),r)},m.every=m.all=function(n,t,r){t=b(t,r);for(var e=!w(n)&&m.keys(n),u=(e||n).length,i=0;u>i;i++){var o=e?e[i]:i;if(!t(n[o],o,n))return!1}return!0},m.some=m.any=function(n,t,r){t=b(t,r);for(var e=!w(n)&&m.keys(n),u=(e||n).length,i=0;u>i;i++){var o=e?e[i]:i;if(t(n[o],o,n))return!0}return!1},m.contains=m.includes=m.include=function(n,t,r){return w(n)||(n=m.values(n)),m.indexOf(n,t,"number"==typeof r&&r)>=0},m.invoke=function(n,t){var r=l.call(arguments,2),e=m.isFunction(t);return m.map(n,function(n){var u=e?t:n[t];return null==u?u:u.apply(n,r)})},m.pluck=function(n,t){return m.map(n,m.property(t))},m.where=function(n,t){return m.filter(n,m.matcher(t))},m.findWhere=function(n,t){return m.find(n,m.matcher(t))},m.max=function(n,t,r){var e,u,i=-1/0,o=-1/0;if(null==t&&null!=n){n=w(n)?n:m.values(n);for(var a=0,c=n.length;c>a;a++)e=n[a],e>i&&(i=e)}else t=b(t,r),m.each(n,function(n,r,e){u=t(n,r,e),(u>o||u===-1/0&&i===-1/0)&&(i=n,o=u)});return i},m.min=function(n,t,r){var e,u,i=1/0,o=1/0;if(null==t&&null!=n){n=w(n)?n:m.values(n);for(var a=0,c=n.length;c>a;a++)e=n[a],i>e&&(i=e)}else t=b(t,r),m.each(n,function(n,r,e){u=t(n,r,e),(o>u||1/0===u&&1/0===i)&&(i=n,o=u)});return i},m.shuffle=function(n){for(var t,r=w(n)?n:m.values(n),e=r.length,u=Array(e),i=0;e>i;i++)t=m.random(0,i),t!==i&&(u[i]=u[t]),u[t]=r[i];return u},m.sample=function(n,t,r){return null==t||r?(w(n)||(n=m.values(n)),n[m.random(n.length-1)]):m.shuffle(n).slice(0,Math.max(0,t))},m.sortBy=function(n,t,r){return t=b(t,r),m.pluck(m.map(n,function(n,r,e){return{value:n,index:r,criteria:t(n,r,e)}}).sort(function(n,t){var r=n.criteria,e=t.criteria;if(r!==e){if(r>e||r===void 0)return 1;if(e>r||e===void 0)return-1}return n.index-t.index}),"value")};var A=function(n){return function(t,r,e){var u={};return r=b(r,e),m.each(t,function(e,i){var o=r(e,i,t);n(u,e,o)}),u}};m.groupBy=A(function(n,t,r){m.has(n,r)?n[r].push(t):n[r]=[t]}),m.indexBy=A(function(n,t,r){n[r]=t}),m.countBy=A(function(n,t,r){m.has(n,r)?n[r]++:n[r]=1}),m.toArray=function(n){return n?m.isArray(n)?l.call(n):w(n)?m.map(n,m.identity):m.values(n):[]},m.size=function(n){return null==n?0:w(n)?n.length:m.keys(n).length},m.partition=function(n,t,r){t=b(t,r);var e=[],u=[];return m.each(n,function(n,r,i){(t(n,r,i)?e:u).push(n)}),[e,u]},m.first=m.head=m.take=function(n,t,r){return null==n?void 0:null==t||r?n[0]:m.initial(n,n.length-t)},m.initial=function(n,t,r){return l.call(n,0,Math.max(0,n.length-(null==t||r?1:t)))},m.last=function(n,t,r){return null==n?void 0:null==t||r?n[n.length-1]:m.rest(n,Math.max(0,n.length-t))},m.rest=m.tail=m.drop=function(n,t,r){return l.call(n,null==t||r?1:t)},m.compact=function(n){return m.filter(n,m.identity)};var k=function(n,t,r,e){for(var u=[],i=0,o=e||0,a=n&&n.length;a>o;o++){var c=n[o];if(w(c)&&(m.isArray(c)||m.isArguments(c))){t||(c=k(c,t,r));var l=0,f=c.length;for(u.length+=f;f>l;)u[i++]=c[l++]}else r||(u[i++]=c)}return u};m.flatten=function(n,t){return k(n,t,!1)},m.without=function(n){return m.difference(n,l.call(arguments,1))},m.uniq=m.unique=function(n,t,r,e){if(null==n)return[];m.isBoolean(t)||(e=r,r=t,t=!1),null!=r&&(r=b(r,e));for(var u=[],i=[],o=0,a=n.length;a>o;o++){var c=n[o],l=r?r(c,o,n):c;t?(o&&i===l||u.push(c),i=l):r?m.contains(i,l)||(i.push(l),u.push(c)):m.contains(u,c)||u.push(c)}return u},m.union=function(){return m.uniq(k(arguments,!0,!0))},m.intersection=function(n){if(null==n)return[];for(var t=[],r=arguments.length,e=0,u=n.length;u>e;e++){var i=n[e];if(!m.contains(t,i)){for(var o=1;r>o&&m.contains(arguments[o],i);o++);o===r&&t.push(i)}}return t},m.difference=function(n){var t=k(arguments,!0,!0,1);return m.filter(n,function(n){return!m.contains(t,n)})},m.zip=function(){return m.unzip(arguments)},m.unzip=function(n){for(var t=n&&m.max(n,"length").length||0,r=Array(t),e=0;t>e;e++)r[e]=m.pluck(n,e);return r},m.object=function(n,t){for(var r={},e=0,u=n&&n.length;u>e;e++)t?r[n[e]]=t[e]:r[n[e][0]]=n[e][1];return r},m.indexOf=function(n,t,r){var e=0,u=n&&n.length;if("number"==typeof r)e=0>r?Math.max(0,u+r):r;else if(r&&u)return e=m.sortedIndex(n,t),n[e]===t?e:-1;if(t!==t)return m.findIndex(l.call(n,e),m.isNaN);for(;u>e;e++)if(n[e]===t)return e;return-1},m.lastIndexOf=function(n,t,r){var e=n?n.length:0;if("number"==typeof r&&(e=0>r?e+r+1:Math.min(e,r+1)),t!==t)return m.findLastIndex(l.call(n,0,e),m.isNaN);for(;--e>=0;)if(n[e]===t)return e;return-1},m.findIndex=t(1),m.findLastIndex=t(-1),m.sortedIndex=function(n,t,r,e){r=b(r,e,1);for(var u=r(t),i=0,o=n.length;o>i;){var a=Math.floor((i+o)/2);r(n[a])i;i++,n+=r)u[i]=n;return u};var O=function(n,t,r,e,u){if(!(e instanceof t))return n.apply(r,u);var i=_(n.prototype),o=n.apply(i,u);return m.isObject(o)?o:i};m.bind=function(n,t){if(v&&n.bind===v)return v.apply(n,l.call(arguments,1));if(!m.isFunction(n))throw new TypeError("Bind must be called on a function");var r=l.call(arguments,2),e=function(){return O(n,e,t,this,r.concat(l.call(arguments)))};return e},m.partial=function(n){var t=l.call(arguments,1),r=function(){for(var e=0,u=t.length,i=Array(u),o=0;u>o;o++)i[o]=t[o]===m?arguments[e++]:t[o];for(;e=e)throw new Error("bindAll must be passed function names");for(t=1;e>t;t++)r=arguments[t],n[r]=m.bind(n[r],n);return n},m.memoize=function(n,t){var r=function(e){var u=r.cache,i=""+(t?t.apply(this,arguments):e);return m.has(u,i)||(u[i]=n.apply(this,arguments)),u[i]};return r.cache={},r},m.delay=function(n,t){var r=l.call(arguments,2);return setTimeout(function(){return n.apply(null,r)},t)},m.defer=m.partial(m.delay,m,1),m.throttle=function(n,t,r){var e,u,i,o=null,a=0;r||(r={});var c=function(){a=r.leading===!1?0:m.now(),o=null,i=n.apply(e,u),o||(e=u=null)};return function(){var l=m.now();a||r.leading!==!1||(a=l);var f=t-(l-a);return e=this,u=arguments,0>=f||f>t?(o&&(clearTimeout(o),o=null),a=l,i=n.apply(e,u),o||(e=u=null)):o||r.trailing===!1||(o=setTimeout(c,f)),i}},m.debounce=function(n,t,r){var e,u,i,o,a,c=function(){var l=m.now()-o;t>l&&l>=0?e=setTimeout(c,t-l):(e=null,r||(a=n.apply(i,u),e||(i=u=null)))};return function(){i=this,u=arguments,o=m.now();var l=r&&!e;return e||(e=setTimeout(c,t)),l&&(a=n.apply(i,u),i=u=null),a}},m.wrap=function(n,t){return m.partial(t,n)},m.negate=function(n){return function(){return!n.apply(this,arguments)}},m.compose=function(){var n=arguments,t=n.length-1;return function(){for(var r=t,e=n[t].apply(this,arguments);r--;)e=n[r].call(this,e);return e}},m.after=function(n,t){return function(){return--n<1?t.apply(this,arguments):void 0}},m.before=function(n,t){var r;return function(){return--n>0&&(r=t.apply(this,arguments)),1>=n&&(t=null),r}},m.once=m.partial(m.before,2);var F=!{toString:null}.propertyIsEnumerable("toString"),S=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"];m.keys=function(n){if(!m.isObject(n))return[];if(h)return h(n);var t=[];for(var e in n)m.has(n,e)&&t.push(e);return F&&r(n,t),t},m.allKeys=function(n){if(!m.isObject(n))return[];var t=[];for(var e in n)t.push(e);return F&&r(n,t),t},m.values=function(n){for(var t=m.keys(n),r=t.length,e=Array(r),u=0;r>u;u++)e[u]=n[t[u]];return e},m.mapObject=function(n,t,r){t=b(t,r);for(var e,u=m.keys(n),i=u.length,o={},a=0;i>a;a++)e=u[a],o[e]=t(n[e],e,n);return o},m.pairs=function(n){for(var t=m.keys(n),r=t.length,e=Array(r),u=0;r>u;u++)e[u]=[t[u],n[t[u]]];return e},m.invert=function(n){for(var t={},r=m.keys(n),e=0,u=r.length;u>e;e++)t[n[r[e]]]=r[e];return t},m.functions=m.methods=function(n){var t=[];for(var r in n)m.isFunction(n[r])&&t.push(r);return t.sort()},m.extend=x(m.allKeys),m.extendOwn=m.assign=x(m.keys),m.findKey=function(n,t,r){t=b(t,r);for(var e,u=m.keys(n),i=0,o=u.length;o>i;i++)if(e=u[i],t(n[e],e,n))return e},m.pick=function(n,t,r){var e,u,i={},o=n;if(null==o)return i;m.isFunction(t)?(u=m.allKeys(o),e=d(t,r)):(u=k(arguments,!1,!1,1),e=function(n,t,r){return t in r},o=Object(o));for(var a=0,c=u.length;c>a;a++){var l=u[a],f=o[l];e(f,l,o)&&(i[l]=f)}return i},m.omit=function(n,t,r){if(m.isFunction(t))t=m.negate(t);else{var e=m.map(k(arguments,!1,!1,1),String);t=function(n,t){return!m.contains(e,t)}}return m.pick(n,t,r)},m.defaults=x(m.allKeys,!0),m.clone=function(n){return m.isObject(n)?m.isArray(n)?n.slice():m.extend({},n):n},m.tap=function(n,t){return t(n),n},m.isMatch=function(n,t){var r=m.keys(t),e=r.length;if(null==n)return!e;for(var u=Object(n),i=0;e>i;i++){var o=r[i];if(t[o]!==u[o]||!(o in u))return!1}return!0};var E=function(n,t,r,e){if(n===t)return 0!==n||1/n===1/t;if(null==n||null==t)return n===t;n instanceof m&&(n=n._wrapped),t instanceof m&&(t=t._wrapped);var u=f.call(n);if(u!==f.call(t))return!1;switch(u){case"[object RegExp]":case"[object String]":return""+n==""+t;case"[object Number]":return+n!==+n?+t!==+t:0===+n?1/+n===1/t:+n===+t;case"[object Date]":case"[object Boolean]":return+n===+t}var i="[object Array]"===u;if(!i){if("object"!=typeof n||"object"!=typeof t)return!1;var o=n.constructor,a=t.constructor;if(o!==a&&!(m.isFunction(o)&&o instanceof o&&m.isFunction(a)&&a instanceof a)&&"constructor"in n&&"constructor"in t)return!1}r=r||[],e=e||[];for(var c=r.length;c--;)if(r[c]===n)return e[c]===t;if(r.push(n),e.push(t),i){if(c=n.length,c!==t.length)return!1;for(;c--;)if(!E(n[c],t[c],r,e))return!1}else{var l,s=m.keys(n);if(c=s.length,m.keys(t).length!==c)return!1;for(;c--;)if(l=s[c],!m.has(t,l)||!E(n[l],t[l],r,e))return!1}return r.pop(),e.pop(),!0};m.isEqual=function(n,t){return E(n,t)},m.isEmpty=function(n){return null==n?!0:w(n)&&(m.isArray(n)||m.isString(n)||m.isArguments(n))?0===n.length:0===m.keys(n).length},m.isElement=function(n){return!(!n||1!==n.nodeType)},m.isArray=p||function(n){return"[object Array]"===f.call(n)},m.isObject=function(n){var t=typeof n;return"function"===t||"object"===t&&!!n},m.each(["Arguments","Function","String","Number","Date","RegExp","Error"],function(n){m["is"+n]=function(t){return f.call(t)==="[object "+n+"]"}}),m.isArguments(arguments)||(m.isArguments=function(n){return m.has(n,"callee")}),"function"!=typeof/./&&"object"!=typeof Int8Array&&(m.isFunction=function(n){return"function"==typeof n||!1}),m.isFinite=function(n){return isFinite(n)&&!isNaN(parseFloat(n))},m.isNaN=function(n){return m.isNumber(n)&&n!==+n},m.isBoolean=function(n){return n===!0||n===!1||"[object Boolean]"===f.call(n)},m.isNull=function(n){return null===n},m.isUndefined=function(n){return n===void 0},m.has=function(n,t){return null!=n&&s.call(n,t)},m.noConflict=function(){return e._=u,this},m.identity=function(n){return n},m.constant=function(n){return function(){return n}},m.noop=function(){},m.property=function(n){return function(t){return null==t?void 0:t[n]}},m.propertyOf=function(n){return null==n?function(){}:function(t){return n[t]}},m.matcher=m.matches=function(n){return n=m.extendOwn({},n),function(t){return m.isMatch(t,n)}},m.times=function(n,t,r){var e=Array(Math.max(0,n));t=d(t,r,1);for(var u=0;n>u;u++)e[u]=t(u);return e},m.random=function(n,t){return null==t&&(t=n,n=0),n+Math.floor(Math.random()*(t-n+1))},m.now=Date.now||function(){return(new Date).getTime()};var M={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},N=m.invert(M),I=function(n){var t=function(t){return n[t]},r="(?:"+m.keys(n).join("|")+")",e=RegExp(r),u=RegExp(r,"g");return function(n){return n=null==n?"":""+n,e.test(n)?n.replace(u,t):n}};m.escape=I(M),m.unescape=I(N),m.result=function(n,t,r){var e=null==n?void 0:n[t];return e===void 0&&(e=r),m.isFunction(e)?e.call(n):e};var B=0;m.uniqueId=function(n){var t=++B+"";return n?n+t:t},m.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var T=/(.)^/,R={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},q=/\\|'|\r|\n|\u2028|\u2029/g,K=function(n){return"\\"+R[n]};m.template=function(n,t,r){!t&&r&&(t=r),t=m.defaults({},t,m.templateSettings);var e=RegExp([(t.escape||T).source,(t.interpolate||T).source,(t.evaluate||T).source].join("|")+"|$","g"),u=0,i="__p+='";n.replace(e,function(t,r,e,o,a){return i+=n.slice(u,a).replace(q,K),u=a+t.length,r?i+="'+\n((__t=("+r+"))==null?'':_.escape(__t))+\n'":e?i+="'+\n((__t=("+e+"))==null?'':__t)+\n'":o&&(i+="';\n"+o+"\n__p+='"),t}),i+="';\n",t.variable||(i="with(obj||{}){\n"+i+"}\n"),i="var __t,__p='',__j=Array.prototype.join,"+"print=function(){__p+=__j.call(arguments,'');};\n"+i+"return __p;\n";try{var o=new Function(t.variable||"obj","_",i)}catch(a){throw a.source=i,a}var c=function(n){return o.call(this,n,m)},l=t.variable||"obj";return c.source="function("+l+"){\n"+i+"}",c},m.chain=function(n){var t=m(n);return t._chain=!0,t};var z=function(n,t){return n._chain?m(t).chain():t};m.mixin=function(n){m.each(m.functions(n),function(t){var r=m[t]=n[t];m.prototype[t]=function(){var n=[this._wrapped];return c.apply(n,arguments),z(this,r.apply(m,n))}})},m.mixin(m),m.each(["pop","push","reverse","shift","sort","splice","unshift"],function(n){var t=i[n];m.prototype[n]=function(){var r=this._wrapped;return t.apply(r,arguments),"shift"!==n&&"splice"!==n||0!==r.length||delete r[0],z(this,r)}}),m.each(["concat","join","slice"],function(n){var t=i[n];m.prototype[n]=function(){return z(this,t.apply(this._wrapped,arguments))}}),m.prototype.value=function(){return this._wrapped},m.prototype.valueOf=m.prototype.toJSON=m.prototype.value,m.prototype.toString=function(){return""+this._wrapped},"function"==typeof define&&define.amd&&define("underscore",[],function(){return m})}).call(this); \ No newline at end of file diff --git a/src/main/resources/static/editor.md-master/plugins/code-block-dialog/code-block-dialog.js b/src/main/resources/static/editor.md-master/plugins/code-block-dialog/code-block-dialog.js deleted file mode 100644 index 4f0d370..0000000 --- a/src/main/resources/static/editor.md-master/plugins/code-block-dialog/code-block-dialog.js +++ /dev/null @@ -1,237 +0,0 @@ -/*! - * Code block dialog plugin for Editor.md - * - * @file code-block-dialog.js - * @author pandao - * @version 1.2.0 - * @updateTime 2015-03-07 - * {@link https://github.com/pandao/editor.md} - * @license MIT - */ - -(function() { - - var factory = function (exports) { - var cmEditor; - var pluginName = "code-block-dialog"; - - // for CodeBlock dialog select - var codeLanguages = exports.codeLanguages = { - asp : ["ASP", "vbscript"], - actionscript : ["ActionScript(3.0)/Flash/Flex", "clike"], - bash : ["Bash/Bat", "shell"], - css : ["CSS", "css"], - c : ["C", "clike"], - cpp : ["C++", "clike"], - csharp : ["C#", "clike"], - coffeescript : ["CoffeeScript", "coffeescript"], - d : ["D", "d"], - dart : ["Dart", "dart"], - delphi : ["Delphi/Pascal", "pascal"], - erlang : ["Erlang", "erlang"], - go : ["Golang", "go"], - groovy : ["Groovy", "groovy"], - html : ["HTML", "text/html"], - java : ["Java", "clike"], - json : ["JSON", "text/json"], - javascript : ["Javascript", "javascript"], - lua : ["Lua", "lua"], - less : ["LESS", "css"], - markdown : ["Markdown", "gfm"], - "objective-c" : ["Objective-C", "clike"], - php : ["PHP", "php"], - perl : ["Perl", "perl"], - python : ["Python", "python"], - r : ["R", "r"], - rst : ["reStructedText", "rst"], - ruby : ["Ruby", "ruby"], - sql : ["SQL", "sql"], - sass : ["SASS/SCSS", "sass"], - shell : ["Shell", "shell"], - scala : ["Scala", "clike"], - swift : ["Swift", "clike"], - vb : ["VB/VBScript", "vb"], - xml : ["XML", "text/xml"], - yaml : ["YAML", "yaml"] - }; - - exports.fn.codeBlockDialog = function() { - - var _this = this; - var cm = this.cm; - var lang = this.lang; - var editor = this.editor; - var settings = this.settings; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - var classPrefix = this.classPrefix; - var dialogName = classPrefix + pluginName, dialog; - var dialogLang = lang.dialog.codeBlock; - - cm.focus(); - - if (editor.find("." + dialogName).length > 0) - { - dialog = editor.find("." + dialogName); - dialog.find("option:first").attr("selected", "selected"); - dialog.find("textarea").val(selection); - - this.dialogShowMask(dialog); - this.dialogLockScreen(); - dialog.show(); - } - else - { - var dialogHTML = "
    " + - dialogLang.selectLabel + "" + - "
    " + - ""; - - dialog = this.createDialog({ - name : dialogName, - title : dialogLang.title, - width : 780, - height : 565, - mask : settings.dialogShowMask, - drag : settings.dialogDraggable, - content : dialogHTML, - lockScreen : settings.dialogLockScreen, - maskStyle : { - opacity : settings.dialogMaskOpacity, - backgroundColor : settings.dialogMaskBgColor - }, - buttons : { - enter : [lang.buttons.enter, function() { - var codeTexts = this.find("textarea").val(); - var langName = this.find("select").val(); - - if (langName === "") - { - alert(lang.dialog.codeBlock.unselectedLanguageAlert); - return false; - } - - if (codeTexts === "") - { - alert(lang.dialog.codeBlock.codeEmptyAlert); - return false; - } - - langName = (langName === "other") ? "" : langName; - - cm.replaceSelection(["```" + langName, codeTexts, "```"].join("\n")); - - if (langName === "") { - cm.setCursor(cursor.line, cursor.ch + 3); - } - - this.hide().lockScreen(false).hideMask(); - - return false; - }], - cancel : [lang.buttons.cancel, function() { - this.hide().lockScreen(false).hideMask(); - - return false; - }] - } - }); - } - - var langSelect = dialog.find("select"); - - if (langSelect.find("option").length === 1) - { - for (var key in codeLanguages) - { - var codeLang = codeLanguages[key]; - langSelect.append(""); - } - - langSelect.append(""); - } - - var mode = langSelect.find("option:selected").attr("mode"); - - var cmConfig = { - mode : (mode) ? mode : "text/html", - theme : settings.theme, - tabSize : 4, - autofocus : true, - autoCloseTags : true, - indentUnit : 4, - lineNumbers : true, - lineWrapping : true, - extraKeys : {"Ctrl-Q": function(cm){ cm.foldCode(cm.getCursor()); }}, - foldGutter : true, - gutters : ["CodeMirror-linenumbers", "CodeMirror-foldgutter"], - matchBrackets : true, - indentWithTabs : true, - styleActiveLine : true, - styleSelectedText : true, - autoCloseBrackets : true, - showTrailingSpace : true, - highlightSelectionMatches : true - }; - - var textarea = dialog.find("textarea"); - var cmObj = dialog.find(".CodeMirror"); - - if (dialog.find(".CodeMirror").length < 1) - { - cmEditor = exports.$CodeMirror.fromTextArea(textarea[0], cmConfig); - cmObj = dialog.find(".CodeMirror"); - - cmObj.css({ - "float" : "none", - margin : "8px 0", - border : "1px solid #ddd", - fontSize : settings.fontSize, - width : "100%", - height : "390px" - }); - - cmEditor.on("change", function(cm) { - textarea.val(cm.getValue()); - }); - } - else - { - - cmEditor.setValue(cm.getSelection()); - } - - langSelect.change(function(){ - var _mode = $(this).find("option:selected").attr("mode"); - cmEditor.setOption("mode", _mode); - }); - }; - - }; - - // CommonJS/Node.js - if (typeof require === "function" && typeof exports === "object" && typeof module === "object") - { - module.exports = factory; - } - else if (typeof define === "function") // AMD/CMD/Sea.js - { - if (define.amd) { // for Require.js - - define(["editormd"], function(editormd) { - factory(editormd); - }); - - } else { // for Sea.js - define(function(require) { - var editormd = require("./../../editormd"); - factory(editormd); - }); - } - } - else - { - factory(window.editormd); - } - -})(); diff --git a/src/main/resources/static/editor.md-master/plugins/emoji-dialog/emoji-dialog.js b/src/main/resources/static/editor.md-master/plugins/emoji-dialog/emoji-dialog.js deleted file mode 100644 index d43ef20..0000000 --- a/src/main/resources/static/editor.md-master/plugins/emoji-dialog/emoji-dialog.js +++ /dev/null @@ -1,327 +0,0 @@ -/*! - * Emoji dialog plugin for Editor.md - * - * @file emoji-dialog.js - * @author pandao - * @version 1.2.0 - * @updateTime 2015-03-08 - * {@link https://github.com/pandao/editor.md} - * @license MIT - */ - -(function() { - - var factory = function (exports) { - - var $ = jQuery; - var pluginName = "emoji-dialog"; - var emojiTabIndex = 0; - var emojiData = []; - var selecteds = []; - - var logoPrefix = "editormd-logo"; - var logos = [ - logoPrefix, - logoPrefix + "-1x", - logoPrefix + "-2x", - logoPrefix + "-3x", - logoPrefix + "-4x", - logoPrefix + "-5x", - logoPrefix + "-6x", - logoPrefix + "-7x", - logoPrefix + "-8x" - ]; - - var langs = { - "zh-cn" : { - toolbar : { - emoji : "Emoji 表情" - }, - dialog : { - emoji : { - title : "Emoji 表情" - } - } - }, - "zh-tw" : { - toolbar : { - emoji : "Emoji 表情" - }, - dialog : { - emoji : { - title : "Emoji 表情" - } - } - }, - "en" : { - toolbar : { - emoji : "Emoji" - }, - dialog : { - emoji : { - title : "Emoji" - } - } - } - }; - - exports.fn.emojiDialog = function() { - var _this = this; - var cm = this.cm; - var settings = _this.settings; - - if (!settings.emoji) - { - alert("settings.emoji == false"); - return ; - } - - var path = settings.pluginPath + pluginName + "/"; - var editor = this.editor; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - var classPrefix = this.classPrefix; - - $.extend(true, this.lang, langs[this.lang.name]); - this.setToolbar(); - - var lang = this.lang; - var dialogName = classPrefix + pluginName, dialog; - var dialogLang = lang.dialog.emoji; - - var dialogContent = [ - "
    ", - "
    ", - "
    ", - ].join("\n"); - - cm.focus(); - - if (editor.find("." + dialogName).length > 0) - { - dialog = editor.find("." + dialogName); - - selecteds = []; - dialog.find("a").removeClass("selected"); - - this.dialogShowMask(dialog); - this.dialogLockScreen(); - dialog.show(); - } - else - { - dialog = this.createDialog({ - name : dialogName, - title : dialogLang.title, - width : 800, - height : 475, - mask : settings.dialogShowMask, - drag : settings.dialogDraggable, - content : dialogContent, - lockScreen : settings.dialogLockScreen, - maskStyle : { - opacity : settings.dialogMaskOpacity, - backgroundColor : settings.dialogMaskBgColor - }, - buttons : { - enter : [lang.buttons.enter, function() { - cm.replaceSelection(selecteds.join(" ")); - this.hide().lockScreen(false).hideMask(); - - return false; - }], - cancel : [lang.buttons.cancel, function() { - this.hide().lockScreen(false).hideMask(); - - return false; - }] - } - }); - } - - var category = ["Github emoji", "Twemoji", "Font awesome", "Editor.md logo"]; - var tab = dialog.find("." + classPrefix + "tab"); - - if (tab.html() === "") - { - var head = "
    "; - - tab.append(head); - - var container = "
    "; - - for (var x = 0; x < 4; x++) - { - var display = (x === 0) ? "" : "display:none;"; - container += "
    "; - } - - container += "
    "; - - tab.append(container); - } - - var tabBoxs = tab.find("." + classPrefix + "tab-box"); - var emojiCategories = ["github-emoji", "twemoji", "font-awesome", logoPrefix]; - - var drawTable = function() { - var cname = emojiCategories[emojiTabIndex]; - var $data = emojiData[cname]; - var $tab = tabBoxs.eq(emojiTabIndex); - - if ($tab.html() !== "") { - //console.log("break =>", cname); - return ; - } - - var pagination = function(data, type) { - var rowNumber = (type === "editormd-logo") ? "5" : 20; - var pageTotal = Math.ceil(data.length / rowNumber); - var table = "
    "; - - for (var i = 0; i < pageTotal; i++) - { - var row = "
    "; - - for (var x = 0; x < rowNumber; x++) - { - var emoji = $.trim(data[(i * rowNumber) + x]); - - if (typeof emoji !== "undefined" && emoji !== "") - { - var img = "", icon = ""; - - if (type === "github-emoji") - { - var src = (emoji === "+1") ? "plus1" : emoji; - src = (src === "black_large_square") ? "black_square" : src; - src = (src === "moon") ? "waxing_gibbous_moon" : src; - - src = exports.emoji.path + src + exports.emoji.ext; - img = "\":""; - row += "" + img + ""; - } - else if (type === "twemoji") - { - var twemojiSrc = exports.twemoji.path + emoji + exports.twemoji.ext; - img = "\"twemoji-""; - row += "" + img + ""; - } - else if (type === "font-awesome") - { - icon = ""; - row += "" + icon + ""; - } - else if (type === "editormd-logo") - { - icon = ""; - row += "" + icon + ""; - } - } - else - { - row += ""; - } - } - - row += "
    "; - - table += row; - } - - table += "
    "; - - return table; - }; - - if (emojiTabIndex === 0) - { - for (var i = 0, len = $data.length; i < len; i++) - { - var h4Style = (i === 0) ? " style=\"margin: 0 0 10px;\"" : " style=\"margin: 10px 0;\""; - $tab.append("" + $data[i].category + ""); - $tab.append(pagination($data[i].list, cname)); - } - } - else - { - $tab.append(pagination($data, cname)); - } - - $tab.find("." + classPrefix + "emoji-btn").bind(exports.mouseOrTouch("click", "touchend"), function() { - $(this).toggleClass("selected"); - - if ($(this).hasClass("selected")) - { - selecteds.push($(this).attr("value")); - } - }); - }; - - if (emojiData.length < 1) - { - if (typeof dialog.loading === "function") { - dialog.loading(true); - } - - $.getJSON(path + "emoji.json?temp=" + Math.random(), function(json) { - - if (typeof dialog.loading === "function") { - dialog.loading(false); - } - - emojiData = json; - emojiData[logoPrefix] = logos; - drawTable(); - }); - } - else - { - drawTable(); - } - - tab.find("li").bind(exports.mouseOrTouch("click", "touchend"), function() { - var $this = $(this); - emojiTabIndex = $this.index(); - - $this.addClass("active").siblings().removeClass("active"); - tabBoxs.eq(emojiTabIndex).show().siblings().hide(); - drawTable(); - }); - }; - - }; - - // CommonJS/Node.js - if (typeof require === "function" && typeof exports === "object" && typeof module === "object") - { - module.exports = factory; - } - else if (typeof define === "function") // AMD/CMD/Sea.js - { - if (define.amd) { // for Require.js - - define(["editormd"], function(editormd) { - factory(editormd); - }); - - } else { // for Sea.js - define(function(require) { - var editormd = require("./../../editormd"); - factory(editormd); - }); - } - } - else - { - factory(window.editormd); - } - -})(); diff --git a/src/main/resources/static/editor.md-master/plugins/emoji-dialog/emoji.json b/src/main/resources/static/editor.md-master/plugins/emoji-dialog/emoji.json deleted file mode 100644 index 46d8473..0000000 --- a/src/main/resources/static/editor.md-master/plugins/emoji-dialog/emoji.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "github-emoji" : [ - { - "category" :"People", - "list" : ["bowtie","smile","laughing","blush","smiley","relaxed","smirk","heart_eyes","kissing_heart","kissing_closed_eyes","flushed","relieved","satisfied","grin","wink","stuck_out_tongue_winking_eye","stuck_out_tongue_closed_eyes","grinning","kissing","kissing_smiling_eyes","stuck_out_tongue","sleeping","worried","frowning","anguished","open_mouth","grimacing","confused","hushed","expressionless","unamused","sweat_smile","sweat","disappointed_relieved","weary","pensive","disappointed","confounded","fearful","cold_sweat","persevere","cry","sob","joy","astonished","scream","neckbeard","tired_face","angry","rage","triumph","sleepy","yum","mask","sunglasses","dizzy_face","imp","smiling_imp","neutral_face","no_mouth","innocent","alien","yellow_heart","blue_heart","purple_heart","heart","green_heart","broken_heart","heartbeat","heartpulse","two_hearts","revolving_hearts","cupid","sparkling_heart","sparkles","star","star2","dizzy","boom","collision","anger","exclamation","question","grey_exclamation","grey_question","zzz","dash","sweat_drops","notes","musical_note","fire","hankey","poop","shit","+1","thumbsup","-1","thumbsdown","ok_hand","punch","facepunch","fist","v","wave","hand","raised_hand","open_hands","point_up","point_down","point_left","point_right","raised_hands","pray","point_up_2","clap","muscle","metal","fu","walking","runner","running","couple","family","two_men_holding_hands","two_women_holding_hands","dancer","dancers","ok_woman","no_good","information_desk_person","raising_hand","bride_with_veil","person_with_pouting_face","person_frowning","bow","couplekiss","couple_with_heart","massage","haircut","nail_care","boy","girl","woman","man","baby","older_woman","older_man","person_with_blond_hair","man_with_gua_pi_mao","man_with_turban","construction_worker","cop","angel","princess","smiley_cat","smile_cat","heart_eyes_cat","kissing_cat","smirk_cat","scream_cat","crying_cat_face","joy_cat","pouting_cat","japanese_ogre","japanese_goblin","see_no_evil","hear_no_evil","speak_no_evil","guardsman","skull","feet","lips","kiss","droplet","ear","eyes","nose","tongue","love_letter","bust_in_silhouette","busts_in_silhouette","speech_balloon","thought_balloon","feelsgood","finnadie","goberserk","godmode","hurtrealbad","rage1","rage2","rage3","rage4","suspect","trollface"] - }, - { - "category" :"Nature", - "list" : ["sunny","umbrella","cloud","snowflake","snowman","zap","cyclone","foggy","ocean","cat","dog","mouse","hamster","rabbit","wolf","frog","tiger","koala","bear","pig","pig_nose","cow","boar","monkey_face","monkey","horse","racehorse","camel","sheep","elephant","panda_face","snake","bird","baby_chick","hatched_chick","hatching_chick","chicken","penguin","turtle","bug","honeybee","ant","beetle","snail","octopus","tropical_fish","fish","whale","whale2","dolphin","cow2","ram","rat","water_buffalo","tiger2","rabbit2","dragon","goat","rooster","dog2","pig2","mouse2","ox","dragon_face","blowfish","crocodile","dromedary_camel","leopard","cat2","poodle","paw_prints","bouquet","cherry_blossom","tulip","four_leaf_clover","rose","sunflower","hibiscus","maple_leaf","leaves","fallen_leaf","herb","mushroom","cactus","palm_tree","evergreen_tree","deciduous_tree","chestnut","seedling","blossom","ear_of_rice","shell","globe_with_meridians","sun_with_face","full_moon_with_face","new_moon_with_face","new_moon","waxing_crescent_moon","first_quarter_moon","waxing_gibbous_moon","full_moon","waning_gibbous_moon","last_quarter_moon","waning_crescent_moon","last_quarter_moon_with_face","first_quarter_moon_with_face","moon","earth_africa","earth_americas","earth_asia","volcano","milky_way","partly_sunny","octocat","squirrel"] - }, - { - "category" :"Objects", - "list" : ["bamboo","gift_heart","dolls","school_satchel","mortar_board","flags","fireworks","sparkler","wind_chime","rice_scene","jack_o_lantern","ghost","santa","christmas_tree","gift","bell","no_bell","tanabata_tree","tada","confetti_ball","balloon","crystal_ball","cd","dvd","floppy_disk","camera","video_camera","movie_camera","computer","tv","iphone","phone","telephone","telephone_receiver","pager","fax","minidisc","vhs","sound","speaker","mute","loudspeaker","mega","hourglass","hourglass_flowing_sand","alarm_clock","watch","radio","satellite","loop","mag","mag_right","unlock","lock","lock_with_ink_pen","closed_lock_with_key","key","bulb","flashlight","high_brightness","low_brightness","electric_plug","battery","calling","email","mailbox","postbox","bath","bathtub","shower","toilet","wrench","nut_and_bolt","hammer","seat","moneybag","yen","dollar","pound","euro","credit_card","money_with_wings","e-mail","inbox_tray","outbox_tray","envelope","incoming_envelope","postal_horn","mailbox_closed","mailbox_with_mail","mailbox_with_no_mail","package","door","smoking","bomb","gun","hocho","pill","syringe","page_facing_up","page_with_curl","bookmark_tabs","bar_chart","chart_with_upwards_trend","chart_with_downwards_trend","scroll","clipboard","calendar","date","card_index","file_folder","open_file_folder","scissors","pushpin","paperclip","black_nib","pencil2","straight_ruler","triangular_ruler","closed_book","green_book","blue_book","orange_book","notebook","notebook_with_decorative_cover","ledger","books","bookmark","name_badge","microscope","telescope","newspaper","football","basketball","soccer","baseball","tennis","8ball","rugby_football","bowling","golf","mountain_bicyclist","bicyclist","horse_racing","snowboarder","swimmer","surfer","ski","spades","hearts","clubs","diamonds","gem","ring","trophy","musical_score","musical_keyboard","violin","space_invader","video_game","black_joker","flower_playing_cards","game_die","dart","mahjong","clapper","memo","pencil","book","art","microphone","headphones","trumpet","saxophone","guitar","shoe","sandal","high_heel","lipstick","boot","shirt","tshirt","necktie","womans_clothes","dress","running_shirt_with_sash","jeans","kimono","bikini","ribbon","tophat","crown","womans_hat","mans_shoe","closed_umbrella","briefcase","handbag","pouch","purse","eyeglasses","fishing_pole_and_fish","coffee","tea","sake","baby_bottle","beer","beers","cocktail","tropical_drink","wine_glass","fork_and_knife","pizza","hamburger","fries","poultry_leg","meat_on_bone","spaghetti","curry","fried_shrimp","bento","sushi","fish_cake","rice_ball","rice_cracker","rice","ramen","stew","oden","dango","egg","bread","doughnut","custard","icecream","ice_cream","shaved_ice","birthday","cake","cookie","chocolate_bar","candy","lollipop","honey_pot","apple","green_apple","tangerine","lemon","cherries","grapes","watermelon","strawberry","peach","melon","banana","pear","pineapple","sweet_potato","eggplant","tomato","corn"] - }, - { - "category" :"Places", - "list" : ["house","house_with_garden","school","office","post_office","hospital","bank","convenience_store","love_hotel","hotel","wedding","church","department_store","european_post_office","city_sunrise","city_sunset","japanese_castle","european_castle","tent","factory","tokyo_tower","japan","mount_fuji","sunrise_over_mountains","sunrise","stars","statue_of_liberty","bridge_at_night","carousel_horse","rainbow","ferris_wheel","fountain","roller_coaster","ship","speedboat","boat","sailboat","rowboat","anchor","rocket","airplane","helicopter","steam_locomotive","tram","mountain_railway","bike","aerial_tramway","suspension_railway","mountain_cableway","tractor","blue_car","oncoming_automobile","car","red_car","taxi","oncoming_taxi","articulated_lorry","bus","oncoming_bus","rotating_light","police_car","oncoming_police_car","fire_engine","ambulance","minibus","truck","train","station","train2","bullettrain_front","bullettrain_side","light_rail","monorail","railway_car","trolleybus","ticket","fuelpump","vertical_traffic_light","traffic_light","warning","construction","beginner","atm","slot_machine","busstop","barber","hotsprings","checkered_flag","crossed_flags","izakaya_lantern","moyai","circus_tent","performing_arts","round_pushpin","triangular_flag_on_post","jp","kr","cn","us","fr","es","it","ru","gb","uk","de"] - }, - { - "category" :"Symbols", - "list" : ["one","two","three","four","five","six","seven","eight","nine","keycap_ten","1234","zero","hash","symbols","arrow_backward","arrow_down","arrow_forward","arrow_left","capital_abcd","abcd","abc","arrow_lower_left","arrow_lower_right","arrow_right","arrow_up","arrow_upper_left","arrow_upper_right","arrow_double_down","arrow_double_up","arrow_down_small","arrow_heading_down","arrow_heading_up","leftwards_arrow_with_hook","arrow_right_hook","left_right_arrow","arrow_up_down","arrow_up_small","arrows_clockwise","arrows_counterclockwise","rewind","fast_forward","information_source","ok","twisted_rightwards_arrows","repeat","repeat_one","new","top","up","cool","free","ng","cinema","koko","signal_strength","u5272","u5408","u55b6","u6307","u6708","u6709","u6e80","u7121","u7533","u7a7a","u7981","sa","restroom","mens","womens","baby_symbol","no_smoking","parking","wheelchair","metro","baggage_claim","accept","wc","potable_water","put_litter_in_its_place","secret","congratulations","m","passport_control","left_luggage","customs","ideograph_advantage","cl","sos","id","no_entry_sign","underage","no_mobile_phones","do_not_litter","non-potable_water","no_bicycles","no_pedestrians","children_crossing","no_entry","eight_spoked_asterisk","sparkle","eight_pointed_black_star","heart_decoration","vs","vibration_mode","mobile_phone_off","chart","currency_exchange","aries","taurus","gemini","cancer","leo","virgo","libra","scorpius","sagittarius","capricorn","aquarius","pisces","ophiuchus","six_pointed_star","negative_squared_cross_mark","a","b","ab","o2","diamond_shape_with_a_dot_inside","recycle","end","back","on","soon","clock1","clock130","clock10","clock1030","clock11","clock1130","clock12","clock1230","clock2","clock230","clock3","clock330","clock4","clock430","clock5","clock530","clock6","clock630","clock7","clock730","clock8","clock830","clock9","clock930","heavy_dollar_sign","copyright","registered","tm","x","heavy_exclamation_mark","bangbang","interrobang","o","heavy_multiplication_x","heavy_plus_sign","heavy_minus_sign","heavy_division_sign","white_flower","100","heavy_check_mark","ballot_box_with_check","radio_button","link","curly_loop","wavy_dash","part_alternation_mark","trident","black_small_square","white_small_square","black_medium_small_square","white_medium_small_square","black_medium_square","white_medium_square","black_large_square","white_large_square","white_check_mark","black_square_button","white_square_button","black_circle","white_circle","red_circle","large_blue_circle","large_blue_diamond","large_orange_diamond","small_blue_diamond","small_orange_diamond","small_red_triangle","small_red_triangle_down","shipit"] - } - ], - - "twemoji" : ["1f004","1f0cf","1f170","1f171","1f17e","1f17f","1f18e","1f191","1f192","1f193","1f194","1f195","1f196","1f197","1f198","1f199","1f19a","1f1e6","1f1e7","1f1e8-1f1f3","1f1e8","1f1e9-1f1ea","1f1e9","1f1ea-1f1f8","1f1ea","1f1eb-1f1f7","1f1eb","1f1ec-1f1e7","1f1ec","1f1ed","1f1ee-1f1f9","1f1ee","1f1ef-1f1f5","1f1ef","1f1f0-1f1f7","1f1f0","1f1f1","1f1f2","1f1f3","1f1f4","1f1f5","1f1f6","1f1f7-1f1fa","1f1f7","1f1f8","1f1f9","1f1fa-1f1f8","1f1fa","1f1fb","1f1fc","1f1fd","1f1fe","1f1ff","1f201","1f202","1f21a","1f22f","1f232","1f233","1f234","1f235","1f236","1f237","1f238","1f239","1f23a","1f250","1f251","1f300","1f301","1f302","1f303","1f304","1f305","1f306","1f307","1f308","1f309","1f30a","1f30b","1f30c","1f30d","1f30e","1f30f","1f310","1f311","1f312","1f313","1f314","1f315","1f316","1f317","1f318","1f319","1f31a","1f31b","1f31c","1f31d","1f31e","1f31f","1f320","1f330","1f331","1f332","1f333","1f334","1f335","1f337","1f338","1f339","1f33a","1f33b","1f33c","1f33d","1f33e","1f33f","1f340","1f341","1f342","1f343","1f344","1f345","1f346","1f347","1f348","1f349","1f34a","1f34b","1f34c","1f34d","1f34e","1f34f","1f350","1f351","1f352","1f353","1f354","1f355","1f356","1f357","1f358","1f359","1f35a","1f35b","1f35c","1f35d","1f35e","1f35f","1f360","1f361","1f362","1f363","1f364","1f365","1f366","1f367","1f368","1f369","1f36a","1f36b","1f36c","1f36d","1f36e","1f36f","1f370","1f371","1f372","1f373","1f374","1f375","1f376","1f377","1f378","1f379","1f37a","1f37b","1f37c","1f380","1f381","1f382","1f383","1f384","1f385","1f386","1f387","1f388","1f389","1f38a","1f38b","1f38c","1f38d","1f38e","1f38f","1f390","1f391","1f392","1f393","1f3a0","1f3a1","1f3a2","1f3a3","1f3a4","1f3a5","1f3a6","1f3a7","1f3a8","1f3a9","1f3aa","1f3ab","1f3ac","1f3ad","1f3ae","1f3af","1f3b0","1f3b1","1f3b2","1f3b3","1f3b4","1f3b5","1f3b6","1f3b7","1f3b8","1f3b9","1f3ba","1f3bb","1f3bc","1f3bd","1f3be","1f3bf","1f3c0","1f3c1","1f3c2","1f3c3","1f3c4","1f3c6","1f3c7","1f3c8","1f3c9","1f3ca","1f3e0","1f3e1","1f3e2","1f3e3","1f3e4","1f3e5","1f3e6","1f3e7","1f3e8","1f3e9","1f3ea","1f3eb","1f3ec","1f3ed","1f3ee","1f3ef","1f3f0","1f400","1f401","1f402","1f403","1f404","1f405","1f406","1f407","1f408","1f409","1f40a","1f40b","1f40c","1f40d","1f40e","1f40f","1f410","1f411","1f412","1f413","1f414","1f415","1f416","1f417","1f418","1f419","1f41a","1f41b","1f41c","1f41d","1f41e","1f41f","1f420","1f421","1f422","1f423","1f424","1f425","1f426","1f427","1f428","1f429","1f42a","1f42b","1f42c","1f42d","1f42e","1f42f","1f430","1f431","1f432","1f433","1f434","1f435","1f436","1f437","1f438","1f439","1f43a","1f43b","1f43c","1f43d","1f43e","1f440","1f442","1f443","1f444","1f445","1f446","1f447","1f448","1f449","1f44a","1f44b","1f44c","1f44d","1f44e","1f44f","1f450","1f451","1f452","1f453","1f454","1f455","1f456","1f457","1f458","1f459","1f45a","1f45b","1f45c","1f45d","1f45e","1f45f","1f460","1f461","1f462","1f463","1f464","1f465","1f466","1f467","1f468","1f469","1f46a","1f46b","1f46c","1f46d","1f46e","1f46f","1f470","1f471","1f472","1f473","1f474","1f475","1f476","1f477","1f478","1f479","1f47a","1f47b","1f47c","1f47d","1f47e","1f47f","1f480","1f481","1f482","1f483","1f484","1f485","1f486","1f487","1f488","1f489","1f48a","1f48b","1f48c","1f48d","1f48e","1f48f","1f490","1f491","1f492","1f493","1f494","1f495","1f496","1f497","1f498","1f499","1f49a","1f49b","1f49c","1f49d","1f49e","1f49f","1f4a0","1f4a1","1f4a2","1f4a3","1f4a4","1f4a5","1f4a6","1f4a7","1f4a8","1f4a9","1f4aa","1f4ab","1f4ac","1f4ad","1f4ae","1f4af","1f4b0","1f4b1","1f4b2","1f4b3","1f4b4","1f4b5","1f4b6","1f4b7","1f4b8","1f4b9","1f4ba","1f4bb","1f4bc","1f4bd","1f4be","1f4bf","1f4c0","1f4c1","1f4c2","1f4c3","1f4c4","1f4c5","1f4c6","1f4c7","1f4c8","1f4c9","1f4ca","1f4cb","1f4cc","1f4cd","1f4ce","1f4cf","1f4d0","1f4d1","1f4d2","1f4d3","1f4d4","1f4d5","1f4d6","1f4d7","1f4d8","1f4d9","1f4da","1f4db","1f4dc","1f4dd","1f4de","1f4df","1f4e0","1f4e1","1f4e2","1f4e3","1f4e4","1f4e5","1f4e6","1f4e7","1f4e8","1f4e9","1f4ea","1f4eb","1f4ec","1f4ed","1f4ee","1f4ef","1f4f0","1f4f1","1f4f2","1f4f3","1f4f4","1f4f5","1f4f6","1f4f7","1f4f9","1f4fa","1f4fb","1f4fc","1f500","1f501","1f502","1f503","1f504","1f505","1f506","1f507","1f508","1f509","1f50a","1f50b","1f50c","1f50d","1f50e","1f50f","1f510","1f511","1f512","1f513","1f514","1f515","1f516","1f517","1f518","1f519","1f51a","1f51b","1f51c","1f51d","1f51e","1f51f","1f520","1f521","1f522","1f523","1f524","1f525","1f526","1f527","1f528","1f529","1f52a","1f52b","1f52c","1f52d","1f52e","1f52f","1f530","1f531","1f532","1f533","1f534","1f535","1f536","1f537","1f538","1f539","1f53a","1f53b","1f53c","1f53d","1f550","1f551","1f552","1f553","1f554","1f555","1f556","1f557","1f558","1f559","1f55a","1f55b","1f55c","1f55d","1f55e","1f55f","1f560","1f561","1f562","1f563","1f564","1f565","1f566","1f567","1f5fb","1f5fc","1f5fd","1f5fe","1f5ff","1f600","1f601","1f602","1f603","1f604","1f605","1f606","1f607","1f608","1f609","1f60a","1f60b","1f60c","1f60d","1f60e","1f60f","1f610","1f611","1f612","1f613","1f614","1f615","1f616","1f617","1f618","1f619","1f61a","1f61b","1f61c","1f61d","1f61e","1f61f","1f620","1f621","1f622","1f623","1f624","1f625","1f626","1f627","1f628","1f629","1f62a","1f62b","1f62c","1f62d","1f62e","1f62f","1f630","1f631","1f632","1f633","1f634","1f635","1f636","1f637","1f638","1f639","1f63a","1f63b","1f63c","1f63d","1f63e","1f63f","1f640","1f645","1f646","1f647","1f648","1f649","1f64a","1f64b","1f64c","1f64d","1f64e","1f64f","1f680","1f681","1f682","1f683","1f684","1f685","1f686","1f687","1f688","1f689","1f68a","1f68b","1f68c","1f68d","1f68e","1f68f","1f690","1f691","1f692","1f693","1f694","1f695","1f696","1f697","1f698","1f699","1f69a","1f69b","1f69c","1f69d","1f69e","1f69f","1f6a0","1f6a1","1f6a2","1f6a3","1f6a4","1f6a5","1f6a6","1f6a7","1f6a8","1f6a9","1f6aa","1f6ab","1f6ac","1f6ad","1f6ae","1f6af","1f6b0","1f6b1","1f6b2","1f6b3","1f6b4","1f6b5","1f6b6","1f6b7","1f6b8","1f6b9","1f6ba","1f6bb","1f6bc","1f6bd","1f6be","1f6bf","1f6c0","1f6c1","1f6c2","1f6c3","1f6c4","1f6c5","203c","2049","2122","2139","2194","2195","2196","2197","2198","2199","21a9","21aa","23-20e3","231a","231b","23e9","23ea","23eb","23ec","23f0","23f3","24c2","25aa","25ab","25b6","25c0","25fb","25fc","25fd","25fe","2600","2601","260e","2611","2614","2615","261d","263a","2648","2649","264a","264b","264c","264d","264e","264f","2650","2651","2652","2653","2660","2663","2665","2666","2668","267b","267f","2693","26a0","26a1","26aa","26ab","26bd","26be","26c4","26c5","26ce","26d4","26ea","26f2","26f3","26f5","26fa","26fd","2702","2705","2708","2709","270a","270b","270c","270f","2712","2714","2716","2728","2733","2734","2744","2747","274c","274e","2753","2754","2755","2757","2764","2795","2796","2797","27a1","27b0","27bf","2934","2935","2b05","2b06","2b07","2b1b","2b1c","2b50","2b55","30-20e3","3030","303d","31-20e3","32-20e3","3297","3299","33-20e3","34-20e3","35-20e3","36-20e3","37-20e3","38-20e3","39-20e3","a9","ae","e50a"], - - "font-awesome" : ["glass","music","search","envelope-o","heart","star","star-o","user","film","th-large","th","th-list","check","times","search-plus","search-minus","power-off","signal","cog","trash-o","home","file-o","clock-o","road","download","arrow-circle-o-down","arrow-circle-o-up","inbox","play-circle-o","repeat","refresh","list-alt","lock","flag","headphones","volume-off","volume-down","volume-up","qrcode","barcode","tag","tags","book","bookmark","print","camera","font","bold","italic","text-height","text-width","align-left","align-center","align-right","align-justify","list","outdent","indent","video-camera","picture-o","pencil","map-marker","adjust","tint","pencil-square-o","share-square-o","check-square-o","arrows","step-backward","fast-backward","backward","play","pause","stop","forward","fast-forward","step-forward","eject","chevron-left","chevron-right","plus-circle","minus-circle","times-circle","check-circle","question-circle","info-circle","crosshairs","times-circle-o","check-circle-o","ban","arrow-left","arrow-right","arrow-up","arrow-down","share","expand","compress","plus","minus","asterisk","exclamation-circle","gift","leaf","fire","eye","eye-slash","exclamation-triangle","plane","calendar","random","comment","magnet","chevron-up","chevron-down","retweet","shopping-cart","folder","folder-open","arrows-v","arrows-h","bar-chart","twitter-square","facebook-square","camera-retro","key","cogs","comments","thumbs-o-up","thumbs-o-down","star-half","heart-o","sign-out","linkedin-square","thumb-tack","external-link","sign-in","trophy","github-square","upload","lemon-o","phone","square-o","bookmark-o","phone-square","twitter","facebook","github","unlock","credit-card","rss","hdd-o","bullhorn","bell","certificate","hand-o-right","hand-o-left","hand-o-up","hand-o-down","arrow-circle-left","arrow-circle-right","arrow-circle-up","arrow-circle-down","globe","wrench","tasks","filter","briefcase","arrows-alt","users","link","cloud","flask","scissors","files-o","paperclip","floppy-o","square","bars","list-ul","list-ol","strikethrough","underline","table","magic","truck","pinterest","pinterest-square","google-plus-square","google-plus","money","caret-down","caret-up","caret-left","caret-right","columns","sort","sort-desc","sort-asc","envelope","linkedin","undo","gavel","tachometer","comment-o","comments-o","bolt","sitemap","umbrella","clipboard","lightbulb-o","exchange","cloud-download","cloud-upload","user-md","stethoscope","suitcase","bell-o","coffee","cutlery","file-text-o","building-o","hospital-o","ambulance","medkit","fighter-jet","beer","h-square","plus-square","angle-double-left","angle-double-right","angle-double-up","angle-double-down","angle-left","angle-right","angle-up","angle-down","desktop","laptop","tablet","mobile","circle-o","quote-left","quote-right","spinner","circle","reply","github-alt","folder-o","folder-open-o","smile-o","frown-o","meh-o","gamepad","keyboard-o","flag-o","flag-checkered","terminal","code","reply-all","star-half-o","location-arrow","crop","code-fork","chain-broken","question","info","exclamation","superscript","subscript","eraser","puzzle-piece","microphone","microphone-slash","shield","calendar-o","fire-extinguisher","rocket","maxcdn","chevron-circle-left","chevron-circle-right","chevron-circle-up","chevron-circle-down","html5","css3","anchor","unlock-alt","bullseye","ellipsis-h","ellipsis-v","rss-square","play-circle","ticket","minus-square","minus-square-o","level-up","level-down","check-square","pencil-square","share-square","compass","caret-square-o-down","caret-square-o-up","caret-square-o-right","eur","gbp","usd","inr","jpy","rub","krw","btc","file","file-text","sort-alpha-asc","sort-alpha-desc","sort-amount-asc","sort-amount-desc","sort-numeric-asc","sort-numeric-desc","thumbs-up","thumbs-down","youtube-square","youtube","xing","xing-square","youtube-play","dropbox","stack-overflow","instagram","flickr","adn","bitbucket","bitbucket-square","tumblr","tumblr-square","long-arrow-down","long-arrow-up","long-arrow-left","long-arrow-right","apple","windows","android","linux","dribbble","skype","foursquare","trello","female","male","gratipay","sun-o","moon-o","archive","bug","vk","weibo","renren","pagelines","stack-exchange","arrow-circle-o-right","arrow-circle-o-left","caret-square-o-left","dot-circle-o","wheelchair","vimeo-square","try","plus-square-o","space-shuttle","slack","envelope-square","wordpress","openid","university","graduation-cap","yahoo","google","reddit","reddit-square","stumbleupon-circle","stumbleupon","delicious","digg","pied-piper","pied-piper-alt","drupal","joomla","language","fax","building","child","paw","spoon","cube","cubes","behance","behance-square","steam","steam-square","recycle","car","taxi","tree","spotify","deviantart","soundcloud","database","file-pdf-o","file-word-o","file-excel-o","file-powerpoint-o","file-image-o","file-archive-o","file-audio-o","file-video-o","file-code-o","vine","codepen","jsfiddle","life-ring","circle-o-notch","rebel","empire","git-square","git","hacker-news","tencent-weibo","qq","weixin","paper-plane","paper-plane-o","history","circle-thin","header","paragraph","sliders","share-alt","share-alt-square","bomb","futbol-o","tty","binoculars","plug","slideshare","twitch","yelp","newspaper-o","wifi","calculator","paypal","google-wallet","cc-visa","cc-mastercard","cc-discover","cc-amex","cc-paypal","cc-stripe","bell-slash","bell-slash-o","trash","copyright","at","eyedropper","paint-brush","birthday-cake","area-chart","pie-chart","line-chart","lastfm","lastfm-square","toggle-off","toggle-on","bicycle","bus","ioxhost","angellist","cc","ils","meanpath","buysellads","connectdevelop","dashcube","forumbee","leanpub","sellsy","shirtsinbulk","simplybuilt","skyatlas","cart-plus","cart-arrow-down","diamond","ship","user-secret","motorcycle","street-view","heartbeat","venus","mars","mercury","transgender","transgender-alt","venus-double","mars-double","venus-mars","mars-stroke","mars-stroke-v","mars-stroke-h","neuter","facebook-official","pinterest-p","whatsapp","server","user-plus","user-times","bed","viacoin","train","subway","medium","GitHub","bed","buysellads","cart-arrow-down","cart-plus","connectdevelop","dashcube","diamond","facebook-official","forumbee","heartbeat","hotel","leanpub","mars","mars-double","mars-stroke","mars-stroke-h","mars-stroke-v","medium","mercury","motorcycle","neuter","pinterest-p","sellsy","server","ship","shirtsinbulk","simplybuilt","skyatlas","street-view","subway","train","transgender","transgender-alt","user-plus","user-secret","user-times","venus","venus-double","venus-mars","viacoin","whatsapp","adjust","anchor","archive","area-chart","arrows","arrows-h","arrows-v","asterisk","at","automobile","ban","bank","bar-chart","bar-chart-o","barcode","bars","bed","beer","bell","bell-o","bell-slash","bell-slash-o","bicycle","binoculars","birthday-cake","bolt","bomb","book","bookmark","bookmark-o","briefcase","bug","building","building-o","bullhorn","bullseye","bus","cab","calculator","calendar","calendar-o","camera","camera-retro","car","caret-square-o-down","caret-square-o-left","caret-square-o-right","caret-square-o-up","cart-arrow-down","cart-plus","cc","certificate","check","check-circle","check-circle-o","check-square","check-square-o","child","circle","circle-o","circle-o-notch","circle-thin","clock-o","close","cloud","cloud-download","cloud-upload","code","code-fork","coffee","cog","cogs","comment","comment-o","comments","comments-o","compass","copyright","credit-card","crop","crosshairs","cube","cubes","cutlery","dashboard","database","desktop","diamond","dot-circle-o","download","edit","ellipsis-h","ellipsis-v","envelope","envelope-o","envelope-square","eraser","exchange","exclamation","exclamation-circle","exclamation-triangle","external-link","external-link-square","eye","eye-slash","eyedropper","fax","female","fighter-jet","file-archive-o","file-audio-o","file-code-o","file-excel-o","file-image-o","file-movie-o","file-pdf-o","file-photo-o","file-picture-o","file-powerpoint-o","file-sound-o","file-video-o","file-word-o","file-zip-o","film","filter","fire","fire-extinguisher","flag","flag-checkered","flag-o","flash","flask","folder","folder-o","folder-open","folder-open-o","frown-o","futbol-o","gamepad","gavel","gear","gears","genderless","gift","glass","globe","graduation-cap","group","hdd-o","headphones","heart","heart-o","heartbeat","history","home","hotel","image","inbox","info","info-circle","institution","key","keyboard-o","language","laptop","leaf","legal","lemon-o","level-down","level-up","life-bouy","life-buoy","life-ring","life-saver","lightbulb-o","line-chart","location-arrow","lock","magic","magnet","mail-forward","mail-reply","mail-reply-all","male","map-marker","meh-o","microphone","microphone-slash","minus","minus-circle","minus-square","minus-square-o","mobile","mobile-phone","money","moon-o","mortar-board","motorcycle","music","navicon","newspaper-o","paint-brush","paper-plane","paper-plane-o","paw","pencil","pencil-square","pencil-square-o","phone","phone-square","photo","picture-o","pie-chart","plane","plug","plus","plus-circle","plus-square","plus-square-o","power-off","print","puzzle-piece","qrcode","question","question-circle","quote-left","quote-right","random","recycle","refresh","remove","reorder","reply","reply-all","retweet","road","rocket","rss","rss-square","search","search-minus","search-plus","send","send-o","server","share","share-alt","share-alt-square","share-square","share-square-o","shield","ship","shopping-cart","sign-in","sign-out","signal","sitemap","sliders","smile-o","soccer-ball-o","sort","sort-alpha-asc","sort-alpha-desc","sort-amount-asc","sort-amount-desc","sort-asc","sort-desc","sort-down","sort-numeric-asc","sort-numeric-desc","sort-up","space-shuttle","spinner","spoon","square","square-o","star","star-half","star-half-empty","star-half-full","star-half-o","star-o","street-view","suitcase","sun-o","support","tablet","tachometer","tag","tags","tasks","taxi","terminal","thumb-tack","thumbs-down","thumbs-o-down","thumbs-o-up","thumbs-up","ticket","times","times-circle","times-circle-o","tint","toggle-down","toggle-left","toggle-off","toggle-on","toggle-right","toggle-up","trash","trash-o","tree","trophy","truck","tty","umbrella","university","unlock","unlock-alt","unsorted","upload","user","user-plus","user-secret","user-times","users","video-camera","volume-down","volume-off","volume-up","warning","wheelchair","wifi","wrench","ambulance","automobile","bicycle","bus","cab","car","fighter-jet","motorcycle","plane","rocket","ship","space-shuttle","subway","taxi","train","truck","wheelchair","circle-thin","genderless","mars","mars-double","mars-stroke","mars-stroke-h","mars-stroke-v","mercury","neuter","transgender","transgender-alt","venus","venus-double","venus-mars","file","file-archive-o","file-audio-o","file-code-o","file-excel-o","file-image-o","file-movie-o","file-o","file-pdf-o","file-photo-o","file-picture-o","file-powerpoint-o","file-sound-o","file-text","file-text-o","file-video-o","file-word-o","file-zip-o","circle-o-notch","cog","gear","refresh","spinner","check-square","check-square-o","circle","circle-o","dot-circle-o","minus-square","minus-square-o","plus-square","plus-square-o","square","square-o","cc-amex","cc-discover","cc-mastercard","cc-paypal","cc-stripe","cc-visa","credit-card","google-wallet","paypal","area-chart","bar-chart","bar-chart-o","line-chart","pie-chart","bitcoin","btc","cny","dollar","eur","euro","gbp","ils","inr","jpy","krw","money","rmb","rouble","rub","ruble","rupee","shekel","sheqel","try","turkish-lira","usd","won","yen","align-center","align-justify","align-left","align-right","bold","chain","chain-broken","clipboard","columns","copy","cut","dedent","eraser","file","file-o","file-text","file-text-o","files-o","floppy-o","font","header","indent","italic","link","list","list-alt","list-ol","list-ul","outdent","paperclip","paragraph","paste","repeat","rotate-left","rotate-right","save","scissors","strikethrough","subscript","superscript","table","text-height","text-width","th","th-large","th-list","underline","undo","unlink","angle-double-down","angle-double-left","angle-double-right","angle-double-up","angle-down","angle-left","angle-right","angle-up","arrow-circle-down","arrow-circle-left","arrow-circle-o-down","arrow-circle-o-left","arrow-circle-o-right","arrow-circle-o-up","arrow-circle-right","arrow-circle-up","arrow-down","arrow-left","arrow-right","arrow-up","arrows","arrows-alt","arrows-h","arrows-v","caret-down","caret-left","caret-right","caret-square-o-down","caret-square-o-left","caret-square-o-right","caret-square-o-up","caret-up","chevron-circle-down","chevron-circle-left","chevron-circle-right","chevron-circle-up","chevron-down","chevron-left","chevron-right","chevron-up","hand-o-down","hand-o-left","hand-o-right","hand-o-up","long-arrow-down","long-arrow-left","long-arrow-right","long-arrow-up","toggle-down","toggle-left","toggle-right","toggle-up","arrows-alt","backward","compress","eject","expand","fast-backward","fast-forward","forward","pause","play","play-circle","play-circle-o","step-backward","step-forward","stop","youtube-play","report an issue with Adblock Plus","adn","android","angellist","apple","behance","behance-square","bitbucket","bitbucket-square","bitcoin","btc","buysellads","cc-amex","cc-discover","cc-mastercard","cc-paypal","cc-stripe","cc-visa","codepen","connectdevelop","css3","dashcube","delicious","deviantart","digg","dribbble","dropbox","drupal","empire","facebook","facebook-f","facebook-official","facebook-square","flickr","forumbee","foursquare","ge","git","git-square","github","github-alt","github-square","gittip","google","google-plus","google-plus-square","google-wallet","gratipay","hacker-news","html5","instagram","ioxhost","joomla","jsfiddle","lastfm","lastfm-square","leanpub","linkedin","linkedin-square","linux","maxcdn","meanpath","medium","openid","pagelines","paypal","pied-piper","pied-piper-alt","pinterest","pinterest-p","pinterest-square","qq","ra","rebel","reddit","reddit-square","renren","sellsy","share-alt","share-alt-square","shirtsinbulk","simplybuilt","skyatlas","skype","slack","slideshare","soundcloud","spotify","stack-exchange","stack-overflow","steam","steam-square","stumbleupon","stumbleupon-circle","tencent-weibo","trello","tumblr","tumblr-square","twitch","twitter","twitter-square","viacoin","vimeo-square","vine","vk","wechat","weibo","weixin","whatsapp","windows","wordpress","xing","xing-square","yahoo","yelp","youtube","youtube-play","youtube-square","ambulance","h-square","heart","heart-o","heartbeat","hospital-o","medkit","plus-square","stethoscope","user-md","wheelchair"] -} \ No newline at end of file diff --git a/src/main/resources/static/editor.md-master/plugins/goto-line-dialog/goto-line-dialog.js b/src/main/resources/static/editor.md-master/plugins/goto-line-dialog/goto-line-dialog.js deleted file mode 100644 index f875743..0000000 --- a/src/main/resources/static/editor.md-master/plugins/goto-line-dialog/goto-line-dialog.js +++ /dev/null @@ -1,157 +0,0 @@ -/*! - * Goto line dialog plugin for Editor.md - * - * @file goto-line-dialog.js - * @author pandao - * @version 1.2.1 - * @updateTime 2015-06-09 - * {@link https://github.com/pandao/editor.md} - * @license MIT - */ - -(function() { - - var factory = function (exports) { - - var $ = jQuery; - var pluginName = "goto-line-dialog"; - - var langs = { - "zh-cn" : { - toolbar : { - "goto-line" : "跳转到行" - }, - dialog : { - "goto-line" : { - title : "跳转到行", - label : "请输入行号", - error : "错误:" - } - } - }, - "zh-tw" : { - toolbar : { - "goto-line" : "跳轉到行" - }, - dialog : { - "goto-line" : { - title : "跳轉到行", - label : "請輸入行號", - error : "錯誤:" - } - } - }, - "en" : { - toolbar : { - "goto-line" : "Goto line" - }, - dialog : { - "goto-line" : { - title : "Goto line", - label : "Enter a line number, range ", - error : "Error: " - } - } - } - }; - - exports.fn.gotoLineDialog = function() { - var _this = this; - var cm = this.cm; - var editor = this.editor; - var settings = this.settings; - var path = settings.pluginPath + pluginName +"/"; - var classPrefix = this.classPrefix; - var dialogName = classPrefix + pluginName, dialog; - - $.extend(true, this.lang, langs[this.lang.name]); - this.setToolbar(); - - var lang = this.lang; - var dialogLang = lang.dialog["goto-line"]; - var lineCount = cm.lineCount(); - - dialogLang.error += dialogLang.label + " 1-" + lineCount; - - if (editor.find("." + dialogName).length < 1) - { - var dialogContent = [ - "
    ", - "

    " + dialogLang.label + " 1-" + lineCount +"   

    ", - "
    " - ].join("\n"); - - dialog = this.createDialog({ - name : dialogName, - title : dialogLang.title, - width : 400, - height : 180, - mask : settings.dialogShowMask, - drag : settings.dialogDraggable, - content : dialogContent, - lockScreen : settings.dialogLockScreen, - maskStyle : { - opacity : settings.dialogMaskOpacity, - backgroundColor : settings.dialogMaskBgColor - }, - buttons : { - enter : [lang.buttons.enter, function() { - var line = parseInt(this.find("[data-line-number]").val()); - - if (line < 1 || line > lineCount) { - alert(dialogLang.error); - - return false; - } - - _this.gotoLine(line); - - this.hide().lockScreen(false).hideMask(); - - return false; - }], - - cancel : [lang.buttons.cancel, function() { - this.hide().lockScreen(false).hideMask(); - - return false; - }] - } - }); - } - - dialog = editor.find("." + dialogName); - - this.dialogShowMask(dialog); - this.dialogLockScreen(); - dialog.show(); - }; - - }; - - // CommonJS/Node.js - if (typeof require === "function" && typeof exports === "object" && typeof module === "object") - { - module.exports = factory; - } - else if (typeof define === "function") // AMD/CMD/Sea.js - { - if (define.amd) { // for Require.js - - define(["editormd"], function(editormd) { - factory(editormd); - }); - - } else { // for Sea.js - define(function(require) { - var editormd = require("./../../editormd"); - factory(editormd); - }); - } - } - else - { - factory(window.editormd); - } - -})(); diff --git a/src/main/resources/static/editor.md-master/plugins/help-dialog/help-dialog.js b/src/main/resources/static/editor.md-master/plugins/help-dialog/help-dialog.js deleted file mode 100644 index 339b3c0..0000000 --- a/src/main/resources/static/editor.md-master/plugins/help-dialog/help-dialog.js +++ /dev/null @@ -1,102 +0,0 @@ -/*! - * Help dialog plugin for Editor.md - * - * @file help-dialog.js - * @author pandao - * @version 1.2.0 - * @updateTime 2015-03-08 - * {@link https://github.com/pandao/editor.md} - * @license MIT - */ - -(function() { - - var factory = function (exports) { - - var $ = jQuery; - var pluginName = "help-dialog"; - - exports.fn.helpDialog = function() { - var _this = this; - var lang = this.lang; - var editor = this.editor; - var settings = this.settings; - var path = settings.pluginPath + pluginName + "/"; - var classPrefix = this.classPrefix; - var dialogName = classPrefix + pluginName, dialog; - var dialogLang = lang.dialog.help; - - if (editor.find("." + dialogName).length < 1) - { - var dialogContent = "
    "; - - dialog = this.createDialog({ - name : dialogName, - title : dialogLang.title, - width : 840, - height : 540, - mask : settings.dialogShowMask, - drag : settings.dialogDraggable, - content : dialogContent, - lockScreen : settings.dialogLockScreen, - maskStyle : { - opacity : settings.dialogMaskOpacity, - backgroundColor : settings.dialogMaskBgColor - }, - buttons : { - close : [lang.buttons.close, function() { - this.hide().lockScreen(false).hideMask(); - - return false; - }] - } - }); - } - - dialog = editor.find("." + dialogName); - - this.dialogShowMask(dialog); - this.dialogLockScreen(); - dialog.show(); - - var helpContent = dialog.find(".markdown-body"); - - if (helpContent.html() === "") - { - $.get(path + "help.md", function(text) { - var md = exports.$marked(text); - helpContent.html(md); - - helpContent.find("a").attr("target", "_blank"); - }); - } - }; - - }; - - // CommonJS/Node.js - if (typeof require === "function" && typeof exports === "object" && typeof module === "object") - { - module.exports = factory; - } - else if (typeof define === "function") // AMD/CMD/Sea.js - { - if (define.amd) { // for Require.js - - define(["editormd"], function(editormd) { - factory(editormd); - }); - - } else { // for Sea.js - define(function(require) { - var editormd = require("./../../editormd"); - factory(editormd); - }); - } - } - else - { - factory(window.editormd); - } - -})(); diff --git a/src/main/resources/static/editor.md-master/plugins/help-dialog/help.md b/src/main/resources/static/editor.md-master/plugins/help-dialog/help.md deleted file mode 100644 index 9a030f2..0000000 --- a/src/main/resources/static/editor.md-master/plugins/help-dialog/help.md +++ /dev/null @@ -1,77 +0,0 @@ -##### Markdown语法教程 (Markdown syntax tutorial) - -- [Markdown Syntax](http://daringfireball.net/projects/markdown/syntax/ "Markdown Syntax") -- [Mastering Markdown](https://guides.github.com/features/mastering-markdown/ "Mastering Markdown") -- [Markdown Basics](https://help.github.com/articles/markdown-basics/ "Markdown Basics") -- [GitHub Flavored Markdown](https://help.github.com/articles/github-flavored-markdown/ "GitHub Flavored Markdown") -- [Markdown 语法说明(简体中文)](http://www.markdown.cn/ "Markdown 语法说明(简体中文)") -- [Markdown 語法說明(繁體中文)](http://markdown.tw/ "Markdown 語法說明(繁體中文)") - -##### 键盘快捷键 (Keyboard shortcuts) - -> If Editor.md code editor is on focus, you can use keyboard shortcuts. - -| Keyboard shortcuts (键盘快捷键) | 说明 | Description | -| :---------------------------------------------- |:--------------------------------- | :------------------------------------------------- | -| F9 | 切换实时预览 | Switch watch/unwatch | -| F10 | 全屏HTML预览(按 Shift + ESC 退出) | Full preview HTML (Press Shift + ESC exit) | -| F11 | 切换全屏状态 | Switch fullscreen (Press ESC exit) | -| Ctrl + 1~6 / Command + 1~6 | 插入标题1~6 | Insert heading 1~6 | -| Ctrl + A / Command + A | 全选 | Select all | -| Ctrl + B / Command + B | 插入粗体 | Insert bold | -| Ctrl + D / Command + D | 插入日期时间 | Insert datetime | -| Ctrl + E / Command + E | 插入Emoji符号 | Insert :emoji: | -| Ctrl + F / Command + F | 查找/搜索 | Start searching | -| Ctrl + G / Command + G | 切换到下一个搜索结果项 | Find next search results | -| Ctrl + H / Command + H | 插入水平线 | Insert horizontal rule | -| Ctrl + I / Command + I | 插入斜体 | Insert italic | -| Ctrl + K / Command + K | 插入行内代码 | Insert inline code | -| Ctrl + L / Command + L | 插入链接 | Insert link | -| Ctrl + U / Command + U | 插入无序列表 | Insert unordered list | -| Ctrl + Q | 代码折叠切换 | Switch code fold | -| Ctrl + Z / Command + Z | 撤销 | Undo | -| Ctrl + Y / Command + Y | 重做 | Redo | -| Ctrl + Shift + A | 插入@链接 | Insert @link | -| Ctrl + Shift + C | 插入行内代码 | Insert inline code | -| Ctrl + Shift + E | 打开插入Emoji表情对话框 | Open emoji dialog | -| Ctrl + Shift + F / Command + Option + F | 替换 | Replace | -| Ctrl + Shift + G / Shift + Command + G | 切换到上一个搜索结果项 | Find previous search results | -| Ctrl + Shift + H | 打开HTML实体字符对话框 | Open HTML Entities dialog | -| Ctrl + Shift + I | 插入图片 | Insert image ![]() | -| Ctrl + Shift + K | 插入TeX(KaTeX)公式符号 | Insert TeX(KaTeX) symbol $$TeX$$ | -| Ctrl + Shift + L | 打开插入链接对话框 | Open link dialog | -| Ctrl + Shift + O | 插入有序列表 | Insert ordered list | -| Ctrl + Shift + P | 打开插入PRE对话框 | Open Preformatted text dialog | -| Ctrl + Shift + Q | 插入引用 | Insert blockquotes | -| Ctrl + Shift + R / Shift + Command + Option + F | 全部替换 | Replace all | -| Ctrl + Shift + S | 插入删除线 | Insert strikethrough | -| Ctrl + Shift + T | 打开插入表格对话框 | Open table dialog | -| Ctrl + Shift + U | 将所选文字转成大写 | Selection text convert to uppercase | -| Shift + Alt + C | 插入```代码 | Insert code blocks (```) | -| Shift + Alt + H | 打开使用帮助对话框 | Open help dialog | -| Shift + Alt + L | 将所选文本转成小写 | Selection text convert to lowercase | -| Shift + Alt + P | 插入分页符 | Insert page break | -| Alt + L | 将所选文本转成小写 | Selection text convert to lowercase | -| Shift + Alt + U | 将所选的每个单词的首字母转成大写 | Selection words first letter convert to Uppercase | -| Ctrl + Shift + Alt + C | 打开插入代码块对话框层 | Open code blocks dialog | -| Ctrl + Shift + Alt + I | 打开插入图片对话框层 | Open image dialog | -| Ctrl + Shift + Alt + U | 将所选文本的第一个首字母转成大写 | Selection text first letter convert to uppercase | -| Ctrl + Alt + G | 跳转到指定的行 | Goto line | - -##### Emoji表情参考 (Emoji reference) - -- [Github emoji](http://www.emoji-cheat-sheet.com/ "Github emoji") -- [Twitter Emoji \(Twemoji\)](http://twitter.github.io/twemoji/preview.html "Twitter Emoji \(Twemoji\)") -- [FontAwesome icons emoji](http://fortawesome.github.io/Font-Awesome/icons/ "FontAwesome icons emoji") - -##### 流程图参考 (Flowchart reference) - -[http://adrai.github.io/flowchart.js/](http://adrai.github.io/flowchart.js/) - -##### 时序图参考 (SequenceDiagram reference) - -[http://bramp.github.io/js-sequence-diagrams/](http://bramp.github.io/js-sequence-diagrams/) - -##### TeX/LaTeX reference - -[http://meta.wikimedia.org/wiki/Help:Formula](http://meta.wikimedia.org/wiki/Help:Formula) diff --git a/src/main/resources/static/editor.md-master/plugins/html-entities-dialog/html-entities-dialog.js b/src/main/resources/static/editor.md-master/plugins/html-entities-dialog/html-entities-dialog.js deleted file mode 100644 index 6c77053..0000000 --- a/src/main/resources/static/editor.md-master/plugins/html-entities-dialog/html-entities-dialog.js +++ /dev/null @@ -1,173 +0,0 @@ -/*! - * HTML entities dialog plugin for Editor.md - * - * @file html-entities-dialog.js - * @author pandao - * @version 1.2.0 - * @updateTime 2015-03-08 - * {@link https://github.com/pandao/editor.md} - * @license MIT - */ - -(function() { - - var factory = function (exports) { - - var $ = jQuery; - var pluginName = "html-entities-dialog"; - var selecteds = []; - var entitiesData = []; - - exports.fn.htmlEntitiesDialog = function() { - var _this = this; - var cm = this.cm; - var lang = _this.lang; - var settings = _this.settings; - var path = settings.pluginPath + pluginName + "/"; - var editor = this.editor; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - var classPrefix = _this.classPrefix; - - var dialogName = classPrefix + "dialog-" + pluginName, dialog; - var dialogLang = lang.dialog.htmlEntities; - - var dialogContent = [ - '
    ', - '
    ', - '
    ', - '
    ', - ].join("\r\n"); - - cm.focus(); - - if (editor.find("." + dialogName).length > 0) - { - dialog = editor.find("." + dialogName); - - selecteds = []; - dialog.find("a").removeClass("selected"); - - this.dialogShowMask(dialog); - this.dialogLockScreen(); - dialog.show(); - } - else - { - dialog = this.createDialog({ - name : dialogName, - title : dialogLang.title, - width : 800, - height : 475, - mask : settings.dialogShowMask, - drag : settings.dialogDraggable, - content : dialogContent, - lockScreen : settings.dialogLockScreen, - maskStyle : { - opacity : settings.dialogMaskOpacity, - backgroundColor : settings.dialogMaskBgColor - }, - buttons : { - enter : [lang.buttons.enter, function() { - cm.replaceSelection(selecteds.join(" ")); - this.hide().lockScreen(false).hideMask(); - - return false; - }], - cancel : [lang.buttons.cancel, function() { - this.hide().lockScreen(false).hideMask(); - - return false; - }] - } - }); - } - - var table = dialog.find("." + classPrefix + "grid-table"); - - var drawTable = function() { - - if (entitiesData.length < 1) return ; - - var rowNumber = 20; - var pageTotal = Math.ceil(entitiesData.length / rowNumber); - - table.html(""); - - for (var i = 0; i < pageTotal; i++) - { - var row = "
    "; - - for (var x = 0; x < rowNumber; x++) - { - var entity = entitiesData[(i * rowNumber) + x]; - - if (typeof entity !== "undefined") - { - var name = entity.name.replace("&", "&"); - - row += "" + name + ""; - } - } - - row += "
    "; - - table.append(row); - } - - dialog.find("." + classPrefix + "html-entity-btn").bind(exports.mouseOrTouch("click", "touchend"), function() { - $(this).toggleClass("selected"); - - if ($(this).hasClass("selected")) - { - selecteds.push($(this).attr("value")); - } - }); - }; - - if (entitiesData.length < 1) - { - if (typeof (dialog.loading) == "function") dialog.loading(true); - - $.getJSON(path + pluginName.replace("-dialog", "") + ".json", function(json) { - - if (typeof (dialog.loading) == "function") dialog.loading(false); - - entitiesData = json; - drawTable(); - }); - } - else - { - drawTable(); - } - }; - - }; - - // CommonJS/Node.js - if (typeof require === "function" && typeof exports === "object" && typeof module === "object") - { - module.exports = factory; - } - else if (typeof define === "function") // AMD/CMD/Sea.js - { - if (define.amd) { // for Require.js - - define(["editormd"], function(editormd) { - factory(editormd); - }); - - } else { // for Sea.js - define(function(require) { - var editormd = require("./../../editormd"); - factory(editormd); - }); - } - } - else - { - factory(window.editormd); - } - -})(); diff --git a/src/main/resources/static/editor.md-master/plugins/html-entities-dialog/html-entities.json b/src/main/resources/static/editor.md-master/plugins/html-entities-dialog/html-entities.json deleted file mode 100644 index e9e8229..0000000 --- a/src/main/resources/static/editor.md-master/plugins/html-entities-dialog/html-entities.json +++ /dev/null @@ -1,936 +0,0 @@ -[ - { - "name" : "&#64;", - "description":"at symbol" - }, - { - "name":"&copy;", - "description":"copyright symbol" - }, - { - "name":"&reg;", - "description":"registered symbol" - }, - { - "name":"&trade;", - "description":"trademark symbol" - }, - { - "name":"&hearts;", - "description":"heart" - }, - { - "name":"&nbsp;", - "description":"Inserts a non-breaking blank space" - }, - { - "name":"&amp;", - "description":"Ampersand" - }, - { - "name":"&#36;", - "description":"dollar symbol" - }, - { - "name":"&cent;", - "description":"Cent symbol" - }, - { - "name":"&pound;", - "description":"Pound" - }, - { - "name":"&yen;", - "description":"Yen" - }, - { - "name":"&euro;", - "description":"Euro symbol" - }, - { - "name":"&quot;", - "description":"quotation mark" - }, - { - "name":"&ldquo;", - "description":"Opening Double Quotes " - }, - { - "name":"&rdquo;", - "description":"Closing Double Quotes " - }, - { - "name":"&lsquo;", - "description":"Opening Single Quote Mark " - }, - { - "name":"&rsquo;", - "description":"Closing Single Quote Mark " - }, - { - "name":"&laquo;", - "description":"angle quotation mark (left)" - }, - { - "name":"&raquo;", - "description":"angle quotation mark (right)" - }, - { - "name":"&lsaquo;", - "description":"single left angle quotation" - }, - { - "name":"&rsaquo;", - "description":"single right angle quotation" - }, - { - "name":"&sect;", - "description":"Section Symbol" - }, - { - "name":"&micro;", - "description":"micro sign" - }, - { - "name":"&para;", - "description":"Paragraph symbol" - }, - { - "name":"&bull;", - "description":"Big List Dot" - }, - { - "name":"&middot;", - "description":"Medium List Dot" - }, - { - "name":"&hellip;", - "description":"horizontal ellipsis" - }, - { - "name":"&#124;", - "description":"vertical bar" - }, - { - "name":"&brvbar;", - "description":"broken vertical bar" - }, - { - "name":"&ndash;", - "description":"en-dash" - }, - { - "name":"&mdash;", - "description":"em-dash" - }, - { - "name":"&curren;", - "description":"Generic currency symbol" - }, - { - "name":"&#33;", - "description":"exclamation point" - }, - { - "name":"&#35;", - "description":"number sign" - }, - { - "name":"&#39;", - "description":"single quote" - }, - { - "name":"&#40;", - "description":"" - }, - { - "name":"&#41;", - "description":"" - }, - { - "name":"&#42;", - "description":"asterisk" - }, - { - "name":"&#43;", - "description":"plus sign" - }, - { - "name":"&#44;", - "description":"comma" - }, - { - "name":"&#45;", - "description":"minus sign - hyphen" - }, - { - "name":"&#46;", - "description":"period" - }, - { - "name":"&#47;", - "description":"slash" - }, - { - "name":"&#48;", - "description":"0" - }, - { - "name":"&#49;", - "description":"1" - }, - { - "name":"&#50;", - "description":"2" - }, - { - "name":"&#51;", - "description":"3" - }, - { - "name":"&#52;", - "description":"4" - }, - { - "name":"&#53;", - "description":"5" - }, - { - "name":"&#54;", - "description":"6" - }, - { - "name":"&#55;", - "description":"7" - }, - { - "name":"&#56;", - "description":"8" - }, - { - "name":"&#57;", - "description":"9" - }, - { - "name":"&#58;", - "description":"colon" - }, - { - "name":"&#59;", - "description":"semicolon" - }, - { - "name":"&#61;", - "description":"equal sign" - }, - { - "name":"&#63;", - "description":"question mark" - }, - { - "name":"&lt;", - "description":"Less than" - }, - { - "name":"&gt;", - "description":"Greater than" - }, - { - "name":"&le;", - "description":"Less than or Equal to" - }, - { - "name":"&ge;", - "description":"Greater than or Equal to" - }, - { - "name":"&times;", - "description":"Multiplication symbol" - }, - { - "name":"&divide;", - "description":"Division symbol" - }, - { - "name":"&minus;", - "description":"Minus symbol" - }, - { - "name":"&plusmn;", - "description":"Plus/minus symbol" - }, - { - "name":"&ne;", - "description":"Not Equal" - }, - { - "name":"&sup1;", - "description":"Superscript 1" - }, - { - "name":"&sup2;", - "description":"Superscript 2" - }, - { - "name":"&sup3;", - "description":"Superscript 3" - }, - { - "name":"&frac12;", - "description":"Fraction ½" - }, - { - "name":"&frac14;", - "description":"Fraction ¼" - }, - { - "name":"&frac34;", - "description":"Fraction ¾" - }, - { - "name":"&permil;", - "description":"per mille" - }, - { - "name":"&deg;", - "description":"Degree symbol" - }, - { - "name":"&radic;", - "description":"square root" - }, - { - "name":"&infin;", - "description":"Infinity" - }, - { - "name":"&larr;", - "description":"left arrow" - }, - { - "name":"&uarr;", - "description":"up arrow" - }, - { - "name":"&rarr;", - "description":"right arrow" - }, - { - "name":"&darr;", - "description":"down arrow" - }, - { - "name":"&harr;", - "description":"left right arrow" - }, - { - "name":"&crarr;", - "description":"carriage return arrow" - }, - { - "name":"&lceil;", - "description":"left ceiling" - }, - { - "name":"&rceil;", - "description":"right ceiling" - }, - { - "name":"&lfloor;", - "description":"left floor" - }, - { - "name":"&rfloor;", - "description":"right floor" - }, - { - "name":"&spades;", - "description":"spade" - }, - { - "name":"&clubs;", - "description":"club" - }, - { - "name":"&hearts;", - "description":"heart" - }, - { - "name":"&diams;", - "description":"diamond" - }, - { - "name":"&loz;", - "description":"lozenge" - }, - { - "name":"&dagger;", - "description":"dagger" - }, - { - "name":"&Dagger;", - "description":"double dagger" - }, - { - "name":"&iexcl;", - "description":"inverted exclamation mark" - }, - { - "name":"&iquest;", - "description":"inverted question mark" - }, - { - "name":"&#338;", - "description":"latin capital letter OE" - }, - { - "name":"&#339;", - "description":"latin small letter oe" - }, - { - "name":"&#352;", - "description":"latin capital letter S with caron" - }, - { - "name":"&#353;", - "description":"latin small letter s with caron" - }, - { - "name":"&#376;", - "description":"latin capital letter Y with diaeresis" - }, - { - "name":"&#402;", - "description":"latin small f with hook - function" - }, - { - "name":"&not;", - "description":"not sign" - }, - { - "name":"&ordf;", - "description":"feminine ordinal indicator" - }, - { - "name":"&uml;", - "description":"spacing diaeresis - umlaut" - }, - { - "name":"&macr;", - "description":"spacing macron - overline" - }, - { - "name":"&acute;", - "description":"acute accent - spacing acute" - }, - { - "name":"&Agrave;", - "description":"latin capital letter A with grave" - }, - { - "name":"&Aacute;", - "description":"latin capital letter A with acute" - }, - { - "name":"&Acirc;", - "description":"latin capital letter A with circumflex" - }, - { - "name":"&Atilde;", - "description":"latin capital letter A with tilde" - }, - { - "name":"&Auml;", - "description":"latin capital letter A with diaeresis" - }, - { - "name":"&Aring;", - "description":"latin capital letter A with ring above" - }, - { - "name":"&AElig;", - "description":"latin capital letter AE" - }, - { - "name":"&Ccedil;", - "description":"latin capital letter C with cedilla" - }, - { - "name":"&Egrave;", - "description":"latin capital letter E with grave" - }, - { - "name":"&Eacute;", - "description":"latin capital letter E with acute" - }, - { - "name":"&Ecirc;", - "description":"latin capital letter E with circumflex" - }, - { - "name":"&Euml;", - "description":"latin capital letter E with diaeresis" - }, - { - "name":"&Igrave;", - "description":"latin capital letter I with grave" - }, - { - "name":"&Iacute;", - "description":"latin capital letter I with acute" - }, - { - "name":"&Icirc;", - "description":"latin capital letter I with circumflex" - }, - { - "name":"&Iuml;", - "description":"latin capital letter I with diaeresis" - }, - - { - "name":"&ETH;", - "description":"latin capital letter ETH" - }, - { - "name":"&Ntilde;", - "description":"latin capital letter N with tilde" - }, - { - "name":"&Ograve;", - "description":"latin capital letter O with grave" - }, - { - "name":"&Oacute;", - "description":"latin capital letter O with acute" - }, - { - "name":"&Ocirc;", - "description":"latin capital letter O with circumflex" - }, - { - "name":"&Otilde;", - "description":"latin capital letter O with tilde" - }, - { - "name":"&Ouml;", - "description":"latin capital letter O with diaeresis" - }, - { - "name":"&times;", - "description":"multiplication sign" - }, - { - "name":"&Oslash;", - "description":"latin capital letter O with slash" - }, - { - "name":"&Ugrave;", - "description":"latin capital letter U with grave" - }, - { - "name":"&Uacute;", - "description":"latin capital letter U with acute" - }, - { - "name":"&Ucirc;", - "description":"latin capital letter U with circumflex" - }, - { - "name":"&Uuml;", - "description":"latin capital letter U with diaeresis" - }, - { - "name":"&Yacute;", - "description":"latin capital letter Y with acute" - }, - { - "name":"&THORN;", - "description":"latin capital letter THORN" - }, - { - "name":"&szlig;", - "description":"latin small letter sharp s - ess-zed" - }, - - - { - "name":"&eth;", - "description":"latin capital letter eth" - }, - { - "name":"&ntilde;", - "description":"latin capital letter n with tilde" - }, - { - "name":"&ograve;", - "description":"latin capital letter o with grave" - }, - { - "name":"&oacute;", - "description":"latin capital letter o with acute" - }, - { - "name":"&ocirc;", - "description":"latin capital letter o with circumflex" - }, - { - "name":"&otilde;", - "description":"latin capital letter o with tilde" - }, - { - "name":"&ouml;", - "description":"latin capital letter o with diaeresis" - }, - { - "name":"&times;", - "description":"multiplication sign" - }, - { - "name":"&oslash;", - "description":"latin capital letter o with slash" - }, - { - "name":"&ugrave;", - "description":"latin capital letter u with grave" - }, - { - "name":"&uacute;", - "description":"latin capital letter u with acute" - }, - { - "name":"&ucirc;", - "description":"latin capital letter u with circumflex" - }, - { - "name":"&uuml;", - "description":"latin capital letter u with diaeresis" - }, - { - "name":"&yacute;", - "description":"latin capital letter y with acute" - }, - { - "name":"&thorn;", - "description":"latin capital letter thorn" - }, - { - "name":"&yuml;", - "description":"latin small letter y with diaeresis" - }, - - { - "name":"&agrave;", - "description":"latin capital letter a with grave" - }, - { - "name":"&aacute;", - "description":"latin capital letter a with acute" - }, - { - "name":"&acirc;", - "description":"latin capital letter a with circumflex" - }, - { - "name":"&atilde;", - "description":"latin capital letter a with tilde" - }, - { - "name":"&auml;", - "description":"latin capital letter a with diaeresis" - }, - { - "name":"&aring;", - "description":"latin capital letter a with ring above" - }, - { - "name":"&aelig;", - "description":"latin capital letter ae" - }, - { - "name":"&ccedil;", - "description":"latin capital letter c with cedilla" - }, - { - "name":"&egrave;", - "description":"latin capital letter e with grave" - }, - { - "name":"&eacute;", - "description":"latin capital letter e with acute" - }, - { - "name":"&ecirc;", - "description":"latin capital letter e with circumflex" - }, - { - "name":"&euml;", - "description":"latin capital letter e with diaeresis" - }, - { - "name":"&igrave;", - "description":"latin capital letter i with grave" - }, - { - "name":"&Iacute;", - "description":"latin capital letter i with acute" - }, - { - "name":"&icirc;", - "description":"latin capital letter i with circumflex" - }, - { - "name":"&iuml;", - "description":"latin capital letter i with diaeresis" - }, - - { - "name":"&#65;", - "description":"A" - }, - { - "name":"&#66;", - "description":"B" - }, - { - "name":"&#67;", - "description":"C" - }, - { - "name":"&#68;", - "description":"D" - }, - { - "name":"&#69;", - "description":"E" - }, - { - "name":"&#70;", - "description":"F" - }, - { - "name":"&#71;", - "description":"G" - }, - { - "name":"&#72;", - "description":"H" - }, - { - "name":"&#73;", - "description":"I" - }, - { - "name":"&#74;", - "description":"J" - }, - { - "name":"&#75;", - "description":"K" - }, - { - "name":"&#76;", - "description":"L" - }, - { - "name":"&#77;", - "description":"M" - }, - { - "name":"&#78;", - "description":"N" - }, - { - "name":"&#79;", - "description":"O" - }, - { - "name":"&#80;", - "description":"P" - }, - { - "name":"&#81;", - "description":"Q" - }, - { - "name":"&#82;", - "description":"R" - }, - { - "name":"&#83;", - "description":"S" - }, - { - "name":"&#84;", - "description":"T" - }, - { - "name":"&#85;", - "description":"U" - }, - { - "name":"&#86;", - "description":"V" - }, - { - "name":"&#87;", - "description":"W" - }, - { - "name":"&#88;", - "description":"X" - }, - { - "name":"&#89;", - "description":"Y" - }, - { - "name":"&#90;", - "description":"Z" - }, - { - "name":"&#91;", - "description":"opening bracket" - }, - { - "name":"&#92;", - "description":"backslash" - }, - { - "name":"&#93;", - "description":"closing bracket" - }, - { - "name":"&#94;", - "description":"caret - circumflex" - }, - { - "name":"&#95;", - "description":"underscore" - }, - - { - "name":"&#96;", - "description":"grave accent" - }, - { - "name":"&#97;", - "description":"a" - }, - { - "name":"&#98;", - "description":"b" - }, - { - "name":"&#99;", - "description":"c" - }, - { - "name":"&#100;", - "description":"d" - }, - { - "name":"&#101;", - "description":"e" - }, - { - "name":"&#102;", - "description":"f" - }, - { - "name":"&#103;", - "description":"g" - }, - { - "name":"&#104;", - "description":"h" - }, - { - "name":"&#105;", - "description":"i" - }, - { - "name":"&#106;", - "description":"j" - }, - { - "name":"&#107;", - "description":"k" - }, - { - "name":"&#108;", - "description":"l" - }, - { - "name":"&#109;", - "description":"m" - }, - { - "name":"&#110;", - "description":"n" - }, - { - "name":"&#111;", - "description":"o" - }, - { - "name":"&#112;", - "description":"p" - }, - { - "name":"&#113;", - "description":"q" - }, - { - "name":"&#114;", - "description":"r" - }, - { - "name":"&#115;", - "description":"s" - }, - { - "name":"&#116;", - "description":"t" - }, - { - "name":"&#117;", - "description":"u" - }, - { - "name":"&#118;", - "description":"v" - }, - { - "name":"&#119;", - "description":"w" - }, - { - "name":"&#120;", - "description":"x" - }, - { - "name":"&#121;", - "description":"y" - }, - { - "name":"&#122;", - "description":"z" - }, - { - "name":"&#123;", - "description":"opening brace" - }, - { - "name":"&#124;", - "description":"vertical bar" - }, - { - "name":"&#125;", - "description":"closing brace" - }, - { - "name":"&#126;", - "description":"equivalency sign - tilde" - } -] \ No newline at end of file diff --git a/src/main/resources/static/editor.md-master/plugins/image-dialog/image-dialog.js b/src/main/resources/static/editor.md-master/plugins/image-dialog/image-dialog.js deleted file mode 100644 index 2ff5051..0000000 --- a/src/main/resources/static/editor.md-master/plugins/image-dialog/image-dialog.js +++ /dev/null @@ -1,227 +0,0 @@ -/*! - * Image (upload) dialog plugin for Editor.md - * - * @file image-dialog.js - * @author pandao - * @version 1.3.4 - * @updateTime 2015-06-09 - * {@link https://github.com/pandao/editor.md} - * @license MIT - */ - -(function() { - - var factory = function (exports) { - - var pluginName = "image-dialog"; - - exports.fn.imageDialog = function() { - - var _this = this; - var cm = this.cm; - var lang = this.lang; - var editor = this.editor; - var settings = this.settings; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - var imageLang = lang.dialog.image; - var classPrefix = this.classPrefix; - var iframeName = classPrefix + "image-iframe"; - var dialogName = classPrefix + pluginName, dialog; - - cm.focus(); - - var loading = function(show) { - var _loading = dialog.find("." + classPrefix + "dialog-mask"); - _loading[(show) ? "show" : "hide"](); - }; - - if (editor.find("." + dialogName).length < 1) - { - var guid = (new Date).getTime(); - var action = settings.imageUploadURL + (settings.imageUploadURL.indexOf("?") >= 0 ? "&" : "?") + "guid=" + guid; - - if (settings.crossDomainUpload) - { - action += "&callback=" + settings.uploadCallbackURL + "&dialog_id=editormd-image-dialog-" + guid; - } - - var dialogContent = ( (settings.imageUpload) ? "
    " : "
    " ) + - ( (settings.imageUpload) ? "" : "" ) + - "" + - "" + (function(){ - return (settings.imageUpload) ? "
    " + - "" + - "" + - "
    " : ""; - })() + - "
    " + - "" + - "" + - "
    " + - "" + - "" + - "
    " + - ( (settings.imageUpload) ? "" : "
    "); - - //var imageFooterHTML = ""; - - dialog = this.createDialog({ - title : imageLang.title, - width : (settings.imageUpload) ? 465 : 380, - height : 254, - name : dialogName, - content : dialogContent, - mask : settings.dialogShowMask, - drag : settings.dialogDraggable, - lockScreen : settings.dialogLockScreen, - maskStyle : { - opacity : settings.dialogMaskOpacity, - backgroundColor : settings.dialogMaskBgColor - }, - buttons : { - enter : [lang.buttons.enter, function() { - var url = this.find("[data-url]").val(); - var alt = this.find("[data-alt]").val(); - var link = this.find("[data-link]").val(); - - if (url === "") - { - alert(imageLang.imageURLEmpty); - return false; - } - - var altAttr = (alt !== "") ? " \"" + alt + "\"" : ""; - - if (link === "" || link === "http://") - { - cm.replaceSelection("![" + alt + "](" + url + altAttr + ")"); - } - else - { - cm.replaceSelection("[![" + alt + "](" + url + altAttr + ")](" + link + altAttr + ")"); - } - - if (alt === "") { - cm.setCursor(cursor.line, cursor.ch + 2); - } - - this.hide().lockScreen(false).hideMask(); - - //删除对话框 - this.remove(); - - return false; - }], - - cancel : [lang.buttons.cancel, function() { - this.hide().lockScreen(false).hideMask(); - - //删除对话框 - this.remove(); - - return false; - }] - } - }); - - dialog.attr("id", classPrefix + "image-dialog-" + guid); - - if (!settings.imageUpload) { - return ; - } - - var fileInput = dialog.find("[name=\"" + classPrefix + "image-file\"]"); - - fileInput.bind("change", function() { - var fileName = fileInput.val(); - var isImage = new RegExp("(\\.(" + settings.imageFormats.join("|") + "))$", "i"); // /(\.(webp|jpg|jpeg|gif|bmp|png))$/ - - if (fileName === "") - { - alert(imageLang.uploadFileEmpty); - - return false; - } - - if (!isImage.test(fileName)) - { - alert(imageLang.formatNotAllowed + settings.imageFormats.join(", ")); - - return false; - } - - loading(true); - - var submitHandler = function() { - - var uploadIframe = document.getElementById(iframeName); - - uploadIframe.onload = function() { - - loading(false); - - var body = (uploadIframe.contentWindow ? uploadIframe.contentWindow : uploadIframe.contentDocument).document.body; - var json = (body.innerText) ? body.innerText : ( (body.textContent) ? body.textContent : null); - - json = (typeof JSON.parse !== "undefined") ? JSON.parse(json) : eval("(" + json + ")"); - - if(!settings.crossDomainUpload) - { - if (json.success === 1) - { - dialog.find("[data-url]").val(json.url); - } - else - { - alert(json.message); - } - } - - return false; - }; - }; - - dialog.find("[type=\"submit\"]").bind("click", submitHandler).trigger("click"); - }); - } - - dialog = editor.find("." + dialogName); - dialog.find("[type=\"text\"]").val(""); - dialog.find("[type=\"file\"]").val(""); - dialog.find("[data-link]").val("http://"); - - this.dialogShowMask(dialog); - this.dialogLockScreen(); - dialog.show(); - - }; - - }; - - // CommonJS/Node.js - if (typeof require === "function" && typeof exports === "object" && typeof module === "object") - { - module.exports = factory; - } - else if (typeof define === "function") // AMD/CMD/Sea.js - { - if (define.amd) { // for Require.js - - define(["editormd"], function(editormd) { - factory(editormd); - }); - - } else { // for Sea.js - define(function(require) { - var editormd = require("./../../editormd"); - factory(editormd); - }); - } - } - else - { - factory(window.editormd); - } - -})(); diff --git a/src/main/resources/static/editor.md-master/plugins/link-dialog/link-dialog.js b/src/main/resources/static/editor.md-master/plugins/link-dialog/link-dialog.js deleted file mode 100644 index 3e1d0bf..0000000 --- a/src/main/resources/static/editor.md-master/plugins/link-dialog/link-dialog.js +++ /dev/null @@ -1,133 +0,0 @@ -/*! - * Link dialog plugin for Editor.md - * - * @file link-dialog.js - * @author pandao - * @version 1.2.1 - * @updateTime 2015-06-09 - * {@link https://github.com/pandao/editor.md} - * @license MIT - */ - -(function() { - - var factory = function (exports) { - - var pluginName = "link-dialog"; - - exports.fn.linkDialog = function() { - - var _this = this; - var cm = this.cm; - var editor = this.editor; - var settings = this.settings; - var selection = cm.getSelection(); - var lang = this.lang; - var linkLang = lang.dialog.link; - var classPrefix = this.classPrefix; - var dialogName = classPrefix + pluginName, dialog; - - cm.focus(); - - if (editor.find("." + dialogName).length > 0) - { - dialog = editor.find("." + dialogName); - dialog.find("[data-url]").val("http://"); - dialog.find("[data-title]").val(selection); - - this.dialogShowMask(dialog); - this.dialogLockScreen(); - dialog.show(); - } - else - { - var dialogHTML = "
    " + - "" + - "" + - "
    " + - "" + - "" + - "
    " + - "
    "; - - dialog = this.createDialog({ - title : linkLang.title, - width : 380, - height : 211, - content : dialogHTML, - mask : settings.dialogShowMask, - drag : settings.dialogDraggable, - lockScreen : settings.dialogLockScreen, - maskStyle : { - opacity : settings.dialogMaskOpacity, - backgroundColor : settings.dialogMaskBgColor - }, - buttons : { - enter : [lang.buttons.enter, function() { - var url = this.find("[data-url]").val(); - var title = this.find("[data-title]").val(); - - if (url === "http://" || url === "") - { - alert(linkLang.urlEmpty); - return false; - } - - /*if (title === "") - { - alert(linkLang.titleEmpty); - return false; - }*/ - - var str = "[" + title + "](" + url + " \"" + title + "\")"; - - if (title == "") - { - str = "[" + url + "](" + url + ")"; - } - - cm.replaceSelection(str); - - this.hide().lockScreen(false).hideMask(); - - return false; - }], - - cancel : [lang.buttons.cancel, function() { - this.hide().lockScreen(false).hideMask(); - - return false; - }] - } - }); - } - }; - - }; - - // CommonJS/Node.js - if (typeof require === "function" && typeof exports === "object" && typeof module === "object") - { - module.exports = factory; - } - else if (typeof define === "function") // AMD/CMD/Sea.js - { - if (define.amd) { // for Require.js - - define(["editormd"], function(editormd) { - factory(editormd); - }); - - } else { // for Sea.js - define(function(require) { - var editormd = require("./../../editormd"); - factory(editormd); - }); - } - } - else - { - factory(window.editormd); - } - -})(); diff --git a/src/main/resources/static/editor.md-master/plugins/plugin-template.js b/src/main/resources/static/editor.md-master/plugins/plugin-template.js deleted file mode 100644 index 8e30169..0000000 --- a/src/main/resources/static/editor.md-master/plugins/plugin-template.js +++ /dev/null @@ -1,111 +0,0 @@ -/*! - * Link dialog plugin for Editor.md - * - * @file link-dialog.js - * @author pandao - * @version 1.2.0 - * @updateTime 2015-03-07 - * {@link https://github.com/pandao/editor.md} - * @license MIT - */ - -(function() { - - var factory = function (exports) { - - var $ = jQuery; // if using module loader(Require.js/Sea.js). - - var langs = { - "zh-cn" : { - toolbar : { - table : "表格" - }, - dialog : { - table : { - title : "添加表格", - cellsLabel : "单元格数", - alignLabel : "对齐方式", - rows : "行数", - cols : "列数", - aligns : ["默认", "左对齐", "居中对齐", "右对齐"] - } - } - }, - "zh-tw" : { - toolbar : { - table : "添加表格" - }, - dialog : { - table : { - title : "添加表格", - cellsLabel : "單元格數", - alignLabel : "對齊方式", - rows : "行數", - cols : "列數", - aligns : ["默認", "左對齊", "居中對齊", "右對齊"] - } - } - }, - "en" : { - toolbar : { - table : "Tables" - }, - dialog : { - table : { - title : "Tables", - cellsLabel : "Cells", - alignLabel : "Align", - rows : "Rows", - cols : "Cols", - aligns : ["Default", "Left align", "Center align", "Right align"] - } - } - } - }; - - exports.fn.htmlEntities = function() { - /* - var _this = this; // this == the current instance object of Editor.md - var lang = _this.lang; - var settings = _this.settings; - var editor = this.editor; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - var classPrefix = this.classPrefix; - - $.extend(true, this.lang, langs[this.lang.name]); // l18n - this.setToolbar(); - - cm.focus(); - */ - //.... - }; - - }; - - // CommonJS/Node.js - if (typeof require === "function" && typeof exports === "object" && typeof module === "object") - { - module.exports = factory; - } - else if (typeof define === "function") // AMD/CMD/Sea.js - { - if (define.amd) { // for Require.js - - define(["editormd"], function(editormd) { - factory(editormd); - }); - - } else { // for Sea.js - define(function(require) { - var editormd = require("./../../editormd"); - factory(editormd); - }); - } - } - else - { - factory(window.editormd); - } - -})(); diff --git a/src/main/resources/static/editor.md-master/plugins/preformatted-text-dialog/preformatted-text-dialog.js b/src/main/resources/static/editor.md-master/plugins/preformatted-text-dialog/preformatted-text-dialog.js deleted file mode 100644 index 9a30860..0000000 --- a/src/main/resources/static/editor.md-master/plugins/preformatted-text-dialog/preformatted-text-dialog.js +++ /dev/null @@ -1,172 +0,0 @@ -/*! - * Preformatted text dialog plugin for Editor.md - * - * @file preformatted-text-dialog.js - * @author pandao - * @version 1.2.0 - * @updateTime 2015-03-07 - * {@link https://github.com/pandao/editor.md} - * @license MIT - */ - -(function() { - - var factory = function (exports) { - var cmEditor; - var pluginName = "preformatted-text-dialog"; - - exports.fn.preformattedTextDialog = function() { - - var _this = this; - var cm = this.cm; - var lang = this.lang; - var editor = this.editor; - var settings = this.settings; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - var classPrefix = this.classPrefix; - var dialogLang = lang.dialog.preformattedText; - var dialogName = classPrefix + pluginName, dialog; - - cm.focus(); - - if (editor.find("." + dialogName).length > 0) - { - dialog = editor.find("." + dialogName); - dialog.find("textarea").val(selection); - - this.dialogShowMask(dialog); - this.dialogLockScreen(); - dialog.show(); - } - else - { - var dialogContent = ""; - - dialog = this.createDialog({ - name : dialogName, - title : dialogLang.title, - width : 780, - height : 540, - mask : settings.dialogShowMask, - drag : settings.dialogDraggable, - content : dialogContent, - lockScreen : settings.dialogLockScreen, - maskStyle : { - opacity : settings.dialogMaskOpacity, - backgroundColor : settings.dialogMaskBgColor - }, - buttons : { - enter : [lang.buttons.enter, function() { - var codeTexts = this.find("textarea").val(); - - if (codeTexts === "") - { - alert(dialogLang.emptyAlert); - return false; - } - - codeTexts = codeTexts.split("\n"); - - for (var i in codeTexts) - { - codeTexts[i] = " " + codeTexts[i]; - } - - codeTexts = codeTexts.join("\n"); - - if (cursor.ch !== 0) { - codeTexts = "\r\n\r\n" + codeTexts; - } - - cm.replaceSelection(codeTexts); - - this.hide().lockScreen(false).hideMask(); - - return false; - }], - cancel : [lang.buttons.cancel, function() { - this.hide().lockScreen(false).hideMask(); - - return false; - }] - } - }); - } - - var cmConfig = { - mode : "text/html", - theme : settings.theme, - tabSize : 4, - autofocus : true, - autoCloseTags : true, - indentUnit : 4, - lineNumbers : true, - lineWrapping : true, - extraKeys : {"Ctrl-Q": function(cm){ cm.foldCode(cm.getCursor()); }}, - foldGutter : true, - gutters : ["CodeMirror-linenumbers", "CodeMirror-foldgutter"], - matchBrackets : true, - indentWithTabs : true, - styleActiveLine : true, - styleSelectedText : true, - autoCloseBrackets : true, - showTrailingSpace : true, - highlightSelectionMatches : true - }; - - var textarea = dialog.find("textarea"); - var cmObj = dialog.find(".CodeMirror"); - - if (dialog.find(".CodeMirror").length < 1) - { - cmEditor = exports.$CodeMirror.fromTextArea(textarea[0], cmConfig); - cmObj = dialog.find(".CodeMirror"); - - cmObj.css({ - "float" : "none", - margin : "0 0 5px", - border : "1px solid #ddd", - fontSize : settings.fontSize, - width : "100%", - height : "410px" - }); - - cmEditor.on("change", function(cm) { - textarea.val(cm.getValue()); - }); - } - else - { - cmEditor.setValue(cm.getSelection()); - } - }; - - }; - - // CommonJS/Node.js - if (typeof require === "function" && typeof exports === "object" && typeof module === "object") - { - module.exports = factory; - } - else if (typeof define === "function") // AMD/CMD/Sea.js - { - if (define.amd) { // for Require.js - - define(["editormd"], function(editormd) { - factory(editormd); - }); - - } else { // for Sea.js - define(function(require) { - var editormd = require("./../../editormd"); - factory(editormd); - }); - } - } - else - { - factory(window.editormd); - } - -})(); diff --git a/src/main/resources/static/editor.md-master/plugins/reference-link-dialog/reference-link-dialog.js b/src/main/resources/static/editor.md-master/plugins/reference-link-dialog/reference-link-dialog.js deleted file mode 100644 index f1ad086..0000000 --- a/src/main/resources/static/editor.md-master/plugins/reference-link-dialog/reference-link-dialog.js +++ /dev/null @@ -1,153 +0,0 @@ -/*! - * Reference link dialog plugin for Editor.md - * - * @file reference-link-dialog.js - * @author pandao - * @version 1.2.1 - * @updateTime 2015-06-09 - * {@link https://github.com/pandao/editor.md} - * @license MIT - */ - -(function() { - - var factory = function (exports) { - - var pluginName = "reference-link-dialog"; - var ReLinkId = 1; - - exports.fn.referenceLinkDialog = function() { - - var _this = this; - var cm = this.cm; - var lang = this.lang; - var editor = this.editor; - var settings = this.settings; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - var dialogLang = lang.dialog.referenceLink; - var classPrefix = this.classPrefix; - var dialogName = classPrefix + pluginName, dialog; - - cm.focus(); - - if (editor.find("." + dialogName).length < 1) - { - var dialogHTML = "
    " + - "" + - "" + - "
    " + - "" + - "" + - "
    " + - "" + - "" + - "
    " + - "" + - "" + - "
    " + - "
    "; - - dialog = this.createDialog({ - name : dialogName, - title : dialogLang.title, - width : 380, - height : 296, - content : dialogHTML, - mask : settings.dialogShowMask, - drag : settings.dialogDraggable, - lockScreen : settings.dialogLockScreen, - maskStyle : { - opacity : settings.dialogMaskOpacity, - backgroundColor : settings.dialogMaskBgColor - }, - buttons : { - enter : [lang.buttons.enter, function() { - var name = this.find("[data-name]").val(); - var url = this.find("[data-url]").val(); - var rid = this.find("[data-url-id]").val(); - var title = this.find("[data-title]").val(); - - if (name === "") - { - alert(dialogLang.nameEmpty); - return false; - } - - if (rid === "") - { - alert(dialogLang.idEmpty); - return false; - } - - if (url === "http://" || url === "") - { - alert(dialogLang.urlEmpty); - return false; - } - - //cm.replaceSelection("[" + title + "][" + name + "]\n[" + name + "]: " + url + ""); - cm.replaceSelection("[" + name + "][" + rid + "]"); - - if (selection === "") { - cm.setCursor(cursor.line, cursor.ch + 1); - } - - title = (title === "") ? "" : " \"" + title + "\""; - - cm.setValue(cm.getValue() + "\n[" + rid + "]: " + url + title + ""); - - this.hide().lockScreen(false).hideMask(); - - return false; - }], - cancel : [lang.buttons.cancel, function() { - this.hide().lockScreen(false).hideMask(); - - return false; - }] - } - }); - } - - dialog = editor.find("." + dialogName); - dialog.find("[data-name]").val("[" + ReLinkId + "]"); - dialog.find("[data-url-id]").val(""); - dialog.find("[data-url]").val("http://"); - dialog.find("[data-title]").val(selection); - - this.dialogShowMask(dialog); - this.dialogLockScreen(); - dialog.show(); - - ReLinkId++; - }; - - }; - - // CommonJS/Node.js - if (typeof require === "function" && typeof exports === "object" && typeof module === "object") - { - module.exports = factory; - } - else if (typeof define === "function") // AMD/CMD/Sea.js - { - if (define.amd) { // for Require.js - - define(["editormd"], function(editormd) { - factory(editormd); - }); - - } else { // for Sea.js - define(function(require) { - var editormd = require("./../../editormd"); - factory(editormd); - }); - } - } - else - { - factory(window.editormd); - } - -})(); diff --git a/src/main/resources/static/editor.md-master/plugins/table-dialog/table-dialog.js b/src/main/resources/static/editor.md-master/plugins/table-dialog/table-dialog.js deleted file mode 100644 index 578adf2..0000000 --- a/src/main/resources/static/editor.md-master/plugins/table-dialog/table-dialog.js +++ /dev/null @@ -1,218 +0,0 @@ -/*! - * Table dialog plugin for Editor.md - * - * @file table-dialog.js - * @author pandao - * @version 1.2.1 - * @updateTime 2015-06-09 - * {@link https://github.com/pandao/editor.md} - * @license MIT - */ - -(function() { - - var factory = function (exports) { - - var $ = jQuery; - var pluginName = "table-dialog"; - - var langs = { - "zh-cn" : { - toolbar : { - table : "表格" - }, - dialog : { - table : { - title : "添加表格", - cellsLabel : "单元格数", - alignLabel : "对齐方式", - rows : "行数", - cols : "列数", - aligns : ["默认", "左对齐", "居中对齐", "右对齐"] - } - } - }, - "zh-tw" : { - toolbar : { - table : "添加表格" - }, - dialog : { - table : { - title : "添加表格", - cellsLabel : "單元格數", - alignLabel : "對齊方式", - rows : "行數", - cols : "列數", - aligns : ["默認", "左對齊", "居中對齊", "右對齊"] - } - } - }, - "en" : { - toolbar : { - table : "Tables" - }, - dialog : { - table : { - title : "Tables", - cellsLabel : "Cells", - alignLabel : "Align", - rows : "Rows", - cols : "Cols", - aligns : ["Default", "Left align", "Center align", "Right align"] - } - } - } - }; - - exports.fn.tableDialog = function() { - var _this = this; - var cm = this.cm; - var editor = this.editor; - var settings = this.settings; - var path = settings.path + "../plugins/" + pluginName +"/"; - var classPrefix = this.classPrefix; - var dialogName = classPrefix + pluginName, dialog; - - $.extend(true, this.lang, langs[this.lang.name]); - this.setToolbar(); - - var lang = this.lang; - var dialogLang = lang.dialog.table; - - var dialogContent = [ - "
    ", - "", - dialogLang.rows + "   ", - dialogLang.cols + "
    ", - "", - "
    ", - "
    " - ].join("\n"); - - if (editor.find("." + dialogName).length > 0) - { - dialog = editor.find("." + dialogName); - - this.dialogShowMask(dialog); - this.dialogLockScreen(); - dialog.show(); - } - else - { - dialog = this.createDialog({ - name : dialogName, - title : dialogLang.title, - width : 360, - height : 226, - mask : settings.dialogShowMask, - drag : settings.dialogDraggable, - content : dialogContent, - lockScreen : settings.dialogLockScreen, - maskStyle : { - opacity : settings.dialogMaskOpacity, - backgroundColor : settings.dialogMaskBgColor - }, - buttons : { - enter : [lang.buttons.enter, function() { - var rows = parseInt(this.find("[data-rows]").val()); - var cols = parseInt(this.find("[data-cols]").val()); - var align = this.find("[name=\"table-align\"]:checked").val(); - var table = ""; - var hrLine = "------------"; - - var alignSign = { - _default : hrLine, - left : ":" + hrLine, - center : ":" + hrLine + ":", - right : hrLine + ":" - }; - - if ( rows > 1 && cols > 0) - { - for (var r = 0, len = rows; r < len; r++) - { - var row = []; - var head = []; - - for (var c = 0, len2 = cols; c < len2; c++) - { - if (r === 1) { - head.push(alignSign[align]); - } - - row.push(" "); - } - - if (r === 1) { - table += "| " + head.join(" | ") + " |" + "\n"; - } - - table += "| " + row.join( (cols === 1) ? "" : " | " ) + " |" + "\n"; - } - } - - cm.replaceSelection(table); - - this.hide().lockScreen(false).hideMask(); - - return false; - }], - - cancel : [lang.buttons.cancel, function() { - this.hide().lockScreen(false).hideMask(); - - return false; - }] - } - }); - } - - var faBtns = dialog.find(".fa-btns"); - - if (faBtns.html() === "") - { - var icons = ["align-justify", "align-left", "align-center", "align-right"]; - var _lang = dialogLang.aligns; - var values = ["_default", "left", "center", "right"]; - - for (var i = 0, len = icons.length; i < len; i++) - { - var checked = (i === 0) ? " checked=\"checked\"" : ""; - var btn = ""; - - faBtns.append(btn); - } - } - }; - - }; - - // CommonJS/Node.js - if (typeof require === "function" && typeof exports === "object" && typeof module === "object") - { - module.exports = factory; - } - else if (typeof define === "function") // AMD/CMD/Sea.js - { - if (define.amd) { // for Require.js - - define(["editormd"], function(editormd) { - factory(editormd); - }); - - } else { // for Sea.js - define(function(require) { - var editormd = require("./../../editormd"); - factory(editormd); - }); - } - } - else - { - factory(window.editormd); - } - -})(); diff --git a/src/main/resources/static/editor.md-master/plugins/test-plugin/test-plugin.js b/src/main/resources/static/editor.md-master/plugins/test-plugin/test-plugin.js deleted file mode 100644 index bc4da31..0000000 --- a/src/main/resources/static/editor.md-master/plugins/test-plugin/test-plugin.js +++ /dev/null @@ -1,66 +0,0 @@ -/*! - * Test plugin for Editor.md - * - * @file test-plugin.js - * @author pandao - * @version 1.2.0 - * @updateTime 2015-03-07 - * {@link https://github.com/pandao/editor.md} - * @license MIT - */ - -(function() { - - var factory = function (exports) { - - var $ = jQuery; // if using module loader(Require.js/Sea.js). - - exports.testPlugin = function(){ - alert("testPlugin"); - }; - - exports.fn.testPluginMethodA = function() { - /* - var _this = this; // this == the current instance object of Editor.md - var lang = _this.lang; - var settings = _this.settings; - var editor = this.editor; - var cursor = cm.getCursor(); - var selection = cm.getSelection(); - var classPrefix = this.classPrefix; - - cm.focus(); - */ - //.... - - alert("testPluginMethodA"); - }; - - }; - - // CommonJS/Node.js - if (typeof require === "function" && typeof exports === "object" && typeof module === "object") - { - module.exports = factory; - } - else if (typeof define === "function") // AMD/CMD/Sea.js - { - if (define.amd) { // for Require.js - - define(["editormd"], function(editormd) { - factory(editormd); - }); - - } else { // for Sea.js - define(function(require) { - var editormd = require("./../../editormd"); - factory(editormd); - }); - } - } - else - { - factory(window.editormd); - } - -})(); diff --git a/src/main/resources/static/font-awesome-4.5.0/HELP-US-OUT.txt b/src/main/resources/static/font-awesome-4.5.0/HELP-US-OUT.txt deleted file mode 100644 index cfd9d9f..0000000 --- a/src/main/resources/static/font-awesome-4.5.0/HELP-US-OUT.txt +++ /dev/null @@ -1,7 +0,0 @@ -I hope you love Font Awesome. If you've found it useful, please do me a favor and check out my latest project, -Fonticons (https://fonticons.com). It makes it easy to put the perfect icons on your website. Choose from our awesome, -comprehensive icon sets or copy and paste your own. - -Please. Check it out. - --Dave Gandy diff --git a/src/main/resources/static/font-awesome-4.5.0/css/font-awesome.min.css b/src/main/resources/static/font-awesome-4.5.0/css/font-awesome.min.css deleted file mode 100644 index d0603cb..0000000 --- a/src/main/resources/static/font-awesome-4.5.0/css/font-awesome.min.css +++ /dev/null @@ -1,4 +0,0 @@ -/*! - * Font Awesome 4.5.0 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.5.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.5.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.5.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.5.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.5.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.5.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"} diff --git a/src/main/resources/static/font-awesome-4.5.0/fonts/FontAwesome.otf b/src/main/resources/static/font-awesome-4.5.0/fonts/FontAwesome.otf deleted file mode 100644 index 3ed7f8b48ad9bfab52eb03822fefcd6b77d2e680..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 109688 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%0D}#zSrRb8FuaocFSDv)#ldj3 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 diff --git a/src/main/resources/static/font-awesome-4.5.0/fonts/fontawesome-webfont.svg b/src/main/resources/static/font-awesome-4.5.0/fonts/fontawesome-webfont.svg deleted file mode 100644 index d05688e..0000000 --- a/src/main/resources/static/font-awesome-4.5.0/fonts/fontawesome-webfont.svg +++ /dev/null @@ -1,655 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/main/resources/static/font-awesome-4.5.0/fonts/fontawesome-webfont.ttf b/src/main/resources/static/font-awesome-4.5.0/fonts/fontawesome-webfont.ttf deleted file mode 100644 index 26dea7951a73079223b50653c455c5adf46a4648..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 142072 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 +|+&Vdls@0SAya!8#E9iVniRwHu0GY;H*n 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�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%0D0!#Bo^>xe$Z4SmykflG_VnkLvLv4@e#4_y4Q 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�>=olG4!T4BYNCc4f{&*Kgc`m= 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 diff --git a/src/main/resources/static/img/tm-img-01.jpg b/src/main/resources/static/img/tm-img-01.jpg deleted file mode 100644 index 1aceecdda4ea5a1ff2cac8040f9db7e68686f106..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 139858 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

    N_21N;e;0x&Gy+sY;iRp9W{+WaBy~ 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


    eH9!Nv4OzI` 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 MwX(*eqx;YQ+5F8t@c;k- diff --git a/src/main/resources/static/img/tm-img-02.jpg b/src/main/resources/static/img/tm-img-02.jpg deleted file mode 100644 index 6dc667f5406dfeeab703759b570b7ed2f7428b6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 190155 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 z zeqBu{MTdGz=MwNXB&pKt&FnN(@;aLoIuJz|no-n_#nrn&;B+07y=fIn5t6aRY)+S9 z!lKyilcl(cf~3uqahVCyPN~bc^=bBd%v*FFl;$!|B*9Foq%(yo9dyBp_`e&EmW(j;VTWv=n)6=Z9dlN=em+r6ym+D9gZx58 zv0ek0Rk!NYQbw%%cWcUol~TQ-S#%#S_iO3fts09mt8=x7h!z7IcyXll1#qAdl7oe^ zYlC|ZH~#=`uN0}ed6V+Q+_^UZ9ItQT=KWfcr)*_66Cf%bTK*uT#ea&Cpp&kpN$EP= zD|`L4SP0kyZk5hlS364rb9}v3# z0JBNDXu4aToQ*5QPflSUHP{XxCoW$V7&hwA#+*tJ@(@4O`Dvt-801n^ITp(L@HFbh zUg}!fm(#T^#F25HM!ZQ`*k#qtJ8=Ca}&p|Cr(zAjFIK@Q~@H5cM$-N z#gXG;R~+1v)J=R}vr2a%;htf6TWX7s40)MxW>r7&D|5G4qxDH(7L#i&$Y_rSK*uIu z!u-DtbU(w$g;%N4>P>RZ<+b|?+we6EtXlWiwv1}oYpCw_(O8c)?s6C5!kjn>+Qz_e z_fT#NV{7w!{{T&6Y%Vf3Hn(@_pme`={{T&3Nh&o@?DtVDrb4zTp{$qgBf6el@J^(5 zb%rm?Di^{T@2<2}V`Y$=oW@F2>bAEGekzmdT*)gQWCVf-viGA>|5q_S)U`i)0m>7d`jZ#`LSx<_9CF;n*%Km~xxwI1goId!E%A54wex zzzr`;G?9sId&a`x+*?uXsYFvEjI~R{sEc-YlA+htlSgb?JMU#^ckSkqd=O zrR8KLl1M=O9&ehLZ@Z0WnWhapoUb6qo2cvLkCn3XekyI3OpVJaW>_R_0==1T8^N0V zJk1|1NXEVo=W`r!~%&Do+5~Qpmf5CrgkiA!Ni0 zsmIw$Tz-BemCo#PZ7x0EwOLCnu1yNXm4#Q=iRy7Epk$NW+@lspV>s{YH4k z-Xc!o5>-`WTi^>d{M^eM8ilsdjl}GjO*Z5ni)F4PUly?~&Ed!8r{3-u#*mvFF4<}^ zRN{LmdREVAw}u?rU95#x77~zcERwR8{8S^}ZK89L`i=8)%4A(sGYfLxmzVKS-E3nq zZ``mjyPl)lQ6?6}eipSCmT#ttdk%etHC$S{jU!qn{vf_e%c8ZH#I$93Sz|VC zt-v`Ep(Dy^x6v+phkQ@VIRPm)~;3~;~%_CBHi-GL;d{i)- zsbn~Fvf|eMZ^KU$#T<-n)17pZJWjuh^{J(YcF;;thrNJhZxWC^Rg`+kk5PfsOJ9v5 zuxS$DymwG^;x1|7{O_dKqYuK@xktZ=J{k+7M&HDa*sh;0qe|-Z%1D}WmQjm)s#y1` zC)muGZV0iE0xg<%{Jv%LQ%aFO=hCC*gVdl#Wp!^4RacoL9364xZ` z9hq1uTyj1Y0_2axD}0T$o%gaRUr(JJ#S%5Ob_8PVzC~r`{aS-_46^-7FnQKca>;eb z730GkX?Ht_8)dmx=6Hd0vo*_nUfd2%MR$;#Q40;kN0g ZtC?YO>IUifyIz_K$HK zic57CFj2UWZou=cZT8TW>X&mX9WI#MSyz`Pw>QgDMVC!%94++4_0rv+Eo6?9v?MT7 zc55$S9BCVA(oQxx+Sl^w%&u$bThz(Q#!aYF>Q5UhG2%Wdjww0kjFtyJf7u+ZkCkZc z=Gx6Z)z=|9qR2X(_!H0gZ~C>?8>2KVRlhAUMNy|R6UmO8rMZ3@kihb7H;zNH#N9P~ zZ>hwe*{NZT{+(nuoRN6WTuJ-%udhh~l0O_sNCw&k@66PjnF>W@UaKxyG0?V1{4x1C zTE3)_^rkMVus@e!%2db0iBi8NR2udiG~#bo0OCj_cia0bL1EcOHG5d|TZJ8Ty@3A8 zYn2LHm~s6Ta5+a{(@MCA+f7@QdAJLkP-TGLKWc@z?Jatdn{9X(QJ}}(P5G)#yow9T zEs8%#hw|RnU&ORbirrNl#aCPR+sG}YNFqj&Pz>x3PqAF-P2Tg^iZruN@d) zRq;}w+bmmUQq1vc#joOPo@}YN3fBxnq%GnL*r19sEMUI9CESaYGV=>F^dO#u{Z7G+fUTdu>kx z8n!IWYYcn+wLH^ZHt>+H$N@Ky*dXk`nW`PMXQs>x%OE*l;p3)f;i<1NXy=4S5oOg^ zE(Y2b9&BiB&L$b|(wPn8P^0*b^V+ulp|IFV9_MuOLX#F@U41p zt@`phMH!k6q7ssBCZ1(EJ4dCk89U42M8Q>gt9iKC@4lDRHmo0G7S#k>jm*>fhN3fjaAn-*mnc5`EmEagrN*gV!^GvZewIQ!~F5i?3h)-)#E(2~vPQCwqGX2Z&Yl)g^HXjex#T%=t|)S1#43(e=5GxH62@gt zTv+2_ZU@81<*un&6^fA|l=TIVD+`T#hs9WGI?iNB+W5z9GY7o?0Ct?mDUT?~GI1dO zE@SJQZaZ(= zQn7g&Ynu>3H$H1u*KFfp#1`E}Yiru-zuut?@-U1GB!KfTv;P299o%3%ZQ^I-lO^ug zn&aWFqzh+7sMpGcHH8F}}U_r+Cn! zKLADa_nzt^QIfv`J1HEh-Z>S*3|8Ss4`W~VX{DWI+Xb^qGbq9P3ObB%A2tlMePhw! zE9)Cc81ME_f>uZ^aQGl7vg?3Ve?iNI4xdXyiQK!VeyGVr` zY>nMvVpUN5aT9xG=1&9uD%@{m^#$9;qT(qCjgYF281rlURkqykXN^_~ETtJk$r~;= zY)>`0a^%T>4Mf{*+B+b+=ZKM!h4C2i#QxPHbYy8+>?J^NuVv{Zjv%v;UM7ifWM%Pn zR^)ybr)2~vxwBgB?b70-k^;*wQ3@)YoE)rlt-jh#^X+G6&pQ(l%xJ1Xwnn3qW9o1& z^E)a#l`YuIA{`&^riXaZleGMjA~?n^{q1}j(=VxqmNr79^7RLC8V+BI)X~MfRZ(n| zE0?%B94&rP<7KDW$GD0~qHT9MkOLoxczbKNmB9 zs@=Zowl*YOvimCk0L(bkW;7zhzK2W#7x;`#lmdHA24!i>jS)sMvEn~h;iis6A%(Jy zg}vDy^W~>TxJNpLI-PhEQi#IFG;IZo71rffPuZpQ7Lyy^|tj1WB&lB zEbb?ak+@J!EhDFiq7CL=T68^03IJqn7<22*d~yE%RF4#GB=@k;FE?eBaQ^^X%~Czm zG_d~wr$hOSO}K@y7V$rpvxUM)ZpI_04k25C<4iw)wP`y09hj7r$^c zBZ*YNTGBF}EIUc|WkN(y1(qZvYH>awKX!yOE2F4!(s7F`6P7kVwNdXRaLEOlWahl7 zW65#v8C1P6Q+CHGWEW*;dvyXoGj?L_`xw^u)HjmH7Tz02(nqwx7?UEeQsHA>Ss&u% zR;Sy;5S9@Ekr{)j0Zxf+KQ;WhcvG5;w=A+DMCp-hvAV|JAs#DpWm}D?Mw@LkjT^-$ z@R8283fHuw;`n}Q3ZWLwo6bp7!q{=}X@A90bWpsv=|?h~voi|-2fCwY+@{)C^1v|4 z@~4G7%go*;Zc2Qkj$Wg?4!KoHRNwgax!1+Yan81TN#QbjeDOBz+64+XGPfR3MmVSC zKZWUcJ2Z^U3a;UZWtDiGLB2Aab${Ka+`&7=8!#y_lNSSkxd++erk8T1O5Ja+t$lUxpbObU0Ayvj?k7>@ zsF4Oux4uhjF-u&6!;ZY`Sq`G=rYTgA!8Ovymz@616C7PKtP6IR_*CoRZ)Ff#+1NK! zSdY<7x@9631Ok3AG`GH$WhlFt)vX5-`s6tKKWe^?H8O6};aiubjGFY^9%je;)ZIvm zZQ%!?hX#>Q@x8y*YK}d;eI?<8oQ7YE-|AtoGuz z@SQ6-V03gD1;b2ErFHE6>H~APLac7Db|4<(*?K5q5JX635m`<9!8~X@QWv$@^JA5{ zxxLnNZIY15q?$xd00`&x@-;b zmi^jV+BGY5@+xf3z7yM7Bz6y}Ti^NW;YjWkU@X9sd;b7USe*wDI96DY7~14qVtY*q zV{0<#H3Le^bqj5GN-&UG!TX=IIBpKKt>_aSwCbVSCPcU_H2`U+!+LqQ$g%FEypnEQ zC{oSkHc&0w;jWxb5pi&vqz!VsEvJ9L)IT_;Cd|l<#BmyE*8S?~q+(Lnw4qpNx|UE# zBj#4Dk|v481?oCSpkuVS*O;n*RXZptA2K+svwlSeY#nvWvG$QRKBoyKUNTc5936 zq+2j+d_?LR{xzxnM{xrciag}ospqoT86&?Wsqv@reBAUSM>r1&#GX6`g7k_dYatC9 z-H$NtJXWHSh%F!|hDSrHzP>7Ly@p*-;jq-lVh?RyxONY3WmsP$#*{JRemdHTxX5s# zGP&%fGq*cp$_Y3YI$5j5B^o}sEfd>D95Wr)_^FZ9hc>l|*B;s(NZX;}bK$!2IOWTctC*77 z02N+lcHV`QnE^dE z9lvz|EbdK#y|4a!)GgU?DWg`zkQXc3*Vfml%##hS+C-C7{vgFj9IQAyY5UZ7TV0$7 zc@(XbbI8o_szxk9vGKTWU{@Sy&Ua3Bu_7m4GNmOdru{PAmi)ZVO_#+|?DlaDrr0SF zW0bC3-t5lYOI-PBknNUclpy+tW-k^xoD>yae+%W8Cx@E18$^yM1VD7q{{RkH*@kMs z>dfFT>iD@|_tAr>J=l%L+N zmfC3~ogbXK@`d13al5N?H}2EJAS0$o7+7DsLPoUP2?h4EbftJP213z>!O)R@WG$0; zaph{7K*X%1w9>V*WnTd7@bdov55-Wuvc&+D+#n zu+7Qg-D+ke^y4L`j1gik1;>9HHv<(Up!e(j6=l_5Qn$9f^zt|YAVEKf3j%629Ik|h zfAj3M6_gjyG(`aH^0yBc#YD+`b+FZJPjx<5EJz_(9}W0XRZR)z2SqEw!}L%rg;kA{ zxAc2Obrpi5g(mi}ej>o|y%k3e2CC_*i}nNTr;IxpWFMKPr9~_qLo89X)+IT3zERy) zhix%-1(YBmfVJ@@wT1Rtr*E0nTH-Uup|q* zc^HAEfG1BK^r+;7eJMsN%tE}V%j`Yh7lyX`xMWSVeL`X15;6=1IRWf$@r_F?sAiIR zNe%#FUAV9Uq*n{JnQzotTk{!|Tnjdeaq^!PJl?CZn`;Y5j|(xfl10^&k&*kdT9B1) zo0G|n^dk3O{b`yF(#IPfL~(J)T$p%GHgUc~C5B|xP9vBfx|SQ6OoW3Qwl1ZIi5%Pw zYF(_+$h&x&@oqKFGN4=@^))W;3yH6Lb~^t6wMn*lI&x~Ej~zQTpkQ}spGhHm+?#lX zxqsH87!bo;O~L&Jtj5~#6_H_o=e;53Q>ZRHBv4Y^hlTi4tl1sPkYbAC2Jb(re7_Aq zCWuF#S=_fjb-o)P{Z$_J9&!NzV-{U_TEa$4KZ{o(~l}N|( z^5yc-F3E`Cp4;}Y?5>j}Nf=y&fsM4+wu0ThwZfpVx8p<2A1F!0Ns!hJ?GYo>w6p|KGcI<62{4L9sEE5;pPYv0nh^*F2SeqM+ zMwu>3-fEj=xXoHN1tmkFR@W;Z5XOr|yoketGs;ej9DGPN{al*9rR0gzEI%aQ9XWFz z(M8~Qi-RMEE=BY>@yQ>|wJZeX5x_B0Z5s|Cc!MJyep+RYExd^`0Q*)^i9N4;n#_My zzYR(YxQM#7pMYVfHMu`_h2nj-C=4$U0ZXyHm>yEL@MBVSj#2569uw|9R;fUTJjPlL z81`%5^A2hW(tJdELz%V&+Sj&L$bKxSu|EF*e`PCT4fMBl0U6asw3yuARwJ^O<3XUe z8;;8AM<9&f5Z2cH{{W=ZJ1}b!4`t~lnDpa7SwI&oK)o?_Ua}}L<&p7mxE>>FELg|4 z#?b}PwY0DU!YB+HCrhl7gOWHPa*%DW;qcNsc@3i--M1A6&Q^G~2-(W0GHD3ZD=vWd zWmvpXMYeJ;7$IC+mcZEY;H!@=JhX##6hJUi%_Z4@$CVX;zcBGK*4bTto!~`{%3ZSs z%U>I}1m(x|Y0?75B_EP73eE}T#c!qm02OMO6d6eAIVR!era4U|g@|^%!WUyx3AKFr!T0mmEsDF>b;*e$lP4 zX-M@cktH+R6paGof~nAw!G>OHkvH4PlbGU(C4&}Q^U4Q=d_FG~ZhbWqFHp;`3rUK` zu!Ex)I-O5}e0;Ui-hN!|6{LqpBntr1+bg_={{V*^YC?+8I-kmnYNTBFk7kv#+_PgG zaw&c`!Hz5%+*cFLUZ9dqwe|6xBi+)(TEAECBXd2HDcGWZ^UXIoFk~Nznzm3OyG_Wjfq7VHJIu+;ITSp|`F zI`Q^3J|RE>NNZl!>>bC;l?828L1kS}+_cW1;%uNjvo`l>K)5&5bjNSsP_R8Yqt7W6 zoQ?Q!{S*s1<^<$#cY{k5j?r#1Jvk9>dAzxHif9JuoZia%3;o8g73GZf+y)dRk~T=# z*b+HzC?nc7Zo}a|<54scgp(iyji>w=dUN*Of~4jcsrCYEFQRU<2dK0USIm zO66HYN5zl+W0p|+E6x7>lE zMCckmZUsnXD@(Xp7A1e;0?4{v*EhYu@Z&}niZzwE6}GqbjVk+%v3E^SDdBw$txCIy z@QrxwmiHQQI_g{H<*cC$BU7Ru(c9s_%}nSd5lMWaPH;V=PYwLEn9kA6IRZG!>)1K3 z%ka=`x?{K}CXzS9Aao&zAKItfgOq5asna=QZ*QGH4>HuPwbmtEm@y*f;R3N`P)@xw zaeHaPgTnn4T|%aV@1rtA5U|T~C16q8AAG0(AWxPv2VGhNHh41@0}YT>bR;=q0)Y^C z%*1s$a9?2YYwfkGnlOyu686yc>b>6TnL?vW5`!GzvlYJ|%kZ)O?K_iqAR!ppjkve6 zv6vVF;*zrXt;bv2#6N0`u_>Km3?RtgQ^b&U(xBZ;rS}0#BnI!w!ufHwdU$EtK-k=? zSZEFIMIWemqY}hp5){>wfC+KU@cgy)5;d2`(IuHL!9#K9B9;xnXq>RRrIoe#oo~P& z*`!dyM#!nL(bOJY4ZO5AlOsf+gSeEbD;gftj}!2!_?nMXE#IjIzSm~z;bYrJmU24z zF~^Zx_>SDZ8je=m?qS@@N?u~Pu09ZllxQ+%$$t$)v)pc@+U+1lX|}PE)@aechN^rW zQr$+8zr9gxeLrgyFvz(R8h&6hb9P;E)5JV}YE911Z4?paqDdoyGRzK{NJ`wYw?FFE z?oU*n(!%cdVuR+D%R_Y^`D&1{JxJVYfd*t~tm$Wv{-?_-mY^D%=*mzzQ|D#q!i~$jt;Lkza9Z zvge~n--LNqp-r@~Pw9|3k8$fftutiU=21=XU{!YUH#aNPo}49(#OkWg1Bqdh6>OsE zxYx$HH-(qO%TdX?Q4B30F(idRG4&iMB!%Dw_|R!wX<*q6bkkGqrs+nGjmoaZ zzS08hWLP@ich)Waf{ zmKFej$4iAeiaTl02;?LaCn*>0%7Knh2>|I~duVJs4M`%HqmnYC7krrOuP;JF$1g1|=5}aR$w|%mbMoKC%}`6$ zMiMqEFN-p+gtJ=}Z<>nDw{4tnatzCLWw!#_p|y23pcA9x<=D%T_I@e{ZqAu=0iZuNL&Kr? zYCf?^6dQ#>Yj$4eU2FcRq}L>A`Ex|wftH?HM%=3I z9x?nGi-_;uwj!8M1Us0dHwkja8}^~`{`C^EIyPcAj$wUHw!XNJp0nG^&_?883u5d+ z(?U5(`MGLA9`fec{%ZbSUc$V{YJHym=`uG>i=Az4KN?%Y!k95C`~#^CamJ1>m#Ra==*rlHyU;txEgRYiU3kH4c|+Rf-4)5{(ZHQ zt}3MS`@NMILNFc^ek0f^fZ(hhm|KT=qjAjS9GhH6alJ_<-U%8bb!o^J0CBPTYAE+R zo{TammO|3@Ag z1`R&olF;o?Fk*@{(~iHr;;8zUjls}DIBSSocHXu-ID<>R+M>rIlbmst;FlUJf9?J+ znW|;qJ3%zyKGbRzq&8U2W839yYwM+%4&4b&#_PtzHDv@V3`>^ydA!vMCgW|pSAj1e zSvr|xcT<;%Esr<%R<^OtF_&>Ob&#RTQyq$=N6Q|q;%Z2}EgCJ;z1mSHQSm%_tznin z@cy?gPb_f9xs8A58FwrN5c7W`q7GOU+Pi{c33*I0;lpN9JVAIpjVzxMR!W<^5WMO|yse_&0d$;|Qyi zfk4(XcNu>ZC-Hb_dZzDn6GOP1r$AUvlScRnh!*5gn5jHu1z zUN2<)p@mEZ#IX^Q8^aquTfmv z9$Rq+n{4v+nrQ)$wV3kUhS#^|UoA+>k%MkCW={#XZ@GNUOSe}96V!dezCfqKb!Fx8 zd~{wzs~pv`yAf2WgjmJ+D}jv(tB4{j~ypcty@!+^Cz zG+QmpLpfoznPQU}O0G?V0cXT(%UfO7t9opkXm?|&x9Z!b`3vI26Vq|x={^##!$d}) zBUt&S}7F>7`8^k|)jDDvs)lxoU z)=3=LToH-6$Wd5Os=c-FmbVjPIYAU$7DTzQzYA~~ijg+#%M6^Y3CE`9+Ow_f$IC`i zB8F94HIn`n*N6F~JX<~U4Ybx0!63yQS6jb*4ycLqTx^=IEyP&!WAak|W>{(i0Id#~Yk_TVp!QyZ#_gu2J_laGSQQAsdAW@!k#BD8G~;S! z3c^Oz@UXuSYZ*{9U8M*<>xy=Q(I~eLB=+e?Zn89+b8_f{z#hY{jrUR&D=}_p$NS7k z)Z6^pjB2?_B9R=Bw=g_x>TVnHc&WzXStL@xhn2A_+zr9H-jRxyjEqYY!2GNSEeFiE zQ<;?UQ`&8yKda)QW7NxwmH>cwwmNpy+d>1RqQchYZpL4luOy5m0EY*b!-pb0aHv8)-{pgfarTy5)+u9S0h1tjK18)x-Hzuk{)$ z4dq2PP&*H}gTP{|@T$=f$YDcfmC3r7JS=Oe9m|t*3j=Epg}l`Jy}B^nN^ca}5;Vt7 z7?mCxS9&Su>1A2*D6 zR{sDWwER`*uevernkAK@+XHqC&0x5b&5OS?74RiSvMgUt@`=O|l>|0FnAnbN8z0)D z&27BMVjoU{t@qB+0bq9nVKT-eQ2jJMIgQbp+^j}}7xL758C}d#TR0DgsJdi(+PRQ|4YKV0H7@gc zwtdWzFG@YSxsD?vTF)_G%w)tjA{6Gwn;O{t7Sq#qE$MNhOg833+(@$z1GKu%=^$hI zeg%Ir(yL4&&6lXhPs=96<>dnW)UZtxf6`tiB;|^YP%gGu?cudCQSSLjpaHXJFQM)B z`zbcNbX}xABhDV#TI9X8%N*H$Du?NFGYtBS1}X_QTyMuAe5g2VrF~0zN4l~k1^`^P zgp=7)epr!Zj@if#QL?Z(Ar=jOABLq1$rIwPxn**`Vmmxo^3yU~6(Y~_fGjHdl>+Pz zywt=UEp1Fxt9#S{T zt4#<00Lz;x2IfAd=hPE!s~+AqTfCD$D>338x+yW=<`A!Sk}fTk(rA1 zw;6N%QL49&q}ZQJhJBO8FV)JR?q%lg&3hBz0~{aszhr}~b`KPBQ@bkbB;=}#eCxv`17*;1zZ5kA&dbc1^x z#4?rFOsweYwr7pkCHbhiP%o;1$KO^)EVj^|&hdIH)GKbwTwA`f(a`8E?V$Jr8rf-*M96S@~Id5g$v8g z!~{LQ+Tvbr5qX!6qZ(n5KGHy8dJl;#HOWc-kwhbOe5$RHBn}3=7ijb(k*U*Bejg1g zNENaflEjv|J`rlk2xfL5td?MVv2XUOI3q@ic+JF@wgpML#>26^*;i1`L34J#gI#!d zX``JoT{%Xe`*8lsx2GPhg^EZBx9fjxEOH@>aHkTI4p#3M;MK?io9Y|9P%glzwk`&? z_7UA(W_vFKeqcxSP<3ptU`L9xiHKv$bkL7zqmcoLzqr;m4{cV$);xcniBu5~*$hSO zea4iILZ0YQ zR=^HkPWppy>JQS)$g@sK#yn#DypPW(?9_6FD;%20#NOg+_oq@mppzd-oYjz zWPlI|8Cxrotb7*pHAu6wKHq6)Bv=VWuZd;g0Uj@gw|h;zi4Y|G-n8Y*kubTc0 zyuNCQk{_m3U&`AV9is%OyD4kiFBMLZl!I%x3h}1lzyabTCPua~FEQ}*$>Hav=6Ty; zJ9IbjqKRRKWiK#X#r$KDo1YcNl5eAx`VrVMkgSXbpi7tvh}J91%$_RS?si*k#?yFb zX7x>?zgR^ZsOh9E{{Y8K?iyboH!|Z;ZFW-bM49yW@or;Q+wG+a6v-5;&oWrsSo2(Y zd24lpnRc;~;!uwr(%w8@Ty^C5tE%3c7Var_trLfG3QWSwG-PTWK4ti-D3mExjU=0^ zs+J?dZIQ*iKZ>`J?h;5MmM0;CXd6<98N4CvRb6P$xNE$cwZQjq6kjVt6Zl8O>!oct%UkyGo% zQH1RR-GZZW#9sV_b7XO3Y`K40fpBwjaTd0Nwt&Z7F1$Yabs(PaZR)@c0nqm-@1qvz zNc%mSb*B+sOEv8jYT$A+F~7}&EgwtV&A5&Yw9-wwgIL6ybyJdb##$mGt0qd$->pIz z_MJaL^y$(aj>Bb;P3q44lSmD-5dQ!gbmsUzDux)O>TIDzhiHWUUn>r+hKO9-6y@ao zn%c|0-64hY+?~1>3hyB-%FNyXGUn!Gla*>OTJ)H9@~+*am(&tcU1N_M31JtvD-LAx z_?DptQ?Y3vk8%5^^-Y|YTd*%5Rwf-tS=D?klINUxQyc;U#kn-l`zR3PSZRpVQ()sm zkUR)Iq)>8BLxG^GNcI9nz0`KSJfc(7>M`a73ut}64Mz!yTNSf*6HX!-G{7b@sLC*J zd>GMSSOa@5y_6h=V8ccl@T-xD9j3XL7Pgw(Uws8(k@$wTqs&(Pd20FI{$r5sFFFYV#U8klvQR}l}1^%m-$C&`|GP~=dNY4 zI)6O}LaL#4Hv;%0we?1$E9tNy6_EvyI|=qxRKd@&uv=gA>v`Et0cBz#alpWdW=RokToFDmNg6yg~0y+O zt3|f+ATh5nZU?g23)3WvW>cs&eiTQ3mY@cg)r~P9!#Xnd+uumhf)~7TAn~S5G{+O$ zNHx4iKzl;)r$36GEc1J-G6=ZBq}lAHSp7v_?bMb@3p}N?v{ER>74YGf zUzt!%u`xg)ZlX;Gn_-|rP*MSH!6H38rA?G;rPC4ea_T|-pa0qQUik0=p)0v zMh^tx^$fE}tkaIz8E)Ok7 zxAdP%fp;<05$yj2@tjpnlilup=jrUu0#hj&} zhBl0xB8WdLV%B$TpEl*Kv~W%$S=gPn?reHnc@v#g;%#NUzc%g7@lwE&O)S#ME5{z` zGm-Y-bwGkUa_ypT4f*iLo0h((Yb;H(R*W{^a-bxaBulq<9IX>M1~(kvH!Vdcr|pCh z?sp+KTW!KKK(@)9g8`C}ZkL5~B;{9 zZjH~P#Un_K9O(}Dtc62M(80);~MA7i&6goxIIb@=c4^PEPGw7ZVuLY0+D>| z8fd0p5}bb(dcUK|>C+v*sqN(4dU7MHLmbhvxM;Du{#$@?^|xy0%~&;#zPl?0s_k;ax-mld#5J)*I=Q`vD$t*H2bzcpnT#18J$ z-|VcAa^GKXx{ZdK1MjUatb3}&+gb#h57K_>1)j`x9H1Z5TWyq+7<%rpysV|dD|yHr z)w|q!F+Q*9n|or&$sXirF0T>d>fiA4sUu*(fy^CB5JzXSqkD@HqYLH7wwR4bIvaAg zw$zhfrzqx*L2G+ef7zfnA%R{N<{tk5bt|LTk8W2Uz(pfWLLoO2jw9Moar>*0(rW?3 zmj3JOQ~v;kY^0HP@fl>xlw09a)(r3DRq<19qT20_G4)Q_w^4Pi@RSFY{#M4M+Hbb< zZ1-^g02ggK^yE|6abd&TLly@e8pK>sMOKlIg%B2I_b9oe9Ghv9WEs3>Hpy4wVQSm# zp^+9%%Y;T^6+t@cMJ~(Ky>2+Al!b*h@#Ia{C1&asvYL544|Nx*MuO*SDI0y(oJdyu zrv0^Qmu&~7?xvm@I#NcExxzwh6^*PZ_WQ_M4b*lLLoyiIZ}PQ|>rgFo?l}!R>+s;3t z&;vkQQh%e{OWvmUJ%nm0vhf{BqBXJLM`wK#m$uZcU~=sK+99uwg+T8WY;7SoQZ1=H zhPKkcqpF0y4a~MsLlf*2Cfk%EWDO=-Etk*?dykg1BPBN$>^|yO zw@%jTDsjkhr$!9YZVlOQU^Ub6R8XlT#0s$Tf_Pi*p(2yi%Llo&)Qd1a`hCK=g%oCo zg~}c$5#mu&&9f|QawEv=reKa3rSi&xvXUYMF$cuHQhyJIw$Z}oCCK$87U~R*tXsHw zYi5vsXDNeinOs3$We(Tj&6iW=q}bdp<&ILwJVR}cF4|w7X*?e$KNW7^-Ay2o0YM=g zs)XpO4-bbrPfe0TEb+i(WD)~|7AK^Ap?SY{l?yiBP10Ie*38B~D-_{xht1-qjpV{x zK|FBfp}Mwg%kiqROtUA4lUHc$rdefXK591`Mgyi+=6#E4LN%fBp?>O zyKUm4@SdEE2wQ;HSrn^U<3bevCHz%uv9^zyy@B?cV>&F0V~j+Rb8Q%vvsie(YQ{Fud1ZlY$paj< zU+-4y(^k?p&Q^tYF%a;!4Ubh>ZVI>V)Kf(bl39{DHzAhFS#GFTM$MFGmzuXSG|`ug zbfQ*lSe9eJ3*`8Zi%`@s|e9gT|R+YJXGSY{A)p(#5!#hv=dc^87|o(;@_9d+>%rhuc^&0<}=pX?WR2=6d^`MkZ2+}WQitBz83P=r21FV$Li&m z>NiM=@XLcX8AZ7M8Z=Gg<;GRz@z<#T0Eus8pV4;=cQL^_q}%uejhjHZS!Go|9*c8E z-@{hrq@M^!rm&6E605j@%AT4uoUWm~*s5f_yw0@#tN#FPynBeZO!Mw`&U#V7GjqI2 zJJ}dq@+_SxK3_FTyNF}-_e?@XG>XpU^0twd!FfDQLQheE9l1FDUfxCAZSn@iT1d+T zaD0+t)Cklb(OPk%-gwctuoYr%J+*rfJ@izQuk%n_YIq7)Vg>lE^`j<0u7?mw`~8$H zsJAu6bC9HPQglCkTp(N6k9Bdep!yqkaiQPauVqiRS>xNj?gJc7>{mH61qNN1)Nr$n z(}cYEa8~pjG+fLunTb1;PmE_tWX-l>M<-rw* z$0PGp!`4&$KWnuiW^@7MlEUC7Ckqj#e-%KHY~y~kolmHgtec4yTTL7@DESdpetO*q zJsWSoS%EWjpy<46932#M>c^T-hs#?nzopH$+{d;-7t!?OStHkpF4=Oe@@hl0-)y$q zR%Q&5ZA;J22qh%V1%>?MFU3*r{ZnxtsxH}yiMMdaCLz4hk0G8CDI;=1jj$ zseK23yN!KAZWT8B*+{u&Z_0OJ;#+=Ho-91vw6f0_GeQqlHj-+h{LF-Mv5Sw*TP@b& z9KBjdLwa`Mtg>!lz4|hZ6ga)%{hu{S2I?n=a|2;4FUsggVFrjd9^EMAt9SNM?KaSM zP{eYc03H>@d%G)?*!I?6f8RxQg{K8d0(OSX3 z7sEm<*IfuYTVBgiX9J|h>gsN!9u&4XupPe2vjPui-A7vk+ef>)tJ0VwQOZ4~Vky7yYVvFPK6tuK{bQABMj&L6fO?@;c%){+iHOg&yIG)G^ty zE;3L!tulfck%Fr!&uQ)WgQ5pNCs-YSoL4^~M304?KktowIS%PeYsEiwN9 z(^3htEg<~WURHINjwiiqcN?R@I94#{8pxr647VR2DCO`|h|)p5+`CAx;sokTHHG!& zX2-)zEMb-~k)ujHKxm@Jf{w(emvY4>KqGO7F<92h+IX9npZ2OUtjRnUkoGc_IVFhr zXh*r*^d~OU8Pxt?RrPV+5za+^45>E|O0Oa-H1Uvnh?-!)_)k>d74dR&P+4Ou)aQwf z@%E3p)fVS}up6|Ai91O$iAiPCA_iOzSpFLN$l{sfLmCNI`a8ERz|$tRJTapt1ly`c zcN&bmy56H`;1_M#a`!yUXIC-}=jzzO9akPzOyYMUj01}U<$g4ZK z>zTv#7(O`TrIaBfli`lG$JJwI*+yB)ftV}@E^DE}{w1x(^JfFYw~g~yU4t}gTaabu z9{OV3(iSXRvzYhM3#Iho#*~3(y^SohyG7MkXygL+ajJv=0H&K`w)%~x#IQ(rT&@~5 zfh2hnR~)UCqm7wcmp?Z(C#M~}v*(&5h{|v}SyI+Gmh)0O?q=IZypBkkWFMEVjUNJf z@4`M`6-%%Wx{GzX+cf)y-K3po4EaT=#d>jb4pscle7UI02HrukXEF)qv%GfIh>db) zjN1I|$&*w*r0pKl)gzpAL>HD9h54|NEsM%Be0g~uq4d4lM=0GDgWmAUI;`w2$ZW?VXLWV@@RtxXB%E*V1BrpRN!3lej_l1S*GvHSVq#$CA+7&9#wOk`?eKG623x z_Om8D)LG+pOI#RvwBmH_6!LBMlF1Zy$;uT2EiKJ!@$9eh52I*AEp-gavR!$D2-{r^ zN9x-&P0rVLBQiN#tZd7#9$ZAcua|)8zmn2ZfSreO|z|}9N`eZXejB-+C3`t|oS+HN!#-iSB_p~EWa*ShZT~z(oq?77iO^lzH7>|}=Avs~$fNwgtCS29D z*{1y>-OrnCvH_JkXISNH@^Bp9B>9!Adk?GaO6|(r$c@vI*T@)T2MaTJd1^rvuAJ!G zhTVnSgpEc#kyu(rW6aC@twwKGByTc`HI^jm3<%|CL;M%EpP9|_)Z2+dPrXP>M;qlE zI)i-Gu?p?)%i&)YCgyKbnG0BbAwbe6EwPX-mBV~qDxYQQ5uZ`?V1hU|8*<9{wXKq| zR>gQa_`VvCZ|U)D;@Zm}Bav4}tr@tT5^e*fAF-je!^T)>#qXdu#5Zjelqq zc#iETXQFU6<5`_?eEfpV1Ti{Kx#W_ zV~uRKKbdYNc+#?xwijDyXq`r!R*nqVo&ou_?;X`E?8Gzg76T-kGR8I-+af+7z9sxs zx0*N_JRM|hxj7s`x~Oy6#cOfAnOJS*m^nAqRn3jGu{QA2{YqY7hv}L*0RTuv5iFojTun~F&B6Gv?U5(bPeT=h6u=_+A^LZ^cp$(PFVxSx&{E8cv$jr zuS?x8scp;e%%gD=U4D?n!EZkkgJqK9JT!-I9IrT5>bYexyA1=zw$VNR0E(G6Ji37b z0ds#bvhm?r#`!{23!OQws2A>{pfQvYZFIM2wJL*gU|5fc{{UreeJ)}?j7KEz9}I*F z2~TEzf0x6}Q6m-Hw0T7oQAPCqN0QceKwFiVFHfgiuTzigd)$;tCWW3SyD^wdT;Gb`}*b=^(yo@O!L0KHiqU|h7 zjIYbivA%1Xt5YLeZ_*@sgt6x#G0VvDu?@_!HWI|j6{GTeH7?6zG&`Ag_porF<)A=i zAV{u!N#V!G;-`jhN=U}WLT28{5=R)2wsWB7#z!mVU*b{P$-Dmm4%|Z;$?5PQDuOmS zL}GLwn34|?D!0SssCP2KF6VF1Q$MI}WLQdP;>K8uZUe-+;UrBP`BtI&ZRX8C?i7uO zqwd+`U$2EVc=r-2qO`4JBDqy~yz0N1Qz`Tf+R3+tC7w9cO=M>=D~^$DuHzj)6-U;F z9fWg4T_v7Xu#(2mx{h>{PJUm@^HA9O=E_Zu;g>kW*rbW^M6wSnvTb9>r)1G0wvtC^pbVdjsO7v0PhnlV`@<>F)J$-c4-w;m&y&z$;oi3 z_Hv|$aLOIyw=N>qa^4a0vYM7+?Ky;l8iRsfBbZ)O`Ir6LO`iB5+U}+gxq!DKWG@r5 zu0$#Dy7^n0mOaEkz_BqqnBN%6FNu}Vj4`_MezNk^o}HYNLRwW_!f=cP{v!@n!Mx3u zJ{pH{2JxlZlo7+Z+G`@Uxmmffww&L)QSJS9H1$tHnO+om7!^qf$~FsAkz@-S~0 z-Nv1K1J)BP^)eYVzR#BD=aQzhqLXv;2Y5H{QiBnO=shrh@MU(rAY-H7ZN z<9Hl6%T)x6uRrS1>h1TNNuxMP4(cYyF2R^k6rYBhZ@Wg?&MkOc6l)$AQ%jdI@*cu| z>e_EN6TheJL%PYjhni7}=rACw2I0+7Y$A>wwj&nY&xNvXIexvnx|?{Xb&{=WD%GEwwMtEXbgv&W!Bt zkpXsbi&o2bwi_tDN?@-h$8Pq)TmnVq<&T$}4rTmRG+W4b`z`+fGql23`Z1jOLamP< ziMe^aRk&YB+~p#@x^l>k9E;}0dq<4F3fmU>X_sO2-l6H?L&d*o*KH>-(H(j5lzd(f znx*uwP}|EFs6^#tgxJ0QEBIXx9LFnBl7CCw6gc4`E=t{_5;)f9alDkoyK>>;+(N{a z3*c4J`j=}jlj5Q2i@tb^+I^(Eh{0&3xl-d3;XVmJ;;uersWIEdy-0yQO|;0ws_Wrw zTZfm$TIp}Qg3A>Xqh}Z+?Nrk1Bv*U z{4~XzDKCk9Rn5KJO&_OXBfdg1cwe;l)6KRLZ(xrVY1i`B z;VplRjb6jUL)4?(l=P-yZO$Vx&4~pMH#d`(lhiiucV3$yER$gB$^&C&3;-ot#LLRQ zY9~O)vVv{V=8)de#--a%IxXr+x-Za<*~(Pnw>XQF?d7AdC~D$Hx2;qT`sFsU@cU@1 zrc4NE&F$NLPx`cRD9xj_7&i?@0t)bW%w-ZCVmuo+$#1pIa z5rEw|8ti0;rO%N3Io84t`&{~nNp{e;s*ClRB$dzRTZ_bb3WwmzMck(WOmQJpK3Qd!7}VaC>Q>u;T_1Cy z0i)HFSmMUsWo&%4y?xuuy54T!vdN01(MQzA@hG}xKZz&B;KrxgtmASJ^pa4c86$3B z%kbsP^GAzP6)MU_iBoZP)0^MMiw$l$iS74Nx0EnuuTO7J2@QjpOPgH+6_g&%bv(5W z*KH@|?PPW8vAdRp6z;mJ4*vkewdhlBcL=S%o!_x=Fr#8f2lz#@R)2}PX#*tB4%%0d z7FH5M?1)}R4xDZX{9Z2=e~E14ZN^u9v@$*=8YaclJ`Ur<@cye&-DM)Y;2p}KTZq(h zD;s#$_sXL5WO(;`*kE(F-^`K-MbxoJ!CM(E{`B&snEX`Fvh{>`;zZm=n@bi}lIX}$ zulcBQ%gDYu+a%03yWRTqC0VmDN--T#?Dm&C2Urt-|dgPgdVW8cJt2v&IOEQ_78Tg2;{V=Tk-M2=MNp zP|~L13~VNklrSnkinipHm+@sv^N8k`b&O@$D!D45W0Nfr7(b8w-c>x_r9af}B1DEg z+J=T)d88drkEW*;ZxZERn>@Qk!+$ifNw{1hFijeR9^gHXPpOefIUnNl(#X3=_a2`% z=mECdo}Bx5QGoopP@M5^7cM;Ct6QzK`w5^>%`V1wjaTYKhleu|j#%a55=(*eO!WMLE z;?|D(=~+w?Mabgng?w5P;FHFV&w8so6QGQfU`ZM#L$~qNzMHmYP1Zpp+%#jN#2yCc zKsCpfq?%-A+-#$4;g3c-k|j~+7V&)5>HDc+w&HevuVjD*@ilqbK}gaJYHOBtTNTo6KWtF9bh=C{bR5k$q z7v}MD(`~nD3={1F&ow&~A;C`% zh1QXGQ*XDsl?ScU!WhN-M~S(A^d*KC`#j9On;n{Fj()>EuVL9&>ERc{ByLvtaL z4T`5PT}c==au!IhIkmP+_#T}Me``j!jP%*d$GkjlY`%l!G8lWXbzkki27+J0nlmZOYi zuOkj_Y<^l?XNPRtbW3em-PM7`uyTJnbhpI5Y962I%F}OW2N>f7zPw2zMPG|5*>AVo zZI;qw404UAkjMrjq2`gUB7*i2=`W_w2W=4`%RURqtQ>TSO7WUrpUg?^f0 z#yRAR^An%qUk}S$eb1}oW4KMcomN;8N&JNwWWS4@7NVG}amgSeEyBF9nMv}oCj*i4NHWT! zl}Aop%HawJMUqP`!YZ6WV7^+K2`{$XZ345sigT{0%$kQr9IGedjjMCH+U-o69m_oN zNeHqbChrjh^2mqD;$`MqH#{`qTz%D`9`Rfcy0<&czfvzvX^Ka;bjm=iE+Qo3oQv@V zU)rLlXz`_i&RkO0@TgYTKZPxobYhveyOA2?h!dxTpT#NMRe5=v#gb5AwU=qK5(E)6 zk_j9$V|Qi@7Y63WKN|cs1jEwyzOA*IL$``1iK3oaWHt#B1I-XT%`RNOtw*QoDX~K{ zMq!RT({CJVqo%w8W#;fMUo}b({bulBP#7~T1AwSd-vj2#Du-b{$rIC3M@S=dVCF`# zb0_>qiZ;uqe7W9#JxA($eX)mV z){bNsWl1~1J&nS+dxabJ>xtp51`0*EQMku0B7n9)o7idh-kHxdj(J>rjTcWP|Dr51xRa;!f~Zd&g-B~%uOCKw3o=+q_~F0TyiCrO~ zV`6z&6XLgv=dF*ZZnlv_xrzv&WQ{OZz!NK#PF2sJ%T6}RHeQ>xjzJ2XnK9elmM1!O z9nIUD`?W6WJ-Ti`HKayXXu#wI;@osm&G5ZTIUzR=@tI@b*Uw^gxTlMa0y znortZYE8@@r_$T2oy1~mtawRqt}SeOs*nEwFT>4VjVGsWB9(5^?>4fNn=FnIrOQ>r zNY~2QH^WV}c#1~h&fI9mNK~{>BQjZmM&RZnmc%2-}Sv9hd!YFD*9KA54pD9_>1g`)l8x?%d-iC_o-; zei|EzQYp5RsEp3d(^Qeox3* zE+0l|eOqrFOX9uqHQOE$v>V2JHl1 zp+4`g4%9O)VoU^Im<9@p%hT4qBhqBuTX{6H&A#;6`GP^w9MCe1S+ZPk{c3^sJAJ%D zXNoqwY-A$*a*azD(=KjSe;rG?jJD_0AX#LNDI;jnuuEO#BhBIF{{U8?+3g+Cd8xMYGXoh0HdC#>6MpY4ZFg2yM~?>}XiA?r z@3C4NS=FN3j#y+TRAPBXLx5KBx9YboDV0QmM8L~!E~4B#t=sU|_{_Y4(nxmL^8p)p z$sO#&mZn{@ZWGm|S9r|Mu6oPh#{7}T$Cn;er0bPC0dFCY-u{g94X09o;`QS_O&3+cYQ zwpW{HyFhcE*K*E(-n@VC{tUTmZ?}>O8++A_X52h(yH?tZT5*MsG4d;QGWlxzh~}4Y zWCm}heC1YSWo91&pCSJ3dY`FvcI^U15s8(;u#}EgP%JaQg%g|MsbkwA%4mAqea!KU zF1AM!Mx!{39&R6swxFYrUEP3iiHhvUP0I#09Q-+!ho^d;)-O@(uTof?mFImKpkd+1 z%Zab>$QNe>QO9ApRVlkm3nK*ACI`pldXHngnq8!;lWe!@+>*wvqs5Ped`aR;hjZ)R zk+Ah|Qcc2{_mU@0Nl=Uw5WkjryiL=oy;J_&^pB)`nSDp-fR1TY*;GixjIq-tIR5~| zr`dnqo}UC>xdf6<&t++Z4Xi{J{Jd33{vKa9HEgz%Vw9_f2Ox6KwBkQ%qnlvJ z>tQ78AjlHp!NYOp_#2jv$)si_`kSr0uwabZ#$xj(H#s0|Y6&+{#kAb|VlL3j0D&%wnHZ?)PE0~mbROj9upqmv+sm41(<-gys_9cku&4W8^cF$KG6=_B^#J#OC)GJ zBv)NS^8T-yqfn5tJggY0XK0D$$_EXUNNwWrBY1uq^!c_Mt;{aWQ)ng`Nh!I+brh>3 zA2srcmz$QiTW?bj2dQo5$9E3pSlc7Yub8yR-V}c)&El!IJBY^HtUoNHv`jGmo4$ZhsvNx2@NlR|(xK5rjPV3ED`jRB?Ue-unC=z|cLdDr&+(=2tN#f?X$#V14$+_FghBMM|*oIh- zjTEi?T*}#0U-r0?P2Z&l>lv6bk&y?dZ!a8IAC0TjlXtX@eG}F90(%v1q-eOt3I_bf zjWH4Q$2a@L%B63i8*PkC^6b4xND@M=d&JyJ8GLIUswVYG!$|v=iWp*@f!j$M*~6@5 zB#Suw-cC;~Md`a#mug0TwCR+&fOx~?qW7sq{zg^GHw*P z^Iw}RTlOh-@kJIB$&TtKl$VjMlBMs{dvN~%+>V4^vFQ7K%usFL>Jx3A-L}!a^PQ1N zj$Vs@4YJBV_lt)$Lc1u})^?koZMN#s| zSu~|U#^RyebR*pTK`Og_xiUyC?p#|Ts@bY-xBbVr+-x@M)0&XRa~v9?IqtF3KUeFDw1k?kb# zxDOVXQkAw zsV(;VNZ6o7W5Jb3Q;@CCruu5MTiyI}kdr))r3%@VqjJOsUQ}q?mGSXV{{XjkI|#aP z#$quni6NOEi=s7;U3|{i;r+Q0OtHVF@6`&Nhbl&=mya%4RE@sg$F`bqg`n6% z!vfmi#k;)CY*vgBZ=v7qW^t6cv3P+zrNJE9d=)fG&$iqc%9mYMNZ9iaYBh#S;_}k% z{b~nQDkE+F-&RCER#TDF%kb3l&3)#~Vxmc-9Yix*M_iTS&sI zs9z(i4LEb<;rXf;>9O?`RuRg_*~nEhTOF$sRtcxpfSTZC1j0I*t%cD`Ezui zk?3tbd0I#%kPVlpuB&s)8)dI1yzAm$)u;N+x+e2w88B}YfUb$DM{hT775;at+L-S; z2X(X!^wXmg8?m;m?ahp1L|+e=!%4nfypr$tM)>WM7ZHsFlP)DWyj~v;H3sk2pfgCp zB9Ey36ab!cEMn}V46#vzH;Jnlw`sDBxlof5q4dmR=Ga>HUoVr(N7MFlF6t%$fd^FT zA27M+`EsHoUZRV%q%xUt@9Fz1uOyM}cJZ7W^30NRYm@u~Omb=~H>fi<-Zp6CzhLIg zE#WrgTb~nBZFWeQZYEd~L-~^lBq1?Z+TSnHgRa8+>f z-RvINyeJO;deT2(77v725yW2x-QjBvJ4KRjR?*k0J* z+3`?o3-(o)U2H!39B+EH?_8^PI*mJMw}#wntRqNnpcO!I7bK4MV9GMrx`+~7$z_nJ0P^Uf{_3$_TuU|k z=}b&gXh@M!h#RE0(c=e;d@SA? z+=h?ox3b&`lba(~onBd9 zbyJBEvAjSrI-_M~`RW1ai4O1+9J7ee=BcqV9NNmS4vo@p;wOfib-uxOaV7_B;fqGm zofpt_AO^##@KCkA|Vz zm@;-lE5=Qjq=d$P^ND3|EpPoRc4Xa<9vL=>gD<6#NXd!iW!J@9BLYdd+Ot_h4pJ24 zyxuXTpY>?2W_Zo+&8mW0;12Jaxnmni$-VFSWw>Zh4JbsB%MRDm1Z>?Ra#;iA8=qpo zg0|b$LeP54NZZI$kw)cPn610+vSaxCtx`kk8@Jo-30ICdPB>da&5+~r)E=$2iXF@> z-}JkKcns>=*HxVeYQl~C|W=r9z zUAMAH>HB3#B~nPoA#feF$q?o9VaW9;i`L&FdXa*W&C*agm9Z$+@ZjD*E;&`Fo)~t4 zdK*3F+1y6J62aX$Wk+8&YS}L@HE!hp0JtUFLAB_Z=K2C8>b0!12v`-3{{ROgc~yKh z^!}T?jt3EiOjjokE;6KWWEnjjwb_rJ?f zLF%5A({9zW4-CIaBQ}{>EAVSy0s6JFI|w%$b@cts#P2fABPO7?Qs~)hXN|g)CKBf5jw@8K&_$Fbcz?gD{*(sbQ%a^zqREOqfO zind2-6E5dt7;VR>J_zwVjgZrW$Jp5pY`N(-5_*>7aWrk!fB<7y!zs=_kS5V1FXgm+ zxcHKclWrk_KnuCs1z2L4cyp@pKNc#qJx6BI?fp&i)*`q?%ZX-YXp$W zyNI!E$&Vb_TGnQSjCzN{&5aoF+ie79_(G-r?Qm74-_5rC_H0vkc94>F8KJTaer`&a zZMW*mMbjCb*s%uAftOng{8j1`HPd@EMhvr3&_%^8EDPY?9J$qNVYc;YHxM1Ol6TO8 zOM&8*{8vUi-W;jjWl7|WWMyY&)OeV-i{U)F<3o4#%LeNdm0-oOK;8ziy}N0TsqD6U zqao@|BAjN(@~o&>++@Blnw}f<)paYS!k!rw(Z5!S#Pr;aLDNyDwG{5G;6FQY{H7LY z_4vLj+|LVrPTxWh;(B7<5Qh5STvn#rmyQon>n2b|z${t<+G4qQzZWe<0+!oPaU4v* zbjNzJ`MiyfB{XtlxAhCMbeP&HI~clRaDV;99O^B<5MQvdn*`aW*UWb84Z8@P4d?6Sl}HvG~MkaI54=gayO3NK3u*kW!NIh-8>}$ zNdZ-bnS0K^wO*9FJ)-XSQGw9g%opke(rV64u@Z*I9&gKE-rYyHnpWJv?H<-B@ol=K zO@fQ*n{zf7{9bC@ZMWi0w)zAt30zgewVx7fes-yurw+2IO}IHTwfs!HHTjy3*xgc6 zOERsW6&A#?@qAd)G;s@+{H(_^fuSq+^JPxaZaLQsMUH0vE8m5Onu-hLhS`I|F3b6? zOqa<)AR4eZo+H0XxveyySXsQszJyaTM8vac%+~B*eH+T{Cm>z9QoP5+xqCh;>&FwW z*t7K1^A1sPr1zSZf2vsIg+YcX2u`M=_v5Z7D(b|=VwNj_+|70J-m;A0rN|Uk#iWIK z^0p;%(;nZ&O>%B7OAT*+%5kO$3$frufw}(xW{d@kMjf3!uZ}r>g~p@XJj(%dY~Qu5 zpdQmsmOQr&_h@OOxXD0^thhvsIey+!t`w}W$KjZoNR2Arg` zYi}2ZmvtlGaUd~(x6hSywm!;});&~8(nS2w4qm~DTWWJ9RcUsvfpRO8$W=&JyrePh z#YdKp{lLDFxR=v+Ez|V*HqnbQRp(}376DP6WKq-ksvYT#k~#Bth9WwOpku60qTHOb z%kw<7x|uZFYBu{;V#XC?ae+KmgkeEqIgcBAYfcri*vT=5E!3hpWU*qasU!h@!TxJe zM!Q(gr;)Xq>PvMaRb`8)cpT1IDDzh3@=wdsNJh3$Z>M-)4If$bz5f8xbmqh~4030U zZnsYiigL%B=UVjL^pLEwK=DhuhnWvvHEyCY?w3Ca@h>lirrGRv(@nWC#~_MN%14el zMrvEXPX=7;N_SGi;flPQm=g=Lv5?5e@Z*=2Yj5c6(M9SIZrW9s8_A5oAlv>2He_!s zpNfo&Ec+PHhJUJaDj4r?%`xW9#~VYrP%UZJ$> zY^4pTkz{Q-z5Z{Wwi}4%eb1-Fj~u(U07(qskg&?5fwG=u@qQ{2O)*gR5ZGN=c;7A- zZw)5eIE=eVQRRVGk4*+ns(w2H-8TJ7gL4XM(DbAz*UeaB*S~H*yIz~Q+oY|tGdnKl z#S#`#Xq*24akYML!%rJv(h?bB>8>)4+?$HGgygiFosXzAbC$T-%Oe$xJ7^hvGFA}HG>Y^3IH zbogpdM1okh+lWWj%+jV^cXk~@j1Ntc{&?|kE5}hL))ObxN!5yY!n7%N%cZ&Vs(V+S=sG4!Qho`qdWK(_u2E?-@qSa~aHh+=o@Ol6%NJ)R7*lNDwaM>n2^Cs(haR0PfI^>O(cUr7ey_8|XpESJirh zuJGfFD2}#Gh4On=pS$E~*5i`vO;Dv0AnlKTYx8eA)`Dr$5Gi|pUgf6Vg z_YJA$Mj3qE+?aW)7oKgBz+^H36PD@Zagj0A7B=R|BwTr`aGsMA%O2yB2T8<|3wcvD zxQn$^`Kn#S*}}{$$H#2>al~K8;m96byfxO4q*yuDN5zr2Vq3-1{a!}#a??fEWRItC ztT|gz&6cbB%To12s-~p4AP_akHM~C!NxJm;*&SNy@tbMbNU6_RM&Xz|kV~&siRQ(- zK57u|WfAV61az1L7_VtQWAjuyxHs&|*Kk%#v}ew`8*_PTPf^WgjD$j4#y}PX_I}M? z+`Zo0@U4%~1Tb{w=>kY>vDV~+<^KSQ{`cjrxdF!Wq`y?8o0Q1olM$m|!;1JRx|x~& zid%H;aMsq=)bjW|)i=_Q$+7F)@mp(sG*906sSLQ5yJWAVeM@p&>&@ZAN{i_mb0*`W zIzn+Aafyw;hFHkBje2=_o5hVM_{IMK#4f!bs{Sud{NLu)H~3G}2zqWerW_3XS2BS4 zvGS+Qn`K*`t2%A^OVj8sYxMXwIc8Ez{{Y1Q0C|;eZ~p-4;xZ?(Ez5{sHa5rRt*G3z z@y(azvM*9V*EYpuF{U0I`i+GyGJ1n=h{aTMpPp*-c$ggHr96i*y0o2nBkLk6??Njx@>T7EgZx?6ZTK)d|_V&`{Yw3G& zzuEHKTn-#4^s(x6+Sz^FJ+%J-O=8)#jP?_sir`=MZC{+ZZM3*nWxHEUiiUB`hwjup zQa^-j2MhM!w<}lWF)3lw3II^J>50By>sQTFVSKu08+=z7{`EIn{cSSF*ynwCc3Z_? zmxyeIieEp!vY+Y9U2c?`?y>3g?agkdE$C@z@fetiJl&=+Y%h*@*Znva$+A9fpJ)E7 zQR&|I{OelR?Do^&#c}-|l{Z!7LDOEDg=2Y3=5er*k$he%-J2@yPebXH7HEV&m!1sa zWF-DyQEyBW6Zqx zXIl^O&+!HHW4a$eAiE%gphNUX#zxy;s?DA&moLvv_2rr@(#BAVI+zZ`E%|?jwEhjW z1L5uddVc(mbqnz9y=}k4ul4yKrpJy}J^sw9JRWoT(B;%ies(7>3m#m&7UiwD^!9G2 zQctRR6@IMClI5C)#|!v5{2w)XaE{FgFJhdsm(uzSfaS*6n)MH*5(WB*FZ5-LnXoqF zW&IVj`ox4*Q3iIS-}lU;$B|PljB$xscf&77=jtrntDa-0(lO;Vf&LZ)AJwVD4@@WOSE$nv9P*1;0DnAk zW6k^3H`6QwZS_)SL6FDS$n`PI1?hY^R@3QpmgDI-YjeW<@%7zwf_JQ=PS&)=Di}>V!8D#kD8*(!>8!d{B)=P01s`j^&7SNixE35!11wvY#bT?C52xJvtiSgcS5p)lXo-Az`hqE?P`G&V{Lhb?y)|Z6Y5K@!I;WR0G>?~c=^_Tak^s_Qz zdW31q=D!|VU#K^d-1ZCHEtWLjPGsrh&0(dl>^vy_R(%VLl)gaQmodZi)W6{N`rK0^ z9rMFKZzmrXRT16|n;~`(t<_{%tToCUrg-zeEUKPvZk2kNnk~5X@a_H}{+lGnFNhUX z5F=&(014f4%9Jo~uKckpIsX8w2PMIrAhBPGWN+8Xi1n_ZT+``WX_r(kNBBzIQ^kf& z;_z3hmHMyo>_04SEuYihj0R0`z4F9#^6=C_fsS+Ie@`sz8@KD0K$~;-vc5FkEQEzl zu~?AV{{XrV;!le#R)_d=IeVY03;+SG>?9NZekx8m*ycs@z5K(4z0{xKxqTK#r`E^m z?XGvvmmWNMXynMN%a{QSC2{X^2M+F9+>L;MPxVI4vNDy!4Q#RjA4dNG17+3l@>6|F zF-!A+pbP!P{{S^8hsV_CW0zLmQEvzAwpICMFOjh$iutdtxKy815bUj|RM_F!YXhae TD!tq3vhecs@9+3OR=@w*#7g|_ diff --git a/src/main/resources/static/img/tm-img-03-tn.jpg b/src/main/resources/static/img/tm-img-03-tn.jpg deleted file mode 100644 index 703afed6b0000596fcb3b140bd23cc9ebbb15b2b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36406 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 G2>;oVKA*t= diff --git a/src/main/resources/static/img/tm-img-03.jpg b/src/main/resources/static/img/tm-img-03.jpg deleted file mode 100644 index b10ef0188c7201a05b2c896c42fadccdf969e97a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 130019 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 diff --git a/src/main/resources/static/img/tm-img-04.jpg b/src/main/resources/static/img/tm-img-04.jpg deleted file mode 100644 index 5165a037f600a3291e6ef9344beabfdd9b1881e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 135917 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 z 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 diff --git a/src/main/resources/static/img/tm-img-05-tn.jpg b/src/main/resources/static/img/tm-img-05-tn.jpg deleted file mode 100644 index cc1cdbf6ec172cb8b61b2efd4499dccadf6bf2f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40996 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

    \n \n
    \n
    \n\n
    \n
    \n
    \n'):(t+='\n
    \n
    \n
    ',t+=s.play,t+='
    \n
    \n
    \n
    \n No audio\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n ',t+=s.loading,t+='\n \n
    \n
    \n
    \n
    \n \n 00:00 / 00:00\n \n \n ',t+=s.skip,t+='\n \n \n ',t+=s.play,t+='\n \n \n ',t+=s.skip,t+='\n \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n '},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t){e.exports=''},function(e,t,n){"use strict";var i,a,r=e.exports={};function o(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function l(e){if(i===setTimeout)return setTimeout(e,0);if((i===o||!i)&&setTimeout)return i=setTimeout,setTimeout(e,0);try{return i(e,0)}catch(t){try{return i.call(null,e,0)}catch(t){return i.call(this,e,0)}}}!function(){try{i="function"==typeof setTimeout?setTimeout:o}catch(e){i=o}try{a="function"==typeof clearTimeout?clearTimeout:s}catch(e){a=s}}();var u,c=[],p=!1,d=-1;function h(){p&&u&&(p=!1,u.length?c=u.concat(c):d=-1,c.length&&y())}function y(){if(!p){var e=l(h);p=!0;for(var t=c.length;t;){for(u=c,c=[];++d1)for(var n=1;n=0&&(e._idleTimeoutId=setTimeout(function(){e._onTimeout&&e._onTimeout()},t))},n(35),t.setImmediate=setImmediate,t.clearImmediate=clearImmediate},function(e,t,n){"use strict";(function(t){var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=setTimeout;function a(){}function r(e){if(!(this instanceof r))throw new TypeError("Promises must be constructed via new");if("function"!=typeof e)throw new TypeError("not a function");this._state=0,this._handled=!1,this._value=void 0,this._deferreds=[],c(e,this)}function o(e,t){for(;3===e._state;)e=e._value;0!==e._state?(e._handled=!0,r._immediateFn(function(){var n=1===e._state?t.onFulfilled:t.onRejected;if(null!==n){var i;try{i=n(e._value)}catch(e){return void l(t.promise,e)}s(t.promise,i)}else(1===e._state?s:l)(t.promise,e._value)})):e._deferreds.push(t)}function s(e,t){try{if(t===e)throw new TypeError("A promise cannot be resolved with itself.");if(t&&("object"===(void 0===t?"undefined":n(t))||"function"==typeof t)){var i=t.then;if(t instanceof r)return e._state=3,e._value=t,void u(e);if("function"==typeof i)return void c((a=i,o=t,function(){a.apply(o,arguments)}),e)}e._state=1,e._value=t,u(e)}catch(t){l(e,t)}var a,o}function l(e,t){e._state=2,e._value=t,u(e)}function u(e){2===e._state&&0===e._deferreds.length&&r._immediateFn(function(){e._handled||r._unhandledRejectionFn(e._value)});for(var t=0,n=e._deferreds.length;t1&&this.container.classList.add("aplayer-withlist"),r.default.isMobile&&this.container.classList.add("aplayer-mobile"),this.arrow=this.container.offsetWidth<=300,this.arrow&&this.container.classList.add("aplayer-arrow"),this.container=this.options.container,2===this.options.lrcType||!0===this.options.lrcType)for(var n=this.container.getElementsByClassName("aplayer-lrc-content"),i=0;i0&&void 0!==arguments[0]?arguments[0]:this.list.audios[this.list.index].theme||this.options.theme,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.list.index;(!(arguments.length>2&&void 0!==arguments[2])||arguments[2])&&this.list.audios[t]&&(this.list.audios[t].theme=e),this.template.listCurs[t]&&(this.template.listCurs[t].style.backgroundColor=e),t===this.list.index&&(this.template.pic.style.backgroundColor=e,this.template.played.style.background=e,this.template.thumb.style.background=e,this.template.volume.style.background=e)}},{key:"seek",value:function(e){e=Math.max(e,0),e=Math.min(e,this.duration),this.audio.currentTime=e,this.bar.set("played",e/this.duration,"width"),this.template.ptime.innerHTML=r.default.secondToTime(e)}},{key:"setUIPlaying",value:function(){var e=this;if(this.paused&&(this.paused=!1,this.template.button.classList.remove("aplayer-play"),this.template.button.classList.add("aplayer-pause"),this.template.button.innerHTML="",setTimeout(function(){e.template.button.innerHTML=o.default.pause},100),this.template.skipPlayButton.innerHTML=o.default.pause),this.timer.enable("loading"),this.options.mutex)for(var t=0;t=.95?this.template.volumeButton.innerHTML=o.default.volumeUp:this.volume()>0?this.template.volumeButton.innerHTML=o.default.volumeDown:this.template.volumeButton.innerHTML=o.default.volumeOff}},{key:"volume",value:function(e,t){return e=parseFloat(e),isNaN(e)||(e=Math.max(e,0),e=Math.min(e,1),this.bar.set("volume",e,"height"),t||this.storage.set("volume",e),this.audio.volume=e,this.audio.muted&&(this.audio.muted=!1),this.switchVolumeIcon()),this.audio.muted?0:this.audio.volume}},{key:"on",value:function(e,t){this.events.on(e,t)}},{key:"toggle",value:function(){this.template.button.classList.contains("aplayer-play")?this.play():this.template.button.classList.contains("aplayer-pause")&&this.pause()}},{key:"switchAudio",value:function(e){this.list.switch(e)}},{key:"addAudio",value:function(e){this.list.add(e)}},{key:"removeAudio",value:function(e){this.list.remove(e)}},{key:"destroy",value:function(){m.splice(m.indexOf(this),1),this.pause(),this.container.innerHTML="",this.audio.src="",this.timer.destroy(),this.events.trigger("destroy")}},{key:"setMode",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"normal";this.mode=e,"mini"===e?this.container.classList.add("aplayer-narrow"):"normal"===e&&this.container.classList.remove("aplayer-narrow")}},{key:"notice",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2e3,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.8;this.template.notice.innerHTML=e,this.template.notice.style.opacity=i,this.noticeTime&&clearTimeout(this.noticeTime),this.events.trigger("noticeshow",{text:e}),n&&(this.noticeTime=setTimeout(function(){t.template.notice.style.opacity=0,t.events.trigger("noticehide")},n))}},{key:"prevIndex",value:function(){if(!(this.list.audios.length>1))return 0;if("list"===this.options.order)return this.list.index-1<0?this.list.audios.length-1:this.list.index-1;if("random"===this.options.order){var e=this.randomOrder.indexOf(this.list.index);return 0===e?this.randomOrder[this.randomOrder.length-1]:this.randomOrder[e-1]}}},{key:"nextIndex",value:function(){if(!(this.list.audios.length>1))return 0;if("list"===this.options.order)return(this.list.index+1)%this.list.audios.length;if("random"===this.options.order){var e=this.randomOrder.indexOf(this.list.index);return e===this.randomOrder.length-1?this.randomOrder[0]:this.randomOrder[e+1]}}},{key:"skipBack",value:function(){this.list.switch(this.prevIndex())}},{key:"skipForward",value:function(){this.list.switch(this.nextIndex())}},{key:"duration",get:function(){return isNaN(this.audio.duration)?0:this.audio.duration}}],[{key:"version",get:function(){return"1.10.0"}}]),e}();t.default=g},,function(e,t,n){},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(40);var i,a=n(38),r=(i=a)&&i.__esModule?i:{default:i};t.default=r.default}]).default}); -//# sourceMappingURL=APlayer.min.js.map diff --git a/src/main/resources/static/js/Meting.min.js b/src/main/resources/static/js/Meting.min.js deleted file mode 100644 index 2ce9cd3..0000000 --- a/src/main/resources/static/js/Meting.min.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";var aplayers=[],loadMeting=function(){function a(a,t){var e={container:a,audio:t,mini:null,fixed:null,autoplay:!1,mutex:!0,lrcType:3,listFolded:!1,preload:"auto",theme:"#2980b9",loop:"all",order:"list",volume:null,listMaxHeight:null,customAudioType:null,storageName:"metingjs"};if(t.length){t[0].lrc||(e.lrcType=0);var r={};for(var s in e){var n=s.toLowerCase();(a.dataset.hasOwnProperty(n)||a.dataset.hasOwnProperty(s)||null!==e[s])&&(r[s]=a.dataset[n]||a.dataset[s]||e[s],"true"!==r[s]&&"false"!==r[s]||(r[s]="true"==r[s]))}aplayers.push(new APlayer(r))}}var t="https://api.i-meto.com/meting/api?server=:server&type=:type&id=:id&r=:r";"undefined"!=typeof meting_api&&(t=meting_api);for(var e=0;e=200&&o.status<300||304===o.status)){var t=JSON.parse(o.responseText);a(e,t)}},o.open("get",n,!0),o.send(null)}else if(e.dataset.url){var l=[{name:e.dataset.name||e.dataset.title||"Audio name",artist:e.dataset.artist||e.dataset.author||"Audio artist",url:e.dataset.url,cover:e.dataset.cover||e.dataset.pic,lrc:e.dataset.lrc,type:e.dataset.type||"auto"}];a(e,l)}})()}};document.addEventListener("DOMContentLoaded",loadMeting,!1); diff --git a/src/main/resources/static/js/app.js b/src/main/resources/static/js/app.js deleted file mode 100644 index b862d90..0000000 --- a/src/main/resources/static/js/app.js +++ /dev/null @@ -1,127 +0,0 @@ -/* ----------------------------------------------- -/* How to use? : Check the GitHub README -/* ----------------------------------------------- */ - -/* To load a config file (particles.json) you need to host this demo (MAMP/WAMP/local)... */ -/* -particlesJS.load('particles-js', 'particles.json', function() { - console.log('particles.js loaded - callback'); -}); -*/ - -/* Otherwise just put the config content (json): */ - -particlesJS('particles-js', - - { - "particles": { - "number": { - "value": 40, - "density": { - "enable": true, - "value_area": 800 - } - }, - "color": { - "value": "#ffffff" - }, - "shape": { - "type": "circle", - "stroke": { - "width": 0, - "color": "#000000" - }, - "polygon": { - "nb_sides": 5 - }, - "image": { - "src": "img/github.svg", - "width": 100, - "height": 100 - } - }, - "opacity": { - "value": 0.7, - "random": false, - "anim": { - "enable": false, - "speed": 1, - "opacity_min": 0.1, - "sync": false - } - }, - "size": { - "value": 3, - "random": true, - "anim": { - "enable": false, - "speed": 40, - "size_min": 0.1, - "sync": false - } - }, - "line_linked": { - "enable": true, - "distance": 150, - "color": "#ffffff", - "opacity": 0.6, - "width": 1 - }, - "move": { - "enable": true, - "speed": 6, - "direction": "none", - "random": false, - "straight": false, - "out_mode": "out", - "bounce": false, - "attract": { - "enable": false, - "rotateX": 600, - "rotateY": 1200 - } - } - }, - "interactivity": { - "detect_on": "canvas", - "events": { - "onhover": { - "enable": true, - "mode": "grab" - }, - "onclick": { - "enable": true, - "mode": "push" - }, - "resize": true - }, - "modes": { - "grab": { - "distance": 200, - "line_linked": { - "opacity": 1 - } - }, - "bubble": { - "distance": 400, - "size": 40, - "duration": 2, - "opacity": 8, - "speed": 3 - }, - "repulse": { - "distance": 200, - "duration": 0.4 - }, - "push": { - "particles_nb": 4 - }, - "remove": { - "particles_nb": 2 - } - } - }, - "retina_detect": false - } - -); \ No newline at end of file diff --git a/src/main/resources/static/js/bignumber.min.js b/src/main/resources/static/js/bignumber.min.js deleted file mode 100644 index af525b1..0000000 --- a/src/main/resources/static/js/bignumber.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/* bignumber.js v8.1.1 https://github.com/MikeMcl/bignumber.js/LICENCE */ -!function(e){"use strict";var r,x=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,L="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator,U=Math.ceil,I=Math.floor,T="[BigNumber Error] ",C=T+"Number primitive has more than 15 significant digits: ",M=1e14,G=14,k=9007199254740991,F=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],j=1e7,q=1e9;function $(e){var r=0|e;return 0o[s]^n?1:-1;return u==l?0:l(t=e.length)){for(i=n,r-=t;--r;i+=n);e+=i}else rb?c.c=c.e=null:e.eb)c.c=c.e=null;else if(ob?e.c=e.e=null:e.c=n=a.length){if(!t)break e;for(;a.length<=l;a.push(0));u=c=0,s=(o%=G)-G+(i=1)}else{for(u=f=a[l],i=1;10<=f;f/=10,i++);c=(s=(o%=G)-G+i)<0?0:u/h[i-s-1]%10|0}if(t=t||r<0||null!=a[l+1]||(s<0?u:u%h[i-s-1]),t=n<4?(c||t)&&(0==n||n==(e.s<0?3:2)):5b?e.c=e.e=null:e.e>>11))?(n=crypto.getRandomValues(new Uint32Array(2)),r[s]=n[0],r[s+1]=n[1]):(f.push(o%1e14),s+=2);s=i/2}else{if(!crypto.randomBytes)throw O=!1,Error(T+"crypto unavailable");for(r=crypto.randomBytes(i*=7);sn-1&&(null==s[i+1]&&(s[i+1]=0),s[i+1]+=s[i]/n|0,s[i]%=n)}return s.reverse()}return function(e,r,n,t,i){var o,s,f,u,l,c,a,h,g=e.indexOf("."),p=y,w=N;for(0<=g&&(u=E,E=0,e=e.replace(".",""),c=(h=new _(r)).pow(e.length-g),E=u,h.c=d(Y(z(c.c),c.e,"0"),10,n,m),h.e=h.c.length),f=u=(a=d(e,r,n,i?(o=S,m):(o=m,S))).length;0==a[--u];a.pop());if(!a[0])return o.charAt(0);if(g<0?--f:(c.c=a,c.e=f,c.s=t,a=(c=v(c,h,p,w,n)).c,l=c.r,f=c.e),g=a[s=f+p+1],u=n/2,l=l||s<0||null!=a[s+1],l=w<4?(null!=g||l)&&(0==w||w==(c.s<0?3:2)):un;)a[s]=0,s||(++f,a=[1].concat(a));for(u=a.length;!a[--u];);for(g=0,e="";g<=u;e+=o.charAt(a[g++]));e=Y(e,f,o.charAt(0))}return e}}(),v=function(){function S(e,r,n){var t,i,o,s,f=0,u=e.length,l=r%j,c=r/j|0;for(e=e.slice();u--;)f=((i=l*(o=e[u]%j)+(t=c*o+(s=e[u]/j|0)*l)%j*j+f)/n|0)+(t/j|0)+c*s,e[u]=i%n;return f&&(e=[f].concat(e)),e}function B(e,r,n,t){var i,o;if(n!=t)o=tr[i]?1:-1;break}return o}function R(e,r,n,t){for(var i=0;n--;)e[n]-=i,i=e[n](E[f]||0)&&s--,O<0)g.push(1),u=!0;else{for(v=E.length,N=A.length,O+=2,1<(l=I(i/(A[f=0]+1)))&&(A=S(A,l,i),E=S(E,l,i),N=A.length,v=E.length),d=N,w=(p=E.slice(0,N)).length;w=i/2&&y++;do{if(l=0,(o=B(A,p,N,w))<0){if(m=p[0],N!=w&&(m=m*i+(p[1]||0)),1<(l=I(m/y)))for(i<=l&&(l=i-1),a=(c=S(A,l,i)).length,w=p.length;1==B(c,p,a,w);)l--,R(c,No&&(l.c.length=o):t&&(l=l.mod(r))}if(i){if(0===(i=I(i/2)))break;u=i%2}else if(D(e=e.times(n),e.e+1,1),14o&&(c.c.length=o):t&&(c=c.mod(r))}return t?l:(f&&(l=w.div(l)),r?l.mod(r):o?D(l,E,N,void 0):l)},t.integerValue=function(e){var r=new _(this);return null==e?e=N:V(e,0,8),D(r,r.e+1,e)},t.isEqualTo=t.eq=function(e,r){return 0===H(this,new _(e,r))},t.isFinite=function(){return!!this.c},t.isGreaterThan=t.gt=function(e,r){return 0this.c.length-2},t.isLessThan=t.lt=function(e,r){return H(this,new _(e,r))<0},t.isLessThanOrEqualTo=t.lte=function(e,r){return-1===(r=H(this,new _(e,r)))||0===r},t.isNaN=function(){return!this.s},t.isNegative=function(){return this.s<0},t.isPositive=function(){return 0t&&(t=this.e+1),t},t.shiftedBy=function(e){return V(e,-k,k),this.times("1e"+e)},t.squareRoot=t.sqrt=function(){var e,r,n,t,i,o=this,s=o.c,f=o.s,u=o.e,l=y+4,c=new _("0.5");if(1!==f||!s||!s[0])return new _(!f||f<0&&(!s||s[0])?NaN:s?o:1/0);if((n=0==(f=Math.sqrt(+P(o)))||f==1/0?(((r=z(s)).length+u)%2==0&&(r+="0"),f=Math.sqrt(+r),u=$((u+1)/2)-(u<0||u%2),new _(r=f==1/0?"1e"+u:(r=f.toExponential()).slice(0,r.indexOf("e")+1)+u)):new _(f+"")).c[0])for((f=(u=n.e)+l)<3&&(f=0);;)if(i=n,n=c.times(i.plus(v(o,i,l,1))),z(i.c).slice(0,f)===(r=z(n.c)).slice(0,f)){if(n.e=4)throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}(),function(){function t(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function e(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o=function(){function t(t,e){for(var n=0;n0?n:null}catch(t){return null}},reflow:function(t){return t.offsetHeight},triggerTransitionEnd:function(e){t(e).trigger(s.end)},supportsTransitionEnd:function(){return Boolean(s)},typeCheckConfig:function(t,i,o){for(var r in o)if(o.hasOwnProperty(r)){var s=o[r],a=i[r],l=a&&n(a)?"element":e(a);if(!new RegExp(s).test(l))throw new Error(t.toUpperCase()+': Option "'+r+'" provided type "'+l+'" but expected type "'+s+'".')}}};return s=o(),t.fn.emulateTransitionEnd=r,l.supportsTransitionEnd()&&(t.event.special[l.TRANSITION_END]=i()),l}(jQuery),s=(function(t){var e="alert",i=t.fn[e],s={DISMISS:'[data-dismiss="alert"]'},a={CLOSE:"close.bs.alert",CLOSED:"closed.bs.alert",CLICK_DATA_API:"click.bs.alert.data-api"},l={ALERT:"alert",FADE:"fade",SHOW:"show"},h=function(){function e(t){n(this,e),this._element=t}return e.prototype.close=function(t){t=t||this._element;var e=this._getRootElement(t);this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},e.prototype.dispose=function(){t.removeData(this._element,"bs.alert"),this._element=null},e.prototype._getRootElement=function(e){var n=r.getSelectorFromElement(e),i=!1;return n&&(i=t(n)[0]),i||(i=t(e).closest("."+l.ALERT)[0]),i},e.prototype._triggerCloseEvent=function(e){var n=t.Event(a.CLOSE);return t(e).trigger(n),n},e.prototype._removeElement=function(e){var n=this;t(e).removeClass(l.SHOW),r.supportsTransitionEnd()&&t(e).hasClass(l.FADE)?t(e).one(r.TRANSITION_END,function(t){return n._destroyElement(e,t)}).emulateTransitionEnd(150):this._destroyElement(e)},e.prototype._destroyElement=function(e){t(e).detach().trigger(a.CLOSED).remove()},e._jQueryInterface=function(n){return this.each(function(){var i=t(this),o=i.data("bs.alert");o||(o=new e(this),i.data("bs.alert",o)),"close"===n&&o[n](this)})},e._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},o(e,null,[{key:"VERSION",get:function(){return"4.0.0-beta"}}]),e}();t(document).on(a.CLICK_DATA_API,s.DISMISS,h._handleDismiss(new h)),t.fn[e]=h._jQueryInterface,t.fn[e].Constructor=h,t.fn[e].noConflict=function(){return t.fn[e]=i,h._jQueryInterface}}(jQuery),function(t){var e="button",i=t.fn[e],r={ACTIVE:"active",BUTTON:"btn",FOCUS:"focus"},s={DATA_TOGGLE_CARROT:'[data-toggle^="button"]',DATA_TOGGLE:'[data-toggle="buttons"]',INPUT:"input",ACTIVE:".active",BUTTON:".btn"},a={CLICK_DATA_API:"click.bs.button.data-api",FOCUS_BLUR_DATA_API:"focus.bs.button.data-api blur.bs.button.data-api"},l=function(){function e(t){n(this,e),this._element=t}return e.prototype.toggle=function(){var e=!0,n=!0,i=t(this._element).closest(s.DATA_TOGGLE)[0];if(i){var o=t(this._element).find(s.INPUT)[0];if(o){if("radio"===o.type)if(o.checked&&t(this._element).hasClass(r.ACTIVE))e=!1;else{var a=t(i).find(s.ACTIVE)[0];a&&t(a).removeClass(r.ACTIVE)}if(e){if(o.hasAttribute("disabled")||i.hasAttribute("disabled")||o.classList.contains("disabled")||i.classList.contains("disabled"))return;o.checked=!t(this._element).hasClass(r.ACTIVE),t(o).trigger("change")}o.focus(),n=!1}}n&&this._element.setAttribute("aria-pressed",!t(this._element).hasClass(r.ACTIVE)),e&&t(this._element).toggleClass(r.ACTIVE)},e.prototype.dispose=function(){t.removeData(this._element,"bs.button"),this._element=null},e._jQueryInterface=function(n){return this.each(function(){var i=t(this).data("bs.button");i||(i=new e(this),t(this).data("bs.button",i)),"toggle"===n&&i[n]()})},o(e,null,[{key:"VERSION",get:function(){return"4.0.0-beta"}}]),e}();t(document).on(a.CLICK_DATA_API,s.DATA_TOGGLE_CARROT,function(e){e.preventDefault();var n=e.target;t(n).hasClass(r.BUTTON)||(n=t(n).closest(s.BUTTON)),l._jQueryInterface.call(t(n),"toggle")}).on(a.FOCUS_BLUR_DATA_API,s.DATA_TOGGLE_CARROT,function(e){var n=t(e.target).closest(s.BUTTON)[0];t(n).toggleClass(r.FOCUS,/^focus(in)?$/.test(e.type))}),t.fn[e]=l._jQueryInterface,t.fn[e].Constructor=l,t.fn[e].noConflict=function(){return t.fn[e]=i,l._jQueryInterface}}(jQuery),function(t){var e="carousel",s="bs.carousel",a="."+s,l=t.fn[e],h={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0},c={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean"},u={NEXT:"next",PREV:"prev",LEFT:"left",RIGHT:"right"},d={SLIDE:"slide"+a,SLID:"slid"+a,KEYDOWN:"keydown"+a,MOUSEENTER:"mouseenter"+a,MOUSELEAVE:"mouseleave"+a,TOUCHEND:"touchend"+a,LOAD_DATA_API:"load.bs.carousel.data-api",CLICK_DATA_API:"click.bs.carousel.data-api"},f={CAROUSEL:"carousel",ACTIVE:"active",SLIDE:"slide",RIGHT:"carousel-item-right",LEFT:"carousel-item-left",NEXT:"carousel-item-next",PREV:"carousel-item-prev",ITEM:"carousel-item"},p={ACTIVE:".active",ACTIVE_ITEM:".active.carousel-item",ITEM:".carousel-item",NEXT_PREV:".carousel-item-next, .carousel-item-prev",INDICATORS:".carousel-indicators",DATA_SLIDE:"[data-slide], [data-slide-to]",DATA_RIDE:'[data-ride="carousel"]'},_=function(){function l(e,i){n(this,l),this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this._config=this._getConfig(i),this._element=t(e)[0],this._indicatorsElement=t(this._element).find(p.INDICATORS)[0],this._addEventListeners()}return l.prototype.next=function(){this._isSliding||this._slide(u.NEXT)},l.prototype.nextWhenVisible=function(){document.hidden||this.next()},l.prototype.prev=function(){this._isSliding||this._slide(u.PREV)},l.prototype.pause=function(e){e||(this._isPaused=!0),t(this._element).find(p.NEXT_PREV)[0]&&r.supportsTransitionEnd()&&(r.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},l.prototype.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},l.prototype.to=function(e){var n=this;this._activeElement=t(this._element).find(p.ACTIVE_ITEM)[0];var i=this._getItemIndex(this._activeElement);if(!(e>this._items.length-1||e<0))if(this._isSliding)t(this._element).one(d.SLID,function(){return n.to(e)});else{if(i===e)return this.pause(),void this.cycle();var o=e>i?u.NEXT:u.PREV;this._slide(o,this._items[e])}},l.prototype.dispose=function(){t(this._element).off(a),t.removeData(this._element,s),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},l.prototype._getConfig=function(n){return n=t.extend({},h,n),r.typeCheckConfig(e,n,c),n},l.prototype._addEventListeners=function(){var e=this;this._config.keyboard&&t(this._element).on(d.KEYDOWN,function(t){return e._keydown(t)}),"hover"===this._config.pause&&(t(this._element).on(d.MOUSEENTER,function(t){return e.pause(t)}).on(d.MOUSELEAVE,function(t){return e.cycle(t)}),"ontouchstart"in document.documentElement&&t(this._element).on(d.TOUCHEND,function(){e.pause(),e.touchTimeout&&clearTimeout(e.touchTimeout),e.touchTimeout=setTimeout(function(t){return e.cycle(t)},500+e._config.interval)}))},l.prototype._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next();break;default:return}},l.prototype._getItemIndex=function(e){return this._items=t.makeArray(t(e).parent().find(p.ITEM)),this._items.indexOf(e)},l.prototype._getItemByDirection=function(t,e){var n=t===u.NEXT,i=t===u.PREV,o=this._getItemIndex(e),r=this._items.length-1;if((i&&0===o||n&&o===r)&&!this._config.wrap)return e;var s=(o+(t===u.PREV?-1:1))%this._items.length;return-1===s?this._items[this._items.length-1]:this._items[s]},l.prototype._triggerSlideEvent=function(e,n){var i=this._getItemIndex(e),o=this._getItemIndex(t(this._element).find(p.ACTIVE_ITEM)[0]),r=t.Event(d.SLIDE,{relatedTarget:e,direction:n,from:o,to:i});return t(this._element).trigger(r),r},l.prototype._setActiveIndicatorElement=function(e){if(this._indicatorsElement){t(this._indicatorsElement).find(p.ACTIVE).removeClass(f.ACTIVE);var n=this._indicatorsElement.children[this._getItemIndex(e)];n&&t(n).addClass(f.ACTIVE)}},l.prototype._slide=function(e,n){var i=this,o=t(this._element).find(p.ACTIVE_ITEM)[0],s=this._getItemIndex(o),a=n||o&&this._getItemByDirection(e,o),l=this._getItemIndex(a),h=Boolean(this._interval),c=void 0,_=void 0,g=void 0;if(e===u.NEXT?(c=f.LEFT,_=f.NEXT,g=u.LEFT):(c=f.RIGHT,_=f.PREV,g=u.RIGHT),a&&t(a).hasClass(f.ACTIVE))this._isSliding=!1;else if(!this._triggerSlideEvent(a,g).isDefaultPrevented()&&o&&a){this._isSliding=!0,h&&this.pause(),this._setActiveIndicatorElement(a);var m=t.Event(d.SLID,{relatedTarget:a,direction:g,from:s,to:l});r.supportsTransitionEnd()&&t(this._element).hasClass(f.SLIDE)?(t(a).addClass(_),r.reflow(a),t(o).addClass(c),t(a).addClass(c),t(o).one(r.TRANSITION_END,function(){t(a).removeClass(c+" "+_).addClass(f.ACTIVE),t(o).removeClass(f.ACTIVE+" "+_+" "+c),i._isSliding=!1,setTimeout(function(){return t(i._element).trigger(m)},0)}).emulateTransitionEnd(600)):(t(o).removeClass(f.ACTIVE),t(a).addClass(f.ACTIVE),this._isSliding=!1,t(this._element).trigger(m)),h&&this.cycle()}},l._jQueryInterface=function(e){return this.each(function(){var n=t(this).data(s),o=t.extend({},h,t(this).data());"object"===(void 0===e?"undefined":i(e))&&t.extend(o,e);var r="string"==typeof e?e:o.slide;if(n||(n=new l(this,o),t(this).data(s,n)),"number"==typeof e)n.to(e);else if("string"==typeof r){if(void 0===n[r])throw new Error('No method named "'+r+'"');n[r]()}else o.interval&&(n.pause(),n.cycle())})},l._dataApiClickHandler=function(e){var n=r.getSelectorFromElement(this);if(n){var i=t(n)[0];if(i&&t(i).hasClass(f.CAROUSEL)){var o=t.extend({},t(i).data(),t(this).data()),a=this.getAttribute("data-slide-to");a&&(o.interval=!1),l._jQueryInterface.call(t(i),o),a&&t(i).data(s).to(a),e.preventDefault()}}},o(l,null,[{key:"VERSION",get:function(){return"4.0.0-beta"}},{key:"Default",get:function(){return h}}]),l}();t(document).on(d.CLICK_DATA_API,p.DATA_SLIDE,_._dataApiClickHandler),t(window).on(d.LOAD_DATA_API,function(){t(p.DATA_RIDE).each(function(){var e=t(this);_._jQueryInterface.call(e,e.data())})}),t.fn[e]=_._jQueryInterface,t.fn[e].Constructor=_,t.fn[e].noConflict=function(){return t.fn[e]=l,_._jQueryInterface}}(jQuery),function(t){var e="collapse",s="bs.collapse",a=t.fn[e],l={toggle:!0,parent:""},h={toggle:"boolean",parent:"string"},c={SHOW:"show.bs.collapse",SHOWN:"shown.bs.collapse",HIDE:"hide.bs.collapse",HIDDEN:"hidden.bs.collapse",CLICK_DATA_API:"click.bs.collapse.data-api"},u={SHOW:"show",COLLAPSE:"collapse",COLLAPSING:"collapsing",COLLAPSED:"collapsed"},d={WIDTH:"width",HEIGHT:"height"},f={ACTIVES:".show, .collapsing",DATA_TOGGLE:'[data-toggle="collapse"]'},p=function(){function a(e,i){n(this,a),this._isTransitioning=!1,this._element=e,this._config=this._getConfig(i),this._triggerArray=t.makeArray(t('[data-toggle="collapse"][href="#'+e.id+'"],[data-toggle="collapse"][data-target="#'+e.id+'"]'));for(var o=t(f.DATA_TOGGLE),s=0;s0&&this._triggerArray.push(l)}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}return a.prototype.toggle=function(){t(this._element).hasClass(u.SHOW)?this.hide():this.show()},a.prototype.show=function(){var e=this;if(!this._isTransitioning&&!t(this._element).hasClass(u.SHOW)){var n=void 0,i=void 0;if(this._parent&&((n=t.makeArray(t(this._parent).children().children(f.ACTIVES))).length||(n=null)),!(n&&(i=t(n).data(s))&&i._isTransitioning)){var o=t.Event(c.SHOW);if(t(this._element).trigger(o),!o.isDefaultPrevented()){n&&(a._jQueryInterface.call(t(n),"hide"),i||t(n).data(s,null));var l=this._getDimension();t(this._element).removeClass(u.COLLAPSE).addClass(u.COLLAPSING),this._element.style[l]=0,this._triggerArray.length&&t(this._triggerArray).removeClass(u.COLLAPSED).attr("aria-expanded",!0),this.setTransitioning(!0);var h=function(){t(e._element).removeClass(u.COLLAPSING).addClass(u.COLLAPSE).addClass(u.SHOW),e._element.style[l]="",e.setTransitioning(!1),t(e._element).trigger(c.SHOWN)};if(r.supportsTransitionEnd()){var d="scroll"+(l[0].toUpperCase()+l.slice(1));t(this._element).one(r.TRANSITION_END,h).emulateTransitionEnd(600),this._element.style[l]=this._element[d]+"px"}else h()}}}},a.prototype.hide=function(){var e=this;if(!this._isTransitioning&&t(this._element).hasClass(u.SHOW)){var n=t.Event(c.HIDE);if(t(this._element).trigger(n),!n.isDefaultPrevented()){var i=this._getDimension();if(this._element.style[i]=this._element.getBoundingClientRect()[i]+"px",r.reflow(this._element),t(this._element).addClass(u.COLLAPSING).removeClass(u.COLLAPSE).removeClass(u.SHOW),this._triggerArray.length)for(var o=0;o0},l.prototype._getPopperConfig=function(){var t={placement:this._getPlacement(),modifiers:{offset:{offset:this._config.offset},flip:{enabled:this._config.flip}}};return this._inNavbar&&(t.modifiers.applyStyle={enabled:!this._inNavbar}),t},l._jQueryInterface=function(e){return this.each(function(){var n=t(this).data(s),o="object"===(void 0===e?"undefined":i(e))?e:null;if(n||(n=new l(this,o),t(this).data(s,n)),"string"==typeof e){if(void 0===n[e])throw new Error('No method named "'+e+'"');n[e]()}})},l._clearMenus=function(e){if(!e||3!==e.which&&("keyup"!==e.type||9===e.which))for(var n=t.makeArray(t(d.DATA_TOGGLE)),i=0;i0&&r--,40===e.which&&rdocument.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},a.prototype._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},a.prototype._checkScrollbar=function(){this._isBodyOverflowing=document.body.clientWidth=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t0)return this._activeTarget=null,void this._clear();for(var o=this._offsets.length;o--;)this._activeTarget!==this._targets[o]&&t>=this._offsets[o]&&(void 0===this._offsets[o+1]||t .dropdown-menu .active"},l=function(){function e(t){n(this,e),this._element=t}return e.prototype.show=function(){var e=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&t(this._element).hasClass(s.ACTIVE)||t(this._element).hasClass(s.DISABLED))){var n=void 0,o=void 0,l=t(this._element).closest(a.NAV_LIST_GROUP)[0],h=r.getSelectorFromElement(this._element);l&&(o=t.makeArray(t(l).find(a.ACTIVE)),o=o[o.length-1]);var c=t.Event(i.HIDE,{relatedTarget:this._element}),u=t.Event(i.SHOW,{relatedTarget:o});if(o&&t(o).trigger(c),t(this._element).trigger(u),!u.isDefaultPrevented()&&!c.isDefaultPrevented()){h&&(n=t(h)[0]),this._activate(this._element,l);var d=function(){var n=t.Event(i.HIDDEN,{relatedTarget:e._element}),r=t.Event(i.SHOWN,{relatedTarget:o});t(o).trigger(n),t(e._element).trigger(r)};n?this._activate(n,n.parentNode,d):d()}}},e.prototype.dispose=function(){t.removeData(this._element,"bs.tab"),this._element=null},e.prototype._activate=function(e,n,i){var o=this,l=t(n).find(a.ACTIVE)[0],h=i&&r.supportsTransitionEnd()&&l&&t(l).hasClass(s.FADE),c=function(){return o._transitionComplete(e,l,h,i)};l&&h?t(l).one(r.TRANSITION_END,c).emulateTransitionEnd(150):c(),l&&t(l).removeClass(s.SHOW)},e.prototype._transitionComplete=function(e,n,i,o){if(n){t(n).removeClass(s.ACTIVE);var l=t(n.parentNode).find(a.DROPDOWN_ACTIVE_CHILD)[0];l&&t(l).removeClass(s.ACTIVE),n.setAttribute("aria-expanded",!1)}if(t(e).addClass(s.ACTIVE),e.setAttribute("aria-expanded",!0),i?(r.reflow(e),t(e).addClass(s.SHOW)):t(e).removeClass(s.FADE),e.parentNode&&t(e.parentNode).hasClass(s.DROPDOWN_MENU)){var h=t(e).closest(a.DROPDOWN)[0];h&&t(h).find(a.DROPDOWN_TOGGLE).addClass(s.ACTIVE),e.setAttribute("aria-expanded",!0)}o&&o()},e._jQueryInterface=function(n){return this.each(function(){var i=t(this),o=i.data("bs.tab");if(o||(o=new e(this),i.data("bs.tab",o)),"string"==typeof n){if(void 0===o[n])throw new Error('No method named "'+n+'"');o[n]()}})},o(e,null,[{key:"VERSION",get:function(){return"4.0.0-beta"}}]),e}();t(document).on(i.CLICK_DATA_API,a.DATA_TOGGLE,function(e){e.preventDefault(),l._jQueryInterface.call(t(this),"show")}),t.fn.tab=l._jQueryInterface,t.fn.tab.Constructor=l,t.fn.tab.noConflict=function(){return t.fn.tab=e,l._jQueryInterface}}(jQuery),function(t){if("undefined"==typeof Popper)throw new Error("Bootstrap tooltips require Popper.js (https://popper.js.org)");var e="tooltip",s=".bs.tooltip",a=t.fn[e],l=new RegExp("(^|\\s)bs-tooltip\\S+","g"),h={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)"},c={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},u={animation:!0,template:'',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip"},d={SHOW:"show",OUT:"out"},f={HIDE:"hide"+s,HIDDEN:"hidden"+s,SHOW:"show"+s,SHOWN:"shown"+s,INSERTED:"inserted"+s,CLICK:"click"+s,FOCUSIN:"focusin"+s,FOCUSOUT:"focusout"+s,MOUSEENTER:"mouseenter"+s,MOUSELEAVE:"mouseleave"+s},p={FADE:"fade",SHOW:"show"},_={TOOLTIP:".tooltip",TOOLTIP_INNER:".tooltip-inner",ARROW:".arrow"},g={HOVER:"hover",FOCUS:"focus",CLICK:"click",MANUAL:"manual"},m=function(){function a(t,e){n(this,a),this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}return a.prototype.enable=function(){this._isEnabled=!0},a.prototype.disable=function(){this._isEnabled=!1},a.prototype.toggleEnabled=function(){this._isEnabled=!this._isEnabled},a.prototype.toggle=function(e){if(e){var n=this.constructor.DATA_KEY,i=t(e.currentTarget).data(n);i||(i=new this.constructor(e.currentTarget,this._getDelegateConfig()),t(e.currentTarget).data(n,i)),i._activeTrigger.click=!i._activeTrigger.click,i._isWithActiveTrigger()?i._enter(null,i):i._leave(null,i)}else{if(t(this.getTipElement()).hasClass(p.SHOW))return void this._leave(null,this);this._enter(null,this)}},a.prototype.dispose=function(){clearTimeout(this._timeout),t.removeData(this.element,this.constructor.DATA_KEY),t(this.element).off(this.constructor.EVENT_KEY),t(this.element).closest(".modal").off("hide.bs.modal"),this.tip&&t(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,null!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},a.prototype.show=function(){var e=this;if("none"===t(this.element).css("display"))throw new Error("Please use show on visible elements");var n=t.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){t(this.element).trigger(n);var i=t.contains(this.element.ownerDocument.documentElement,this.element);if(n.isDefaultPrevented()||!i)return;var o=this.getTipElement(),s=r.getUID(this.constructor.NAME);o.setAttribute("id",s),this.element.setAttribute("aria-describedby",s),this.setContent(),this.config.animation&&t(o).addClass(p.FADE);var l="function"==typeof this.config.placement?this.config.placement.call(this,o,this.element):this.config.placement,h=this._getAttachment(l);this.addAttachmentClass(h);var c=!1===this.config.container?document.body:t(this.config.container);t(o).data(this.constructor.DATA_KEY,this),t.contains(this.element.ownerDocument.documentElement,this.tip)||t(o).appendTo(c),t(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new Popper(this.element,o,{placement:h,modifiers:{offset:{offset:this.config.offset},flip:{behavior:this.config.fallbackPlacement},arrow:{element:_.ARROW}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){e._handlePopperPlacementChange(t)}}),t(o).addClass(p.SHOW),"ontouchstart"in document.documentElement&&t("body").children().on("mouseover",null,t.noop);var u=function(){e.config.animation&&e._fixTransition();var n=e._hoverState;e._hoverState=null,t(e.element).trigger(e.constructor.Event.SHOWN),n===d.OUT&&e._leave(null,e)};r.supportsTransitionEnd()&&t(this.tip).hasClass(p.FADE)?t(this.tip).one(r.TRANSITION_END,u).emulateTransitionEnd(a._TRANSITION_DURATION):u()}},a.prototype.hide=function(e){var n=this,i=this.getTipElement(),o=t.Event(this.constructor.Event.HIDE),s=function(){n._hoverState!==d.SHOW&&i.parentNode&&i.parentNode.removeChild(i),n._cleanTipClass(),n.element.removeAttribute("aria-describedby"),t(n.element).trigger(n.constructor.Event.HIDDEN),null!==n._popper&&n._popper.destroy(),e&&e()};t(this.element).trigger(o),o.isDefaultPrevented()||(t(i).removeClass(p.SHOW),"ontouchstart"in document.documentElement&&t("body").children().off("mouseover",null,t.noop),this._activeTrigger[g.CLICK]=!1,this._activeTrigger[g.FOCUS]=!1,this._activeTrigger[g.HOVER]=!1,r.supportsTransitionEnd()&&t(this.tip).hasClass(p.FADE)?t(i).one(r.TRANSITION_END,s).emulateTransitionEnd(150):s(),this._hoverState="")},a.prototype.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},a.prototype.isWithContent=function(){return Boolean(this.getTitle())},a.prototype.addAttachmentClass=function(e){t(this.getTipElement()).addClass("bs-tooltip-"+e)},a.prototype.getTipElement=function(){return this.tip=this.tip||t(this.config.template)[0]},a.prototype.setContent=function(){var e=t(this.getTipElement());this.setElementContent(e.find(_.TOOLTIP_INNER),this.getTitle()),e.removeClass(p.FADE+" "+p.SHOW)},a.prototype.setElementContent=function(e,n){var o=this.config.html;"object"===(void 0===n?"undefined":i(n))&&(n.nodeType||n.jquery)?o?t(n).parent().is(e)||e.empty().append(n):e.text(t(n).text()):e[o?"html":"text"](n)},a.prototype.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},a.prototype._getAttachment=function(t){return c[t.toUpperCase()]},a.prototype._setListeners=function(){var e=this;this.config.trigger.split(" ").forEach(function(n){if("click"===n)t(e.element).on(e.constructor.Event.CLICK,e.config.selector,function(t){return e.toggle(t)});else if(n!==g.MANUAL){var i=n===g.HOVER?e.constructor.Event.MOUSEENTER:e.constructor.Event.FOCUSIN,o=n===g.HOVER?e.constructor.Event.MOUSELEAVE:e.constructor.Event.FOCUSOUT;t(e.element).on(i,e.config.selector,function(t){return e._enter(t)}).on(o,e.config.selector,function(t){return e._leave(t)})}t(e.element).closest(".modal").on("hide.bs.modal",function(){return e.hide()})}),this.config.selector?this.config=t.extend({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},a.prototype._fixTitle=function(){var t=i(this.element.getAttribute("data-original-title"));(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},a.prototype._enter=function(e,n){var i=this.constructor.DATA_KEY;(n=n||t(e.currentTarget).data(i))||(n=new this.constructor(e.currentTarget,this._getDelegateConfig()),t(e.currentTarget).data(i,n)),e&&(n._activeTrigger["focusin"===e.type?g.FOCUS:g.HOVER]=!0),t(n.getTipElement()).hasClass(p.SHOW)||n._hoverState===d.SHOW?n._hoverState=d.SHOW:(clearTimeout(n._timeout),n._hoverState=d.SHOW,n.config.delay&&n.config.delay.show?n._timeout=setTimeout(function(){n._hoverState===d.SHOW&&n.show()},n.config.delay.show):n.show())},a.prototype._leave=function(e,n){var i=this.constructor.DATA_KEY;(n=n||t(e.currentTarget).data(i))||(n=new this.constructor(e.currentTarget,this._getDelegateConfig()),t(e.currentTarget).data(i,n)),e&&(n._activeTrigger["focusout"===e.type?g.FOCUS:g.HOVER]=!1),n._isWithActiveTrigger()||(clearTimeout(n._timeout),n._hoverState=d.OUT,n.config.delay&&n.config.delay.hide?n._timeout=setTimeout(function(){n._hoverState===d.OUT&&n.hide()},n.config.delay.hide):n.hide())},a.prototype._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},a.prototype._getConfig=function(n){return(n=t.extend({},this.constructor.Default,t(this.element).data(),n)).delay&&"number"==typeof n.delay&&(n.delay={show:n.delay,hide:n.delay}),n.title&&"number"==typeof n.title&&(n.title=n.title.toString()),n.content&&"number"==typeof n.content&&(n.content=n.content.toString()),r.typeCheckConfig(e,n,this.constructor.DefaultType),n},a.prototype._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},a.prototype._cleanTipClass=function(){var e=t(this.getTipElement()),n=e.attr("class").match(l);null!==n&&n.length>0&&e.removeClass(n.join(""))},a.prototype._handlePopperPlacementChange=function(t){this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},a.prototype._fixTransition=function(){var e=this.getTipElement(),n=this.config.animation;null===e.getAttribute("x-placement")&&(t(e).removeClass(p.FADE),this.config.animation=!1,this.hide(),this.show(),this.config.animation=n)},a._jQueryInterface=function(e){return this.each(function(){var n=t(this).data("bs.tooltip"),o="object"===(void 0===e?"undefined":i(e))&&e;if((n||!/dispose|hide/.test(e))&&(n||(n=new a(this,o),t(this).data("bs.tooltip",n)),"string"==typeof e)){if(void 0===n[e])throw new Error('No method named "'+e+'"');n[e]()}})},o(a,null,[{key:"VERSION",get:function(){return"4.0.0-beta"}},{key:"Default",get:function(){return u}},{key:"NAME",get:function(){return e}},{key:"DATA_KEY",get:function(){return"bs.tooltip"}},{key:"Event",get:function(){return f}},{key:"EVENT_KEY",get:function(){return s}},{key:"DefaultType",get:function(){return h}}]),a}();return t.fn[e]=m._jQueryInterface,t.fn[e].Constructor=m,t.fn[e].noConflict=function(){return t.fn[e]=a,m._jQueryInterface},m}(jQuery));!function(r){var a="popover",l=".bs.popover",h=r.fn[a],c=new RegExp("(^|\\s)bs-popover\\S+","g"),u=r.extend({},s.Default,{placement:"right",trigger:"click",content:"",template:''}),d=r.extend({},s.DefaultType,{content:"(string|element|function)"}),f={FADE:"fade",SHOW:"show"},p={TITLE:".popover-header",CONTENT:".popover-body"},_={HIDE:"hide"+l,HIDDEN:"hidden"+l,SHOW:"show"+l,SHOWN:"shown"+l,INSERTED:"inserted"+l,CLICK:"click"+l,FOCUSIN:"focusin"+l,FOCUSOUT:"focusout"+l,MOUSEENTER:"mouseenter"+l,MOUSELEAVE:"mouseleave"+l},g=function(s){function h(){return n(this,h),t(this,s.apply(this,arguments))}return e(h,s),h.prototype.isWithContent=function(){return this.getTitle()||this._getContent()},h.prototype.addAttachmentClass=function(t){r(this.getTipElement()).addClass("bs-popover-"+t)},h.prototype.getTipElement=function(){return this.tip=this.tip||r(this.config.template)[0]},h.prototype.setContent=function(){var t=r(this.getTipElement());this.setElementContent(t.find(p.TITLE),this.getTitle()),this.setElementContent(t.find(p.CONTENT),this._getContent()),t.removeClass(f.FADE+" "+f.SHOW)},h.prototype._getContent=function(){return this.element.getAttribute("data-content")||("function"==typeof this.config.content?this.config.content.call(this.element):this.config.content)},h.prototype._cleanTipClass=function(){var t=r(this.getTipElement()),e=t.attr("class").match(c);null!==e&&e.length>0&&t.removeClass(e.join(""))},h._jQueryInterface=function(t){return this.each(function(){var e=r(this).data("bs.popover"),n="object"===(void 0===t?"undefined":i(t))?t:null;if((e||!/destroy|hide/.test(t))&&(e||(e=new h(this,n),r(this).data("bs.popover",e)),"string"==typeof t)){if(void 0===e[t])throw new Error('No method named "'+t+'"');e[t]()}})},o(h,null,[{key:"VERSION",get:function(){return"4.0.0-beta"}},{key:"Default",get:function(){return u}},{key:"NAME",get:function(){return a}},{key:"DATA_KEY",get:function(){return"bs.popover"}},{key:"Event",get:function(){return _}},{key:"EVENT_KEY",get:function(){return l}},{key:"DefaultType",get:function(){return d}}]),h}(s);r.fn[a]=g._jQueryInterface,r.fn[a].Constructor=g,r.fn[a].noConflict=function(){return r.fn[a]=h,g._jQueryInterface}}(jQuery)}(); \ No newline at end of file diff --git a/src/main/resources/static/js/chart-page.js b/src/main/resources/static/js/chart-page.js deleted file mode 100644 index 4486eaa..0000000 --- a/src/main/resources/static/js/chart-page.js +++ /dev/null @@ -1,388 +0,0 @@ -// Bar chart -new Chart(document.getElementById("bar-chart"), { - type: 'bar', - data: { - labels: ["Africa", "Asia", "Europe", "Latin America", "North America"], - datasets: [ - { - label: "Business (millions)", - backgroundColor: ["#3e95cd", "#8e5ea2","#3cba9f","#e8c3b9","#c45850"], - data: [2478,5267,734,784,433] - } - ] - }, - options: { - legend: { display: false }, - title: { - display: true, - text: 'Predicted world Business (millions) in 2050' - } - } -}); - -//Line chart -new Chart(document.getElementById("line-chart"), { - type: 'line', - data: { - labels: [1500,1600,1700,1750,1800,1850,1900,1950,1999,2050], - datasets: [{ - data: [86,114,106,106,107,111,133,221,783,2478], - label: "Africa", - borderColor: "#3e95cd", - fill: false - }, { - data: [282,350,411,502,635,809,947,1402,3700,5267], - label: "Asia", - borderColor: "#8e5ea2", - fill: false - }, { - data: [168,170,178,190,203,276,408,547,675,734], - label: "Europe", - borderColor: "#3cba9f", - fill: false - }, { - data: [40,20,10,16,24,38,74,167,508,784], - label: "Latin America", - borderColor: "#e8c3b9", - fill: false - }, { - data: [6,3,2,2,7,26,82,172,312,433], - label: "North America", - borderColor: "#c45850", - fill: false - } - ] - }, - options: { - title: { - display: true, - text: 'World Business per region (in millions)' - } - } -}); - -//Line chart 2D -new Chart(document.getElementById('line-chart-2D').getContext('2d'), { - type: 'line', - data: { - labels: ['M', 'T', 'W', 'T', 'F', 'S', 'S'], - datasets: [{ - label: 'apples', - data: [12, 19, 3, 17, 6, 3, 7], - backgroundColor: "rgba(153,255,51,0.4)" - }, { - label: 'oranges', - data: [2, 29, 5, 5, 2, 3, 10], - backgroundColor: "rgba(255,153,0,0.9)" - }] - } -}); - -//Pie chart1 -new Chart(document.getElementById("pie-chart1"), { - type: 'pie', - data: { - labels: ["Africa", "Asia", "Europe", "Latin America", "North America"], - datasets: [{ - label: "Business (millions)", - backgroundColor: ["#3e95cd", "#8e5ea2","#3cba9f","#e8c3b9","#c45850"], - data: [2478,5267,734,784,433] - }] - }, - options: { - title: { - display: true, - text: 'Predicted world Business (millions) in 2050' - } - } -}); - -//Pie chart2 -new Chart(document.getElementById("pie-chart2").getContext('2d'), { - type: 'pie', - data: { - labels: ["M", "T", "W", "T", "F", "S", "S"], - datasets: [{ - backgroundColor: [ - "#2ecc71", - "#3498db", - "#95a5a6", - "#9b59b6", - "#f1c40f", - "#e74c3c", - "#34495e" - ], - data: [12, 19, 3, 17, 28, 24, 7] - }] - } -}); - -//Radar Chart -new Chart(document.getElementById("radar-chart"), { - type: 'radar', - data: { - labels: ["Africa", "Asia", "Europe", "Latin America", "North America"], - datasets: [ - { - label: "1950", - fill: true, - backgroundColor: "rgba(179,181,198,0.2)", - borderColor: "rgba(179,181,198,1)", - pointBorderColor: "#fff", - pointBackgroundColor: "rgba(179,181,198,1)", - data: [8.77,55.61,21.69,6.62,6.82] - }, { - label: "2050", - fill: true, - backgroundColor: "rgba(255,99,132,0.2)", - borderColor: "rgba(255,99,132,1)", - pointBorderColor: "#fff", - pointBackgroundColor: "rgba(255,99,132,1)", - pointBorderColor: "#fff", - data: [25.48,54.16,7.61,8.06,4.45] - } - ] - }, - options: { - title: { - display: true, - text: 'Distribution in % of world Business' - } - } -}); - -//Polar Chart1 -new Chart(document.getElementById("polar-chart1"), { - type: 'polarArea', - data: { - labels: ["Africa", "Asia", "Europe", "Latin America", "North America"], - datasets: [ - { - label: "Business (millions)", - backgroundColor: ["#3e95cd", "#8e5ea2","#3cba9f","#e8c3b9","#c45850"], - data: [2478,5267,734,784,433] - } - ] - }, - options: { - title: { - display: true, - text: 'Predicted world Business (millions) in 2050' - } - } -}); - -//Polar Chart2 -new Chart(document.getElementById("polar-chart2").getContext('2d'), { - type: 'polarArea', - data: { - labels: ["M", "T", "W", "T", "F", "S", "S"], - datasets: [{ - backgroundColor: [ - "#2ecc71", - "#3498db", - "#95a5a6", - "#9b59b6", - "#f1c40f", - "#e74c3c", - "#34495e" - ], - data: [12, 19, 3, 17, 28, 24, 7] - }] - } -}); - -//Doughnut Chart1 -new Chart(document.getElementById("doughnut-chart1"), { - type: 'doughnut', - data: { - labels: ["Africa", "Asia", "Europe", "Latin America", "North America"], - datasets: [ - { - label: "Business (millions)", - backgroundColor: ["#3e95cd", "#8e5ea2","#3cba9f","#e8c3b9","#c45850"], - data: [2478,5267,734,784,433] - } - ] - }, - options: { - title: { - display: true, - text: 'Predicted world Business (millions) in 2050' - } - } -}); - -//Doughnut Chart2 -new Chart(document.getElementById("doughnut-chart2").getContext('2d'), { - type: 'doughnut', - data: { - labels: ["M", "T", "W", "T", "F", "S", "S"], - datasets: [{ - backgroundColor: [ - "#2ecc71", - "#3498db", - "#95a5a6", - "#9b59b6", - "#f1c40f", - "#e74c3c", - "#34495e" - ], - data: [12, 19, 3, 17, 28, 24, 7] - }] - } -}); - - -//Bar horizontal Chart -new Chart(document.getElementById("bar-chart-horizontal"), { - type: 'horizontalBar', - data: { - labels: ["Africa", "Asia", "Europe", "Latin America", "North America"], - datasets: [ - { - label: "Business (millions)", - backgroundColor: ["#3e95cd", "#8e5ea2","#3cba9f","#e8c3b9","#c45850"], - data: [2478,5267,734,784,433] - } - ] - }, - options: { - legend: { display: false }, - title: { - display: true, - text: 'Predicted world Business (millions) in 2050' - } - } -}); - -//Grouped bar Chart -new Chart(document.getElementById("bar-chart-grouped"), { - type: 'bar', - data: { - labels: ["1900", "1950", "1999", "2050"], - datasets: [ - { - label: "Africa", - backgroundColor: "#3e95cd", - data: [133,221,783,2478] - }, { - label: "Europe", - backgroundColor: "#8e5ea2", - data: [408,547,675,734] - } - ] - }, - options: { - title: { - display: true, - text: 'Business growth (millions)' - } - } -}); - -//Mixed Chart -new Chart(document.getElementById("mixed-chart"), { - type: 'bar', - data: { - labels: ["1900", "1950", "1999", "2050"], - datasets: [{ - label: "Europe", - type: "line", - borderColor: "#8e5ea2", - data: [408,547,675,734], - fill: false - }, { - label: "Africa", - type: "line", - borderColor: "#3e95cd", - data: [133,221,783,2478], - fill: false - }, { - label: "Europe", - type: "bar", - backgroundColor: "rgba(0,0,0,0.2)", - data: [408,547,675,734], - }, { - label: "Africa", - type: "bar", - backgroundColor: "rgba(0,0,0,0.2)", - backgroundColorHover: "#3e95cd", - data: [133,221,783,2478] - } - ] - }, - options: { - title: { - display: true, - text: 'Business growth (millions): Europe & Africa' - }, - legend: { display: false } - } -}); - -//Bubble Chart -new Chart(document.getElementById("bubble-chart"), { - type: 'bubble', - data: { - labels: "Africa", - datasets: [ - { - label: ["China"], - backgroundColor: "rgba(255,221,50,0.2)", - borderColor: "rgba(255,221,50,1)", - data: [{ - x: 21269017, - y: 5.245, - r: 15 - }] - }, { - label: ["Denmark"], - backgroundColor: "rgba(60,186,159,0.2)", - borderColor: "rgba(60,186,159,1)", - data: [{ - x: 258702, - y: 7.526, - r: 10 - }] - }, { - label: ["Germany"], - backgroundColor: "rgba(0,0,0,0.2)", - borderColor: "#000", - data: [{ - x: 3979083, - y: 6.994, - r: 15 - }] - }, { - label: ["Japan"], - backgroundColor: "rgba(193,46,12,0.2)", - borderColor: "rgba(193,46,12,1)", - data: [{ - x: 4931877, - y: 5.921, - r: 15 - }] - } - ] - }, - options: { - title: { - display: true, - text: 'Predicted world Business (millions) in 2050' - }, scales: { - yAxes: [{ - scaleLabel: { - display: true, - labelString: "Happiness" - } - }], - xAxes: [{ - scaleLabel: { - display: true, - labelString: "GDP (PPP)" - } - }] - } - } -}); \ No newline at end of file diff --git a/src/main/resources/static/js/chart.min.js b/src/main/resources/static/js/chart.min.js deleted file mode 100644 index f4c4a94..0000000 --- a/src/main/resources/static/js/chart.min.js +++ /dev/null @@ -1,10 +0,0 @@ -/*! - * Chart.js - * http://chartjs.org/ - * Version: 2.7.0 - * - * Copyright 2017 Nick Downie - * Released under the MIT license - * https://github.com/chartjs/Chart.js/blob/master/LICENSE.md - */ -!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).Chart=t()}}(function(){return function t(e,n,i){function a(r,l){if(!n[r]){if(!e[r]){var s="function"==typeof require&&require;if(!l&&s)return s(r,!0);if(o)return o(r,!0);var u=new Error("Cannot find module '"+r+"'");throw u.code="MODULE_NOT_FOUND",u}var d=n[r]={exports:{}};e[r][0].call(d.exports,function(t){var n=e[r][1][t];return a(n||t)},d,d.exports,t,e,n,i)}return n[r].exports}for(var o="function"==typeof require&&require,r=0;rn?(e+.05)/(n+.05):(n+.05)/(e+.05)},level:function(t){var e=this.contrast(t);return e>=7.1?"AAA":e>=4.5?"AA":""},dark:function(){var t=this.values.rgb;return(299*t[0]+587*t[1]+114*t[2])/1e3<128},light:function(){return!this.dark()},negate:function(){for(var t=[],e=0;e<3;e++)t[e]=255-this.values.rgb[e];return this.setValues("rgb",t),this},lighten:function(t){var e=this.values.hsl;return e[2]+=e[2]*t,this.setValues("hsl",e),this},darken:function(t){var e=this.values.hsl;return e[2]-=e[2]*t,this.setValues("hsl",e),this},saturate:function(t){var e=this.values.hsl;return e[1]+=e[1]*t,this.setValues("hsl",e),this},desaturate:function(t){var e=this.values.hsl;return e[1]-=e[1]*t,this.setValues("hsl",e),this},whiten:function(t){var e=this.values.hwb;return e[1]+=e[1]*t,this.setValues("hwb",e),this},blacken:function(t){var e=this.values.hwb;return e[2]+=e[2]*t,this.setValues("hwb",e),this},greyscale:function(){var t=this.values.rgb,e=.3*t[0]+.59*t[1]+.11*t[2];return this.setValues("rgb",[e,e,e]),this},clearer:function(t){var e=this.values.alpha;return this.setValues("alpha",e-e*t),this},opaquer:function(t){var e=this.values.alpha;return this.setValues("alpha",e+e*t),this},rotate:function(t){var e=this.values.hsl,n=(e[0]+t)%360;return e[0]=n<0?360+n:n,this.setValues("hsl",e),this},mix:function(t,e){var n=this,i=t,a=void 0===e?.5:e,o=2*a-1,r=n.alpha()-i.alpha(),l=((o*r==-1?o:(o+r)/(1+o*r))+1)/2,s=1-l;return this.rgb(l*n.red()+s*i.red(),l*n.green()+s*i.green(),l*n.blue()+s*i.blue()).alpha(n.alpha()*a+i.alpha()*(1-a))},toJSON:function(){return this.rgb()},clone:function(){var t,e,n=new o,i=this.values,a=n.values;for(var r in i)i.hasOwnProperty(r)&&(t=i[r],"[object Array]"===(e={}.toString.call(t))?a[r]=t.slice(0):"[object Number]"===e?a[r]=t:console.error("unexpected color value:",t));return n}},o.prototype.spaces={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],hwb:["hue","whiteness","blackness"],cmyk:["cyan","magenta","yellow","black"]},o.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]},o.prototype.getValues=function(t){for(var e=this.values,n={},i=0;i.04045?Math.pow((e+.055)/1.055,2.4):e/12.92)+.3576*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)+.1805*(i=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92)),100*(.2126*e+.7152*n+.0722*i),100*(.0193*e+.1192*n+.9505*i)]}function d(t){var e,n,i,a=u(t),o=a[0],r=a[1],l=a[2];return o/=95.047,r/=100,l/=108.883,o=o>.008856?Math.pow(o,1/3):7.787*o+16/116,r=r>.008856?Math.pow(r,1/3):7.787*r+16/116,l=l>.008856?Math.pow(l,1/3):7.787*l+16/116,e=116*r-16,n=500*(o-r),i=200*(r-l),[e,n,i]}function c(t){var e,n,i,a,o,r=t[0]/360,l=t[1]/100,s=t[2]/100;if(0==l)return o=255*s,[o,o,o];e=2*s-(n=s<.5?s*(1+l):s+l-s*l),a=[0,0,0];for(var u=0;u<3;u++)(i=r+1/3*-(u-1))<0&&i++,i>1&&i--,o=6*i<1?e+6*(n-e)*i:2*i<1?n:3*i<2?e+(n-e)*(2/3-i)*6:e,a[u]=255*o;return a}function h(t){var e=t[0]/60,n=t[1]/100,i=t[2]/100,a=Math.floor(e)%6,o=e-Math.floor(e),r=255*i*(1-n),l=255*i*(1-n*o),s=255*i*(1-n*(1-o)),i=255*i;switch(a){case 0:return[i,s,r];case 1:return[l,i,r];case 2:return[r,i,s];case 3:return[r,l,i];case 4:return[s,r,i];case 5:return[i,r,l]}}function f(t){var e,n,i,a,o=t[0]/360,l=t[1]/100,s=t[2]/100,u=l+s;switch(u>1&&(l/=u,s/=u),e=Math.floor(6*o),n=1-s,i=6*o-e,0!=(1&e)&&(i=1-i),a=l+i*(n-l),e){default:case 6:case 0:r=n,g=a,b=l;break;case 1:r=a,g=n,b=l;break;case 2:r=l,g=n,b=a;break;case 3:r=l,g=a,b=n;break;case 4:r=a,g=l,b=n;break;case 5:r=n,g=l,b=a}return[255*r,255*g,255*b]}function p(t){var e,n,i,a=t[0]/100,o=t[1]/100,r=t[2]/100,l=t[3]/100;return e=1-Math.min(1,a*(1-l)+l),n=1-Math.min(1,o*(1-l)+l),i=1-Math.min(1,r*(1-l)+l),[255*e,255*n,255*i]}function v(t){var e,n,i,a=t[0]/100,o=t[1]/100,r=t[2]/100;return e=3.2406*a+-1.5372*o+-.4986*r,n=-.9689*a+1.8758*o+.0415*r,i=.0557*a+-.204*o+1.057*r,e=e>.0031308?1.055*Math.pow(e,1/2.4)-.055:e*=12.92,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:n*=12.92,i=i>.0031308?1.055*Math.pow(i,1/2.4)-.055:i*=12.92,e=Math.min(Math.max(0,e),1),n=Math.min(Math.max(0,n),1),i=Math.min(Math.max(0,i),1),[255*e,255*n,255*i]}function m(t){var e,n,i,a=t[0],o=t[1],r=t[2];return a/=95.047,o/=100,r/=108.883,a=a>.008856?Math.pow(a,1/3):7.787*a+16/116,o=o>.008856?Math.pow(o,1/3):7.787*o+16/116,r=r>.008856?Math.pow(r,1/3):7.787*r+16/116,e=116*o-16,n=500*(a-o),i=200*(o-r),[e,n,i]}function x(t){var e,n,i,a,o=t[0],r=t[1],l=t[2];return o<=8?a=(n=100*o/903.3)/100*7.787+16/116:(n=100*Math.pow((o+16)/116,3),a=Math.pow(n/100,1/3)),e=e/95.047<=.008856?e=95.047*(r/500+a-16/116)/7.787:95.047*Math.pow(r/500+a,3),i=i/108.883<=.008859?i=108.883*(a-l/200-16/116)/7.787:108.883*Math.pow(a-l/200,3),[e,n,i]}function y(t){var e,n,i,a=t[0],o=t[1],r=t[2];return e=Math.atan2(r,o),(n=360*e/2/Math.PI)<0&&(n+=360),i=Math.sqrt(o*o+r*r),[a,i,n]}function k(t){return v(x(t))}function w(t){var e,n,i,a=t[0],o=t[1];return i=t[2]/360*2*Math.PI,e=o*Math.cos(i),n=o*Math.sin(i),[a,e,n]}function M(t){return S[t]}e.exports={rgb2hsl:i,rgb2hsv:a,rgb2hwb:o,rgb2cmyk:l,rgb2keyword:s,rgb2xyz:u,rgb2lab:d,rgb2lch:function(t){return y(d(t))},hsl2rgb:c,hsl2hsv:function(t){var e,n,i=t[0],a=t[1]/100,o=t[2]/100;return 0===o?[0,0,0]:(o*=2,a*=o<=1?o:2-o,n=(o+a)/2,e=2*a/(o+a),[i,100*e,100*n])},hsl2hwb:function(t){return o(c(t))},hsl2cmyk:function(t){return l(c(t))},hsl2keyword:function(t){return s(c(t))},hsv2rgb:h,hsv2hsl:function(t){var e,n,i=t[0],a=t[1]/100,o=t[2]/100;return n=(2-a)*o,e=a*o,e/=n<=1?n:2-n,e=e||0,n/=2,[i,100*e,100*n]},hsv2hwb:function(t){return o(h(t))},hsv2cmyk:function(t){return l(h(t))},hsv2keyword:function(t){return s(h(t))},hwb2rgb:f,hwb2hsl:function(t){return i(f(t))},hwb2hsv:function(t){return a(f(t))},hwb2cmyk:function(t){return l(f(t))},hwb2keyword:function(t){return s(f(t))},cmyk2rgb:p,cmyk2hsl:function(t){return i(p(t))},cmyk2hsv:function(t){return a(p(t))},cmyk2hwb:function(t){return o(p(t))},cmyk2keyword:function(t){return s(p(t))},keyword2rgb:M,keyword2hsl:function(t){return i(M(t))},keyword2hsv:function(t){return a(M(t))},keyword2hwb:function(t){return o(M(t))},keyword2cmyk:function(t){return l(M(t))},keyword2lab:function(t){return d(M(t))},keyword2xyz:function(t){return u(M(t))},xyz2rgb:v,xyz2lab:m,xyz2lch:function(t){return y(m(t))},lab2xyz:x,lab2rgb:k,lab2lch:y,lch2lab:w,lch2xyz:function(t){return x(w(t))},lch2rgb:function(t){return k(w(t))}};var S={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},C={};for(var _ in S)C[JSON.stringify(S[_])]=_},{}],5:[function(t,e,n){var i=t(4),a=function(){return new u};for(var o in i){a[o+"Raw"]=function(t){return function(e){return"number"==typeof e&&(e=Array.prototype.slice.call(arguments)),i[t](e)}}(o);var r=/(\w+)2(\w+)/.exec(o),l=r[1],s=r[2];(a[l]=a[l]||{})[s]=a[o]=function(t){return function(e){"number"==typeof e&&(e=Array.prototype.slice.call(arguments));var n=i[t](e);if("string"==typeof n||void 0===n)return n;for(var a=0;a0&&(t[0].yLabel?n=t[0].yLabel:e.labels.length>0&&t[0].index=0&&a>0)&&(v+=a));return o=c.getPixelForValue(v),r=c.getPixelForValue(v+f),l=(r-o)/2,{size:l,base:o,head:r,center:r+l/2}},calculateBarIndexPixels:function(t,e,n){var i,a,r,l,s,u,d=this,c=n.scale.options,h=d.getStackIndex(t),f=n.pixels,g=f[e],p=f.length,v=n.start,m=n.end;return 1===p?(i=g>v?g-v:m-g,a=g0&&(i=(g-f[e-1])/2,e===p-1&&(a=i)),e');var n=t.data,i=n.datasets,a=n.labels;if(i.length)for(var o=0;o'),a[o]&&e.push(a[o]),e.push("");return e.push(""),e.join("")},legend:{labels:{generateLabels:function(t){var e=t.data;return e.labels.length&&e.datasets.length?e.labels.map(function(n,i){var a=t.getDatasetMeta(0),r=e.datasets[0],l=a.data[i],s=l&&l.custom||{},u=o.valueAtIndexOrDefault,d=t.options.elements.arc;return{text:n,fillStyle:s.backgroundColor?s.backgroundColor:u(r.backgroundColor,i,d.backgroundColor),strokeStyle:s.borderColor?s.borderColor:u(r.borderColor,i,d.borderColor),lineWidth:s.borderWidth?s.borderWidth:u(r.borderWidth,i,d.borderWidth),hidden:isNaN(r.data[i])||a.data[i].hidden,index:i}}):[]}},onClick:function(t,e){var n,i,a,o=e.index,r=this.chart;for(n=0,i=(r.data.datasets||[]).length;n=Math.PI?-1:g<-Math.PI?1:0))+f,v={x:Math.cos(g),y:Math.sin(g)},m={x:Math.cos(p),y:Math.sin(p)},b=g<=0&&p>=0||g<=2*Math.PI&&2*Math.PI<=p,x=g<=.5*Math.PI&&.5*Math.PI<=p||g<=2.5*Math.PI&&2.5*Math.PI<=p,y=g<=-Math.PI&&-Math.PI<=p||g<=Math.PI&&Math.PI<=p,k=g<=.5*-Math.PI&&.5*-Math.PI<=p||g<=1.5*Math.PI&&1.5*Math.PI<=p,w=h/100,M={x:y?-1:Math.min(v.x*(v.x<0?1:w),m.x*(m.x<0?1:w)),y:k?-1:Math.min(v.y*(v.y<0?1:w),m.y*(m.y<0?1:w))},S={x:b?1:Math.max(v.x*(v.x>0?1:w),m.x*(m.x>0?1:w)),y:x?1:Math.max(v.y*(v.y>0?1:w),m.y*(m.y>0?1:w))},C={width:.5*(S.x-M.x),height:.5*(S.y-M.y)};u=Math.min(l/C.width,s/C.height),d={x:-.5*(S.x+M.x),y:-.5*(S.y+M.y)}}n.borderWidth=e.getMaxBorderWidth(c.data),n.outerRadius=Math.max((u-n.borderWidth)/2,0),n.innerRadius=Math.max(h?n.outerRadius/100*h:0,0),n.radiusLength=(n.outerRadius-n.innerRadius)/n.getVisibleDatasetCount(),n.offsetX=d.x*n.outerRadius,n.offsetY=d.y*n.outerRadius,c.total=e.calculateTotal(),e.outerRadius=n.outerRadius-n.radiusLength*e.getRingIndex(e.index),e.innerRadius=Math.max(e.outerRadius-n.radiusLength,0),o.each(c.data,function(n,i){e.updateElement(n,i,t)})},updateElement:function(t,e,n){var i=this,a=i.chart,r=a.chartArea,l=a.options,s=l.animation,u=(r.left+r.right)/2,d=(r.top+r.bottom)/2,c=l.rotation,h=l.rotation,f=i.getDataset(),g=n&&s.animateRotate?0:t.hidden?0:i.calculateCircumference(f.data[e])*(l.circumference/(2*Math.PI)),p=n&&s.animateScale?0:i.innerRadius,v=n&&s.animateScale?0:i.outerRadius,m=o.valueAtIndexOrDefault;o.extend(t,{_datasetIndex:i.index,_index:e,_model:{x:u+a.offsetX,y:d+a.offsetY,startAngle:c,endAngle:h,circumference:g,outerRadius:v,innerRadius:p,label:m(f.label,e,a.data.labels[e])}});var b=t._model;this.removeHoverStyle(t),n&&s.animateRotate||(b.startAngle=0===e?l.rotation:i.getMeta().data[e-1]._model.endAngle,b.endAngle=b.startAngle+b.circumference),t.pivot()},removeHoverStyle:function(e){t.DatasetController.prototype.removeHoverStyle.call(this,e,this.chart.options.elements.arc)},calculateTotal:function(){var t,e=this.getDataset(),n=this.getMeta(),i=0;return o.each(n.data,function(n,a){t=e.data[a],isNaN(t)||n.hidden||(i+=Math.abs(t))}),i},calculateCircumference:function(t){var e=this.getMeta().total;return e>0&&!isNaN(t)?2*Math.PI*(t/e):0},getMaxBorderWidth:function(t){for(var e,n,i=0,a=this.index,o=t.length,r=0;r(i=e>i?e:i)?n:i;return i}})}},{25:25,40:40,45:45}],18:[function(t,e,n){"use strict";var i=t(25),a=t(40),o=t(45);i._set("line",{showLines:!0,spanGaps:!1,hover:{mode:"label"},scales:{xAxes:[{type:"category",id:"x-axis-0"}],yAxes:[{type:"linear",id:"y-axis-0"}]}}),e.exports=function(t){function e(t,e){return o.valueOrDefault(t.showLine,e.showLines)}t.controllers.line=t.DatasetController.extend({datasetElementType:a.Line,dataElementType:a.Point,update:function(t){var n,i,a,r=this,l=r.getMeta(),s=l.dataset,u=l.data||[],d=r.chart.options,c=d.elements.line,h=r.getScaleForId(l.yAxisID),f=r.getDataset(),g=e(f,d);for(g&&(a=s.custom||{},void 0!==f.tension&&void 0===f.lineTension&&(f.lineTension=f.tension),s._scale=h,s._datasetIndex=r.index,s._children=u,s._model={spanGaps:f.spanGaps?f.spanGaps:d.spanGaps,tension:a.tension?a.tension:o.valueOrDefault(f.lineTension,c.tension),backgroundColor:a.backgroundColor?a.backgroundColor:f.backgroundColor||c.backgroundColor,borderWidth:a.borderWidth?a.borderWidth:f.borderWidth||c.borderWidth,borderColor:a.borderColor?a.borderColor:f.borderColor||c.borderColor,borderCapStyle:a.borderCapStyle?a.borderCapStyle:f.borderCapStyle||c.borderCapStyle,borderDash:a.borderDash?a.borderDash:f.borderDash||c.borderDash,borderDashOffset:a.borderDashOffset?a.borderDashOffset:f.borderDashOffset||c.borderDashOffset,borderJoinStyle:a.borderJoinStyle?a.borderJoinStyle:f.borderJoinStyle||c.borderJoinStyle,fill:a.fill?a.fill:void 0!==f.fill?f.fill:c.fill,steppedLine:a.steppedLine?a.steppedLine:o.valueOrDefault(f.steppedLine,c.stepped),cubicInterpolationMode:a.cubicInterpolationMode?a.cubicInterpolationMode:o.valueOrDefault(f.cubicInterpolationMode,c.cubicInterpolationMode)},s.pivot()),n=0,i=u.length;n');var n=t.data,i=n.datasets,a=n.labels;if(i.length)for(var o=0;o'),a[o]&&e.push(a[o]),e.push("");return e.push(""),e.join("")},legend:{labels:{generateLabels:function(t){var e=t.data;return e.labels.length&&e.datasets.length?e.labels.map(function(n,i){var a=t.getDatasetMeta(0),r=e.datasets[0],l=a.data[i].custom||{},s=o.valueAtIndexOrDefault,u=t.options.elements.arc;return{text:n,fillStyle:l.backgroundColor?l.backgroundColor:s(r.backgroundColor,i,u.backgroundColor),strokeStyle:l.borderColor?l.borderColor:s(r.borderColor,i,u.borderColor),lineWidth:l.borderWidth?l.borderWidth:s(r.borderWidth,i,u.borderWidth),hidden:isNaN(r.data[i])||a.data[i].hidden,index:i}}):[]}},onClick:function(t,e){var n,i,a,o=e.index,r=this.chart;for(n=0,i=(r.data.datasets||[]).length;n0&&!isNaN(t)?2*Math.PI/e:0}})}},{25:25,40:40,45:45}],20:[function(t,e,n){"use strict";var i=t(25),a=t(40),o=t(45);i._set("radar",{scale:{type:"radialLinear"},elements:{line:{tension:0}}}),e.exports=function(t){t.controllers.radar=t.DatasetController.extend({datasetElementType:a.Line,dataElementType:a.Point,linkScales:o.noop,update:function(t){var e=this,n=e.getMeta(),i=n.dataset,a=n.data,r=i.custom||{},l=e.getDataset(),s=e.chart.options.elements.line,u=e.chart.scale;void 0!==l.tension&&void 0===l.lineTension&&(l.lineTension=l.tension),o.extend(n.dataset,{_datasetIndex:e.index,_scale:u,_children:a,_loop:!0,_model:{tension:r.tension?r.tension:o.valueOrDefault(l.lineTension,s.tension),backgroundColor:r.backgroundColor?r.backgroundColor:l.backgroundColor||s.backgroundColor,borderWidth:r.borderWidth?r.borderWidth:l.borderWidth||s.borderWidth,borderColor:r.borderColor?r.borderColor:l.borderColor||s.borderColor,fill:r.fill?r.fill:void 0!==l.fill?l.fill:s.fill,borderCapStyle:r.borderCapStyle?r.borderCapStyle:l.borderCapStyle||s.borderCapStyle,borderDash:r.borderDash?r.borderDash:l.borderDash||s.borderDash,borderDashOffset:r.borderDashOffset?r.borderDashOffset:l.borderDashOffset||s.borderDashOffset,borderJoinStyle:r.borderJoinStyle?r.borderJoinStyle:l.borderJoinStyle||s.borderJoinStyle}}),n.dataset.pivot(),o.each(a,function(n,i){e.updateElement(n,i,t)},e),e.updateBezierControlPoints()},updateElement:function(t,e,n){var i=this,a=t.custom||{},r=i.getDataset(),l=i.chart.scale,s=i.chart.options.elements.point,u=l.getPointPositionForValue(e,r.data[e]);void 0!==r.radius&&void 0===r.pointRadius&&(r.pointRadius=r.radius),void 0!==r.hitRadius&&void 0===r.pointHitRadius&&(r.pointHitRadius=r.hitRadius),o.extend(t,{_datasetIndex:i.index,_index:e,_scale:l,_model:{x:n?l.xCenter:u.x,y:n?l.yCenter:u.y,tension:a.tension?a.tension:o.valueOrDefault(r.lineTension,i.chart.options.elements.line.tension),radius:a.radius?a.radius:o.valueAtIndexOrDefault(r.pointRadius,e,s.radius),backgroundColor:a.backgroundColor?a.backgroundColor:o.valueAtIndexOrDefault(r.pointBackgroundColor,e,s.backgroundColor),borderColor:a.borderColor?a.borderColor:o.valueAtIndexOrDefault(r.pointBorderColor,e,s.borderColor),borderWidth:a.borderWidth?a.borderWidth:o.valueAtIndexOrDefault(r.pointBorderWidth,e,s.borderWidth),pointStyle:a.pointStyle?a.pointStyle:o.valueAtIndexOrDefault(r.pointStyle,e,s.pointStyle),hitRadius:a.hitRadius?a.hitRadius:o.valueAtIndexOrDefault(r.pointHitRadius,e,s.hitRadius)}}),t._model.skip=a.skip?a.skip:isNaN(t._model.x)||isNaN(t._model.y)},updateBezierControlPoints:function(){var t=this.chart.chartArea,e=this.getMeta();o.each(e.data,function(n,i){var a=n._model,r=o.splineCurve(o.previousItem(e.data,i,!0)._model,a,o.nextItem(e.data,i,!0)._model,a.tension);a.controlPointPreviousX=Math.max(Math.min(r.previous.x,t.right),t.left),a.controlPointPreviousY=Math.max(Math.min(r.previous.y,t.bottom),t.top),a.controlPointNextX=Math.max(Math.min(r.next.x,t.right),t.left),a.controlPointNextY=Math.max(Math.min(r.next.y,t.bottom),t.top),n.pivot()})},setHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],n=t.custom||{},i=t._index,a=t._model;a.radius=n.hoverRadius?n.hoverRadius:o.valueAtIndexOrDefault(e.pointHoverRadius,i,this.chart.options.elements.point.hoverRadius),a.backgroundColor=n.hoverBackgroundColor?n.hoverBackgroundColor:o.valueAtIndexOrDefault(e.pointHoverBackgroundColor,i,o.getHoverColor(a.backgroundColor)),a.borderColor=n.hoverBorderColor?n.hoverBorderColor:o.valueAtIndexOrDefault(e.pointHoverBorderColor,i,o.getHoverColor(a.borderColor)),a.borderWidth=n.hoverBorderWidth?n.hoverBorderWidth:o.valueAtIndexOrDefault(e.pointHoverBorderWidth,i,a.borderWidth)},removeHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],n=t.custom||{},i=t._index,a=t._model,r=this.chart.options.elements.point;a.radius=n.radius?n.radius:o.valueAtIndexOrDefault(e.pointRadius,i,r.radius),a.backgroundColor=n.backgroundColor?n.backgroundColor:o.valueAtIndexOrDefault(e.pointBackgroundColor,i,r.backgroundColor),a.borderColor=n.borderColor?n.borderColor:o.valueAtIndexOrDefault(e.pointBorderColor,i,r.borderColor),a.borderWidth=n.borderWidth?n.borderWidth:o.valueAtIndexOrDefault(e.pointBorderWidth,i,r.borderWidth)}})}},{25:25,40:40,45:45}],21:[function(t,e,n){"use strict";t(25)._set("scatter",{hover:{mode:"single"},scales:{xAxes:[{id:"x-axis-1",type:"linear",position:"bottom"}],yAxes:[{id:"y-axis-1",type:"linear",position:"left"}]},showLines:!1,tooltips:{callbacks:{title:function(){return""},label:function(t){return"("+t.xLabel+", "+t.yLabel+")"}}}}),e.exports=function(t){t.controllers.scatter=t.controllers.line}},{25:25}],22:[function(t,e,n){"use strict";var i=t(25),a=t(26),o=t(45);i._set("global",{animation:{duration:1e3,easing:"easeOutQuart",onProgress:o.noop,onComplete:o.noop}}),e.exports=function(t){t.Animation=a.extend({chart:null,currentStep:0,numSteps:60,easing:"",render:null,onAnimationProgress:null,onAnimationComplete:null}),t.animationService={frameDuration:17,animations:[],dropFrames:0,request:null,addAnimation:function(t,e,n,i){var a,o,r=this.animations;for(e.chart=t,i||(t.animating=!0),a=0,o=r.length;a1&&(n=Math.floor(t.dropFrames),t.dropFrames=t.dropFrames%1),t.advance(1+n);var i=Date.now();t.dropFrames+=(i-e)/t.frameDuration,t.animations.length>0&&t.requestAnimationFrame()},advance:function(t){for(var e,n,i=this.animations,a=0;a=e.numSteps?(o.callback(e.onAnimationComplete,[e],n),n.animating=!1,i.splice(a,1)):++a}},Object.defineProperty(t.Animation.prototype,"animationObject",{get:function(){return this}}),Object.defineProperty(t.Animation.prototype,"chartInstance",{get:function(){return this.chart},set:function(t){this.chart=t}})}},{25:25,26:26,45:45}],23:[function(t,e,n){"use strict";var i=t(25),a=t(45),o=t(28),r=t(48);e.exports=function(t){function e(t){var e=(t=t||{}).data=t.data||{};return e.datasets=e.datasets||[],e.labels=e.labels||[],t.options=a.configMerge(i.global,i[t.type],t.options||{}),t}function n(t){var e=t.options;e.scale?t.scale.options=e.scale:e.scales&&e.scales.xAxes.concat(e.scales.yAxes).forEach(function(e){t.scales[e.id].options=e}),t.tooltip._options=e.tooltips}function l(t){return"top"===t||"bottom"===t}var s=t.plugins;t.types={},t.instances={},t.controllers={},a.extend(t.prototype,{construct:function(n,i){var o=this;i=e(i);var l=r.acquireContext(n,i),s=l&&l.canvas,u=s&&s.height,d=s&&s.width;o.id=a.uid(),o.ctx=l,o.canvas=s,o.config=i,o.width=d,o.height=u,o.aspectRatio=u?d/u:null,o.options=i.options,o._bufferedRender=!1,o.chart=o,o.controller=o,t.instances[o.id]=o,Object.defineProperty(o,"data",{get:function(){return o.config.data},set:function(t){o.config.data=t}}),l&&s?(o.initialize(),o.update()):console.error("Failed to create chart: can't acquire context from the given item")},initialize:function(){var t=this;return s.notify(t,"beforeInit"),a.retinaScale(t,t.options.devicePixelRatio),t.bindEvents(),t.options.responsive&&t.resize(!0),t.ensureScalesHaveIDs(),t.buildScales(),t.initToolTip(),s.notify(t,"afterInit"),t},clear:function(){return a.canvas.clear(this),this},stop:function(){return t.animationService.cancelAnimation(this),this},resize:function(t){var e=this,n=e.options,i=e.canvas,o=n.maintainAspectRatio&&e.aspectRatio||null,r=Math.max(0,Math.floor(a.getMaximumWidth(i))),l=Math.max(0,Math.floor(o?r/o:a.getMaximumHeight(i)));if((e.width!==r||e.height!==l)&&(i.width=e.width=r,i.height=e.height=l,i.style.width=r+"px",i.style.height=l+"px",a.retinaScale(e,n.devicePixelRatio),!t)){var u={width:r,height:l};s.notify(e,"resize",[u]),e.options.onResize&&e.options.onResize(e,u),e.stop(),e.update(e.options.responsiveAnimationDuration)}},ensureScalesHaveIDs:function(){var t=this.options,e=t.scales||{},n=t.scale;a.each(e.xAxes,function(t,e){t.id=t.id||"x-axis-"+e}),a.each(e.yAxes,function(t,e){t.id=t.id||"y-axis-"+e}),n&&(n.id=n.id||"scale")},buildScales:function(){var e=this,n=e.options,i=e.scales={},o=[];n.scales&&(o=o.concat((n.scales.xAxes||[]).map(function(t){return{options:t,dtype:"category",dposition:"bottom"}}),(n.scales.yAxes||[]).map(function(t){return{options:t,dtype:"linear",dposition:"left"}}))),n.scale&&o.push({options:n.scale,dtype:"radialLinear",isDefault:!0,dposition:"chartArea"}),a.each(o,function(n){var o=n.options,r=a.valueOrDefault(o.type,n.dtype),s=t.scaleService.getScaleConstructor(r);if(s){l(o.position)!==l(n.dposition)&&(o.position=n.dposition);var u=new s({id:o.id,options:o,ctx:e.ctx,chart:e});i[u.id]=u,u.mergeTicksOptions(),n.isDefault&&(e.scale=u)}}),t.scaleService.addScalesToLayout(this)},buildOrUpdateControllers:function(){var e=this,n=[],i=[];return a.each(e.data.datasets,function(a,o){var r=e.getDatasetMeta(o),l=a.type||e.config.type;if(r.type&&r.type!==l&&(e.destroyDatasetMeta(o),r=e.getDatasetMeta(o)),r.type=l,n.push(r.type),r.controller)r.controller.updateIndex(o);else{var s=t.controllers[r.type];if(void 0===s)throw new Error('"'+r.type+'" is not a chart type.');r.controller=new s(e,o),i.push(r.controller)}},e),i},resetElements:function(){var t=this;a.each(t.data.datasets,function(e,n){t.getDatasetMeta(n).controller.reset()},t)},reset:function(){this.resetElements(),this.tooltip.initialize()},update:function(t){var e=this;if(t&&"object"==typeof t||(t={duration:t,lazy:arguments[1]}),n(e),!1!==s.notify(e,"beforeUpdate")){e.tooltip._data=e.data;var i=e.buildOrUpdateControllers();a.each(e.data.datasets,function(t,n){e.getDatasetMeta(n).controller.buildOrUpdateElements()},e),e.updateLayout(),a.each(i,function(t){t.reset()}),e.updateDatasets(),s.notify(e,"afterUpdate"),e._bufferedRender?e._bufferedRequest={duration:t.duration,easing:t.easing,lazy:t.lazy}:e.render(t)}},updateLayout:function(){var e=this;!1!==s.notify(e,"beforeLayout")&&(t.layoutService.update(this,this.width,this.height),s.notify(e,"afterScaleUpdate"),s.notify(e,"afterLayout"))},updateDatasets:function(){var t=this;if(!1!==s.notify(t,"beforeDatasetsUpdate")){for(var e=0,n=t.data.datasets.length;e=0;--n)e.isDatasetVisible(n)&&e.drawDataset(n,t);s.notify(e,"afterDatasetsDraw",[t])}},drawDataset:function(t,e){var n=this,i=n.getDatasetMeta(t),a={meta:i,index:t,easingValue:e};!1!==s.notify(n,"beforeDatasetDraw",[a])&&(i.controller.draw(e),s.notify(n,"afterDatasetDraw",[a]))},getElementAtEvent:function(t){return o.modes.single(this,t)},getElementsAtEvent:function(t){return o.modes.label(this,t,{intersect:!0})},getElementsAtXAxis:function(t){return o.modes["x-axis"](this,t,{intersect:!0})},getElementsAtEventForMode:function(t,e,n){var i=o.modes[e];return"function"==typeof i?i(this,t,n):[]},getDatasetAtEvent:function(t){return o.modes.dataset(this,t,{intersect:!0})},getDatasetMeta:function(t){var e=this,n=e.data.datasets[t];n._meta||(n._meta={});var i=n._meta[e.id];return i||(i=n._meta[e.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null}),i},getVisibleDatasetCount:function(){for(var t=0,e=0,n=this.data.datasets.length;e0||(a.forEach(function(e){delete t[e]}),delete t._chartjs)}}var a=["push","pop","shift","splice","unshift"];t.DatasetController=function(t,e){this.initialize(t,e)},i.extend(t.DatasetController.prototype,{datasetElementType:null,dataElementType:null,initialize:function(t,e){var n=this;n.chart=t,n.index=e,n.linkScales(),n.addElements()},updateIndex:function(t){this.index=t},linkScales:function(){var t=this,e=t.getMeta(),n=t.getDataset();null===e.xAxisID&&(e.xAxisID=n.xAxisID||t.chart.options.scales.xAxes[0].id),null===e.yAxisID&&(e.yAxisID=n.yAxisID||t.chart.options.scales.yAxes[0].id)},getDataset:function(){return this.chart.data.datasets[this.index]},getMeta:function(){return this.chart.getDatasetMeta(this.index)},getScaleForId:function(t){return this.chart.scales[t]},reset:function(){this.update(!0)},destroy:function(){this._data&&n(this._data,this)},createMetaDataset:function(){var t=this,e=t.datasetElementType;return e&&new e({_chart:t.chart,_datasetIndex:t.index})},createMetaData:function(t){var e=this,n=e.dataElementType;return n&&new n({_chart:e.chart,_datasetIndex:e.index,_index:t})},addElements:function(){var t,e,n=this,i=n.getMeta(),a=n.getDataset().data||[],o=i.data;for(t=0,e=a.length;ti&&t.insertElements(i,a-i)},insertElements:function(t,e){for(var n=0;n=n[e].length&&n[e].push({}),!n[e][r].type||s.type&&s.type!==n[e][r].type?o.merge(n[e][r],[t.scaleService.getScaleDefaults(l),s]):o.merge(n[e][r],s)}else o._merger(e,n,i,a)}})},o.where=function(t,e){if(o.isArray(t)&&Array.prototype.filter)return t.filter(e);var n=[];return o.each(t,function(t){e(t)&&n.push(t)}),n},o.findIndex=Array.prototype.findIndex?function(t,e,n){return t.findIndex(e,n)}:function(t,e,n){n=void 0===n?t:n;for(var i=0,a=t.length;i=0;i--){var a=t[i];if(e(a))return a}},o.inherits=function(t){var e=this,n=t&&t.hasOwnProperty("constructor")?t.constructor:function(){return e.apply(this,arguments)},i=function(){this.constructor=n};return i.prototype=e.prototype,n.prototype=new i,n.extend=o.inherits,t&&o.extend(n.prototype,t),n.__super__=e.prototype,n},o.isNumber=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},o.almostEquals=function(t,e,n){return Math.abs(t-e)t},o.max=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.max(t,e)},Number.NEGATIVE_INFINITY)},o.min=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.min(t,e)},Number.POSITIVE_INFINITY)},o.sign=Math.sign?function(t){return Math.sign(t)}:function(t){return 0==(t=+t)||isNaN(t)?t:t>0?1:-1},o.log10=Math.log10?function(t){return Math.log10(t)}:function(t){return Math.log(t)/Math.LN10},o.toRadians=function(t){return t*(Math.PI/180)},o.toDegrees=function(t){return t*(180/Math.PI)},o.getAngleFromPoint=function(t,e){var n=e.x-t.x,i=e.y-t.y,a=Math.sqrt(n*n+i*i),o=Math.atan2(i,n);return o<-.5*Math.PI&&(o+=2*Math.PI),{angle:o,distance:a}},o.distanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},o.aliasPixel=function(t){return t%2==0?0:.5},o.splineCurve=function(t,e,n,i){var a=t.skip?e:t,o=e,r=n.skip?e:n,l=Math.sqrt(Math.pow(o.x-a.x,2)+Math.pow(o.y-a.y,2)),s=Math.sqrt(Math.pow(r.x-o.x,2)+Math.pow(r.y-o.y,2)),u=l/(l+s),d=s/(l+s),c=i*(u=isNaN(u)?0:u),h=i*(d=isNaN(d)?0:d);return{previous:{x:o.x-c*(r.x-a.x),y:o.y-c*(r.y-a.y)},next:{x:o.x+h*(r.x-a.x),y:o.y+h*(r.y-a.y)}}},o.EPSILON=Number.EPSILON||1e-14,o.splineCurveMonotone=function(t){var e,n,i,a,r=(t||[]).map(function(t){return{model:t._model,deltaK:0,mK:0}}),l=r.length;for(e=0;e0?r[e-1]:null,(a=e0?r[e-1]:null,a=e=t.length-1?t[0]:t[e+1]:e>=t.length-1?t[t.length-1]:t[e+1]},o.previousItem=function(t,e,n){return n?e<=0?t[t.length-1]:t[e-1]:e<=0?t[0]:t[e-1]},o.niceNum=function(t,e){var n=Math.floor(o.log10(t)),i=t/Math.pow(10,n);return(e?i<1.5?1:i<3?2:i<7?5:10:i<=1?1:i<=2?2:i<=5?5:10)*Math.pow(10,n)},o.requestAnimFrame="undefined"==typeof window?function(t){t()}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){return window.setTimeout(t,1e3/60)},o.getRelativePosition=function(t,e){var n,i,a=t.originalEvent||t,r=t.currentTarget||t.srcElement,l=r.getBoundingClientRect(),s=a.touches;s&&s.length>0?(n=s[0].clientX,i=s[0].clientY):(n=a.clientX,i=a.clientY);var u=parseFloat(o.getStyle(r,"padding-left")),d=parseFloat(o.getStyle(r,"padding-top")),c=parseFloat(o.getStyle(r,"padding-right")),h=parseFloat(o.getStyle(r,"padding-bottom")),f=l.right-l.left-u-c,g=l.bottom-l.top-d-h;return n=Math.round((n-l.left-u)/f*r.width/e.currentDevicePixelRatio),i=Math.round((i-l.top-d)/g*r.height/e.currentDevicePixelRatio),{x:n,y:i}},o.getConstraintWidth=function(t){return r(t,"max-width","clientWidth")},o.getConstraintHeight=function(t){return r(t,"max-height","clientHeight")},o.getMaximumWidth=function(t){var e=t.parentNode;if(!e)return t.clientWidth;var n=parseInt(o.getStyle(e,"padding-left"),10),i=parseInt(o.getStyle(e,"padding-right"),10),a=e.clientWidth-n-i,r=o.getConstraintWidth(t);return isNaN(r)?a:Math.min(a,r)},o.getMaximumHeight=function(t){var e=t.parentNode;if(!e)return t.clientHeight;var n=parseInt(o.getStyle(e,"padding-top"),10),i=parseInt(o.getStyle(e,"padding-bottom"),10),a=e.clientHeight-n-i,r=o.getConstraintHeight(t);return isNaN(r)?a:Math.min(a,r)},o.getStyle=function(t,e){return t.currentStyle?t.currentStyle[e]:document.defaultView.getComputedStyle(t,null).getPropertyValue(e)},o.retinaScale=function(t,e){var n=t.currentDevicePixelRatio=e||window.devicePixelRatio||1;if(1!==n){var i=t.canvas,a=t.height,o=t.width;i.height=a*n,i.width=o*n,t.ctx.scale(n,n),i.style.height=a+"px",i.style.width=o+"px"}},o.fontString=function(t,e,n){return e+" "+t+"px "+n},o.longestText=function(t,e,n,i){var a=(i=i||{}).data=i.data||{},r=i.garbageCollect=i.garbageCollect||[];i.font!==e&&(a=i.data={},r=i.garbageCollect=[],i.font=e),t.font=e;var l=0;o.each(n,function(e){void 0!==e&&null!==e&&!0!==o.isArray(e)?l=o.measureText(t,a,r,l,e):o.isArray(e)&&o.each(e,function(e){void 0===e||null===e||o.isArray(e)||(l=o.measureText(t,a,r,l,e))})});var s=r.length/2;if(s>n.length){for(var u=0;ui&&(i=o),i},o.numberOfLabelLines=function(t){var e=1;return o.each(t,function(t){o.isArray(t)&&t.length>e&&(e=t.length)}),e},o.color=i?function(t){return t instanceof CanvasGradient&&(t=a.global.defaultColor),i(t)}:function(t){return console.error("Color.js not found!"),t},o.getHoverColor=function(t){return t instanceof CanvasPattern?t:o.color(t).saturate(.5).darken(.1).rgbString()}}},{25:25,3:3,45:45}],28:[function(t,e,n){"use strict";function i(t,e){return t.native?{x:t.x,y:t.y}:u.getRelativePosition(t,e)}function a(t,e){var n,i,a,o,r;for(i=0,o=t.data.datasets.length;i0&&(u=t.getDatasetMeta(u[0]._datasetIndex).data),u},"x-axis":function(t,e){return s(t,e,{intersect:!0})},point:function(t,e){return o(t,i(e,t))},nearest:function(t,e,n){var a=i(e,t);n.axis=n.axis||"xy";var o=l(n.axis),s=r(t,a,n.intersect,o);return s.length>1&&s.sort(function(t,e){var n=t.getArea()-e.getArea();return 0===n&&(n=t._datasetIndex-e._datasetIndex),n}),s.slice(0,1)},x:function(t,e,n){var o=i(e,t),r=[],l=!1;return a(t,function(t){t.inXRange(o.x)&&r.push(t),t.inRange(o.x,o.y)&&(l=!0)}),n.intersect&&!l&&(r=[]),r},y:function(t,e,n){var o=i(e,t),r=[],l=!1;return a(t,function(t){t.inYRange(o.y)&&r.push(t),t.inRange(o.x,o.y)&&(l=!0)}),n.intersect&&!l&&(r=[]),r}}}},{45:45}],29:[function(t,e,n){"use strict";t(25)._set("global",{responsive:!0,responsiveAnimationDuration:0,maintainAspectRatio:!0,events:["mousemove","mouseout","click","touchstart","touchmove"],hover:{onHover:null,mode:"nearest",intersect:!0,animationDuration:400},onClick:null,defaultColor:"rgba(0,0,0,0.1)",defaultFontColor:"#666",defaultFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",defaultFontSize:12,defaultFontStyle:"normal",showLines:!0,elements:{},layout:{padding:{top:0,right:0,bottom:0,left:0}}}),e.exports=function(){var t=function(t,e){return this.construct(t,e),this};return t.Chart=t,t}},{25:25}],30:[function(t,e,n){"use strict";var i=t(45);e.exports=function(t){function e(t,e){return i.where(t,function(t){return t.position===e})}function n(t,e){t.forEach(function(t,e){return t._tmpIndex_=e,t}),t.sort(function(t,n){var i=e?n:t,a=e?t:n;return i.weight===a.weight?i._tmpIndex_-a._tmpIndex_:i.weight-a.weight}),t.forEach(function(t){delete t._tmpIndex_})}t.layoutService={defaults:{},addBox:function(t,e){t.boxes||(t.boxes=[]),e.fullWidth=e.fullWidth||!1,e.position=e.position||"top",e.weight=e.weight||0,t.boxes.push(e)},removeBox:function(t,e){var n=t.boxes?t.boxes.indexOf(e):-1;-1!==n&&t.boxes.splice(n,1)},configure:function(t,e,n){for(var i,a=["fullWidth","position","weight"],o=a.length,r=0;rh&&st.maxHeight){s--;break}s++,c=u*d}t.labelRotation=s},afterCalculateTickRotation:function(){l.callback(this.options.afterCalculateTickRotation,[this])},beforeFit:function(){l.callback(this.options.beforeFit,[this])},fit:function(){var t=this,a=t.minSize={width:0,height:0},o=i(t._ticks),r=t.options,u=r.ticks,d=r.scaleLabel,c=r.gridLines,h=r.display,f=t.isHorizontal(),g=n(u),p=r.gridLines.tickMarkLength;if(a.width=f?t.isFullWidth()?t.maxWidth-t.margins.left-t.margins.right:t.maxWidth:h&&c.drawTicks?p:0,a.height=f?h&&c.drawTicks?p:0:t.maxHeight,d.display&&h){var v=s(d)+l.options.toPadding(d.padding).height;f?a.height+=v:a.width+=v}if(u.display&&h){var m=l.longestText(t.ctx,g.font,o,t.longestTextCache),b=l.numberOfLabelLines(o),x=.5*g.size,y=t.options.ticks.padding;if(f){t.longestLabelWidth=m;var k=l.toRadians(t.labelRotation),w=Math.cos(k),M=Math.sin(k)*m+g.size*b+x*(b-1)+x;a.height=Math.min(t.maxHeight,a.height+M+y),t.ctx.font=g.font;var S=e(t.ctx,o[0],g.font),C=e(t.ctx,o[o.length-1],g.font);0!==t.labelRotation?(t.paddingLeft="bottom"===r.position?w*S+3:w*x+3,t.paddingRight="bottom"===r.position?w*x+3:w*C+3):(t.paddingLeft=S/2+3,t.paddingRight=C/2+3)}else u.mirror?m=0:m+=y+x,a.width=Math.min(t.maxWidth,a.width+m),t.paddingTop=g.size/2,t.paddingBottom=g.size/2}t.handleMargins(),t.width=a.width,t.height=a.height},handleMargins:function(){var t=this;t.margins&&(t.paddingLeft=Math.max(t.paddingLeft-t.margins.left,0),t.paddingTop=Math.max(t.paddingTop-t.margins.top,0),t.paddingRight=Math.max(t.paddingRight-t.margins.right,0),t.paddingBottom=Math.max(t.paddingBottom-t.margins.bottom,0))},afterFit:function(){l.callback(this.options.afterFit,[this])},isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},isFullWidth:function(){return this.options.fullWidth},getRightValue:function(t){if(l.isNullOrUndef(t))return NaN;if("number"==typeof t&&!isFinite(t))return NaN;if(t)if(this.isHorizontal()){if(void 0!==t.x)return this.getRightValue(t.x)}else if(void 0!==t.y)return this.getRightValue(t.y);return t},getLabelForIndex:l.noop,getPixelForValue:l.noop,getValueForPixel:l.noop,getPixelForTick:function(t){var e=this,n=e.options.offset;if(e.isHorizontal()){var i=(e.width-(e.paddingLeft+e.paddingRight))/Math.max(e._ticks.length-(n?0:1),1),a=i*t+e.paddingLeft;n&&(a+=i/2);var o=e.left+Math.round(a);return o+=e.isFullWidth()?e.margins.left:0}var r=e.height-(e.paddingTop+e.paddingBottom);return e.top+t*(r/(e._ticks.length-1))},getPixelForDecimal:function(t){var e=this;if(e.isHorizontal()){var n=(e.width-(e.paddingLeft+e.paddingRight))*t+e.paddingLeft,i=e.left+Math.round(n);return i+=e.isFullWidth()?e.margins.left:0}return e.top+t*e.height},getBasePixel:function(){return this.getPixelForValue(this.getBaseValue())},getBaseValue:function(){var t=this,e=t.min,n=t.max;return t.beginAtZero?0:e<0&&n<0?n:e>0&&n>0?e:0},_autoSkip:function(t){var e,n,i,a,o=this,r=o.isHorizontal(),s=o.options.ticks.minor,u=t.length,d=l.toRadians(o.labelRotation),c=Math.cos(d),h=o.longestLabelWidth*c,f=[];for(s.maxTicksLimit&&(a=s.maxTicksLimit),r&&(e=!1,(h+s.autoSkipPadding)*u>o.width-(o.paddingLeft+o.paddingRight)&&(e=1+Math.floor((h+s.autoSkipPadding)*u/(o.width-(o.paddingLeft+o.paddingRight)))),a&&u>a&&(e=Math.max(e,Math.floor(u/a)))),n=0;n1&&n%e>0||n%e==0&&n+e>=u)&&n!==u-1||l.isNullOrUndef(i.label))&&delete i.label,f.push(i);return f},draw:function(t){var e=this,i=e.options;if(i.display){var r=e.ctx,u=o.global,d=i.ticks.minor,c=i.ticks.major||d,h=i.gridLines,f=i.scaleLabel,g=0!==e.labelRotation,p=e.isHorizontal(),v=d.autoSkip?e._autoSkip(e.getTicks()):e.getTicks(),m=l.valueOrDefault(d.fontColor,u.defaultFontColor),b=n(d),x=l.valueOrDefault(c.fontColor,u.defaultFontColor),y=n(c),k=h.drawTicks?h.tickMarkLength:0,w=l.valueOrDefault(f.fontColor,u.defaultFontColor),M=n(f),S=l.options.toPadding(f.padding),C=l.toRadians(e.labelRotation),_=[],D="right"===i.position?e.left:e.right-k,I="right"===i.position?e.left+k:e.right,P="bottom"===i.position?e.top:e.bottom-k,A="bottom"===i.position?e.top+k:e.bottom;if(l.each(v,function(n,o){if(void 0!==n.label){var r,s,c,f,m=n.label;o===e.zeroLineIndex&&i.offset===h.offsetGridLines?(r=h.zeroLineWidth,s=h.zeroLineColor,c=h.zeroLineBorderDash,f=h.zeroLineBorderDashOffset):(r=l.valueAtIndexOrDefault(h.lineWidth,o),s=l.valueAtIndexOrDefault(h.color,o),c=l.valueOrDefault(h.borderDash,u.borderDash),f=l.valueOrDefault(h.borderDashOffset,u.borderDashOffset));var b,x,y,w,M,S,T,F,O,R,L="middle",z="middle",B=d.padding;if(p){var W=k+B;"bottom"===i.position?(z=g?"middle":"top",L=g?"right":"center",R=e.top+W):(z=g?"middle":"bottom",L=g?"left":"center",R=e.bottom-W);var N=a(e,o,h.offsetGridLines&&v.length>1);N1);H0)n=t.stepSize;else{var o=i.niceNum(e.max-e.min,!1);n=i.niceNum(o/(t.maxTicks-1),!0)}var r=Math.floor(e.min/n)*n,l=Math.ceil(e.max/n)*n;t.min&&t.max&&t.stepSize&&i.almostWhole((t.max-t.min)/t.stepSize,n/1e3)&&(r=t.min,l=t.max);var s=(l-r)/n;s=i.almostEquals(s,Math.round(s),n/1e3)?Math.round(s):Math.ceil(s),a.push(void 0!==t.min?t.min:r);for(var u=1;u3?n[2]-n[1]:n[1]-n[0];Math.abs(a)>1&&t!==Math.floor(t)&&(a=t-Math.floor(t));var o=i.log10(Math.abs(a)),r="";if(0!==t){var l=-1*Math.floor(o);l=Math.max(Math.min(l,20),0),r=t.toFixed(l)}else r="0";return r},logarithmic:function(t,e,n){var a=t/Math.pow(10,Math.floor(i.log10(t)));return 0===t?"0":1===a||2===a||5===a||0===e||e===n.length-1?t.toExponential():""}}}},{45:45}],35:[function(t,e,n){"use strict";var i=t(25),a=t(26),o=t(45);i._set("global",{tooltips:{enabled:!0,custom:null,mode:"nearest",position:"average",intersect:!0,backgroundColor:"rgba(0,0,0,0.8)",titleFontStyle:"bold",titleSpacing:2,titleMarginBottom:6,titleFontColor:"#fff",titleAlign:"left",bodySpacing:2,bodyFontColor:"#fff",bodyAlign:"left",footerFontStyle:"bold",footerSpacing:2,footerMarginTop:6,footerFontColor:"#fff",footerAlign:"left",yPadding:6,xPadding:6,caretPadding:2,caretSize:5,cornerRadius:6,multiKeyBackground:"#fff",displayColors:!0,borderColor:"rgba(0,0,0,0)",borderWidth:0,callbacks:{beforeTitle:o.noop,title:function(t,e){var n="",i=e.labels,a=i?i.length:0;if(t.length>0){var o=t[0];o.xLabel?n=o.xLabel:a>0&&o.indexi.height-e.height&&(r="bottom");var l,s,u,d,c,h=(a.left+a.right)/2,f=(a.top+a.bottom)/2;"center"===r?(l=function(t){return t<=h},s=function(t){return t>h}):(l=function(t){return t<=e.width/2},s=function(t){return t>=i.width-e.width/2}),u=function(t){return t+e.width>i.width},d=function(t){return t-e.width<0},c=function(t){return t<=f?"top":"bottom"},l(n.x)?(o="left",u(n.x)&&(o="center",r=c(n.y))):s(n.x)&&(o="right",d(n.x)&&(o="center",r=c(n.y)));var g=t._options;return{xAlign:g.xAlign?g.xAlign:o,yAlign:g.yAlign?g.yAlign:r}}function d(t,e,n){var i=t.x,a=t.y,o=t.caretSize,r=t.caretPadding,l=t.cornerRadius,s=n.xAlign,u=n.yAlign,d=o+r,c=l+r;return"right"===s?i-=e.width:"center"===s&&(i-=e.width/2),"top"===u?a+=d:a-="bottom"===u?e.height+d:e.height/2,"center"===u?"left"===s?i+=d:"right"===s&&(i-=d):"left"===s?i-=c:"right"===s&&(i+=c),{x:i,y:a}}t.Tooltip=a.extend({initialize:function(){this._model=l(this._options)},getTitle:function(){var t=this,e=t._options.callbacks,i=e.beforeTitle.apply(t,arguments),a=e.title.apply(t,arguments),o=e.afterTitle.apply(t,arguments),r=[];return r=n(r,i),r=n(r,a),r=n(r,o)},getBeforeBody:function(){var t=this._options.callbacks.beforeBody.apply(this,arguments);return o.isArray(t)?t:void 0!==t?[t]:[]},getBody:function(t,e){var i=this,a=i._options.callbacks,r=[];return o.each(t,function(t){var o={before:[],lines:[],after:[]};n(o.before,a.beforeLabel.call(i,t,e)),n(o.lines,a.label.call(i,t,e)),n(o.after,a.afterLabel.call(i,t,e)),r.push(o)}),r},getAfterBody:function(){var t=this._options.callbacks.afterBody.apply(this,arguments);return o.isArray(t)?t:void 0!==t?[t]:[]},getFooter:function(){var t=this,e=t._options.callbacks,i=e.beforeFooter.apply(t,arguments),a=e.footer.apply(t,arguments),o=e.afterFooter.apply(t,arguments),r=[];return r=n(r,i),r=n(r,a),r=n(r,o)},update:function(e){var n,i,a=this,c=a._options,h=a._model,f=a._model=l(c),g=a._active,p=a._data,v={xAlign:h.xAlign,yAlign:h.yAlign},m={x:h.x,y:h.y},b={width:h.width,height:h.height},x={x:h.caretX,y:h.caretY};if(g.length){f.opacity=1;var y=[],k=[];x=t.Tooltip.positioners[c.position](g,a._eventPosition);var w=[];for(n=0,i=g.length;n0&&i.stroke()},draw:function(){var t=this._chart.ctx,e=this._view;if(0!==e.opacity){var n={width:e.width,height:e.height},i={x:e.x,y:e.y},a=Math.abs(e.opacity<.001)?0:e.opacity,o=e.title.length||e.beforeBody.length||e.body.length||e.afterBody.length||e.footer.length;this._options.enabled&&o&&(this.drawBackground(i,e,t,n,a),i.x+=e.xPadding,i.y+=e.yPadding,this.drawTitle(i,e,t,a),this.drawBody(i,e,t,a),this.drawFooter(i,e,t,a))}},handleEvent:function(t){var e=this,n=e._options,i=!1;if(e._lastActive=e._lastActive||[],"mouseout"===t.type?e._active=[]:e._active=e._chart.getElementsAtEventForMode(t,n.mode,n),!(i=!o.arrayEquals(e._active,e._lastActive)))return!1;if(e._lastActive=e._active,n.enabled||n.custom){e._eventPosition={x:t.x,y:t.y};var a=e._model;e.update(!0),e.pivot(),i|=a.x!==e._model.x||a.y!==e._model.y}return i}}),t.Tooltip.positioners={average:function(t){if(!t.length)return!1;var e,n,i=0,a=0,o=0;for(e=0,n=t.length;es;)a-=2*Math.PI;for(;a=l&&a<=s,d=r>=n.innerRadius&&r<=n.outerRadius;return u&&d}return!1},getCenterPoint:function(){var t=this._view,e=(t.startAngle+t.endAngle)/2,n=(t.innerRadius+t.outerRadius)/2;return{x:t.x+Math.cos(e)*n,y:t.y+Math.sin(e)*n}},getArea:function(){var t=this._view;return Math.PI*((t.endAngle-t.startAngle)/(2*Math.PI))*(Math.pow(t.outerRadius,2)-Math.pow(t.innerRadius,2))},tooltipPosition:function(){var t=this._view,e=t.startAngle+(t.endAngle-t.startAngle)/2,n=(t.outerRadius-t.innerRadius)/2+t.innerRadius;return{x:t.x+Math.cos(e)*n,y:t.y+Math.sin(e)*n}},draw:function(){var t=this._chart.ctx,e=this._view,n=e.startAngle,i=e.endAngle;t.beginPath(),t.arc(e.x,e.y,e.outerRadius,n,i),t.arc(e.x,e.y,e.innerRadius,i,n,!0),t.closePath(),t.strokeStyle=e.borderColor,t.lineWidth=e.borderWidth,t.fillStyle=e.backgroundColor,t.fill(),t.lineJoin="bevel",e.borderWidth&&t.stroke()}})},{25:25,26:26,45:45}],37:[function(t,e,n){"use strict";var i=t(25),a=t(26),o=t(45),r=i.global;i._set("global",{elements:{line:{tension:.4,backgroundColor:r.defaultColor,borderWidth:3,borderColor:r.defaultColor,borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",capBezierPoints:!0,fill:!0}}}),e.exports=a.extend({draw:function(){var t,e,n,i,a=this,l=a._view,s=a._chart.ctx,u=l.spanGaps,d=a._children.slice(),c=r.elements.line,h=-1;for(a._loop&&d.length&&d.push(d[0]),s.save(),s.lineCap=l.borderCapStyle||c.borderCapStyle,s.setLineDash&&s.setLineDash(l.borderDash||c.borderDash),s.lineDashOffset=l.borderDashOffset||c.borderDashOffset,s.lineJoin=l.borderJoinStyle||c.borderJoinStyle,s.lineWidth=l.borderWidth||c.borderWidth,s.strokeStyle=l.borderColor||r.defaultColor,s.beginPath(),h=-1,t=0;te?1:-1,r=1,l=u.borderSkipped||"left"):(e=u.x-u.width/2,n=u.x+u.width/2,i=u.y,o=1,r=(a=u.base)>i?1:-1,l=u.borderSkipped||"bottom"),d){var c=Math.min(Math.abs(e-n),Math.abs(i-a)),h=(d=d>c?c:d)/2,f=e+("left"!==l?h*o:0),g=n+("right"!==l?-h*o:0),p=i+("top"!==l?h*r:0),v=a+("bottom"!==l?-h*r:0);f!==g&&(i=p,a=v),p!==v&&(e=f,n=g)}s.beginPath(),s.fillStyle=u.backgroundColor,s.strokeStyle=u.borderColor,s.lineWidth=d;var m=[[e,a],[e,i],[n,i],[n,a]],b=["bottom","left","top","right"].indexOf(l,0);-1===b&&(b=0);var x=t(0);s.moveTo(x[0],x[1]);for(var y=1;y<4;y++)x=t(y),s.lineTo(x[0],x[1]);s.fill(),d&&s.stroke()},height:function(){var t=this._view;return t.base-t.y},inRange:function(t,e){var n=!1;if(this._view){var i=a(this);n=t>=i.left&&t<=i.right&&e>=i.top&&e<=i.bottom}return n},inLabelRange:function(t,e){var n=this;if(!n._view)return!1;var o=a(n);return i(n)?t>=o.left&&t<=o.right:e>=o.top&&e<=o.bottom},inXRange:function(t){var e=a(this);return t>=e.left&&t<=e.right},inYRange:function(t){var e=a(this);return t>=e.top&&t<=e.bottom},getCenterPoint:function(){var t,e,n=this._view;return i(this)?(t=n.x,e=(n.y+n.base)/2):(t=(n.x+n.base)/2,e=n.y),{x:t,y:e}},getArea:function(){var t=this._view;return t.width*Math.abs(t.y-t.base)},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y}}})},{25:25,26:26}],40:[function(t,e,n){"use strict";e.exports={},e.exports.Arc=t(36),e.exports.Line=t(37),e.exports.Point=t(38),e.exports.Rectangle=t(39)},{36:36,37:37,38:38,39:39}],41:[function(t,e,n){"use strict";var i=t(42),n=e.exports={clear:function(t){t.ctx.clearRect(0,0,t.width,t.height)},roundedRect:function(t,e,n,i,a,o){if(o){var r=Math.min(o,i/2),l=Math.min(o,a/2);t.moveTo(e+r,n),t.lineTo(e+i-r,n),t.quadraticCurveTo(e+i,n,e+i,n+l),t.lineTo(e+i,n+a-l),t.quadraticCurveTo(e+i,n+a,e+i-r,n+a),t.lineTo(e+r,n+a),t.quadraticCurveTo(e,n+a,e,n+a-l),t.lineTo(e,n+l),t.quadraticCurveTo(e,n,e+r,n)}else t.rect(e,n,i,a)},drawPoint:function(t,e,n,i,a){var o,r,l,s,u,d;if("object"!=typeof e||"[object HTMLImageElement]"!==(o=e.toString())&&"[object HTMLCanvasElement]"!==o){if(!(isNaN(n)||n<=0)){switch(e){default:t.beginPath(),t.arc(i,a,n,0,2*Math.PI),t.closePath(),t.fill();break;case"triangle":t.beginPath(),u=(r=3*n/Math.sqrt(3))*Math.sqrt(3)/2,t.moveTo(i-r/2,a+u/3),t.lineTo(i+r/2,a+u/3),t.lineTo(i,a-2*u/3),t.closePath(),t.fill();break;case"rect":d=1/Math.SQRT2*n,t.beginPath(),t.fillRect(i-d,a-d,2*d,2*d),t.strokeRect(i-d,a-d,2*d,2*d);break;case"rectRounded":var c=n/Math.SQRT2,h=i-c,f=a-c,g=Math.SQRT2*n;t.beginPath(),this.roundedRect(t,h,f,g,g,n/2),t.closePath(),t.fill();break;case"rectRot":d=1/Math.SQRT2*n,t.beginPath(),t.moveTo(i-d,a),t.lineTo(i,a+d),t.lineTo(i+d,a),t.lineTo(i,a-d),t.closePath(),t.fill();break;case"cross":t.beginPath(),t.moveTo(i,a+n),t.lineTo(i,a-n),t.moveTo(i-n,a),t.lineTo(i+n,a),t.closePath();break;case"crossRot":t.beginPath(),l=Math.cos(Math.PI/4)*n,s=Math.sin(Math.PI/4)*n,t.moveTo(i-l,a-s),t.lineTo(i+l,a+s),t.moveTo(i-l,a+s),t.lineTo(i+l,a-s),t.closePath();break;case"star":t.beginPath(),t.moveTo(i,a+n),t.lineTo(i,a-n),t.moveTo(i-n,a),t.lineTo(i+n,a),l=Math.cos(Math.PI/4)*n,s=Math.sin(Math.PI/4)*n,t.moveTo(i-l,a-s),t.lineTo(i+l,a+s),t.moveTo(i-l,a+s),t.lineTo(i+l,a-s),t.closePath();break;case"line":t.beginPath(),t.moveTo(i-n,a),t.lineTo(i+n,a),t.closePath();break;case"dash":t.beginPath(),t.moveTo(i,a),t.lineTo(i+n,a),t.closePath()}t.stroke()}}else t.drawImage(e,i-e.width/2,a-e.height/2,e.width,e.height)},clipArea:function(t,e){t.save(),t.beginPath(),t.rect(e.left,e.top,e.right-e.left,e.bottom-e.top),t.clip()},unclipArea:function(t){t.restore()},lineTo:function(t,e,n,i){if(n.steppedLine)return"after"===n.steppedLine&&!i||"after"!==n.steppedLine&&i?t.lineTo(e.x,n.y):t.lineTo(n.x,e.y),void t.lineTo(n.x,n.y);n.tension?t.bezierCurveTo(i?e.controlPointPreviousX:e.controlPointNextX,i?e.controlPointPreviousY:e.controlPointNextY,i?n.controlPointNextX:n.controlPointPreviousX,i?n.controlPointNextY:n.controlPointPreviousY,n.x,n.y):t.lineTo(n.x,n.y)}};i.clear=n.clear,i.drawRoundedRectangle=function(t){t.beginPath(),n.roundedRect.apply(n,arguments),t.closePath()}},{42:42}],42:[function(t,e,n){"use strict";var i={noop:function(){},uid:function(){var t=0;return function(){return t++}}(),isNullOrUndef:function(t){return null===t||void 0===t},isArray:Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)},isObject:function(t){return null!==t&&"[object Object]"===Object.prototype.toString.call(t)},valueOrDefault:function(t,e){return void 0===t?e:t},valueAtIndexOrDefault:function(t,e,n){return i.valueOrDefault(i.isArray(t)?t[e]:t,n)},callback:function(t,e,n){if(t&&"function"==typeof t.call)return t.apply(n,e)},each:function(t,e,n,a){var o,r,l;if(i.isArray(t))if(r=t.length,a)for(o=r-1;o>=0;o--)e.call(n,t[o],o);else for(o=0;o=1?t:-(Math.sqrt(1-t*t)-1)},easeOutCirc:function(t){return Math.sqrt(1-(t-=1)*t)},easeInOutCirc:function(t){return(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},easeInElastic:function(t){var e=1.70158,n=0,i=1;return 0===t?0:1===t?1:(n||(n=.3),i<1?(i=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/i),-i*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n))},easeOutElastic:function(t){var e=1.70158,n=0,i=1;return 0===t?0:1===t?1:(n||(n=.3),i<1?(i=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/i),i*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/n)+1)},easeInOutElastic:function(t){var e=1.70158,n=0,i=1;return 0===t?0:2==(t/=.5)?1:(n||(n=.45),i<1?(i=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/i),t<1?i*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n)*-.5:i*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n)*.5+1)},easeInBack:function(t){var e=1.70158;return t*t*((e+1)*t-e)},easeOutBack:function(t){var e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},easeInOutBack:function(t){var e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},easeInBounce:function(t){return 1-a.easeOutBounce(1-t)},easeOutBounce:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},easeInOutBounce:function(t){return t<.5?.5*a.easeInBounce(2*t):.5*a.easeOutBounce(2*t-1)+.5}};e.exports={effects:a},i.easingEffects=a},{42:42}],44:[function(t,e,n){"use strict";var i=t(42);e.exports={toLineHeight:function(t,e){var n=(""+t).match(/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/);if(!n||"normal"===n[1])return 1.2*e;switch(t=+n[2],n[3]){case"px":return t;case"%":t/=100}return e*t},toPadding:function(t){var e,n,a,o;return i.isObject(t)?(e=+t.top||0,n=+t.right||0,a=+t.bottom||0,o=+t.left||0):e=n=a=o=+t||0,{top:e,right:n,bottom:a,left:o,height:e+a,width:o+n}},resolve:function(t,e,n){var a,o,r;for(a=0,o=t.length;a
    ';var a=e.childNodes[0],r=e.childNodes[1];e._reset=function(){a.scrollLeft=1e6,a.scrollTop=1e6,r.scrollLeft=1e6,r.scrollTop=1e6};var l=function(){e._reset(),t()};return o(a,"scroll",l.bind(a,"expand")),o(r,"scroll",l.bind(r,"shrink")),e}function c(t,e){var n=(t[m]||(t[m]={})).renderProxy=function(t){t.animationName===y&&e()};v.each(k,function(e){o(t,e,n)}),t.classList.add(x)}function h(t){var e=t[m]||{},n=e.renderProxy;n&&(v.each(k,function(e){r(t,e,n)}),delete e.renderProxy),t.classList.remove(x)}function f(t,e,n){var i=t[m]||(t[m]={}),a=i.resizer=d(u(function(){if(i.resizer)return e(l("resize",n))}));c(t,function(){if(i.resizer){var e=t.parentNode;e&&e!==a.parentNode&&e.insertBefore(a,e.firstChild),a._reset()}})}function g(t){var e=t[m]||{},n=e.resizer;delete e.resizer,h(t),n&&n.parentNode&&n.parentNode.removeChild(n)}function p(t,e){var n=t._style||document.createElement("style");t._style||(t._style=n,e="/* Chart.js */\n"+e,n.setAttribute("type","text/css"),document.getElementsByTagName("head")[0].appendChild(n)),n.appendChild(document.createTextNode(e))}var v=t(45),m="$chartjs",b="chartjs-",x=b+"render-monitor",y=b+"render-animation",k=["animationstart","webkitAnimationStart"],w={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},M=!!function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("e",null,e)}catch(t){}return t}()&&{passive:!0};e.exports={_enabled:"undefined"!=typeof window&&"undefined"!=typeof document,initialize:function(){var t="from{opacity:0.99}to{opacity:1}";p(this,"@-webkit-keyframes "+y+"{"+t+"}@keyframes "+y+"{"+t+"}."+x+"{-webkit-animation:"+y+" 0.001s;animation:"+y+" 0.001s;}")},acquireContext:function(t,e){"string"==typeof t?t=document.getElementById(t):t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas);var n=t&&t.getContext&&t.getContext("2d");return n&&n.canvas===t?(a(t,e),n):null},releaseContext:function(t){var e=t.canvas;if(e[m]){var n=e[m].initial;["height","width"].forEach(function(t){var i=n[t];v.isNullOrUndef(i)?e.removeAttribute(t):e.setAttribute(t,i)}),v.each(n.style||{},function(t,n){e.style[n]=t}),e.width=e.width,delete e[m]}},addEventListener:function(t,e,n){var i=t.canvas;if("resize"!==e){var a=n[m]||(n[m]={});o(i,e,(a.proxies||(a.proxies={}))[t.id+"_"+e]=function(e){n(s(e,t))})}else f(i,n,t)},removeEventListener:function(t,e,n){var i=t.canvas;if("resize"!==e){var a=((n[m]||{}).proxies||{})[t.id+"_"+e];a&&r(i,e,a)}else g(i)}},v.addEvent=o,v.removeEvent=r},{45:45}],48:[function(t,e,n){"use strict";var i=t(45),a=t(46),o=t(47),r=o._enabled?o:a;e.exports=i.extend({initialize:function(){},acquireContext:function(){},releaseContext:function(){},addEventListener:function(){},removeEventListener:function(){}},r)},{45:45,46:46,47:47}],49:[function(t,e,n){"use strict";var i=t(25),a=t(40),o=t(45);i._set("global",{plugins:{filler:{propagate:!0}}}),e.exports=function(){function t(t,e,n){var i,a=t._model||{},o=a.fill;if(void 0===o&&(o=!!a.backgroundColor),!1===o||null===o)return!1;if(!0===o)return"origin";if(i=parseFloat(o,10),isFinite(i)&&Math.floor(i)===i)return"-"!==o[0]&&"+"!==o[0]||(i=e+i),!(i===e||i<0||i>=n)&&i;switch(o){case"bottom":return"start";case"top":return"end";case"zero":return"origin";case"origin":case"start":case"end":return o;default:return!1}}function e(t){var e,n=t.el._model||{},i=t.el._scale||{},a=t.fill,o=null;if(isFinite(a))return null;if("start"===a?o=void 0===n.scaleBottom?i.bottom:n.scaleBottom:"end"===a?o=void 0===n.scaleTop?i.top:n.scaleTop:void 0!==n.scaleZero?o=n.scaleZero:i.getBasePosition?o=i.getBasePosition():i.getBasePixel&&(o=i.getBasePixel()),void 0!==o&&null!==o){if(void 0!==o.x&&void 0!==o.y)return o;if("number"==typeof o&&isFinite(o))return e=i.isHorizontal(),{x:e?o:null,y:e?null:o}}return null}function n(t,e,n){var i,a=t[e].fill,o=[e];if(!n)return a;for(;!1!==a&&-1===o.indexOf(a);){if(!isFinite(a))return a;if(!(i=t[a]))return!1;if(i.visible)return a;o.push(a),a=i.fill}return!1}function r(t){var e=t.fill,n="dataset";return!1===e?null:(isFinite(e)||(n="boundary"),d[n](t))}function l(t){return t&&!t.skip}function s(t,e,n,i,a){var r;if(i&&a){for(t.moveTo(e[0].x,e[0].y),r=1;r0;--r)o.canvas.lineTo(t,n[r],n[r-1],!0)}}function u(t,e,n,i,a,o){var r,u,d,c,h,f,g,p=e.length,v=i.spanGaps,m=[],b=[],x=0,y=0;for(t.beginPath(),r=0,u=p+!!o;r');for(var n=0;n'),t.data.datasets[n].label&&e.push(t.data.datasets[n].label),e.push("");return e.push(""),e.join("")}}),e.exports=function(t){function e(t,e){return t.usePointStyle?e*Math.SQRT2:t.boxWidth}function n(e,n){var i=new t.Legend({ctx:e.ctx,options:n,chart:e});r.configure(e,i,n),r.addBox(e,i),e.legend=i}var r=t.layoutService,l=o.noop;return t.Legend=a.extend({initialize:function(t){o.extend(this,t),this.legendHitBoxes=[],this.doughnutMode=!1},beforeUpdate:l,update:function(t,e,n){var i=this;return i.beforeUpdate(),i.maxWidth=t,i.maxHeight=e,i.margins=n,i.beforeSetDimensions(),i.setDimensions(),i.afterSetDimensions(),i.beforeBuildLabels(),i.buildLabels(),i.afterBuildLabels(),i.beforeFit(),i.fit(),i.afterFit(),i.afterUpdate(),i.minSize},afterUpdate:l,beforeSetDimensions:l,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:l,beforeBuildLabels:l,buildLabels:function(){var t=this,e=t.options.labels||{},n=o.callback(e.generateLabels,[t.chart],t)||[];e.filter&&(n=n.filter(function(n){return e.filter(n,t.chart.data)})),t.options.reverse&&n.reverse(),t.legendItems=n},afterBuildLabels:l,beforeFit:l,fit:function(){var t=this,n=t.options,a=n.labels,r=n.display,l=t.ctx,s=i.global,u=o.valueOrDefault,d=u(a.fontSize,s.defaultFontSize),c=u(a.fontStyle,s.defaultFontStyle),h=u(a.fontFamily,s.defaultFontFamily),f=o.fontString(d,c,h),g=t.legendHitBoxes=[],p=t.minSize,v=t.isHorizontal();if(v?(p.width=t.maxWidth,p.height=r?10:0):(p.width=r?10:0,p.height=t.maxHeight),r)if(l.font=f,v){var m=t.lineWidths=[0],b=t.legendItems.length?d+a.padding:0;l.textAlign="left",l.textBaseline="top",o.each(t.legendItems,function(n,i){var o=e(a,d)+d/2+l.measureText(n.text).width;m[m.length-1]+o+a.padding>=t.width&&(b+=d+a.padding,m[m.length]=t.left),g[i]={left:0,top:0,width:o,height:d},m[m.length-1]+=o+a.padding}),p.height+=b}else{var x=a.padding,y=t.columnWidths=[],k=a.padding,w=0,M=0,S=d+x;o.each(t.legendItems,function(t,n){var i=e(a,d)+d/2+l.measureText(t.text).width;M+S>p.height&&(k+=w+a.padding,y.push(w),w=0,M=0),w=Math.max(w,i),M+=S,g[n]={left:0,top:0,width:i,height:d}}),k+=w,y.push(w),p.width+=k}t.width=p.width,t.height=p.height},afterFit:l,isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},draw:function(){var t=this,n=t.options,a=n.labels,r=i.global,l=r.elements.line,s=t.width,u=t.lineWidths;if(n.display){var d,c=t.ctx,h=o.valueOrDefault,f=h(a.fontColor,r.defaultFontColor),g=h(a.fontSize,r.defaultFontSize),p=h(a.fontStyle,r.defaultFontStyle),v=h(a.fontFamily,r.defaultFontFamily),m=o.fontString(g,p,v);c.textAlign="left",c.textBaseline="middle",c.lineWidth=.5,c.strokeStyle=f,c.fillStyle=f,c.font=m;var b=e(a,g),x=t.legendHitBoxes,y=function(t,e,i){if(!(isNaN(b)||b<=0)){c.save(),c.fillStyle=h(i.fillStyle,r.defaultColor),c.lineCap=h(i.lineCap,l.borderCapStyle),c.lineDashOffset=h(i.lineDashOffset,l.borderDashOffset),c.lineJoin=h(i.lineJoin,l.borderJoinStyle),c.lineWidth=h(i.lineWidth,l.borderWidth),c.strokeStyle=h(i.strokeStyle,r.defaultColor);var a=0===h(i.lineWidth,l.borderWidth);if(c.setLineDash&&c.setLineDash(h(i.lineDash,l.borderDash)),n.labels&&n.labels.usePointStyle){var s=g*Math.SQRT2/2,u=s/Math.SQRT2,d=t+u,f=e+u;o.canvas.drawPoint(c,i.pointStyle,s,d,f)}else a||c.strokeRect(t,e,b,g),c.fillRect(t,e,b,g);c.restore()}},k=function(t,e,n,i){var a=g/2,o=b+a+t,r=e+a;c.fillText(n.text,o,r),n.hidden&&(c.beginPath(),c.lineWidth=2,c.moveTo(o,r),c.lineTo(o+i,r),c.stroke())},w=t.isHorizontal();d=w?{x:t.left+(s-u[0])/2,y:t.top+a.padding,line:0}:{x:t.left+a.padding,y:t.top+a.padding,line:0};var M=g+a.padding;o.each(t.legendItems,function(e,n){var i=c.measureText(e.text).width,o=b+g/2+i,r=d.x,l=d.y;w?r+o>=s&&(l=d.y+=M,d.line++,r=d.x=t.left+(s-u[d.line])/2):l+M>t.bottom&&(r=d.x=r+t.columnWidths[d.line]+a.padding,l=d.y=t.top+a.padding,d.line++),y(r,l,e),x[n].left=r,x[n].top=l,k(r,l,e,i),w?d.x+=o+a.padding:d.y+=M})}},handleEvent:function(t){var e=this,n=e.options,i="mouseup"===t.type?"click":t.type,a=!1;if("mousemove"===i){if(!n.onHover)return}else{if("click"!==i)return;if(!n.onClick)return}var o=t.x,r=t.y;if(o>=e.left&&o<=e.right&&r>=e.top&&r<=e.bottom)for(var l=e.legendHitBoxes,s=0;s=u.left&&o<=u.left+u.width&&r>=u.top&&r<=u.top+u.height){if("click"===i){n.onClick.call(e,t.native,e.legendItems[s]),a=!0;break}if("mousemove"===i){n.onHover.call(e,t.native,e.legendItems[s]),a=!0;break}}}return a}}),{id:"legend",beforeInit:function(t){var e=t.options.legend;e&&n(t,e)},beforeUpdate:function(t){var e=t.options.legend,a=t.legend;e?(o.mergeIf(e,i.global.legend),a?(r.configure(t,a,e),a.options=e):n(t,e)):a&&(r.removeBox(t,a),delete t.legend)},afterEvent:function(t,e){var n=t.legend;n&&n.handleEvent(e)}}}},{25:25,26:26,45:45}],51:[function(t,e,n){"use strict";var i=t(25),a=t(26),o=t(45);i._set("global",{title:{display:!1,fontStyle:"bold",fullWidth:!0,lineHeight:1.2,padding:10,position:"top",text:"",weight:2e3}}),e.exports=function(t){function e(e,i){var a=new t.Title({ctx:e.ctx,options:i,chart:e});n.configure(e,a,i),n.addBox(e,a),e.titleBlock=a}var n=t.layoutService,r=o.noop;return t.Title=a.extend({initialize:function(t){var e=this;o.extend(e,t),e.legendHitBoxes=[]},beforeUpdate:r,update:function(t,e,n){var i=this;return i.beforeUpdate(),i.maxWidth=t,i.maxHeight=e,i.margins=n,i.beforeSetDimensions(),i.setDimensions(),i.afterSetDimensions(),i.beforeBuildLabels(),i.buildLabels(),i.afterBuildLabels(),i.beforeFit(),i.fit(),i.afterFit(),i.afterUpdate(),i.minSize},afterUpdate:r,beforeSetDimensions:r,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:r,beforeBuildLabels:r,buildLabels:r,afterBuildLabels:r,beforeFit:r,fit:function(){var t=this,e=o.valueOrDefault,n=t.options,a=n.display,r=e(n.fontSize,i.global.defaultFontSize),l=t.minSize,s=o.isArray(n.text)?n.text.length:1,u=o.options.toLineHeight(n.lineHeight,r),d=a?s*u+2*n.padding:0;t.isHorizontal()?(l.width=t.maxWidth,l.height=d):(l.width=d,l.height=t.maxHeight),t.width=l.width,t.height=l.height},afterFit:r,isHorizontal:function(){var t=this.options.position;return"top"===t||"bottom"===t},draw:function(){var t=this,e=t.ctx,n=o.valueOrDefault,a=t.options,r=i.global;if(a.display){var l,s,u,d=n(a.fontSize,r.defaultFontSize),c=n(a.fontStyle,r.defaultFontStyle),h=n(a.fontFamily,r.defaultFontFamily),f=o.fontString(d,c,h),g=o.options.toLineHeight(a.lineHeight,d),p=g/2+a.padding,v=0,m=t.top,b=t.left,x=t.bottom,y=t.right;e.fillStyle=n(a.fontColor,r.defaultFontColor),e.font=f,t.isHorizontal()?(s=b+(y-b)/2,u=m+p,l=y-b):(s="left"===a.position?b+p:y-p,u=m+(x-m)/2,l=x-m,v=Math.PI*("left"===a.position?-.5:.5)),e.save(),e.translate(s,u),e.rotate(v),e.textAlign="center",e.textBaseline="middle";var k=a.text;if(o.isArray(k))for(var w=0,M=0;Me.max&&(e.max=i))})});e.min=isFinite(e.min)&&!isNaN(e.min)?e.min:0,e.max=isFinite(e.max)&&!isNaN(e.max)?e.max:1,this.handleTickRangeOptions()},getTickLimit:function(){var t,e=this,n=e.options.ticks;if(e.isHorizontal())t=Math.min(n.maxTicksLimit?n.maxTicksLimit:11,Math.ceil(e.width/50));else{var o=a.valueOrDefault(n.fontSize,i.global.defaultFontSize);t=Math.min(n.maxTicksLimit?n.maxTicksLimit:11,Math.ceil(e.height/(2*o)))}return t},handleDirectionalChanges:function(){this.isHorizontal()||this.ticks.reverse()},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},getPixelForValue:function(t){var e,n=this,i=n.start,a=+n.getRightValue(t),o=n.end-i;return n.isHorizontal()?(e=n.left+n.width/o*(a-i),Math.round(e)):(e=n.bottom-n.height/o*(a-i),Math.round(e))},getValueForPixel:function(t){var e=this,n=e.isHorizontal(),i=n?e.width:e.height,a=(n?t-e.left:e.bottom-t)/i;return e.start+(e.end-e.start)*a},getPixelForTick:function(t){return this.getPixelForValue(this.ticksAsNumbers[t])}});t.scaleService.registerScaleType("linear",n,e)}},{25:25,34:34,45:45}],54:[function(t,e,n){"use strict";var i=t(45),a=t(34);e.exports=function(t){var e=i.noop;t.LinearScaleBase=t.Scale.extend({getRightValue:function(e){return"string"==typeof e?+e:t.Scale.prototype.getRightValue.call(this,e)},handleTickRangeOptions:function(){var t=this,e=t.options.ticks;if(e.beginAtZero){var n=i.sign(t.min),a=i.sign(t.max);n<0&&a<0?t.max=0:n>0&&a>0&&(t.min=0)}var o=void 0!==e.min||void 0!==e.suggestedMin,r=void 0!==e.max||void 0!==e.suggestedMax;void 0!==e.min?t.min=e.min:void 0!==e.suggestedMin&&(null===t.min?t.min=e.suggestedMin:t.min=Math.min(t.min,e.suggestedMin)),void 0!==e.max?t.max=e.max:void 0!==e.suggestedMax&&(null===t.max?t.max=e.suggestedMax:t.max=Math.max(t.max,e.suggestedMax)),o!==r&&t.min>=t.max&&(o?t.max=t.min+1:t.min=t.max-1),t.min===t.max&&(t.max++,e.beginAtZero||t.min--)},getTickLimit:e,handleDirectionalChanges:e,buildTicks:function(){var t=this,e=t.options.ticks,n=t.getTickLimit(),o={maxTicks:n=Math.max(2,n),min:e.min,max:e.max,stepSize:i.valueOrDefault(e.fixedStepSize,e.stepSize)},r=t.ticks=a.generators.linear(o,t);t.handleDirectionalChanges(),t.max=i.max(r),t.min=i.min(r),e.reverse?(r.reverse(),t.start=t.max,t.end=t.min):(t.start=t.min,t.end=t.max)},convertTicksToLabels:function(){var e=this;e.ticksAsNumbers=e.ticks.slice(),e.zeroLineIndex=e.ticks.indexOf(0),t.Scale.prototype.convertTicksToLabels.call(e)}})}},{34:34,45:45}],55:[function(t,e,n){"use strict";var i=t(45),a=t(34);e.exports=function(t){var e={position:"left",ticks:{callback:a.formatters.logarithmic}},n=t.Scale.extend({determineDataLimits:function(){function t(t){return s?t.xAxisID===e.id:t.yAxisID===e.id}var e=this,n=e.options,a=n.ticks,o=e.chart,r=o.data.datasets,l=i.valueOrDefault,s=e.isHorizontal();e.min=null,e.max=null,e.minNotZero=null;var u=n.stacked;if(void 0===u&&i.each(r,function(e,n){if(!u){var i=o.getDatasetMeta(n);o.isDatasetVisible(n)&&t(i)&&void 0!==i.stack&&(u=!0)}}),n.stacked||u){var d={};i.each(r,function(a,r){var l=o.getDatasetMeta(r),s=[l.type,void 0===n.stacked&&void 0===l.stack?r:"",l.stack].join(".");o.isDatasetVisible(r)&&t(l)&&(void 0===d[s]&&(d[s]=[]),i.each(a.data,function(t,i){var a=d[s],o=+e.getRightValue(t);isNaN(o)||l.data[i].hidden||(a[i]=a[i]||0,n.relativePoints?a[i]=100:a[i]+=o)}))}),i.each(d,function(t){var n=i.min(t),a=i.max(t);e.min=null===e.min?n:Math.min(e.min,n),e.max=null===e.max?a:Math.max(e.max,a)})}else i.each(r,function(n,a){var r=o.getDatasetMeta(a);o.isDatasetVisible(a)&&t(r)&&i.each(n.data,function(t,n){var i=+e.getRightValue(t);isNaN(i)||r.data[n].hidden||(null===e.min?e.min=i:ie.max&&(e.max=i),0!==i&&(null===e.minNotZero||ia?{start:e-n-5,end:e}:{start:e,end:e+n+5}}function s(t){var i,o,s,u=n(t),d=Math.min(t.height/2,t.width/2),c={r:t.width,l:0,t:t.height,b:0},h={};t.ctx.font=u.font,t._pointLabelSizes=[];var f=e(t);for(i=0;ic.r&&(c.r=v.end,h.r=g),m.startc.b&&(c.b=m.end,h.b=g)}t.setReductions(d,c,h)}function u(t){var e=Math.min(t.height/2,t.width/2);t.drawingArea=Math.round(e),t.setCenterPoint(0,0,0,0)}function d(t){return 0===t||180===t?"center":t<180?"left":"right"}function c(t,e,n,i){if(a.isArray(e))for(var o=n.y,r=1.5*i,l=0;l270||t<90)&&(n.y-=e.h)}function f(t){var i=t.ctx,o=a.valueOrDefault,r=t.options,l=r.angleLines,s=r.pointLabels;i.lineWidth=l.lineWidth,i.strokeStyle=l.color;var u=t.getDistanceFromCenterForValue(r.ticks.reverse?t.min:t.max),f=n(t);i.textBaseline="top";for(var g=e(t)-1;g>=0;g--){if(l.display){var p=t.getPointPosition(g,u);i.beginPath(),i.moveTo(t.xCenter,t.yCenter),i.lineTo(p.x,p.y),i.stroke(),i.closePath()}if(s.display){var m=t.getPointPosition(g,u+5),b=o(s.fontColor,v.defaultFontColor);i.font=f.font,i.fillStyle=b;var x=t.getIndexAngle(g),y=a.toDegrees(x);i.textAlign=d(y),h(y,t._pointLabelSizes[g],m),c(i,t.pointLabels[g]||"",m,f.size)}}}function g(t,n,i,o){var r=t.ctx;if(r.strokeStyle=a.valueAtIndexOrDefault(n.color,o-1),r.lineWidth=a.valueAtIndexOrDefault(n.lineWidth,o-1),t.options.gridLines.circular)r.beginPath(),r.arc(t.xCenter,t.yCenter,i,0,2*Math.PI),r.closePath(),r.stroke();else{var l=e(t);if(0===l)return;r.beginPath();var s=t.getPointPosition(0,i);r.moveTo(s.x,s.y);for(var u=1;u0&&n>0?e:0)},draw:function(){var t=this,e=t.options,n=e.gridLines,i=e.ticks,o=a.valueOrDefault;if(e.display){var r=t.ctx,l=this.getIndexAngle(0),s=o(i.fontSize,v.defaultFontSize),u=o(i.fontStyle,v.defaultFontStyle),d=o(i.fontFamily,v.defaultFontFamily),c=a.fontString(s,u,d);a.each(t.ticks,function(e,a){if(a>0||i.reverse){var u=t.getDistanceFromCenterForValue(t.ticksAsNumbers[a]);if(n.display&&0!==a&&g(t,n,u,a),i.display){var d=o(i.fontColor,v.defaultFontColor);if(r.font=c,r.save(),r.translate(t.xCenter,t.yCenter),r.rotate(l),i.showLabelBackdrop){var h=r.measureText(e).width;r.fillStyle=i.backdropColor,r.fillRect(-h/2-i.backdropPaddingX,-u-s/2-i.backdropPaddingY,h+2*i.backdropPaddingX,s+2*i.backdropPaddingY)}r.textAlign="center",r.textBaseline="middle",r.fillStyle=d,r.fillText(e,0,-u),r.restore()}}}),(e.angleLines.display||e.pointLabels.display)&&f(t)}}});t.scaleService.registerScaleType("radialLinear",b,m)}},{25:25,34:34,45:45}],57:[function(t,e,n){"use strict";function i(t,e){return t-e}function a(t){var e,n,i,a={},o=[];for(e=0,n=t.length;ee&&l=0&&r<=l;){if(i=r+l>>1,a=t[i-1]||null,o=t[i],!a)return{lo:null,hi:o};if(o[e]n))return{lo:a,hi:o};l=i-1}}return{lo:o,hi:null}}function l(t,e,n,i){var a=r(t,e,n),o=a.lo?a.hi?a.lo:t[t.length-2]:t[0],l=a.lo?a.hi?a.hi:t[t.length-1]:t[1],s=l[e]-o[e],u=s?(n-o[e])/s:0,d=(l[i]-o[i])*u;return o[i]+d}function s(t,e){var n=e.parser,i=e.parser||e.format;return"function"==typeof n?n(t):"string"==typeof t&&"string"==typeof i?v(t,i):(t instanceof v||(t=v(t)),t.isValid()?t:"function"==typeof i?i(t):t)}function u(t,e){if(b.isNullOrUndef(t))return null;var n=e.options.time,i=s(e.getRightValue(t),n);return i.isValid()?(n.round&&i.startOf(n.round),i.valueOf()):null}function d(t,e,n,i){var a,o,r,l=e-t,s=k[n],u=s.size,d=s.steps;if(!d)return Math.ceil(l/((i||1)*u));for(a=0,o=d.length;a1?e[1]:i,r=e[0],s=(l(t,"time",o,"pos")-l(t,"time",r,"pos"))/2),a.time.max||(o=e[e.length-1],r=e.length>1?e[e.length-2]:n,u=(l(t,"time",o,"pos")-l(t,"time",r,"pos"))/2)),{left:s,right:u}}function p(t,e){var n,i,a,o,r=[];for(n=0,i=t.length;n=a&&n<=r&&y.push(n);return i.min=a,i.max=r,i._unit=m,i._majorUnit=b,i._minorFormat=d[m],i._majorFormat=d[b],i._table=o(i._timestamps.data,a,r,l.distribution),i._offsets=g(i._table,y,a,r,l),p(y,b)},getLabelForIndex:function(t,e){var n=this,i=n.chart.data,a=n.options.time,o=i.labels&&t=0&&t1&&void 0!==arguments[1]?arguments[1]:{},i=e.prefix,n=void 0===i?"":i,s=e.firstUpperCase,r=void 0!==s&&s,a=t.name,l=a.replace(/^cube-/i,""),u=""+(0,o.camelize)(""+n+l);return r&&(u=u.charAt(0).toUpperCase()+u.slice(1)),u}function v(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=e.split("."),n=t,o=0;o2&&void 0!==arguments[2]?arguments[2]:{},n=i.type,o=void 0===n?"Event":n,s=i.bubbles,r=void 0===s||s,a=i.cancelable,l=void 0===a||a,u=document.createEvent(o);u.initEvent(e,r,l),t.dispatchEvent(u)}Object.defineProperty(t,"__esModule",{value:!0}),t.hasClass=i,t.addClass=n,t.removeClass=o,t.getData=s,t.getRect=r,t.prefixStyle=a,t.getMatchedTarget=l,t.dispatchEvent=u;var c=function(){if(!e.inBrowser)return!1;var t=document.createElement("div").style,i={standard:"transform",webkit:"webkitTransform",Moz:"MozTransform",O:"OTransform",ms:"msTransform"};for(var n in i)if(void 0!==t[i[n]])return n;return!1}()})},function(t,e,i){var n,o,s;!function(r,a){o=[t,e,i(4),i(1),i(5)],n=a,void 0!==(s="function"==typeof n?n.apply(e,o):n)&&(t.exports=s)}(0,function(t,e,i,n,o){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var s=function(t){return t&&t.__esModule?t:{default:t}}(i);e.default={computed:{$t:function(){var t=this.$cubeLang,e=this.$cubeMessages[t];return(0,n.isUndef)(e)?((0,o.warn)("Translation is not registered correctly, you can call Locale.use() to install it."),""):function(t){return(0,n.parsePath)(e,t)}}},beforeCreate:function(){s.default.install(this.$root.constructor)}},t.exports=e.default})},function(t,e){var i=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=i)},function(t,e,i){var n=i(22),o=i(72),s=i(47),r=Object.defineProperty;e.f=i(15)?Object.defineProperty:function(t,e,i){if(n(t),e=s(e,!0),n(i),o)try{return r(t,e,i)}catch(t){}if("get"in i||"set"in i)throw TypeError("Accessors not supported!");return"value"in i&&(t[e]=i.value),t}},function(t,e,i){var n=i(12),o=i(2),s=i(71),r=i(21),a=i(16),l=function(t,e,i){var u,c,d,f=t&l.F,h=t&l.G,p=t&l.S,v=t&l.P,m=t&l.B,y=t&l.W,b=h?o:o[e]||(o[e]={}),g=b.prototype,_=h?n:p?n[e]:(n[e]||{}).prototype;h&&(i=e);for(u in i)(c=!f&&_&&void 0!==_[u])&&a(b,u)||(d=c?_[u]:i[u],b[u]=h&&"function"!=typeof _[u]?i[u]:m&&c?s(d,n):y&&_[u]==d?function(t){var e=function(e,i,n){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,i)}return new t(e,i,n)}return t.apply(this,arguments)};return e.prototype=t.prototype,e}(d):v&&"function"==typeof d?s(Function.call,d):d,v&&((b.virtual||(b.virtual={}))[u]=d,t&l.R&&g&&!g[u]&&r(g,u,d)))};l.F=1,l.G=2,l.S=4,l.P=8,l.B=16,l.W=32,l.U=64,l.R=128,t.exports=l},function(t,e,i){t.exports=!i(23)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,e){var i={}.hasOwnProperty;t.exports=function(t,e){return i.call(t,e)}},function(t,e,i){t.exports={default:i(122),__esModule:!0}},function(t,e,i){var n=i(75),o=i(48);t.exports=function(t){return n(o(t))}},function(t,e,i){function n(t){i(219)}var o=i(0)(i(220),i(231),n,null,null);t.exports=o.exports},function(t,e,i){"use strict";e.__esModule=!0;var n=i(117),o=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default=function(t,e,i){return e in t?(0,o.default)(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}},function(t,e,i){var n=i(13),o=i(31);t.exports=i(15)?function(t,e,i){return n.f(t,e,o(1,i))}:function(t,e,i){return t[e]=i,t}},function(t,e,i){var n=i(30);t.exports=function(t){if(!n(t))throw TypeError(t+" is not an object!");return t}},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e,i){var n=i(74),o=i(53);t.exports=Object.keys||function(t){return n(t,o)}},function(t,e){t.exports={}},function(t,e,i){function n(t){i(162)}var o=i(0)(i(163),i(164),n,null,null);t.exports=o.exports},function(t,e,i){function n(t){i(228)}var o=i(0)(i(229),i(230),n,null,null);t.exports=o.exports},function(t,e,i){var n,o,s;!function(r,a){o=[t,e,i(8),i(5)],n=a,void 0!==(s="function"==typeof n?n.apply(e,o):n)&&(t.exports=s)}(0,function(t,e,i,n){"use strict";function o(t,e){(0,s.default)(t,e,["select","value-change","cancel","change"]).before(function(t,e,i){i&&(0,n.tip)("Picker component can not be a singleton.")})}Object.defineProperty(e,"__esModule",{value:!0}),e.default=o;var s=function(t){return t&&t.__esModule?t:{default:t}}(i);t.exports=e.default})},function(t,e,i){function n(t){i(325)}var o=i(0)(i(326),i(341),n,null,null);t.exports=o.exports},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}e.__esModule=!0;var o=i(127),s=n(o),r=i(137),a=n(r),l="function"==typeof a.default&&"symbol"==typeof s.default?function(t){return typeof t}:function(t){return t&&"function"==typeof a.default&&t.constructor===a.default&&t!==a.default.prototype?"symbol":typeof t};e.default="function"==typeof a.default&&"symbol"===l(s.default)?function(t){return void 0===t?"undefined":l(t)}:function(t){return t&&"function"==typeof a.default&&t.constructor===a.default&&t!==a.default.prototype?"symbol":void 0===t?"undefined":l(t)}},function(t,e){e.f={}.propertyIsEnumerable},function(t,e,i){function n(t){i(153)}var o=i(0)(i(154),i(155),n,null,null);t.exports=o.exports},function(t,e,i){var n,o,s;!function(i,r){o=[t,e],n=r,void 0!==(s="function"==typeof n?n.apply(e,o):n)&&(t.exports=s)}(0,function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={props:{title:{type:String},subtitle:{type:String},cancelTxt:{type:String,default:""},confirmTxt:{type:String,default:""},swipeTime:{type:Number,default:2500},maskClosable:{type:Boolean,default:!0}},computed:{_cancelTxt:function(){return this.cancelTxt||this.$t("cancel")},_confirmTxt:function(){return this.confirmTxt||this.$t("ok")}}},t.exports=e.default})},function(t,e,i){var n,o,s;!function(i,r){o=[t,e],n=r,void 0!==(s="function"==typeof n?n.apply(e,o):n)&&(t.exports=s)}(0,function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={props:{options:{type:Object,default:function(){return{}}}}},t.exports=e.default})},function(t,e,i){var n=i(48);t.exports=function(t){return Object(n(t))}},function(t,e){t.exports=!0},function(t,e){var i=0,n=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++i+n).toString(36))}},function(t,e,i){"use strict";var n=i(129)(!0);i(77)(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,e=this._t,i=this._i;return i>=e.length?{value:void 0,done:!0}:(t=n(e,i),this._i+=t.length,{value:t,done:!1})})},function(t,e,i){var n,o,s;!function(i,r){o=[e],n=r,void 0!==(s="function"==typeof n?n.apply(e,o):n)&&(t.exports=s)}(0,function(t){"use strict";function e(t,e,n,o){var s={year:"(Y+)",month:"(M+)",date:"(D+)",hour:"(h+)",minute:"(m+)",second:"(s+)",quarter:"(q+)",millisecond:"(S)"};if(new RegExp(s[t],o).test(e)){var r="year"===t?n.toString().substr(4-RegExp.$1.length):1===RegExp.$1.length?n:i(n);e=e.replace(RegExp.$1,r)}return e}function i(t){return("00"+t).substr((""+t).length)}function n(t,i){var n={year:{value:t.getFullYear(),regExpAttributes:"i"},month:{value:t.getMonth()+1},date:{value:t.getDate(),regExpAttributes:"i"},hour:{value:t.getHours(),regExpAttributes:"i"},minute:{value:t.getMinutes()},second:{value:t.getSeconds()},quarter:{value:Math.floor((t.getMonth()+3)/3),regExpAttributes:"i"},millisecond:{value:t.getMilliseconds()}};for(var o in n)i=e(o,i,n[o].value,n[o].regExpAttributes);return i}function o(t){var e=t.getFullYear(),i=t.getMonth()+1,n=t.getDate();return+new Date(e+"/"+i+"/"+n+" 00:00:00")}function s(t,e){return Math.floor((o(t)-o(e))/l)}function r(){return window.performance&&window.performance.now?window.performance.now()+window.performance.timing.navigationStart:+new Date}function a(t,e){var i=30;return[1,3,5,7,8,10,12].indexOf(t)>-1?i=31:2===t&&(i=e&&e%400&&(e%4||!(e%100))?28:29),i}Object.defineProperty(t,"__esModule",{value:!0});var l=864e5;t.DAY_TIMESTAMP=l,t.HOUR_TIMESTAMP=36e5,t.MINUTE_TIMESTAMP=6e4,t.pad=i,t.formatType=e,t.formatDate=n,t.getZeroStamp=o,t.getDayDiff=s,t.getNow=r,t.computeNatureMaxDay=a})},function(t,e,i){function n(t){i(149)}var o=i(0)(i(150),i(151),n,null,null);t.exports=o.exports},function(t,e,i){var n,o,s;!function(i,r){o=[e],n=r,void 0!==(s="function"==typeof n?n.apply(e,o):n)&&(t.exports=s)}(0,function(t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var e=t.inBrowser="undefined"!=typeof window,i=t.ua=e&&navigator.userAgent.toLowerCase();t.isAndroid=i&&i.indexOf("android")>0})},function(t,e,i){function n(t){i(208)}var o=i(0)(i(209),i(213),n,null,null);t.exports=o.exports},function(t,e,i){"use strict";function n(){return window.performance&&window.performance.now?window.performance.now()+window.performance.timing.navigationStart:+new Date}function o(t){for(var e=arguments.length,i=Array(e>1?e-1:0),n=1;n1&&void 0!==arguments[1]?arguments[1]:"click",n=void 0;"mouseup"===t.type||"mousecancel"===t.type?n=t:"touchend"!==t.type&&"touchcancel"!==t.type||(n=t.changedTouches[0]);var s={};n&&(s.screenX=n.screenX||0,s.screenY=n.screenY||0,s.clientX=n.clientX||0,s.clientY=n.clientY||0);var r=void 0,a=!0,l=!0;if("undefined"!=typeof MouseEvent)try{r=new MouseEvent(i,o({bubbles:a,cancelable:l},s))}catch(t){e()}else e();r.forwardedTouchEvent=!0,r._constructed=!0,t.target.dispatchEvent(r)}function m(t){v(t,"dblclick")}function y(t,e){e.firstChild?b(t,e.firstChild):e.appendChild(t)}function b(t,e){e.parentNode.insertBefore(t,e)}function g(t,e){t.removeChild(e)}function _(t,e,i,n,o,s,r){var a=t-e,l=Math.abs(a)/i,u=r.deceleration,c=r.itemHeight,d=r.swipeBounceTime,f=r.wheel,h=r.swipeTime,p=h,v=f?4:15,m=t+l/u*(a<0?-1:1);return f&&c&&(m=Math.round(m/c)*c),mo&&(m=s?Math.min(o+s/4,o+s/v*l):o,p=d),{destination:Math.round(m),duration:p}}function x(){}function w(t){console.error("[BScroll warn]: "+t)}function S(t,e){if(!t)throw new Error("[BScroll] "+e)}function T(t){var e=document.createElement("div"),i=document.createElement("div");return e.style.cssText="position:absolute;z-index:9999;pointerEvents:none",i.style.cssText="box-sizing:border-box;position:absolute;background:rgba(0,0,0,0.5);border:1px solid rgba(255,255,255,0.9);border-radius:3px;",i.className="bscroll-indicator","horizontal"===t?(e.style.cssText+=";height:7px;left:2px;right:2px;bottom:0",i.style.height="100%",e.className="bscroll-horizontal-scrollbar"):(e.style.cssText+=";width:7px;bottom:2px;top:2px;right:1px",i.style.width="100%",e.className="bscroll-vertical-scrollbar"),e.style.cssText+=";overflow:hidden",e.appendChild(i),e}function k(t,e){this.wrapper=e.el,this.wrapperStyle=this.wrapper.style,this.indicator=this.wrapper.children[0],this.indicatorStyle=this.indicator.style,this.scroller=t,this.direction=e.direction,e.fade?(this.visible=0,this.wrapperStyle.opacity="0"):this.visible=1,this.sizeRatioX=1,this.sizeRatioY=1,this.maxPosX=0,this.maxPosY=0,this.x=0,this.y=0,e.interactive&&this._addDOMEvents()}function M(t){if(t&&t.classList)return t.classList.contains("tombstone")}function P(t,e){var i=this;this.options=e,S("function"==typeof this.options.createTombstone,"Infinite scroll need createTombstone Function to create tombstone"),S("function"==typeof this.options.fetch,"Infinite scroll need fetch Function to fetch new data."),S("function"==typeof this.options.render,"Infinite scroll need render Function to render each item."),this.firstAttachedItem=0,this.lastAttachedItem=0,this.anchorScrollTop=0,this.anchorItem={index:0,offset:0},this.tombstoneHeight=0,this.tombstoneWidth=0,this.tombstones=[],this.items=[],this.loadedItems=0,this.requestInProgress=!1,this.hasMore=!0,this.scroller=t,this.wrapperEl=this.scroller.wrapper,this.scrollerEl=this.scroller.scroller,this.scroller.on("scroll",function(){i.onScroll()}),this.scroller.on("resize",function(){i.onResize()}),this.onResize()}function C(t,e){this.wrapper="string"==typeof t?document.querySelector(t):t,this.wrapper||w("Can not resolve the wrapper DOM."),this.scroller=this.wrapper.children[0],this.scroller||w("The wrapper need at least one child element to be scroller."),this.scrollerStyle=this.scroller.style,this._init(t,e)}Object.defineProperty(e,"__esModule",{value:!0});/*! - * better-normal-scroll v1.12.6 - * (c) 2016-2018 ustbhuangyi - * Released under the MIT License. - */ -var O=function(){function t(t,e){var i=[],n=!0,o=!1,s=void 0;try{for(var r,a=t[Symbol.iterator]();!(n=(r=a.next()).done)&&(i.push(r.value),!e||i.length!==e);n=!0);}catch(t){o=!0,s=t}finally{try{!n&&a.return&&a.return()}finally{if(o)throw s}}return i}return function(e,i){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),$=function(t){if(Array.isArray(t)){for(var e=0,i=Array(t.length);e0,A=E&&document.createElement("div").style,j=function(){if(!E)return!1;var t={webkit:"webkitTransform",Moz:"MozTransform",O:"OTransform",ms:"msTransform",standard:"transform"};for(var e in t)if(void 0!==A[t[e]])return e;return!1}(),R=a("transform"),H=E&&a("perspective")in A,Y=E&&("ontouchstart"in window||I),N=!1!==R,X=E&&a("transition")in A,F={transform:R,transitionTimingFunction:a("transitionTimingFunction"),transitionDuration:a("transitionDuration"),transitionDelay:a("transitionDelay"),transformOrigin:a("transformOrigin"),transitionEnd:a("transitionEnd")},B=1,L={touchstart:B,touchmove:B,touchend:B,mousedown:2,mousemove:2,mouseup:2},z={startX:0,startY:0,scrollX:!1,scrollY:!0,freeScroll:!1,directionLockThreshold:5,eventPassthrough:"",click:!1,tap:!1,bounce:!0,bounceTime:800,momentum:!0,momentumLimitTime:300,momentumLimitDistance:15,swipeTime:2500,swipeBounceTime:500,deceleration:.0015,flickLimitTime:200,flickLimitDistance:100,resizePolling:60,probeType:0,preventDefault:!0,preventDefaultException:{tagName:/^(INPUT|TEXTAREA|BUTTON|SELECT)$/},HWCompositing:!0,useTransition:!0,useTransform:!0,bindToWrapper:!1,disableMouse:Y,disableTouch:!Y,observeDOM:!0,autoBlur:!0,wheel:!1,snap:!1,scrollbar:!1,pullDownRefresh:!1,pullUpLoad:!1,mouseWheel:!1,stopPropagation:!1,zoom:!1,infinity:!1,dblclick:!1},U={swipe:{style:"cubic-bezier(0.23, 1, 0.32, 1)",fn:function(t){return 1+--t*t*t*t*t}},swipeBounce:{style:"cubic-bezier(0.25, 0.46, 0.45, 0.94)",fn:function(t){return t*(2-t)}},bounce:{style:"cubic-bezier(0.165, 0.84, 0.44, 1)",fn:function(t){return 1- --t*t*t*t}}},W=function(){return E?window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||function(t){return window.setTimeout(t,(t.interval||100/60)/2)}:x}(),q=function(){return E?window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||window.oCancelAnimationFrame||function(t){window.clearTimeout(t)}:x}(),G=1,K=-1,Z=1,J=-1,Q=1,tt=3;k.prototype.handleEvent=function(t){switch(t.type){case"touchstart":case"mousedown":this._start(t);break;case"touchmove":case"mousemove":this._move(t);break;case"touchend":case"mouseup":case"touchcancel":case"mousecancel":this._end(t)}},k.prototype.refresh=function(){this._shouldShow()&&(this.transitionTime(),this._calculate(),this.updatePosition())},k.prototype.fade=function(t,e){var i=this;if(!e||this.visible){var n=t?250:500;t=t?"1":"0",this.wrapperStyle[F.transitionDuration]=n+"ms",clearTimeout(this.fadeTimeout),this.fadeTimeout=setTimeout(function(){i.wrapperStyle.opacity=t,i.visible=+t},0)}},k.prototype.updatePosition=function(){if("vertical"===this.direction){var t=Math.round(this.sizeRatioY*this.scroller.y);if(t<0){this.transitionTime(500);var e=Math.max(this.indicatorHeight+3*t,8);this.indicatorStyle.height=e+"px",t=0}else if(t>this.maxPosY){this.transitionTime(500);var i=Math.max(this.indicatorHeight-3*(t-this.maxPosY),8);this.indicatorStyle.height=i+"px",t=this.maxPosY+this.indicatorHeight-i}else this.indicatorStyle.height=this.indicatorHeight+"px";this.y=t,this.scroller.options.useTransform?this.indicatorStyle[F.transform]="translateY("+t+"px)"+this.scroller.translateZ:this.indicatorStyle.top=t+"px"}else{var n=Math.round(this.sizeRatioX*this.scroller.x);if(n<0){this.transitionTime(500);var o=Math.max(this.indicatorWidth+3*n,8);this.indicatorStyle.width=o+"px",n=0}else if(n>this.maxPosX){this.transitionTime(500);var s=Math.max(this.indicatorWidth-3*(n-this.maxPosX),8);this.indicatorStyle.width=s+"px",n=this.maxPosX+this.indicatorWidth-s}else this.indicatorStyle.width=this.indicatorWidth+"px";this.x=n,this.scroller.options.useTransform?this.indicatorStyle[F.transform]="translateX("+n+"px)"+this.scroller.translateZ:this.indicatorStyle.left=n+"px"}},k.prototype.transitionTime=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this.indicatorStyle[F.transitionDuration]=t+"ms"},k.prototype.transitionTimingFunction=function(t){this.indicatorStyle[F.transitionTimingFunction]=t},k.prototype.destroy=function(){this._removeDOMEvents(),this.wrapper.parentNode.removeChild(this.wrapper)},k.prototype._start=function(t){var e=t.touches?t.touches[0]:t;t.preventDefault(),t.stopPropagation(),this.transitionTime(),this.initiated=!0,this.moved=!1,this.lastPointX=e.pageX,this.lastPointY=e.pageY,this.startTime=n(),this._handleMoveEvents(l),this.scroller.trigger("beforeScrollStart")},k.prototype._move=function(t){var e=t.touches?t.touches[0]:t;t.preventDefault(),t.stopPropagation(),this.moved||this.scroller.trigger("scrollStart"),this.moved=!0;var i=e.pageX-this.lastPointX;this.lastPointX=e.pageX;var n=e.pageY-this.lastPointY;this.lastPointY=e.pageY;var o=this.x+i,s=this.y+n;this._pos(o,s)},k.prototype._end=function(t){if(this.initiated){this.initiated=!1,t.preventDefault(),t.stopPropagation(),this._handleMoveEvents(u);var e=this.scroller.options.snap;if(e){var i=e.speed,n=e.easing,o=void 0===n?U.bounce:n,s=this.scroller._nearestSnap(this.scroller.x,this.scroller.y),r=i||Math.max(Math.max(Math.min(Math.abs(this.scroller.x-s.x),1e3),Math.min(Math.abs(this.scroller.y-s.y),1e3)),300);this.scroller.x===s.x&&this.scroller.y===s.y||(this.scroller.directionX=0,this.scroller.directionY=0,this.scroller.currentPage=s,this.scroller.scrollTo(s.x,s.y,r,o))}this.moved&&this.scroller.trigger("scrollEnd",{x:this.scroller.x,y:this.scroller.y})}},k.prototype._pos=function(t,e){t<0?t=0:t>this.maxPosX&&(t=this.maxPosX),e<0?e=0:e>this.maxPosY&&(e=this.maxPosY),t=Math.round(t/this.sizeRatioX),e=Math.round(e/this.sizeRatioY),this.scroller.scrollTo(t,e),this.scroller.trigger("scroll",{x:this.scroller.x,y:this.scroller.y})},k.prototype._shouldShow=function(){return"vertical"===this.direction&&this.scroller.hasVerticalScroll||"horizontal"===this.direction&&this.scroller.hasHorizontalScroll?(this.wrapper.style.display="",!0):(this.wrapper.style.display="none",!1)},k.prototype._calculate=function(){if("vertical"===this.direction){var t=this.wrapper.clientHeight;this.indicatorHeight=Math.max(Math.round(t*t/(this.scroller.scrollerHeight||t||1)),8),this.indicatorStyle.height=this.indicatorHeight+"px",this.maxPosY=t-this.indicatorHeight,this.sizeRatioY=this.maxPosY/this.scroller.maxScrollY}else{var e=this.wrapper.clientWidth;this.indicatorWidth=Math.max(Math.round(e*e/(this.scroller.scrollerWidth||e||1)),8),this.indicatorStyle.width=this.indicatorWidth+"px",this.maxPosX=e-this.indicatorWidth,this.sizeRatioX=this.maxPosX/this.scroller.maxScrollX}},k.prototype._addDOMEvents=function(){var t=l;this._handleDOMEvents(t)},k.prototype._removeDOMEvents=function(){var t=u;this._handleDOMEvents(t),this._handleMoveEvents(t)},k.prototype._handleMoveEvents=function(t){this.scroller.options.disableTouch||t(window,"touchmove",this),this.scroller.options.disableMouse||t(window,"mousemove",this)},k.prototype._handleDOMEvents=function(t){this.scroller.options.disableTouch||(t(this.indicator,"touchstart",this),t(window,"touchend",this)),this.scroller.options.disableMouse||(t(this.indicator,"mousedown",this),t(window,"mouseup",this))};var et=2e3;P.prototype.onScroll=function(){var t=-this.scroller.y,e=t-this.anchorScrollTop;this.anchorItem=0===t?{index:0,offset:0}:this._calculateAnchoredItem(this.anchorItem,e),this.anchorScrollTop=t;var i=this._calculateAnchoredItem(this.anchorItem,this.wrapperEl.offsetHeight),n=this.anchorItem.index,o=i.index;e<0?(n-=30,o+=10):(n-=10,o+=30),this.fill(n,o),this.maybeRequestContent()},P.prototype.onResize=function(){var t=this.options.createTombstone();t.style.position="absolute",this.scrollerEl.appendChild(t),t.style.display="",this.tombstoneHeight=t.offsetHeight,this.tombstoneWidth=t.offsetWidth,this.scrollerEl.removeChild(t);for(var e=0;ethis.firstAttachedItem;)e-=this.items[i-1].height||this.tombstoneHeight,i--;return e},P.prototype._setupAnimations=function(t,e){var i=this;for(var n in t){var o=t[n];this.items[n].node.style.transform="translateY("+(this.anchorScrollTop+o[1])+"px) scale("+this.tombstoneWidth/this.items[n].width+", "+this.tombstoneHeight/this.items[n].height+")",this.items[n].node.offsetTop,o[0].offsetTop,this.items[n].node.style.transition="transform 200ms"}for(var s=this.firstAttachedItem;s0&&this.items[i-1].height;)e+=this.items[i-1].height,i--;n=Math.max(-i,Math.ceil(Math.min(e,0)/this.tombstoneHeight))}else{for(;e>0&&i=this.items.length||!this.items[i].height)&&(n=Math.floor(Math.max(e,0)/this.tombstoneHeight))}return i+=n,e-=n*this.tombstoneHeight,{index:i,offset:e}},function(t){t.prototype._init=function(t,e){this._handleOptions(e),this._events={},this.x=0,this.y=0,this.directionX=0,this.directionY=0,this.setScale(1),this._addDOMEvents(),this._initExtFeatures(),this._watchTransition(),this.options.observeDOM&&this._initDOMObserver(),this.options.autoBlur&&this._handleAutoBlur(),this.refresh(),this.options.snap||this.scrollTo(this.options.startX,this.options.startY),this.enable()},t.prototype.setScale=function(t){this.lastScale=s(this.scale)?t:this.scale,this.scale=t},t.prototype._handleOptions=function(t){this.options=o({},z,t),this.translateZ=this.options.HWCompositing&&H?" translateZ(0)":"",this.options.useTransition=this.options.useTransition&&X,this.options.useTransform=this.options.useTransform&&N,this.options.preventDefault=!this.options.eventPassthrough&&this.options.preventDefault,this.options.scrollX="horizontal"!==this.options.eventPassthrough&&this.options.scrollX,this.options.scrollY="vertical"!==this.options.eventPassthrough&&this.options.scrollY,this.options.freeScroll=this.options.freeScroll&&!this.options.eventPassthrough,this.options.directionLockThreshold=this.options.eventPassthrough?0:this.options.directionLockThreshold,!0===this.options.tap&&(this.options.tap="tap")},t.prototype._addDOMEvents=function(){var t=l;this._handleDOMEvents(t)},t.prototype._removeDOMEvents=function(){var t=u;this._handleDOMEvents(t)},t.prototype._handleDOMEvents=function(t){var e=this.options.bindToWrapper?this.wrapper:window;t(window,"orientationchange",this),t(window,"resize",this),this.options.click&&t(this.wrapper,"click",this,!0),this.options.disableMouse||(t(this.wrapper,"mousedown",this),t(e,"mousemove",this),t(e,"mousecancel",this),t(e,"mouseup",this)),Y&&!this.options.disableTouch&&(t(this.wrapper,"touchstart",this),t(e,"touchmove",this),t(e,"touchcancel",this),t(e,"touchend",this)),t(this.scroller,F.transitionEnd,this)},t.prototype._initExtFeatures=function(){this.options.snap&&this._initSnap(),this.options.scrollbar&&this._initScrollbar(),this.options.pullUpLoad&&this._initPullUp(),this.options.pullDownRefresh&&this._initPullDown(),this.options.wheel&&this._initWheel(),this.options.mouseWheel&&this._initMouseWheel(),this.options.zoom&&this._initZoom(),this.options.infinity&&this._initInfinite()},t.prototype._watchTransition=function(){if("function"==typeof Object.defineProperty){var t=this,e=!1,i=this.useTransition?"isInTransition":"isAnimating";Object.defineProperty(this,i,{get:function(){return e},set:function(i){e=i;for(var n=t.scroller.children.length?t.scroller.children:[t.scroller],o=e&&!t.pulling?"none":"auto",s=0;sthis.minScrollX||this.xthis.minScrollY||this.y1&&this._zoomStart(t);break;case"touchmove":case"mousemove":this.options.zoom&&t.touches&&t.touches.length>1?this._zoom(t):this._move(t);break;case"touchend":case"mouseup":case"touchcancel":case"mousecancel":this.scaled?this._zoomEnd(t):this._end(t);break;case"orientationchange":case"resize":this._resize();break;case"transitionend":case"webkitTransitionEnd":case"oTransitionEnd":case"MSTransitionEnd":this._transitionEnd(t);break;case"click":this.enabled&&!t._constructed&&(h(t.target,this.options.preventDefaultException)||(t.preventDefault(),t.stopPropagation()));break;case"wheel":case"DOMMouseScroll":case"mousewheel":this._onMouseWheel(t)}},t.prototype.refresh=function(){var t="static"===window.getComputedStyle(this.wrapper,null).position,e=f(this.wrapper);this.wrapperWidth=e.width,this.wrapperHeight=e.height;var i=f(this.scroller);this.scrollerWidth=Math.round(i.width*this.scale),this.scrollerHeight=Math.round(i.height*this.scale),this.relativeX=i.left,this.relativeY=i.top,t&&(this.relativeX-=e.left,this.relativeY-=e.top),this.minScrollX=0,this.minScrollY=0;var n=this.options.wheel;n?(this.items=this.scroller.children,this.options.itemHeight=this.itemHeight=this.items.length?this.scrollerHeight/this.items.length:0,void 0===this.selectedIndex&&(this.selectedIndex=n.selectedIndex||0),this.options.startY=-this.selectedIndex*this.itemHeight,this.maxScrollX=0,this.maxScrollY=-this.itemHeight*(this.items.length-1)):(this.maxScrollX=this.wrapperWidth-this.scrollerWidth,this.options.infinity||(this.maxScrollY=this.wrapperHeight-this.scrollerHeight),this.maxScrollX<0?(this.maxScrollX-=this.relativeX,this.minScrollX=-this.relativeX):this.scale>1&&(this.maxScrollX=this.maxScrollX/2-this.relativeX,this.minScrollX=this.maxScrollX),this.maxScrollY<0?(this.maxScrollY-=this.relativeY,this.minScrollY=-this.relativeY):this.scale>1&&(this.maxScrollY=this.maxScrollY/2-this.relativeY,this.minScrollY=this.maxScrollY)),this.hasHorizontalScroll=this.options.scrollX&&this.maxScrollXthis.options.momentumLimitTime&&rr+this.options.directionLockThreshold?this.directionLocked="h":r>=s+this.options.directionLockThreshold?this.directionLocked="v":this.directionLocked="n"),"h"===this.directionLocked){if("vertical"===this.options.eventPassthrough)t.preventDefault();else if("horizontal"===this.options.eventPassthrough)return void(this.initiated=!1);o=0}else if("v"===this.directionLocked){if("horizontal"===this.options.eventPassthrough)t.preventDefault();else if("vertical"===this.options.eventPassthrough)return void(this.initiated=!1);i=0}i=this.hasHorizontalScroll?i:0,o=this.hasVerticalScroll?o:0,this.movingDirectionX=i>0?J:i<0?Z:0,this.movingDirectionY=o>0?K:o<0?G:0;var l=this.x+i,u=this.y+o,c=!1,d=!1,f=!1,h=!1,p=this.options.bounce;!1!==p&&(c=void 0===p.top||p.top,d=void 0===p.bottom||p.bottom,f=void 0===p.left||p.left,h=void 0===p.right||p.right),(l>this.minScrollX||lthis.minScrollX&&f||lthis.minScrollX?this.minScrollX:this.maxScrollX),(u>this.minScrollY||uthis.minScrollY&&c||uthis.minScrollY?this.minScrollY:this.maxScrollY),this.moved||(this.moved=!0,this.trigger("scrollStart")),this._translate(l,u),a-this.startTime>this.options.momentumLimitTime&&(this.startTime=a,this.startX=this.x,this.startY=this.y,this.options.probeType===Q&&this.trigger("scroll",{x:this.x,y:this.y})),this.options.probeType>Q&&this.trigger("scroll",{x:this.x,y:this.y});var v=document.documentElement.scrollLeft||window.pageXOffset||document.body.scrollLeft,m=document.documentElement.scrollTop||window.pageYOffset||document.body.scrollTop,y=this.pointX-v,b=this.pointY-m;(y>document.documentElement.clientWidth-this.options.momentumLimitDistance||ydocument.documentElement.clientHeight-this.options.momentumLimitDistance)&&this._end(t)}}},t.prototype._end=function(t){if(this.enabled&&!this.destroyed&&L[t.type]===this.initiated){this.initiated=!1,this.options.preventDefault&&!h(t.target,this.options.preventDefaultException)&&t.preventDefault(),this.options.stopPropagation&&t.stopPropagation(),this.trigger("touchEnd",{x:this.x,y:this.y}),this.isInTransition=!1;var e=Math.round(this.x),i=Math.round(this.y),o=e-this.absStartX,s=i-this.absStartY;if(this.directionX=o>0?J:o<0?Z:0,this.directionY=s>0?K:s<0?G:0,!this.options.pullDownRefresh||!this._checkPullDown()){if(this._checkClick(t))return void this.trigger("scrollCancel");if(!this.resetPosition(this.options.bounceTime,U.bounce)){this._translate(e,i),this.endTime=n();var r=this.endTime-this.startTime,a=Math.abs(e-this.startX),l=Math.abs(i-this.startY);if(this._events.flick&&rthis.options.momentumLimitDistance||a>this.options.momentumLimitDistance)){var c=!1,d=!1,f=!1,p=!1,v=this.options.bounce;!1!==v&&(c=void 0===v.top||v.top,d=void 0===v.bottom||v.bottom,f=void 0===v.left||v.left,p=void 0===v.right||v.right);var m=this.directionX===J&&f||this.directionX===Z&&p?this.wrapperWidth:0,y=this.directionY===K&&c||this.directionY===G&&d?this.wrapperHeight:0,b=this.hasHorizontalScroll?_(this.x,this.startX,r,this.maxScrollX,this.minScrollX,m,this.options):{destination:e,duration:0},g=this.hasVerticalScroll?_(this.y,this.startY,r,this.maxScrollY,this.minScrollY,y,this.options):{destination:i,duration:0};e=b.destination,i=g.destination,u=Math.max(b.duration,g.duration),this.isInTransition=!0}else this.options.wheel&&(i=Math.round(i/this.itemHeight)*this.itemHeight,u=this.options.wheel.adjustTime||400);var x=U.swipe;if(this.options.snap){var w=this._nearestSnap(e,i);this.currentPage=w,u=this.options.snapSpeed||Math.max(Math.max(Math.min(Math.abs(e-w.x),1e3),Math.min(Math.abs(i-w.y),1e3)),300),e=w.x,i=w.y,this.directionX=0,this.directionY=0,x=this.options.snap.easing||U.bounce}if(e!==this.x||i!==this.y)return(e>this.minScrollX||ethis.minScrollY||i0&&void 0!==arguments[0]?arguments[0]:0;if(this.scrollerStyle[F.transitionDuration]=t+"ms",this.options.wheel)for(var e=0;e=f)return r.isAnimating=!1,r._translate(t,e,c),r.trigger("scroll",{x:r.x,y:r.y}),void(r.pulling||r.resetPosition(r.options.bounceTime)||r.trigger("scrollEnd",{x:r.x,y:r.y}));h=(h-d)/i;var p=o(h),v=(t-a)*p+a,m=(e-l)*p+l,y=(c-u)*p+u;r._translate(v,m,y),r.isAnimating&&(r.animateTimer=W(s)),r.options.probeType===tt&&r.trigger("scroll",{x:r.x,y:r.y})}var r=this,a=this.x,l=this.y,u=this.lastScale,c=this.scale,d=n(),f=d+i;this.isAnimating=!0,q(this.animateTimer),s()},t.prototype.scrollBy=function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:U.bounce;t=this.x+t,e=this.y+e,this.scrollTo(t,e,i,n)},t.prototype.scrollTo=function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:U.bounce;this.isInTransition=this.options.useTransition&&i>0&&(t!==this.x||e!==this.y),!i||this.options.useTransition?(this._transitionTimingFunction(n.style),this._transitionTime(i),this._translate(t,e),i&&this.options.probeType===tt&&this._startProbe(),i||t===this.x&&e===this.y||(this.trigger("scroll",{x:t,y:e}),this._reflow=document.body.offsetHeight,this.resetPosition(this.options.bounceTime,U.bounce)||this.trigger("scrollEnd",{x:t,y:e})),this.options.wheel&&(e>this.minScrollY?this.selectedIndex=0:ethis.minScrollX?this.minScrollX:s.leftthis.minScrollY?this.minScrollY:s.top0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:U.bounce,i=this.x,n=Math.round(i);!this.hasHorizontalScroll||n>this.minScrollX?i=this.minScrollX:nthis.minScrollY?o=this.minScrollY:s2&&void 0!==arguments[2]?arguments[2]:this;this._events[t]||(this._events[t]=[]),this._events[t].push([e,i])},t.prototype.once=function(t,e){function i(){this.off(t,i),e.apply(n,arguments)}var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this;i.fn=e,this.on(t,i)},t.prototype.off=function(t,e){var i=this._events[t];if(i)for(var n=i.length;n--;)(i[n][0]===e||i[n][0]&&i[n][0].fn===e)&&(i[n][0]=void 0)},t.prototype.trigger=function(t){var e=this._events[t];if(e)for(var i=e.length,n=[].concat($(e)),o=0;o1?(y(i[i.length-1].cloneNode(!0),this.scroller),this.scroller.appendChild(i[1].cloneNode(!0))):e.loop=!1}var n=e.el;"string"==typeof n&&(n=this.scroller.querySelectorAll(n)),this.on("refresh",function(){if(t.pages=[],t.wrapperWidth&&t.wrapperHeight&&t.scrollerWidth&&t.scrollerHeight){var i=e.stepX||t.wrapperWidth,o=e.stepY||t.wrapperHeight,s=0,r=void 0,a=void 0,l=void 0,u=0,c=void 0,d=0,h=void 0,p=void 0;if(n)for(c=n.length,h=-1;ut.maxScrollX&&d++;else for(a=Math.round(i/2),l=Math.round(o/2);s>-t.scrollerWidth;){for(t.pages[u]=[],c=0,r=0;r>-t.scrollerHeight;)t.pages[u][c]={x:Math.max(s,t.maxScrollX),y:Math.max(r,t.maxScrollY),width:i,height:o,cx:s-a,cy:r-l},r-=o,c++;s-=i,u++}t._checkSnapLoop();var v=e._loopX?1:0,m=e._loopY?1:0;t._goToPage(t.currentPage.pageX||v,t.currentPage.pageY||m,0);var y=e.threshold;y%1==0?(t.snapThresholdX=y,t.snapThresholdY=y):(t.snapThresholdX=Math.round(t.pages[t.currentPage.pageX][t.currentPage.pageY].width*y),t.snapThresholdY=Math.round(t.pages[t.currentPage.pageX][t.currentPage.pageY].height*y))}}),this.on("scrollEnd",function(){e.loop&&(e._loopX?(0===t.currentPage.pageX&&t._goToPage(t.pages.length-2,t.currentPage.pageY,0),t.currentPage.pageX===t.pages.length-1&&t._goToPage(1,t.currentPage.pageY,0)):(0===t.currentPage.pageY&&t._goToPage(t.currentPage.pageX,t.pages[0].length-2,0),t.currentPage.pageY===t.pages[0].length-1&&t._goToPage(t.currentPage.pageX,1,0)))}),!1!==e.listenFlick&&this.on("flick",function(){var i=e.speed||Math.max(Math.max(Math.min(Math.abs(t.x-t.startX),1e3),Math.min(Math.abs(t.y-t.startY),1e3)),300);t._goToPage(t.currentPage.pageX+t.directionX,t.currentPage.pageY+t.directionY,i)}),this.on("destroy",function(){if(e.loop){var i=t.scroller.children;i.length>2&&(g(t.scroller,i[i.length-1]),g(t.scroller,i[0]))}})},t.prototype._checkSnapLoop=function(){var t=this.options.snap;t.loop&&this.pages&&this.pages.length&&(this.pages.length>1&&(t._loopX=!0),this.pages[0]&&this.pages[0].length>1&&(t._loopY=!0),t._loopX&&t._loopY&&w("Loop does not support two direction at the same time."))},t.prototype._nearestSnap=function(t,e){if(!this.pages.length)return{x:0,y:0,pageX:0,pageY:0};var i=0;if(Math.abs(t-this.absStartX)<=this.snapThresholdX&&Math.abs(e-this.absStartY)<=this.snapThresholdY)return this.currentPage;t>this.minScrollX?t=this.minScrollX:tthis.minScrollY?e=this.minScrollY:e=this.pages[i][0].cx){t=this.pages[i][0].x;break}n=this.pages[i].length;for(var o=0;o=this.pages[0][o].cy){e=this.pages[0][o].y;break}return i===this.currentPage.pageX&&(i+=this.directionX,i<0?i=0:i>=this.pages.length&&(i=this.pages.length-1),t=this.pages[i][0].x),o===this.currentPage.pageY&&(o+=this.directionY,o<0?o=0:o>=this.pages[0].length&&(o=this.pages[0].length-1),e=this.pages[0][o].y),{x:t,y:e,pageX:i,pageY:o}},t.prototype._goToPage=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments[2],n=arguments[3],o=this.options.snap;if(o&&this.pages&&this.pages.length&&(n=n||o.easing||U.bounce,t>=this.pages.length?t=this.pages.length-1:t<0&&(t=0),this.pages[t])){e>=this.pages[t].length?e=this.pages[t].length-1:e<0&&(e=0);var s=this.pages[t][e].x,r=this.pages[t][e].y;i=void 0===i?o.speed||Math.max(Math.max(Math.min(Math.abs(s-this.x),1e3),Math.min(Math.abs(r-this.y),1e3)),300):i,this.currentPage={x:s,y:r,pageX:t,pageY:e},this.scrollTo(s,r,i,n)}},t.prototype.goToPage=function(t,e,i,n){var o=this.options.snap;if(o&&this.pages&&this.pages.length){if(o.loop){var s=void 0;o._loopX?(s=this.pages.length-2,t>=s?t=s-1:t<0&&(t=0),t+=1):(s=this.pages[0].length-2,e>=s?e=s-1:e<0&&(e=0),e+=1)}this._goToPage(t,e,i,n)}},t.prototype.next=function(t,e){if(this.options.snap){var i=this.currentPage.pageX,n=this.currentPage.pageY;i++,i>=this.pages.length&&this.hasVerticalScroll&&(i=0,n++),this._goToPage(i,n,t,e)}},t.prototype.prev=function(t,e){if(this.options.snap){var i=this.currentPage.pageX,n=this.currentPage.pageY;i--,i<0&&this.hasVerticalScroll&&(i=0,n--),this._goToPage(i,n,t,e)}},t.prototype.getCurrentPage=function(){var t=this.options.snap;return t?t.loop?t._loopX?o({},this.currentPage,{pageX:this.currentPage.pageX-1}):o({},this.currentPage,{pageY:this.currentPage.pageY-1}):this.currentPage:null}}(C),function(t){t.prototype.wheelTo=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this.options.wheel&&(this.y=-t*this.itemHeight,this.scrollTo(0,this.y))},t.prototype.getSelectedIndex=function(){return this.options.wheel&&this.selectedIndex},t.prototype._initWheel=function(){var t=this.options.wheel;t.wheelWrapperClass||(t.wheelWrapperClass="wheel-scroll"),t.wheelItemClass||(t.wheelItemClass="wheel-item"),void 0===t.selectedIndex&&(t.selectedIndex=0,w("wheel option selectedIndex is required!"))}}(C),function(t){t.prototype._initScrollbar=function(){var t=this,e=this.options.scrollbar,i=e.fade,n=void 0===i||i,o=e.interactive,s=void 0!==o&&o;this.indicators=[];var r=void 0;this.options.scrollX&&(r={el:T("horizontal"),direction:"horizontal",fade:n,interactive:s},this._insertScrollBar(r.el),this.indicators.push(new k(this,r))),this.options.scrollY&&(r={el:T("vertical"),direction:"vertical",fade:n,interactive:s},this._insertScrollBar(r.el),this.indicators.push(new k(this,r))),this.on("refresh",function(){for(var e=0;e0&&void 0!==arguments[0])||arguments[0];this.options.pullDownRefresh=t,this._initPullDown()},t.prototype.closePullDown=function(){this.options.pullDownRefresh=!1}}(C),function(t){t.prototype._initPullUp=function(){this.options.probeType=tt,this.pullupWatching=!1,this._watchPullUp()},t.prototype._watchPullUp=function(){this.pullupWatching||(this.pullupWatching=!0,this.on("scroll",this._checkToEnd))},t.prototype._checkToEnd=function(t){var e=this,i=this.options.pullUpLoad.threshold,n=void 0===i?0:i;this.movingDirectionY===G&&t.y<=this.maxScrollY+n&&(this.once("scrollEnd",function(){e.pullupWatching=!1}),this.trigger("pullingUp"),this.off("scroll",this._checkToEnd))},t.prototype.finishPullUp=function(){var t=this;this.pullupWatching?this.once("scrollEnd",function(){t._watchPullUp()}):this._watchPullUp()},t.prototype.openPullUp=function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.options.pullUpLoad=t,this._initPullUp()},t.prototype.closePullUp=function(){this.options.pullUpLoad=!1,this.pullupWatching&&(this.pullupWatching=!1,this.off("scroll",this._checkToEnd))}}(C),function(t){t.prototype._initMouseWheel=function(){var t=this;this._handleMouseWheelEvent(l),this.on("destroy",function(){clearTimeout(t.mouseWheelTimer),clearTimeout(t.mouseWheelEndTimer),t._handleMouseWheelEvent(u)}),this.firstWheelOpreation=!0},t.prototype._handleMouseWheelEvent=function(t){t(this.wrapper,"wheel",this),t(this.wrapper,"mousewheel",this),t(this.wrapper,"DOMMouseScroll",this)},t.prototype._onMouseWheel=function(t){var e=this;if(this.enabled){t.preventDefault(),this.options.stopPropagation&&t.stopPropagation(),this.firstWheelOpreation&&this.trigger("scrollStart"),this.firstWheelOpreation=!1;var i=this.options.mouseWheel,n=i.speed,o=void 0===n?20:n,s=i.invert,r=void 0!==s&&s,a=i.easeTime,l=void 0===a?300:a;clearTimeout(this.mouseWheelTimer),this.mouseWheelTimer=setTimeout(function(){e.options.snap||l||e.trigger("scrollEnd",{x:e.x,y:e.y}),e.firstWheelOpreation=!0},400);var u=void 0,c=void 0;switch(!0){case"deltaX"in t:1===t.deltaMode?(u=-t.deltaX*o,c=-t.deltaY*o):(u=-t.deltaX,c=-t.deltaY);break;case"wheelDeltaX"in t:u=t.wheelDeltaX/120*o,c=t.wheelDeltaY/120*o;break;case"wheelDelta"in t:u=c=t.wheelDelta/120*o;break;case"detail"in t:u=c=-t.detail/3*o;break;default:return}var d=r?-1:1;u*=d,c*=d,this.hasVerticalScroll||(u=c,c=0);var f=void 0,h=void 0;if(this.options.snap)return f=this.currentPage.pageX,h=this.currentPage.pageY,u>0?f--:u<0&&f++,c>0?h--:c<0&&h++,void this._goToPage(f,h);f=this.x+Math.round(this.hasHorizontalScroll?u:0),h=this.y+Math.round(this.hasVerticalScroll?c:0),this.movingDirectionX=this.directionX=u>0?-1:u<0?1:0,this.movingDirectionY=this.directionY=c>0?-1:c<0?1:0,f>this.minScrollX?f=this.minScrollX:fthis.minScrollY?h=this.minScrollY:hthis.minScrollX?s=this.minScrollX:sthis.minScrollY?r=this.minScrollY:rf&&(a=2*f*Math.pow(.5,f/a));var h=a/this.startScale,p=this.startX-(this.originX-this.relativeX)*(h-1),v=this.startY-(this.originY-this.relativeY)*(h-1);this.setScale(a),this.scrollTo(p,v,0)}},t.prototype._zoomEnd=function(t){if(this.enabled&&!this.destroyed&&L[t.type]===this.initiated){this.options.preventDefault&&t.preventDefault(),this.options.stopPropagation&&t.stopPropagation(),this.isInTransition=!1,this.isAnimating=!1,this.initiated=0;var e=this.options.zoom,i=e.min,n=void 0===i?1:i,o=e.max,s=void 0===o?4:o,r=this.scale>s?s:this.scale0?n:i)(t)}},function(t,e,i){var n=i(52)("keys"),o=i(39);t.exports=function(t){return n[t]||(n[t]=o(t))}},function(t,e,i){var n=i(2),o=i(12),s=o["__core-js_shared__"]||(o["__core-js_shared__"]={});(t.exports=function(t,e){return s[t]||(s[t]=void 0!==e?e:{})})("versions",[]).push({version:n.version,mode:i(38)?"pure":"global",copyright:"© 2018 Denis Pushkarev (zloirock.ru)"})},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e,i){var n=i(13).f,o=i(16),s=i(6)("toStringTag");t.exports=function(t,e,i){t&&!o(t=i?t:t.prototype,s)&&n(t,s,{configurable:!0,value:e})}},function(t,e,i){i(134);for(var n=i(12),o=i(21),s=i(25),r=i(6)("toStringTag"),a="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),l=0;l0&&void 0!==arguments[0]?arguments[0]:"",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,r=o&&o.base64||"";return{name:t,size:e,url:r?"":s(o),base64:r,status:i,progress:n,file:o}}function s(t){return t&&a?a.createObjectURL(t):""}function r(t){if("function"==typeof t){for(var e=arguments.length,i=Array(e>1?e-1:0),n=1;nl;)n(a,i=e[l++])&&(~s(u,i)||u.push(i));return u}},function(t,e,i){var n=i(49);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==n(t)?t.split(""):Object(t)}},function(t,e,i){var n=i(50),o=Math.min;t.exports=function(t){return t>0?o(n(t),9007199254740991):0}},function(t,e,i){"use strict";var n=i(38),o=i(14),s=i(78),r=i(21),a=i(25),l=i(130),u=i(54),c=i(133),d=i(6)("iterator"),f=!([].keys&&"next"in[].keys()),h=function(){return this};t.exports=function(t,e,i,p,v,m,y){l(i,e,p);var b,g,_,x=function(t){if(!f&&t in k)return k[t];switch(t){case"keys":case"values":return function(){return new i(this,t)}}return function(){return new i(this,t)}},w=e+" Iterator",S="values"==v,T=!1,k=t.prototype,M=k[d]||k["@@iterator"]||v&&k[v],P=M||x(v),C=v?S?x("entries"):P:void 0,O="Array"==e?k.entries||M:M;if(O&&(_=c(O.call(new t)))!==Object.prototype&&_.next&&(u(_,w,!0),n||"function"==typeof _[d]||r(_,d,h)),S&&M&&"values"!==M.name&&(T=!0,P=function(){return M.call(this)}),n&&!y||!f&&!T&&k[d]||r(k,d,P),a[e]=P,a[w]=h,v)if(b={values:S?P:x("values"),keys:m?P:x("keys"),entries:C},y)for(g in b)g in k||s(k,g,b[g]);else o(o.P+o.F*(f||T),e,b);return b}},function(t,e,i){t.exports=i(21)},function(t,e,i){var n=i(22),o=i(131),s=i(53),r=i(51)("IE_PROTO"),a=function(){},l=function(){var t,e=i(73)("iframe"),n=s.length;for(e.style.display="none",i(132).appendChild(e),e.src="javascript:",t=e.contentWindow.document,t.open(),t.write(" - - - - - - - - - - -

    jQuery miniColors v0.1

    -

    - A miniature color selector for input elements. -

    - -
    - -

    - Default
    -

    - -

    - Black theme (set class="black" on the input element)
    - -

    - -

    - Preset value (set value attribute on the input element)
    - -

    - -

    - Attached to a hidden input
    - -

    - - - -

    - Select an action to apply to all of the controls on this page: -
    - -
    - -
    - -
    - -

    - - - - diff --git a/src/main/resources/static/js/jquery.miniColors-0.1/jquery.miniColors.css b/src/main/resources/static/js/jquery.miniColors-0.1/jquery.miniColors.css deleted file mode 100644 index 0ba1976..0000000 --- a/src/main/resources/static/js/jquery.miniColors-0.1/jquery.miniColors.css +++ /dev/null @@ -1,65 +0,0 @@ -.miniColors-trigger { - height: 22px; - width: 22px; - background: url(images/trigger.png) center no-repeat; - vertical-align: middle; - margin: 0 .25em; - display: inline-block; - outline: none; -} - -.miniColors-selector { - position: absolute; - width: 175px; - height: 150px; - background: #FFF; - border: solid 1px #BBB; - -moz-box-shadow: 0 0 6px rgba(0, 0, 0, .25); - -webkit-box-shadow: 0 0 6px rgba(0, 0, 0, .25); - box-shadow: 0 0 6px rgba(0, 0, 0, .25); - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - border-radius: 5px; - padding: 5px; - z-index: 999999; -} - -.miniColors-selector.black { - background: #000; - border-color: #000; -} - -.miniColors-colors { - position: absolute; - top: 5px; - left: 5px; - width: 150px; - height: 150px; - background: url(images/gradient.png) center no-repeat; - cursor: crosshair; -} - -.miniColors-hues { - position: absolute; - top: 5px; - left: 160px; - width: 20px; - height: 150px; - background: url(images/rainbow.png) center no-repeat; - cursor: crosshair; -} - -.miniColors-colorPicker { - position: absolute; - width: 11px; - height: 11px; - background: url(images/circle.gif) center no-repeat; -} - -.miniColors-huePicker { - position: absolute; - left: -3px; - width: 26px; - height: 3px; - background: url(images/line.gif) center no-repeat; -} \ No newline at end of file diff --git a/src/main/resources/static/js/jquery.miniColors-0.1/jquery.miniColors.js b/src/main/resources/static/js/jquery.miniColors-0.1/jquery.miniColors.js deleted file mode 100644 index 2b4fbbf..0000000 --- a/src/main/resources/static/js/jquery.miniColors-0.1/jquery.miniColors.js +++ /dev/null @@ -1,647 +0,0 @@ -/* - * jQuery miniColors: A small color selector - * - * Copyright 2011 Cory LaViska for A Beautiful Site, LLC. (http://abeautifulsite.net/) - * - * Dual licensed under the MIT or GPL Version 2 licenses - * - * - * Usage: - * - * 1. Link to jQuery: - * - * 2. Link to miniColors: - * - * 3. Include miniColors stylesheet: - * - * 4. Apply $([selector]).miniColors() to one or more INPUT elements - * - * - * Options: - * - * disabled [true|false] - * readonly [true|false] - * - * - * Specify options on creation: - * - * $([selector]).miniColors({ - * - * optionName: value, - * optionName: value, - * ... - * - * }); - * - * - * Methods: - * - * Call a method using: $([selector]).miniColors('methodName', [value]); - * - * disabled [true|false] - * readonly [true|false] - * value [hex value] - * destroy - * - * - * Events: - * - * Attach events on creation: - * - * $([selector]).miniColors({ - * - * change: function(hex, rgb) { ... } - * - * }); - * - * change(hex, rgb) called when the color value changes; 'this' will refer to the original input element; - * hex is the string hex value of the selected color; rgb is an object with the RGB values - * - * - * Change log: - * - * - v0.1 (2011-02-24) - Initial release - * - * - * Attribution: - * - * - The color picker icon is based on an icon from the amazing Fugue icon set: - * http://p.yusukekamiyamane.com/ - * - * - The gradient image, the hue image, and the math functions are courtesy of - * the eyecon.co jQuery color picker: http://www.eyecon.ro/colorpicker/ - * - * -*/ -if(jQuery) (function($) { - - $.extend($.fn, { - - miniColors: function(o, data) { - - - var create = function(input, o, data) { - - // - // Creates a new instance of the miniColors selector - // - - // Determine initial color (defaults to white) - var color = cleanHex(input.val()); - if( !color ) color = 'FFFFFF'; - var hsb = hex2hsb(color); - - // Create trigger - var trigger = $('
    '); - trigger.insertAfter(input); - - // Add necessary attributes - input.addClass('miniColors').attr('maxlength', 7).attr('autocomplete', 'off'); - - // Set input data - input.data('trigger', trigger); - input.data('hsb', hsb); - if( o.change ) input.data('change', o.change); - - // Handle options - if( o.readonly ) input.attr('readonly', true); - if( o.disabled ) disable(input); - - // Show selector when trigger is clicked - trigger.bind('click.miniColors', function(event) { - event.preventDefault(); - input.trigger('focus'); - }); - - // Show selector when input receives focus - input.bind('focus.miniColors', function(event) { - show(input); - }); - - // Hide on blur - input.bind('blur.miniColors', function(event) { - var hex = cleanHex(input.val()); - input.val( hex ? '#' + hex : '' ); - }); - - // Hide when tabbing out of the input - input.bind('keydown.miniColors', function(event) { - if( event.keyCode === 9 ) hide(input); - }); - - // Update when color is typed in - input.bind('keyup.miniColors', function(event) { - // Remove non-hex characters - var filteredHex = input.val().replace(/[^A-F0-9#]/ig, ''); - input.val(filteredHex); - if( !setColorFromInput(input) ) { - // Reset trigger color when color is invalid - input.data('trigger').css('backgroundColor', '#FFF'); - } - }); - - // Handle pasting - input.bind('paste.miniColors', function(event) { - // Short pause to wait for paste to complete - setTimeout( function() { - input.trigger('keyup'); - }, 5); - }); - - }; - - - var destroy = function(input) { - - // - // Destroys an active instance of the miniColors selector - // - - hide(); - - input = $(input); - input.data('trigger').remove(); - input.removeAttr('autocomplete'); - input.removeData('trigger'); - input.removeData('selector'); - input.removeData('hsb'); - input.removeData('huePicker'); - input.removeData('colorPicker'); - input.removeData('mousebutton'); - input.removeData('moving'); - input.unbind('click.miniColors'); - input.unbind('focus.miniColors'); - input.unbind('blur.miniColors'); - input.unbind('keyup.miniColors'); - input.unbind('keydown.miniColors'); - input.unbind('paste.miniColors'); - $(document).unbind('mousedown.miniColors'); - $(document).unbind('mousemove.miniColors'); - - }; - - - var enable = function(input) { - - // - // Disables the input control and the selector - // - - input.attr('disabled', false); - input.data('trigger').css('opacity', 1); - - }; - - - var disable = function(input) { - - // - // Disables the input control and the selector - // - - hide(input); - input.attr('disabled', true); - input.data('trigger').css('opacity', .5); - - }; - - - var show = function(input) { - - // - // Shows the miniColors selector - // - - if( input.attr('disabled') ) return false; - - // Hide all other instances - hide(); - - // Generate the selector - var selector = $('
    '); - selector.append('
    '); - selector.append('
    '); - selector.css({ - top: input.is(':visible') ? input.offset().top + input.outerHeight() : input.data('trigger').offset().top + input.data('trigger').outerHeight(), - left: input.is(':visible') ? input.offset().left : input.data('trigger').offset().left, - display: 'none' - }).addClass( input.attr('class') ); - - // Set background for colors - var hsb = input.data('hsb'); - selector.find('.miniColors-colors').css('backgroundColor', '#' + hsb2hex({ h: hsb.h, s: 100, b: 100 })); - - // Set colorPicker position - var colorPosition = input.data('colorPosition'); - if( !colorPosition ) colorPosition = getColorPositionFromHSB(hsb); - selector.find('.miniColors-colorPicker').css('top', colorPosition.y + 'px').css('left', colorPosition.x + 'px'); - - // Set huePicker position - var huePosition = input.data('huePosition'); - if( !huePosition ) huePosition = getHuePositionFromHSB(hsb); - selector.find('.miniColors-huePicker').css('top', huePosition.y + 'px'); - - - // Set input data - input.data('selector', selector); - input.data('huePicker', selector.find('.miniColors-huePicker')); - input.data('colorPicker', selector.find('.miniColors-colorPicker')); - input.data('mousebutton', 0); - - $('BODY').append(selector); - selector.fadeIn(100); - - // Prevent text selection in IE - selector.bind('selectstart', function() { return false; }); - - $(document).bind('mousedown.miniColors', function(event) { - input.data('mousebutton', 1); - - if( $(event.target).parents().andSelf().hasClass('miniColors-colors') ) { - event.preventDefault(); - input.data('moving', 'colors'); - moveColor(input, event); - } - - if( $(event.target).parents().andSelf().hasClass('miniColors-hues') ) { - event.preventDefault(); - input.data('moving', 'hues'); - moveHue(input, event); - } - - if( $(event.target).parents().andSelf().hasClass('miniColors-selector') ) { - event.preventDefault(); - return; - } - - if( $(event.target).parents().andSelf().hasClass('miniColors') ) return; - - hide(input); - }); - - $(document).bind('mouseup.miniColors', function(event) { - input.data('mousebutton', 0); - input.removeData('moving'); - }); - - $(document).bind('mousemove.miniColors', function(event) { - if( input.data('mousebutton') === 1 ) { - if( input.data('moving') === 'colors' ) moveColor(input, event); - if( input.data('moving') === 'hues' ) moveHue(input, event); - } - }); - - }; - - - var hide = function(input) { - - // - // Hides one or more miniColors selectors - // - - // Hide all other instances if input isn't specified - if( !input ) input = '.miniColors'; - - $(input).each( function() { - var selector = $(this).data('selector'); - $(this).removeData('selector'); - $(selector).fadeOut(100, function() { - $(this).remove(); - }); - }); - - $(document).unbind('mousedown.miniColors'); - $(document).unbind('mousemove.miniColors'); - - }; - - - var moveColor = function(input, event) { - - var colorPicker = input.data('colorPicker'); - - colorPicker.hide(); - - var position = { - x: event.clientX - input.data('selector').find('.miniColors-colors').offset().left + $(document).scrollLeft() - 5, - y: event.clientY - input.data('selector').find('.miniColors-colors').offset().top + $(document).scrollTop() - 5 - }; - - if( position.x <= -5 ) position.x = -5; - if( position.x >= 144 ) position.x = 144; - if( position.y <= -5 ) position.y = -5; - if( position.y >= 144 ) position.y = 144; - input.data('colorPosition', position); - colorPicker.css('left', position.x).css('top', position.y).show(); - - // Calculate saturation - var s = Math.round((position.x + 5) * .67); - if( s < 0 ) s = 0; - if( s > 100 ) s = 100; - - // Calculate brightness - var b = 100 - Math.round((position.y + 5) * .67); - if( b < 0 ) b = 0; - if( b > 100 ) b = 100; - - // Update HSB values - var hsb = input.data('hsb'); - hsb.s = s; - hsb.b = b; - - // Set color - setColor(input, hsb, true); - - }; - - - var moveHue = function(input, event) { - - var huePicker = input.data('huePicker'); - - huePicker.hide(); - - var position = { - y: event.clientY - input.data('selector').find('.miniColors-colors').offset().top + $(document).scrollTop() - 1 - }; - - if( position.y <= -1 ) position.y = -1; - if( position.y >= 149 ) position.y = 149; - input.data('huePosition', position); - huePicker.css('top', position.y).show(); - - // Calculate hue - var h = Math.round((150 - position.y - 1) * 2.4); - if( h < 0 ) h = 0; - if( h > 360 ) h = 360; - - // Update HSB values - var hsb = input.data('hsb'); - hsb.h = h; - - // Set color - setColor(input, hsb, true); - - }; - - - var setColor = function(input, hsb, updateInputValue) { - - input.data('hsb', hsb); - var hex = hsb2hex(hsb); - if( updateInputValue ) input.val('#' + hex); - input.data('trigger').css('backgroundColor', '#' + hex); - if( input.data('selector') ) input.data('selector').find('.miniColors-colors').css('backgroundColor', '#' + hsb2hex({ h: hsb.h, s: 100, b: 100 })); - - if( input.data('change') ) { - input.data('change').call(input, '#' + hex, hsb2rgb(hsb)); - } - - }; - - - var setColorFromInput = function(input) { - - // Don't update if the hex color is invalid - var hex = cleanHex(input.val()); - if( !hex ) return false; - - // Get HSB equivalent - var hsb = hex2hsb(hex); - - // If color is the same, no change required - var currentHSB = input.data('hsb'); - if( hsb.h === currentHSB.h && hsb.s === currentHSB.s && hsb.b === currentHSB.b ) return true; - - // Set colorPicker position - var colorPosition = getColorPositionFromHSB(hsb); - var colorPicker = $(input.data('colorPicker')); - colorPicker.css('top', colorPosition.y + 'px').css('left', colorPosition.x + 'px'); - - // Set huePosition position - var huePosition = getHuePositionFromHSB(hsb); - var huePicker = $(input.data('huePicker')); - huePicker.css('top', huePosition.y + 'px'); - - setColor(input, hsb, false); - - return true; - - }; - - - var getColorPositionFromHSB = function(hsb) { - - var x = Math.ceil(hsb.s / .67); - if( x < 0 ) x = 0; - if( x > 150 ) x = 150; - - var y = 150 - Math.ceil(hsb.b / .67); - if( y < 0 ) y = 0; - if( y > 150 ) y = 150; - - return { x: x - 5, y: y - 5 }; - - } - - - var getHuePositionFromHSB = function(hsb) { - - var y = 150 - (hsb.h / 2.4); - if( y < 0 ) h = 0; - if( y > 150 ) h = 150; - - return { y: y - 1 }; - - } - - - var cleanHex = function(hex) { - - // - // Turns a dirty hex string into clean, 6-character hex color - // - - hex = hex.replace(/[^A-Fa-f0-9]/, ''); - - if( hex.length == 3 ) { - hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2]; - } - - return hex.length === 6 ? hex : null; - - }; - - - var hsb2rgb = function(hsb) { - var rgb = {}; - var h = Math.round(hsb.h); - var s = Math.round(hsb.s*255/100); - var v = Math.round(hsb.b*255/100); - if(s == 0) { - rgb.r = rgb.g = rgb.b = v; - } else { - var t1 = v; - var t2 = (255 - s) * v / 255; - var t3 = (t1 - t2) * (h % 60) / 60; - if( h == 360 ) h = 0; - if( h < 60 ) { rgb.r = t1; rgb.b = t2; rgb.g = t2 + t3; } - else if( h<120 ) {rgb.g = t1; rgb.b = t2; rgb.r = t1 - t3; } - else if( h<180 ) {rgb.g = t1; rgb.r = t2; rgb.b = t2 + t3; } - else if( h<240 ) {rgb.b = t1; rgb.r = t2; rgb.g = t1 - t3; } - else if( h<300 ) {rgb.b = t1; rgb.g = t2; rgb.r = t2 + t3; } - else if( h<360 ) {rgb.r = t1; rgb.g = t2; rgb.b = t1 - t3; } - else { rgb.r = 0; rgb.g = 0; rgb.b = 0; } - } - return { - r: Math.round(rgb.r), - g: Math.round(rgb.g), - b: Math.round(rgb.b) - }; - }; - - - var rgb2hex = function(rgb) { - - var hex = [ - rgb.r.toString(16), - rgb.g.toString(16), - rgb.b.toString(16) - ]; - $.each(hex, function(nr, val) { - if (val.length == 1) hex[nr] = '0' + val; - }); - - return hex.join(''); - }; - - - var hex2rgb = function(hex) { - var hex = parseInt(((hex.indexOf('#') > -1) ? hex.substring(1) : hex), 16); - - return { - r: hex >> 16, - g: (hex & 0x00FF00) >> 8, - b: (hex & 0x0000FF) - }; - }; - - - var rgb2hsb = function(rgb) { - var hsb = { h: 0, s: 0, b: 0 }; - var min = Math.min(rgb.r, rgb.g, rgb.b); - var max = Math.max(rgb.r, rgb.g, rgb.b); - var delta = max - min; - hsb.b = max; - hsb.s = max != 0 ? 255 * delta / max : 0; - if( hsb.s != 0 ) { - if( rgb.r == max ) { - hsb.h = (rgb.g - rgb.b) / delta; - } else if( rgb.g == max ) { - hsb.h = 2 + (rgb.b - rgb.r) / delta; - } else { - hsb.h = 4 + (rgb.r - rgb.g) / delta; - } - } else { - hsb.h = -1; - } - hsb.h *= 60; - if( hsb.h < 0 ) { - hsb.h += 360; - } - hsb.s *= 100/255; - hsb.b *= 100/255; - return hsb; - }; - - - var hex2hsb = function(hex) { - var hsb = rgb2hsb(hex2rgb(hex)); - // Zero out hue marker for black, white, and grays (saturation === 0) - if( hsb.s === 0 ) hsb.h = 360; - return hsb; - }; - - - var hsb2hex = function(hsb) { - return rgb2hex(hsb2rgb(hsb)); - }; - - - // - // Handle calls to $([selector]).miniColors() - // - switch(o) { - - case 'readonly': - - $(this).each( function() { - $(this).attr('readonly', data); - }); - - return $(this); - - break; - - case 'disabled': - - $(this).each( function() { - if( data ) { - disable($(this)); - } else { - enable($(this)); - } - }); - - return $(this); - - case 'value': - - $(this).each( function() { - $(this).val(data).trigger('keyup'); - }); - - return $(this); - - break; - - case 'destroy': - - $(this).each( function() { - destroy($(this)); - }); - - return $(this); - - default: - - if( !o ) o = {}; - - $(this).each( function() { - - // Must be called on an input element - if( $(this)[0].tagName.toLowerCase() !== 'input' ) return; - - // If a trigger is present, the control was already created - if( $(this).data('trigger') ) return; - - // Create the control - create($(this), o, data); - - }); - - return $(this); - - } - - - } - - - }); - -})(jQuery); - - - diff --git a/src/main/resources/static/js/jquery.miniColors-0.1/jquery.miniColors.min.js b/src/main/resources/static/js/jquery.miniColors-0.1/jquery.miniColors.min.js deleted file mode 100644 index 6972934..0000000 --- a/src/main/resources/static/js/jquery.miniColors-0.1/jquery.miniColors.min.js +++ /dev/null @@ -1,16 +0,0 @@ -if(jQuery)(function($){$.extend($.fn,{miniColors:function(o,data){var create=function(input,o,data){var color=cleanHex(input.val());if(!color)color='FFFFFF';var hsb=hex2hsb(color);var trigger=$('');trigger.insertAfter(input);input.addClass('miniColors').attr('maxlength',7).attr('autocomplete','off');input.data('trigger',trigger);input.data('hsb',hsb);if(o.change)input.data('change',o.change);if(o.readonly)input.attr('readonly',true);if(o.disabled)disable(input);trigger.bind('click.miniColors',function(event){event.preventDefault();input.trigger('focus');});input.bind('focus.miniColors',function(event){show(input);});input.bind('blur.miniColors',function(event){var hex=cleanHex(input.val());input.val(hex?'#'+hex:'');});input.bind('keydown.miniColors',function(event){if(event.keyCode===9)hide(input);});input.bind('keyup.miniColors',function(event){var filteredHex=input.val().replace(/[^A-F0-9#]/ig,'');input.val(filteredHex);if(!setColorFromInput(input)){input.data('trigger').css('backgroundColor','#FFF');}});input.bind('paste.miniColors',function(event){setTimeout(function(){input.trigger('keyup');},5);});};var destroy=function(input){hide();input=$(input);input.data('trigger').remove();input.removeAttr('autocomplete');input.removeData('trigger');input.removeData('selector');input.removeData('hsb');input.removeData('huePicker');input.removeData('colorPicker');input.removeData('mousebutton');input.removeData('moving');input.unbind('click.miniColors');input.unbind('focus.miniColors');input.unbind('blur.miniColors');input.unbind('keyup.miniColors');input.unbind('keydown.miniColors');input.unbind('paste.miniColors');$(document).unbind('mousedown.miniColors');$(document).unbind('mousemove.miniColors');};var enable=function(input){input.attr('disabled',false);input.data('trigger').css('opacity',1);};var disable=function(input){hide(input);input.attr('disabled',true);input.data('trigger').css('opacity',.5);};var show=function(input){if(input.attr('disabled'))return false;hide();var selector=$('
    ');selector.append('
    ');selector.append('
    ');selector.css({top:input.is(':visible')?input.offset().top+input.outerHeight():input.data('trigger').offset().top+input.data('trigger').outerHeight(),left:input.is(':visible')?input.offset().left:input.data('trigger').offset().left,display:'none'}).addClass(input.attr('class'));var hsb=input.data('hsb');selector.find('.miniColors-colors').css('backgroundColor','#'+hsb2hex({h:hsb.h,s:100,b:100}));var colorPosition=input.data('colorPosition');if(!colorPosition)colorPosition=getColorPositionFromHSB(hsb);selector.find('.miniColors-colorPicker').css('top',colorPosition.y+'px').css('left',colorPosition.x+'px');var huePosition=input.data('huePosition');if(!huePosition)huePosition=getHuePositionFromHSB(hsb);selector.find('.miniColors-huePicker').css('top',huePosition.y+'px');input.data('selector',selector);input.data('huePicker',selector.find('.miniColors-huePicker'));input.data('colorPicker',selector.find('.miniColors-colorPicker'));input.data('mousebutton',0);$('BODY').append(selector);selector.fadeIn(100);selector.bind('selectstart',function(){return false;});$(document).bind('mousedown.miniColors',function(event){input.data('mousebutton',1);if($(event.target).parents().andSelf().hasClass('miniColors-colors')){event.preventDefault();input.data('moving','colors');moveColor(input,event);} -if($(event.target).parents().andSelf().hasClass('miniColors-hues')){event.preventDefault();input.data('moving','hues');moveHue(input,event);} -if($(event.target).parents().andSelf().hasClass('miniColors-selector')){event.preventDefault();return;} -if($(event.target).parents().andSelf().hasClass('miniColors'))return;hide(input);});$(document).bind('mouseup.miniColors',function(event){input.data('mousebutton',0);input.removeData('moving');});$(document).bind('mousemove.miniColors',function(event){if(input.data('mousebutton')===1){if(input.data('moving')==='colors')moveColor(input,event);if(input.data('moving')==='hues')moveHue(input,event);}});};var hide=function(input){if(!input)input='.miniColors';$(input).each(function(){var selector=$(this).data('selector');$(this).removeData('selector');$(selector).fadeOut(100,function(){$(this).remove();});});$(document).unbind('mousedown.miniColors');$(document).unbind('mousemove.miniColors');};var moveColor=function(input,event){var colorPicker=input.data('colorPicker');colorPicker.hide();var position={x:event.clientX-input.data('selector').find('.miniColors-colors').offset().left+$(document).scrollLeft()-5,y:event.clientY-input.data('selector').find('.miniColors-colors').offset().top+$(document).scrollTop()-5};if(position.x<=-5)position.x=-5;if(position.x>=144)position.x=144;if(position.y<=-5)position.y=-5;if(position.y>=144)position.y=144;input.data('colorPosition',position);colorPicker.css('left',position.x).css('top',position.y).show();var s=Math.round((position.x+5)*.67);if(s<0)s=0;if(s>100)s=100;var b=100-Math.round((position.y+5)*.67);if(b<0)b=0;if(b>100)b=100;var hsb=input.data('hsb');hsb.s=s;hsb.b=b;setColor(input,hsb,true);};var moveHue=function(input,event){var huePicker=input.data('huePicker');huePicker.hide();var position={y:event.clientY-input.data('selector').find('.miniColors-colors').offset().top+$(document).scrollTop()-1};if(position.y<=-1)position.y=-1;if(position.y>=149)position.y=149;input.data('huePosition',position);huePicker.css('top',position.y).show();var h=Math.round((150-position.y-1)*2.4);if(h<0)h=0;if(h>360)h=360;var hsb=input.data('hsb');hsb.h=h;setColor(input,hsb,true);};var setColor=function(input,hsb,updateInputValue){input.data('hsb',hsb);var hex=hsb2hex(hsb);if(updateInputValue)input.val('#'+hex);input.data('trigger').css('backgroundColor','#'+hex);if(input.data('selector'))input.data('selector').find('.miniColors-colors').css('backgroundColor','#'+hsb2hex({h:hsb.h,s:100,b:100}));if(input.data('change')){input.data('change').call(input,'#'+hex,hsb2rgb(hsb));}};var setColorFromInput=function(input){var hex=cleanHex(input.val());if(!hex)return false;var hsb=hex2hsb(hex);var currentHSB=input.data('hsb');if(hsb.h===currentHSB.h&&hsb.s===currentHSB.s&&hsb.b===currentHSB.b)return true;var colorPosition=getColorPositionFromHSB(hsb);var colorPicker=$(input.data('colorPicker'));colorPicker.css('top',colorPosition.y+'px').css('left',colorPosition.x+'px');var huePosition=getHuePositionFromHSB(hsb);var huePicker=$(input.data('huePicker'));huePicker.css('top',huePosition.y+'px');setColor(input,hsb,false);return true;};var getColorPositionFromHSB=function(hsb){var x=Math.ceil(hsb.s/.67);if(x<0)x=0;if(x>150)x=150;var y=150-Math.ceil(hsb.b/.67);if(y<0)y=0;if(y>150)y=150;return{x:x-5,y:y-5};} -var getHuePositionFromHSB=function(hsb){var y=150-(hsb.h/2.4);if(y<0)h=0;if(y>150)h=150;return{y:y-1};} -var cleanHex=function(hex){hex=hex.replace(/[^A-Fa-f0-9]/,'');if(hex.length==3){hex=hex[0]+hex[0]+hex[1]+hex[1]+hex[2]+hex[2];} -return hex.length===6?hex:null;};var hsb2rgb=function(hsb){var rgb={};var h=Math.round(hsb.h);var s=Math.round(hsb.s*255/100);var v=Math.round(hsb.b*255/100);if(s==0){rgb.r=rgb.g=rgb.b=v;}else{var t1=v;var t2=(255-s)*v/255;var t3=(t1-t2)*(h%60)/60;if(h==360)h=0;if(h<60){rgb.r=t1;rgb.b=t2;rgb.g=t2+t3;} -else if(h<120){rgb.g=t1;rgb.b=t2;rgb.r=t1-t3;} -else if(h<180){rgb.g=t1;rgb.r=t2;rgb.b=t2+t3;} -else if(h<240){rgb.b=t1;rgb.r=t2;rgb.g=t1-t3;} -else if(h<300){rgb.b=t1;rgb.g=t2;rgb.r=t2+t3;} -else if(h<360){rgb.r=t1;rgb.g=t2;rgb.b=t1-t3;} -else{rgb.r=0;rgb.g=0;rgb.b=0;}} -return{r:Math.round(rgb.r),g:Math.round(rgb.g),b:Math.round(rgb.b)};};var rgb2hex=function(rgb){var hex=[rgb.r.toString(16),rgb.g.toString(16),rgb.b.toString(16)];$.each(hex,function(nr,val){if(val.length==1)hex[nr]='0'+val;});return hex.join('');};var hex2rgb=function(hex){var hex=parseInt(((hex.indexOf('#')>-1)?hex.substring(1):hex),16);return{r:hex>>16,g:(hex&0x00FF00)>>8,b:(hex&0x0000FF)};};var rgb2hsb=function(rgb){var hsb={h:0,s:0,b:0};var min=Math.min(rgb.r,rgb.g,rgb.b);var max=Math.max(rgb.r,rgb.g,rgb.b);var delta=max-min;hsb.b=max;hsb.s=max!=0?255*delta/max:0;if(hsb.s!=0){if(rgb.r==max){hsb.h=(rgb.g-rgb.b)/delta;}else if(rgb.g==max){hsb.h=2+(rgb.b-rgb.r)/delta;}else{hsb.h=4+(rgb.r-rgb.g)/delta;}}else{hsb.h=-1;} -hsb.h*=60;if(hsb.h<0){hsb.h+=360;} -hsb.s*=100/255;hsb.b*=100/255;return hsb;};var hex2hsb=function(hex){var hsb=rgb2hsb(hex2rgb(hex));if(hsb.s===0)hsb.h=360;return hsb;};var hsb2hex=function(hsb){return rgb2hex(hsb2rgb(hsb));};switch(o){case'readonly':$(this).each(function(){$(this).attr('readonly',data);});return $(this);break;case'disabled':$(this).each(function(){if(data){disable($(this));}else{enable($(this));}});return $(this);case'value':$(this).each(function(){$(this).val(data).trigger('keyup');});return $(this);break;case'destroy':$(this).each(function(){destroy($(this));});return $(this);default:if(!o)o={};$(this).each(function(){if($(this)[0].tagName.toLowerCase()!=='input')return;if($(this).data('trigger'))return;create($(this),o,data);});return $(this);}}});})(jQuery); \ No newline at end of file diff --git a/src/main/resources/static/js/jquery.validate.min.js b/src/main/resources/static/js/jquery.validate.min.js deleted file mode 100644 index 010f57c..0000000 --- a/src/main/resources/static/js/jquery.validate.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&module.exports?module.exports=t(require("jquery")):t(jQuery)}(function(t){t.extend(t.fn,{validate:function(e){if(!this.length)return void(e&&e.debug&&window.console&&console.warn("Nothing selected, can't validate, returning nothing."));var i=t.data(this[0],"validator");return i?i:(this.attr("novalidate","novalidate"),i=new t.validator(e,this[0]),t.data(this[0],"validator",i),i.settings.onsubmit&&(this.on("click.validate",":submit",function(e){i.settings.submitHandler&&(i.submitButton=e.target),t(this).hasClass("cancel")&&(i.cancelSubmit=!0),void 0!==t(this).attr("formnovalidate")&&(i.cancelSubmit=!0)}),this.on("submit.validate",function(e){function s(){var s,r;return i.settings.submitHandler?(i.submitButton&&(s=t("").attr("name",i.submitButton.name).val(t(i.submitButton).val()).appendTo(i.currentForm)),r=i.settings.submitHandler.call(i,i.currentForm,e),i.submitButton&&s.remove(),void 0!==r?r:!1):!0}return i.settings.debug&&e.preventDefault(),i.cancelSubmit?(i.cancelSubmit=!1,s()):i.form()?i.pendingRequest?(i.formSubmitted=!0,!1):s():(i.focusInvalid(),!1)})),i)},valid:function(){var e,i,s;return t(this[0]).is("form")?e=this.validate().form():(s=[],e=!0,i=t(this[0].form).validate(),this.each(function(){e=i.element(this)&&e,e||(s=s.concat(i.errorList))}),i.errorList=s),e},rules:function(e,i){var s,r,n,a,o,l,h=this[0];if(null!=h&&null!=h.form){if(e)switch(s=t.data(h.form,"validator").settings,r=s.rules,n=t.validator.staticRules(h),e){case"add":t.extend(n,t.validator.normalizeRule(i)),delete n.messages,r[h.name]=n,i.messages&&(s.messages[h.name]=t.extend(s.messages[h.name],i.messages));break;case"remove":return i?(l={},t.each(i.split(/\s/),function(e,i){l[i]=n[i],delete n[i],"required"===i&&t(h).removeAttr("aria-required")}),l):(delete r[h.name],n)}return a=t.validator.normalizeRules(t.extend({},t.validator.classRules(h),t.validator.attributeRules(h),t.validator.dataRules(h),t.validator.staticRules(h)),h),a.required&&(o=a.required,delete a.required,a=t.extend({required:o},a),t(h).attr("aria-required","true")),a.remote&&(o=a.remote,delete a.remote,a=t.extend(a,{remote:o})),a}}}),t.extend(t.expr[":"],{blank:function(e){return!t.trim(""+t(e).val())},filled:function(e){var i=t(e).val();return null!==i&&!!t.trim(""+i)},unchecked:function(e){return!t(e).prop("checked")}}),t.validator=function(e,i){this.settings=t.extend(!0,{},t.validator.defaults,e),this.currentForm=i,this.init()},t.validator.format=function(e,i){return 1===arguments.length?function(){var i=t.makeArray(arguments);return i.unshift(e),t.validator.format.apply(this,i)}:void 0===i?e:(arguments.length>2&&i.constructor!==Array&&(i=t.makeArray(arguments).slice(1)),i.constructor!==Array&&(i=[i]),t.each(i,function(t,i){e=e.replace(new RegExp("\\{"+t+"\\}","g"),function(){return i})}),e)},t.extend(t.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error",pendingClass:"pending",validClass:"valid",errorElement:"label",focusCleanup:!1,focusInvalid:!0,errorContainer:t([]),errorLabelContainer:t([]),onsubmit:!0,ignore:":hidden",ignoreTitle:!1,onfocusin:function(t){this.lastActive=t,this.settings.focusCleanup&&(this.settings.unhighlight&&this.settings.unhighlight.call(this,t,this.settings.errorClass,this.settings.validClass),this.hideThese(this.errorsFor(t)))},onfocusout:function(t){this.checkable(t)||!(t.name in this.submitted)&&this.optional(t)||this.element(t)},onkeyup:function(e,i){var s=[16,17,18,20,35,36,37,38,39,40,45,144,225];9===i.which&&""===this.elementValue(e)||-1!==t.inArray(i.keyCode,s)||(e.name in this.submitted||e.name in this.invalid)&&this.element(e)},onclick:function(t){t.name in this.submitted?this.element(t):t.parentNode.name in this.submitted&&this.element(t.parentNode)},highlight:function(e,i,s){"radio"===e.type?this.findByName(e.name).addClass(i).removeClass(s):t(e).addClass(i).removeClass(s)},unhighlight:function(e,i,s){"radio"===e.type?this.findByName(e.name).removeClass(i).addClass(s):t(e).removeClass(i).addClass(s)}},setDefaults:function(e){t.extend(t.validator.defaults,e)},messages:{required:"This field is required.",remote:"Please fix this field.",email:"Please enter a valid email address.",url:"Please enter a valid URL.",date:"Please enter a valid date.",dateISO:"Please enter a valid date (ISO).",number:"Please enter a valid number.",digits:"Please enter only digits.",equalTo:"Please enter the same value again.",maxlength:t.validator.format("Please enter no more than {0} characters."),minlength:t.validator.format("Please enter at least {0} characters."),rangelength:t.validator.format("Please enter a value between {0} and {1} characters long."),range:t.validator.format("Please enter a value between {0} and {1}."),max:t.validator.format("Please enter a value less than or equal to {0}."),min:t.validator.format("Please enter a value greater than or equal to {0}."),step:t.validator.format("Please enter a multiple of {0}.")},autoCreateRanges:!1,prototype:{init:function(){function e(e){!this.form&&this.hasAttribute("contenteditable")&&(this.form=t(this).closest("form")[0]);var i=t.data(this.form,"validator"),s="on"+e.type.replace(/^validate/,""),r=i.settings;r[s]&&!t(this).is(r.ignore)&&r[s].call(i,this,e)}this.labelContainer=t(this.settings.errorLabelContainer),this.errorContext=this.labelContainer.length&&this.labelContainer||t(this.currentForm),this.containers=t(this.settings.errorContainer).add(this.settings.errorLabelContainer),this.submitted={},this.valueCache={},this.pendingRequest=0,this.pending={},this.invalid={},this.reset();var i,s=this.groups={};t.each(this.settings.groups,function(e,i){"string"==typeof i&&(i=i.split(/\s/)),t.each(i,function(t,i){s[i]=e})}),i=this.settings.rules,t.each(i,function(e,s){i[e]=t.validator.normalizeRule(s)}),t(this.currentForm).on("focusin.validate focusout.validate keyup.validate",":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], [type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], [type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], [type='radio'], [type='checkbox'], [contenteditable]",e).on("click.validate","select, option, [type='radio'], [type='checkbox']",e),this.settings.invalidHandler&&t(this.currentForm).on("invalid-form.validate",this.settings.invalidHandler),t(this.currentForm).find("[required], [data-rule-required], .required").attr("aria-required","true")},form:function(){return this.checkForm(),t.extend(this.submitted,this.errorMap),this.invalid=t.extend({},this.errorMap),this.valid()||t(this.currentForm).triggerHandler("invalid-form",[this]),this.showErrors(),this.valid()},checkForm:function(){this.prepareForm();for(var t=0,e=this.currentElements=this.elements();e[t];t++)this.check(e[t]);return this.valid()},element:function(e){var i,s,r=this.clean(e),n=this.validationTargetFor(r),a=this,o=!0;return void 0===n?delete this.invalid[r.name]:(this.prepareElement(n),this.currentElements=t(n),s=this.groups[n.name],s&&t.each(this.groups,function(t,e){e===s&&t!==n.name&&(r=a.validationTargetFor(a.clean(a.findByName(t))),r&&r.name in a.invalid&&(a.currentElements.push(r),o=a.check(r)&&o))}),i=this.check(n)!==!1,o=o&&i,this.invalid[n.name]=i?!1:!0,this.numberOfInvalids()||(this.toHide=this.toHide.add(this.containers)),this.showErrors(),t(e).attr("aria-invalid",!i)),o},showErrors:function(e){if(e){var i=this;t.extend(this.errorMap,e),this.errorList=t.map(this.errorMap,function(t,e){return{message:t,element:i.findByName(e)[0]}}),this.successList=t.grep(this.successList,function(t){return!(t.name in e)})}this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:function(){t.fn.resetForm&&t(this.currentForm).resetForm(),this.invalid={},this.submitted={},this.prepareForm(),this.hideErrors();var e=this.elements().removeData("previousValue").removeAttr("aria-invalid");this.resetElements(e)},resetElements:function(t){var e;if(this.settings.unhighlight)for(e=0;t[e];e++)this.settings.unhighlight.call(this,t[e],this.settings.errorClass,""),this.findByName(t[e].name).removeClass(this.settings.validClass);else t.removeClass(this.settings.errorClass).removeClass(this.settings.validClass)},numberOfInvalids:function(){return this.objectLength(this.invalid)},objectLength:function(t){var e,i=0;for(e in t)t[e]&&i++;return i},hideErrors:function(){this.hideThese(this.toHide)},hideThese:function(t){t.not(this.containers).text(""),this.addWrapper(t).hide()},valid:function(){return 0===this.size()},size:function(){return this.errorList.length},focusInvalid:function(){if(this.settings.focusInvalid)try{t(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").focus().trigger("focusin")}catch(e){}},findLastActive:function(){var e=this.lastActive;return e&&1===t.grep(this.errorList,function(t){return t.element.name===e.name}).length&&e},elements:function(){var e=this,i={};return t(this.currentForm).find("input, select, textarea, [contenteditable]").not(":submit, :reset, :image, :disabled").not(this.settings.ignore).filter(function(){var s=this.name||t(this).attr("name");return!s&&e.settings.debug&&window.console&&console.error("%o has no name assigned",this),this.hasAttribute("contenteditable")&&(this.form=t(this).closest("form")[0]),s in i||!e.objectLength(t(this).rules())?!1:(i[s]=!0,!0)})},clean:function(e){return t(e)[0]},errors:function(){var e=this.settings.errorClass.split(" ").join(".");return t(this.settings.errorElement+"."+e,this.errorContext)},resetInternals:function(){this.successList=[],this.errorList=[],this.errorMap={},this.toShow=t([]),this.toHide=t([])},reset:function(){this.resetInternals(),this.currentElements=t([])},prepareForm:function(){this.reset(),this.toHide=this.errors().add(this.containers)},prepareElement:function(t){this.reset(),this.toHide=this.errorsFor(t)},elementValue:function(e){var i,s,r=t(e),n=e.type;return"radio"===n||"checkbox"===n?this.findByName(e.name).filter(":checked").val():"number"===n&&"undefined"!=typeof e.validity?e.validity.badInput?"NaN":r.val():(i=e.hasAttribute("contenteditable")?r.text():r.val(),"file"===n?"C:\\fakepath\\"===i.substr(0,12)?i.substr(12):(s=i.lastIndexOf("/"),s>=0?i.substr(s+1):(s=i.lastIndexOf("\\"),s>=0?i.substr(s+1):i)):"string"==typeof i?i.replace(/\r/g,""):i)},check:function(e){e=this.validationTargetFor(this.clean(e));var i,s,r,n=t(e).rules(),a=t.map(n,function(t,e){return e}).length,o=!1,l=this.elementValue(e);if("function"==typeof n.normalizer){if(l=n.normalizer.call(e,l),"string"!=typeof l)throw new TypeError("The normalizer should return a string value.");delete n.normalizer}for(s in n){r={method:s,parameters:n[s]};try{if(i=t.validator.methods[s].call(this,l,e,r.parameters),"dependency-mismatch"===i&&1===a){o=!0;continue}if(o=!1,"pending"===i)return void(this.toHide=this.toHide.not(this.errorsFor(e)));if(!i)return this.formatAndAdd(e,r),!1}catch(h){throw this.settings.debug&&window.console&&console.log("Exception occurred when checking element "+e.id+", check the '"+r.method+"' method.",h),h instanceof TypeError&&(h.message+=". Exception occurred when checking element "+e.id+", check the '"+r.method+"' method."),h}}if(!o)return this.objectLength(n)&&this.successList.push(e),!0},customDataMessage:function(e,i){return t(e).data("msg"+i.charAt(0).toUpperCase()+i.substring(1).toLowerCase())||t(e).data("msg")},customMessage:function(t,e){var i=this.settings.messages[t];return i&&(i.constructor===String?i:i[e])},findDefined:function(){for(var t=0;tWarning: No message defined for "+e.name+""),r=/\$?\{(\d+)\}/g;return"function"==typeof s?s=s.call(this,i.parameters,e):r.test(s)&&(s=t.validator.format(s.replace(r,"{$1}"),i.parameters)),s},formatAndAdd:function(t,e){var i=this.defaultMessage(t,e);this.errorList.push({message:i,element:t,method:e.method}),this.errorMap[t.name]=i,this.submitted[t.name]=i},addWrapper:function(t){return this.settings.wrapper&&(t=t.add(t.parent(this.settings.wrapper))),t},defaultShowErrors:function(){var t,e,i;for(t=0;this.errorList[t];t++)i=this.errorList[t],this.settings.highlight&&this.settings.highlight.call(this,i.element,this.settings.errorClass,this.settings.validClass),this.showLabel(i.element,i.message);if(this.errorList.length&&(this.toShow=this.toShow.add(this.containers)),this.settings.success)for(t=0;this.successList[t];t++)this.showLabel(this.successList[t]);if(this.settings.unhighlight)for(t=0,e=this.validElements();e[t];t++)this.settings.unhighlight.call(this,e[t],this.settings.errorClass,this.settings.validClass);this.toHide=this.toHide.not(this.toShow),this.hideErrors(),this.addWrapper(this.toShow).show()},validElements:function(){return this.currentElements.not(this.invalidElements())},invalidElements:function(){return t(this.errorList).map(function(){return this.element})},showLabel:function(e,i){var s,r,n,a,o=this.errorsFor(e),l=this.idOrName(e),h=t(e).attr("aria-describedby");o.length?(o.removeClass(this.settings.validClass).addClass(this.settings.errorClass),o.html(i)):(o=t("<"+this.settings.errorElement+">").attr("id",l+"-error").addClass(this.settings.errorClass).html(i||""),s=o,this.settings.wrapper&&(s=o.hide().show().wrap("<"+this.settings.wrapper+"/>").parent()),this.labelContainer.length?this.labelContainer.append(s):this.settings.errorPlacement?this.settings.errorPlacement.call(this,s,t(e)):s.insertAfter(e),o.is("label")?o.attr("for",l):0===o.parents("label[for='"+this.escapeCssMeta(l)+"']").length&&(n=o.attr("id"),h?h.match(new RegExp("\\b"+this.escapeCssMeta(n)+"\\b"))||(h+=" "+n):h=n,t(e).attr("aria-describedby",h),r=this.groups[e.name],r&&(a=this,t.each(a.groups,function(e,i){i===r&&t("[name='"+a.escapeCssMeta(e)+"']",a.currentForm).attr("aria-describedby",o.attr("id"))})))),!i&&this.settings.success&&(o.text(""),"string"==typeof this.settings.success?o.addClass(this.settings.success):this.settings.success(o,e)),this.toShow=this.toShow.add(o)},errorsFor:function(e){var i=this.escapeCssMeta(this.idOrName(e)),s=t(e).attr("aria-describedby"),r="label[for='"+i+"'], label[for='"+i+"'] *";return s&&(r=r+", #"+this.escapeCssMeta(s).replace(/\s+/g,", #")),this.errors().filter(r)},escapeCssMeta:function(t){return t.replace(/([\\!"#$%&'()*+,./:;<=>?@\[\]^`{|}~])/g,"\\$1")},idOrName:function(t){return this.groups[t.name]||(this.checkable(t)?t.name:t.id||t.name)},validationTargetFor:function(e){return this.checkable(e)&&(e=this.findByName(e.name)),t(e).not(this.settings.ignore)[0]},checkable:function(t){return/radio|checkbox/i.test(t.type)},findByName:function(e){return t(this.currentForm).find("[name='"+this.escapeCssMeta(e)+"']")},getLength:function(e,i){switch(i.nodeName.toLowerCase()){case"select":return t("option:selected",i).length;case"input":if(this.checkable(i))return this.findByName(i.name).filter(":checked").length}return e.length},depend:function(t,e){return this.dependTypes[typeof t]?this.dependTypes[typeof t](t,e):!0},dependTypes:{"boolean":function(t){return t},string:function(e,i){return!!t(e,i.form).length},"function":function(t,e){return t(e)}},optional:function(e){var i=this.elementValue(e);return!t.validator.methods.required.call(this,i,e)&&"dependency-mismatch"},startRequest:function(e){this.pending[e.name]||(this.pendingRequest++,t(e).addClass(this.settings.pendingClass),this.pending[e.name]=!0)},stopRequest:function(e,i){this.pendingRequest--,this.pendingRequest<0&&(this.pendingRequest=0),delete this.pending[e.name],t(e).removeClass(this.settings.pendingClass),i&&0===this.pendingRequest&&this.formSubmitted&&this.form()?(t(this.currentForm).submit(),this.formSubmitted=!1):!i&&0===this.pendingRequest&&this.formSubmitted&&(t(this.currentForm).triggerHandler("invalid-form",[this]),this.formSubmitted=!1)},previousValue:function(e,i){return i="string"==typeof i&&i||"remote",t.data(e,"previousValue")||t.data(e,"previousValue",{old:null,valid:!0,message:this.defaultMessage(e,{method:i})})},destroy:function(){this.resetForm(),t(this.currentForm).off(".validate").removeData("validator").find(".validate-equalTo-blur").off(".validate-equalTo").removeClass("validate-equalTo-blur")}},classRuleSettings:{required:{required:!0},email:{email:!0},url:{url:!0},date:{date:!0},dateISO:{dateISO:!0},number:{number:!0},digits:{digits:!0},creditcard:{creditcard:!0}},addClassRules:function(e,i){e.constructor===String?this.classRuleSettings[e]=i:t.extend(this.classRuleSettings,e)},classRules:function(e){var i={},s=t(e).attr("class");return s&&t.each(s.split(" "),function(){this in t.validator.classRuleSettings&&t.extend(i,t.validator.classRuleSettings[this])}),i},normalizeAttributeRule:function(t,e,i,s){/min|max|step/.test(i)&&(null===e||/number|range|text/.test(e))&&(s=Number(s),isNaN(s)&&(s=void 0)),s||0===s?t[i]=s:e===i&&"range"!==e&&(t[i]=!0)},attributeRules:function(e){var i,s,r={},n=t(e),a=e.getAttribute("type");for(i in t.validator.methods)"required"===i?(s=e.getAttribute(i),""===s&&(s=!0),s=!!s):s=n.attr(i),this.normalizeAttributeRule(r,a,i,s);return r.maxlength&&/-1|2147483647|524288/.test(r.maxlength)&&delete r.maxlength,r},dataRules:function(e){var i,s,r={},n=t(e),a=e.getAttribute("type");for(i in t.validator.methods)s=n.data("rule"+i.charAt(0).toUpperCase()+i.substring(1).toLowerCase()),this.normalizeAttributeRule(r,a,i,s);return r},staticRules:function(e){var i={},s=t.data(e.form,"validator");return s.settings.rules&&(i=t.validator.normalizeRule(s.settings.rules[e.name])||{}),i},normalizeRules:function(e,i){return t.each(e,function(s,r){if(r===!1)return void delete e[s];if(r.param||r.depends){var n=!0;switch(typeof r.depends){case"string":n=!!t(r.depends,i.form).length;break;case"function":n=r.depends.call(i,i)}n?e[s]=void 0!==r.param?r.param:!0:(t.data(i.form,"validator").resetElements(t(i)),delete e[s])}}),t.each(e,function(s,r){e[s]=t.isFunction(r)&&"normalizer"!==s?r(i):r}),t.each(["minlength","maxlength"],function(){e[this]&&(e[this]=Number(e[this]))}),t.each(["rangelength","range"],function(){var i;e[this]&&(t.isArray(e[this])?e[this]=[Number(e[this][0]),Number(e[this][1])]:"string"==typeof e[this]&&(i=e[this].replace(/[\[\]]/g,"").split(/[\s,]+/),e[this]=[Number(i[0]),Number(i[1])]))}),t.validator.autoCreateRanges&&(null!=e.min&&null!=e.max&&(e.range=[e.min,e.max],delete e.min,delete e.max),null!=e.minlength&&null!=e.maxlength&&(e.rangelength=[e.minlength,e.maxlength],delete e.minlength,delete e.maxlength)),e},normalizeRule:function(e){if("string"==typeof e){var i={};t.each(e.split(/\s/),function(){i[this]=!0}),e=i}return e},addMethod:function(e,i,s){t.validator.methods[e]=i,t.validator.messages[e]=void 0!==s?s:t.validator.messages[e],i.length<3&&t.validator.addClassRules(e,t.validator.normalizeRule(e))},methods:{required:function(e,i,s){if(!this.depend(s,i))return"dependency-mismatch";if("select"===i.nodeName.toLowerCase()){var r=t(i).val();return r&&r.length>0}return this.checkable(i)?this.getLength(e,i)>0:e.length>0},email:function(t,e){return this.optional(e)||/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(t)},url:function(t,e){return this.optional(e)||/^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[/?#]\S*)?$/i.test(t)},date:function(t,e){return this.optional(e)||!/Invalid|NaN/.test(new Date(t).toString())},dateISO:function(t,e){return this.optional(e)||/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(t)},number:function(t,e){return this.optional(e)||/^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(t)},digits:function(t,e){return this.optional(e)||/^\d+$/.test(t)},minlength:function(e,i,s){var r=t.isArray(e)?e.length:this.getLength(e,i);return this.optional(i)||r>=s},maxlength:function(e,i,s){var r=t.isArray(e)?e.length:this.getLength(e,i);return this.optional(i)||s>=r},rangelength:function(e,i,s){var r=t.isArray(e)?e.length:this.getLength(e,i);return this.optional(i)||r>=s[0]&&r<=s[1]},min:function(t,e,i){return this.optional(e)||t>=i},max:function(t,e,i){return this.optional(e)||i>=t},range:function(t,e,i){return this.optional(e)||t>=i[0]&&t<=i[1]},step:function(e,i,s){var r,n=t(i).attr("type"),a="Step attribute on input type "+n+" is not supported.",o=["text","number","range"],l=new RegExp("\\b"+n+"\\b"),h=n&&!l.test(o.join()),u=function(t){var e=(""+t).match(/(?:\.(\d+))?$/);return e&&e[1]?e[1].length:0},d=function(t){return Math.round(t*Math.pow(10,r))},c=!0;if(h)throw new Error(a);return r=u(s),(u(e)>r||d(e)%d(s)!==0)&&(c=!1),this.optional(i)||c},equalTo:function(e,i,s){var r=t(s);return this.settings.onfocusout&&r.not(".validate-equalTo-blur").length&&r.addClass("validate-equalTo-blur").on("blur.validate-equalTo",function(){t(i).valid()}),e===r.val()},remote:function(e,i,s,r){if(this.optional(i))return"dependency-mismatch";r="string"==typeof r&&r||"remote";var n,a,o,l=this.previousValue(i,r);return this.settings.messages[i.name]||(this.settings.messages[i.name]={}),l.originalMessage=l.originalMessage||this.settings.messages[i.name][r],this.settings.messages[i.name][r]=l.message,s="string"==typeof s&&{url:s}||s,o=t.param(t.extend({data:e},s.data)),l.old===o?l.valid:(l.old=o,n=this,this.startRequest(i),a={},a[i.name]=e,t.ajax(t.extend(!0,{mode:"abort",port:"validate"+i.name,dataType:"json",data:a,context:n.currentForm,success:function(t){var s,a,o,h=t===!0||"true"===t;n.settings.messages[i.name][r]=l.originalMessage,h?(o=n.formSubmitted,n.resetInternals(),n.toHide=n.errorsFor(i),n.formSubmitted=o,n.successList.push(i),n.invalid[i.name]=!1,n.showErrors()):(s={},a=t||n.defaultMessage(i,{method:r,parameters:e}),s[i.name]=l.message=a,n.invalid[i.name]=!0,n.showErrors(s)),l.valid=h,n.stopRequest(i,h)}},s)),"pending")}}});var e,i={};t.ajaxPrefilter?t.ajaxPrefilter(function(t,e,s){var r=t.port;"abort"===t.mode&&(i[r]&&i[r].abort(),i[r]=s)}):(e=t.ajax,t.ajax=function(s){var r=("mode"in s?s:t.ajaxSettings).mode,n=("port"in s?s:t.ajaxSettings).port;return"abort"===r?(i[n]&&i[n].abort(),i[n]=e.apply(this,arguments),i[n]):e.apply(this,arguments)})}); \ No newline at end of file diff --git a/src/main/resources/static/js/json2.min.js b/src/main/resources/static/js/json2.min.js deleted file mode 100644 index 9ecddae..0000000 --- a/src/main/resources/static/js/json2.min.js +++ /dev/null @@ -1 +0,0 @@ -if(typeof JSON!=="object"){JSON={}}(function(){var rx_one=/^[\],:{}\s]*$/;var rx_two=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g;var rx_three=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g;var rx_four=/(?:^|:|,)(?:\s*\[)+/g;var rx_escapable=/[\\\"\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;var rx_dangerous=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;function f(n){return n<10?"0"+n:n}function this_value(){return this.valueOf()}if(typeof Date.prototype.toJSON!=="function"){Date.prototype.toJSON=function(){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z":null};Boolean.prototype.toJSON=this_value;Number.prototype.toJSON=this_value;String.prototype.toJSON=this_value}var gap;var indent;var meta;var rep;function quote(string){rx_escapable.lastIndex=0;return rx_escapable.test(string)?'"'+string.replace(rx_escapable,function(a){var c=meta[a];return typeof c==="string"?c:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+string+'"'}function str(key,holder){var i;var k;var v;var length;var mind=gap;var partial;var value=holder[key];if(value&&typeof value==="object"&&typeof value.toJSON==="function"){value=value.toJSON(key)}if(typeof rep==="function"){value=rep.call(holder,key,value)}switch(typeof value){case"string":return quote(value);case"number":return isFinite(value)?String(value):"null";case"boolean":case"null":return String(value);case"object":if(!value){return"null"}gap+=indent;partial=[];if(Object.prototype.toString.apply(value)==="[object Array]"){length=value.length;for(i=0;i=0}function o(a,c){c=c||"px";return a&&/^\d+$/.test(a)?a+c:a}function l(a){var c;return a&&(c=/(\d+)/.exec(a))?parseInt(c[1],10):0}function s(a){return a.replace(/&/g,"&").replace(//g,">").replace(/"/g,""")}function v(a){return a.replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/&/g,"&")}function p(a){var c=a.split("-"),a="";h(c,function(c,b){a+=c>0?b.charAt(0).toUpperCase()+ -b.substr(1):b});return a}function r(a){function c(a){a=parseInt(a,10).toString(16).toUpperCase();return a.length>1?a:"0"+a}return a.replace(/rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/ig,function(a,b,d,k){return"#"+c(b)+c(d)+c(k)})}function z(a,c){var c=c===d?",":c,g={},b=f(a)?a:a.split(c),t;h(b,function(a,c){if(t=/^(\d+)\.\.(\d+)$/.exec(c))for(var b=parseInt(t[1],10);b<=parseInt(t[2],10);b++)g[b.toString()]=!0;else g[c]=!0});return g}function D(a,c){return Array.prototype.slice.call(a,c||0)}function q(a, -c){return a===d?c:a}function A(a,c,g){g||(g=c,c=null);var b;if(c){var d=function(){};d.prototype=c.prototype;b=new d;h(g,function(a,c){b[a]=c})}else b=g;b.constructor=a;a.prototype=b;a.parent=c?c.prototype:null}function B(a){var c;if(c=/\{[\s\S]*\}|\[[\s\S]*\]/.exec(a))a=c[0];c=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;c.lastIndex=0;c.test(a)&&(a=a.replace(c,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})); -if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return eval("("+a+")");throw"JSON parse error";}function G(a,c,g){a.addEventListener?a.addEventListener(c,g,fb):a.attachEvent&&a.attachEvent("on"+c,g)}function C(a,c,g){a.removeEventListener?a.removeEventListener(c,g,fb):a.detachEvent&&a.detachEvent("on"+c,g)}function u(a,c){this.init(a,c)}function I(a){try{delete a[ma]}catch(c){a.removeAttribute&& -a.removeAttribute(ma)}}function E(a,c,g){if(c.indexOf(",")>=0)h(c.split(","),function(){E(a,this,g)});else{var b=a[ma]||null;b||(a[ma]=++gb,b=gb);L[b]===d&&(L[b]={});var t=L[b][c];t&&t.length>0?C(a,c,t[0]):(L[b][c]=[],L[b].el=a);t=L[b][c];t.length===0&&(t[0]=function(c){var g=c?new u(a,c):d;h(t,function(c,b){c>0&&b&&b.call(a,g)})});e(g,t)<0&&t.push(g);G(a,c,t[0])}}function T(a,c,g){if(c&&c.indexOf(",")>=0)h(c.split(","),function(){T(a,this,g)});else{var b=a[ma]||null;if(b)if(c===d)b in L&&(h(L[b], -function(c,g){c!="el"&&g.length>0&&C(a,c,g[0])}),delete L[b],I(a));else if(L[b]){var t=L[b][c];if(t&&t.length>0){g===d?(C(a,c,t[0]),delete L[b][c]):(h(t,function(a,c){a>0&&c===g&&t.splice(a,1)}),t.length==1&&(C(a,c,t[0]),delete L[b][c]));var k=0;h(L[b],function(){k++});k<2&&(delete L[b],I(a))}}}}function qa(a,c){if(c.indexOf(",")>=0)h(c.split(","),function(){qa(a,this)});else{var g=a[ma]||null;if(g){var b=L[g][c];if(L[g]&&b&&b.length>0)b[0]()}}}function $(a,c,g){c=/^\d{2,}$/.test(c)?c:c.toUpperCase().charCodeAt(0); -E(a,"keydown",function(b){b.ctrlKey&&b.which==c&&!b.shiftKey&&!b.altKey&&(g.call(a),b.stop())})}function M(a){for(var c={},g=/\s*([\w\-]+)\s*:([^;]*)(;|$)/g,b;b=g.exec(a);){var d=m(b[1].toLowerCase());b=m(r(b[2]));c[d]=b}return c}function K(a){for(var c={},g=/\s+(?:([\w\-:]+)|(?:([\w\-:]+)=([^\s"'<>]+))|(?:([\w\-:"]+)="([^"]*)")|(?:([\w\-:"]+)='([^']*)'))(?=(?:\s|\/|>)+)/g,b;b=g.exec(a);){var d=(b[1]||b[2]||b[4]||b[6]).toLowerCase();c[d]=(b[2]?b[3]:b[4]?b[5]:b[7])||""}return c}function O(a,c){return a= -/\s+class\s*=/.test(a)?a.replace(/(\s+class=["']?)([^"']*)(["']?[\s>])/,function(a,b,d,k){return(" "+d+" ").indexOf(" "+c+" ")<0?d===""?b+c+k:b+d+" "+c+k:a}):a.substr(0,a.length-1)+' class="'+c+'">'}function Q(a){var c="";h(M(a),function(a,b){c+=a+":"+b+";"});return c}function R(a,c,g,b){function t(a){for(var a=a.split("/"),c=[],g=0,b=a.length;g0&&c.pop():d!==""&&d!="."&&c.push(d)}return"/"+c.join("/")}function k(c,g){if(a.substr(0,c.length)===c){for(var d=[],t= -0;t0&&(t+="/"+d.join("/"));b=="/"&&(t+="/");return t+a.substr(c.length)}else if(i=/^(.*)\//.exec(c))return k(i[1],++g)}c=q(c,"").toLowerCase();a.substr(0,5)!="data:"&&(a=a.replace(/([^:])\/\//g,"$1/"));if(e(c,["absolute","relative","domain"])<0)return a;g=g||location.protocol+"//"+location.host;if(b===d)var w=location.pathname.match(/^(\/.*)\//),b=w?w[1]:"";var i;if(i=/^(\w+:\/\/[^\/]*)/.exec(a)){if(i[1]!==g)return a}else if(/^\w+:/.test(a))return a;/^\//.test(a)? -a=g+t(a.substr(1)):/^\w+:\/\//.test(a)||(a=g+t(b+"/"+a));c==="relative"?a=k(g+b,0).substr(2):c==="absolute"&&a.substr(0,g.length)===g&&(a=a.substr(g.length));return a}function H(a,c,g,b,d){a==null&&(a="");var g=g||"",b=q(b,!1),d=q(d,"\t"),k="xx-small,x-small,small,medium,large,x-large,xx-large".split(","),a=a.replace(/(<(?:pre|pre\s[^>]*)>)([\s\S]*?)(<\/pre>)/ig,function(a,c,g,b){return c+g.replace(/<(?:br|br\s[^>]*)>/ig,"\n")+b}),a=a.replace(/<(?:br|br\s[^>]*)\s*\/?>\s*<\/p>/ig,"

    "),a=a.replace(/(<(?:p|p\s[^>]*)>)\s*(<\/p>)/ig, -"$1
    $2"),a=a.replace(/\u200B/g,""),a=a.replace(/\u00A9/g,"©"),a=a.replace(/\u00AE/g,"®"),a=a.replace(/<[^>]+/g,function(a){return a.replace(/\s+/g," ")}),w={};c&&(h(c,function(a,c){for(var g=a.split(","),b=0,d=g.length;b]*)>)([\s\S]*?)(<\/script>)/ig,"")),w.style||(a=a.replace(/(<(?:style|style\s[^>]*)>)([\s\S]*?)(<\/style>)/ig,"")));var i=[],a=a.replace(/(\s*)<(\/)?([\w\-:]+)((?:\s+|(?:\s+[\w\-:]+)|(?:\s+[\w\-:]+=[^\s"'<>]+)|(?:\s+[\w\-:"]+="[^"]*")|(?:\s+[\w\-:"]+='[^']*'))*)(\/)?>(\s*)/g, -function(a,f,n,l,o,j,s){var f=f||"",n=n||"",m=l.toLowerCase(),r=o||"",l=j?" "+j:"",s=s||"";if(c&&!w[m])return"";l===""&&hb[m]&&(l=" /");ib[m]&&(f&&(f=" "),s&&(s=" "));Ma[m]&&(n?s="\n":f="\n");b&&m=="br"&&(s="\n");if(jb[m]&&!Ma[m])if(b){n&&i.length>0&&i[i.length-1]===m?i.pop():i.push(m);s=f="\n";o=0;for(j=n?i.length:i.length-1;o=0&&(p[a]=R(b,g));(c&&a!=="style"&&!w[m]["*"]&&!w[m][a]||m==="body"&&a==="contenteditable"||/^kindeditor_\d+$/.test(a))&&delete p[a];if(a==="style"&&b!==""){var d=M(b);h(d,function(a){c&&!w[m].style&&!w[m]["."+a]&&delete d[a]}); -var V="";h(d,function(a,c){V+=a+":"+c+";"});p.style=V}});r="";h(p,function(a,c){a==="style"&&c===""||(c=c.replace(/"/g,"""),r+=" "+a+'="'+c+'"')})}m==="font"&&(m="span");return f+"<"+n+m+r+l+">"+s}),a=a.replace(/(<(?:pre|pre\s[^>]*)>)([\s\S]*?)(<\/pre>)/ig,function(a,c,g,b){return c+g.replace(/\n/g,'\n')+b}),a=a.replace(/\n\s*\n/g,"\n"),a=a.replace(/\n/g,"\n");return m(a)}function U(a,c){a=a.replace(//ig, -"").replace(//ig,"").replace(/]*>[\s\S]*?<\/style>/ig,"").replace(/]*>[\s\S]*?<\/script>/ig,"").replace(/]+>[\s\S]*?<\/w:[^>]+>/ig,"").replace(/]+>[\s\S]*?<\/o:[^>]+>/ig,"").replace(/[\s\S]*?<\/xml>/ig,"").replace(/<(?:table|td)[^>]*>/ig,function(a){return a.replace(/border-bottom:([#\w\s]+)/ig,"border:$1")});return H(a,c)}function W(a){if(/\.(rm|rmvb)(\?|$)/i.test(a))return"audio/x-pn-realaudio-plugin";if(/\.(swf|flv)(\?|$)/i.test(a))return"application/x-shockwave-flash"; -return"video/x-ms-asf-plugin"}function S(a){return K(unescape(a))}function Na(a){var c="0&&(w+="width:"+g+"px;");/\D/.test(b)?w+="height:"+b+";":b>0&&(w+="height:"+b+"px;");g=/realaudio/i.test(d)?"ke-rm":/flash/i.test(d)?"ke-flash":"ke-media";g='';return g}function Da(a,c){if(a.nodeType==9&&c.nodeType!=9)return!0;for(;c=c.parentNode;)if(c==a)return!0;return!1}function Ea(a,c){var c=c.toLowerCase(),g=null;if(!Mb&&a.nodeName.toLowerCase()!="script"){var b=a.ownerDocument.createElement("div");b.appendChild(a.cloneNode(!1));b=K(v(b.innerHTML));c in b&&(g=b[c])}else try{g=a.getAttribute(c,2)}catch(d){g=a.getAttribute(c,1)}c==="style"&&g!==null&&(g=Q(g));return g}function Fa(a,c){function g(a){if(typeof a!="string")return a;return a.replace(/([^\w\-])/g, -"\\$1")}function b(a,c){return a==="*"||a.toLowerCase()===g(c.toLowerCase())}function d(a,c,g){var t=[];(a=(g.ownerDocument||g).getElementById(a.replace(/\\/g,"")))&&b(c,a.nodeName)&&Da(g,a)&&t.push(a);return t}function k(a,c,g){var d=g.ownerDocument||g,t=[],k,w,i;if(g.getElementsByClassName){d=g.getElementsByClassName(a.replace(/\\/g,""));k=0;for(w=d.length;k-1&&t.push(i)}return t}function w(a,c,b,d){for(var t=[],b=d.getElementsByTagName(b),V=0,k=b.length;V])+)/.exec(a))?e[1]:"*";if(e=/#((?:[\w\-]|\\.)+)$/.exec(a))g= -d(e[1],f,c);else if(e=/\.((?:[\w\-]|\\.)+)$/.exec(a))g=k(e[1],f,c);else if(e=/\[((?:[\w\-]|\\.)+)\]/.exec(a))g=w(e[1].toLowerCase(),null,f,c);else if(e=/\[((?:[\w\-]|\\.)+)\s*=\s*['"]?((?:\\.|[^'"]+)+)['"]?\]/.exec(a)){g=e[1].toLowerCase();e=e[2];if(g==="id")f=d(e,f,c);else if(g==="class")f=k(e,f,c);else if(g==="name"){g=[];e=(c.ownerDocument||c).getElementsByName(e.replace(/\\/g,""));for(var Z,h=0,l=e.length;h1){var n=[];h(f,function(){h(Fa(this,c),function(){e(this,n)<0&&n.push(this)})});return n}for(var c=c||document,f=[],l,o=/((?:\\.|[^\s>])+|[\s>])/g;l=o.exec(a);)l[1]!==" "&&f.push(l[1]);l=[];if(f.length==1)return i(f[0],c);var o=!1,m,s,j,r,p,v,q,B,E,u;v=0;for(lenth=f.length;v")o=!0;else{if(v>0){s=[];q=0;for(E=l.length;q