chuckchen 2 anni fa
commit
107975c4e2
100 ha cambiato i file con 16740 aggiunte e 0 eliminazioni
  1. 5 0
      .gitignore
  2. 32 0
      App.vue
  3. 251 0
      components/cmder-MDParserHighlight/assets/default.css
  4. BIN
      components/cmder-MDParserHighlight/assets/loading.gif
  5. 5 0
      components/cmder-MDParserHighlight/assets/marked.min.js
  6. 2198 0
      components/cmder-MDParserHighlight/highlight.js/lib/core.js
  7. 2 0
      components/cmder-MDParserHighlight/highlight.js/lib/highlight.js
  8. 194 0
      components/cmder-MDParserHighlight/highlight.js/lib/index.js
  9. 521 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/1c.js
  10. 77 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/abnf.js
  11. 75 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/accesslog.js
  12. 83 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/actionscript.js
  13. 185 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/ada.js
  14. 117 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/angelscript.js
  15. 76 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/apache.js
  16. 96 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/applescript.js
  17. 148 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/arcade.js
  18. 112 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/arduino.js
  19. 111 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/armasm.js
  20. 200 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/asciidoc.js
  21. 155 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/aspectj.js
  22. 68 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/autohotkey.js
  23. 18 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/autoit.js
  24. 72 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/avrasm.js
  25. 63 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/awk.js
  26. 41 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/axapta.js
  27. 125 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/bash.js
  28. 61 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/basic.js
  29. 36 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/bnf.js
  30. 46 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/brainfuck.js
  31. 242 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/c-like.js
  32. 23 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/c.js
  33. 90 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/cal.js
  34. 60 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/capnproto.js
  35. 76 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/ceylon.js
  36. 37 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/clean.js
  37. 27 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/clojure-repl.js
  38. 125 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/clojure.js
  39. 63 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/cmake.js
  40. 317 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/coffeescript.js
  41. 77 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/coq.js
  42. 134 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/cos.js
  43. 18 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/cpp.js
  44. 105 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/crmsh.js
  45. 197 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/crystal.js
  46. 227 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/csharp.js
  47. 34 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/csp.js
  48. 134 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/css.js
  49. 270 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/d.js
  50. 178 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/dart.js
  51. 97 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/delphi.js
  52. 51 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/diff.js
  53. 76 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/django.js
  54. 39 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/dns.js
  55. 33 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/dockerfile.js
  56. 61 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/dos.js
  57. 54 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/dsconfig.js
  58. 134 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/dts.js
  59. 43 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/dust.js
  60. 48 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/ebnf.js
  61. 183 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/elixir.js
  62. 99 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/elm.js
  63. 27 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/erb.js
  64. 55 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/erlang-repl.js
  65. 157 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/erlang.js
  66. 15 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/excel.js
  67. 36 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/fix.js
  68. 54 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/flix.js
  69. 107 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/fortran.js
  70. 68 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/fsharp.js
  71. 165 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/gams.js
  72. 300 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/gauss.js
  73. 77 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/gcode.js
  74. 46 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/gherkin.js
  75. 127 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/glsl.js
  76. 883 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/gml.js
  77. 65 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/go.js
  78. 32 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/golo.js
  79. 44 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/gradle.js
  80. 159 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/groovy.js
  81. 117 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/haml.js
  82. 270 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/handlebars.js
  83. 132 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/haskell.js
  84. 120 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/haxe.js
  85. 13 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/hsp.js
  86. 298 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/htmlbars.js
  87. 51 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/http.js
  88. 107 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/hy.js
  89. 66 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/inform7.js
  90. 143 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/ini.js
  91. 87 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/irpf90.js
  92. 3180 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/isbl.js
  93. 192 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/java.js
  94. 454 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/javascript.js
  95. 8 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/javascript.old.js
  96. 57 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/jboss-cli.js
  97. 54 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/json.js
  98. 50 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/julia-repl.js
  99. 173 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/julia.js
  100. 226 0
      components/cmder-MDParserHighlight/highlight.js/lib/languages/kotlin.js

+ 5 - 0
.gitignore

@@ -0,0 +1,5 @@
+node_modules/
+.project
+unpackage/
+.DS_Store
+.hbuilderx/

+ 32 - 0
App.vue

@@ -0,0 +1,32 @@
+<script>
+	export default {
+		onLaunch: function() {
+			console.warn('当前组件仅支持 uni_modules 目录结构 ,请升级 HBuilderX 到 3.1.0 版本以上!')
+			console.log('App Launch')
+		},
+		onShow: function() {
+			console.log('App Show')
+		},
+		onHide: function() {
+			console.log('App Hide')
+		}
+	}
+</script>
+
+<style lang="scss">
+	/*每个页面公共css */
+	@import '@/uni_modules/uni-scss/index.scss';
+	/* #ifndef APP-NVUE */
+	@import '@/static/customicons.css';
+	// 设置整个项目的背景色
+	page {
+		background-color: #f5f5f5;
+	}
+
+	/* #endif */
+	.example-info {
+		font-size: 14px;
+		color: #333;
+		padding: 10px;
+	}
+</style>

+ 251 - 0
components/cmder-MDParserHighlight/assets/default.css

@@ -0,0 +1,251 @@
+.parse {
+  width: 100%;
+  box-sizing: border-box;
+  font-family: Helvetica, sans-serif;
+  font-size: 16px;
+  color: #666;
+  line-height: 1.8;
+  overflow-x: hidden!important;
+}
+
+.parse view {
+  word-break: hyphenate;
+}
+
+.parse .inline {
+  display: inline;
+  margin: 0;
+  padding: 0;
+}
+
+.parse div {
+  margin: 0;
+  padding: 0;
+}
+
+.parse h1 {
+  color: #666;
+  font-size: 2em;
+  margin: 0.67em;
+  text-align: left;
+}
+.parse h2 {
+  font-size: 1.5em;
+  margin: 0.83em;
+}
+.parse h3 {
+  font-size: 1.17em;
+  margin: 1em;
+}
+.parse h4  {
+  margin: 1.33em;
+}
+.parse h5  {
+  font-size: 0.83em;
+  margin: 1.67em;
+}
+.parse h6  {
+  font-size: 0.67em;
+  margin: 2.33em;
+}
+
+.parse h1 ,
+.parse h2 ,
+.parse h3 ,
+.parse h4 ,
+.parse h5 ,
+.parse h6 ,
+.parse b,
+.parse strong {
+  font-weight: bolder;
+}
+
+
+.parse p {
+  margin: 1em;
+}
+
+.parse i,
+.parse cite,
+.parse em,
+.parse var,
+.parse address {
+  font-style: italic;
+}
+
+.parse pre,
+.parse tt,
+.parse code,
+.parse kbd,
+.parse samp {
+  font-family: monospace;
+}
+.parse pre {
+  overflow: auto;
+  background: #f5f5f5;
+  padding: 16upx;
+  white-space: pre;
+  margin: 1em;
+}
+.parse code {
+  display: inline;
+  background: #f5f5f5;
+}
+
+.parse big {
+  font-size: 1.17em;
+}
+
+.parse small,
+.parse sub,
+.parse sup {
+  font-size: 0.83em;
+}
+
+.parse sub {
+  vertical-align: sub;
+}
+.parse sup {
+  vertical-align: super;
+}
+
+.parse s,
+.parse strike,
+.parse del {
+  text-decoration: line-through;
+}
+
+.parse strong,
+.parse s {
+  display: inline;
+}
+
+.parse a {
+  color: deepskyblue;
+}
+
+.parse video {
+  text-align: center;
+  margin: 22upx 0;
+}
+
+.parse .video-video {
+  width: 100%;
+}
+
+.parse img {
+  // display: inline-block;
+  // width: 0;
+  // height: 0;
+  // max-width: 100%;
+  // overflow: hidden;
+	display: inline-block;
+	max-width: 100%;
+	overflow: hidden;
+}
+
+.parse blockquote {
+  margin: 10upx 0;
+  padding: 22upx 0 22upx 22upx;
+  font-family: Courier, Calibri, "宋体";
+  background: #f5f5f5;
+  border-left: 6upx solid #dbdbdb;
+}
+.parse blockquote p {
+  margin: 0;
+}
+
+.parse ul, .parse ol {
+  display: block;
+  margin: 1em 0;
+  padding-left: 33upx;
+}
+.parse ol {
+  list-style-type: disc;
+}
+.parse ol {
+  list-style-type: decimal;
+}
+.parse ol>weixin-parse-template,.parse ul>weixin-parse-template {
+  display: list-item;
+  align-items: baseline;
+  text-align: match-parent;
+}
+
+.parse ol>li,.parse ul>li {
+  display: list-item;
+  align-items: baseline;
+  text-align: match-parent;
+}
+.parse ul ul, .parse ol ul {
+  list-style-type: circle;
+}
+.parse ol ol ul, .parse ol ul ul, .parse ul ol ul, .parse ul ul ul {
+	list-style-type: square;
+}
+
+.parse u {
+  text-decoration: underline;
+}
+.parse .hide {
+  display: none;
+}
+.parse del {
+  display: inline;
+}
+.parse figure {
+  overflow: hidden;
+}
+
+.parse table {
+  width: 100%;
+}
+.parse thead, .parse tfoot, .parse tr {
+  display: flex;
+  flex-direction: row;
+}
+.parse tr {
+  width:100%;
+  display: flex;
+  border-right: 2upx solid #e0e0e0;
+  border-bottom: 2upx solid #e0e0e0;
+}
+.parse th,
+.parse td {
+  display: flex;
+  width: 1276upx;
+  overflow: auto;
+  flex: 1;
+  padding: 11upx;
+  border-left: 2upx solid #e0e0e0;
+}
+.parse td:last {
+  border-top: 2upx solid #e0e0e0;
+}
+.parse th {
+  background: #f0f0f0;
+  border-top: 2upx solid #e0e0e0;
+}
+.loading{
+	width: 100%;
+	height: 100%;
+	position: relative;
+	text-align: center;
+	display: flex;
+	justify-content: center;
+	align-items: center;
+}
+.loading_wrap{
+	display: flex;
+	justify-content: center;
+	align-content: center;
+	flex-direction:column;
+}
+.loading_wrap .image{
+	width: 100px;
+	height: 100px;
+}
+.loading_wrap text{
+	font-size: 16px;
+	text-align: center;
+}

BIN
components/cmder-MDParserHighlight/assets/loading.gif


File diff suppressed because it is too large
+ 5 - 0
components/cmder-MDParserHighlight/assets/marked.min.js


+ 2198 - 0
components/cmder-MDParserHighlight/highlight.js/lib/core.js

@@ -0,0 +1,2198 @@
+// https://github.com/substack/deep-freeze/blob/master/index.js
+/** @param {any} obj */
+function deepFreeze(obj) {
+  Object.freeze(obj);
+
+  var objIsFunction = typeof obj === 'function';
+
+  Object.getOwnPropertyNames(obj).forEach(function(prop) {
+    if (Object.hasOwnProperty.call(obj, prop)
+    && obj[prop] !== null
+    && (typeof obj[prop] === "object" || typeof obj[prop] === "function")
+    // IE11 fix: https://github.com/highlightjs/highlight.js/issues/2318
+    // TODO: remove in the future
+    && (objIsFunction ? prop !== 'caller' && prop !== 'callee' && prop !== 'arguments' : true)
+    && !Object.isFrozen(obj[prop])) {
+      deepFreeze(obj[prop]);
+    }
+  });
+
+  return obj;
+}
+
+class Response {
+  /**
+   * @param {CompiledMode} mode
+   */
+  constructor(mode) {
+    // eslint-disable-next-line no-undefined
+    if (mode.data === undefined) mode.data = {};
+
+    this.data = mode.data;
+  }
+
+  ignoreMatch() {
+    this.ignore = true;
+  }
+}
+
+/**
+ * @param {string} value
+ * @returns {string}
+ */
+function escapeHTML(value) {
+  return value
+    .replace(/&/g, '&amp;')
+    .replace(/</g, '&lt;')
+    .replace(/>/g, '&gt;')
+    .replace(/"/g, '&quot;')
+    .replace(/'/g, '&#x27;');
+}
+
+/**
+ * performs a shallow merge of multiple objects into one
+ *
+ * @template T
+ * @param {T} original
+ * @param {Record<string,any>[]} objects
+ * @returns {T} a single new object
+ */
+function inherit(original, ...objects) {
+  /** @type Record<string,any> */
+  var result = {};
+
+  for (const key in original) {
+    result[key] = original[key];
+  }
+  objects.forEach(function(obj) {
+    for (const key in obj) {
+      result[key] = obj[key];
+    }
+  });
+  return /** @type {T} */ (result);
+}
+
+/* Stream merging */
+
+/**
+ * @typedef Event
+ * @property {'start'|'stop'} event
+ * @property {number} offset
+ * @property {Node} node
+ */
+
+/**
+ * @param {Node} node
+ */
+function tag(node) {
+  return node.nodeName.toLowerCase();
+}
+
+/**
+ * @param {Node} node
+ */
+function nodeStream(node) {
+  /** @type Event[] */
+  var result = [];
+  (function _nodeStream(node, offset) {
+    for (var child = node.firstChild; child; child = child.nextSibling) {
+      if (child.nodeType === 3) {
+        offset += child.nodeValue.length;
+      } else if (child.nodeType === 1) {
+        result.push({
+          event: 'start',
+          offset: offset,
+          node: child
+        });
+        offset = _nodeStream(child, offset);
+        // Prevent void elements from having an end tag that would actually
+        // double them in the output. There are more void elements in HTML
+        // but we list only those realistically expected in code display.
+        if (!tag(child).match(/br|hr|img|input/)) {
+          result.push({
+            event: 'stop',
+            offset: offset,
+            node: child
+          });
+        }
+      }
+    }
+    return offset;
+  })(node, 0);
+  return result;
+}
+
+/**
+ * @param {any} original - the original stream
+ * @param {any} highlighted - stream of the highlighted source
+ * @param {string} value - the original source itself
+ */
+function mergeStreams(original, highlighted, value) {
+  var processed = 0;
+  var result = '';
+  var nodeStack = [];
+
+  function selectStream() {
+    if (!original.length || !highlighted.length) {
+      return original.length ? original : highlighted;
+    }
+    if (original[0].offset !== highlighted[0].offset) {
+      return (original[0].offset < highlighted[0].offset) ? original : highlighted;
+    }
+
+    /*
+    To avoid starting the stream just before it should stop the order is
+    ensured that original always starts first and closes last:
+
+    if (event1 == 'start' && event2 == 'start')
+      return original;
+    if (event1 == 'start' && event2 == 'stop')
+      return highlighted;
+    if (event1 == 'stop' && event2 == 'start')
+      return original;
+    if (event1 == 'stop' && event2 == 'stop')
+      return highlighted;
+
+    ... which is collapsed to:
+    */
+    return highlighted[0].event === 'start' ? original : highlighted;
+  }
+
+  /**
+   * @param {Node} node
+   */
+  function open(node) {
+    /** @param {Attr} attr */
+    function attr_str(attr) {
+      return ' ' + attr.nodeName + '="' + escapeHTML(attr.value) + '"';
+    }
+    // @ts-ignore
+    result += '<' + tag(node) + [].map.call(node.attributes, attr_str).join('') + '>';
+  }
+
+  /**
+   * @param {Node} node
+   */
+  function close(node) {
+    result += '</' + tag(node) + '>';
+  }
+
+  /**
+   * @param {Event} event
+   */
+  function render(event) {
+    (event.event === 'start' ? open : close)(event.node);
+  }
+
+  while (original.length || highlighted.length) {
+    var stream = selectStream();
+    result += escapeHTML(value.substring(processed, stream[0].offset));
+    processed = stream[0].offset;
+    if (stream === original) {
+      /*
+      On any opening or closing tag of the original markup we first close
+      the entire highlighted node stack, then render the original tag along
+      with all the following original tags at the same offset and then
+      reopen all the tags on the highlighted stack.
+      */
+      nodeStack.reverse().forEach(close);
+      do {
+        render(stream.splice(0, 1)[0]);
+        stream = selectStream();
+      } while (stream === original && stream.length && stream[0].offset === processed);
+      nodeStack.reverse().forEach(open);
+    } else {
+      if (stream[0].event === 'start') {
+        nodeStack.push(stream[0].node);
+      } else {
+        nodeStack.pop();
+      }
+      render(stream.splice(0, 1)[0]);
+    }
+  }
+  return result + escapeHTML(value.substr(processed));
+}
+
+var utils = /*#__PURE__*/Object.freeze({
+  __proto__: null,
+  escapeHTML: escapeHTML,
+  inherit: inherit,
+  nodeStream: nodeStream,
+  mergeStreams: mergeStreams
+});
+
+/**
+ * @typedef {object} Renderer
+ * @property {(text: string) => void} addText
+ * @property {(node: Node) => void} openNode
+ * @property {(node: Node) => void} closeNode
+ * @property {() => string} value
+ */
+
+/** @typedef {{kind?: string, sublanguage?: boolean}} Node */
+/** @typedef {{walk: (r: Renderer) => void}} Tree */
+/** */
+
+const SPAN_CLOSE = '</span>';
+
+/**
+ * Determines if a node needs to be wrapped in <span>
+ *
+ * @param {Node} node */
+const emitsWrappingTags = (node) => {
+  return !!node.kind;
+};
+
+/** @type {Renderer} */
+class HTMLRenderer {
+  /**
+   * Creates a new HTMLRenderer
+   *
+   * @param {Tree} parseTree - the parse tree (must support `walk` API)
+   * @param {{classPrefix: string}} options
+   */
+  constructor(parseTree, options) {
+    this.buffer = "";
+    this.classPrefix = options.classPrefix;
+    parseTree.walk(this);
+  }
+
+  /**
+   * Adds texts to the output stream
+   *
+   * @param {string} text */
+  addText(text) {
+    this.buffer += escapeHTML(text);
+  }
+
+  /**
+   * Adds a node open to the output stream (if needed)
+   *
+   * @param {Node} node */
+  openNode(node) {
+    if (!emitsWrappingTags(node)) return;
+
+    let className = node.kind;
+    if (!node.sublanguage) {
+      className = `${this.classPrefix}${className}`;
+    }
+    this.span(className);
+  }
+
+  /**
+   * Adds a node close to the output stream (if needed)
+   *
+   * @param {Node} node */
+  closeNode(node) {
+    if (!emitsWrappingTags(node)) return;
+
+    this.buffer += SPAN_CLOSE;
+  }
+
+  /**
+   * returns the accumulated buffer
+  */
+  value() {
+    return this.buffer;
+  }
+
+  // helpers
+
+  /**
+   * Builds a span element
+   *
+   * @param {string} className */
+  span(className) {
+    this.buffer += `<span class="${className}">`;
+  }
+}
+
+/** @typedef {{kind?: string, sublanguage?: boolean, children: Node[]} | string} Node */
+/** @typedef {{kind?: string, sublanguage?: boolean, children: Node[]} } DataNode */
+/**  */
+
+class TokenTree {
+  constructor() {
+    /** @type DataNode */
+    this.rootNode = { children: [] };
+    this.stack = [this.rootNode];
+  }
+
+  get top() {
+    return this.stack[this.stack.length - 1];
+  }
+
+  get root() { return this.rootNode; }
+
+  /** @param {Node} node */
+  add(node) {
+    this.top.children.push(node);
+  }
+
+  /** @param {string} kind */
+  openNode(kind) {
+    /** @type Node */
+    const node = { kind, children: [] };
+    this.add(node);
+    this.stack.push(node);
+  }
+
+  closeNode() {
+    if (this.stack.length > 1) {
+      return this.stack.pop();
+    }
+    // eslint-disable-next-line no-undefined
+    return undefined;
+  }
+
+  closeAllNodes() {
+    while (this.closeNode());
+  }
+
+  toJSON() {
+    return JSON.stringify(this.rootNode, null, 4);
+  }
+
+  /**
+   * @typedef { import("./html_renderer").Renderer } Renderer
+   * @param {Renderer} builder
+   */
+  walk(builder) {
+    // this does not
+    return this.constructor._walk(builder, this.rootNode);
+    // this works
+    // return TokenTree._walk(builder, this.rootNode);
+  }
+
+  /**
+   * @param {Renderer} builder
+   * @param {Node} node
+   */
+  static _walk(builder, node) {
+    if (typeof node === "string") {
+      builder.addText(node);
+    } else if (node.children) {
+      builder.openNode(node);
+      node.children.forEach((child) => this._walk(builder, child));
+      builder.closeNode(node);
+    }
+    return builder;
+  }
+
+  /**
+   * @param {Node} node
+   */
+  static _collapse(node) {
+    if (typeof node === "string") return;
+    if (!node.children) return;
+
+    if (node.children.every(el => typeof el === "string")) {
+      // node.text = node.children.join("");
+      // delete node.children;
+      node.children = [node.children.join("")];
+    } else {
+      node.children.forEach((child) => {
+        TokenTree._collapse(child);
+      });
+    }
+  }
+}
+
+/**
+  Currently this is all private API, but this is the minimal API necessary
+  that an Emitter must implement to fully support the parser.
+
+  Minimal interface:
+
+  - addKeyword(text, kind)
+  - addText(text)
+  - addSublanguage(emitter, subLanguageName)
+  - finalize()
+  - openNode(kind)
+  - closeNode()
+  - closeAllNodes()
+  - toHTML()
+
+*/
+
+/**
+ * @implements {Emitter}
+ */
+class TokenTreeEmitter extends TokenTree {
+  /**
+   * @param {*} options
+   */
+  constructor(options) {
+    super();
+    this.options = options;
+  }
+
+  /**
+   * @param {string} text
+   * @param {string} kind
+   */
+  addKeyword(text, kind) {
+    if (text === "") { return; }
+
+    this.openNode(kind);
+    this.addText(text);
+    this.closeNode();
+  }
+
+  /**
+   * @param {string} text
+   */
+  addText(text) {
+    if (text === "") { return; }
+
+    this.add(text);
+  }
+
+  /**
+   * @param {Emitter & {root: DataNode}} emitter
+   * @param {string} name
+   */
+  addSublanguage(emitter, name) {
+    /** @type DataNode */
+    const node = emitter.root;
+    node.kind = name;
+    node.sublanguage = true;
+    this.add(node);
+  }
+
+  toHTML() {
+    const renderer = new HTMLRenderer(this, this.options);
+    return renderer.value();
+  }
+
+  finalize() {
+    return true;
+  }
+}
+
+/**
+ * @param {string} value
+ * @returns {RegExp}
+ * */
+function escape(value) {
+  return new RegExp(value.replace(/[-/\\^$*+?.()|[\]{}]/g, '\\$&'), 'm');
+}
+
+/**
+ * @param {RegExp | string } re
+ * @returns {string}
+ */
+function source(re) {
+  if (!re) return null;
+  if (typeof re === "string") return re;
+
+  return re.source;
+}
+
+/**
+ * @param {...(RegExp | string) } args
+ * @returns {string}
+ */
+function concat(...args) {
+  const joined = args.map((x) => source(x)).join("");
+  return joined;
+}
+
+/**
+ * @param {RegExp} re
+ * @returns {number}
+ */
+function countMatchGroups(re) {
+  return (new RegExp(re.toString() + '|')).exec('').length - 1;
+}
+
+/**
+ * Does lexeme start with a regular expression match at the beginning
+ * @param {RegExp} re
+ * @param {string} lexeme
+ */
+function startsWith(re, lexeme) {
+  var match = re && re.exec(lexeme);
+  return match && match.index === 0;
+}
+
+// join logically computes regexps.join(separator), but fixes the
+// backreferences so they continue to match.
+// it also places each individual regular expression into it's own
+// match group, keeping track of the sequencing of those match groups
+// is currently an exercise for the caller. :-)
+/**
+ * @param {(string | RegExp)[]} regexps
+ * @param {string} separator
+ * @returns {string}
+ */
+function join(regexps, separator = "|") {
+  // backreferenceRe matches an open parenthesis or backreference. To avoid
+  // an incorrect parse, it additionally matches the following:
+  // - [...] elements, where the meaning of parentheses and escapes change
+  // - other escape sequences, so we do not misparse escape sequences as
+  //   interesting elements
+  // - non-matching or lookahead parentheses, which do not capture. These
+  //   follow the '(' with a '?'.
+  var backreferenceRe = /\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;
+  var numCaptures = 0;
+  var ret = '';
+  for (var i = 0; i < regexps.length; i++) {
+    numCaptures += 1;
+    var offset = numCaptures;
+    var re = source(regexps[i]);
+    if (i > 0) {
+      ret += separator;
+    }
+    ret += "(";
+    while (re.length > 0) {
+      var match = backreferenceRe.exec(re);
+      if (match == null) {
+        ret += re;
+        break;
+      }
+      ret += re.substring(0, match.index);
+      re = re.substring(match.index + match[0].length);
+      if (match[0][0] === '\\' && match[1]) {
+        // Adjust the backreference.
+        ret += '\\' + String(Number(match[1]) + offset);
+      } else {
+        ret += match[0];
+        if (match[0] === '(') {
+          numCaptures++;
+        }
+      }
+    }
+    ret += ")";
+  }
+  return ret;
+}
+
+// Common regexps
+const IDENT_RE = '[a-zA-Z]\\w*';
+const UNDERSCORE_IDENT_RE = '[a-zA-Z_]\\w*';
+const NUMBER_RE = '\\b\\d+(\\.\\d+)?';
+const C_NUMBER_RE = '(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)'; // 0x..., 0..., decimal, float
+const BINARY_NUMBER_RE = '\\b(0b[01]+)'; // 0b...
+const RE_STARTERS_RE = '!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~';
+
+/**
+* @param { Partial<Mode> & {binary?: string | RegExp} } opts
+*/
+const SHEBANG = (opts = {}) => {
+  const beginShebang = /^#![ ]*\//;
+  if (opts.binary) {
+    opts.begin = concat(
+      beginShebang,
+      /.*\b/,
+      opts.binary,
+      /\b.*/);
+  }
+  return inherit({
+    className: 'meta',
+    begin: beginShebang,
+    end: /$/,
+    relevance: 0,
+    /** @type {ModeCallback} */
+    "on:begin": (m, resp) => {
+      if (m.index !== 0) resp.ignoreMatch();
+    }
+  }, opts);
+};
+
+// Common modes
+const BACKSLASH_ESCAPE = {
+  begin: '\\\\[\\s\\S]', relevance: 0
+};
+const APOS_STRING_MODE = {
+  className: 'string',
+  begin: '\'',
+  end: '\'',
+  illegal: '\\n',
+  contains: [BACKSLASH_ESCAPE]
+};
+const QUOTE_STRING_MODE = {
+  className: 'string',
+  begin: '"',
+  end: '"',
+  illegal: '\\n',
+  contains: [BACKSLASH_ESCAPE]
+};
+const PHRASAL_WORDS_MODE = {
+  begin: /\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/
+};
+/**
+ * Creates a comment mode
+ *
+ * @param {string | RegExp} begin
+ * @param {string | RegExp} end
+ * @param {Mode | {}} [modeOptions]
+ * @returns {Partial<Mode>}
+ */
+const COMMENT = function(begin, end, modeOptions = {}) {
+  var mode = inherit(
+    {
+      className: 'comment',
+      begin,
+      end,
+      contains: []
+    },
+    modeOptions
+  );
+  mode.contains.push(PHRASAL_WORDS_MODE);
+  mode.contains.push({
+    className: 'doctag',
+    begin: '(?:TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):',
+    relevance: 0
+  });
+  return mode;
+};
+const C_LINE_COMMENT_MODE = COMMENT('//', '$');
+const C_BLOCK_COMMENT_MODE = COMMENT('/\\*', '\\*/');
+const HASH_COMMENT_MODE = COMMENT('#', '$');
+const NUMBER_MODE = {
+  className: 'number',
+  begin: NUMBER_RE,
+  relevance: 0
+};
+const C_NUMBER_MODE = {
+  className: 'number',
+  begin: C_NUMBER_RE,
+  relevance: 0
+};
+const BINARY_NUMBER_MODE = {
+  className: 'number',
+  begin: BINARY_NUMBER_RE,
+  relevance: 0
+};
+const CSS_NUMBER_MODE = {
+  className: 'number',
+  begin: NUMBER_RE + '(' +
+    '%|em|ex|ch|rem' +
+    '|vw|vh|vmin|vmax' +
+    '|cm|mm|in|pt|pc|px' +
+    '|deg|grad|rad|turn' +
+    '|s|ms' +
+    '|Hz|kHz' +
+    '|dpi|dpcm|dppx' +
+    ')?',
+  relevance: 0
+};
+const REGEXP_MODE = {
+  // this outer rule makes sure we actually have a WHOLE regex and not simply
+  // an expression such as:
+  //
+  //     3 / something
+  //
+  // (which will then blow up when regex's `illegal` sees the newline)
+  begin: /(?=\/[^/\n]*\/)/,
+  contains: [{
+    className: 'regexp',
+    begin: /\//,
+    end: /\/[gimuy]*/,
+    illegal: /\n/,
+    contains: [
+      BACKSLASH_ESCAPE,
+      {
+        begin: /\[/,
+        end: /\]/,
+        relevance: 0,
+        contains: [BACKSLASH_ESCAPE]
+      }
+    ]
+  }]
+};
+const TITLE_MODE = {
+  className: 'title',
+  begin: IDENT_RE,
+  relevance: 0
+};
+const UNDERSCORE_TITLE_MODE = {
+  className: 'title',
+  begin: UNDERSCORE_IDENT_RE,
+  relevance: 0
+};
+const METHOD_GUARD = {
+  // excludes method names from keyword processing
+  begin: '\\.\\s*' + UNDERSCORE_IDENT_RE,
+  relevance: 0
+};
+
+/**
+ * Adds end same as begin mechanics to a mode
+ *
+ * Your mode must include at least a single () match group as that first match
+ * group is what is used for comparison
+ * @param {Partial<Mode>} mode
+ */
+const END_SAME_AS_BEGIN = function(mode) {
+  return Object.assign(mode,
+    {
+      /** @type {ModeCallback} */
+      'on:begin': (m, resp) => { resp.data._beginMatch = m[1]; },
+      /** @type {ModeCallback} */
+      'on:end': (m, resp) => { if (resp.data._beginMatch !== m[1]) resp.ignoreMatch(); }
+    });
+};
+
+var MODES = /*#__PURE__*/Object.freeze({
+  __proto__: null,
+  IDENT_RE: IDENT_RE,
+  UNDERSCORE_IDENT_RE: UNDERSCORE_IDENT_RE,
+  NUMBER_RE: NUMBER_RE,
+  C_NUMBER_RE: C_NUMBER_RE,
+  BINARY_NUMBER_RE: BINARY_NUMBER_RE,
+  RE_STARTERS_RE: RE_STARTERS_RE,
+  SHEBANG: SHEBANG,
+  BACKSLASH_ESCAPE: BACKSLASH_ESCAPE,
+  APOS_STRING_MODE: APOS_STRING_MODE,
+  QUOTE_STRING_MODE: QUOTE_STRING_MODE,
+  PHRASAL_WORDS_MODE: PHRASAL_WORDS_MODE,
+  COMMENT: COMMENT,
+  C_LINE_COMMENT_MODE: C_LINE_COMMENT_MODE,
+  C_BLOCK_COMMENT_MODE: C_BLOCK_COMMENT_MODE,
+  HASH_COMMENT_MODE: HASH_COMMENT_MODE,
+  NUMBER_MODE: NUMBER_MODE,
+  C_NUMBER_MODE: C_NUMBER_MODE,
+  BINARY_NUMBER_MODE: BINARY_NUMBER_MODE,
+  CSS_NUMBER_MODE: CSS_NUMBER_MODE,
+  REGEXP_MODE: REGEXP_MODE,
+  TITLE_MODE: TITLE_MODE,
+  UNDERSCORE_TITLE_MODE: UNDERSCORE_TITLE_MODE,
+  METHOD_GUARD: METHOD_GUARD,
+  END_SAME_AS_BEGIN: END_SAME_AS_BEGIN
+});
+
+// keywords that should have no default relevance value
+var COMMON_KEYWORDS = 'of and for in not or if then'.split(' ');
+
+// compilation
+
+/**
+ * Compiles a language definition result
+ *
+ * Given the raw result of a language definition (Language), compiles this so
+ * that it is ready for highlighting code.
+ * @param {Language} language
+ * @returns {CompiledLanguage}
+ */
+function compileLanguage(language) {
+  /**
+   * Builds a regex with the case sensativility of the current language
+   *
+   * @param {RegExp | string} value
+   * @param {boolean} [global]
+   */
+  function langRe(value, global) {
+    return new RegExp(
+      source(value),
+      'm' + (language.case_insensitive ? 'i' : '') + (global ? 'g' : '')
+    );
+  }
+
+  /**
+    Stores multiple regular expressions and allows you to quickly search for
+    them all in a string simultaneously - returning the first match.  It does
+    this by creating a huge (a|b|c) regex - each individual item wrapped with ()
+    and joined by `|` - using match groups to track position.  When a match is
+    found checking which position in the array has content allows us to figure
+    out which of the original regexes / match groups triggered the match.
+
+    The match object itself (the result of `Regex.exec`) is returned but also
+    enhanced by merging in any meta-data that was registered with the regex.
+    This is how we keep track of which mode matched, and what type of rule
+    (`illegal`, `begin`, end, etc).
+  */
+  class MultiRegex {
+    constructor() {
+      this.matchIndexes = {};
+      // @ts-ignore
+      this.regexes = [];
+      this.matchAt = 1;
+      this.position = 0;
+    }
+
+    // @ts-ignore
+    addRule(re, opts) {
+      opts.position = this.position++;
+      // @ts-ignore
+      this.matchIndexes[this.matchAt] = opts;
+      this.regexes.push([opts, re]);
+      this.matchAt += countMatchGroups(re) + 1;
+    }
+
+    compile() {
+      if (this.regexes.length === 0) {
+        // avoids the need to check length every time exec is called
+        // @ts-ignore
+        this.exec = () => null;
+      }
+      const terminators = this.regexes.map(el => el[1]);
+      this.matcherRe = langRe(join(terminators), true);
+      this.lastIndex = 0;
+    }
+
+    /** @param {string} s */
+    exec(s) {
+      this.matcherRe.lastIndex = this.lastIndex;
+      const match = this.matcherRe.exec(s);
+      if (!match) { return null; }
+
+      // eslint-disable-next-line no-undefined
+      const i = match.findIndex((el, i) => i > 0 && el !== undefined);
+      // @ts-ignore
+      const matchData = this.matchIndexes[i];
+      // trim off any earlier non-relevant match groups (ie, the other regex
+      // match groups that make up the multi-matcher)
+      match.splice(0, i);
+
+      return Object.assign(match, matchData);
+    }
+  }
+
+  /*
+    Created to solve the key deficiently with MultiRegex - there is no way to
+    test for multiple matches at a single location.  Why would we need to do
+    that?  In the future a more dynamic engine will allow certain matches to be
+    ignored.  An example: if we matched say the 3rd regex in a large group but
+    decided to ignore it - we'd need to started testing again at the 4th
+    regex... but MultiRegex itself gives us no real way to do that.
+
+    So what this class creates MultiRegexs on the fly for whatever search
+    position they are needed.
+
+    NOTE: These additional MultiRegex objects are created dynamically.  For most
+    grammars most of the time we will never actually need anything more than the
+    first MultiRegex - so this shouldn't have too much overhead.
+
+    Say this is our search group, and we match regex3, but wish to ignore it.
+
+      regex1 | regex2 | regex3 | regex4 | regex5    ' ie, startAt = 0
+
+    What we need is a new MultiRegex that only includes the remaining
+    possibilities:
+
+      regex4 | regex5                               ' ie, startAt = 3
+
+    This class wraps all that complexity up in a simple API... `startAt` decides
+    where in the array of expressions to start doing the matching. It
+    auto-increments, so if a match is found at position 2, then startAt will be
+    set to 3.  If the end is reached startAt will return to 0.
+
+    MOST of the time the parser will be setting startAt manually to 0.
+  */
+  class ResumableMultiRegex {
+    constructor() {
+      // @ts-ignore
+      this.rules = [];
+      // @ts-ignore
+      this.multiRegexes = [];
+      this.count = 0;
+
+      this.lastIndex = 0;
+      this.regexIndex = 0;
+    }
+
+    // @ts-ignore
+    getMatcher(index) {
+      if (this.multiRegexes[index]) return this.multiRegexes[index];
+
+      const matcher = new MultiRegex();
+      this.rules.slice(index).forEach(([re, opts]) => matcher.addRule(re, opts));
+      matcher.compile();
+      this.multiRegexes[index] = matcher;
+      return matcher;
+    }
+
+    resumingScanAtSamePosition() {
+      return this.regexIndex !== 0;
+    }
+
+    considerAll() {
+      this.regexIndex = 0;
+    }
+
+    // @ts-ignore
+    addRule(re, opts) {
+      this.rules.push([re, opts]);
+      if (opts.type === "begin") this.count++;
+    }
+
+    /** @param {string} s */
+    exec(s) {
+      const m = this.getMatcher(this.regexIndex);
+      m.lastIndex = this.lastIndex;
+      let result = m.exec(s);
+
+      // The following is because we have no easy way to say "resume scanning at the
+      // existing position but also skip the current rule ONLY". What happens is
+      // all prior rules are also skipped which can result in matching the wrong
+      // thing. Example of matching "booger":
+
+      // our matcher is [string, "booger", number]
+      //
+      // ....booger....
+
+      // if "booger" is ignored then we'd really need a regex to scan from the
+      // SAME position for only: [string, number] but ignoring "booger" (if it
+      // was the first match), a simple resume would scan ahead who knows how
+      // far looking only for "number", ignoring potential string matches (or
+      // future "booger" matches that might be valid.)
+
+      // So what we do: We execute two matchers, one resuming at the same
+      // position, but the second full matcher starting at the position after:
+
+      //     /--- resume first regex match here (for [number])
+      //     |/---- full match here for [string, "booger", number]
+      //     vv
+      // ....booger....
+
+      // Which ever results in a match first is then used. So this 3-4 step
+      // process essentially allows us to say "match at this position, excluding
+      // a prior rule that was ignored".
+      //
+      // 1. Match "booger" first, ignore. Also proves that [string] does non match.
+      // 2. Resume matching for [number]
+      // 3. Match at index + 1 for [string, "booger", number]
+      // 4. If #2 and #3 result in matches, which came first?
+      if (this.resumingScanAtSamePosition()) {
+        if (result && result.index === this.lastIndex) ; else { // use the second matcher result
+          const m2 = this.getMatcher(0);
+          m2.lastIndex = this.lastIndex + 1;
+          result = m2.exec(s);
+        }
+      }
+
+      if (result) {
+        this.regexIndex += result.position + 1;
+        if (this.regexIndex === this.count) {
+          // wrap-around to considering all matches again
+          this.considerAll();
+        }
+      }
+
+      return result;
+    }
+  }
+
+  /**
+   * Given a mode, builds a huge ResumableMultiRegex that can be used to walk
+   * the content and find matches.
+   *
+   * @param {CompiledMode} mode
+   * @returns {ResumableMultiRegex}
+   */
+  function buildModeRegex(mode) {
+    const mm = new ResumableMultiRegex();
+
+    mode.contains.forEach(term => mm.addRule(term.begin, { rule: term, type: "begin" }));
+
+    if (mode.terminator_end) {
+      mm.addRule(mode.terminator_end, { type: "end" });
+    }
+    if (mode.illegal) {
+      mm.addRule(mode.illegal, { type: "illegal" });
+    }
+
+    return mm;
+  }
+
+  // TODO: We need negative look-behind support to do this properly
+  /**
+   * Skip a match if it has a preceding or trailing dot
+   *
+   * This is used for `beginKeywords` to prevent matching expressions such as
+   * `bob.keyword.do()`. The mode compiler automatically wires this up as a
+   * special _internal_ 'on:begin' callback for modes with `beginKeywords`
+   * @param {RegExpMatchArray} match
+   * @param {CallbackResponse} response
+   */
+  function skipIfhasPrecedingOrTrailingDot(match, response) {
+    const before = match.input[match.index - 1];
+    const after = match.input[match.index + match[0].length];
+    if (before === "." || after === ".") {
+      response.ignoreMatch();
+    }
+  }
+
+  /** skip vs abort vs ignore
+   *
+   * @skip   - The mode is still entered and exited normally (and contains rules apply),
+   *           but all content is held and added to the parent buffer rather than being
+   *           output when the mode ends.  Mostly used with `sublanguage` to build up
+   *           a single large buffer than can be parsed by sublanguage.
+   *
+   *             - The mode begin ands ends normally.
+   *             - Content matched is added to the parent mode buffer.
+   *             - The parser cursor is moved forward normally.
+   *
+   * @abort  - A hack placeholder until we have ignore.  Aborts the mode (as if it
+   *           never matched) but DOES NOT continue to match subsequent `contains`
+   *           modes.  Abort is bad/suboptimal because it can result in modes
+   *           farther down not getting applied because an earlier rule eats the
+   *           content but then aborts.
+   *
+   *             - The mode does not begin.
+   *             - Content matched by `begin` is added to the mode buffer.
+   *             - The parser cursor is moved forward accordingly.
+   *
+   * @ignore - Ignores the mode (as if it never matched) and continues to match any
+   *           subsequent `contains` modes.  Ignore isn't technically possible with
+   *           the current parser implementation.
+   *
+   *             - The mode does not begin.
+   *             - Content matched by `begin` is ignored.
+   *             - The parser cursor is not moved forward.
+   */
+
+  /**
+   * Compiles an individual mode
+   *
+   * This can raise an error if the mode contains certain detectable known logic
+   * issues.
+   * @param {Mode} mode
+   * @param {CompiledMode | null} [parent]
+   * @returns {CompiledMode | never}
+   */
+  function compileMode(mode, parent) {
+    const cmode = /** @type CompiledMode */ (mode);
+    if (mode.compiled) return cmode;
+    mode.compiled = true;
+
+    // __beforeBegin is considered private API, internal use only
+    mode.__beforeBegin = null;
+
+    mode.keywords = mode.keywords || mode.beginKeywords;
+
+    let kw_pattern = null;
+    if (typeof mode.keywords === "object") {
+      kw_pattern = mode.keywords.$pattern;
+      delete mode.keywords.$pattern;
+    }
+
+    if (mode.keywords) {
+      mode.keywords = compileKeywords(mode.keywords, language.case_insensitive);
+    }
+
+    // both are not allowed
+    if (mode.lexemes && kw_pattern) {
+      throw new Error("ERR: Prefer `keywords.$pattern` to `mode.lexemes`, BOTH are not allowed. (see mode reference) ");
+    }
+
+    // `mode.lexemes` was the old standard before we added and now recommend
+    // using `keywords.$pattern` to pass the keyword pattern
+    cmode.keywordPatternRe = langRe(mode.lexemes || kw_pattern || /\w+/, true);
+
+    if (parent) {
+      if (mode.beginKeywords) {
+        // for languages with keywords that include non-word characters checking for
+        // a word boundary is not sufficient, so instead we check for a word boundary
+        // or whitespace - this does no harm in any case since our keyword engine
+        // doesn't allow spaces in keywords anyways and we still check for the boundary
+        // first
+        mode.begin = '\\b(' + mode.beginKeywords.split(' ').join('|') + ')(?=\\b|\\s)';
+        mode.__beforeBegin = skipIfhasPrecedingOrTrailingDot;
+      }
+      if (!mode.begin) mode.begin = /\B|\b/;
+      cmode.beginRe = langRe(mode.begin);
+      if (mode.endSameAsBegin) mode.end = mode.begin;
+      if (!mode.end && !mode.endsWithParent) mode.end = /\B|\b/;
+      if (mode.end) cmode.endRe = langRe(mode.end);
+      cmode.terminator_end = source(mode.end) || '';
+      if (mode.endsWithParent && parent.terminator_end) {
+        cmode.terminator_end += (mode.end ? '|' : '') + parent.terminator_end;
+      }
+    }
+    if (mode.illegal) cmode.illegalRe = langRe(mode.illegal);
+    // eslint-disable-next-line no-undefined
+    if (mode.relevance === undefined) mode.relevance = 1;
+    if (!mode.contains) mode.contains = [];
+
+    mode.contains = [].concat(...mode.contains.map(function(c) {
+      return expand_or_clone_mode(c === 'self' ? mode : c);
+    }));
+    mode.contains.forEach(function(c) { compileMode(/** @type Mode */ (c), cmode); });
+
+    if (mode.starts) {
+      compileMode(mode.starts, parent);
+    }
+
+    cmode.matcher = buildModeRegex(cmode);
+    return cmode;
+  }
+
+  // self is not valid at the top-level
+  if (language.contains && language.contains.includes('self')) {
+    throw new Error("ERR: contains `self` is not supported at the top-level of a language.  See documentation.");
+  }
+  return compileMode(/** @type Mode */ (language));
+}
+
+/**
+ * Determines if a mode has a dependency on it's parent or not
+ *
+ * If a mode does have a parent dependency then often we need to clone it if
+ * it's used in multiple places so that each copy points to the correct parent,
+ * where-as modes without a parent can often safely be re-used at the bottom of
+ * a mode chain.
+ *
+ * @param {Mode | null} mode
+ * @returns {boolean} - is there a dependency on the parent?
+ * */
+function dependencyOnParent(mode) {
+  if (!mode) return false;
+
+  return mode.endsWithParent || dependencyOnParent(mode.starts);
+}
+
+/**
+ * Expands a mode or clones it if necessary
+ *
+ * This is necessary for modes with parental dependenceis (see notes on
+ * `dependencyOnParent`) and for nodes that have `variants` - which must then be
+ * exploded into their own individual modes at compile time.
+ *
+ * @param {Mode} mode
+ * @returns {Mode | Mode[]}
+ * */
+function expand_or_clone_mode(mode) {
+  if (mode.variants && !mode.cached_variants) {
+    mode.cached_variants = mode.variants.map(function(variant) {
+      return inherit(mode, { variants: null }, variant);
+    });
+  }
+
+  // EXPAND
+  // if we have variants then essentially "replace" the mode with the variants
+  // this happens in compileMode, where this function is called from
+  if (mode.cached_variants) {
+    return mode.cached_variants;
+  }
+
+  // CLONE
+  // if we have dependencies on parents then we need a unique
+  // instance of ourselves, so we can be reused with many
+  // different parents without issue
+  if (dependencyOnParent(mode)) {
+    return inherit(mode, { starts: mode.starts ? inherit(mode.starts) : null });
+  }
+
+  if (Object.isFrozen(mode)) {
+    return inherit(mode);
+  }
+
+  // no special dependency issues, just return ourselves
+  return mode;
+}
+
+/***********************************************
+  Keywords
+***********************************************/
+
+/**
+ * Given raw keywords from a language definition, compile them.
+ *
+ * @param {string | Record<string,string>} rawKeywords
+ * @param {boolean} case_insensitive
+ */
+function compileKeywords(rawKeywords, case_insensitive) {
+  /** @type KeywordDict */
+  var compiled_keywords = {};
+
+  if (typeof rawKeywords === 'string') { // string
+    splitAndCompile('keyword', rawKeywords);
+  } else {
+    Object.keys(rawKeywords).forEach(function(className) {
+      splitAndCompile(className, rawKeywords[className]);
+    });
+  }
+  return compiled_keywords;
+
+  // ---
+
+  /**
+   * Compiles an individual list of keywords
+   *
+   * Ex: "for if when while|5"
+   *
+   * @param {string} className
+   * @param {string} keywordList
+   */
+  function splitAndCompile(className, keywordList) {
+    if (case_insensitive) {
+      keywordList = keywordList.toLowerCase();
+    }
+    keywordList.split(' ').forEach(function(keyword) {
+      var pair = keyword.split('|');
+      compiled_keywords[pair[0]] = [className, scoreForKeyword(pair[0], pair[1])];
+    });
+  }
+}
+
+/**
+ * Returns the proper score for a given keyword
+ *
+ * Also takes into account comment keywords, which will be scored 0 UNLESS
+ * another score has been manually assigned.
+ * @param {string} keyword
+ * @param {string} [providedScore]
+ */
+function scoreForKeyword(keyword, providedScore) {
+  // manual scores always win over common keywords
+  // so you can force a score of 1 if you really insist
+  if (providedScore) {
+    return Number(providedScore);
+  }
+
+  return commonKeyword(keyword) ? 0 : 1;
+}
+
+/**
+ * Determines if a given keyword is common or not
+ *
+ * @param {string} keyword */
+function commonKeyword(keyword) {
+  return COMMON_KEYWORDS.includes(keyword.toLowerCase());
+}
+
+var version = "10.2.1";
+
+// @ts-nocheck
+
+function hasValueOrEmptyAttribute(value) {
+  return Boolean(value || value === "");
+}
+
+const Component = {
+  props: ["language", "code", "autodetect"],
+  data: function() {
+    return {
+      detectedLanguage: "",
+      unknownLanguage: false
+    };
+  },
+  computed: {
+    className() {
+      if (this.unknownLanguage) return "";
+
+      return "hljs " + this.detectedLanguage;
+    },
+    highlighted() {
+      // no idea what language to use, return raw code
+      if (!this.autoDetect && !hljs.getLanguage(this.language)) {
+        console.warn(`The language "${this.language}" you specified could not be found.`);
+        this.unknownLanguage = true;
+        return escapeHTML(this.code);
+      }
+
+      let result;
+      if (this.autoDetect) {
+        result = hljs.highlightAuto(this.code);
+        this.detectedLanguage = result.language;
+      } else {
+        result = hljs.highlight(this.language, this.code, this.ignoreIllegals);
+        this.detectectLanguage = this.language;
+      }
+      return result.value;
+    },
+    autoDetect() {
+      return !this.language || hasValueOrEmptyAttribute(this.autodetect);
+    },
+    ignoreIllegals() {
+      return true;
+    }
+  },
+  // this avoids needing to use a whole Vue compilation pipeline just
+  // to build Highlight.js
+  render(createElement) {
+    return createElement("pre", {}, [
+      createElement("code", {
+        class: this.className,
+        domProps: { innerHTML: this.highlighted }})
+    ]);
+  }
+  // template: `<pre><code :class="className" v-html="highlighted"></code></pre>`
+};
+
+const VuePlugin = {
+  install(Vue) {
+    Vue.component('highlightjs', Component);
+  }
+};
+
+/*
+Syntax highlighting with language autodetection.
+https://highlightjs.org/
+*/
+
+const escape$1 = escapeHTML;
+const inherit$1 = inherit;
+
+const { nodeStream: nodeStream$1, mergeStreams: mergeStreams$1 } = utils;
+const NO_MATCH = Symbol("nomatch");
+
+/**
+ * @param {any} hljs - object that is extended (legacy)
+ * @returns {HLJSApi}
+ */
+const HLJS = function(hljs) {
+  // Convenience variables for build-in objects
+  /** @type {unknown[]} */
+  var ArrayProto = [];
+
+  // Global internal variables used within the highlight.js library.
+  /** @type {Record<string, Language>} */
+  var languages = Object.create(null);
+  /** @type {Record<string, string>} */
+  var aliases = Object.create(null);
+  /** @type {HLJSPlugin[]} */
+  var plugins = [];
+
+  // safe/production mode - swallows more errors, tries to keep running
+  // even if a single syntax or parse hits a fatal error
+  var SAFE_MODE = true;
+  var fixMarkupRe = /(^(<[^>]+>|\t|)+|\n)/gm;
+  var LANGUAGE_NOT_FOUND = "Could not find the language '{}', did you forget to load/include a language module?";
+  /** @type {Language} */
+  const PLAINTEXT_LANGUAGE = { disableAutodetect: true, name: 'Plain text', contains: [] };
+
+  // Global options used when within external APIs. This is modified when
+  // calling the `hljs.configure` function.
+  /** @type HLJSOptions */
+  var options = {
+    noHighlightRe: /^(no-?highlight)$/i,
+    languageDetectRe: /\blang(?:uage)?-([\w-]+)\b/i,
+    classPrefix: 'hljs-',
+    tabReplace: null,
+    useBR: false,
+    languages: null,
+    // beta configuration options, subject to change, welcome to discuss
+    // https://github.com/highlightjs/highlight.js/issues/1086
+    __emitter: TokenTreeEmitter
+  };
+
+  /* Utility functions */
+
+  /**
+   * Tests a language name to see if highlighting should be skipped
+   * @param {string} languageName
+   */
+  function shouldNotHighlight(languageName) {
+    return options.noHighlightRe.test(languageName);
+  }
+
+  /**
+   * @param {HighlightedHTMLElement} block - the HTML element to determine language for
+   */
+  function blockLanguage(block) {
+    var classes = block.className + ' ';
+
+    classes += block.parentNode ? block.parentNode.className : '';
+
+    // language-* takes precedence over non-prefixed class names.
+    const match = options.languageDetectRe.exec(classes);
+    if (match) {
+      var language = getLanguage(match[1]);
+      if (!language) {
+        console.warn(LANGUAGE_NOT_FOUND.replace("{}", match[1]));
+        console.warn("Falling back to no-highlight mode for this block.", block);
+      }
+      return language ? match[1] : 'no-highlight';
+    }
+
+    return classes
+      .split(/\s+/)
+      .find((_class) => shouldNotHighlight(_class) || getLanguage(_class));
+  }
+
+  /**
+   * Core highlighting function.
+   *
+   * @param {string} languageName - the language to use for highlighting
+   * @param {string} code - the code to highlight
+   * @param {boolean} [ignoreIllegals] - whether to ignore illegal matches, default is to bail
+   * @param {Mode} [continuation] - current continuation mode, if any
+   *
+   * @returns {HighlightResult} Result - an object that represents the result
+   * @property {string} language - the language name
+   * @property {number} relevance - the relevance score
+   * @property {string} value - the highlighted HTML code
+   * @property {string} code - the original raw code
+   * @property {Mode} top - top of the current mode stack
+   * @property {boolean} illegal - indicates whether any illegal matches were found
+  */
+  function highlight(languageName, code, ignoreIllegals, continuation) {
+    /** @type {{ code: string, language: string, result?: any }} */
+    var context = {
+      code,
+      language: languageName
+    };
+    // the plugin can change the desired language or the code to be highlighted
+    // just be changing the object it was passed
+    fire("before:highlight", context);
+
+    // a before plugin can usurp the result completely by providing it's own
+    // in which case we don't even need to call highlight
+    var result = context.result ?
+      context.result :
+      _highlight(context.language, context.code, ignoreIllegals, continuation);
+
+    result.code = context.code;
+    // the plugin can change anything in result to suite it
+    fire("after:highlight", result);
+
+    return result;
+  }
+
+  /**
+   * private highlight that's used internally and does not fire callbacks
+   *
+   * @param {string} languageName - the language to use for highlighting
+   * @param {string} code - the code to highlight
+   * @param {boolean} [ignoreIllegals] - whether to ignore illegal matches, default is to bail
+   * @param {Mode} [continuation] - current continuation mode, if any
+  */
+  function _highlight(languageName, code, ignoreIllegals, continuation) {
+    var codeToHighlight = code;
+
+    /**
+     * Return keyword data if a match is a keyword
+     * @param {CompiledMode} mode - current mode
+     * @param {RegExpMatchArray} match - regexp match data
+     * @returns {KeywordData | false}
+     */
+    function keywordData(mode, match) {
+      var matchText = language.case_insensitive ? match[0].toLowerCase() : match[0];
+      return Object.prototype.hasOwnProperty.call(mode.keywords, matchText) && mode.keywords[matchText];
+    }
+
+    function processKeywords() {
+      if (!top.keywords) {
+        emitter.addText(mode_buffer);
+        return;
+      }
+
+      let last_index = 0;
+      top.keywordPatternRe.lastIndex = 0;
+      let match = top.keywordPatternRe.exec(mode_buffer);
+      let buf = "";
+
+      while (match) {
+        buf += mode_buffer.substring(last_index, match.index);
+        const data = keywordData(top, match);
+        if (data) {
+          const [kind, keywordRelevance] = data;
+          emitter.addText(buf);
+          buf = "";
+
+          relevance += keywordRelevance;
+          emitter.addKeyword(match[0], kind);
+        } else {
+          buf += match[0];
+        }
+        last_index = top.keywordPatternRe.lastIndex;
+        match = top.keywordPatternRe.exec(mode_buffer);
+      }
+      buf += mode_buffer.substr(last_index);
+      emitter.addText(buf);
+    }
+
+    function processSubLanguage() {
+      if (mode_buffer === "") return;
+      /** @type HighlightResult */
+      var result = null;
+
+      if (typeof top.subLanguage === 'string') {
+        if (!languages[top.subLanguage]) {
+          emitter.addText(mode_buffer);
+          return;
+        }
+        result = _highlight(top.subLanguage, mode_buffer, true, continuations[top.subLanguage]);
+        continuations[top.subLanguage] = result.top;
+      } else {
+        result = highlightAuto(mode_buffer, top.subLanguage.length ? top.subLanguage : null);
+      }
+
+      // Counting embedded language score towards the host language may be disabled
+      // with zeroing the containing mode relevance. Use case in point is Markdown that
+      // allows XML everywhere and makes every XML snippet to have a much larger Markdown
+      // score.
+      if (top.relevance > 0) {
+        relevance += result.relevance;
+      }
+      emitter.addSublanguage(result.emitter, result.language);
+    }
+
+    function processBuffer() {
+      if (top.subLanguage != null) {
+        processSubLanguage();
+      } else {
+        processKeywords();
+      }
+      mode_buffer = '';
+    }
+
+    /**
+     * @param {Mode} mode - new mode to start
+     */
+    function startNewMode(mode) {
+      if (mode.className) {
+        emitter.openNode(mode.className);
+      }
+      top = Object.create(mode, { parent: { value: top } });
+      return top;
+    }
+
+    /**
+     * @param {CompiledMode } mode - the mode to potentially end
+     * @param {RegExpMatchArray} match - the latest match
+     * @param {string} matchPlusRemainder - match plus remainder of content
+     * @returns {CompiledMode | void} - the next mode, or if void continue on in current mode
+     */
+    function endOfMode(mode, match, matchPlusRemainder) {
+      let matched = startsWith(mode.endRe, matchPlusRemainder);
+
+      if (matched) {
+        if (mode["on:end"]) {
+          const resp = new Response(mode);
+          mode["on:end"](match, resp);
+          if (resp.ignore) matched = false;
+        }
+
+        if (matched) {
+          while (mode.endsParent && mode.parent) {
+            mode = mode.parent;
+          }
+          return mode;
+        }
+      }
+      // even if on:end fires an `ignore` it's still possible
+      // that we might trigger the end node because of a parent mode
+      if (mode.endsWithParent) {
+        return endOfMode(mode.parent, match, matchPlusRemainder);
+      }
+    }
+
+    /**
+     * Handle matching but then ignoring a sequence of text
+     *
+     * @param {string} lexeme - string containing full match text
+     */
+    function doIgnore(lexeme) {
+      if (top.matcher.regexIndex === 0) {
+        // no more regexs to potentially match here, so we move the cursor forward one
+        // space
+        mode_buffer += lexeme[0];
+        return 1;
+      } else {
+        // no need to move the cursor, we still have additional regexes to try and
+        // match at this very spot
+        resumeScanAtSamePosition = true;
+        return 0;
+      }
+    }
+
+    /**
+     * Handle the start of a new potential mode match
+     *
+     * @param {EnhancedMatch} match - the current match
+     * @returns {number} how far to advance the parse cursor
+     */
+    function doBeginMatch(match) {
+      var lexeme = match[0];
+      var new_mode = match.rule;
+
+      const resp = new Response(new_mode);
+      // first internal before callbacks, then the public ones
+      const beforeCallbacks = [new_mode.__beforeBegin, new_mode["on:begin"]];
+      for (const cb of beforeCallbacks) {
+        if (!cb) continue;
+        cb(match, resp);
+        if (resp.ignore) return doIgnore(lexeme);
+      }
+
+      if (new_mode && new_mode.endSameAsBegin) {
+        new_mode.endRe = escape(lexeme);
+      }
+
+      if (new_mode.skip) {
+        mode_buffer += lexeme;
+      } else {
+        if (new_mode.excludeBegin) {
+          mode_buffer += lexeme;
+        }
+        processBuffer();
+        if (!new_mode.returnBegin && !new_mode.excludeBegin) {
+          mode_buffer = lexeme;
+        }
+      }
+      startNewMode(new_mode);
+      // if (mode["after:begin"]) {
+      //   let resp = new Response(mode);
+      //   mode["after:begin"](match, resp);
+      // }
+      return new_mode.returnBegin ? 0 : lexeme.length;
+    }
+
+    /**
+     * Handle the potential end of mode
+     *
+     * @param {RegExpMatchArray} match - the current match
+     */
+    function doEndMatch(match) {
+      var lexeme = match[0];
+      var matchPlusRemainder = codeToHighlight.substr(match.index);
+
+      var end_mode = endOfMode(top, match, matchPlusRemainder);
+      if (!end_mode) { return NO_MATCH; }
+
+      var origin = top;
+      if (origin.skip) {
+        mode_buffer += lexeme;
+      } else {
+        if (!(origin.returnEnd || origin.excludeEnd)) {
+          mode_buffer += lexeme;
+        }
+        processBuffer();
+        if (origin.excludeEnd) {
+          mode_buffer = lexeme;
+        }
+      }
+      do {
+        if (top.className) {
+          emitter.closeNode();
+        }
+        if (!top.skip && !top.subLanguage) {
+          relevance += top.relevance;
+        }
+        top = top.parent;
+      } while (top !== end_mode.parent);
+      if (end_mode.starts) {
+        if (end_mode.endSameAsBegin) {
+          end_mode.starts.endRe = end_mode.endRe;
+        }
+        startNewMode(end_mode.starts);
+      }
+      return origin.returnEnd ? 0 : lexeme.length;
+    }
+
+    function processContinuations() {
+      var list = [];
+      for (var current = top; current !== language; current = current.parent) {
+        if (current.className) {
+          list.unshift(current.className);
+        }
+      }
+      list.forEach(item => emitter.openNode(item));
+    }
+
+    /** @type {{type?: MatchType, index?: number, rule?: Mode}}} */
+    var lastMatch = {};
+
+    /**
+     *  Process an individual match
+     *
+     * @param {string} textBeforeMatch - text preceeding the match (since the last match)
+     * @param {EnhancedMatch} [match] - the match itself
+     */
+    function processLexeme(textBeforeMatch, match) {
+      var lexeme = match && match[0];
+
+      // add non-matched text to the current mode buffer
+      mode_buffer += textBeforeMatch;
+
+      if (lexeme == null) {
+        processBuffer();
+        return 0;
+      }
+
+      // we've found a 0 width match and we're stuck, so we need to advance
+      // this happens when we have badly behaved rules that have optional matchers to the degree that
+      // sometimes they can end up matching nothing at all
+      // Ref: https://github.com/highlightjs/highlight.js/issues/2140
+      if (lastMatch.type === "begin" && match.type === "end" && lastMatch.index === match.index && lexeme === "") {
+        // spit the "skipped" character that our regex choked on back into the output sequence
+        mode_buffer += codeToHighlight.slice(match.index, match.index + 1);
+        if (!SAFE_MODE) {
+          /** @type {AnnotatedError} */
+          const err = new Error('0 width match regex');
+          err.languageName = languageName;
+          err.badRule = lastMatch.rule;
+          throw err;
+        }
+        return 1;
+      }
+      lastMatch = match;
+
+      if (match.type === "begin") {
+        return doBeginMatch(match);
+      } else if (match.type === "illegal" && !ignoreIllegals) {
+        // illegal match, we do not continue processing
+        /** @type {AnnotatedError} */
+        const err = new Error('Illegal lexeme "' + lexeme + '" for mode "' + (top.className || '<unnamed>') + '"');
+        err.mode = top;
+        throw err;
+      } else if (match.type === "end") {
+        var processed = doEndMatch(match);
+        if (processed !== NO_MATCH) {
+          return processed;
+        }
+      }
+
+      // edge case for when illegal matches $ (end of line) which is technically
+      // a 0 width match but not a begin/end match so it's not caught by the
+      // first handler (when ignoreIllegals is true)
+      if (match.type === "illegal" && lexeme === "") {
+        // advance so we aren't stuck in an infinite loop
+        return 1;
+      }
+
+      // infinite loops are BAD, this is a last ditch catch all. if we have a
+      // decent number of iterations yet our index (cursor position in our
+      // parsing) still 3x behind our index then something is very wrong
+      // so we bail
+      if (iterations > 100000 && iterations > match.index * 3) {
+        const err = new Error('potential infinite loop, way more iterations than matches');
+        throw err;
+      }
+
+      /*
+      Why might be find ourselves here?  Only one occasion now.  An end match that was
+      triggered but could not be completed.  When might this happen?  When an `endSameasBegin`
+      rule sets the end rule to a specific match.  Since the overall mode termination rule that's
+      being used to scan the text isn't recompiled that means that any match that LOOKS like
+      the end (but is not, because it is not an exact match to the beginning) will
+      end up here.  A definite end match, but when `doEndMatch` tries to "reapply"
+      the end rule and fails to match, we wind up here, and just silently ignore the end.
+
+      This causes no real harm other than stopping a few times too many.
+      */
+
+      mode_buffer += lexeme;
+      return lexeme.length;
+    }
+
+    var language = getLanguage(languageName);
+    if (!language) {
+      console.error(LANGUAGE_NOT_FOUND.replace("{}", languageName));
+      throw new Error('Unknown language: "' + languageName + '"');
+    }
+
+    var md = compileLanguage(language);
+    var result = '';
+    /** @type {CompiledMode} */
+    var top = continuation || md;
+    /** @type Record<string,Mode> */
+    var continuations = {}; // keep continuations for sub-languages
+    var emitter = new options.__emitter(options);
+    processContinuations();
+    var mode_buffer = '';
+    var relevance = 0;
+    var index = 0;
+    var iterations = 0;
+    var resumeScanAtSamePosition = false;
+
+    try {
+      top.matcher.considerAll();
+
+      for (;;) {
+        iterations++;
+        if (resumeScanAtSamePosition) {
+          // only regexes not matched previously will now be
+          // considered for a potential match
+          resumeScanAtSamePosition = false;
+        } else {
+          top.matcher.considerAll();
+        }
+        top.matcher.lastIndex = index;
+
+        const match = top.matcher.exec(codeToHighlight);
+        // console.log("match", match[0], match.rule && match.rule.begin)
+
+        if (!match) break;
+
+        const beforeMatch = codeToHighlight.substring(index, match.index);
+        const processedCount = processLexeme(beforeMatch, match);
+        index = match.index + processedCount;
+      }
+      processLexeme(codeToHighlight.substr(index));
+      emitter.closeAllNodes();
+      emitter.finalize();
+      result = emitter.toHTML();
+
+      return {
+        relevance: relevance,
+        value: result,
+        language: languageName,
+        illegal: false,
+        emitter: emitter,
+        top: top
+      };
+    } catch (err) {
+      if (err.message && err.message.includes('Illegal')) {
+        return {
+          illegal: true,
+          illegalBy: {
+            msg: err.message,
+            context: codeToHighlight.slice(index - 100, index + 100),
+            mode: err.mode
+          },
+          sofar: result,
+          relevance: 0,
+          value: escape$1(codeToHighlight),
+          emitter: emitter
+        };
+      } else if (SAFE_MODE) {
+        return {
+          illegal: false,
+          relevance: 0,
+          value: escape$1(codeToHighlight),
+          emitter: emitter,
+          language: languageName,
+          top: top,
+          errorRaised: err
+        };
+      } else {
+        throw err;
+      }
+    }
+  }
+
+  /**
+   * returns a valid highlight result, without actually doing any actual work,
+   * auto highlight starts with this and it's possible for small snippets that
+   * auto-detection may not find a better match
+   * @param {string} code
+   * @returns {HighlightResult}
+   */
+  function justTextHighlightResult(code) {
+    const result = {
+      relevance: 0,
+      emitter: new options.__emitter(options),
+      value: escape$1(code),
+      illegal: false,
+      top: PLAINTEXT_LANGUAGE
+    };
+    result.emitter.addText(code);
+    return result;
+  }
+
+  /**
+  Highlighting with language detection. Accepts a string with the code to
+  highlight. Returns an object with the following properties:
+
+  - language (detected language)
+  - relevance (int)
+  - value (an HTML string with highlighting markup)
+  - second_best (object with the same structure for second-best heuristically
+    detected language, may be absent)
+
+    @param {string} code
+    @param {Array<string>} [languageSubset]
+    @returns {AutoHighlightResult}
+  */
+  function highlightAuto(code, languageSubset) {
+    languageSubset = languageSubset || options.languages || Object.keys(languages);
+    var result = justTextHighlightResult(code);
+    var secondBest = result;
+    languageSubset.filter(getLanguage).filter(autoDetection).forEach(function(name) {
+      var current = _highlight(name, code, false);
+      current.language = name;
+      if (current.relevance > secondBest.relevance) {
+        secondBest = current;
+      }
+      if (current.relevance > result.relevance) {
+        secondBest = result;
+        result = current;
+      }
+    });
+    if (secondBest.language) {
+      // second_best (with underscore) is the expected API
+      result.second_best = secondBest;
+    }
+    return result;
+  }
+
+  /**
+  Post-processing of the highlighted markup:
+
+  - replace TABs with something more useful
+  - replace real line-breaks with '<br>' for non-pre containers
+
+    @param {string} html
+    @returns {string}
+  */
+  function fixMarkup(html) {
+    if (!(options.tabReplace || options.useBR)) {
+      return html;
+    }
+
+    return html.replace(fixMarkupRe, match => {
+      if (match === '\n') {
+        return options.useBR ? '<br>' : match;
+      } else if (options.tabReplace) {
+        return match.replace(/\t/g, options.tabReplace);
+      }
+      return match;
+    });
+  }
+
+  /**
+   * Builds new class name for block given the language name
+   *
+   * @param {string} prevClassName
+   * @param {string} [currentLang]
+   * @param {string} [resultLang]
+   */
+  function buildClassName(prevClassName, currentLang, resultLang) {
+    var language = currentLang ? aliases[currentLang] : resultLang;
+    var result = [prevClassName.trim()];
+
+    if (!prevClassName.match(/\bhljs\b/)) {
+      result.push('hljs');
+    }
+
+    if (!prevClassName.includes(language)) {
+      result.push(language);
+    }
+
+    return result.join(' ').trim();
+  }
+
+  /**
+   * Applies highlighting to a DOM node containing code. Accepts a DOM node and
+   * two optional parameters for fixMarkup.
+   *
+   * @param {HighlightedHTMLElement} element - the HTML element to highlight
+  */
+  function highlightBlock(element) {
+    /** @type HTMLElement */
+    let node = null;
+    const language = blockLanguage(element);
+
+    if (shouldNotHighlight(language)) return;
+
+    fire("before:highlightBlock",
+      { block: element, language: language });
+    if (options.useBR) {
+      // node = document.createElement('div');
+      node = document.createElement('view');
+      node.innerHTML = element.innerHTML.replace(/\n/g, '').replace(/<br[ /]*>/g, '\n');
+    } else {
+      node = element;
+    }
+    const text = node.textContent;
+    const result = language ? highlight(language, text, true) : highlightAuto(text);
+
+    const originalStream = nodeStream$1(node);
+    if (originalStream.length) {
+      // const resultNode = document.createElement('div');
+      const resultNode = document.createElement('view');
+      resultNode.innerHTML = result.value;
+      result.value = mergeStreams$1(originalStream, nodeStream$1(resultNode), text);
+    }
+    result.value = fixMarkup(result.value);
+
+    fire("after:highlightBlock", { block: element, result: result });
+
+    element.innerHTML = result.value;
+    element.className = buildClassName(element.className, language, result.language);
+    element.result = {
+      language: result.language,
+      // TODO: remove with version 11.0
+      re: result.relevance,
+      relavance: result.relevance
+    };
+    if (result.second_best) {
+      element.second_best = {
+        language: result.second_best.language,
+        // TODO: remove with version 11.0
+        re: result.second_best.relevance,
+        relavance: result.second_best.relevance
+      };
+    }
+  }
+
+  /**
+   * Updates highlight.js global options with the passed options
+   *
+   * @param {{}} userOptions
+   */
+  function configure(userOptions) {
+    options = inherit$1(options, userOptions);
+  }
+
+  /**
+   * Highlights to all <pre><code> blocks on a page
+   *
+   * @type {Function & {called?: boolean}}
+   */
+  const initHighlighting = () => {
+    if (initHighlighting.called) return;
+    initHighlighting.called = true;
+    var blocks = document.querySelectorAll('pre code')
+    
+  };
+
+  // Higlights all when DOMContentLoaded fires
+  function initHighlightingOnLoad() {
+    // @ts-ignore
+    window.addEventListener('DOMContentLoaded', initHighlighting, false);
+  }
+
+  /**
+   * Register a language grammar module
+   *
+   * @param {string} languageName
+   * @param {LanguageFn} languageDefinition
+   */
+  function registerLanguage(languageName, languageDefinition) {
+    var lang = null;
+    try {
+      lang = languageDefinition(hljs);
+    } catch (error) {
+      console.error("Language definition for '{}' could not be registered.".replace("{}", languageName));
+      // hard or soft error
+      if (!SAFE_MODE) { throw error; } else { console.error(error); }
+      // languages that have serious errors are replaced with essentially a
+      // "plaintext" stand-in so that the code blocks will still get normal
+      // css classes applied to them - and one bad language won't break the
+      // entire highlighter
+      lang = PLAINTEXT_LANGUAGE;
+    }
+    // give it a temporary name if it doesn't have one in the meta-data
+    if (!lang.name) lang.name = languageName;
+    languages[languageName] = lang;
+    lang.rawDefinition = languageDefinition.bind(null, hljs);
+
+    if (lang.aliases) {
+      registerAliases(lang.aliases, { languageName });
+    }
+  }
+
+  /**
+   * @returns {string[]} List of language internal names
+   */
+  function listLanguages() {
+    return Object.keys(languages);
+  }
+
+  /**
+    intended usage: When one language truly requires another
+
+    Unlike `getLanguage`, this will throw when the requested language
+    is not available.
+
+    @param {string} name - name of the language to fetch/require
+    @returns {Language | never}
+  */
+  function requireLanguage(name) {
+    var lang = getLanguage(name);
+    if (lang) { return lang; }
+
+    var err = new Error('The \'{}\' language is required, but not loaded.'.replace('{}', name));
+    throw err;
+  }
+
+  /**
+   * @param {string} name - name of the language to retrieve
+   * @returns {Language | undefined}
+   */
+  function getLanguage(name) {
+    name = (name || '').toLowerCase();
+    return languages[name] || languages[aliases[name]];
+  }
+
+  /**
+   *
+   * @param {string|string[]} aliasList - single alias or list of aliases
+   * @param {{languageName: string}} opts
+   */
+  function registerAliases(aliasList, { languageName }) {
+    if (typeof aliasList === 'string') {
+      aliasList = [aliasList];
+    }
+    aliasList.forEach(alias => { aliases[alias] = languageName; });
+  }
+
+  /**
+   * Determines if a given language has auto-detection enabled
+   * @param {string} name - name of the language
+   */
+  function autoDetection(name) {
+    var lang = getLanguage(name);
+    return lang && !lang.disableAutodetect;
+  }
+
+  /**
+   * @param {HLJSPlugin} plugin
+   */
+  function addPlugin(plugin) {
+    plugins.push(plugin);
+  }
+
+  /**
+   *
+   * @param {PluginEvent} event
+   * @param {any} args
+   */
+  function fire(event, args) {
+    var cb = event;
+    plugins.forEach(function(plugin) {
+      if (plugin[cb]) {
+        plugin[cb](args);
+      }
+    });
+  }
+
+  /* fixMarkup is deprecated and will be removed entirely in v11 */
+  function deprecate_fixMarkup(arg) {
+    console.warn("fixMarkup is deprecated and will be removed entirely in v11.0");
+    console.warn("Please see https://github.com/highlightjs/highlight.js/issues/2534");
+
+    return fixMarkup(arg)
+  }
+
+  /* Interface definition */
+  Object.assign(hljs, {
+    highlight,
+    highlightAuto,
+    fixMarkup: deprecate_fixMarkup,
+    highlightBlock,
+    configure,
+    initHighlighting,
+    initHighlightingOnLoad,
+    registerLanguage,
+    listLanguages,
+    getLanguage,
+    registerAliases,
+    requireLanguage,
+    autoDetection,
+    inherit: inherit$1,
+    addPlugin,
+    // plugins for frameworks
+    vuePlugin: VuePlugin
+  });
+
+  hljs.debugMode = function() { SAFE_MODE = false; };
+  hljs.safeMode = function() { SAFE_MODE = true; };
+  hljs.versionString = version;
+
+  for (const key in MODES) {
+    // @ts-ignore
+    if (typeof MODES[key] === "object") {
+      // @ts-ignore
+      deepFreeze(MODES[key]);
+    }
+  }
+
+  // merge all the modes/regexs into our main object
+  Object.assign(hljs, MODES);
+
+  return hljs;
+};
+
+// export an "instance" of the highlighter
+var highlight = HLJS({});
+
+module.exports = highlight;

+ 2 - 0
components/cmder-MDParserHighlight/highlight.js/lib/highlight.js

@@ -0,0 +1,2 @@
+// This file has been deprecated in favor of core.js
+var hljs = require('./core');

+ 194 - 0
components/cmder-MDParserHighlight/highlight.js/lib/index.js

@@ -0,0 +1,194 @@
+var hljs = require('./core');
+
+hljs.registerLanguage('1c', require('./languages/1c'));
+hljs.registerLanguage('abnf', require('./languages/abnf'));
+hljs.registerLanguage('accesslog', require('./languages/accesslog'));
+hljs.registerLanguage('actionscript', require('./languages/actionscript'));
+hljs.registerLanguage('ada', require('./languages/ada'));
+hljs.registerLanguage('angelscript', require('./languages/angelscript'));
+hljs.registerLanguage('apache', require('./languages/apache'));
+hljs.registerLanguage('applescript', require('./languages/applescript'));
+hljs.registerLanguage('arcade', require('./languages/arcade'));
+hljs.registerLanguage('c-like', require('./languages/c-like'));
+hljs.registerLanguage('cpp', require('./languages/cpp'));
+hljs.registerLanguage('arduino', require('./languages/arduino'));
+hljs.registerLanguage('armasm', require('./languages/armasm'));
+hljs.registerLanguage('xml', require('./languages/xml'));
+hljs.registerLanguage('asciidoc', require('./languages/asciidoc'));
+hljs.registerLanguage('aspectj', require('./languages/aspectj'));
+hljs.registerLanguage('autohotkey', require('./languages/autohotkey'));
+hljs.registerLanguage('autoit', require('./languages/autoit'));
+hljs.registerLanguage('avrasm', require('./languages/avrasm'));
+hljs.registerLanguage('awk', require('./languages/awk'));
+hljs.registerLanguage('axapta', require('./languages/axapta'));
+hljs.registerLanguage('bash', require('./languages/bash'));
+hljs.registerLanguage('basic', require('./languages/basic'));
+hljs.registerLanguage('bnf', require('./languages/bnf'));
+hljs.registerLanguage('brainfuck', require('./languages/brainfuck'));
+hljs.registerLanguage('c', require('./languages/c'));
+hljs.registerLanguage('cal', require('./languages/cal'));
+hljs.registerLanguage('capnproto', require('./languages/capnproto'));
+hljs.registerLanguage('ceylon', require('./languages/ceylon'));
+hljs.registerLanguage('clean', require('./languages/clean'));
+hljs.registerLanguage('clojure', require('./languages/clojure'));
+hljs.registerLanguage('clojure-repl', require('./languages/clojure-repl'));
+hljs.registerLanguage('cmake', require('./languages/cmake'));
+hljs.registerLanguage('coffeescript', require('./languages/coffeescript'));
+hljs.registerLanguage('coq', require('./languages/coq'));
+hljs.registerLanguage('cos', require('./languages/cos'));
+hljs.registerLanguage('crmsh', require('./languages/crmsh'));
+hljs.registerLanguage('crystal', require('./languages/crystal'));
+hljs.registerLanguage('csharp', require('./languages/csharp'));
+hljs.registerLanguage('csp', require('./languages/csp'));
+hljs.registerLanguage('css', require('./languages/css'));
+hljs.registerLanguage('d', require('./languages/d'));
+hljs.registerLanguage('markdown', require('./languages/markdown'));
+hljs.registerLanguage('dart', require('./languages/dart'));
+hljs.registerLanguage('delphi', require('./languages/delphi'));
+hljs.registerLanguage('diff', require('./languages/diff'));
+hljs.registerLanguage('django', require('./languages/django'));
+hljs.registerLanguage('dns', require('./languages/dns'));
+hljs.registerLanguage('dockerfile', require('./languages/dockerfile'));
+hljs.registerLanguage('dos', require('./languages/dos'));
+hljs.registerLanguage('dsconfig', require('./languages/dsconfig'));
+hljs.registerLanguage('dts', require('./languages/dts'));
+hljs.registerLanguage('dust', require('./languages/dust'));
+hljs.registerLanguage('ebnf', require('./languages/ebnf'));
+hljs.registerLanguage('elixir', require('./languages/elixir'));
+hljs.registerLanguage('elm', require('./languages/elm'));
+hljs.registerLanguage('ruby', require('./languages/ruby'));
+hljs.registerLanguage('erb', require('./languages/erb'));
+hljs.registerLanguage('erlang-repl', require('./languages/erlang-repl'));
+hljs.registerLanguage('erlang', require('./languages/erlang'));
+hljs.registerLanguage('excel', require('./languages/excel'));
+hljs.registerLanguage('fix', require('./languages/fix'));
+hljs.registerLanguage('flix', require('./languages/flix'));
+hljs.registerLanguage('fortran', require('./languages/fortran'));
+hljs.registerLanguage('fsharp', require('./languages/fsharp'));
+hljs.registerLanguage('gams', require('./languages/gams'));
+hljs.registerLanguage('gauss', require('./languages/gauss'));
+hljs.registerLanguage('gcode', require('./languages/gcode'));
+hljs.registerLanguage('gherkin', require('./languages/gherkin'));
+hljs.registerLanguage('glsl', require('./languages/glsl'));
+hljs.registerLanguage('gml', require('./languages/gml'));
+hljs.registerLanguage('go', require('./languages/go'));
+hljs.registerLanguage('golo', require('./languages/golo'));
+hljs.registerLanguage('gradle', require('./languages/gradle'));
+hljs.registerLanguage('groovy', require('./languages/groovy'));
+hljs.registerLanguage('haml', require('./languages/haml'));
+hljs.registerLanguage('handlebars', require('./languages/handlebars'));
+hljs.registerLanguage('haskell', require('./languages/haskell'));
+hljs.registerLanguage('haxe', require('./languages/haxe'));
+hljs.registerLanguage('hsp', require('./languages/hsp'));
+hljs.registerLanguage('htmlbars', require('./languages/htmlbars'));
+hljs.registerLanguage('http', require('./languages/http'));
+hljs.registerLanguage('hy', require('./languages/hy'));
+hljs.registerLanguage('inform7', require('./languages/inform7'));
+hljs.registerLanguage('ini', require('./languages/ini'));
+hljs.registerLanguage('irpf90', require('./languages/irpf90'));
+hljs.registerLanguage('isbl', require('./languages/isbl'));
+hljs.registerLanguage('java', require('./languages/java'));
+hljs.registerLanguage('javascript', require('./languages/javascript'));
+hljs.registerLanguage('typescript', require('./languages/typescript'));
+hljs.registerLanguage('javascript.old', require('./languages/javascript.old'));
+hljs.registerLanguage('jboss-cli', require('./languages/jboss-cli'));
+hljs.registerLanguage('json', require('./languages/json'));
+hljs.registerLanguage('julia', require('./languages/julia'));
+hljs.registerLanguage('julia-repl', require('./languages/julia-repl'));
+hljs.registerLanguage('kotlin', require('./languages/kotlin'));
+hljs.registerLanguage('lasso', require('./languages/lasso'));
+hljs.registerLanguage('latex', require('./languages/latex'));
+hljs.registerLanguage('ldif', require('./languages/ldif'));
+hljs.registerLanguage('leaf', require('./languages/leaf'));
+hljs.registerLanguage('less', require('./languages/less'));
+hljs.registerLanguage('lisp', require('./languages/lisp'));
+hljs.registerLanguage('livecodeserver', require('./languages/livecodeserver'));
+hljs.registerLanguage('livescript', require('./languages/livescript'));
+hljs.registerLanguage('llvm', require('./languages/llvm'));
+hljs.registerLanguage('lsl', require('./languages/lsl'));
+hljs.registerLanguage('lua', require('./languages/lua'));
+hljs.registerLanguage('makefile', require('./languages/makefile'));
+hljs.registerLanguage('mathematica', require('./languages/mathematica'));
+hljs.registerLanguage('matlab', require('./languages/matlab'));
+hljs.registerLanguage('maxima', require('./languages/maxima'));
+hljs.registerLanguage('mel', require('./languages/mel'));
+hljs.registerLanguage('mercury', require('./languages/mercury'));
+hljs.registerLanguage('mipsasm', require('./languages/mipsasm'));
+hljs.registerLanguage('mizar', require('./languages/mizar'));
+hljs.registerLanguage('perl', require('./languages/perl'));
+hljs.registerLanguage('mojolicious', require('./languages/mojolicious'));
+hljs.registerLanguage('monkey', require('./languages/monkey'));
+hljs.registerLanguage('moonscript', require('./languages/moonscript'));
+hljs.registerLanguage('n1ql', require('./languages/n1ql'));
+hljs.registerLanguage('nginx', require('./languages/nginx'));
+hljs.registerLanguage('nim', require('./languages/nim'));
+hljs.registerLanguage('nix', require('./languages/nix'));
+hljs.registerLanguage('nsis', require('./languages/nsis'));
+hljs.registerLanguage('objectivec', require('./languages/objectivec'));
+hljs.registerLanguage('ocaml', require('./languages/ocaml'));
+hljs.registerLanguage('openscad', require('./languages/openscad'));
+hljs.registerLanguage('oxygene', require('./languages/oxygene'));
+hljs.registerLanguage('parser3', require('./languages/parser3'));
+hljs.registerLanguage('pf', require('./languages/pf'));
+hljs.registerLanguage('pgsql', require('./languages/pgsql'));
+hljs.registerLanguage('php', require('./languages/php'));
+hljs.registerLanguage('php-template', require('./languages/php-template'));
+hljs.registerLanguage('plaintext', require('./languages/plaintext'));
+hljs.registerLanguage('pony', require('./languages/pony'));
+hljs.registerLanguage('powershell', require('./languages/powershell'));
+hljs.registerLanguage('processing', require('./languages/processing'));
+hljs.registerLanguage('profile', require('./languages/profile'));
+hljs.registerLanguage('prolog', require('./languages/prolog'));
+hljs.registerLanguage('properties', require('./languages/properties'));
+hljs.registerLanguage('protobuf', require('./languages/protobuf'));
+hljs.registerLanguage('puppet', require('./languages/puppet'));
+hljs.registerLanguage('purebasic', require('./languages/purebasic'));
+hljs.registerLanguage('python', require('./languages/python'));
+hljs.registerLanguage('python-repl', require('./languages/python-repl'));
+hljs.registerLanguage('q', require('./languages/q'));
+hljs.registerLanguage('qml', require('./languages/qml'));
+hljs.registerLanguage('r', require('./languages/r'));
+hljs.registerLanguage('reasonml', require('./languages/reasonml'));
+hljs.registerLanguage('rib', require('./languages/rib'));
+hljs.registerLanguage('roboconf', require('./languages/roboconf'));
+hljs.registerLanguage('routeros', require('./languages/routeros'));
+hljs.registerLanguage('rsl', require('./languages/rsl'));
+hljs.registerLanguage('ruleslanguage', require('./languages/ruleslanguage'));
+hljs.registerLanguage('rust', require('./languages/rust'));
+hljs.registerLanguage('sas', require('./languages/sas'));
+hljs.registerLanguage('scala', require('./languages/scala'));
+hljs.registerLanguage('scheme', require('./languages/scheme'));
+hljs.registerLanguage('scilab', require('./languages/scilab'));
+hljs.registerLanguage('scss', require('./languages/scss'));
+hljs.registerLanguage('shell', require('./languages/shell'));
+hljs.registerLanguage('smali', require('./languages/smali'));
+hljs.registerLanguage('smalltalk', require('./languages/smalltalk'));
+hljs.registerLanguage('sml', require('./languages/sml'));
+hljs.registerLanguage('sqf', require('./languages/sqf'));
+hljs.registerLanguage('sql', require('./languages/sql'));
+hljs.registerLanguage('stan', require('./languages/stan'));
+hljs.registerLanguage('stata', require('./languages/stata'));
+hljs.registerLanguage('step21', require('./languages/step21'));
+hljs.registerLanguage('stylus', require('./languages/stylus'));
+hljs.registerLanguage('subunit', require('./languages/subunit'));
+hljs.registerLanguage('swift', require('./languages/swift'));
+hljs.registerLanguage('taggerscript', require('./languages/taggerscript'));
+hljs.registerLanguage('yaml', require('./languages/yaml'));
+hljs.registerLanguage('tap', require('./languages/tap'));
+hljs.registerLanguage('tcl', require('./languages/tcl'));
+hljs.registerLanguage('thrift', require('./languages/thrift'));
+hljs.registerLanguage('tp', require('./languages/tp'));
+hljs.registerLanguage('twig', require('./languages/twig'));
+hljs.registerLanguage('vala', require('./languages/vala'));
+hljs.registerLanguage('vbnet', require('./languages/vbnet'));
+hljs.registerLanguage('vbscript', require('./languages/vbscript'));
+hljs.registerLanguage('vbscript-html', require('./languages/vbscript-html'));
+hljs.registerLanguage('verilog', require('./languages/verilog'));
+hljs.registerLanguage('vhdl', require('./languages/vhdl'));
+hljs.registerLanguage('vim', require('./languages/vim'));
+hljs.registerLanguage('x86asm', require('./languages/x86asm'));
+hljs.registerLanguage('xl', require('./languages/xl'));
+hljs.registerLanguage('xquery', require('./languages/xquery'));
+hljs.registerLanguage('zephir', require('./languages/zephir'));
+
+module.exports = hljs;

+ 521 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/1c.js

@@ -0,0 +1,521 @@
+/*
+Language: 1C:Enterprise
+Author: Stanislav Belov <stbelov@gmail.com>
+Description: built-in language 1C:Enterprise (v7, v8)
+Category: enterprise
+*/
+
+function _1c(hljs) {
+
+  // общий паттерн для определения идентификаторов
+  var UNDERSCORE_IDENT_RE = '[A-Za-zА-Яа-яёЁ_][A-Za-zА-Яа-яёЁ_0-9]+';
+
+  // v7 уникальные ключевые слова, отсутствующие в v8 ==> keyword
+  var v7_keywords =
+  'далее ';
+
+  // v8 ключевые слова ==> keyword
+  var v8_keywords =
+  'возврат вызватьисключение выполнить для если и из или иначе иначеесли исключение каждого конецесли ' +
+  'конецпопытки конеццикла не новый перейти перем по пока попытка прервать продолжить тогда цикл экспорт ';
+
+  // keyword : ключевые слова
+  var KEYWORD = v7_keywords + v8_keywords;
+
+  // v7 уникальные директивы, отсутствующие в v8 ==> meta-keyword
+  var v7_meta_keywords =
+  'загрузитьизфайла ';
+
+  // v8 ключевые слова в инструкциях препроцессора, директивах компиляции, аннотациях ==> meta-keyword
+  var v8_meta_keywords =
+  'вебклиент вместо внешнеесоединение клиент конецобласти мобильноеприложениеклиент мобильноеприложениесервер ' +
+  'наклиенте наклиентенасервере наклиентенасерверебезконтекста насервере насерверебезконтекста область перед ' +
+  'после сервер толстыйклиентобычноеприложение толстыйклиентуправляемоеприложение тонкийклиент ';
+
+  // meta-keyword : ключевые слова в инструкциях препроцессора, директивах компиляции, аннотациях
+  var METAKEYWORD = v7_meta_keywords + v8_meta_keywords;
+
+  // v7 системные константы ==> built_in
+  var v7_system_constants =
+  'разделительстраниц разделительстрок символтабуляции ';
+
+  // v7 уникальные методы глобального контекста, отсутствующие в v8 ==> built_in
+  var v7_global_context_methods =
+  'ansitooem oemtoansi ввестивидсубконто ввестиперечисление ввестипериод ввестиплансчетов выбранныйплансчетов ' +
+  'датагод датамесяц датачисло заголовоксистемы значениевстроку значениеизстроки каталогиб каталогпользователя ' +
+  'кодсимв конгода конецпериодаби конецрассчитанногопериодаби конецстандартногоинтервала конквартала конмесяца ' +
+  'коннедели лог лог10 максимальноеколичествосубконто названиеинтерфейса названиенабораправ назначитьвид ' +
+  'назначитьсчет найтиссылки началопериодаби началостандартногоинтервала начгода начквартала начмесяца ' +
+  'начнедели номерднягода номерднянедели номернеделигода обработкаожидания основнойжурналрасчетов ' +
+  'основнойплансчетов основнойязык очиститьокносообщений периодстр получитьвремята получитьдатута ' +
+  'получитьдокументта получитьзначенияотбора получитьпозициюта получитьпустоезначение получитьта ' +
+  'префиксавтонумерации пропись пустоезначение разм разобратьпозициюдокумента рассчитатьрегистрына ' +
+  'рассчитатьрегистрыпо симв создатьобъект статусвозврата стрколичествострок сформироватьпозициюдокумента ' +
+  'счетпокоду текущеевремя типзначения типзначениястр установитьтана установитьтапо фиксшаблон шаблон ';
+
+  // v8 методы глобального контекста ==> built_in
+  var v8_global_context_methods =
+  'acos asin atan base64значение base64строка cos exp log log10 pow sin sqrt tan xmlзначение xmlстрока ' +
+  'xmlтип xmlтипзнч активноеокно безопасныйрежим безопасныйрежимразделенияданных булево ввестидату ввестизначение ' +
+  'ввестистроку ввестичисло возможностьчтенияxml вопрос восстановитьзначение врег выгрузитьжурналрегистрации ' +
+  'выполнитьобработкуоповещения выполнитьпроверкуправдоступа вычислить год данныеформывзначение дата день деньгода ' +
+  'деньнедели добавитьмесяц заблокироватьданныедляредактирования заблокироватьработупользователя завершитьработусистемы ' +
+  'загрузитьвнешнююкомпоненту закрытьсправку записатьjson записатьxml записатьдатуjson записьжурналарегистрации ' +
+  'заполнитьзначениясвойств запроситьразрешениепользователя запуститьприложение запуститьсистему зафиксироватьтранзакцию ' +
+  'значениевданныеформы значениевстрокувнутр значениевфайл значениезаполнено значениеизстрокивнутр значениеизфайла ' +
+  'изxmlтипа импортмоделиxdto имякомпьютера имяпользователя инициализироватьпредопределенныеданные информацияобошибке ' +
+  'каталогбиблиотекимобильногоустройства каталогвременныхфайлов каталогдокументов каталогпрограммы кодироватьстроку ' +
+  'кодлокализацииинформационнойбазы кодсимвола командасистемы конецгода конецдня конецквартала конецмесяца конецминуты ' +
+  'конецнедели конецчаса конфигурациябазыданныхизмененадинамически конфигурацияизменена копироватьданныеформы ' +
+  'копироватьфайл краткоепредставлениеошибки лев макс местноевремя месяц мин минута монопольныйрежим найти ' +
+  'найтинедопустимыесимволыxml найтиокнопонавигационнойссылке найтипомеченныенаудаление найтипоссылкам найтифайлы ' +
+  'началогода началодня началоквартала началомесяца началоминуты началонедели началочаса начатьзапросразрешенияпользователя ' +
+  'начатьзапускприложения начатькопированиефайла начатьперемещениефайла начатьподключениевнешнейкомпоненты ' +
+  'начатьподключениерасширенияработыскриптографией начатьподключениерасширенияработысфайлами начатьпоискфайлов ' +
+  'начатьполучениекаталогавременныхфайлов начатьполучениекаталогадокументов начатьполучениерабочегокаталогаданныхпользователя ' +
+  'начатьполучениефайлов начатьпомещениефайла начатьпомещениефайлов начатьсозданиедвоичныхданныхизфайла начатьсозданиекаталога ' +
+  'начатьтранзакцию начатьудалениефайлов начатьустановкувнешнейкомпоненты начатьустановкурасширенияработыскриптографией ' +
+  'начатьустановкурасширенияработысфайлами неделягода необходимостьзавершениясоединения номерсеансаинформационнойбазы ' +
+  'номерсоединенияинформационнойбазы нрег нстр обновитьинтерфейс обновитьнумерациюобъектов обновитьповторноиспользуемыезначения ' +
+  'обработкапрерыванияпользователя объединитьфайлы окр описаниеошибки оповестить оповеститьобизменении ' +
+  'отключитьобработчикзапросанастроекклиенталицензирования отключитьобработчикожидания отключитьобработчикоповещения ' +
+  'открытьзначение открытьиндекссправки открытьсодержаниесправки открытьсправку открытьформу открытьформумодально ' +
+  'отменитьтранзакцию очиститьжурналрегистрации очиститьнастройкипользователя очиститьсообщения параметрыдоступа ' +
+  'перейтипонавигационнойссылке переместитьфайл подключитьвнешнююкомпоненту ' +
+  'подключитьобработчикзапросанастроекклиенталицензирования подключитьобработчикожидания подключитьобработчикоповещения ' +
+  'подключитьрасширениеработыскриптографией подключитьрасширениеработысфайлами подробноепредставлениеошибки ' +
+  'показатьвводдаты показатьвводзначения показатьвводстроки показатьвводчисла показатьвопрос показатьзначение ' +
+  'показатьинформациюобошибке показатьнакарте показатьоповещениепользователя показатьпредупреждение полноеимяпользователя ' +
+  'получитьcomобъект получитьxmlтип получитьадреспоместоположению получитьблокировкусеансов получитьвремязавершенияспящегосеанса ' +
+  'получитьвремязасыпанияпассивногосеанса получитьвремяожиданияблокировкиданных получитьданныевыбора ' +
+  'получитьдополнительныйпараметрклиенталицензирования получитьдопустимыекодылокализации получитьдопустимыечасовыепояса ' +
+  'получитьзаголовокклиентскогоприложения получитьзаголовоксистемы получитьзначенияотборажурналарегистрации ' +
+  'получитьидентификаторконфигурации получитьизвременногохранилища получитьимявременногофайла ' +
+  'получитьимяклиенталицензирования получитьинформациюэкрановклиента получитьиспользованиежурналарегистрации ' +
+  'получитьиспользованиесобытияжурналарегистрации получитькраткийзаголовокприложения получитьмакетоформления ' +
+  'получитьмаскувсефайлы получитьмаскувсефайлыклиента получитьмаскувсефайлысервера получитьместоположениепоадресу ' +
+  'получитьминимальнуюдлинупаролейпользователей получитьнавигационнуюссылку получитьнавигационнуюссылкуинформационнойбазы ' +
+  'получитьобновлениеконфигурациибазыданных получитьобновлениепредопределенныхданныхинформационнойбазы получитьобщиймакет ' +
+  'получитьобщуюформу получитьокна получитьоперативнуюотметкувремени получитьотключениебезопасногорежима ' +
+  'получитьпараметрыфункциональныхопцийинтерфейса получитьполноеимяпредопределенногозначения ' +
+  'получитьпредставлениянавигационныхссылок получитьпроверкусложностипаролейпользователей получитьразделительпути ' +
+  'получитьразделительпутиклиента получитьразделительпутисервера получитьсеансыинформационнойбазы ' +
+  'получитьскоростьклиентскогосоединения получитьсоединенияинформационнойбазы получитьсообщенияпользователю ' +
+  'получитьсоответствиеобъектаиформы получитьсоставстандартногоинтерфейсаodata получитьструктурухранениябазыданных ' +
+  'получитьтекущийсеансинформационнойбазы получитьфайл получитьфайлы получитьформу получитьфункциональнуюопцию ' +
+  'получитьфункциональнуюопциюинтерфейса получитьчасовойпоясинформационнойбазы пользователиос поместитьвовременноехранилище ' +
+  'поместитьфайл поместитьфайлы прав праводоступа предопределенноезначение представлениекодалокализации представлениепериода ' +
+  'представлениеправа представлениеприложения представлениесобытияжурналарегистрации представлениечасовогопояса предупреждение ' +
+  'прекратитьработусистемы привилегированныйрежим продолжитьвызов прочитатьjson прочитатьxml прочитатьдатуjson пустаястрока ' +
+  'рабочийкаталогданныхпользователя разблокироватьданныедляредактирования разделитьфайл разорватьсоединениесвнешнимисточникомданных ' +
+  'раскодироватьстроку рольдоступна секунда сигнал символ скопироватьжурналрегистрации смещениелетнеговремени ' +
+  'смещениестандартноговремени соединитьбуферыдвоичныхданных создатькаталог создатьфабрикуxdto сокрл сокрлп сокрп сообщить ' +
+  'состояние сохранитьзначение сохранитьнастройкипользователя сред стрдлина стрзаканчиваетсяна стрзаменить стрнайти стрначинаетсяс ' +
+  'строка строкасоединенияинформационнойбазы стрполучитьстроку стрразделить стрсоединить стрсравнить стрчисловхождений '+
+  'стрчислострок стршаблон текущаядата текущаядатасеанса текущаяуниверсальнаядата текущаяуниверсальнаядатавмиллисекундах ' +
+  'текущийвариантинтерфейсаклиентскогоприложения текущийвариантосновногошрифтаклиентскогоприложения текущийкодлокализации ' +
+  'текущийрежимзапуска текущийязык текущийязыксистемы тип типзнч транзакцияактивна трег удалитьданныеинформационнойбазы ' +
+  'удалитьизвременногохранилища удалитьобъекты удалитьфайлы универсальноевремя установитьбезопасныйрежим ' +
+  'установитьбезопасныйрежимразделенияданных установитьблокировкусеансов установитьвнешнююкомпоненту ' +
+  'установитьвремязавершенияспящегосеанса установитьвремязасыпанияпассивногосеанса установитьвремяожиданияблокировкиданных ' +
+  'установитьзаголовокклиентскогоприложения установитьзаголовоксистемы установитьиспользованиежурналарегистрации ' +
+  'установитьиспользованиесобытияжурналарегистрации установитькраткийзаголовокприложения ' +
+  'установитьминимальнуюдлинупаролейпользователей установитьмонопольныйрежим установитьнастройкиклиенталицензирования ' +
+  'установитьобновлениепредопределенныхданныхинформационнойбазы установитьотключениебезопасногорежима ' +
+  'установитьпараметрыфункциональныхопцийинтерфейса установитьпривилегированныйрежим ' +
+  'установитьпроверкусложностипаролейпользователей установитьрасширениеработыскриптографией ' +
+  'установитьрасширениеработысфайлами установитьсоединениесвнешнимисточникомданных установитьсоответствиеобъектаиформы ' +
+  'установитьсоставстандартногоинтерфейсаodata установитьчасовойпоясинформационнойбазы установитьчасовойпояссеанса ' +
+  'формат цел час часовойпояс часовойпояссеанса число числопрописью этоадресвременногохранилища ';
+
+  // v8 свойства глобального контекста ==> built_in
+  var v8_global_context_property =
+  'wsссылки библиотекакартинок библиотекамакетовоформлениякомпоновкиданных библиотекастилей бизнеспроцессы ' +
+  'внешниеисточникиданных внешниеобработки внешниеотчеты встроенныепокупки главныйинтерфейс главныйстиль ' +
+  'документы доставляемыеуведомления журналыдокументов задачи информацияобинтернетсоединении использованиерабочейдаты ' +
+  'историяработыпользователя константы критерииотбора метаданные обработки отображениерекламы отправкадоставляемыхуведомлений ' +
+  'отчеты панельзадачос параметрзапуска параметрысеанса перечисления планывидоврасчета планывидовхарактеристик ' +
+  'планыобмена планысчетов полнотекстовыйпоиск пользователиинформационнойбазы последовательности проверкавстроенныхпокупок ' +
+  'рабочаядата расширенияконфигурации регистрыбухгалтерии регистрынакопления регистрырасчета регистрысведений ' +
+  'регламентныезадания сериализаторxdto справочники средствагеопозиционирования средствакриптографии средствамультимедиа ' +
+  'средстваотображениярекламы средствапочты средствателефонии фабрикаxdto файловыепотоки фоновыезадания хранилищанастроек ' +
+  'хранилищевариантовотчетов хранилищенастроекданныхформ хранилищеобщихнастроек хранилищепользовательскихнастроекдинамическихсписков ' +
+  'хранилищепользовательскихнастроекотчетов хранилищесистемныхнастроек ';
+
+  // built_in : встроенные или библиотечные объекты (константы, классы, функции)
+  var BUILTIN =
+  v7_system_constants +
+  v7_global_context_methods + v8_global_context_methods +
+  v8_global_context_property;
+
+  // v8 системные наборы значений ==> class
+  var v8_system_sets_of_values =
+  'webцвета windowsцвета windowsшрифты библиотекакартинок рамкистиля символы цветастиля шрифтыстиля ';
+
+  // v8 системные перечисления - интерфейсные ==> class
+  var v8_system_enums_interface =
+  'автоматическоесохранениеданныхформывнастройках автонумерациявформе автораздвижениесерий ' +
+  'анимациядиаграммы вариантвыравниванияэлементовизаголовков вариантуправлениявысотойтаблицы ' +
+  'вертикальнаяпрокруткаформы вертикальноеположение вертикальноеположениеэлемента видгруппыформы ' +
+  'виддекорацииформы виддополненияэлементаформы видизмененияданных видкнопкиформы видпереключателя ' +
+  'видподписейкдиаграмме видполяформы видфлажка влияниеразмеранапузырекдиаграммы горизонтальноеположение ' +
+  'горизонтальноеположениеэлемента группировкаколонок группировкаподчиненныхэлементовформы ' +
+  'группыиэлементы действиеперетаскивания дополнительныйрежимотображения допустимыедействияперетаскивания ' +
+  'интервалмеждуэлементамиформы использованиевывода использованиеполосыпрокрутки ' +
+  'используемоезначениеточкибиржевойдиаграммы историявыборапривводе источникзначенийоситочекдиаграммы ' +
+  'источникзначенияразмерапузырькадиаграммы категориягруппыкоманд максимумсерий начальноеотображениедерева ' +
+  'начальноеотображениесписка обновлениетекстаредактирования ориентациядендрограммы ориентациядиаграммы ' +
+  'ориентацияметокдиаграммы ориентацияметоксводнойдиаграммы ориентацияэлементаформы отображениевдиаграмме ' +
+  'отображениевлегендедиаграммы отображениегруппыкнопок отображениезаголовкашкалыдиаграммы ' +
+  'отображениезначенийсводнойдиаграммы отображениезначенияизмерительнойдиаграммы ' +
+  'отображениеинтерваладиаграммыганта отображениекнопки отображениекнопкивыбора отображениеобсужденийформы ' +
+  'отображениеобычнойгруппы отображениеотрицательныхзначенийпузырьковойдиаграммы отображениепанелипоиска ' +
+  'отображениеподсказки отображениепредупрежденияприредактировании отображениеразметкиполосырегулирования ' +
+  'отображениестраницформы отображениетаблицы отображениетекстазначениядиаграммыганта ' +
+  'отображениеуправленияобычнойгруппы отображениефигурыкнопки палитрацветовдиаграммы поведениеобычнойгруппы ' +
+  'поддержкамасштабадендрограммы поддержкамасштабадиаграммыганта поддержкамасштабасводнойдиаграммы ' +
+  'поисквтаблицепривводе положениезаголовкаэлементаформы положениекартинкикнопкиформы ' +
+  'положениекартинкиэлементаграфическойсхемы положениекоманднойпанелиформы положениекоманднойпанелиэлементаформы ' +
+  'положениеопорнойточкиотрисовки положениеподписейкдиаграмме положениеподписейшкалызначенийизмерительнойдиаграммы ' +
+  'положениесостоянияпросмотра положениестрокипоиска положениетекстасоединительнойлинии положениеуправленияпоиском ' +
+  'положениешкалывремени порядокотображенияточекгоризонтальнойгистограммы порядоксерийвлегендедиаграммы ' +
+  'размеркартинки расположениезаголовкашкалыдиаграммы растягиваниеповертикалидиаграммыганта ' +
+  'режимавтоотображениясостояния режимвводастроктаблицы режимвыборанезаполненного режимвыделениядаты ' +
+  'режимвыделениястрокитаблицы режимвыделениятаблицы режимизмененияразмера режимизменениясвязанногозначения ' +
+  'режимиспользованиядиалогапечати режимиспользованияпараметракоманды режиммасштабированияпросмотра ' +
+  'режимосновногоокнаклиентскогоприложения режимоткрытияокнаформы режимотображениявыделения ' +
+  'режимотображениягеографическойсхемы режимотображениязначенийсерии режимотрисовкисеткиграфическойсхемы ' +
+  'режимполупрозрачностидиаграммы режимпробеловдиаграммы режимразмещениянастранице режимредактированияколонки ' +
+  'режимсглаживаниядиаграммы режимсглаживанияиндикатора режимсписказадач сквозноевыравнивание ' +
+  'сохранениеданныхформывнастройках способзаполнениятекстазаголовкашкалыдиаграммы ' +
+  'способопределенияограничивающегозначениядиаграммы стандартнаягруппакоманд стандартноеоформление ' +
+  'статусоповещенияпользователя стильстрелки типаппроксимациилиниитрендадиаграммы типдиаграммы ' +
+  'типединицышкалывремени типимпортасерийслоягеографическойсхемы типлиниигеографическойсхемы типлиниидиаграммы ' +
+  'типмаркерагеографическойсхемы типмаркерадиаграммы типобластиоформления ' +
+  'типорганизацииисточникаданныхгеографическойсхемы типотображениясериислоягеографическойсхемы ' +
+  'типотображенияточечногообъектагеографическойсхемы типотображенияшкалыэлементалегендыгеографическойсхемы ' +
+  'типпоискаобъектовгеографическойсхемы типпроекциигеографическойсхемы типразмещенияизмерений ' +
+  'типразмещенияреквизитовизмерений типрамкиэлементауправления типсводнойдиаграммы ' +
+  'типсвязидиаграммыганта типсоединениязначенийпосериямдиаграммы типсоединенияточекдиаграммы ' +
+  'типсоединительнойлинии типстороныэлементаграфическойсхемы типформыотчета типшкалырадарнойдиаграммы ' +
+  'факторлиниитрендадиаграммы фигуракнопки фигурыграфическойсхемы фиксациявтаблице форматдняшкалывремени ' +
+  'форматкартинки ширинаподчиненныхэлементовформы ';
+
+  // v8 системные перечисления - свойства прикладных объектов ==> class
+  var v8_system_enums_objects_properties =
+  'виддвижениябухгалтерии виддвижениянакопления видпериодарегистрарасчета видсчета видточкимаршрутабизнеспроцесса ' +
+  'использованиеагрегатарегистранакопления использованиегруппиэлементов использованиережимапроведения ' +
+  'использованиесреза периодичностьагрегатарегистранакопления режимавтовремя режимзаписидокумента режимпроведениядокумента ';
+
+  // v8 системные перечисления - планы обмена ==> class
+  var v8_system_enums_exchange_plans =
+  'авторегистрацияизменений допустимыйномерсообщения отправкаэлементаданных получениеэлементаданных ';
+
+  // v8 системные перечисления - табличный документ ==> class
+  var v8_system_enums_tabular_document =
+  'использованиерасшифровкитабличногодокумента ориентациястраницы положениеитоговколоноксводнойтаблицы ' +
+  'положениеитоговстроксводнойтаблицы положениетекстаотносительнокартинки расположениезаголовкагруппировкитабличногодокумента ' +
+  'способчтениязначенийтабличногодокумента типдвустороннейпечати типзаполненияобластитабличногодокумента ' +
+  'типкурсоровтабличногодокумента типлиниирисункатабличногодокумента типлинииячейкитабличногодокумента ' +
+  'типнаправленияпереходатабличногодокумента типотображениявыделениятабличногодокумента типотображениялинийсводнойтаблицы ' +
+  'типразмещениятекстатабличногодокумента типрисункатабличногодокумента типсмещениятабличногодокумента ' +
+  'типузоратабличногодокумента типфайлатабличногодокумента точностьпечати чередованиерасположениястраниц ';
+
+  // v8 системные перечисления - планировщик ==> class
+  var v8_system_enums_sheduler =
+  'отображениевремениэлементовпланировщика ';
+
+  // v8 системные перечисления - форматированный документ ==> class
+  var v8_system_enums_formatted_document =
+  'типфайлаформатированногодокумента ';
+
+  // v8 системные перечисления - запрос ==> class
+  var v8_system_enums_query =
+  'обходрезультатазапроса типзаписизапроса ';
+
+  // v8 системные перечисления - построитель отчета ==> class
+  var v8_system_enums_report_builder =
+  'видзаполнениярасшифровкипостроителяотчета типдобавленияпредставлений типизмеренияпостроителяотчета типразмещенияитогов ';
+
+  // v8 системные перечисления - работа с файлами ==> class
+  var v8_system_enums_files =
+  'доступкфайлу режимдиалогавыборафайла режимоткрытияфайла ';
+
+  // v8 системные перечисления - построитель запроса ==> class
+  var v8_system_enums_query_builder =
+  'типизмеренияпостроителязапроса ';
+
+  // v8 системные перечисления - анализ данных ==> class
+  var v8_system_enums_data_analysis =
+  'видданныханализа методкластеризации типединицыинтервалавременианализаданных типзаполнениятаблицырезультатаанализаданных ' +
+  'типиспользованиячисловыхзначенийанализаданных типисточникаданныхпоискаассоциаций типколонкианализаданныхдереворешений ' +
+  'типколонкианализаданныхкластеризация типколонкианализаданныхобщаястатистика типколонкианализаданныхпоискассоциаций ' +
+  'типколонкианализаданныхпоискпоследовательностей типколонкимоделипрогноза типмерырасстоянияанализаданных ' +
+  'типотсеченияправилассоциации типполяанализаданных типстандартизациианализаданных типупорядочиванияправилассоциациианализаданных ' +
+  'типупорядочиванияшаблоновпоследовательностейанализаданных типупрощениядереварешений ';
+
+  // v8 системные перечисления - xml, json, xs, dom, xdto, web-сервисы ==> class
+  var v8_system_enums_xml_json_xs_dom_xdto_ws =
+  'wsнаправлениепараметра вариантxpathxs вариантзаписидатыjson вариантпростоготипаxs видгруппымоделиxs видфасетаxdto ' +
+  'действиепостроителяdom завершенностьпростоготипаxs завершенностьсоставноготипаxs завершенностьсхемыxs запрещенныеподстановкиxs ' +
+  'исключениягруппподстановкиxs категорияиспользованияатрибутаxs категорияограниченияидентичностиxs категорияограниченияпространствименxs ' +
+  'методнаследованияxs модельсодержимогоxs назначениетипаxml недопустимыеподстановкиxs обработкапробельныхсимволовxs обработкасодержимогоxs ' +
+  'ограничениезначенияxs параметрыотбораузловdom переносстрокjson позициявдокументеdom пробельныесимволыxml типатрибутаxml типзначенияjson ' +
+  'типканоническогоxml типкомпонентыxs типпроверкиxml типрезультатаdomxpath типузлаdom типузлаxml формаxml формапредставленияxs ' +
+  'форматдатыjson экранированиесимволовjson ';
+
+  // v8 системные перечисления - система компоновки данных ==> class
+  var v8_system_enums_data_composition_system =
+  'видсравнениякомпоновкиданных действиеобработкирасшифровкикомпоновкиданных направлениесортировкикомпоновкиданных ' +
+  'расположениевложенныхэлементоврезультатакомпоновкиданных расположениеитоговкомпоновкиданных расположениегруппировкикомпоновкиданных ' +
+  'расположениеполейгруппировкикомпоновкиданных расположениеполякомпоновкиданных расположениереквизитовкомпоновкиданных ' +
+  'расположениересурсовкомпоновкиданных типбухгалтерскогоостаткакомпоновкиданных типвыводатекстакомпоновкиданных ' +
+  'типгруппировкикомпоновкиданных типгруппыэлементовотборакомпоновкиданных типдополненияпериодакомпоновкиданных ' +
+  'типзаголовкаполейкомпоновкиданных типмакетагруппировкикомпоновкиданных типмакетаобластикомпоновкиданных типостаткакомпоновкиданных ' +
+  'типпериодакомпоновкиданных типразмещениятекстакомпоновкиданных типсвязинаборовданныхкомпоновкиданных типэлементарезультатакомпоновкиданных ' +
+  'расположениелегендыдиаграммыкомпоновкиданных типпримененияотборакомпоновкиданных режимотображенияэлементанастройкикомпоновкиданных ' +
+  'режимотображениянастроеккомпоновкиданных состояниеэлементанастройкикомпоновкиданных способвосстановлениянастроеккомпоновкиданных ' +
+  'режимкомпоновкирезультата использованиепараметракомпоновкиданных автопозицияресурсовкомпоновкиданных '+
+  'вариантиспользованиягруппировкикомпоновкиданных расположениересурсоввдиаграммекомпоновкиданных фиксациякомпоновкиданных ' +
+  'использованиеусловногооформлениякомпоновкиданных ';
+
+  // v8 системные перечисления - почта ==> class
+  var v8_system_enums_email =
+  'важностьинтернетпочтовогосообщения обработкатекстаинтернетпочтовогосообщения способкодированияинтернетпочтовоговложения ' +
+  'способкодированиянеasciiсимволовинтернетпочтовогосообщения типтекстапочтовогосообщения протоколинтернетпочты ' +
+  'статусразборапочтовогосообщения ';
+
+  // v8 системные перечисления - журнал регистрации ==> class
+  var v8_system_enums_logbook =
+  'режимтранзакциизаписижурналарегистрации статустранзакциизаписижурналарегистрации уровеньжурналарегистрации ';
+
+  // v8 системные перечисления - криптография ==> class
+  var v8_system_enums_cryptography =
+  'расположениехранилищасертификатовкриптографии режимвключениясертификатовкриптографии режимпроверкисертификатакриптографии ' +
+  'типхранилищасертификатовкриптографии ';
+
+  // v8 системные перечисления - ZIP ==> class
+  var v8_system_enums_zip =
+  'кодировкаименфайловвzipфайле методсжатияzip методшифрованияzip режимвосстановленияпутейфайловzip режимобработкиподкаталоговzip ' +
+  'режимсохраненияпутейzip уровеньсжатияzip ';
+
+  // v8 системные перечисления -
+  // Блокировка данных, Фоновые задания, Автоматизированное тестирование,
+  // Доставляемые уведомления, Встроенные покупки, Интернет, Работа с двоичными данными ==> class
+  var v8_system_enums_other =
+  'звуковоеоповещение направлениепереходакстроке позициявпотоке порядокбайтов режимблокировкиданных режимуправленияблокировкойданных ' +
+  'сервисвстроенныхпокупок состояниефоновогозадания типподписчикадоставляемыхуведомлений уровеньиспользованиязащищенногосоединенияftp ';
+
+  // v8 системные перечисления - схема запроса ==> class
+  var v8_system_enums_request_schema =
+  'направлениепорядкасхемызапроса типдополненияпериодамисхемызапроса типконтрольнойточкисхемызапроса типобъединениясхемызапроса ' +
+  'типпараметрадоступнойтаблицысхемызапроса типсоединениясхемызапроса ';
+
+  // v8 системные перечисления - свойства объектов метаданных ==> class
+  var v8_system_enums_properties_of_metadata_objects =
+  'httpметод автоиспользованиеобщегореквизита автопрефиксномеразадачи вариантвстроенногоязыка видиерархии видрегистранакопления ' +
+  'видтаблицывнешнегоисточникаданных записьдвиженийприпроведении заполнениепоследовательностей индексирование ' +
+  'использованиебазыпланавидоврасчета использованиебыстроговыбора использованиеобщегореквизита использованиеподчинения ' +
+  'использованиеполнотекстовогопоиска использованиеразделяемыхданныхобщегореквизита использованиереквизита ' +
+  'назначениеиспользованияприложения назначениерасширенияконфигурации направлениепередачи обновлениепредопределенныхданных ' +
+  'оперативноепроведение основноепредставлениевидарасчета основноепредставлениевидахарактеристики основноепредставлениезадачи ' +
+  'основноепредставлениепланаобмена основноепредставлениесправочника основноепредставлениесчета перемещениеграницыприпроведении ' +
+  'периодичностьномерабизнеспроцесса периодичностьномерадокумента периодичностьрегистрарасчета периодичностьрегистрасведений ' +
+  'повторноеиспользованиевозвращаемыхзначений полнотекстовыйпоискпривводепостроке принадлежностьобъекта проведение ' +
+  'разделениеаутентификацииобщегореквизита разделениеданныхобщегореквизита разделениерасширенийконфигурацииобщегореквизита '+
+  'режимавтонумерацииобъектов режимзаписирегистра режимиспользованиямодальности ' +
+  'режимиспользованиясинхронныхвызововрасширенийплатформыивнешнихкомпонент режимповторногоиспользованиясеансов ' +
+  'режимполученияданныхвыборапривводепостроке режимсовместимости режимсовместимостиинтерфейса ' +
+  'режимуправленияблокировкойданныхпоумолчанию сериикодовпланавидовхарактеристик сериикодовпланасчетов ' +
+  'сериикодовсправочника созданиепривводе способвыбора способпоискастрокипривводепостроке способредактирования ' +
+  'типданныхтаблицывнешнегоисточникаданных типкодапланавидоврасчета типкодасправочника типмакета типномерабизнеспроцесса ' +
+  'типномерадокумента типномеразадачи типформы удалениедвижений ';
+
+  // v8 системные перечисления - разные ==> class
+  var v8_system_enums_differents =
+  'важностьпроблемыприменениярасширенияконфигурации вариантинтерфейсаклиентскогоприложения вариантмасштабаформклиентскогоприложения ' +
+  'вариантосновногошрифтаклиентскогоприложения вариантстандартногопериода вариантстандартнойдатыначала видграницы видкартинки ' +
+  'видотображенияполнотекстовогопоиска видрамки видсравнения видцвета видчисловогозначения видшрифта допустимаядлина допустимыйзнак ' +
+  'использованиеbyteordermark использованиеметаданныхполнотекстовогопоиска источникрасширенийконфигурации клавиша кодвозвратадиалога ' +
+  'кодировкаxbase кодировкатекста направлениепоиска направлениесортировки обновлениепредопределенныхданных обновлениеприизмененииданных ' +
+  'отображениепанелиразделов проверказаполнения режимдиалогавопрос режимзапускаклиентскогоприложения режимокругления режимоткрытияформприложения ' +
+  'режимполнотекстовогопоиска скоростьклиентскогосоединения состояниевнешнегоисточникаданных состояниеобновленияконфигурациибазыданных ' +
+  'способвыборасертификатаwindows способкодированиястроки статуссообщения типвнешнейкомпоненты типплатформы типповеденияклавишиenter ' +
+  'типэлементаинформацииовыполненииобновленияконфигурациибазыданных уровеньизоляциитранзакций хешфункция частидаты';
+
+  // class: встроенные наборы значений, системные перечисления (содержат дочерние значения, обращения к которым через разыменование)
+  var CLASS =
+  v8_system_sets_of_values +
+  v8_system_enums_interface +
+  v8_system_enums_objects_properties +
+  v8_system_enums_exchange_plans +
+  v8_system_enums_tabular_document +
+  v8_system_enums_sheduler +
+  v8_system_enums_formatted_document +
+  v8_system_enums_query +
+  v8_system_enums_report_builder +
+  v8_system_enums_files +
+  v8_system_enums_query_builder +
+  v8_system_enums_data_analysis +
+  v8_system_enums_xml_json_xs_dom_xdto_ws +
+  v8_system_enums_data_composition_system +
+  v8_system_enums_email +
+  v8_system_enums_logbook +
+  v8_system_enums_cryptography +
+  v8_system_enums_zip +
+  v8_system_enums_other +
+  v8_system_enums_request_schema +
+  v8_system_enums_properties_of_metadata_objects +
+  v8_system_enums_differents;
+
+  // v8 общие объекты (у объектов есть конструктор, экземпляры создаются методом НОВЫЙ) ==> type
+  var v8_shared_object =
+  'comобъект ftpсоединение httpзапрос httpсервисответ httpсоединение wsопределения wsпрокси xbase анализданных аннотацияxs ' +
+  'блокировкаданных буфердвоичныхданных включениеxs выражениекомпоновкиданных генераторслучайныхчисел географическаясхема ' +
+  'географическиекоординаты графическаясхема группамоделиxs данныерасшифровкикомпоновкиданных двоичныеданные дендрограмма ' +
+  'диаграмма диаграммаганта диалогвыборафайла диалогвыборацвета диалогвыборашрифта диалограсписаниярегламентногозадания ' +
+  'диалогредактированиястандартногопериода диапазон документdom документhtml документацияxs доставляемоеуведомление ' +
+  'записьdom записьfastinfoset записьhtml записьjson записьxml записьzipфайла записьданных записьтекста записьузловdom ' +
+  'запрос защищенноесоединениеopenssl значенияполейрасшифровкикомпоновкиданных извлечениетекста импортxs интернетпочта ' +
+  'интернетпочтовоесообщение интернетпочтовыйпрофиль интернетпрокси интернетсоединение информациядляприложенияxs ' +
+  'использованиеатрибутаxs использованиесобытияжурналарегистрации источникдоступныхнастроеккомпоновкиданных ' +
+  'итераторузловdom картинка квалификаторыдаты квалификаторыдвоичныхданных квалификаторыстроки квалификаторычисла ' +
+  'компоновщикмакетакомпоновкиданных компоновщикнастроеккомпоновкиданных конструктормакетаоформлениякомпоновкиданных ' +
+  'конструкторнастроеккомпоновкиданных конструкторформатнойстроки линия макеткомпоновкиданных макетобластикомпоновкиданных ' +
+  'макетоформлениякомпоновкиданных маскаxs менеджеркриптографии наборсхемxml настройкикомпоновкиданных настройкисериализацииjson ' +
+  'обработкакартинок обработкарасшифровкикомпоновкиданных обходдереваdom объявлениеатрибутаxs объявлениенотацииxs ' +
+  'объявлениеэлементаxs описаниеиспользованиясобытиядоступжурналарегистрации ' +
+  'описаниеиспользованиясобытияотказвдоступежурналарегистрации описаниеобработкирасшифровкикомпоновкиданных ' +
+  'описаниепередаваемогофайла описаниетипов определениегруппыатрибутовxs определениегруппымоделиxs ' +
+  'определениеограниченияидентичностиxs определениепростоготипаxs определениесоставноготипаxs определениетипадокументаdom ' +
+  'определенияxpathxs отборкомпоновкиданных пакетотображаемыхдокументов параметрвыбора параметркомпоновкиданных ' +
+  'параметрызаписиjson параметрызаписиxml параметрычтенияxml переопределениеxs планировщик полеанализаданных ' +
+  'полекомпоновкиданных построительdom построительзапроса построительотчета построительотчетаанализаданных ' +
+  'построительсхемxml поток потоквпамяти почта почтовоесообщение преобразованиеxsl преобразованиекканоническомуxml ' +
+  'процессорвыводарезультатакомпоновкиданныхвколлекциюзначений процессорвыводарезультатакомпоновкиданныхвтабличныйдокумент ' +
+  'процессоркомпоновкиданных разыменовательпространствименdom рамка расписаниерегламентногозадания расширенноеимяxml ' +
+  'результатчтенияданных своднаядиаграмма связьпараметравыбора связьпотипу связьпотипукомпоновкиданных сериализаторxdto ' +
+  'сертификатклиентаwindows сертификатклиентафайл сертификаткриптографии сертификатыудостоверяющихцентровwindows ' +
+  'сертификатыудостоверяющихцентровфайл сжатиеданных системнаяинформация сообщениепользователю сочетаниеклавиш ' +
+  'сравнениезначений стандартнаядатаначала стандартныйпериод схемаxml схемакомпоновкиданных табличныйдокумент ' +
+  'текстовыйдокумент тестируемоеприложение типданныхxml уникальныйидентификатор фабрикаxdto файл файловыйпоток ' +
+  'фасетдлиныxs фасетколичестваразрядовдробнойчастиxs фасетмаксимальноговключающегозначенияxs ' +
+  'фасетмаксимальногоисключающегозначенияxs фасетмаксимальнойдлиныxs фасетминимальноговключающегозначенияxs ' +
+  'фасетминимальногоисключающегозначенияxs фасетминимальнойдлиныxs фасетобразцаxs фасетобщегоколичестваразрядовxs ' +
+  'фасетперечисленияxs фасетпробельныхсимволовxs фильтрузловdom форматированнаястрока форматированныйдокумент ' +
+  'фрагментxs хешированиеданных хранилищезначения цвет чтениеfastinfoset чтениеhtml чтениеjson чтениеxml чтениеzipфайла ' +
+  'чтениеданных чтениетекста чтениеузловdom шрифт элементрезультатакомпоновкиданных ';
+
+  // v8 универсальные коллекции значений ==> type
+  var v8_universal_collection =
+  'comsafearray деревозначений массив соответствие списокзначений структура таблицазначений фиксированнаяструктура ' +
+  'фиксированноесоответствие фиксированныймассив ';
+
+  // type : встроенные типы
+  var TYPE =
+  v8_shared_object +
+  v8_universal_collection;
+
+  // literal : примитивные типы
+  var LITERAL = 'null истина ложь неопределено';
+
+  // number : числа
+  var NUMBERS = hljs.inherit(hljs.NUMBER_MODE);
+
+  // string : строки
+  var STRINGS = {
+    className: 'string',
+    begin: '"|\\|', end: '"|$',
+    contains: [{begin: '""'}]
+  };
+
+  // number : даты
+  var DATE = {
+    begin: "'", end: "'", excludeBegin: true, excludeEnd: true,
+    contains: [
+      {
+        className: 'number',
+        begin: '\\d{4}([\\.\\\\/:-]?\\d{2}){0,5}'
+      }
+    ]
+  };
+
+  // comment : комментарии
+  var COMMENTS = hljs.inherit(hljs.C_LINE_COMMENT_MODE);
+
+  // meta : инструкции препроцессора, директивы компиляции
+  var META = {
+    className: 'meta',
+
+    begin: '#|&', end: '$',
+    keywords: {
+      $pattern: UNDERSCORE_IDENT_RE,
+      'meta-keyword': KEYWORD + METAKEYWORD
+    },
+    contains: [
+      COMMENTS
+    ]
+  };
+
+  // symbol : метка goto
+  var SYMBOL = {
+    className: 'symbol',
+    begin: '~', end: ';|:', excludeEnd: true
+  };
+
+  // function : объявление процедур и функций
+  var FUNCTION = {
+    className: 'function',
+    variants: [
+      {begin: 'процедура|функция', end: '\\)', keywords: 'процедура функция'},
+      {begin: 'конецпроцедуры|конецфункции', keywords: 'конецпроцедуры конецфункции'}
+    ],
+    contains: [
+      {
+        begin: '\\(', end: '\\)', endsParent : true,
+        contains: [
+          {
+            className: 'params',
+            begin: UNDERSCORE_IDENT_RE, end: ',', excludeEnd: true, endsWithParent: true,
+            keywords: {
+              $pattern: UNDERSCORE_IDENT_RE,
+              keyword: 'знач',
+              literal: LITERAL
+            },
+            contains: [
+              NUMBERS,
+              STRINGS,
+              DATE
+            ]
+          },
+          COMMENTS
+        ]
+      },
+      hljs.inherit(hljs.TITLE_MODE, {begin: UNDERSCORE_IDENT_RE})
+    ]
+  };
+
+  return {
+    name: '1C:Enterprise',
+    case_insensitive: true,
+    keywords: {
+      $pattern: UNDERSCORE_IDENT_RE,
+      keyword: KEYWORD,
+      built_in: BUILTIN,
+      class: CLASS,
+      type: TYPE,
+      literal: LITERAL
+    },
+    contains: [
+      META,
+      FUNCTION,
+      COMMENTS,
+      SYMBOL,
+      NUMBERS,
+      STRINGS,
+      DATE
+    ]
+  }
+}
+
+module.exports = _1c;

+ 77 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/abnf.js

@@ -0,0 +1,77 @@
+/*
+Language: Augmented Backus-Naur Form
+Author: Alex McKibben <alex@nullscope.net>
+Website: https://tools.ietf.org/html/rfc5234
+*/
+
+/** @type LanguageFn */
+function abnf(hljs) {
+    var regexes = {
+        ruleDeclaration: "^[a-zA-Z][a-zA-Z0-9-]*",
+        unexpectedChars: "[!@#$^&',?+~`|:]"
+    };
+
+    var keywords = [
+        "ALPHA",
+        "BIT",
+        "CHAR",
+        "CR",
+        "CRLF",
+        "CTL",
+        "DIGIT",
+        "DQUOTE",
+        "HEXDIG",
+        "HTAB",
+        "LF",
+        "LWSP",
+        "OCTET",
+        "SP",
+        "VCHAR",
+        "WSP"
+    ];
+
+    var commentMode = hljs.COMMENT(";", "$");
+
+    var terminalBinaryMode = {
+        className: "symbol",
+        begin: /%b[0-1]+(-[0-1]+|(\.[0-1]+)+){0,1}/
+    };
+
+    var terminalDecimalMode = {
+        className: "symbol",
+        begin: /%d[0-9]+(-[0-9]+|(\.[0-9]+)+){0,1}/
+    };
+
+    var terminalHexadecimalMode = {
+        className: "symbol",
+        begin: /%x[0-9A-F]+(-[0-9A-F]+|(\.[0-9A-F]+)+){0,1}/,
+    };
+
+    var caseSensitivityIndicatorMode = {
+        className: "symbol",
+        begin: /%[si]/
+    };
+
+    var ruleDeclarationMode = {
+        className: "attribute",
+        begin: regexes.ruleDeclaration + '(?=\\s*=)',
+    };
+
+    return {
+      name: 'Augmented Backus-Naur Form',
+      illegal: regexes.unexpectedChars,
+      keywords: keywords.join(" "),
+      contains: [
+          ruleDeclarationMode,
+          commentMode,
+          terminalBinaryMode,
+          terminalDecimalMode,
+          terminalHexadecimalMode,
+          caseSensitivityIndicatorMode,
+          hljs.QUOTE_STRING_MODE,
+          hljs.NUMBER_MODE
+      ]
+    };
+}
+
+module.exports = abnf;

+ 75 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/accesslog.js

@@ -0,0 +1,75 @@
+/*
+ Language: Apache Access Log
+ Author: Oleg Efimov <efimovov@gmail.com>
+ Description: Apache/Nginx Access Logs
+ Website: https://httpd.apache.org/docs/2.4/logs.html#accesslog
+ */
+
+ /** @type LanguageFn */
+function accesslog(hljs) {
+  // https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods
+  var HTTP_VERBS = [
+    "GET", "POST", "HEAD", "PUT", "DELETE", "CONNECT", "OPTIONS", "PATCH", "TRACE"
+  ];
+  return {
+    name: 'Apache Access Log',
+    contains: [
+      // IP
+      {
+        className: 'number',
+        begin: '^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b',
+        relevance:5
+      },
+      // Other numbers
+      {
+        className: 'number',
+        begin: '\\b\\d+\\b',
+        relevance: 0
+      },
+      // Requests
+      {
+        className: 'string',
+        begin: '"(' + HTTP_VERBS.join("|") + ')', end: '"',
+        keywords: HTTP_VERBS.join(" "),
+        illegal: '\\n',
+        relevance: 5,
+        contains: [{
+          begin: 'HTTP/[12]\\.\\d',
+          relevance:5
+        }]
+      },
+      // Dates
+      {
+        className: 'string',
+        // dates must have a certain length, this prevents matching
+        // simple array accesses a[123] and [] and other common patterns
+        // found in other languages
+        begin: /\[\d[^\]\n]{8,}\]/,
+        illegal: '\\n',
+        relevance: 1
+      },
+      {
+        className: 'string',
+        begin: /\[/, end: /\]/,
+        illegal: '\\n',
+        relevance: 0
+      },
+      // User agent / relevance boost
+      {
+        className: 'string',
+        begin: '"Mozilla/\\d\\.\\d \\\(', end: '"',
+        illegal: '\\n',
+        relevance: 3
+      },
+      // Strings
+      {
+        className: 'string',
+        begin: '"', end: '"',
+        illegal: '\\n',
+        relevance: 0
+      }
+    ]
+  };
+}
+
+module.exports = accesslog;

+ 83 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/actionscript.js

@@ -0,0 +1,83 @@
+/*
+Language: ActionScript
+Author: Alexander Myadzel <myadzel@gmail.com>
+Category: scripting
+*/
+
+/** @type LanguageFn */
+function actionscript(hljs) {
+  var IDENT_RE = '[a-zA-Z_$][a-zA-Z0-9_$]*';
+  var IDENT_FUNC_RETURN_TYPE_RE = '([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)';
+
+  var AS3_REST_ARG_MODE = {
+    className: 'rest_arg',
+    begin: '[.]{3}', end: IDENT_RE,
+    relevance: 10
+  };
+
+  return {
+    name: 'ActionScript',
+    aliases: ['as'],
+    keywords: {
+      keyword: 'as break case catch class const continue default delete do dynamic each ' +
+        'else extends final finally for function get if implements import in include ' +
+        'instanceof interface internal is namespace native new override package private ' +
+        'protected public return set static super switch this throw try typeof use var void ' +
+        'while with',
+      literal: 'true false null undefined'
+    },
+    contains: [
+      hljs.APOS_STRING_MODE,
+      hljs.QUOTE_STRING_MODE,
+      hljs.C_LINE_COMMENT_MODE,
+      hljs.C_BLOCK_COMMENT_MODE,
+      hljs.C_NUMBER_MODE,
+      {
+        className: 'class',
+        beginKeywords: 'package', end: '{',
+        contains: [hljs.TITLE_MODE]
+      },
+      {
+        className: 'class',
+        beginKeywords: 'class interface', end: '{', excludeEnd: true,
+        contains: [
+          {
+            beginKeywords: 'extends implements'
+          },
+          hljs.TITLE_MODE
+        ]
+      },
+      {
+        className: 'meta',
+        beginKeywords: 'import include', end: ';',
+        keywords: {'meta-keyword': 'import include'}
+      },
+      {
+        className: 'function',
+        beginKeywords: 'function', end: '[{;]', excludeEnd: true,
+        illegal: '\\S',
+        contains: [
+          hljs.TITLE_MODE,
+          {
+            className: 'params',
+            begin: '\\(', end: '\\)',
+            contains: [
+              hljs.APOS_STRING_MODE,
+              hljs.QUOTE_STRING_MODE,
+              hljs.C_LINE_COMMENT_MODE,
+              hljs.C_BLOCK_COMMENT_MODE,
+              AS3_REST_ARG_MODE
+            ]
+          },
+          {
+            begin: ':\\s*' + IDENT_FUNC_RETURN_TYPE_RE
+          }
+        ]
+      },
+      hljs.METHOD_GUARD
+    ],
+    illegal: /#/
+  };
+}
+
+module.exports = actionscript;

+ 185 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/ada.js

@@ -0,0 +1,185 @@
+/*
+Language: Ada
+Author: Lars Schulna <kartoffelbrei.mit.muskatnuss@gmail.org>
+Description: Ada is a general-purpose programming language that has great support for saftey critical and real-time applications.
+             It has been developed by the DoD and thus has been used in military and safety-critical applications (like civil aviation).
+             The first version appeared in the 80s, but it's still actively developed today with
+             the newest standard being Ada2012.
+*/
+
+// We try to support full Ada2012
+//
+// We highlight all appearances of types, keywords, literals (string, char, number, bool)
+// and titles (user defined function/procedure/package)
+// CSS classes are set accordingly
+//
+// Languages causing problems for language detection:
+// xml (broken by Foo : Bar type), elm (broken by Foo : Bar type), vbscript-html (broken by body keyword)
+// sql (ada default.txt has a lot of sql keywords)
+
+/** @type LanguageFn */
+function ada(hljs) {
+    // Regular expression for Ada numeric literals.
+    // stolen form the VHDL highlighter
+
+    // Decimal literal:
+    var INTEGER_RE = '\\d(_|\\d)*';
+    var EXPONENT_RE = '[eE][-+]?' + INTEGER_RE;
+    var DECIMAL_LITERAL_RE = INTEGER_RE + '(\\.' + INTEGER_RE + ')?' + '(' + EXPONENT_RE + ')?';
+
+    // Based literal:
+    var BASED_INTEGER_RE = '\\w+';
+    var BASED_LITERAL_RE = INTEGER_RE + '#' + BASED_INTEGER_RE + '(\\.' + BASED_INTEGER_RE + ')?' + '#' + '(' + EXPONENT_RE + ')?';
+
+    var NUMBER_RE = '\\b(' + BASED_LITERAL_RE + '|' + DECIMAL_LITERAL_RE + ')';
+
+    // Identifier regex
+    var ID_REGEX = '[A-Za-z](_?[A-Za-z0-9.])*';
+
+    // bad chars, only allowed in literals
+    var BAD_CHARS = `[]{}%#'"`;
+
+    // Ada doesn't have block comments, only line comments
+    var COMMENTS = hljs.COMMENT('--', '$');
+
+    // variable declarations of the form
+    // Foo : Bar := Baz;
+    // where only Bar will be highlighted
+    var VAR_DECLS = {
+        // TODO: These spaces are not required by the Ada syntax
+        // however, I have yet to see handwritten Ada code where
+        // someone does not put spaces around :
+        begin: '\\s+:\\s+', end: '\\s*(:=|;|\\)|=>|$)',
+        // endsWithParent: true,
+        // returnBegin: true,
+        illegal: BAD_CHARS,
+        contains: [
+            {
+                // workaround to avoid highlighting
+                // named loops and declare blocks
+                beginKeywords: 'loop for declare others',
+                endsParent: true,
+            },
+            {
+                // properly highlight all modifiers
+                className: 'keyword',
+                beginKeywords: 'not null constant access function procedure in out aliased exception'
+            },
+            {
+                className: 'type',
+                begin: ID_REGEX,
+                endsParent: true,
+                relevance: 0,
+            }
+        ]
+    };
+
+    return {
+        name: 'Ada',
+        case_insensitive: true,
+        keywords: {
+            keyword:
+                'abort else new return abs elsif not reverse abstract end ' +
+                'accept entry select access exception of separate aliased exit or some ' +
+                'all others subtype and for out synchronized array function overriding ' +
+                'at tagged generic package task begin goto pragma terminate ' +
+                'body private then if procedure type case in protected constant interface ' +
+                'is raise use declare range delay limited record when delta loop rem while ' +
+                'digits renames with do mod requeue xor',
+            literal:
+                'True False',
+        },
+        contains: [
+            COMMENTS,
+            // strings "foobar"
+            {
+                className: 'string',
+                begin: /"/, end: /"/,
+                contains: [{begin: /""/, relevance: 0}]
+            },
+            // characters ''
+            {
+                // character literals always contain one char
+                className: 'string',
+                begin: /'.'/
+            },
+            {
+                // number literals
+                className: 'number',
+                begin: NUMBER_RE,
+                relevance: 0
+            },
+            {
+                // Attributes
+                className: 'symbol',
+                begin: "'" + ID_REGEX,
+            },
+            {
+                // package definition, maybe inside generic
+                className: 'title',
+                begin: '(\\bwith\\s+)?(\\bprivate\\s+)?\\bpackage\\s+(\\bbody\\s+)?', end: '(is|$)',
+                keywords: 'package body',
+                excludeBegin: true,
+                excludeEnd: true,
+                illegal: BAD_CHARS
+            },
+            {
+                // function/procedure declaration/definition
+                // maybe inside generic
+                begin: '(\\b(with|overriding)\\s+)?\\b(function|procedure)\\s+', end: '(\\bis|\\bwith|\\brenames|\\)\\s*;)',
+                keywords: 'overriding function procedure with is renames return',
+                // we need to re-match the 'function' keyword, so that
+                // the title mode below matches only exactly once
+                returnBegin: true,
+                contains:
+                [
+                    COMMENTS,
+                    {
+                        // name of the function/procedure
+                        className: 'title',
+                        begin: '(\\bwith\\s+)?\\b(function|procedure)\\s+',
+                        end: '(\\(|\\s+|$)',
+                        excludeBegin: true,
+                        excludeEnd: true,
+                        illegal: BAD_CHARS
+                    },
+                    // 'self'
+                    // // parameter types
+                    VAR_DECLS,
+                    {
+                        // return type
+                        className: 'type',
+                        begin: '\\breturn\\s+', end: '(\\s+|;|$)',
+                        keywords: 'return',
+                        excludeBegin: true,
+                        excludeEnd: true,
+                        // we are done with functions
+                        endsParent: true,
+                        illegal: BAD_CHARS
+
+                    },
+                ]
+            },
+            {
+                // new type declarations
+                // maybe inside generic
+                className: 'type',
+                begin: '\\b(sub)?type\\s+', end: '\\s+',
+                keywords: 'type',
+                excludeBegin: true,
+                illegal: BAD_CHARS
+            },
+
+            // see comment above the definition
+            VAR_DECLS,
+
+            // no markup
+            // relevance boosters for small snippets
+            // {begin: '\\s*=>\\s*'},
+            // {begin: '\\s*:=\\s*'},
+            // {begin: '\\s+:=\\s+'},
+        ]
+    };
+}
+
+module.exports = ada;

+ 117 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/angelscript.js

@@ -0,0 +1,117 @@
+/*
+Language: AngelScript
+Author: Melissa Geels <melissa@nimble.tools>
+Category: scripting
+Website: https://www.angelcode.com/angelscript/
+*/
+
+/** @type LanguageFn */
+function angelscript(hljs) {
+  var builtInTypeMode = {
+    className: 'built_in',
+    begin: '\\b(void|bool|int|int8|int16|int32|int64|uint|uint8|uint16|uint32|uint64|string|ref|array|double|float|auto|dictionary)'
+  };
+
+  var objectHandleMode = {
+    className: 'symbol',
+    begin: '[a-zA-Z0-9_]+@'
+  };
+
+  var genericMode = {
+    className: 'keyword',
+    begin: '<', end: '>',
+    contains: [ builtInTypeMode, objectHandleMode ]
+  };
+
+  builtInTypeMode.contains = [ genericMode ];
+  objectHandleMode.contains = [ genericMode ];
+
+  return {
+    name: 'AngelScript',
+    aliases: ['asc'],
+
+    keywords:
+      'for in|0 break continue while do|0 return if else case switch namespace is cast ' +
+      'or and xor not get|0 in inout|10 out override set|0 private public const default|0 ' +
+      'final shared external mixin|10 enum typedef funcdef this super import from interface ' +
+      'abstract|0 try catch protected explicit property',
+
+    // avoid close detection with C# and JS
+    illegal: '(^using\\s+[A-Za-z0-9_\\.]+;$|\\bfunction\s*[^\\(])',
+
+    contains: [
+      { // 'strings'
+        className: 'string',
+        begin: '\'', end: '\'',
+        illegal: '\\n',
+        contains: [ hljs.BACKSLASH_ESCAPE ],
+        relevance: 0
+      },
+
+      { // "strings"
+        className: 'string',
+        begin: '"', end: '"',
+        illegal: '\\n',
+        contains: [ hljs.BACKSLASH_ESCAPE ],
+        relevance: 0
+      },
+
+      // """heredoc strings"""
+      {
+        className: 'string',
+        begin: '"""', end: '"""'
+      },
+
+      hljs.C_LINE_COMMENT_MODE, // single-line comments
+      hljs.C_BLOCK_COMMENT_MODE, // comment blocks
+
+      { // interface or namespace declaration
+        beginKeywords: 'interface namespace', end: '{',
+        illegal: '[;.\\-]',
+        contains: [
+          { // interface or namespace name
+            className: 'symbol',
+            begin: '[a-zA-Z0-9_]+'
+          }
+        ]
+      },
+
+      { // class declaration
+        beginKeywords: 'class', end: '{',
+        illegal: '[;.\\-]',
+        contains: [
+          { // class name
+            className: 'symbol',
+            begin: '[a-zA-Z0-9_]+',
+            contains: [
+              {
+                begin: '[:,]\\s*',
+                contains: [
+                  {
+                    className: 'symbol',
+                    begin: '[a-zA-Z0-9_]+'
+                  }
+                ]
+              }
+            ]
+          }
+        ]
+      },
+
+      builtInTypeMode, // built-in types
+      objectHandleMode, // object handles
+
+      { // literals
+        className: 'literal',
+        begin: '\\b(null|true|false)'
+      },
+
+      { // numbers
+        className: 'number',
+        begin: '(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?f?|\\.\\d+f?)([eE][-+]?\\d+f?)?)'
+      }
+    ]
+  };
+}
+
+module.exports = angelscript;

+ 76 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/apache.js

@@ -0,0 +1,76 @@
+/*
+Language: Apache config
+Author: Ruslan Keba <rukeba@gmail.com>
+Contributors: Ivan Sagalaev <maniac@softwaremaniacs.org>
+Website: https://httpd.apache.org
+Description: language definition for Apache configuration files (httpd.conf & .htaccess)
+Category: common, config
+*/
+
+/** @type LanguageFn */
+function apache(hljs) {
+  var NUMBER_REF = {className: 'number', begin: '[\\$%]\\d+'};
+  var NUMBER = {className: 'number', begin: '\\d+'};
+  var IP_ADDRESS = {
+    className: "number",
+    begin: '\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?'
+  };
+  var PORT_NUMBER = {
+    className: "number",
+    begin: ":\\d{1,5}"
+  };
+  return {
+    name: 'Apache config',
+    aliases: ['apacheconf'],
+    case_insensitive: true,
+    contains: [
+      hljs.HASH_COMMENT_MODE,
+      {className: 'section', begin: '</?', end: '>',
+      contains: [
+        IP_ADDRESS,
+        PORT_NUMBER,
+        // low relevance prevents us from claming XML/HTML where this rule would
+        // match strings inside of XML tags
+        hljs.inherit(hljs.QUOTE_STRING_MODE, { relevance:0 })
+      ]
+    },
+      {
+        className: 'attribute',
+        begin: /\w+/,
+        relevance: 0,
+        // keywords aren’t needed for highlighting per se, they only boost relevance
+        // for a very generally defined mode (starts with a word, ends with line-end
+        keywords: {
+          nomarkup:
+            'order deny allow setenv rewriterule rewriteengine rewritecond documentroot ' +
+            'sethandler errordocument loadmodule options header listen serverroot ' +
+            'servername'
+        },
+        starts: {
+          end: /$/,
+          relevance: 0,
+          keywords: {
+            literal: 'on off all deny allow'
+          },
+          contains: [
+            {
+              className: 'meta',
+              begin: '\\s\\[', end: '\\]$'
+            },
+            {
+              className: 'variable',
+              begin: '[\\$%]\\{', end: '\\}',
+              contains: ['self', NUMBER_REF]
+            },
+            IP_ADDRESS,
+            NUMBER,
+            hljs.QUOTE_STRING_MODE
+          ]
+        }
+      }
+    ],
+    illegal: /\S/
+  };
+}
+
+module.exports = apache;

+ 96 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/applescript.js

@@ -0,0 +1,96 @@
+/*
+Language: AppleScript
+Authors: Nathan Grigg <nathan@nathanamy.org>, Dr. Drang <drdrang@gmail.com>
+Category: scripting
+Website: https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/introduction/ASLR_intro.html
+*/
+
+/** @type LanguageFn */
+function applescript(hljs) {
+  var STRING = hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: ''});
+  var PARAMS = {
+    className: 'params',
+    begin: '\\(', end: '\\)',
+    contains: ['self', hljs.C_NUMBER_MODE, STRING]
+  };
+  var COMMENT_MODE_1 = hljs.COMMENT('--', '$');
+  var COMMENT_MODE_2 = hljs.COMMENT(
+    '\\(\\*',
+    '\\*\\)',
+    {
+      contains: ['self', COMMENT_MODE_1] //allow nesting
+    }
+  );
+  var COMMENTS = [
+    COMMENT_MODE_1,
+    COMMENT_MODE_2,
+    hljs.HASH_COMMENT_MODE
+  ];
+
+  return {
+    name: 'AppleScript',
+    aliases: ['osascript'],
+    keywords: {
+      keyword:
+        'about above after against and around as at back before beginning ' +
+        'behind below beneath beside between but by considering ' +
+        'contain contains continue copy div does eighth else end equal ' +
+        'equals error every exit fifth first for fourth from front ' +
+        'get given global if ignoring in into is it its last local me ' +
+        'middle mod my ninth not of on onto or over prop property put ref ' +
+        'reference repeat returning script second set seventh since ' +
+        'sixth some tell tenth that the|0 then third through thru ' +
+        'timeout times to transaction try until where while whose with ' +
+        'without',
+      literal:
+        'AppleScript false linefeed return pi quote result space tab true',
+      built_in:
+        'alias application boolean class constant date file integer list ' +
+        'number real record string text ' +
+        'activate beep count delay launch log offset read round ' +
+        'run say summarize write ' +
+        'character characters contents day frontmost id item length ' +
+        'month name paragraph paragraphs rest reverse running time version ' +
+        'weekday word words year'
+    },
+    contains: [
+      STRING,
+      hljs.C_NUMBER_MODE,
+      {
+        className: 'built_in',
+        begin:
+          '\\b(clipboard info|the clipboard|info for|list (disks|folder)|' +
+          'mount volume|path to|(close|open for) access|(get|set) eof|' +
+          'current date|do shell script|get volume settings|random number|' +
+          'set volume|system attribute|system info|time to GMT|' +
+          '(load|run|store) script|scripting components|' +
+          'ASCII (character|number)|localized string|' +
+          'choose (application|color|file|file name|' +
+          'folder|from list|remote application|URL)|' +
+          'display (alert|dialog))\\b|^\\s*return\\b'
+      },
+      {
+        className: 'literal',
+        begin:
+          '\\b(text item delimiters|current application|missing value)\\b'
+      },
+      {
+        className: 'keyword',
+        begin:
+          '\\b(apart from|aside from|instead of|out of|greater than|' +
+          "isn't|(doesn't|does not) (equal|come before|come after|contain)|" +
+          '(greater|less) than( or equal)?|(starts?|ends|begins?) with|' +
+          'contained by|comes (before|after)|a (ref|reference)|POSIX file|' +
+          'POSIX path|(date|time) string|quoted form)\\b'
+      },
+      {
+        beginKeywords: 'on',
+        illegal: '[${=;\\n]',
+        contains: [hljs.UNDERSCORE_TITLE_MODE, PARAMS]
+      }
+    ].concat(COMMENTS),
+    illegal: '//|->|=>|\\[\\['
+  };
+}
+
+module.exports = applescript;

+ 148 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/arcade.js

@@ -0,0 +1,148 @@
+/*
+ Language: ArcGIS Arcade
+ Category: scripting
+ Author: John Foster <jfoster@esri.com>
+ Website: https://developers.arcgis.com/arcade/
+ Description: ArcGIS Arcade is an expression language used in many Esri ArcGIS products such as Pro, Online, Server, Runtime, JavaScript, and Python
+*/
+
+/** @type LanguageFn */
+function arcade(hljs) {
+  var IDENT_RE = '[A-Za-z_][0-9A-Za-z_]*';
+  var KEYWORDS = {
+    keyword:
+      'if for while var new function do return void else break',
+    literal:
+      'BackSlash DoubleQuote false ForwardSlash Infinity NaN NewLine null PI SingleQuote Tab TextFormatting true undefined',
+    built_in:
+      'Abs Acos Angle Attachments Area AreaGeodetic Asin Atan Atan2 Average Bearing Boolean Buffer BufferGeodetic ' +
+      'Ceil Centroid Clip Console Constrain Contains Cos Count Crosses Cut Date DateAdd ' +
+      'DateDiff Day Decode DefaultValue Dictionary Difference Disjoint Distance DistanceGeodetic Distinct ' +
+      'DomainCode DomainName Equals Exp Extent Feature FeatureSet FeatureSetByAssociation FeatureSetById FeatureSetByPortalItem ' +
+      'FeatureSetByRelationshipName FeatureSetByTitle FeatureSetByUrl Filter First Floor Geometry GroupBy Guid HasKey Hour IIf IndexOf ' +
+      'Intersection Intersects IsEmpty IsNan IsSelfIntersecting Length LengthGeodetic Log Max Mean Millisecond Min Minute Month ' +
+      'MultiPartToSinglePart Multipoint NextSequenceValue Now Number OrderBy Overlaps Point Polygon ' +
+      'Polyline Portal Pow Random Relate Reverse RingIsClockWise Round Second SetGeometry Sin Sort Sqrt Stdev Sum ' +
+      'SymmetricDifference Tan Text Timestamp Today ToLocal Top Touches ToUTC TrackCurrentTime ' +
+      'TrackGeometryWindow TrackIndex TrackStartTime TrackWindow TypeOf Union UrlEncode Variance ' +
+      'Weekday When Within Year '
+  };
+  var SYMBOL = {
+    className: 'symbol',
+    begin: '\\$[datastore|feature|layer|map|measure|sourcefeature|sourcelayer|targetfeature|targetlayer|value|view]+'
+  };
+  var NUMBER = {
+    className: 'number',
+    variants: [
+      { begin: '\\b(0[bB][01]+)' },
+      { begin: '\\b(0[oO][0-7]+)' },
+      { begin: hljs.C_NUMBER_RE }
+    ],
+    relevance: 0
+  };
+  var SUBST = {
+    className: 'subst',
+    begin: '\\$\\{', end: '\\}',
+    keywords: KEYWORDS,
+    contains: [] // defined later
+  };
+  var TEMPLATE_STRING = {
+    className: 'string',
+    begin: '`', end: '`',
+    contains: [
+      hljs.BACKSLASH_ESCAPE,
+      SUBST
+    ]
+  };
+  SUBST.contains = [
+    hljs.APOS_STRING_MODE,
+    hljs.QUOTE_STRING_MODE,
+    TEMPLATE_STRING,
+    NUMBER,
+    hljs.REGEXP_MODE
+  ];
+  var PARAMS_CONTAINS = SUBST.contains.concat([
+    hljs.C_BLOCK_COMMENT_MODE,
+    hljs.C_LINE_COMMENT_MODE
+  ]);
+
+  return {
+    name: 'ArcGIS Arcade',
+    aliases: ['arcade'],
+    keywords: KEYWORDS,
+    contains: [
+      hljs.APOS_STRING_MODE,
+      hljs.QUOTE_STRING_MODE,
+      TEMPLATE_STRING,
+      hljs.C_LINE_COMMENT_MODE,
+      hljs.C_BLOCK_COMMENT_MODE,
+      SYMBOL,
+      NUMBER,
+      { // object attr container
+        begin: /[{,]\s*/, relevance: 0,
+        contains: [
+          {
+            begin: IDENT_RE + '\\s*:', returnBegin: true,
+            relevance: 0,
+            contains: [{className: 'attr', begin: IDENT_RE, relevance: 0}]
+          }
+        ]
+      },
+      { // "value" container
+        begin: '(' + hljs.RE_STARTERS_RE + '|\\b(return)\\b)\\s*',
+        keywords: 'return',
+        contains: [
+          hljs.C_LINE_COMMENT_MODE,
+          hljs.C_BLOCK_COMMENT_MODE,
+          hljs.REGEXP_MODE,
+          {
+            className: 'function',
+            begin: '(\\(.*?\\)|' + IDENT_RE + ')\\s*=>', returnBegin: true,
+            end: '\\s*=>',
+            contains: [
+              {
+                className: 'params',
+                variants: [
+                  {
+                    begin: IDENT_RE
+                  },
+                  {
+                    begin: /\(\s*\)/,
+                  },
+                  {
+                    begin: /\(/, end: /\)/,
+                    excludeBegin: true, excludeEnd: true,
+                    keywords: KEYWORDS,
+                    contains: PARAMS_CONTAINS
+                  }
+                ]
+              }
+            ]
+          }
+        ],
+        relevance: 0
+      },
+      {
+        className: 'function',
+        beginKeywords: 'function', end: /\{/, excludeEnd: true,
+        contains: [
+          hljs.inherit(hljs.TITLE_MODE, {begin: IDENT_RE}),
+          {
+            className: 'params',
+            begin: /\(/, end: /\)/,
+            excludeBegin: true,
+            excludeEnd: true,
+            contains: PARAMS_CONTAINS
+          }
+        ],
+        illegal: /\[|%/
+      },
+      {
+        begin: /\$[(.]/
+      }
+    ],
+    illegal: /#(?!!)/
+  };
+}
+
+module.exports = arcade;

+ 112 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/arduino.js

@@ -0,0 +1,112 @@
+/*
+Language: Arduino
+Author: Stefania Mellai <s.mellai@arduino.cc>
+Description: The Arduino® Language is a superset of C++. This rules are designed to highlight the Arduino® source code. For info about language see http://www.arduino.cc.
+Requires: cpp.js
+Website: https://www.arduino.cc
+*/
+
+/** @type LanguageFn */
+function arduino(hljs) {
+
+	var ARDUINO_KW = {
+      keyword:
+        'boolean byte word String',
+      built_in:
+        'setup loop ' +
+        'KeyboardController MouseController SoftwareSerial ' +
+        'EthernetServer EthernetClient LiquidCrystal ' +
+        'RobotControl GSMVoiceCall EthernetUDP EsploraTFT ' +
+        'HttpClient RobotMotor WiFiClient GSMScanner ' +
+        'FileSystem Scheduler GSMServer YunClient YunServer ' +
+        'IPAddress GSMClient GSMModem Keyboard Ethernet ' +
+        'Console GSMBand Esplora Stepper Process ' +
+        'WiFiUDP GSM_SMS Mailbox USBHost Firmata PImage ' +
+        'Client Server GSMPIN FileIO Bridge Serial ' +
+        'EEPROM Stream Mouse Audio Servo File Task ' +
+        'GPRS WiFi Wire TFT GSM SPI SD ' +
+        'runShellCommandAsynchronously analogWriteResolution ' +
+        'retrieveCallingNumber printFirmwareVersion ' +
+        'analogReadResolution sendDigitalPortPair ' +
+        'noListenOnLocalhost readJoystickButton setFirmwareVersion ' +
+        'readJoystickSwitch scrollDisplayRight getVoiceCallStatus ' +
+        'scrollDisplayLeft writeMicroseconds delayMicroseconds ' +
+        'beginTransmission getSignalStrength runAsynchronously ' +
+        'getAsynchronously listenOnLocalhost getCurrentCarrier ' +
+        'readAccelerometer messageAvailable sendDigitalPorts ' +
+        'lineFollowConfig countryNameWrite runShellCommand ' +
+        'readStringUntil rewindDirectory readTemperature ' +
+        'setClockDivider readLightSensor endTransmission ' +
+        'analogReference detachInterrupt countryNameRead ' +
+        'attachInterrupt encryptionType readBytesUntil ' +
+        'robotNameWrite readMicrophone robotNameRead cityNameWrite ' +
+        'userNameWrite readJoystickY readJoystickX mouseReleased ' +
+        'openNextFile scanNetworks noInterrupts digitalWrite ' +
+        'beginSpeaker mousePressed isActionDone mouseDragged ' +
+        'displayLogos noAutoscroll addParameter remoteNumber ' +
+        'getModifiers keyboardRead userNameRead waitContinue ' +
+        'processInput parseCommand printVersion readNetworks ' +
+        'writeMessage blinkVersion cityNameRead readMessage ' +
+        'setDataMode parsePacket isListening setBitOrder ' +
+        'beginPacket isDirectory motorsWrite drawCompass ' +
+        'digitalRead clearScreen serialEvent rightToLeft ' +
+        'setTextSize leftToRight requestFrom keyReleased ' +
+        'compassRead analogWrite interrupts WiFiServer ' +
+        'disconnect playMelody parseFloat autoscroll ' +
+        'getPINUsed setPINUsed setTimeout sendAnalog ' +
+        'readSlider analogRead beginWrite createChar ' +
+        'motorsStop keyPressed tempoWrite readButton ' +
+        'subnetMask debugPrint macAddress writeGreen ' +
+        'randomSeed attachGPRS readString sendString ' +
+        'remotePort releaseAll mouseMoved background ' +
+        'getXChange getYChange answerCall getResult ' +
+        'voiceCall endPacket constrain getSocket writeJSON ' +
+        'getButton available connected findUntil readBytes ' +
+        'exitValue readGreen writeBlue startLoop IPAddress ' +
+        'isPressed sendSysex pauseMode gatewayIP setCursor ' +
+        'getOemKey tuneWrite noDisplay loadImage switchPIN ' +
+        'onRequest onReceive changePIN playFile noBuffer ' +
+        'parseInt overflow checkPIN knobRead beginTFT ' +
+        'bitClear updateIR bitWrite position writeRGB ' +
+        'highByte writeRed setSpeed readBlue noStroke ' +
+        'remoteIP transfer shutdown hangCall beginSMS ' +
+        'endWrite attached maintain noCursor checkReg ' +
+        'checkPUK shiftOut isValid shiftIn pulseIn ' +
+        'connect println localIP pinMode getIMEI ' +
+        'display noBlink process getBand running beginSD ' +
+        'drawBMP lowByte setBand release bitRead prepare ' +
+        'pointTo readRed setMode noFill remove listen ' +
+        'stroke detach attach noTone exists buffer ' +
+        'height bitSet circle config cursor random ' +
+        'IRread setDNS endSMS getKey micros ' +
+        'millis begin print write ready flush width ' +
+        'isPIN blink clear press mkdir rmdir close ' +
+        'point yield image BSSID click delay ' +
+        'read text move peek beep rect line open ' +
+        'seek fill size turn stop home find ' +
+        'step tone sqrt RSSI SSID ' +
+        'end bit tan cos sin pow map abs max ' +
+        'min get run put',
+      literal:
+        'DIGITAL_MESSAGE FIRMATA_STRING ANALOG_MESSAGE ' +
+        'REPORT_DIGITAL REPORT_ANALOG INPUT_PULLUP ' +
+        'SET_PIN_MODE INTERNAL2V56 SYSTEM_RESET LED_BUILTIN ' +
+        'INTERNAL1V1 SYSEX_START INTERNAL EXTERNAL ' +
+        'DEFAULT OUTPUT INPUT HIGH LOW'
+  };
+
+  var ARDUINO = hljs.requireLanguage('cpp').rawDefinition();
+
+  var kws = ARDUINO.keywords;
+
+  kws.keyword += ' ' + ARDUINO_KW.keyword;
+  kws.literal += ' ' + ARDUINO_KW.literal;
+  kws.built_in += ' ' + ARDUINO_KW.built_in;
+
+  ARDUINO.name = 'Arduino';
+  ARDUINO.aliases = ['ino'];
+
+  return ARDUINO;
+}
+
+module.exports = arduino;

+ 111 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/armasm.js

@@ -0,0 +1,111 @@
+/*
+Language: ARM Assembly
+Author: Dan Panzarella <alsoelp@gmail.com>
+Description: ARM Assembly including Thumb and Thumb2 instructions
+Category: assembler
+*/
+
+/** @type LanguageFn */
+function armasm(hljs) {
+    //local labels: %?[FB]?[AT]?\d{1,2}\w+
+
+  const COMMENT = {
+    variants: [
+      hljs.COMMENT('^[ \\t]*(?=#)', '$', {relevance: 0, excludeBegin: true }),
+      hljs.COMMENT('[;@]', '$', {relevance: 0}),
+      hljs.C_LINE_COMMENT_MODE,
+      hljs.C_BLOCK_COMMENT_MODE,
+    ]
+  };
+
+  return {
+    name: 'ARM Assembly',
+    case_insensitive: true,
+    aliases: ['arm'],
+    keywords: {
+      $pattern: '\\.?' + hljs.IDENT_RE,
+      meta:
+        //GNU preprocs
+        '.2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .arm .thumb .code16 .code32 .force_thumb .thumb_func .ltorg '+
+        //ARM directives
+        'ALIAS ALIGN ARM AREA ASSERT ATTR CN CODE CODE16 CODE32 COMMON CP DATA DCB DCD DCDU DCDO DCFD DCFDU DCI DCQ DCQU DCW DCWU DN ELIF ELSE END ENDFUNC ENDIF ENDP ENTRY EQU EXPORT EXPORTAS EXTERN FIELD FILL FUNCTION GBLA GBLL GBLS GET GLOBAL IF IMPORT INCBIN INCLUDE INFO KEEP LCLA LCLL LCLS LTORG MACRO MAP MEND MEXIT NOFP OPT PRESERVE8 PROC QN READONLY RELOC REQUIRE REQUIRE8 RLIST FN ROUT SETA SETL SETS SN SPACE SUBT THUMB THUMBX TTL WHILE WEND ',
+      built_in:
+        'r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 '+ //standard registers
+        'pc lr sp ip sl sb fp '+ //typical regs plus backward compatibility
+        'a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 '+ //more regs and fp
+        'p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 '+ //coprocessor regs
+        'c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 '+ //more coproc
+        'q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 '+ //advanced SIMD NEON regs
+
+        //program status registers
+        'cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf '+
+        'spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf '+
+
+        //NEON and VFP registers
+        's0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 '+
+        's16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 '+
+        'd0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 '+
+        'd16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 ' +
+
+        '{PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @'
+    },
+    contains: [
+      {
+        className: 'keyword',
+        begin: '\\b('+     //mnemonics
+            'adc|'+
+            '(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|'+
+            'and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|'+
+            'bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|'+
+            'setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|'+
+            'ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|'+
+            'mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|'+
+            'mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|'+
+            'mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|'+
+            'rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|'+
+            'stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|'+
+            '[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|'+
+            'wfe|wfi|yield'+
+        ')'+
+        '(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?'+ //condition codes
+        '[sptrx]?' +                                             //legal postfixes
+        '(?=\\s)'                                                // followed by space
+      },
+      COMMENT,
+      hljs.QUOTE_STRING_MODE,
+      {
+        className: 'string',
+        begin: '\'',
+        end: '[^\\\\]\'',
+        relevance: 0
+      },
+      {
+        className: 'title',
+        begin: '\\|', end: '\\|',
+        illegal: '\\n',
+        relevance: 0
+      },
+      {
+        className: 'number',
+        variants: [
+            {begin: '[#$=]?0x[0-9a-f]+'}, //hex
+            {begin: '[#$=]?0b[01]+'},     //bin
+            {begin: '[#$=]\\d+'},        //literal
+            {begin: '\\b\\d+'}           //bare number
+        ],
+        relevance: 0
+      },
+      {
+        className: 'symbol',
+        variants: [
+            {begin: '^[ \\t]*[a-z_\\.\\$][a-z0-9_\\.\\$]+:'}, //GNU ARM syntax
+            {begin: '^[a-z_\\.\\$][a-z0-9_\\.\\$]+'}, //ARM syntax
+            {begin: '[=#]\\w+' }  //label reference
+        ],
+        relevance: 0
+      }
+    ]
+  };
+}
+
+module.exports = armasm;

+ 200 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/asciidoc.js

@@ -0,0 +1,200 @@
+/*
+Language: AsciiDoc
+Requires: xml.js
+Author: Dan Allen <dan.j.allen@gmail.com>
+Website: http://asciidoc.org
+Description: A semantic, text-based document format that can be exported to HTML, DocBook and other backends.
+Category: markup
+*/
+
+/** @type LanguageFn */
+function asciidoc(hljs) {
+  return {
+    name: 'AsciiDoc',
+    aliases: ['adoc'],
+    contains: [
+      // block comment
+      hljs.COMMENT(
+        '^/{4,}\\n',
+        '\\n/{4,}$',
+        // can also be done as...
+        //'^/{4,}$',
+        //'^/{4,}$',
+        {
+          relevance: 10
+        }
+      ),
+      // line comment
+      hljs.COMMENT(
+        '^//',
+        '$',
+        {
+          relevance: 0
+        }
+      ),
+      // title
+      {
+        className: 'title',
+        begin: '^\\.\\w.*$'
+      },
+      // example, admonition & sidebar blocks
+      {
+        begin: '^[=\\*]{4,}\\n',
+        end: '\\n^[=\\*]{4,}$',
+        relevance: 10
+      },
+      // headings
+      {
+        className: 'section',
+        relevance: 10,
+        variants: [
+          {begin: '^(={1,5}) .+?( \\1)?$'},
+          {begin: '^[^\\[\\]\\n]+?\\n[=\\-~\\^\\+]{2,}$'},
+        ]
+      },
+      // document attributes
+      {
+        className: 'meta',
+        begin: '^:.+?:',
+        end: '\\s',
+        excludeEnd: true,
+        relevance: 10
+      },
+      // block attributes
+      {
+        className: 'meta',
+        begin: '^\\[.+?\\]$',
+        relevance: 0
+      },
+      // quoteblocks
+      {
+        className: 'quote',
+        begin: '^_{4,}\\n',
+        end: '\\n_{4,}$',
+        relevance: 10
+      },
+      // listing and literal blocks
+      {
+        className: 'code',
+        begin: '^[\\-\\.]{4,}\\n',
+        end: '\\n[\\-\\.]{4,}$',
+        relevance: 10
+      },
+      // passthrough blocks
+      {
+        begin: '^\\+{4,}\\n',
+        end: '\\n\\+{4,}$',
+        contains: [
+          {
+            begin: '<', end: '>',
+            subLanguage: 'xml',
+            relevance: 0
+          }
+        ],
+        relevance: 10
+      },
+      // lists (can only capture indicators)
+      {
+        className: 'bullet',
+        begin: '^(\\*+|\\-+|\\.+|[^\\n]+?::)\\s+'
+      },
+      // admonition
+      {
+        className: 'symbol',
+        begin: '^(NOTE|TIP|IMPORTANT|WARNING|CAUTION):\\s+',
+        relevance: 10
+      },
+      // inline strong
+      {
+        className: 'strong',
+        // must not follow a word character or be followed by an asterisk or space
+        begin: '\\B\\*(?![\\*\\s])',
+        end: '(\\n{2}|\\*)',
+        // allow escaped asterisk followed by word char
+        contains: [
+          {
+            begin: '\\\\*\\w',
+            relevance: 0
+          }
+        ]
+      },
+      // inline emphasis
+      {
+        className: 'emphasis',
+        // must not follow a word character or be followed by a single quote or space
+        begin: '\\B\'(?![\'\\s])',
+        end: '(\\n{2}|\')',
+        // allow escaped single quote followed by word char
+        contains: [
+          {
+            begin: '\\\\\'\\w',
+            relevance: 0
+          }
+        ],
+        relevance: 0
+      },
+      // inline emphasis (alt)
+      {
+        className: 'emphasis',
+        // must not follow a word character or be followed by an underline or space
+        begin: '_(?![_\\s])',
+        end: '(\\n{2}|_)',
+        relevance: 0
+      },
+      // inline smart quotes
+      {
+        className: 'string',
+        variants: [
+          {begin: "``.+?''"},
+          {begin: "`.+?'"}
+        ]
+      },
+      // inline code snippets (TODO should get same treatment as strong and emphasis)
+      {
+        className: 'code',
+        begin: '(`.+?`|\\+.+?\\+)',
+        relevance: 0
+      },
+      // indented literal block
+      {
+        className: 'code',
+        begin: '^[ \\t]',
+        end: '$',
+        relevance: 0
+      },
+      // horizontal rules
+      {
+        begin: '^\'{3,}[ \\t]*$',
+        relevance: 10
+      },
+      // images and links
+      {
+        begin: '(link:)?(http|https|ftp|file|irc|image:?):\\S+\\[.*?\\]',
+        returnBegin: true,
+        contains: [
+          {
+            begin: '(link|image:?):',
+            relevance: 0
+          },
+          {
+            className: 'link',
+            begin: '\\w',
+            end: '[^\\[]+',
+            relevance: 0
+          },
+          {
+            className: 'string',
+            begin: '\\[',
+            end: '\\]',
+            excludeBegin: true,
+            excludeEnd: true,
+            relevance: 0
+          }
+        ],
+        relevance: 10
+      }
+    ]
+  };
+}
+
+module.exports = asciidoc;

+ 155 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/aspectj.js

@@ -0,0 +1,155 @@
+/*
+Language: AspectJ
+Author: Hakan Ozler <ozler.hakan@gmail.com>
+Website: https://www.eclipse.org/aspectj/
+Description: Syntax Highlighting for the AspectJ Language which is a general-purpose aspect-oriented extension to the Java programming language.
+ */
+
+/** @type LanguageFn */
+function aspectj(hljs) {
+  var KEYWORDS =
+    'false synchronized int abstract float private char boolean static null if const ' +
+    'for true while long throw strictfp finally protected import native final return void ' +
+    'enum else extends implements break transient new catch instanceof byte super volatile case ' +
+    'assert short package default double public try this switch continue throws privileged ' +
+    'aspectOf adviceexecution proceed cflowbelow cflow initialization preinitialization ' +
+    'staticinitialization withincode target within execution getWithinTypeName handler ' +
+    'thisJoinPoint thisJoinPointStaticPart thisEnclosingJoinPointStaticPart declare parents '+
+    'warning error soft precedence thisAspectInstance';
+  var SHORTKEYS = 'get set args call';
+  return {
+    name: 'AspectJ',
+    keywords : KEYWORDS,
+    illegal : /<\/|#/,
+    contains : [
+      hljs.COMMENT(
+        '/\\*\\*',
+        '\\*/',
+        {
+          relevance : 0,
+          contains : [
+            {
+              // eat up @'s in emails to prevent them to be recognized as doctags
+              begin: /\w+@/, relevance: 0
+            },
+            {
+              className : 'doctag',
+              begin : '@[A-Za-z]+'
+            }
+          ]
+        }
+      ),
+      hljs.C_LINE_COMMENT_MODE,
+      hljs.C_BLOCK_COMMENT_MODE,
+      hljs.APOS_STRING_MODE,
+      hljs.QUOTE_STRING_MODE,
+      {
+        className : 'class',
+        beginKeywords : 'aspect',
+        end : /[{;=]/,
+        excludeEnd : true,
+        illegal : /[:;"\[\]]/,
+        contains : [
+          {
+            beginKeywords : 'extends implements pertypewithin perthis pertarget percflowbelow percflow issingleton'
+          },
+          hljs.UNDERSCORE_TITLE_MODE,
+          {
+            begin : /\([^\)]*/,
+            end : /[)]+/,
+            keywords : KEYWORDS + ' ' + SHORTKEYS,
+            excludeEnd : false
+          }
+        ]
+      },
+      {
+        className : 'class',
+        beginKeywords : 'class interface',
+        end : /[{;=]/,
+        excludeEnd : true,
+        relevance: 0,
+        keywords : 'class interface',
+        illegal : /[:"\[\]]/,
+        contains : [
+          {beginKeywords : 'extends implements'},
+          hljs.UNDERSCORE_TITLE_MODE
+        ]
+      },
+      {
+        // AspectJ Constructs
+        beginKeywords : 'pointcut after before around throwing returning',
+        end : /[)]/,
+        excludeEnd : false,
+        illegal : /["\[\]]/,
+        contains : [
+          {
+            begin : hljs.UNDERSCORE_IDENT_RE + '\\s*\\(',
+            returnBegin : true,
+            contains : [hljs.UNDERSCORE_TITLE_MODE]
+          }
+        ]
+      },
+      {
+        begin : /[:]/,
+        returnBegin : true,
+        end : /[{;]/,
+        relevance: 0,
+        excludeEnd : false,
+        keywords : KEYWORDS,
+        illegal : /["\[\]]/,
+        contains : [
+          {
+            begin : hljs.UNDERSCORE_IDENT_RE + '\\s*\\(',
+            keywords : KEYWORDS + ' ' + SHORTKEYS,
+            relevance: 0
+          },
+          hljs.QUOTE_STRING_MODE
+        ]
+      },
+      {
+        // this prevents 'new Name(...), or throw ...' from being recognized as a function definition
+        beginKeywords : 'new throw',
+        relevance : 0
+      },
+      {
+        // the function class is a bit different for AspectJ compared to the Java language
+        className : 'function',
+        begin : /\w+ +\w+(\.)?\w+\s*\([^\)]*\)\s*((throws)[\w\s,]+)?[\{;]/,
+        returnBegin : true,
+        end : /[{;=]/,
+        keywords : KEYWORDS,
+        excludeEnd : true,
+        contains : [
+          {
+            begin : hljs.UNDERSCORE_IDENT_RE + '\\s*\\(',
+            returnBegin : true,
+            relevance: 0,
+            contains : [hljs.UNDERSCORE_TITLE_MODE]
+          },
+          {
+            className : 'params',
+            begin : /\(/, end : /\)/,
+            relevance: 0,
+            keywords : KEYWORDS,
+            contains : [
+              hljs.APOS_STRING_MODE,
+              hljs.QUOTE_STRING_MODE,
+              hljs.C_NUMBER_MODE,
+              hljs.C_BLOCK_COMMENT_MODE
+            ]
+          },
+          hljs.C_LINE_COMMENT_MODE,
+          hljs.C_BLOCK_COMMENT_MODE
+        ]
+      },
+      hljs.C_NUMBER_MODE,
+      {
+        // annotation is also used in this language
+        className : 'meta',
+        begin : '@[A-Za-z]+'
+      }
+    ]
+  };
+}
+
+module.exports = aspectj;

+ 68 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/autohotkey.js

@@ -0,0 +1,68 @@
+/*
+Language: AutoHotkey
+Author: Seongwon Lee <dlimpid@gmail.com>
+Description: AutoHotkey language definition
+Category: scripting
+*/
+
+/** @type LanguageFn */
+function autohotkey(hljs) {
+  var BACKTICK_ESCAPE = {
+    begin: '`[\\s\\S]'
+  };
+
+  return {
+    name: 'AutoHotkey',
+    case_insensitive: true,
+    aliases: ['ahk'],
+    keywords: {
+      keyword: 'Break Continue Critical Exit ExitApp Gosub Goto New OnExit Pause return SetBatchLines SetTimer Suspend Thread Throw Until ahk_id ahk_class ahk_pid ahk_exe ahk_group',
+      literal: 'true false NOT AND OR',
+      built_in: 'ComSpec Clipboard ClipboardAll ErrorLevel',
+    },
+    contains: [
+      BACKTICK_ESCAPE,
+      hljs.inherit(hljs.QUOTE_STRING_MODE, {contains: [BACKTICK_ESCAPE]}),
+      hljs.COMMENT(';', '$', {relevance: 0}),
+      hljs.C_BLOCK_COMMENT_MODE,
+      {
+        className: 'number',
+        begin: hljs.NUMBER_RE,
+        relevance: 0
+      },
+      {
+        className: 'variable', //subst would be the most accurate however fails the point of highlighting. variable is comparably the most accurate that actually has some effect
+        begin: '%[a-zA-Z0-9#_$@]+%'
+      },
+      {
+        className: 'built_in',
+        begin: '^\\s*\\w+\\s*(,|%)'
+        //I don't really know if this is totally relevant
+      },
+      {
+        className: 'title', //symbol would be most accurate however is highlighted just like built_in and that makes up a lot of AutoHotkey code
+		                        //meaning that it would fail to highlight anything
+        variants: [
+          {begin: '^[^\\n";]+::(?!=)'},
+          {begin: '^[^\\n";]+:(?!=)', relevance: 0} // zero relevance as it catches a lot of things
+                                                    // followed by a single ':' in many languages
+        ]
+      },
+      {
+        className: 'meta',
+        begin: '^\\s*#\\w+', end:'$',
+        relevance: 0
+      },
+	    {
+        className: 'built_in',
+        begin: 'A_[a-zA-Z0-9]+'
+      },
+      {
+        // consecutive commas, not for highlighting but just for relevance
+        begin: ',\\s*,'
+      }
+    ]
+  }
+}
+
+module.exports = autohotkey;

File diff suppressed because it is too large
+ 18 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/autoit.js


+ 72 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/avrasm.js

@@ -0,0 +1,72 @@
+/*
+Language: AVR Assembly
+Author: Vladimir Ermakov <vooon341@gmail.com>
+Category: assembler
+Website: https://www.microchip.com/webdoc/avrassembler/avrassembler.wb_instruction_list.html
+*/
+
+/** @type LanguageFn */
+function avrasm(hljs) {
+  return {
+    name: 'AVR Assembly',
+    case_insensitive: true,
+    keywords: {
+      $pattern: '\\.?' + hljs.IDENT_RE,
+      keyword:
+        /* mnemonic */
+        'adc add adiw and andi asr bclr bld brbc brbs brcc brcs break breq brge brhc brhs ' +
+        'brid brie brlo brlt brmi brne brpl brsh brtc brts brvc brvs bset bst call cbi cbr ' +
+        'clc clh cli cln clr cls clt clv clz com cp cpc cpi cpse dec eicall eijmp elpm eor ' +
+        'fmul fmuls fmulsu icall ijmp in inc jmp ld ldd ldi lds lpm lsl lsr mov movw mul ' +
+        'muls mulsu neg nop or ori out pop push rcall ret reti rjmp rol ror sbc sbr sbrc sbrs ' +
+        'sec seh sbi sbci sbic sbis sbiw sei sen ser ses set sev sez sleep spm st std sts sub ' +
+        'subi swap tst wdr',
+      built_in:
+        /* general purpose registers */
+        'r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r20 r21 r22 ' +
+        'r23 r24 r25 r26 r27 r28 r29 r30 r31 x|0 xh xl y|0 yh yl z|0 zh zl ' +
+        /* IO Registers (ATMega128) */
+        'ucsr1c udr1 ucsr1a ucsr1b ubrr1l ubrr1h ucsr0c ubrr0h tccr3c tccr3a tccr3b tcnt3h ' +
+        'tcnt3l ocr3ah ocr3al ocr3bh ocr3bl ocr3ch ocr3cl icr3h icr3l etimsk etifr tccr1c ' +
+        'ocr1ch ocr1cl twcr twdr twar twsr twbr osccal xmcra xmcrb eicra spmcsr spmcr portg ' +
+        'ddrg ping portf ddrf sreg sph spl xdiv rampz eicrb eimsk gimsk gicr eifr gifr timsk ' +
+        'tifr mcucr mcucsr tccr0 tcnt0 ocr0 assr tccr1a tccr1b tcnt1h tcnt1l ocr1ah ocr1al ' +
+        'ocr1bh ocr1bl icr1h icr1l tccr2 tcnt2 ocr2 ocdr wdtcr sfior eearh eearl eedr eecr ' +
+        'porta ddra pina portb ddrb pinb portc ddrc pinc portd ddrd pind spdr spsr spcr udr0 ' +
+        'ucsr0a ucsr0b ubrr0l acsr admux adcsr adch adcl porte ddre pine pinf',
+      meta:
+        '.byte .cseg .db .def .device .dseg .dw .endmacro .equ .eseg .exit .include .list ' +
+        '.listmac .macro .nolist .org .set'
+    },
+    contains: [
+      hljs.C_BLOCK_COMMENT_MODE,
+      hljs.COMMENT(
+        ';',
+        '$',
+        {
+          relevance: 0
+        }
+      ),
+      hljs.C_NUMBER_MODE, // 0x..., decimal, float
+      hljs.BINARY_NUMBER_MODE, // 0b...
+      {
+        className: 'number',
+        begin: '\\b(\\$[a-zA-Z0-9]+|0o[0-7]+)' // $..., 0o...
+      },
+      hljs.QUOTE_STRING_MODE,
+      {
+        className: 'string',
+        begin: '\'', end: '[^\\\\]\'',
+        illegal: '[^\\\\][^\']'
+      },
+      {className: 'symbol',  begin: '^[A-Za-z0-9_.$]+:'},
+      {className: 'meta', begin: '#', end: '$'},
+      {  // substitution within a macro
+        className: 'subst',
+        begin: '@[0-9]+'
+      }
+    ]
+  };
+}
+
+module.exports = avrasm;

+ 63 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/awk.js

@@ -0,0 +1,63 @@
+/*
+Language: Awk
+Author: Matthew Daly <matthewbdaly@gmail.com>
+Website: https://www.gnu.org/software/gawk/manual/gawk.html
+Description: language definition for Awk scripts
+*/
+
+/** @type LanguageFn */
+function awk(hljs) {
+  var VARIABLE = {
+    className: 'variable',
+    variants: [
+      {begin: /\$[\w\d#@][\w\d_]*/},
+      {begin: /\$\{(.*?)}/}
+    ]
+  };
+  var KEYWORDS = 'BEGIN END if else while do for in break continue delete next nextfile function func exit|10';
+  var STRING = {
+    className: 'string',
+    contains: [hljs.BACKSLASH_ESCAPE],
+    variants: [
+      {
+        begin: /(u|b)?r?'''/, end: /'''/,
+        relevance: 10
+      },
+      {
+        begin: /(u|b)?r?"""/, end: /"""/,
+        relevance: 10
+      },
+      {
+        begin: /(u|r|ur)'/, end: /'/,
+        relevance: 10
+      },
+      {
+        begin: /(u|r|ur)"/, end: /"/,
+        relevance: 10
+      },
+      {
+        begin: /(b|br)'/, end: /'/
+      },
+      {
+        begin: /(b|br)"/, end: /"/
+      },
+      hljs.APOS_STRING_MODE,
+      hljs.QUOTE_STRING_MODE
+    ]
+  };
+  return {
+    name: 'Awk',
+    keywords: {
+      keyword: KEYWORDS
+    },
+    contains: [
+      VARIABLE,
+      STRING,
+      hljs.REGEXP_MODE,
+      hljs.HASH_COMMENT_MODE,
+      hljs.NUMBER_MODE
+    ]
+  }
+}
+
+module.exports = awk;

+ 41 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/axapta.js

@@ -0,0 +1,41 @@
+/*
+Language: Microsoft Axapta (now Dynamics 365)
+Author: Dmitri Roudakov <dmitri@roudakov.ru>
+Website: https://dynamics.microsoft.com/en-us/ax-overview/
+Category: enterprise
+*/
+
+/** @type LanguageFn */
+function axapta(hljs) {
+  return {
+    name: 'Dynamics 365',
+    keywords: 'false int abstract private char boolean static null if for true ' +
+      'while long throw finally protected final return void enum else ' +
+      'break new catch byte super case short default double public try this switch ' +
+      'continue reverse firstfast firstonly forupdate nofetch sum avg minof maxof count ' +
+      'order group by asc desc index hint like dispaly edit client server ttsbegin ' +
+      'ttscommit str real date container anytype common div mod',
+    contains: [
+      hljs.C_LINE_COMMENT_MODE,
+      hljs.C_BLOCK_COMMENT_MODE,
+      hljs.APOS_STRING_MODE,
+      hljs.QUOTE_STRING_MODE,
+      hljs.C_NUMBER_MODE,
+      {
+        className: 'meta',
+        begin: '#', end: '$'
+      },
+      {
+        className: 'class',
+        beginKeywords: 'class interface', end: '{', excludeEnd: true,
+        illegal: ':',
+        contains: [
+          {beginKeywords: 'extends implements'},
+          hljs.UNDERSCORE_TITLE_MODE
+        ]
+      }
+    ]
+  };
+}
+
+module.exports = axapta;

+ 125 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/bash.js

@@ -0,0 +1,125 @@
+/*
+Language: Bash
+Author: vah <vahtenberg@gmail.com>
+Contributrors: Benjamin Pannell <contact@sierrasoftworks.com>
+Website: https://www.gnu.org/software/bash/
+Category: common
+*/
+
+/** @type LanguageFn */
+function bash(hljs) {
+  const VAR = {};
+  const BRACED_VAR = {
+    begin: /\$\{/, end:/\}/,
+    contains: [
+      { begin: /:-/, contains: [VAR] } // default values
+    ]
+  };
+  Object.assign(VAR,{
+    className: 'variable',
+    variants: [
+      {begin: /\$[\w\d#@][\w\d_]*/},
+      BRACED_VAR
+    ]
+  });
+
+  const SUBST = {
+    className: 'subst',
+    begin: /\$\(/, end: /\)/,
+    contains: [hljs.BACKSLASH_ESCAPE]
+  };
+  const QUOTE_STRING = {
+    className: 'string',
+    begin: /"/, end: /"/,
+    contains: [
+      hljs.BACKSLASH_ESCAPE,
+      VAR,
+      SUBST
+    ]
+  };
+  SUBST.contains.push(QUOTE_STRING);
+  const ESCAPED_QUOTE = {
+    className: '',
+    begin: /\\"/
+
+  };
+  const APOS_STRING = {
+    className: 'string',
+    begin: /'/, end: /'/
+  };
+  const ARITHMETIC = {
+    begin: /\$\(\(/,
+    end: /\)\)/,
+    contains: [
+      { begin: /\d+#[0-9a-f]+/, className: "number" },
+      hljs.NUMBER_MODE,
+      VAR
+    ]
+  };
+  const SH_LIKE_SHELLS = [
+    "fish",
+    "bash",
+    "zsh",
+    "sh",
+    "csh",
+    "ksh",
+    "tcsh",
+    "dash",
+    "scsh",
+  ];
+  const KNOWN_SHEBANG = hljs.SHEBANG({
+    binary: `(${SH_LIKE_SHELLS.join("|")})`,
+    relevance: 10
+  });
+  const FUNCTION = {
+    className: 'function',
+    begin: /\w[\w\d_]*\s*\(\s*\)\s*\{/,
+    returnBegin: true,
+    contains: [hljs.inherit(hljs.TITLE_MODE, {begin: /\w[\w\d_]*/})],
+    relevance: 0
+  };
+
+  return {
+    name: 'Bash',
+    aliases: ['sh', 'zsh'],
+    keywords: {
+      $pattern: /\b-?[a-z\._-]+\b/,
+      keyword:
+        'if then else elif fi for while in do done case esac function',
+      literal:
+        'true false',
+      built_in:
+        // Shell built-ins
+        // http://www.gnu.org/software/bash/manual/html_node/Shell-Builtin-Commands.html
+        'break cd continue eval exec exit export getopts hash pwd readonly return shift test times ' +
+        'trap umask unset ' +
+        // Bash built-ins
+        'alias bind builtin caller command declare echo enable help let local logout mapfile printf ' +
+        'read readarray source type typeset ulimit unalias ' +
+        // Shell modifiers
+        'set shopt ' +
+        // Zsh built-ins
+        'autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles ' +
+        'compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate ' +
+        'fc fg float functions getcap getln history integer jobs kill limit log noglob popd print ' +
+        'pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit ' +
+        'unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof ' +
+        'zpty zregexparse zsocket zstyle ztcp',
+      _:
+        '-ne -eq -lt -gt -f -d -e -s -l -a' // relevance booster
+    },
+    contains: [
+      KNOWN_SHEBANG, // to catch known shells and boost relevancy
+      hljs.SHEBANG(), // to catch unknown shells but still highlight the shebang
+      FUNCTION,
+      ARITHMETIC,
+      hljs.HASH_COMMENT_MODE,
+      QUOTE_STRING,
+      ESCAPED_QUOTE,
+      APOS_STRING,
+      VAR
+    ]
+  };
+}
+
+module.exports = bash;

+ 61 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/basic.js

@@ -0,0 +1,61 @@
+/*
+Language: BASIC
+Author: Raphaël Assénat <raph@raphnet.net>
+Description: Based on the BASIC reference from the Tandy 1000 guide
+Website: https://en.wikipedia.org/wiki/Tandy_1000
+*/
+
+/** @type LanguageFn */
+function basic(hljs) {
+  return {
+    name: 'BASIC',
+    case_insensitive: true,
+    illegal: '^\.',
+    // Support explicitly typed variables that end with $%! or #.
+    keywords: {
+        $pattern: '[a-zA-Z][a-zA-Z0-9_\$\%\!\#]*',
+        keyword:
+          'ABS ASC AND ATN AUTO|0 BEEP BLOAD|10 BSAVE|10 CALL CALLS CDBL CHAIN CHDIR CHR$|10 CINT CIRCLE ' +
+          'CLEAR CLOSE CLS COLOR COM COMMON CONT COS CSNG CSRLIN CVD CVI CVS DATA DATE$ ' +
+          'DEFDBL DEFINT DEFSNG DEFSTR DEF|0 SEG USR DELETE DIM DRAW EDIT END ENVIRON ENVIRON$ ' +
+          'EOF EQV ERASE ERDEV ERDEV$ ERL ERR ERROR EXP FIELD FILES FIX FOR|0 FRE GET GOSUB|10 GOTO ' +
+          'HEX$ IF THEN ELSE|0 INKEY$ INP INPUT INPUT# INPUT$ INSTR IMP INT IOCTL IOCTL$ KEY ON ' +
+          'OFF LIST KILL LEFT$ LEN LET LINE LLIST LOAD LOC LOCATE LOF LOG LPRINT USING LSET ' +
+          'MERGE MID$ MKDIR MKD$ MKI$ MKS$ MOD NAME NEW NEXT NOISE NOT OCT$ ON OR PEN PLAY STRIG OPEN OPTION ' +
+          'BASE OUT PAINT PALETTE PCOPY PEEK PMAP POINT POKE POS PRINT PRINT] PSET PRESET ' +
+          'PUT RANDOMIZE READ REM RENUM RESET|0 RESTORE RESUME RETURN|0 RIGHT$ RMDIR RND RSET ' +
+          'RUN SAVE SCREEN SGN SHELL SIN SOUND SPACE$ SPC SQR STEP STICK STOP STR$ STRING$ SWAP ' +
+          'SYSTEM TAB TAN TIME$ TIMER TROFF TRON TO USR VAL VARPTR VARPTR$ VIEW WAIT WHILE ' +
+          'WEND WIDTH WINDOW WRITE XOR'
+    },
+    contains: [
+      hljs.QUOTE_STRING_MODE,
+      hljs.COMMENT('REM', '$', {relevance: 10}),
+      hljs.COMMENT('\'', '$', {relevance: 0}),
+      {
+        // Match line numbers
+        className: 'symbol',
+        begin: '^[0-9]+\ ',
+        relevance: 10
+      },
+      {
+        // Match typed numeric constants (1000, 12.34!, 1.2e5, 1.5#, 1.2D2)
+        className: 'number',
+        begin: '\\b([0-9]+[0-9edED\.]*[#\!]?)',
+        relevance: 0
+      },
+      {
+        // Match hexadecimal numbers (&Hxxxx)
+        className: 'number',
+        begin: '(\&[hH][0-9a-fA-F]{1,4})'
+      },
+      {
+        // Match octal numbers (&Oxxxxxx)
+        className: 'number',
+        begin: '(\&[oO][0-7]{1,6})'
+      }
+    ]
+  };
+}
+
+module.exports = basic;

+ 36 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/bnf.js

@@ -0,0 +1,36 @@
+/*
+Language: Backus–Naur Form
+Website: https://en.wikipedia.org/wiki/Backus–Naur_form
+Author: Oleg Efimov <efimovov@gmail.com>
+*/
+
+/** @type LanguageFn */
+function bnf(hljs) {
+  return {
+    name: 'Backus–Naur Form',
+    contains: [
+      // Attribute
+      {
+        className: 'attribute',
+        begin: /</, end: />/
+      },
+      // Specific
+      {
+        begin: /::=/,
+        end: /$/,
+        contains: [
+          {
+            begin: /</, end: />/
+          },
+          // Common
+          hljs.C_LINE_COMMENT_MODE,
+          hljs.C_BLOCK_COMMENT_MODE,
+          hljs.APOS_STRING_MODE,
+          hljs.QUOTE_STRING_MODE
+        ]
+      }
+    ]
+  };
+}
+
+module.exports = bnf;

+ 46 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/brainfuck.js

@@ -0,0 +1,46 @@
+/*
+Language: Brainfuck
+Author: Evgeny Stepanischev <imbolk@gmail.com>
+Website: https://esolangs.org/wiki/Brainfuck
+*/
+
+/** @type LanguageFn */
+function brainfuck(hljs) {
+  var LITERAL = {
+    className: 'literal',
+    begin: '[\\+\\-]',
+    relevance: 0
+  };
+  return {
+    name: 'Brainfuck',
+    aliases: ['bf'],
+    contains: [
+      hljs.COMMENT(
+        '[^\\[\\]\\.,\\+\\-<> \r\n]',
+        '[\\[\\]\\.,\\+\\-<> \r\n]',
+        {
+          returnEnd: true,
+          relevance: 0
+        }
+      ),
+      {
+        className: 'title',
+        begin: '[\\[\\]]',
+        relevance: 0
+      },
+      {
+        className: 'string',
+        begin: '[\\.,]',
+        relevance: 0
+      },
+      {
+        // this mode works as the only relevance counter
+        begin: /(?:\+\+|\-\-)/,
+        contains: [LITERAL]
+      },
+      LITERAL
+    ]
+  };
+}
+
+module.exports = brainfuck;

+ 242 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/c-like.js

@@ -0,0 +1,242 @@
+/*
+Language: C-like foundation grammar for C/C++ grammars
+Author: Ivan Sagalaev <maniac@softwaremaniacs.org>
+Contributors: Evgeny Stepanischev <imbolk@gmail.com>, Zaven Muradyan <megalivoithos@gmail.com>, Roel Deckers <admin@codingcat.nl>, Sam Wu <samsam2310@gmail.com>, Jordi Petit <jordi.petit@gmail.com>, Pieter Vantorre <pietervantorre@gmail.com>, Google Inc. (David Benjamin) <davidben@google.com>
+Category: common, system
+*/
+
+/* In the future the intention is to split out the C/C++ grammars distinctly
+since they are separate languages.  They will likely share a common foundation
+though, and this file sets the groundwork for that - so that we get the breaking
+change in v10 and don't have to change the requirements again later.
+
+See: https://github.com/highlightjs/highlight.js/issues/2146
+*/
+
+/** @type LanguageFn */
+function cLike(hljs) {
+  function optional(s) {
+    return '(?:' + s + ')?';
+  }
+  var DECLTYPE_AUTO_RE = 'decltype\\(auto\\)';
+  var NAMESPACE_RE = '[a-zA-Z_]\\w*::';
+  var TEMPLATE_ARGUMENT_RE = '<.*?>';
+  var FUNCTION_TYPE_RE = '(' +
+    DECLTYPE_AUTO_RE + '|' +
+    optional(NAMESPACE_RE) +'[a-zA-Z_]\\w*' + optional(TEMPLATE_ARGUMENT_RE) +
+  ')';
+  var CPP_PRIMITIVE_TYPES = {
+    className: 'keyword',
+    begin: '\\b[a-z\\d_]*_t\\b'
+  };
+
+  // https://en.cppreference.com/w/cpp/language/escape
+  // \\ \x \xFF \u2837 \u00323747 \374
+  var CHARACTER_ESCAPES = '\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)';
+  var STRINGS = {
+    className: 'string',
+    variants: [
+      {
+        begin: '(u8?|U|L)?"', end: '"',
+        illegal: '\\n',
+        contains: [hljs.BACKSLASH_ESCAPE]
+      },
+      {
+        begin: '(u8?|U|L)?\'(' + CHARACTER_ESCAPES + "|.)", end: '\'',
+        illegal: '.'
+      },
+      hljs.END_SAME_AS_BEGIN({
+        begin: /(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,
+        end: /\)([^()\\ ]{0,16})"/,
+      })
+    ]
+  };
+
+  var NUMBERS = {
+    className: 'number',
+    variants: [
+      { begin: '\\b(0b[01\']+)' },
+      { begin: '(-?)\\b([\\d\']+(\\.[\\d\']*)?|\\.[\\d\']+)(u|U|l|L|ul|UL|f|F|b|B)' },
+      { begin: '(-?)(\\b0[xX][a-fA-F0-9\']+|(\\b[\\d\']+(\\.[\\d\']*)?|\\.[\\d\']+)([eE][-+]?[\\d\']+)?)' }
+    ],
+    relevance: 0
+  };
+
+  var PREPROCESSOR =       {
+    className: 'meta',
+    begin: /#\s*[a-z]+\b/, end: /$/,
+    keywords: {
+      'meta-keyword':
+        'if else elif endif define undef warning error line ' +
+        'pragma _Pragma ifdef ifndef include'
+    },
+    contains: [
+      {
+        begin: /\\\n/, relevance: 0
+      },
+      hljs.inherit(STRINGS, {className: 'meta-string'}),
+      {
+        className: 'meta-string',
+        begin: /<.*?>/, end: /$/,
+        illegal: '\\n',
+      },
+      hljs.C_LINE_COMMENT_MODE,
+      hljs.C_BLOCK_COMMENT_MODE
+    ]
+  };
+
+  var TITLE_MODE = {
+    className: 'title',
+    begin: optional(NAMESPACE_RE) + hljs.IDENT_RE,
+    relevance: 0
+  };
+
+  var FUNCTION_TITLE = optional(NAMESPACE_RE) + hljs.IDENT_RE + '\\s*\\(';
+
+  var CPP_KEYWORDS = {
+    keyword: 'int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof ' +
+      'dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace ' +
+      'unsigned long volatile static protected bool template mutable if public friend ' +
+      'do goto auto void enum else break extern using asm case typeid wchar_t ' +
+      'short reinterpret_cast|10 default double register explicit signed typename try this ' +
+      'switch continue inline delete alignas alignof constexpr consteval constinit decltype ' +
+      'concept co_await co_return co_yield requires ' +
+      'noexcept static_assert thread_local restrict final override ' +
+      'atomic_bool atomic_char atomic_schar ' +
+      'atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong ' +
+      'atomic_ullong new throw return ' +
+      'and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq',
+    built_in: 'std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream ' +
+      'auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set ' +
+      'unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos ' +
+      'asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp ' +
+      'fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper ' +
+      'isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow ' +
+      'printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp ' +
+      'strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan ' +
+      'vfprintf vprintf vsprintf endl initializer_list unique_ptr _Bool complex _Complex imaginary _Imaginary',
+    literal: 'true false nullptr NULL'
+  };
+
+  var EXPRESSION_CONTAINS = [
+    CPP_PRIMITIVE_TYPES,
+    hljs.C_LINE_COMMENT_MODE,
+    hljs.C_BLOCK_COMMENT_MODE,
+    NUMBERS,
+    STRINGS
+  ];
+
+  var EXPRESSION_CONTEXT = {
+    // This mode covers expression context where we can't expect a function
+    // definition and shouldn't highlight anything that looks like one:
+    // `return some()`, `else if()`, `(x*sum(1, 2))`
+    variants: [
+      {begin: /=/, end: /;/},
+      {begin: /\(/, end: /\)/},
+      {beginKeywords: 'new throw return else', end: /;/}
+    ],
+    keywords: CPP_KEYWORDS,
+    contains: EXPRESSION_CONTAINS.concat([
+      {
+        begin: /\(/, end: /\)/,
+        keywords: CPP_KEYWORDS,
+        contains: EXPRESSION_CONTAINS.concat(['self']),
+        relevance: 0
+      }
+    ]),
+    relevance: 0
+  };
+
+  var FUNCTION_DECLARATION = {
+    className: 'function',
+    begin: '(' + FUNCTION_TYPE_RE + '[\\*&\\s]+)+' + FUNCTION_TITLE,
+    returnBegin: true, end: /[{;=]/,
+    excludeEnd: true,
+    keywords: CPP_KEYWORDS,
+    illegal: /[^\w\s\*&:<>]/,
+    contains: [
+
+      { // to prevent it from being confused as the function title
+        begin: DECLTYPE_AUTO_RE,
+        keywords: CPP_KEYWORDS,
+        relevance: 0,
+      },
+      {
+        begin: FUNCTION_TITLE, returnBegin: true,
+        contains: [TITLE_MODE],
+        relevance: 0
+      },
+      {
+        className: 'params',
+        begin: /\(/, end: /\)/,
+        keywords: CPP_KEYWORDS,
+        relevance: 0,
+        contains: [
+          hljs.C_LINE_COMMENT_MODE,
+          hljs.C_BLOCK_COMMENT_MODE,
+          STRINGS,
+          NUMBERS,
+          CPP_PRIMITIVE_TYPES,
+          // Count matching parentheses.
+          {
+            begin: /\(/, end: /\)/,
+            keywords: CPP_KEYWORDS,
+            relevance: 0,
+            contains: [
+              'self',
+              hljs.C_LINE_COMMENT_MODE,
+              hljs.C_BLOCK_COMMENT_MODE,
+              STRINGS,
+              NUMBERS,
+              CPP_PRIMITIVE_TYPES
+            ]
+          }
+        ]
+      },
+      CPP_PRIMITIVE_TYPES,
+      hljs.C_LINE_COMMENT_MODE,
+      hljs.C_BLOCK_COMMENT_MODE,
+      PREPROCESSOR
+    ]
+  };
+
+  return {
+    aliases: ['c', 'cc', 'h', 'c++', 'h++', 'hpp', 'hh', 'hxx', 'cxx'],
+    keywords: CPP_KEYWORDS,
+    // the base c-like language will NEVER be auto-detected, rather the
+    // derivitives: c, c++, arduino turn auto-detect back on for themselves
+    disableAutodetect: true,
+    illegal: '</',
+    contains: [].concat(
+      EXPRESSION_CONTEXT,
+      FUNCTION_DECLARATION,
+      EXPRESSION_CONTAINS,
+      [
+      PREPROCESSOR,
+      { // containers: ie, `vector <int> rooms (9);`
+        begin: '\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<', end: '>',
+        keywords: CPP_KEYWORDS,
+        contains: ['self', CPP_PRIMITIVE_TYPES]
+      },
+      {
+        begin: hljs.IDENT_RE + '::',
+        keywords: CPP_KEYWORDS
+      },
+      {
+        className: 'class',
+        beginKeywords: 'class struct', end: /[{;:]/,
+        contains: [
+          {begin: /</, end: />/, contains: ['self']}, // skip generic stuff
+          hljs.TITLE_MODE
+        ]
+      }
+    ]),
+    exports: {
+      preprocessor: PREPROCESSOR,
+      strings: STRINGS,
+      keywords: CPP_KEYWORDS
+    }
+  };
+}
+
+module.exports = cLike;

+ 23 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/c.js

@@ -0,0 +1,23 @@
+/*
+Language: C
+Category: common, system
+Website: https://en.wikipedia.org/wiki/C_(programming_language)
+Requires: c-like.js
+*/
+
+/** @type LanguageFn */
+function c(hljs) {
+  var lang = hljs.requireLanguage('c-like').rawDefinition();
+  // Until C is actually different than C++ there is no reason to auto-detect C
+  // as it's own language since it would just fail auto-detect testing or
+  // simply match with C++.
+  //
+  // See further comments in c-like.js.
+
+  // lang.disableAutodetect = false;
+  lang.name = 'C';
+  lang.aliases = ['c', 'h'];
+  return lang;
+}
+
+module.exports = c;

+ 90 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/cal.js

@@ -0,0 +1,90 @@
+/*
+Language: C/AL
+Author: Kenneth Fuglsang Christensen <kfuglsang@gmail.com>
+Description: Provides highlighting of Microsoft Dynamics NAV C/AL code files
+Website: https://docs.microsoft.com/en-us/dynamics-nav/programming-in-c-al
+*/
+
+/** @type LanguageFn */
+function cal(hljs) {
+  var KEYWORDS =
+    'div mod in and or not xor asserterror begin case do downto else end exit for if of repeat then to ' +
+    'until while with var';
+  var LITERALS = 'false true';
+  var COMMENT_MODES = [
+    hljs.C_LINE_COMMENT_MODE,
+    hljs.COMMENT(
+      /\{/,
+      /\}/,
+      {
+        relevance: 0
+      }
+    ),
+    hljs.COMMENT(
+      /\(\*/,
+      /\*\)/,
+      {
+        relevance: 10
+      }
+    )
+  ];
+  var STRING = {
+    className: 'string',
+    begin: /'/, end: /'/,
+    contains: [{begin: /''/}]
+  };
+  var CHAR_STRING = {
+    className: 'string', begin: /(#\d+)+/
+  };
+  var DATE = {
+      className: 'number',
+      begin: '\\b\\d+(\\.\\d+)?(DT|D|T)',
+      relevance: 0
+  };
+  var DBL_QUOTED_VARIABLE = {
+      className: 'string', // not a string technically but makes sense to be highlighted in the same style
+      begin: '"',
+      end: '"'
+  };
+
+  var PROCEDURE = {
+    className: 'function',
+    beginKeywords: 'procedure', end: /[:;]/,
+    keywords: 'procedure|10',
+    contains: [
+      hljs.TITLE_MODE,
+      {
+        className: 'params',
+        begin: /\(/, end: /\)/,
+        keywords: KEYWORDS,
+        contains: [STRING, CHAR_STRING]
+      }
+    ].concat(COMMENT_MODES)
+  };
+
+  var OBJECT = {
+    className: 'class',
+    begin: 'OBJECT (Table|Form|Report|Dataport|Codeunit|XMLport|MenuSuite|Page|Query) (\\d+) ([^\\r\\n]+)',
+    returnBegin: true,
+    contains: [
+      hljs.TITLE_MODE,
+        PROCEDURE
+    ]
+  };
+
+  return {
+    name: 'C/AL',
+    case_insensitive: true,
+    keywords: { keyword: KEYWORDS, literal: LITERALS },
+    illegal: /\/\*/,
+    contains: [
+      STRING, CHAR_STRING,
+      DATE, DBL_QUOTED_VARIABLE,
+      hljs.NUMBER_MODE,
+      OBJECT,
+      PROCEDURE
+    ]
+  };
+}
+
+module.exports = cal;

+ 60 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/capnproto.js

@@ -0,0 +1,60 @@
+/*
+Language: Cap’n Proto
+Author: Oleg Efimov <efimovov@gmail.com>
+Description: Cap’n Proto message definition format
+Website: https://capnproto.org/capnp-tool.html
+Category: protocols
+*/
+
+/** @type LanguageFn */
+function capnproto(hljs) {
+  return {
+    name: 'Cap’n Proto',
+    aliases: ['capnp'],
+    keywords: {
+      keyword:
+        'struct enum interface union group import using const annotation extends in of on as with from fixed',
+      built_in:
+        'Void Bool Int8 Int16 Int32 Int64 UInt8 UInt16 UInt32 UInt64 Float32 Float64 ' +
+        'Text Data AnyPointer AnyStruct Capability List',
+      literal:
+        'true false'
+    },
+    contains: [
+      hljs.QUOTE_STRING_MODE,
+      hljs.NUMBER_MODE,
+      hljs.HASH_COMMENT_MODE,
+      {
+        className: 'meta',
+        begin: /@0x[\w\d]{16};/,
+        illegal: /\n/
+      },
+      {
+        className: 'symbol',
+        begin: /@\d+\b/
+      },
+      {
+        className: 'class',
+        beginKeywords: 'struct enum', end: /\{/,
+        illegal: /\n/,
+        contains: [
+          hljs.inherit(hljs.TITLE_MODE, {
+            starts: {endsWithParent: true, excludeEnd: true} // hack: eating everything after the first title
+          })
+        ]
+      },
+      {
+        className: 'class',
+        beginKeywords: 'interface', end: /\{/,
+        illegal: /\n/,
+        contains: [
+          hljs.inherit(hljs.TITLE_MODE, {
+            starts: {endsWithParent: true, excludeEnd: true} // hack: eating everything after the first title
+          })
+        ]
+      }
+    ]
+  };
+}
+
+module.exports = capnproto;

+ 76 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/ceylon.js

@@ -0,0 +1,76 @@
+/*
+Language: Ceylon
+Author: Lucas Werkmeister <mail@lucaswerkmeister.de>
+Website: https://ceylon-lang.org
+*/
+
+/** @type LanguageFn */
+function ceylon(hljs) {
+  // 2.3. Identifiers and keywords
+  var KEYWORDS =
+    'assembly module package import alias class interface object given value ' +
+    'assign void function new of extends satisfies abstracts in out return ' +
+    'break continue throw assert dynamic if else switch case for while try ' +
+    'catch finally then let this outer super is exists nonempty';
+  // 7.4.1 Declaration Modifiers
+  var DECLARATION_MODIFIERS =
+    'shared abstract formal default actual variable late native deprecated ' +
+    'final sealed annotation suppressWarnings small';
+  // 7.4.2 Documentation
+  var DOCUMENTATION =
+    'doc by license see throws tagged';
+  var SUBST = {
+    className: 'subst', excludeBegin: true, excludeEnd: true,
+    begin: /``/, end: /``/,
+    keywords: KEYWORDS,
+    relevance: 10
+  };
+  var EXPRESSIONS = [
+    {
+      // verbatim string
+      className: 'string',
+      begin: '"""',
+      end: '"""',
+      relevance: 10
+    },
+    {
+      // string literal or template
+      className: 'string',
+      begin: '"', end: '"',
+      contains: [SUBST]
+    },
+    {
+      // character literal
+      className: 'string',
+      begin: "'",
+      end: "'"
+    },
+    {
+      // numeric literal
+      className: 'number',
+      begin: '#[0-9a-fA-F_]+|\\$[01_]+|[0-9_]+(?:\\.[0-9_](?:[eE][+-]?\\d+)?)?[kMGTPmunpf]?',
+      relevance: 0
+    }
+  ];
+  SUBST.contains = EXPRESSIONS;
+
+  return {
+    name: 'Ceylon',
+    keywords: {
+      keyword: KEYWORDS + ' ' + DECLARATION_MODIFIERS,
+      meta: DOCUMENTATION
+    },
+    illegal: '\\$[^01]|#[^0-9a-fA-F]',
+    contains: [
+      hljs.C_LINE_COMMENT_MODE,
+      hljs.COMMENT('/\\*', '\\*/', {contains: ['self']}),
+      {
+        // compiler annotation
+        className: 'meta',
+        begin: '@[a-z]\\w*(?:\\:\"[^\"]*\")?'
+      }
+    ].concat(EXPRESSIONS)
+  };
+}
+
+module.exports = ceylon;

+ 37 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/clean.js

@@ -0,0 +1,37 @@
+/*
+Language: Clean
+Author: Camil Staps <info@camilstaps.nl>
+Category: functional
+Website: http://clean.cs.ru.nl
+*/
+
+/** @type LanguageFn */
+function clean(hljs) {
+  return {
+    name: 'Clean',
+    aliases: ['clean','icl','dcl'],
+    keywords: {
+      keyword:
+        'if let in with where case of class instance otherwise ' +
+        'implementation definition system module from import qualified as ' +
+        'special code inline foreign export ccall stdcall generic derive ' +
+        'infix infixl infixr',
+      built_in:
+        'Int Real Char Bool',
+      literal:
+        'True False'
+    },
+    contains: [
+
+      hljs.C_LINE_COMMENT_MODE,
+      hljs.C_BLOCK_COMMENT_MODE,
+      hljs.APOS_STRING_MODE,
+      hljs.QUOTE_STRING_MODE,
+      hljs.C_NUMBER_MODE,
+
+      {begin: '->|<-[|:]?|#!?|>>=|\\{\\||\\|\\}|:==|=:|<>'} // relevance booster
+    ]
+  };
+}
+
+module.exports = clean;

+ 27 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/clojure-repl.js

@@ -0,0 +1,27 @@
+/*
+Language: Clojure REPL
+Description: Clojure REPL sessions
+Author: Ivan Sagalaev <maniac@softwaremaniacs.org>
+Requires: clojure.js
+Website: https://clojure.org
+Category: lisp
+*/
+
+/** @type LanguageFn */
+function clojureRepl(hljs) {
+  return {
+    name: 'Clojure REPL',
+    contains: [
+      {
+        className: 'meta',
+        begin: /^([\w.-]+|\s*#_)?=>/,
+        starts: {
+          end: /$/,
+          subLanguage: 'clojure'
+        }
+      }
+    ]
+  }
+}
+
+module.exports = clojureRepl;

+ 125 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/clojure.js

@@ -0,0 +1,125 @@
+/*
+Language: Clojure
+Description: Clojure syntax (based on lisp.js)
+Author: mfornos
+Website: https://clojure.org
+Category: lisp
+*/
+
+/** @type LanguageFn */
+function clojure(hljs) {
+  var SYMBOLSTART = 'a-zA-Z_\\-!.?+*=<>&#\'';
+  var SYMBOL_RE = '[' + SYMBOLSTART + '][' + SYMBOLSTART + '0-9/;:]*';
+  var globals = 'def defonce defprotocol defstruct defmulti defmethod defn- defn defmacro deftype defrecord';
+  var keywords = {
+    $pattern: SYMBOL_RE,
+    'builtin-name':
+      // Clojure keywords
+      globals + ' ' +
+      'cond apply if-not if-let if not not= = < > <= >= == + / * - rem ' +
+      'quot neg? pos? delay? symbol? keyword? true? false? integer? empty? coll? list? ' +
+      'set? ifn? fn? associative? sequential? sorted? counted? reversible? number? decimal? ' +
+      'class? distinct? isa? float? rational? reduced? ratio? odd? even? char? seq? vector? ' +
+      'string? map? nil? contains? zero? instance? not-every? not-any? libspec? -> ->> .. . ' +
+      'inc compare do dotimes mapcat take remove take-while drop letfn drop-last take-last ' +
+      'drop-while while intern condp case reduced cycle split-at split-with repeat replicate ' +
+      'iterate range merge zipmap declare line-seq sort comparator sort-by dorun doall nthnext ' +
+      'nthrest partition eval doseq await await-for let agent atom send send-off release-pending-sends ' +
+      'add-watch mapv filterv remove-watch agent-error restart-agent set-error-handler error-handler ' +
+      'set-error-mode! error-mode shutdown-agents quote var fn loop recur throw try monitor-enter ' +
+      'monitor-exit macroexpand macroexpand-1 for dosync and or ' +
+      'when when-not when-let comp juxt partial sequence memoize constantly complement identity assert ' +
+      'peek pop doto proxy first rest cons cast coll last butlast ' +
+      'sigs reify second ffirst fnext nfirst nnext meta with-meta ns in-ns create-ns import ' +
+      'refer keys select-keys vals key val rseq name namespace promise into transient persistent! conj! ' +
+      'assoc! dissoc! pop! disj! use class type num float double short byte boolean bigint biginteger ' +
+      'bigdec print-method print-dup throw-if printf format load compile get-in update-in pr pr-on newline ' +
+      'flush read slurp read-line subvec with-open memfn time re-find re-groups rand-int rand mod locking ' +
+      'assert-valid-fdecl alias resolve ref deref refset swap! reset! set-validator! compare-and-set! alter-meta! ' +
+      'reset-meta! commute get-validator alter ref-set ref-history-count ref-min-history ref-max-history ensure sync io! ' +
+      'new next conj set! to-array future future-call into-array aset gen-class reduce map filter find empty ' +
+      'hash-map hash-set sorted-map sorted-map-by sorted-set sorted-set-by vec vector seq flatten reverse assoc dissoc list ' +
+      'disj get union difference intersection extend extend-type extend-protocol int nth delay count concat chunk chunk-buffer ' +
+      'chunk-append chunk-first chunk-rest max min dec unchecked-inc-int unchecked-inc unchecked-dec-inc unchecked-dec unchecked-negate ' +
+      'unchecked-add-int unchecked-add unchecked-subtract-int unchecked-subtract chunk-next chunk-cons chunked-seq? prn vary-meta ' +
+      'lazy-seq spread list* str find-keyword keyword symbol gensym force rationalize'
+  };
+
+  var SIMPLE_NUMBER_RE = '[-+]?\\d+(\\.\\d+)?';
+
+  var SYMBOL = {
+    begin: SYMBOL_RE,
+    relevance: 0
+  };
+  var NUMBER = {
+    className: 'number', begin: SIMPLE_NUMBER_RE,
+    relevance: 0
+  };
+  var STRING = hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null});
+  var COMMENT = hljs.COMMENT(
+    ';',
+    '$',
+    {
+      relevance: 0
+    }
+  );
+  var LITERAL = {
+    className: 'literal',
+    begin: /\b(true|false|nil)\b/
+  };
+  var COLLECTION = {
+    begin: '[\\[\\{]', end: '[\\]\\}]'
+  };
+  var HINT = {
+    className: 'comment',
+    begin: '\\^' + SYMBOL_RE
+  };
+  var HINT_COL = hljs.COMMENT('\\^\\{', '\\}');
+  var KEY = {
+    className: 'symbol',
+    begin: '[:]{1,2}' + SYMBOL_RE
+  };
+  var LIST = {
+    begin: '\\(', end: '\\)'
+  };
+  var BODY = {
+    endsWithParent: true,
+    relevance: 0
+  };
+  var NAME = {
+    keywords: keywords,
+    className: 'name', begin: SYMBOL_RE,
+    starts: BODY
+  };
+  var DEFAULT_CONTAINS = [LIST, STRING, HINT, HINT_COL, COMMENT, KEY, COLLECTION, NUMBER, LITERAL, SYMBOL];
+
+  var GLOBAL = {
+    beginKeywords: globals,
+    lexemes: SYMBOL_RE,
+    end: '(\\[|\\#|\\d|"|:|\\{|\\)|\\(|$)',
+    contains: [
+      {
+        className: 'title',
+        begin: SYMBOL_RE,
+        relevance: 0,
+        excludeEnd: true,
+        // we can only have a single title
+        endsParent: true
+      },
+    ].concat(DEFAULT_CONTAINS)
+  };
+
+  LIST.contains = [hljs.COMMENT('comment', ''), GLOBAL, NAME, BODY];
+  BODY.contains = DEFAULT_CONTAINS;
+  COLLECTION.contains = DEFAULT_CONTAINS;
+  HINT_COL.contains = [COLLECTION];
+
+  return {
+    name: 'Clojure',
+    aliases: ['clj'],
+    illegal: /\S/,
+    contains: [LIST, STRING, HINT, HINT_COL, COMMENT, KEY, COLLECTION, NUMBER, LITERAL]
+  };
+}
+
+module.exports = clojure;

+ 63 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/cmake.js

@@ -0,0 +1,63 @@
+/*
+Language: CMake
+Description: CMake is an open-source cross-platform system for build automation.
+Author: Igor Kalnitsky <igor@kalnitsky.org>
+Website: https://cmake.org
+*/
+
+/** @type LanguageFn */
+function cmake(hljs) {
+  return {
+    name: 'CMake',
+    aliases: ['cmake.in'],
+    case_insensitive: true,
+    keywords: {
+      keyword:
+        // scripting commands
+        'break cmake_host_system_information cmake_minimum_required cmake_parse_arguments ' +
+        'cmake_policy configure_file continue elseif else endforeach endfunction endif endmacro ' +
+        'endwhile execute_process file find_file find_library find_package find_path ' +
+        'find_program foreach function get_cmake_property get_directory_property ' +
+        'get_filename_component get_property if include include_guard list macro ' +
+        'mark_as_advanced math message option return separate_arguments ' +
+        'set_directory_properties set_property set site_name string unset variable_watch while ' +
+        // project commands
+        'add_compile_definitions add_compile_options add_custom_command add_custom_target ' +
+        'add_definitions add_dependencies add_executable add_library add_link_options ' +
+        'add_subdirectory add_test aux_source_directory build_command create_test_sourcelist ' +
+        'define_property enable_language enable_testing export fltk_wrap_ui ' +
+        'get_source_file_property get_target_property get_test_property include_directories ' +
+        'include_external_msproject include_regular_expression install link_directories ' +
+        'link_libraries load_cache project qt_wrap_cpp qt_wrap_ui remove_definitions ' +
+        'set_source_files_properties set_target_properties set_tests_properties source_group ' +
+        'target_compile_definitions target_compile_features target_compile_options ' +
+        'target_include_directories target_link_directories target_link_libraries ' +
+        'target_link_options target_sources try_compile try_run ' +
+        // CTest commands
+        'ctest_build ctest_configure ctest_coverage ctest_empty_binary_directory ctest_memcheck ' +
+        'ctest_read_custom_files ctest_run_script ctest_sleep ctest_start ctest_submit ' +
+        'ctest_test ctest_update ctest_upload ' +
+        // deprecated commands
+        'build_name exec_program export_library_dependencies install_files install_programs ' +
+        'install_targets load_command make_directory output_required_files remove ' +
+        'subdir_depends subdirs use_mangled_mesa utility_source variable_requires write_file ' +
+        'qt5_use_modules qt5_use_package qt5_wrap_cpp ' +
+        // core keywords
+        'on off true false and or not command policy target test exists is_newer_than ' +
+        'is_directory is_symlink is_absolute matches less greater equal less_equal ' +
+        'greater_equal strless strgreater strequal strless_equal strgreater_equal version_less ' +
+        'version_greater version_equal version_less_equal version_greater_equal in_list defined'
+    },
+    contains: [
+      {
+        className: 'variable',
+        begin: '\\${', end: '}'
+      },
+      hljs.HASH_COMMENT_MODE,
+      hljs.QUOTE_STRING_MODE,
+      hljs.NUMBER_MODE
+    ]
+  };
+}
+
+module.exports = cmake;

+ 317 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/coffeescript.js

@@ -0,0 +1,317 @@
+const KEYWORDS = [
+  "as", // for exports
+  "in",
+  "of",
+  "if",
+  "for",
+  "while",
+  "finally",
+  "var",
+  "new",
+  "function",
+  "do",
+  "return",
+  "void",
+  "else",
+  "break",
+  "catch",
+  "instanceof",
+  "with",
+  "throw",
+  "case",
+  "default",
+  "try",
+  "switch",
+  "continue",
+  "typeof",
+  "delete",
+  "let",
+  "yield",
+  "const",
+  "class",
+  // JS handles these with a special rule
+  // "get",
+  // "set",
+  "debugger",
+  "async",
+  "await",
+  "static",
+  "import",
+  "from",
+  "export",
+  "extends"
+];
+const LITERALS = [
+  "true",
+  "false",
+  "null",
+  "undefined",
+  "NaN",
+  "Infinity"
+];
+
+const TYPES = [
+  "Intl",
+  "DataView",
+  "Number",
+  "Math",
+  "Date",
+  "String",
+  "RegExp",
+  "Object",
+  "Function",
+  "Boolean",
+  "Error",
+  "Symbol",
+  "Set",
+  "Map",
+  "WeakSet",
+  "WeakMap",
+  "Proxy",
+  "Reflect",
+  "JSON",
+  "Promise",
+  "Float64Array",
+  "Int16Array",
+  "Int32Array",
+  "Int8Array",
+  "Uint16Array",
+  "Uint32Array",
+  "Float32Array",
+  "Array",
+  "Uint8Array",
+  "Uint8ClampedArray",
+  "ArrayBuffer"
+];
+
+const ERROR_TYPES = [
+  "EvalError",
+  "InternalError",
+  "RangeError",
+  "ReferenceError",
+  "SyntaxError",
+  "TypeError",
+  "URIError"
+];
+
+const BUILT_IN_GLOBALS = [
+  "setInterval",
+  "setTimeout",
+  "clearInterval",
+  "clearTimeout",
+
+  "require",
+  "exports",
+
+  "eval",
+  "isFinite",
+  "isNaN",
+  "parseFloat",
+  "parseInt",
+  "decodeURI",
+  "decodeURIComponent",
+  "encodeURI",
+  "encodeURIComponent",
+  "escape",
+  "unescape"
+];
+
+const BUILT_IN_VARIABLES = [
+  "arguments",
+  "this",
+  "super",
+  "console",
+  "window",
+  "document",
+  "localStorage",
+  "module",
+  "global" // Node.js
+];
+
+const BUILT_INS = [].concat(
+  BUILT_IN_GLOBALS,
+  BUILT_IN_VARIABLES,
+  TYPES,
+  ERROR_TYPES
+);
+
+/*
+Language: CoffeeScript
+Author: Dmytrii Nagirniak <dnagir@gmail.com>
+Contributors: Oleg Efimov <efimovov@gmail.com>, Cédric Néhémie <cedric.nehemie@gmail.com>
+Description: CoffeeScript is a programming language that transcompiles to JavaScript. For info about language see http://coffeescript.org/
+Category: common, scripting
+Website: https://coffeescript.org
+*/
+
+/** @type LanguageFn */
+function coffeescript(hljs) {
+  var COFFEE_BUILT_INS = [
+    'npm',
+    'print'
+  ];
+  var COFFEE_LITERALS = [
+    'yes',
+    'no',
+    'on',
+    'off'
+  ];
+  var COFFEE_KEYWORDS = [
+    'then',
+    'unless',
+    'until',
+    'loop',
+    'by',
+    'when',
+    'and',
+    'or',
+    'is',
+    'isnt',
+    'not'
+  ];
+  var NOT_VALID_KEYWORDS = [
+    "var",
+    "const",
+    "let",
+    "function",
+    "static"
+  ];
+  var excluding = (list) =>
+    (kw) => !list.includes(kw);
+  var KEYWORDS$1 = {
+    keyword: KEYWORDS.concat(COFFEE_KEYWORDS).filter(excluding(NOT_VALID_KEYWORDS)).join(" "),
+    literal: LITERALS.concat(COFFEE_LITERALS).join(" "),
+    built_in: BUILT_INS.concat(COFFEE_BUILT_INS).join(" ")
+  };
+  var JS_IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*';
+  var SUBST = {
+    className: 'subst',
+    begin: /#\{/, end: /}/,
+    keywords: KEYWORDS$1
+  };
+  var EXPRESSIONS = [
+    hljs.BINARY_NUMBER_MODE,
+    hljs.inherit(hljs.C_NUMBER_MODE, {starts: {end: '(\\s*/)?', relevance: 0}}), // a number tries to eat the following slash to prevent treating it as a regexp
+    {
+      className: 'string',
+      variants: [
+        {
+          begin: /'''/, end: /'''/,
+          contains: [hljs.BACKSLASH_ESCAPE]
+        },
+        {
+          begin: /'/, end: /'/,
+          contains: [hljs.BACKSLASH_ESCAPE]
+        },
+        {
+          begin: /"""/, end: /"""/,
+          contains: [hljs.BACKSLASH_ESCAPE, SUBST]
+        },
+        {
+          begin: /"/, end: /"/,
+          contains: [hljs.BACKSLASH_ESCAPE, SUBST]
+        }
+      ]
+    },
+    {
+      className: 'regexp',
+      variants: [
+        {
+          begin: '///', end: '///',
+          contains: [SUBST, hljs.HASH_COMMENT_MODE]
+        },
+        {
+          begin: '//[gim]{0,3}(?=\\W)',
+          relevance: 0
+        },
+        {
+          // regex can't start with space to parse x / 2 / 3 as two divisions
+          // regex can't start with *, and it supports an "illegal" in the main mode
+          begin: /\/(?![ *]).*?(?![\\]).\/[gim]{0,3}(?=\W)/
+        }
+      ]
+    },
+    {
+      begin: '@' + JS_IDENT_RE // relevance booster
+    },
+    {
+      subLanguage: 'javascript',
+      excludeBegin: true, excludeEnd: true,
+      variants: [
+        {
+          begin: '```', end: '```',
+        },
+        {
+          begin: '`', end: '`',
+        }
+      ]
+    }
+  ];
+  SUBST.contains = EXPRESSIONS;
+
+  var TITLE = hljs.inherit(hljs.TITLE_MODE, {begin: JS_IDENT_RE});
+  var PARAMS_RE = '(\\(.*\\))?\\s*\\B[-=]>';
+  var PARAMS = {
+    className: 'params',
+    begin: '\\([^\\(]', returnBegin: true,
+    /* We need another contained nameless mode to not have every nested
+    pair of parens to be called "params" */
+    contains: [{
+      begin: /\(/, end: /\)/,
+      keywords: KEYWORDS$1,
+      contains: ['self'].concat(EXPRESSIONS)
+    }]
+  };
+
+  return {
+    name: 'CoffeeScript',
+    aliases: ['coffee', 'cson', 'iced'],
+    keywords: KEYWORDS$1,
+    illegal: /\/\*/,
+    contains: EXPRESSIONS.concat([
+      hljs.COMMENT('###', '###'),
+      hljs.HASH_COMMENT_MODE,
+      {
+        className: 'function',
+        begin: '^\\s*' + JS_IDENT_RE + '\\s*=\\s*' + PARAMS_RE, end: '[-=]>',
+        returnBegin: true,
+        contains: [TITLE, PARAMS]
+      },
+      {
+        // anonymous function start
+        begin: /[:\(,=]\s*/,
+        relevance: 0,
+        contains: [
+          {
+            className: 'function',
+            begin: PARAMS_RE, end: '[-=]>',
+            returnBegin: true,
+            contains: [PARAMS]
+          }
+        ]
+      },
+      {
+        className: 'class',
+        beginKeywords: 'class',
+        end: '$',
+        illegal: /[:="\[\]]/,
+        contains: [
+          {
+            beginKeywords: 'extends',
+            endsWithParent: true,
+            illegal: /[:="\[\]]/,
+            contains: [TITLE]
+          },
+          TITLE
+        ]
+      },
+      {
+        begin: JS_IDENT_RE + ':', end: ':',
+        returnBegin: true, returnEnd: true,
+        relevance: 0
+      }
+    ])
+  };
+}
+
+module.exports = coffeescript;

+ 77 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/coq.js

@@ -0,0 +1,77 @@
+/*
+Language: Coq
+Author: Stephan Boyer <stephan@stephanboyer.com>
+Category: functional
+Website: https://coq.inria.fr
+*/
+
+/** @type LanguageFn */
+function coq(hljs) {
+  return {
+    name: 'Coq',
+    keywords: {
+      keyword:
+        '_|0 as at cofix else end exists exists2 fix for forall fun if IF in let ' +
+        'match mod Prop return Set then Type using where with ' +
+        'Abort About Add Admit Admitted All Arguments Assumptions Axiom Back BackTo ' +
+        'Backtrack Bind Blacklist Canonical Cd Check Class Classes Close Coercion ' +
+        'Coercions CoFixpoint CoInductive Collection Combined Compute Conjecture ' +
+        'Conjectures Constant constr Constraint Constructors Context Corollary ' +
+        'CreateHintDb Cut Declare Defined Definition Delimit Dependencies Dependent ' +
+        'Derive Drop eauto End Equality Eval Example Existential Existentials ' +
+        'Existing Export exporting Extern Extract Extraction Fact Field Fields File ' +
+        'Fixpoint Focus for From Function Functional Generalizable Global Goal Grab ' +
+        'Grammar Graph Guarded Heap Hint HintDb Hints Hypotheses Hypothesis ident ' +
+        'Identity If Immediate Implicit Import Include Inductive Infix Info Initial ' +
+        'Inline Inspect Instance Instances Intro Intros Inversion Inversion_clear ' +
+        'Language Left Lemma Let Libraries Library Load LoadPath Local Locate Ltac ML ' +
+        'Mode Module Modules Monomorphic Morphism Next NoInline Notation Obligation ' +
+        'Obligations Opaque Open Optimize Options Parameter Parameters Parametric ' +
+        'Path Paths pattern Polymorphic Preterm Print Printing Program Projections ' +
+        'Proof Proposition Pwd Qed Quit Rec Record Recursive Redirect Relation Remark ' +
+        'Remove Require Reserved Reset Resolve Restart Rewrite Right Ring Rings Save ' +
+        'Scheme Scope Scopes Script Search SearchAbout SearchHead SearchPattern ' +
+        'SearchRewrite Section Separate Set Setoid Show Solve Sorted Step Strategies ' +
+        'Strategy Structure SubClass Table Tables Tactic Term Test Theorem Time ' +
+        'Timeout Transparent Type Typeclasses Types Undelimit Undo Unfocus Unfocused ' +
+        'Unfold Universe Universes Unset Unshelve using Variable Variables Variant ' +
+        'Verbose Visibility where with',
+      built_in:
+        'abstract absurd admit after apply as assert assumption at auto autorewrite ' +
+        'autounfold before bottom btauto by case case_eq cbn cbv change ' +
+        'classical_left classical_right clear clearbody cofix compare compute ' +
+        'congruence constr_eq constructor contradict contradiction cut cutrewrite ' +
+        'cycle decide decompose dependent destruct destruction dintuition ' +
+        'discriminate discrR do double dtauto eapply eassumption eauto ecase ' +
+        'econstructor edestruct ediscriminate eelim eexact eexists einduction ' +
+        'einjection eleft elim elimtype enough equality erewrite eright ' +
+        'esimplify_eq esplit evar exact exactly_once exfalso exists f_equal fail ' +
+        'field field_simplify field_simplify_eq first firstorder fix fold fourier ' +
+        'functional generalize generalizing gfail give_up has_evar hnf idtac in ' +
+        'induction injection instantiate intro intro_pattern intros intuition ' +
+        'inversion inversion_clear is_evar is_var lapply lazy left lia lra move ' +
+        'native_compute nia nsatz omega once pattern pose progress proof psatz quote ' +
+        'record red refine reflexivity remember rename repeat replace revert ' +
+        'revgoals rewrite rewrite_strat right ring ring_simplify rtauto set ' +
+        'setoid_reflexivity setoid_replace setoid_rewrite setoid_symmetry ' +
+        'setoid_transitivity shelve shelve_unifiable simpl simple simplify_eq solve ' +
+        'specialize split split_Rabs split_Rmult stepl stepr subst sum swap ' +
+        'symmetry tactic tauto time timeout top transitivity trivial try tryif ' +
+        'unfold unify until using vm_compute with'
+    },
+    contains: [
+      hljs.QUOTE_STRING_MODE,
+      hljs.COMMENT('\\(\\*', '\\*\\)'),
+      hljs.C_NUMBER_MODE,
+      {
+        className: 'type',
+        excludeBegin: true,
+        begin: '\\|\\s*',
+        end: '\\w+'
+      },
+      {begin: /[-=]>/} // relevance booster
+    ]
+  };
+}
+
+module.exports = coq;

+ 134 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/cos.js

@@ -0,0 +1,134 @@
+/*
+Language: Caché Object Script
+Author: Nikita Savchenko <zitros.lab@gmail.com>
+Category: enterprise, scripting
+Website: https://cedocs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls
+*/
+
+/** @type LanguageFn */
+function cos (hljs) {
+
+  var STRINGS = {
+    className: 'string',
+    variants: [
+      {
+        begin: '"',
+        end: '"',
+        contains: [{ // escaped
+          begin: "\"\"",
+          relevance: 0
+        }]
+      }
+    ]
+  };
+
+  var NUMBERS = {
+    className: "number",
+    begin: "\\b(\\d+(\\.\\d*)?|\\.\\d+)",
+    relevance: 0
+  };
+
+  var COS_KEYWORDS =
+    'property parameter class classmethod clientmethod extends as break ' +
+    'catch close continue do d|0 else elseif for goto halt hang h|0 if job ' +
+    'j|0 kill k|0 lock l|0 merge new open quit q|0 read r|0 return set s|0 ' +
+    'tcommit throw trollback try tstart use view while write w|0 xecute x|0 ' +
+    'zkill znspace zn ztrap zwrite zw zzdump zzwrite print zbreak zinsert ' +
+    'zload zprint zremove zsave zzprint mv mvcall mvcrt mvdim mvprint zquit ' +
+    'zsync ascii';
+
+    // registered function - no need in them due to all functions are highlighted,
+    // but I'll just leave this here.
+
+    //"$bit", "$bitcount",
+    //"$bitfind", "$bitlogic", "$case", "$char", "$classmethod", "$classname",
+    //"$compile", "$data", "$decimal", "$double", "$extract", "$factor",
+    //"$find", "$fnumber", "$get", "$increment", "$inumber", "$isobject",
+    //"$isvaliddouble", "$isvalidnum", "$justify", "$length", "$list",
+    //"$listbuild", "$listdata", "$listfind", "$listfromstring", "$listget",
+    //"$listlength", "$listnext", "$listsame", "$listtostring", "$listvalid",
+    //"$locate", "$match", "$method", "$name", "$nconvert", "$next",
+    //"$normalize", "$now", "$number", "$order", "$parameter", "$piece",
+    //"$prefetchoff", "$prefetchon", "$property", "$qlength", "$qsubscript",
+    //"$query", "$random", "$replace", "$reverse", "$sconvert", "$select",
+    //"$sortbegin", "$sortend", "$stack", "$text", "$translate", "$view",
+    //"$wascii", "$wchar", "$wextract", "$wfind", "$wiswide", "$wlength",
+    //"$wreverse", "$xecute", "$zabs", "$zarccos", "$zarcsin", "$zarctan",
+    //"$zcos", "$zcot", "$zcsc", "$zdate", "$zdateh", "$zdatetime",
+    //"$zdatetimeh", "$zexp", "$zhex", "$zln", "$zlog", "$zpower", "$zsec",
+    //"$zsin", "$zsqr", "$ztan", "$ztime", "$ztimeh", "$zboolean",
+    //"$zconvert", "$zcrc", "$zcyc", "$zdascii", "$zdchar", "$zf",
+    //"$ziswide", "$zlascii", "$zlchar", "$zname", "$zposition", "$zqascii",
+    //"$zqchar", "$zsearch", "$zseek", "$zstrip", "$zwascii", "$zwchar",
+    //"$zwidth", "$zwpack", "$zwbpack", "$zwunpack", "$zwbunpack", "$zzenkaku",
+    //"$change", "$mv", "$mvat", "$mvfmt", "$mvfmts", "$mviconv",
+    //"$mviconvs", "$mvinmat", "$mvlover", "$mvoconv", "$mvoconvs", "$mvraise",
+    //"$mvtrans", "$mvv", "$mvname", "$zbitand", "$zbitcount", "$zbitfind",
+    //"$zbitget", "$zbitlen", "$zbitnot", "$zbitor", "$zbitset", "$zbitstr",
+    //"$zbitxor", "$zincrement", "$znext", "$zorder", "$zprevious", "$zsort",
+    //"device", "$ecode", "$estack", "$etrap", "$halt", "$horolog",
+    //"$io", "$job", "$key", "$namespace", "$principal", "$quit", "$roles",
+    //"$storage", "$system", "$test", "$this", "$tlevel", "$username",
+    //"$x", "$y", "$za", "$zb", "$zchild", "$zeof", "$zeos", "$zerror",
+    //"$zhorolog", "$zio", "$zjob", "$zmode", "$znspace", "$zparent", "$zpi",
+    //"$zpos", "$zreference", "$zstorage", "$ztimestamp", "$ztimezone",
+    //"$ztrap", "$zversion"
+
+  return {
+    name: 'Caché Object Script',
+    case_insensitive: true,
+    aliases: ["cos", "cls"],
+    keywords: COS_KEYWORDS,
+    contains: [
+      NUMBERS,
+      STRINGS,
+      hljs.C_LINE_COMMENT_MODE,
+      hljs.C_BLOCK_COMMENT_MODE,
+      {
+        className: "comment",
+        begin: /;/, end: "$",
+        relevance: 0
+      },
+      { // Functions and user-defined functions: write $ztime(60*60*3), $$myFunc(10), $$^Val(1)
+        className: "built_in",
+        begin: /(?:\$\$?|\.\.)\^?[a-zA-Z]+/
+      },
+      { // Macro command: quit $$$OK
+        className: "built_in",
+        begin: /\$\$\$[a-zA-Z]+/
+      },
+      { // Special (global) variables: write %request.Content; Built-in classes: %Library.Integer
+        className: "built_in",
+        begin: /%[a-z]+(?:\.[a-z]+)*/
+      },
+      { // Global variable: set ^globalName = 12 write ^globalName
+        className: "symbol",
+        begin: /\^%?[a-zA-Z][\w]*/
+      },
+      { // Some control constructions: do ##class(Package.ClassName).Method(), ##super()
+        className: "keyword",
+        begin: /##class|##super|#define|#dim/
+      },
+
+      // sub-languages: are not fully supported by hljs by 11/15/2015
+      // left for the future implementation.
+      {
+        begin: /&sql\(/,    end: /\)/,
+        excludeBegin: true, excludeEnd: true,
+        subLanguage: "sql"
+      },
+      {
+        begin: /&(js|jscript|javascript)</, end: />/,
+        excludeBegin: true, excludeEnd: true,
+        subLanguage: "javascript"
+      },
+      {
+        // this brakes first and last tag, but this is the only way to embed a valid html
+        begin: /&html<\s*</, end: />\s*>/,
+        subLanguage: "xml"
+      }
+    ]
+  };
+}
+
+module.exports = cos;

+ 18 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/cpp.js

@@ -0,0 +1,18 @@
+/*
+Language: C++
+Category: common, system
+Website: https://isocpp.org
+Requires: c-like.js
+*/
+
+/** @type LanguageFn */
+function cpp(hljs) {
+  var lang = hljs.requireLanguage('c-like').rawDefinition();
+  // return auto-detection back on
+  lang.disableAutodetect = false;
+  lang.name = 'C++';
+  lang.aliases = ['cc', 'c++', 'h++', 'hpp', 'hh', 'hxx', 'cxx'];
+  return lang;
+}
+
+module.exports = cpp;

+ 105 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/crmsh.js

@@ -0,0 +1,105 @@
+/*
+Language: crmsh
+Author: Kristoffer Gronlund <kgronlund@suse.com>
+Website: http://crmsh.github.io
+Description: Syntax Highlighting for the crmsh DSL
+Category: config
+*/
+
+/** @type LanguageFn */
+function crmsh(hljs) {
+  var RESOURCES = 'primitive rsc_template';
+
+  var COMMANDS = 'group clone ms master location colocation order fencing_topology ' +
+      'rsc_ticket acl_target acl_group user role ' +
+      'tag xml';
+
+  var PROPERTY_SETS = 'property rsc_defaults op_defaults';
+
+  var KEYWORDS = 'params meta operations op rule attributes utilization';
+
+  var OPERATORS = 'read write deny defined not_defined in_range date spec in ' +
+      'ref reference attribute type xpath version and or lt gt tag ' +
+      'lte gte eq ne \\';
+
+  var TYPES = 'number string';
+
+  var LITERALS = 'Master Started Slave Stopped start promote demote stop monitor true false';
+
+  return {
+    name: 'crmsh',
+    aliases: ['crm', 'pcmk'],
+    case_insensitive: true,
+    keywords: {
+      keyword: KEYWORDS + ' ' + OPERATORS + ' ' + TYPES,
+      literal: LITERALS
+    },
+    contains: [
+      hljs.HASH_COMMENT_MODE,
+      {
+        beginKeywords: 'node',
+        starts: {
+          end: '\\s*([\\w_-]+:)?',
+          starts: {
+            className: 'title',
+            end: '\\s*[\\$\\w_][\\w_-]*'
+          }
+        }
+      },
+      {
+        beginKeywords: RESOURCES,
+        starts: {
+          className: 'title',
+          end: '\\s*[\\$\\w_][\\w_-]*',
+          starts: {
+            end: '\\s*@?[\\w_][\\w_\\.:-]*'
+          }
+        }
+      },
+      {
+        begin: '\\b(' + COMMANDS.split(' ').join('|') + ')\\s+',
+        keywords: COMMANDS,
+        starts: {
+          className: 'title',
+          end: '[\\$\\w_][\\w_-]*'
+        }
+      },
+      {
+        beginKeywords: PROPERTY_SETS,
+        starts: {
+          className: 'title',
+          end: '\\s*([\\w_-]+:)?'
+        }
+      },
+      hljs.QUOTE_STRING_MODE,
+      {
+        className: 'meta',
+        begin: '(ocf|systemd|service|lsb):[\\w_:-]+',
+        relevance: 0
+      },
+      {
+        className: 'number',
+        begin: '\\b\\d+(\\.\\d+)?(ms|s|h|m)?',
+        relevance: 0
+      },
+      {
+        className: 'literal',
+        begin: '[-]?(infinity|inf)',
+        relevance: 0
+      },
+      {
+        className: 'attr',
+        begin: /([A-Za-z\$_\#][\w_-]+)=/,
+        relevance: 0
+      },
+      {
+        className: 'tag',
+        begin: '</?',
+        end: '/?>',
+        relevance: 0
+      }
+    ]
+  };
+}
+
+module.exports = crmsh;

+ 197 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/crystal.js

@@ -0,0 +1,197 @@
+/*
+Language: Crystal
+Author: TSUYUSATO Kitsune <make.just.on@gmail.com>
+Website: https://crystal-lang.org
+*/
+
+/** @type LanguageFn */
+function crystal(hljs) {
+  var INT_SUFFIX = '(_*[ui](8|16|32|64|128))?';
+  var FLOAT_SUFFIX = '(_*f(32|64))?';
+  var CRYSTAL_IDENT_RE = '[a-zA-Z_]\\w*[!?=]?';
+  var CRYSTAL_METHOD_RE = '[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|[=!]~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~|]|//|//=|&[-+*]=?|&\\*\\*|\\[\\][=?]?';
+  var CRYSTAL_PATH_RE = '[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?';
+  var CRYSTAL_KEYWORDS = {
+    $pattern: CRYSTAL_IDENT_RE,
+    keyword:
+      'abstract alias annotation as as? asm begin break case class def do else elsif end ensure enum extend for fun if ' +
+      'include instance_sizeof is_a? lib macro module next nil? of out pointerof private protected rescue responds_to? ' +
+      'return require select self sizeof struct super then type typeof union uninitialized unless until verbatim when while with yield ' +
+      '__DIR__ __END_LINE__ __FILE__ __LINE__',
+    literal: 'false nil true'
+  };
+  var SUBST = {
+    className: 'subst',
+    begin: '#{', end: '}',
+    keywords: CRYSTAL_KEYWORDS
+  };
+  var EXPANSION = {
+    className: 'template-variable',
+    variants: [
+      {begin: '\\{\\{', end: '\\}\\}'},
+      {begin: '\\{%', end: '%\\}'}
+    ],
+    keywords: CRYSTAL_KEYWORDS
+  };
+
+  function recursiveParen(begin, end) {
+    var
+    contains = [{begin: begin, end: end}];
+    contains[0].contains = contains;
+    return contains;
+  }
+  var STRING = {
+    className: 'string',
+    contains: [hljs.BACKSLASH_ESCAPE, SUBST],
+    variants: [
+      {begin: /'/, end: /'/},
+      {begin: /"/, end: /"/},
+      {begin: /`/, end: /`/},
+      {begin: '%[Qwi]?\\(', end: '\\)', contains: recursiveParen('\\(', '\\)')},
+      {begin: '%[Qwi]?\\[', end: '\\]', contains: recursiveParen('\\[', '\\]')},
+      {begin: '%[Qwi]?{', end: '}', contains: recursiveParen('{', '}')},
+      {begin: '%[Qwi]?<', end: '>', contains: recursiveParen('<', '>')},
+      {begin: '%[Qwi]?\\|', end: '\\|'},
+      {begin: /<<-\w+$/, end: /^\s*\w+$/},
+    ],
+    relevance: 0,
+  };
+  var Q_STRING = {
+    className: 'string',
+    variants: [
+      {begin: '%q\\(', end: '\\)', contains: recursiveParen('\\(', '\\)')},
+      {begin: '%q\\[', end: '\\]', contains: recursiveParen('\\[', '\\]')},
+      {begin: '%q{', end: '}', contains: recursiveParen('{', '}')},
+      {begin: '%q<', end: '>', contains: recursiveParen('<', '>')},
+      {begin: '%q\\|', end: '\\|'},
+      {begin: /<<-'\w+'$/, end: /^\s*\w+$/},
+    ],
+    relevance: 0,
+  };
+  var REGEXP = {
+    begin: '(?!%})(' + hljs.RE_STARTERS_RE + '|\\n|\\b(case|if|select|unless|until|when|while)\\b)\\s*',
+    keywords: 'case if select unless until when while',
+    contains: [
+      {
+        className: 'regexp',
+        contains: [hljs.BACKSLASH_ESCAPE, SUBST],
+        variants: [
+          {begin: '//[a-z]*', relevance: 0},
+          {begin: '/(?!\\/)', end: '/[a-z]*'},
+        ]
+      }
+    ],
+    relevance: 0
+  };
+  var REGEXP2 = {
+    className: 'regexp',
+    contains: [hljs.BACKSLASH_ESCAPE, SUBST],
+    variants: [
+      {begin: '%r\\(', end: '\\)', contains: recursiveParen('\\(', '\\)')},
+      {begin: '%r\\[', end: '\\]', contains: recursiveParen('\\[', '\\]')},
+      {begin: '%r{', end: '}', contains: recursiveParen('{', '}')},
+      {begin: '%r<', end: '>', contains: recursiveParen('<', '>')},
+      {begin: '%r\\|', end: '\\|'},
+    ],
+    relevance: 0
+  };
+  var ATTRIBUTE = {
+    className: 'meta',
+    begin: '@\\[', end: '\\]',
+    contains: [
+      hljs.inherit(hljs.QUOTE_STRING_MODE, {className: 'meta-string'})
+    ]
+  };
+  var CRYSTAL_DEFAULT_CONTAINS = [
+    EXPANSION,
+    STRING,
+    Q_STRING,
+    REGEXP2,
+    REGEXP,
+    ATTRIBUTE,
+    hljs.HASH_COMMENT_MODE,
+    {
+      className: 'class',
+      beginKeywords: 'class module struct', end: '$|;',
+      illegal: /=/,
+      contains: [
+        hljs.HASH_COMMENT_MODE,
+        hljs.inherit(hljs.TITLE_MODE, {begin: CRYSTAL_PATH_RE}),
+        {begin: '<'} // relevance booster for inheritance
+      ]
+    },
+    {
+      className: 'class',
+      beginKeywords: 'lib enum union', end: '$|;',
+      illegal: /=/,
+      contains: [
+        hljs.HASH_COMMENT_MODE,
+        hljs.inherit(hljs.TITLE_MODE, {begin: CRYSTAL_PATH_RE}),
+      ],
+      relevance: 10
+    },
+    {
+      beginKeywords: 'annotation', end: '$|;',
+      illegal: /=/,
+      contains: [
+        hljs.HASH_COMMENT_MODE,
+        hljs.inherit(hljs.TITLE_MODE, {begin: CRYSTAL_PATH_RE}),
+      ],
+      relevance: 10
+    },
+    {
+      className: 'function',
+      beginKeywords: 'def', end: /\B\b/,
+      contains: [
+        hljs.inherit(hljs.TITLE_MODE, {
+          begin: CRYSTAL_METHOD_RE,
+          endsParent: true
+        })
+      ]
+    },
+    {
+      className: 'function',
+      beginKeywords: 'fun macro', end: /\B\b/,
+      contains: [
+        hljs.inherit(hljs.TITLE_MODE, {
+          begin: CRYSTAL_METHOD_RE,
+          endsParent: true
+        })
+      ],
+      relevance: 5
+    },
+    {
+      className: 'symbol',
+      begin: hljs.UNDERSCORE_IDENT_RE + '(\\!|\\?)?:',
+      relevance: 0
+    },
+    {
+      className: 'symbol',
+      begin: ':',
+      contains: [STRING, {begin: CRYSTAL_METHOD_RE}],
+      relevance: 0
+    },
+    {
+      className: 'number',
+      variants: [
+        { begin: '\\b0b([01_]+)' + INT_SUFFIX },
+        { begin: '\\b0o([0-7_]+)' + INT_SUFFIX },
+        { begin: '\\b0x([A-Fa-f0-9_]+)' + INT_SUFFIX },
+        { begin: '\\b([1-9][0-9_]*[0-9]|[0-9])(\\.[0-9][0-9_]*)?([eE]_*[-+]?[0-9_]*)?' + FLOAT_SUFFIX + '(?!_)' },
+        { begin: '\\b([1-9][0-9_]*|0)' + INT_SUFFIX }
+      ],
+      relevance: 0
+    }
+  ];
+  SUBST.contains = CRYSTAL_DEFAULT_CONTAINS;
+  EXPANSION.contains = CRYSTAL_DEFAULT_CONTAINS.slice(1); // without EXPANSION
+
+  return {
+    name: 'Crystal',
+    aliases: ['cr'],
+    keywords: CRYSTAL_KEYWORDS,
+    contains: CRYSTAL_DEFAULT_CONTAINS
+  };
+}
+
+module.exports = crystal;

+ 227 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/csharp.js

@@ -0,0 +1,227 @@
+/*
+Language: C#
+Author: Jason Diamond <jason@diamond.name>
+Contributor: Nicolas LLOBERA <nllobera@gmail.com>, Pieter Vantorre <pietervantorre@gmail.com>
+Website: https://docs.microsoft.com/en-us/dotnet/csharp/
+Category: common
+*/
+
+/** @type LanguageFn */
+function csharp(hljs) {
+  var KEYWORDS = {
+    keyword:
+      // Normal keywords.
+      'abstract as base bool break byte case catch char checked const continue decimal ' +
+      'default delegate do double enum event explicit extern finally fixed float ' +
+      'for foreach goto if implicit in init int interface internal is lock long ' +
+      'object operator out override params private protected public readonly ref sbyte ' +
+      'sealed short sizeof stackalloc static string struct switch this try typeof ' +
+      'uint ulong unchecked unsafe ushort using virtual void volatile while ' +
+      // Contextual keywords.
+      'add alias ascending async await by descending dynamic equals from get global group into join ' +
+      'let nameof on orderby partial remove select set value var when where yield',
+    literal:
+      'null false true'
+  };
+  var TITLE_MODE = hljs.inherit(hljs.TITLE_MODE, {begin: '[a-zA-Z](\\.?\\w)*'});
+  var NUMBERS = {
+    className: 'number',
+    variants: [
+      { begin: '\\b(0b[01\']+)' },
+      { begin: '(-?)\\b([\\d\']+(\\.[\\d\']*)?|\\.[\\d\']+)(u|U|l|L|ul|UL|f|F|b|B)' },
+      { begin: '(-?)(\\b0[xX][a-fA-F0-9\']+|(\\b[\\d\']+(\\.[\\d\']*)?|\\.[\\d\']+)([eE][-+]?[\\d\']+)?)' }
+    ],
+    relevance: 0
+  };
+  var VERBATIM_STRING = {
+    className: 'string',
+    begin: '@"', end: '"',
+    contains: [{begin: '""'}]
+  };
+  var VERBATIM_STRING_NO_LF = hljs.inherit(VERBATIM_STRING, {illegal: /\n/});
+  var SUBST = {
+    className: 'subst',
+    begin: '{', end: '}',
+    keywords: KEYWORDS
+  };
+  var SUBST_NO_LF = hljs.inherit(SUBST, {illegal: /\n/});
+  var INTERPOLATED_STRING = {
+    className: 'string',
+    begin: /\$"/, end: '"',
+    illegal: /\n/,
+    contains: [{begin: '{{'}, {begin: '}}'}, hljs.BACKSLASH_ESCAPE, SUBST_NO_LF]
+  };
+  var INTERPOLATED_VERBATIM_STRING = {
+    className: 'string',
+    begin: /\$@"/, end: '"',
+    contains: [{begin: '{{'}, {begin: '}}'}, {begin: '""'}, SUBST]
+  };
+  var INTERPOLATED_VERBATIM_STRING_NO_LF = hljs.inherit(INTERPOLATED_VERBATIM_STRING, {
+    illegal: /\n/,
+    contains: [{begin: '{{'}, {begin: '}}'}, {begin: '""'}, SUBST_NO_LF]
+  });
+  SUBST.contains = [
+    INTERPOLATED_VERBATIM_STRING,
+    INTERPOLATED_STRING,
+    VERBATIM_STRING,
+    hljs.APOS_STRING_MODE,
+    hljs.QUOTE_STRING_MODE,
+    NUMBERS,
+    hljs.C_BLOCK_COMMENT_MODE
+  ];
+  SUBST_NO_LF.contains = [
+    INTERPOLATED_VERBATIM_STRING_NO_LF,
+    INTERPOLATED_STRING,
+    VERBATIM_STRING_NO_LF,
+    hljs.APOS_STRING_MODE,
+    hljs.QUOTE_STRING_MODE,
+    NUMBERS,
+    hljs.inherit(hljs.C_BLOCK_COMMENT_MODE, {illegal: /\n/})
+  ];
+  var STRING = {
+    variants: [
+      INTERPOLATED_VERBATIM_STRING,
+      INTERPOLATED_STRING,
+      VERBATIM_STRING,
+      hljs.APOS_STRING_MODE,
+      hljs.QUOTE_STRING_MODE
+    ]
+  };
+
+  var GENERIC_MODIFIER = {
+    begin: "<",
+    end: ">",
+    contains: [ 
+      { beginKeywords: "in out"},
+      TITLE_MODE 
+    ]
+  };
+  var TYPE_IDENT_RE = hljs.IDENT_RE + '(<' + hljs.IDENT_RE + '(\\s*,\\s*' + hljs.IDENT_RE + ')*>)?(\\[\\])?';
+  var AT_IDENTIFIER = {
+    // prevents expressions like `@class` from incorrect flagging
+    // `class` as a keyword
+    begin: "@" + hljs.IDENT_RE,
+    relevance: 0
+  };
+
+  return {
+    name: 'C#',
+    aliases: ['cs', 'c#'],
+    keywords: KEYWORDS,
+    illegal: /::/,
+    contains: [
+      hljs.COMMENT(
+        '///',
+        '$',
+        {
+          returnBegin: true,
+          contains: [
+            {
+              className: 'doctag',
+              variants: [
+                {
+                  begin: '///', relevance: 0
+                },
+                {
+                  begin: '<!--|-->'
+                },
+                {
+                  begin: '</?', end: '>'
+                }
+              ]
+            }
+          ]
+        }
+      ),
+      hljs.C_LINE_COMMENT_MODE,
+      hljs.C_BLOCK_COMMENT_MODE,
+      {
+        className: 'meta',
+        begin: '#', end: '$',
+        keywords: {
+          'meta-keyword': 'if else elif endif define undef warning error line region endregion pragma checksum'
+        }
+      },
+      STRING,
+      NUMBERS,
+      {
+        beginKeywords: 'class interface', end: /[{;=]/,
+        illegal: /[^\s:,]/,
+        contains: [
+          { beginKeywords: "where class" },
+          TITLE_MODE,
+          GENERIC_MODIFIER,
+          hljs.C_LINE_COMMENT_MODE,
+          hljs.C_BLOCK_COMMENT_MODE
+        ]
+      },
+      {
+        beginKeywords: 'namespace', end: /[{;=]/,
+        illegal: /[^\s:]/,
+        contains: [
+          TITLE_MODE,
+          hljs.C_LINE_COMMENT_MODE,
+          hljs.C_BLOCK_COMMENT_MODE
+        ]
+      },
+      {
+        beginKeywords: 'record', end: /[{;=]/,
+        illegal: /[^\s:]/,
+        contains: [
+          TITLE_MODE,
+          GENERIC_MODIFIER,
+          hljs.C_LINE_COMMENT_MODE,
+          hljs.C_BLOCK_COMMENT_MODE
+        ]
+      },
+      {
+        // [Attributes("")]
+        className: 'meta',
+        begin: '^\\s*\\[', excludeBegin: true, end: '\\]', excludeEnd: true,
+        contains: [
+          {className: 'meta-string', begin: /"/, end: /"/}
+        ]
+      },
+      {
+        // Expression keywords prevent 'keyword Name(...)' from being
+        // recognized as a function definition
+        beginKeywords: 'new return throw await else',
+        relevance: 0
+      },
+      {
+        className: 'function',
+        begin: '(' + TYPE_IDENT_RE + '\\s+)+' + hljs.IDENT_RE + '\\s*(\\<.+\\>)?\\s*\\(', returnBegin: true,
+        end: /\s*[{;=]/, excludeEnd: true,
+        keywords: KEYWORDS,
+        contains: [
+          {
+            begin: hljs.IDENT_RE + '\\s*(\\<.+\\>)?\\s*\\(', returnBegin: true,
+            contains: [
+              hljs.TITLE_MODE,
+              GENERIC_MODIFIER
+            ],
+            relevance: 0
+          },
+          {
+            className: 'params',
+            begin: /\(/, end: /\)/,
+            excludeBegin: true,
+            excludeEnd: true,
+            keywords: KEYWORDS,
+            relevance: 0,
+            contains: [
+              STRING,
+              NUMBERS,
+              hljs.C_BLOCK_COMMENT_MODE
+            ]
+          },
+          hljs.C_LINE_COMMENT_MODE,
+          hljs.C_BLOCK_COMMENT_MODE
+        ]
+      },
+      AT_IDENTIFIER
+    ]
+  };
+}
+
+module.exports = csharp;

+ 34 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/csp.js

@@ -0,0 +1,34 @@
+/*
+Language: CSP
+Description: Content Security Policy definition highlighting
+Author: Taras <oxdef@oxdef.info>
+Website: https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP
+
+vim: ts=2 sw=2 st=2
+*/
+
+/** @type LanguageFn */
+function csp(hljs) {
+  return {
+    name: 'CSP',
+    case_insensitive: false,
+    keywords: {
+      $pattern: '[a-zA-Z][a-zA-Z0-9_-]*',
+      keyword: 'base-uri child-src connect-src default-src font-src form-action ' +
+        'frame-ancestors frame-src img-src media-src object-src plugin-types ' +
+        'report-uri sandbox script-src style-src',
+    },
+    contains: [
+    {
+      className: 'string',
+      begin: "'", end: "'"
+    },
+    {
+      className: 'attribute',
+      begin: '^Content', end: ':', excludeEnd: true,
+    },
+    ]
+  };
+}
+
+module.exports = csp;

+ 134 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/css.js

@@ -0,0 +1,134 @@
+/*
+Language: CSS
+Category: common, css
+Website: https://developer.mozilla.org/en-US/docs/Web/CSS
+*/
+
+/** @type LanguageFn */
+function css(hljs) {
+  var FUNCTION_LIKE = {
+    begin: /[\w-]+\(/, returnBegin: true,
+    contains: [
+      {
+        className: 'built_in',
+        begin: /[\w-]+/
+      },
+      {
+        begin: /\(/, end: /\)/,
+        contains: [
+          hljs.APOS_STRING_MODE,
+          hljs.QUOTE_STRING_MODE,
+          hljs.CSS_NUMBER_MODE,
+        ]
+      }
+    ]
+  };
+  var ATTRIBUTE = {
+    className: 'attribute',
+    begin: /\S/, end: ':', excludeEnd: true,
+    starts: {
+      endsWithParent: true, excludeEnd: true,
+      contains: [
+        FUNCTION_LIKE,
+        hljs.CSS_NUMBER_MODE,
+        hljs.QUOTE_STRING_MODE,
+        hljs.APOS_STRING_MODE,
+        hljs.C_BLOCK_COMMENT_MODE,
+        {
+          className: 'number', begin: '#[0-9A-Fa-f]+'
+        },
+        {
+          className: 'meta', begin: '!important'
+        }
+      ]
+    }
+  };
+  var AT_IDENTIFIER = '@[a-z-]+'; // @font-face
+  var AT_MODIFIERS = "and or not only";
+  var AT_PROPERTY_RE = /@\-?\w[\w]*(\-\w+)*/; // @-webkit-keyframes
+  var IDENT_RE = '[a-zA-Z-][a-zA-Z0-9_-]*';
+  var RULE = {
+    begin: /(?:[A-Z\_\.\-]+|--[a-zA-Z0-9_-]+)\s*:/, returnBegin: true, end: ';', endsWithParent: true,
+    contains: [
+      ATTRIBUTE
+    ]
+  };
+
+  return {
+    name: 'CSS',
+    case_insensitive: true,
+    illegal: /[=\/|'\$]/,
+    contains: [
+      hljs.C_BLOCK_COMMENT_MODE,
+      {
+        className: 'selector-id', begin: /#[A-Za-z0-9_-]+/
+      },
+      {
+        className: 'selector-class', begin: /\.[A-Za-z0-9_-]+/
+      },
+      {
+        className: 'selector-attr',
+        begin: /\[/, end: /\]/,
+        illegal: '$',
+        contains: [
+          hljs.APOS_STRING_MODE,
+          hljs.QUOTE_STRING_MODE,
+        ]
+      },
+      {
+        className: 'selector-pseudo',
+        begin: /:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/
+      },
+      // matching these here allows us to treat them more like regular CSS
+      // rules so everything between the {} gets regular rule highlighting,
+      // which is what we want for page and font-face
+      {
+        begin: '@(page|font-face)',
+        lexemes: AT_IDENTIFIER,
+        keywords: '@page @font-face'
+      },
+      {
+        begin: '@', end: '[{;]', // at_rule eating first "{" is a good thing
+                                 // because it doesn’t let it to be parsed as
+                                 // a rule set but instead drops parser into
+                                 // the default mode which is how it should be.
+        illegal: /:/, // break on Less variables @var: ...
+        returnBegin: true,
+        contains: [
+          {
+            className: 'keyword',
+            begin: AT_PROPERTY_RE
+          },
+          {
+            begin: /\s/, endsWithParent: true, excludeEnd: true,
+            relevance: 0,
+            keywords: AT_MODIFIERS,
+            contains: [
+              {
+                begin: /[a-z-]+:/,
+                className:"attribute"
+              },
+              hljs.APOS_STRING_MODE,
+              hljs.QUOTE_STRING_MODE,
+              hljs.CSS_NUMBER_MODE
+            ]
+          }
+        ]
+      },
+      {
+        className: 'selector-tag', begin: IDENT_RE,
+        relevance: 0
+      },
+      {
+        begin: '{', end: '}',
+        illegal: /\S/,
+        contains: [
+          hljs.C_BLOCK_COMMENT_MODE,
+          RULE,
+        ]
+      }
+    ]
+  };
+}
+
+module.exports = css;

+ 270 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/d.js

@@ -0,0 +1,270 @@
+/*
+Language: D
+Author: Aleksandar Ruzicic <aleksandar@ruzicic.info>
+Description: D is a language with C-like syntax and static typing. It pragmatically combines efficiency, control, and modeling power, with safety and programmer productivity.
+Version: 1.0a
+Website: https://dlang.org
+Date: 2012-04-08
+*/
+
+/**
+ * Known issues:
+ *
+ * - invalid hex string literals will be recognized as a double quoted strings
+ *   but 'x' at the beginning of string will not be matched
+ *
+ * - delimited string literals are not checked for matching end delimiter
+ *   (not possible to do with js regexp)
+ *
+ * - content of token string is colored as a string (i.e. no keyword coloring inside a token string)
+ *   also, content of token string is not validated to contain only valid D tokens
+ *
+ * - special token sequence rule is not strictly following D grammar (anything following #line
+ *   up to the end of line is matched as special token sequence)
+ */
+
+/** @type LanguageFn */
+function d(hljs) {
+  /**
+   * Language keywords
+   *
+   * @type {Object}
+   */
+  var D_KEYWORDS = {
+    $pattern: hljs.UNDERSCORE_IDENT_RE,
+    keyword:
+      'abstract alias align asm assert auto body break byte case cast catch class ' +
+      'const continue debug default delete deprecated do else enum export extern final ' +
+      'finally for foreach foreach_reverse|10 goto if immutable import in inout int ' +
+      'interface invariant is lazy macro mixin module new nothrow out override package ' +
+      'pragma private protected public pure ref return scope shared static struct ' +
+      'super switch synchronized template this throw try typedef typeid typeof union ' +
+      'unittest version void volatile while with __FILE__ __LINE__ __gshared|10 ' +
+      '__thread __traits __DATE__ __EOF__ __TIME__ __TIMESTAMP__ __VENDOR__ __VERSION__',
+    built_in:
+      'bool cdouble cent cfloat char creal dchar delegate double dstring float function ' +
+      'idouble ifloat ireal long real short string ubyte ucent uint ulong ushort wchar ' +
+      'wstring',
+    literal:
+      'false null true'
+  };
+
+  /**
+   * Number literal regexps
+   *
+   * @type {String}
+   */
+  var decimal_integer_re = '(0|[1-9][\\d_]*)',
+    decimal_integer_nosus_re = '(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)',
+    binary_integer_re = '0[bB][01_]+',
+    hexadecimal_digits_re = '([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)',
+    hexadecimal_integer_re = '0[xX]' + hexadecimal_digits_re,
+
+    decimal_exponent_re = '([eE][+-]?' + decimal_integer_nosus_re + ')',
+    decimal_float_re = '(' + decimal_integer_nosus_re + '(\\.\\d*|' + decimal_exponent_re + ')|' +
+                '\\d+\\.' + decimal_integer_nosus_re + decimal_integer_nosus_re + '|' +
+                '\\.' + decimal_integer_re + decimal_exponent_re + '?' +
+              ')',
+    hexadecimal_float_re = '(0[xX](' +
+                  hexadecimal_digits_re + '\\.' + hexadecimal_digits_re + '|'+
+                  '\\.?' + hexadecimal_digits_re +
+                 ')[pP][+-]?' + decimal_integer_nosus_re + ')',
+
+    integer_re = '(' +
+      decimal_integer_re + '|' +
+      binary_integer_re  + '|' +
+       hexadecimal_integer_re   +
+    ')',
+
+    float_re = '(' +
+      hexadecimal_float_re + '|' +
+      decimal_float_re  +
+    ')';
+
+  /**
+   * Escape sequence supported in D string and character literals
+   *
+   * @type {String}
+   */
+  var escape_sequence_re = '\\\\(' +
+              '[\'"\\?\\\\abfnrtv]|' +  // common escapes
+              'u[\\dA-Fa-f]{4}|' +     // four hex digit unicode codepoint
+              '[0-7]{1,3}|' +       // one to three octal digit ascii char code
+              'x[\\dA-Fa-f]{2}|' +    // two hex digit ascii char code
+              'U[\\dA-Fa-f]{8}' +      // eight hex digit unicode codepoint
+              ')|' +
+              '&[a-zA-Z\\d]{2,};';      // named character entity
+
+  /**
+   * D integer number literals
+   *
+   * @type {Object}
+   */
+  var D_INTEGER_MODE = {
+    className: 'number',
+      begin: '\\b' + integer_re + '(L|u|U|Lu|LU|uL|UL)?',
+      relevance: 0
+  };
+
+  /**
+   * [D_FLOAT_MODE description]
+   * @type {Object}
+   */
+  var D_FLOAT_MODE = {
+    className: 'number',
+    begin: '\\b(' +
+        float_re + '([fF]|L|i|[fF]i|Li)?|' +
+        integer_re + '(i|[fF]i|Li)' +
+      ')',
+    relevance: 0
+  };
+
+  /**
+   * D character literal
+   *
+   * @type {Object}
+   */
+  var D_CHARACTER_MODE = {
+    className: 'string',
+    begin: '\'(' + escape_sequence_re + '|.)', end: '\'',
+    illegal: '.'
+  };
+
+  /**
+   * D string escape sequence
+   *
+   * @type {Object}
+   */
+  var D_ESCAPE_SEQUENCE = {
+    begin: escape_sequence_re,
+    relevance: 0
+  };
+
+  /**
+   * D double quoted string literal
+   *
+   * @type {Object}
+   */
+  var D_STRING_MODE = {
+    className: 'string',
+    begin: '"',
+    contains: [D_ESCAPE_SEQUENCE],
+    end: '"[cwd]?'
+  };
+
+  /**
+   * D wysiwyg and delimited string literals
+   *
+   * @type {Object}
+   */
+  var D_WYSIWYG_DELIMITED_STRING_MODE = {
+    className: 'string',
+    begin: '[rq]"',
+    end: '"[cwd]?',
+    relevance: 5
+  };
+
+  /**
+   * D alternate wysiwyg string literal
+   *
+   * @type {Object}
+   */
+  var D_ALTERNATE_WYSIWYG_STRING_MODE = {
+    className: 'string',
+    begin: '`',
+    end: '`[cwd]?'
+  };
+
+  /**
+   * D hexadecimal string literal
+   *
+   * @type {Object}
+   */
+  var D_HEX_STRING_MODE = {
+    className: 'string',
+    begin: 'x"[\\da-fA-F\\s\\n\\r]*"[cwd]?',
+    relevance: 10
+  };
+
+  /**
+   * D delimited string literal
+   *
+   * @type {Object}
+   */
+  var D_TOKEN_STRING_MODE = {
+    className: 'string',
+    begin: 'q"\\{',
+    end: '\\}"'
+  };
+
+  /**
+   * Hashbang support
+   *
+   * @type {Object}
+   */
+  var D_HASHBANG_MODE = {
+    className: 'meta',
+    begin: '^#!',
+    end: '$',
+    relevance: 5
+  };
+
+  /**
+   * D special token sequence
+   *
+   * @type {Object}
+   */
+  var D_SPECIAL_TOKEN_SEQUENCE_MODE = {
+    className: 'meta',
+    begin: '#(line)',
+    end: '$',
+    relevance: 5
+  };
+
+  /**
+   * D attributes
+   *
+   * @type {Object}
+   */
+  var D_ATTRIBUTE_MODE = {
+    className: 'keyword',
+    begin: '@[a-zA-Z_][a-zA-Z_\\d]*'
+  };
+
+  /**
+   * D nesting comment
+   *
+   * @type {Object}
+   */
+  var D_NESTING_COMMENT_MODE = hljs.COMMENT(
+    '\\/\\+',
+    '\\+\\/',
+    {
+      contains: ['self'],
+      relevance: 10
+    }
+  );
+
+  return {
+    name: 'D',
+    keywords: D_KEYWORDS,
+    contains: [
+      hljs.C_LINE_COMMENT_MODE,
+        hljs.C_BLOCK_COMMENT_MODE,
+        D_NESTING_COMMENT_MODE,
+        D_HEX_STRING_MODE,
+        D_STRING_MODE,
+        D_WYSIWYG_DELIMITED_STRING_MODE,
+        D_ALTERNATE_WYSIWYG_STRING_MODE,
+        D_TOKEN_STRING_MODE,
+        D_FLOAT_MODE,
+        D_INTEGER_MODE,
+        D_CHARACTER_MODE,
+        D_HASHBANG_MODE,
+        D_SPECIAL_TOKEN_SEQUENCE_MODE,
+        D_ATTRIBUTE_MODE
+    ]
+  };
+}
+
+module.exports = d;

+ 178 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/dart.js

@@ -0,0 +1,178 @@
+/*
+Language: Dart
+Requires: markdown.js
+Author: Maxim Dikun <dikmax@gmail.com>
+Description: Dart a modern, object-oriented language developed by Google. For more information see https://www.dartlang.org/
+Website: https://dart.dev
+Category: scripting
+*/
+
+function dart(hljs) {
+  const SUBST = {
+    className: 'subst',
+    variants: [{
+      begin: '\\$[A-Za-z0-9_]+'
+    }],
+  };
+
+  const BRACED_SUBST = {
+    className: 'subst',
+    variants: [{
+      begin: '\\${',
+      end: '}'
+    }],
+    keywords: 'true false null this is new super',
+  };
+
+  const STRING = {
+    className: 'string',
+    variants: [{
+        begin: 'r\'\'\'',
+        end: '\'\'\''
+      },
+      {
+        begin: 'r"""',
+        end: '"""'
+      },
+      {
+        begin: 'r\'',
+        end: '\'',
+        illegal: '\\n'
+      },
+      {
+        begin: 'r"',
+        end: '"',
+        illegal: '\\n'
+      },
+      {
+        begin: '\'\'\'',
+        end: '\'\'\'',
+        contains: [hljs.BACKSLASH_ESCAPE, SUBST, BRACED_SUBST]
+      },
+      {
+        begin: '"""',
+        end: '"""',
+        contains: [hljs.BACKSLASH_ESCAPE, SUBST, BRACED_SUBST]
+      },
+      {
+        begin: '\'',
+        end: '\'',
+        illegal: '\\n',
+        contains: [hljs.BACKSLASH_ESCAPE, SUBST, BRACED_SUBST]
+      },
+      {
+        begin: '"',
+        end: '"',
+        illegal: '\\n',
+        contains: [hljs.BACKSLASH_ESCAPE, SUBST, BRACED_SUBST]
+      }
+    ]
+  };
+  BRACED_SUBST.contains = [
+    hljs.C_NUMBER_MODE, STRING
+  ];
+
+  const BUILT_IN_TYPES = [
+    // dart:core
+    'Comparable',
+    'DateTime',
+    'Duration',
+    'Function',
+    'Iterable',
+    'Iterator',
+    'List',
+    'Map',
+    'Match',
+    'Object',
+    'Pattern',
+    'RegExp',
+    'Set',
+    'Stopwatch',
+    'String',
+    'StringBuffer',
+    'StringSink',
+    'Symbol',
+    'Type',
+    'Uri',
+    'bool',
+    'double',
+    'int',
+    'num',
+    // dart:html
+    'Element',
+    'ElementList',
+  ];
+  const NULLABLE_BUILT_IN_TYPES = BUILT_IN_TYPES.map((e) => `${e}?`);
+
+  const KEYWORDS = {
+    keyword: 'abstract as assert async await break case catch class const continue covariant default deferred do ' +
+      'dynamic else enum export extends extension external factory false final finally for Function get hide if ' +
+      'implements import in inferface is late library mixin new null on operator part required rethrow return set ' +
+      'show static super switch sync this throw true try typedef var void while with yield',
+    built_in:
+      BUILT_IN_TYPES
+        .concat(NULLABLE_BUILT_IN_TYPES)
+        .concat([
+          // dart:core
+          'Never',
+          'Null',
+          'dynamic',
+          'print',
+          // dart:html
+          'document',
+          'querySelector',
+          'querySelectorAll',
+          'window',
+      ]).join(' '),
+    $pattern: /[A-Za-z][A-Za-z0-9_]*\??/
+  };
+
+  return {
+    name: 'Dart',
+    keywords: KEYWORDS,
+    contains: [
+      STRING,
+      hljs.COMMENT(
+        '/\\*\\*',
+        '\\*/', {
+          subLanguage: 'markdown',
+          relevance:0
+        }
+      ),
+      hljs.COMMENT(
+        '///+\\s*',
+        '$', {
+          contains: [{
+            subLanguage: 'markdown',
+            begin: '.',
+            end: '$',
+            relevance:0
+          }]
+        }
+      ),
+      hljs.C_LINE_COMMENT_MODE,
+      hljs.C_BLOCK_COMMENT_MODE,
+      {
+        className: 'class',
+        beginKeywords: 'class interface',
+        end: '{',
+        excludeEnd: true,
+        contains: [{
+            beginKeywords: 'extends implements'
+          },
+          hljs.UNDERSCORE_TITLE_MODE
+        ]
+      },
+      hljs.C_NUMBER_MODE,
+      {
+        className: 'meta',
+        begin: '@[A-Za-z]+'
+      },
+      {
+        begin: '=>' // No markup, just a relevance booster
+      }
+    ]
+  };
+}
+
+module.exports = dart;

+ 97 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/delphi.js

@@ -0,0 +1,97 @@
+/*
+Language: Delphi
+Website: https://www.embarcadero.com/products/delphi
+*/
+
+/** @type LanguageFn */
+function delphi(hljs) {
+  var KEYWORDS =
+    'exports register file shl array record property for mod while set ally label uses raise not ' +
+    'stored class safecall var interface or private static exit index inherited to else stdcall ' +
+    'override shr asm far resourcestring finalization packed virtual out and protected library do ' +
+    'xorwrite goto near function end div overload object unit begin string on inline repeat until ' +
+    'destructor write message program with read initialization except default nil if case cdecl in ' +
+    'downto threadvar of try pascal const external constructor type public then implementation ' +
+    'finally published procedure absolute reintroduce operator as is abstract alias assembler ' +
+    'bitpacked break continue cppdecl cvar enumerator experimental platform deprecated ' +
+    'unimplemented dynamic export far16 forward generic helper implements interrupt iochecks ' +
+    'local name nodefault noreturn nostackframe oldfpccall otherwise saveregisters softfloat ' +
+    'specialize strict unaligned varargs ';
+  var COMMENT_MODES = [
+    hljs.C_LINE_COMMENT_MODE,
+    hljs.COMMENT(/\{/, /\}/, {relevance: 0}),
+    hljs.COMMENT(/\(\*/, /\*\)/, {relevance: 10})
+  ];
+  var DIRECTIVE = {
+    className: 'meta',
+    variants: [
+      {begin: /\{\$/, end: /\}/},
+      {begin: /\(\*\$/, end: /\*\)/}
+    ]
+  };
+  var STRING = {
+    className: 'string',
+    begin: /'/, end: /'/,
+    contains: [{begin: /''/}]
+  };
+  var NUMBER = {
+    className: 'number',
+    relevance: 0,
+    // Source: https://www.freepascal.org/docs-html/ref/refse6.html
+    variants: [
+      {
+        // Hexadecimal notation, e.g., $7F.
+        begin: '\\$[0-9A-Fa-f]+',
+      },
+      {
+        // Octal notation, e.g., &42.
+        begin: '&[0-7]+',
+      },
+      {
+        // Binary notation, e.g., %1010.
+        begin: '%[01]+',
+      }
+    ]
+  };
+  var CHAR_STRING = {
+    className: 'string', begin: /(#\d+)+/
+  };
+  var CLASS = {
+    begin: hljs.IDENT_RE + '\\s*=\\s*class\\s*\\(', returnBegin: true,
+    contains: [
+      hljs.TITLE_MODE
+    ]
+  };
+  var FUNCTION = {
+    className: 'function',
+    beginKeywords: 'function constructor destructor procedure', end: /[:;]/,
+    keywords: 'function constructor|10 destructor|10 procedure|10',
+    contains: [
+      hljs.TITLE_MODE,
+      {
+        className: 'params',
+        begin: /\(/, end: /\)/,
+        keywords: KEYWORDS,
+        contains: [STRING, CHAR_STRING, DIRECTIVE].concat(COMMENT_MODES)
+      },
+      DIRECTIVE
+    ].concat(COMMENT_MODES)
+  };
+  return {
+    name: 'Delphi',
+    aliases: ['dpr', 'dfm', 'pas', 'pascal', 'freepascal', 'lazarus', 'lpr', 'lfm'],
+    case_insensitive: true,
+    keywords: KEYWORDS,
+    illegal: /"|\$[G-Zg-z]|\/\*|<\/|\|/,
+    contains: [
+      STRING, CHAR_STRING,
+      hljs.NUMBER_MODE,
+      NUMBER,
+      CLASS,
+      FUNCTION,
+      DIRECTIVE
+    ].concat(COMMENT_MODES)
+  };
+}
+
+module.exports = delphi;

+ 51 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/diff.js

@@ -0,0 +1,51 @@
+/*
+Language: Diff
+Description: Unified and context diff
+Author: Vasily Polovnyov <vast@whiteants.net>
+Website: https://www.gnu.org/software/diffutils/
+Category: common
+*/
+
+/** @type LanguageFn */
+function diff(hljs) {
+  return {
+    name: 'Diff',
+    aliases: ['patch'],
+    contains: [
+      {
+        className: 'meta',
+        relevance: 10,
+        variants: [
+          {begin: /^@@ +\-\d+,\d+ +\+\d+,\d+ +@@$/},
+          {begin: /^\*\*\* +\d+,\d+ +\*\*\*\*$/},
+          {begin: /^\-\-\- +\d+,\d+ +\-\-\-\-$/}
+        ]
+      },
+      {
+        className: 'comment',
+        variants: [
+          {begin: /Index: /, end: /$/},
+          {begin: /={3,}/, end: /$/},
+          {begin: /^\-{3}/, end: /$/},
+          {begin: /^\*{3} /, end: /$/},
+          {begin: /^\+{3}/, end: /$/},
+          {begin: /^\*{15}$/ }
+        ]
+      },
+      {
+        className: 'addition',
+        begin: '^\\+', end: '$'
+      },
+      {
+        className: 'deletion',
+        begin: '^\\-', end: '$'
+      },
+      {
+        className: 'addition',
+        begin: '^\\!', end: '$'
+      }
+    ]
+  };
+}
+
+module.exports = diff;

+ 76 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/django.js

@@ -0,0 +1,76 @@
+/*
+Language: Django
+Description: Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.
+Requires: xml.js
+Author: Ivan Sagalaev <maniac@softwaremaniacs.org>
+Contributors: Ilya Baryshev <baryshev@gmail.com>
+Website: https://www.djangoproject.com
+Category: template
+*/
+
+function django(hljs) {
+  var FILTER = {
+    begin: /\|[A-Za-z]+:?/,
+    keywords: {
+      name:
+        'truncatewords removetags linebreaksbr yesno get_digit timesince random striptags ' +
+        'filesizeformat escape linebreaks length_is ljust rjust cut urlize fix_ampersands ' +
+        'title floatformat capfirst pprint divisibleby add make_list unordered_list urlencode ' +
+        'timeuntil urlizetrunc wordcount stringformat linenumbers slice date dictsort ' +
+        'dictsortreversed default_if_none pluralize lower join center default ' +
+        'truncatewords_html upper length phone2numeric wordwrap time addslashes slugify first ' +
+        'escapejs force_escape iriencode last safe safeseq truncatechars localize unlocalize ' +
+        'localtime utc timezone'
+    },
+    contains: [
+      hljs.QUOTE_STRING_MODE,
+      hljs.APOS_STRING_MODE
+    ]
+  };
+
+  return {
+    name: 'Django',
+    aliases: ['jinja'],
+    case_insensitive: true,
+    subLanguage: 'xml',
+    contains: [
+      hljs.COMMENT(/\{%\s*comment\s*%}/, /\{%\s*endcomment\s*%}/),
+      hljs.COMMENT(/\{#/, /#}/),
+      {
+        className: 'template-tag',
+        begin: /\{%/, end: /%}/,
+        contains: [
+          {
+            className: 'name',
+            begin: /\w+/,
+            keywords: {
+              name:
+                'comment endcomment load templatetag ifchanged endifchanged if endif firstof for ' +
+                'endfor ifnotequal endifnotequal widthratio extends include spaceless ' +
+                'endspaceless regroup ifequal endifequal ssi now with cycle url filter ' +
+                'endfilter debug block endblock else autoescape endautoescape csrf_token empty elif ' +
+                'endwith static trans blocktrans endblocktrans get_static_prefix get_media_prefix ' +
+                'plural get_current_language language get_available_languages ' +
+                'get_current_language_bidi get_language_info get_language_info_list localize ' +
+                'endlocalize localtime endlocaltime timezone endtimezone get_current_timezone ' +
+                'verbatim'
+            },
+            starts: {
+              endsWithParent: true,
+              keywords: 'in by as',
+              contains: [FILTER],
+              relevance: 0
+            }
+          }
+        ]
+      },
+      {
+        className: 'template-variable',
+        begin: /\{\{/, end: /}}/,
+        contains: [FILTER]
+      }
+    ]
+  };
+}
+
+module.exports = django;

+ 39 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/dns.js

@@ -0,0 +1,39 @@
+/*
+Language: DNS Zone
+Author: Tim Schumacher <tim@datenknoten.me>
+Category: config
+Website: https://en.wikipedia.org/wiki/Zone_file
+*/
+
+/** @type LanguageFn */
+function dns(hljs) {
+  return {
+    name: 'DNS Zone',
+    aliases: ['bind', 'zone'],
+    keywords: {
+      keyword:
+        'IN A AAAA AFSDB APL CAA CDNSKEY CDS CERT CNAME DHCID DLV DNAME DNSKEY DS HIP IPSECKEY KEY KX ' +
+        'LOC MX NAPTR NS NSEC NSEC3 NSEC3PARAM PTR RRSIG RP SIG SOA SRV SSHFP TA TKEY TLSA TSIG TXT'
+    },
+    contains: [
+      hljs.COMMENT(';', '$', {relevance: 0}),
+      {
+        className: 'meta',
+        begin: /^\$(TTL|GENERATE|INCLUDE|ORIGIN)\b/
+      },
+      // IPv6
+      {
+        className: 'number',
+        begin: '((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))\\b'
+      },
+      // IPv4
+      {
+        className: 'number',
+        begin: '((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\b'
+      },
+      hljs.inherit(hljs.NUMBER_MODE, {begin: /\b\d+[dhwm]?/})
+    ]
+  };
+}
+
+module.exports = dns;

+ 33 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/dockerfile.js

@@ -0,0 +1,33 @@
+/*
+Language: Dockerfile
+Requires: bash.js
+Author: Alexis Hénaut <alexis@henaut.net>
+Description: language definition for Dockerfile files
+Website: https://docs.docker.com/engine/reference/builder/
+Category: config
+*/
+
+function dockerfile(hljs) {
+  return {
+    name: 'Dockerfile',
+    aliases: ['docker'],
+    case_insensitive: true,
+    keywords: 'from maintainer expose env arg user onbuild stopsignal',
+    contains: [
+      hljs.HASH_COMMENT_MODE,
+      hljs.APOS_STRING_MODE,
+      hljs.QUOTE_STRING_MODE,
+      hljs.NUMBER_MODE,
+      {
+        beginKeywords: 'run cmd entrypoint volume add copy workdir label healthcheck shell',
+        starts: {
+          end: /[^\\]$/,
+          subLanguage: 'bash'
+        }
+      }
+    ],
+    illegal: '</'
+  }
+}
+
+module.exports = dockerfile;

+ 61 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/dos.js

@@ -0,0 +1,61 @@
+/*
+Language: Batch file (DOS)
+Author: Alexander Makarov <sam@rmcreative.ru>
+Contributors: Anton Kochkov <anton.kochkov@gmail.com>
+Website: https://en.wikipedia.org/wiki/Batch_file
+*/
+
+function dos(hljs) {
+  var COMMENT = hljs.COMMENT(
+    /^\s*@?rem\b/, /$/,
+    {
+      relevance: 10
+    }
+  );
+  var LABEL = {
+    className: 'symbol',
+    begin: '^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)',
+    relevance: 0
+  };
+  return {
+    name: 'Batch file (DOS)',
+    aliases: ['bat', 'cmd'],
+    case_insensitive: true,
+    illegal: /\/\*/,
+    keywords: {
+      keyword:
+        'if else goto for in do call exit not exist errorlevel defined ' +
+        'equ neq lss leq gtr geq',
+      built_in:
+        'prn nul lpt3 lpt2 lpt1 con com4 com3 com2 com1 aux ' +
+        'shift cd dir echo setlocal endlocal set pause copy ' +
+        'append assoc at attrib break cacls cd chcp chdir chkdsk chkntfs cls cmd color ' +
+        'comp compact convert date dir diskcomp diskcopy doskey erase fs ' +
+        'find findstr format ftype graftabl help keyb label md mkdir mode more move path ' +
+        'pause print popd pushd promt rd recover rem rename replace restore rmdir shift ' +
+        'sort start subst time title tree type ver verify vol ' +
+        // winutils
+        'ping net ipconfig taskkill xcopy ren del'
+    },
+    contains: [
+      {
+        className: 'variable', begin: /%%[^ ]|%[^ ]+?%|![^ ]+?!/
+      },
+      {
+        className: 'function',
+        begin: LABEL.begin, end: 'goto:eof',
+        contains: [
+          hljs.inherit(hljs.TITLE_MODE, {begin: '([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*'}),
+          COMMENT
+        ]
+      },
+      {
+        className: 'number', begin: '\\b\\d+',
+        relevance: 0
+      },
+      COMMENT
+    ]
+  };
+}
+
+module.exports = dos;

+ 54 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/dsconfig.js

@@ -0,0 +1,54 @@
+/*
+ Language: dsconfig
+ Description: dsconfig batch configuration language for LDAP directory servers
+ Contributors: Jacob Childress <jacobc@gmail.com>
+ Category: enterprise, config
+ */
+function dsconfig(hljs) {
+  var QUOTED_PROPERTY = {
+    className: 'string',
+    begin: /"/, end: /"/
+  };
+  var APOS_PROPERTY = {
+    className: 'string',
+    begin: /'/, end: /'/
+  };
+  var UNQUOTED_PROPERTY = {
+    className: 'string',
+    begin: '[\\w-?]+:\\w+', end: '\\W',
+    relevance: 0
+  };
+  var VALUELESS_PROPERTY = {
+    className: 'string',
+    begin: '\\w+-?\\w+', end: '\\W',
+    relevance: 0
+  };
+
+  return {
+    keywords: 'dsconfig',
+    contains: [
+      {
+        className: 'keyword',
+        begin: '^dsconfig', end: '\\s', excludeEnd: true,
+        relevance: 10
+      },
+      {
+        className: 'built_in',
+        begin: '(list|create|get|set|delete)-(\\w+)', end: '\\s', excludeEnd: true,
+        illegal: '!@#$%^&*()',
+        relevance: 10
+      },
+      {
+        className: 'built_in',
+        begin: '--(\\w+)', end: '\\s', excludeEnd: true
+      },
+      QUOTED_PROPERTY,
+      APOS_PROPERTY,
+      UNQUOTED_PROPERTY,
+      VALUELESS_PROPERTY,
+      hljs.HASH_COMMENT_MODE
+    ]
+  };
+}
+
+module.exports = dsconfig;

+ 134 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/dts.js

@@ -0,0 +1,134 @@
+/*
+Language: Device Tree
+Description: *.dts files used in the Linux kernel
+Author: Martin Braun <martin.braun@ettus.com>, Moritz Fischer <moritz.fischer@ettus.com>
+Website: https://elinux.org/Device_Tree_Reference
+Category: config
+*/
+
+function dts(hljs) {
+  var STRINGS = {
+    className: 'string',
+    variants: [
+      hljs.inherit(hljs.QUOTE_STRING_MODE, { begin: '((u8?|U)|L)?"' }),
+      {
+        begin: '(u8?|U)?R"', end: '"',
+        contains: [hljs.BACKSLASH_ESCAPE]
+      },
+      {
+        begin: '\'\\\\?.', end: '\'',
+        illegal: '.'
+      }
+    ]
+  };
+
+  var NUMBERS = {
+    className: 'number',
+    variants: [
+      { begin: '\\b(\\d+(\\.\\d*)?|\\.\\d+)(u|U|l|L|ul|UL|f|F)' },
+      { begin: hljs.C_NUMBER_RE }
+    ],
+    relevance: 0
+  };
+
+  var PREPROCESSOR = {
+    className: 'meta',
+    begin: '#', end: '$',
+    keywords: {'meta-keyword': 'if else elif endif define undef ifdef ifndef'},
+    contains: [
+      {
+        begin: /\\\n/, relevance: 0
+      },
+      {
+        beginKeywords: 'include', end: '$',
+        keywords: {'meta-keyword': 'include'},
+        contains: [
+          hljs.inherit(STRINGS, {className: 'meta-string'}),
+          {
+            className: 'meta-string',
+            begin: '<', end: '>',
+            illegal: '\\n'
+          }
+        ]
+      },
+      STRINGS,
+      hljs.C_LINE_COMMENT_MODE,
+      hljs.C_BLOCK_COMMENT_MODE
+    ]
+  };
+
+  var DTS_REFERENCE = {
+    className: 'variable',
+    begin: '\\&[a-z\\d_]*\\b'
+  };
+
+  var DTS_KEYWORD = {
+    className: 'meta-keyword',
+    begin: '/[a-z][a-z\\d-]*/'
+  };
+
+  var DTS_LABEL = {
+    className: 'symbol',
+    begin: '^\\s*[a-zA-Z_][a-zA-Z\\d_]*:'
+  };
+
+  var DTS_CELL_PROPERTY = {
+    className: 'params',
+    begin: '<',
+    end: '>',
+    contains: [
+      NUMBERS,
+      DTS_REFERENCE
+    ]
+  };
+
+  var DTS_NODE = {
+    className: 'class',
+    begin: /[a-zA-Z_][a-zA-Z\d_@]*\s{/,
+    end: /[{;=]/,
+    returnBegin: true,
+    excludeEnd: true
+  };
+
+  var DTS_ROOT_NODE = {
+    className: 'class',
+    begin: '/\\s*{',
+    end: '};',
+    relevance: 10,
+    contains: [
+      DTS_REFERENCE,
+      DTS_KEYWORD,
+      DTS_LABEL,
+      DTS_NODE,
+      DTS_CELL_PROPERTY,
+      hljs.C_LINE_COMMENT_MODE,
+      hljs.C_BLOCK_COMMENT_MODE,
+      NUMBERS,
+      STRINGS
+    ]
+  };
+
+  return {
+    name: 'Device Tree',
+    keywords: "",
+    contains: [
+      DTS_ROOT_NODE,
+      DTS_REFERENCE,
+      DTS_KEYWORD,
+      DTS_LABEL,
+      DTS_NODE,
+      DTS_CELL_PROPERTY,
+      hljs.C_LINE_COMMENT_MODE,
+      hljs.C_BLOCK_COMMENT_MODE,
+      NUMBERS,
+      STRINGS,
+      PREPROCESSOR,
+      {
+        begin: hljs.IDENT_RE + '::',
+        keywords: ""
+      }
+    ]
+  };
+}
+
+module.exports = dts;

+ 43 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/dust.js

@@ -0,0 +1,43 @@
+/*
+Language: Dust
+Requires: xml.js
+Author: Michael Allen <michael.allen@benefitfocus.com>
+Description: Matcher for dust.js templates.
+Website: https://www.dustjs.com
+Category: template
+*/
+
+function dust(hljs) {
+  var EXPRESSION_KEYWORDS = 'if eq ne lt lte gt gte select default math sep';
+  return {
+    name: 'Dust',
+    aliases: ['dst'],
+    case_insensitive: true,
+    subLanguage: 'xml',
+    contains: [
+      {
+        className: 'template-tag',
+        begin: /\{[#\/]/, end: /\}/, illegal: /;/,
+        contains: [
+          {
+            className: 'name',
+            begin: /[a-zA-Z\.-]+/,
+            starts: {
+              endsWithParent: true, relevance: 0,
+              contains: [
+                hljs.QUOTE_STRING_MODE
+              ]
+            }
+          }
+        ]
+      },
+      {
+        className: 'template-variable',
+        begin: /\{/, end: /\}/, illegal: /;/,
+        keywords: EXPRESSION_KEYWORDS
+      }
+    ]
+  };
+}
+
+module.exports = dust;

+ 48 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/ebnf.js

@@ -0,0 +1,48 @@
+/*
+Language: Extended Backus-Naur Form
+Author: Alex McKibben <alex@nullscope.net>
+Website: https://en.wikipedia.org/wiki/Extended_Backus–Naur_form
+*/
+
+function ebnf(hljs) {
+    var commentMode = hljs.COMMENT(/\(\*/, /\*\)/);
+
+    var nonTerminalMode = {
+        className: "attribute",
+        begin: /^[ ]*[a-zA-Z][a-zA-Z-_]*([\s-_]+[a-zA-Z][a-zA-Z]*)*/
+    };
+
+    var specialSequenceMode = {
+        className: "meta",
+        begin: /\?.*\?/
+    };
+
+    var ruleBodyMode = {
+        begin: /=/, end: /[.;]/,
+        contains: [
+            commentMode,
+            specialSequenceMode,
+            {
+              // terminals
+              className: 'string',
+              variants: [
+                hljs.APOS_STRING_MODE,
+                hljs.QUOTE_STRING_MODE,
+                {begin: '`', end: '`'},
+              ]
+            },
+        ]
+    };
+
+    return {
+        name: 'Extended Backus-Naur Form',
+        illegal: /\S/,
+        contains: [
+            commentMode,
+            nonTerminalMode,
+            ruleBodyMode
+        ]
+    };
+}
+
+module.exports = ebnf;

+ 183 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/elixir.js

@@ -0,0 +1,183 @@
+/*
+Language: Elixir
+Author: Josh Adams <josh@isotope11.com>
+Description: language definition for Elixir source code files (.ex and .exs).  Based on ruby language support.
+Category: functional
+Website: https://elixir-lang.org
+*/
+
+function elixir(hljs) {
+  var ELIXIR_IDENT_RE = '[a-zA-Z_][a-zA-Z0-9_.]*(\\!|\\?)?';
+  var ELIXIR_METHOD_RE = '[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?';
+  var ELIXIR_KEYWORDS = {
+    $pattern: ELIXIR_IDENT_RE,
+    keyword: 'and false then defined module in return redo retry end for true self when ' +
+    'next until do begin unless nil break not case cond alias while ensure or ' +
+    'include use alias fn quote require import with|0'
+  };
+  var SUBST = {
+    className: 'subst',
+    begin: '#\\{', end: '}',
+    keywords: ELIXIR_KEYWORDS
+  };
+  var NUMBER = {
+    className: 'number',
+    begin: '(\\b0o[0-7_]+)|(\\b0b[01_]+)|(\\b0x[0-9a-fA-F_]+)|(-?\\b[1-9][0-9_]*(.[0-9_]+([eE][-+]?[0-9]+)?)?)',
+    relevance: 0
+  };
+  var SIGIL_DELIMITERS = '[/|([{<"\']';
+  var LOWERCASE_SIGIL = {
+    className: 'string',
+    begin: '~[a-z]' + '(?=' + SIGIL_DELIMITERS + ')',
+    contains: [
+      {
+        endsParent:true,
+        contains: [{
+          contains: [hljs.BACKSLASH_ESCAPE, SUBST],
+          variants: [
+            { begin: /"/, end: /"/ },
+            { begin: /'/, end: /'/ },
+            { begin: /\//, end: /\// },
+            { begin: /\|/, end: /\|/ },
+            { begin: /\(/, end: /\)/ },
+            { begin: /\[/, end: /\]/ },
+            { begin: /\{/, end: /\}/ },
+            { begin: /</, end: />/ }
+          ]
+        }]
+      },
+    ],
+  };
+
+  var UPCASE_SIGIL = {
+    className: 'string',
+    begin: '~[A-Z]' + '(?=' + SIGIL_DELIMITERS + ')',
+    contains: [
+      { begin: /"/, end: /"/ },
+      { begin: /'/, end: /'/ },
+      { begin: /\//, end: /\// },
+      { begin: /\|/, end: /\|/ },
+      { begin: /\(/, end: /\)/ },
+      { begin: /\[/, end: /\]/ },
+      { begin: /\{/, end: /\}/ },
+      { begin: /\</, end: /\>/ }
+    ]
+  };
+
+  var STRING = {
+    className: 'string',
+    contains: [hljs.BACKSLASH_ESCAPE, SUBST],
+    variants: [
+      {
+        begin: /"""/, end: /"""/,
+      },
+      {
+        begin: /'''/, end: /'''/,
+      },
+      {
+        begin: /~S"""/, end: /"""/,
+        contains: []
+      },
+      {
+        begin: /~S"/, end: /"/,
+        contains: []
+      },
+      {
+        begin: /~S'''/, end: /'''/,
+        contains: []
+      },
+      {
+        begin: /~S'/, end: /'/,
+        contains: []
+      },
+      {
+        begin: /'/, end: /'/
+      },
+      {
+        begin: /"/, end: /"/
+      },
+    ]
+  };
+  var FUNCTION = {
+    className: 'function',
+    beginKeywords: 'def defp defmacro', end: /\B\b/, // the mode is ended by the title
+    contains: [
+      hljs.inherit(hljs.TITLE_MODE, {
+        begin: ELIXIR_IDENT_RE,
+        endsParent: true
+      })
+    ]
+  };
+  var CLASS = hljs.inherit(FUNCTION, {
+    className: 'class',
+    beginKeywords: 'defimpl defmodule defprotocol defrecord', end: /\bdo\b|$|;/
+  });
+  var ELIXIR_DEFAULT_CONTAINS = [
+    STRING,
+    UPCASE_SIGIL,
+    LOWERCASE_SIGIL,
+    hljs.HASH_COMMENT_MODE,
+    CLASS,
+    FUNCTION,
+    {
+      begin: '::'
+    },
+    {
+      className: 'symbol',
+      begin: ':(?![\\s:])',
+      contains: [STRING, {begin: ELIXIR_METHOD_RE}],
+      relevance: 0
+    },
+    {
+      className: 'symbol',
+      begin: ELIXIR_IDENT_RE + ':(?!:)',
+      relevance: 0
+    },
+    NUMBER,
+    {
+      className: 'variable',
+      begin: '(\\$\\W)|((\\$|\\@\\@?)(\\w+))'
+    },
+    {
+      begin: '->'
+    },
+    { // regexp container
+      begin: '(' + hljs.RE_STARTERS_RE + ')\\s*',
+      contains: [
+        hljs.HASH_COMMENT_MODE,
+        {
+          // to prevent false regex triggers for the division function:
+          // /:
+          begin: /\/: (?=\d+\s*[,\]])/,
+          relevance: 0,
+          contains: [
+            NUMBER
+          ]
+        },
+        {
+          className: 'regexp',
+          illegal: '\\n',
+          contains: [hljs.BACKSLASH_ESCAPE, SUBST],
+          variants: [
+            {
+              begin: '/', end: '/[a-z]*'
+            },
+            {
+              begin: '%r\\[', end: '\\][a-z]*'
+            }
+          ]
+        }
+      ],
+      relevance: 0
+    }
+  ];
+  SUBST.contains = ELIXIR_DEFAULT_CONTAINS;
+
+  return {
+    name: 'Elixir',
+    keywords: ELIXIR_KEYWORDS,
+    contains: ELIXIR_DEFAULT_CONTAINS
+  };
+}
+
+module.exports = elixir;

+ 99 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/elm.js

@@ -0,0 +1,99 @@
+/*
+Language: Elm
+Author: Janis Voigtlaender <janis.voigtlaender@gmail.com>
+Website: https://elm-lang.org
+Category: functional
+*/
+
+function elm(hljs) {
+  var COMMENT = {
+    variants: [
+      hljs.COMMENT('--', '$'),
+      hljs.COMMENT(
+        '{-',
+        '-}',
+        {
+          contains: ['self']
+        }
+      )
+    ]
+  };
+
+  var CONSTRUCTOR = {
+    className: 'type',
+    begin: '\\b[A-Z][\\w\']*', // TODO: other constructors (built-in, infix).
+    relevance: 0
+  };
+
+  var LIST = {
+    begin: '\\(', end: '\\)',
+    illegal: '"',
+    contains: [
+      {className: 'type', begin: '\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?'},
+      COMMENT
+    ]
+  };
+
+  var RECORD = {
+    begin: '{', end: '}',
+    contains: LIST.contains
+  };
+
+  var CHARACTER = {
+    className: 'string',
+    begin: '\'\\\\?.', end: '\'',
+    illegal: '.'
+  };
+
+  return {
+    name: 'Elm',
+    keywords:
+      'let in if then else case of where module import exposing ' +
+      'type alias as infix infixl infixr port effect command subscription',
+    contains: [
+
+      // Top-level constructions.
+
+      {
+        beginKeywords: 'port effect module', end: 'exposing',
+        keywords: 'port effect module where command subscription exposing',
+        contains: [LIST, COMMENT],
+        illegal: '\\W\\.|;'
+      },
+      {
+        begin: 'import', end: '$',
+        keywords: 'import as exposing',
+        contains: [LIST, COMMENT],
+        illegal: '\\W\\.|;'
+      },
+      {
+        begin: 'type', end: '$',
+        keywords: 'type alias',
+        contains: [CONSTRUCTOR, LIST, RECORD, COMMENT]
+      },
+      {
+        beginKeywords: 'infix infixl infixr', end: '$',
+        contains: [hljs.C_NUMBER_MODE, COMMENT]
+      },
+      {
+        begin: 'port', end: '$',
+        keywords: 'port',
+        contains: [COMMENT]
+      },
+
+      // Literals and names.
+
+      CHARACTER,
+      hljs.QUOTE_STRING_MODE,
+      hljs.C_NUMBER_MODE,
+      CONSTRUCTOR,
+      hljs.inherit(hljs.TITLE_MODE, {begin: '^[_a-z][\\w\']*'}),
+      COMMENT,
+
+      {begin: '->|<-'} // No markup, relevance booster
+    ],
+    illegal: /;/
+  };
+}
+
+module.exports = elm;

+ 27 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/erb.js

@@ -0,0 +1,27 @@
+/*
+Language: ERB (Embedded Ruby)
+Requires: xml.js, ruby.js
+Author: Lucas Mazza <lucastmazza@gmail.com>
+Contributors: Kassio Borges <kassioborgesm@gmail.com>
+Description: "Bridge" language defining fragments of Ruby in HTML within <% .. %>
+Website: https://ruby-doc.org/stdlib-2.6.5/libdoc/erb/rdoc/ERB.html
+Category: template
+*/
+
+function erb(hljs) {
+  return {
+    name: 'ERB',
+    subLanguage: 'xml',
+    contains: [
+      hljs.COMMENT('<%#', '%>'),
+      {
+        begin: '<%[%=-]?', end: '[%-]?%>',
+        subLanguage: 'ruby',
+        excludeBegin: true,
+        excludeEnd: true
+      }
+    ]
+  };
+}
+
+module.exports = erb;

+ 55 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/erlang-repl.js

@@ -0,0 +1,55 @@
+/*
+Language: Erlang REPL
+Author: Sergey Ignatov <sergey@ignatov.spb.su>
+Website: https://www.erlang.org
+Category: functional
+*/
+
+function erlangRepl(hljs) {
+  return {
+    name: 'Erlang REPL',
+    keywords: {
+      built_in:
+        'spawn spawn_link self',
+      keyword:
+        'after and andalso|10 band begin bnot bor bsl bsr bxor case catch cond div end fun if ' +
+        'let not of or orelse|10 query receive rem try when xor'
+    },
+    contains: [
+      {
+        className: 'meta', begin: '^[0-9]+> ',
+        relevance: 10
+      },
+      hljs.COMMENT('%', '$'),
+      {
+        className: 'number',
+        begin: '\\b(\\d+(_\\d+)*#[a-fA-F0-9]+(_[a-fA-F0-9]+)*|\\d+(_\\d+)*(\\.\\d+(_\\d+)*)?([eE][-+]?\\d+)?)',
+        relevance: 0
+      },
+      hljs.APOS_STRING_MODE,
+      hljs.QUOTE_STRING_MODE,
+      {
+        begin: '\\?(::)?([A-Z]\\w*(::)?)+'
+      },
+      {
+        begin: '->'
+      },
+      {
+        begin: 'ok'
+      },
+      {
+        begin: '!'
+      },
+      {
+        begin: '(\\b[a-z\'][a-zA-Z0-9_\']*:[a-z\'][a-zA-Z0-9_\']*)|(\\b[a-z\'][a-zA-Z0-9_\']*)',
+        relevance: 0
+      },
+      {
+        begin: '[A-Z][a-zA-Z0-9_\']*',
+        relevance: 0
+      }
+    ]
+  };
+}
+
+module.exports = erlangRepl;

+ 157 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/erlang.js

@@ -0,0 +1,157 @@
+/*
+Language: Erlang
+Description: Erlang is a general-purpose functional language, with strict evaluation, single assignment, and dynamic typing.
+Author: Nikolay Zakharov <nikolay.desh@gmail.com>, Dmitry Kovega <arhibot@gmail.com>
+Website: https://www.erlang.org
+Category: functional
+*/
+
+function erlang(hljs) {
+  var BASIC_ATOM_RE = '[a-z\'][a-zA-Z0-9_\']*';
+  var FUNCTION_NAME_RE = '(' + BASIC_ATOM_RE + ':' + BASIC_ATOM_RE + '|' + BASIC_ATOM_RE + ')';
+  var ERLANG_RESERVED = {
+    keyword:
+      'after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun if ' +
+      'let not of orelse|10 query receive rem try when xor',
+    literal:
+      'false true'
+  };
+
+  var COMMENT = hljs.COMMENT('%', '$');
+  var NUMBER = {
+    className: 'number',
+    begin: '\\b(\\d+(_\\d+)*#[a-fA-F0-9]+(_[a-fA-F0-9]+)*|\\d+(_\\d+)*(\\.\\d+(_\\d+)*)?([eE][-+]?\\d+)?)',
+    relevance: 0
+  };
+  var NAMED_FUN = {
+    begin: 'fun\\s+' + BASIC_ATOM_RE + '/\\d+'
+  };
+  var FUNCTION_CALL = {
+    begin: FUNCTION_NAME_RE + '\\(', end: '\\)',
+    returnBegin: true,
+    relevance: 0,
+    contains: [
+      {
+        begin: FUNCTION_NAME_RE, relevance: 0
+      },
+      {
+        begin: '\\(', end: '\\)', endsWithParent: true,
+        returnEnd: true,
+        relevance: 0
+        // "contains" defined later
+      }
+    ]
+  };
+  var TUPLE = {
+    begin: '{', end: '}',
+    relevance: 0
+    // "contains" defined later
+  };
+  var VAR1 = {
+    begin: '\\b_([A-Z][A-Za-z0-9_]*)?',
+    relevance: 0
+  };
+  var VAR2 = {
+    begin: '[A-Z][a-zA-Z0-9_]*',
+    relevance: 0
+  };
+  var RECORD_ACCESS = {
+    begin: '#' + hljs.UNDERSCORE_IDENT_RE,
+    relevance: 0,
+    returnBegin: true,
+    contains: [
+      {
+        begin: '#' + hljs.UNDERSCORE_IDENT_RE,
+        relevance: 0
+      },
+      {
+        begin: '{', end: '}',
+        relevance: 0
+        // "contains" defined later
+      }
+    ]
+  };
+
+  var BLOCK_STATEMENTS = {
+    beginKeywords: 'fun receive if try case', end: 'end',
+    keywords: ERLANG_RESERVED
+  };
+  BLOCK_STATEMENTS.contains = [
+    COMMENT,
+    NAMED_FUN,
+    hljs.inherit(hljs.APOS_STRING_MODE, {className: ''}),
+    BLOCK_STATEMENTS,
+    FUNCTION_CALL,
+    hljs.QUOTE_STRING_MODE,
+    NUMBER,
+    TUPLE,
+    VAR1, VAR2,
+    RECORD_ACCESS
+  ];
+
+  var BASIC_MODES = [
+    COMMENT,
+    NAMED_FUN,
+    BLOCK_STATEMENTS,
+    FUNCTION_CALL,
+    hljs.QUOTE_STRING_MODE,
+    NUMBER,
+    TUPLE,
+    VAR1, VAR2,
+    RECORD_ACCESS
+  ];
+  FUNCTION_CALL.contains[1].contains = BASIC_MODES;
+  TUPLE.contains = BASIC_MODES;
+  RECORD_ACCESS.contains[1].contains = BASIC_MODES;
+
+  var PARAMS = {
+    className: 'params',
+    begin: '\\(', end: '\\)',
+    contains: BASIC_MODES
+  };
+  return {
+    name: 'Erlang',
+    aliases: ['erl'],
+    keywords: ERLANG_RESERVED,
+    illegal: '(</|\\*=|\\+=|-=|/\\*|\\*/|\\(\\*|\\*\\))',
+    contains: [
+      {
+        className: 'function',
+        begin: '^' + BASIC_ATOM_RE + '\\s*\\(', end: '->',
+        returnBegin: true,
+        illegal: '\\(|#|//|/\\*|\\\\|:|;',
+        contains: [
+          PARAMS,
+          hljs.inherit(hljs.TITLE_MODE, {begin: BASIC_ATOM_RE})
+        ],
+        starts: {
+          end: ';|\\.',
+          keywords: ERLANG_RESERVED,
+          contains: BASIC_MODES
+        }
+      },
+      COMMENT,
+      {
+        begin: '^-', end: '\\.',
+        relevance: 0,
+        excludeEnd: true,
+        returnBegin: true,
+        keywords: {
+          $pattern: '-' + hljs.IDENT_RE,
+          keyword: '-module -record -undef -export -ifdef -ifndef -author -copyright -doc -vsn ' +
+          '-import -include -include_lib -compile -define -else -endif -file -behaviour ' +
+          '-behavior -spec'
+        },
+        contains: [PARAMS]
+      },
+      NUMBER,
+      hljs.QUOTE_STRING_MODE,
+      RECORD_ACCESS,
+      VAR1, VAR2,
+      TUPLE,
+      {begin: /\.$/} // relevance booster
+    ]
+  };
+}
+
+module.exports = erlang;

File diff suppressed because it is too large
+ 15 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/excel.js


+ 36 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/fix.js

@@ -0,0 +1,36 @@
+/*
+Language: FIX
+Author: Brent Bradbury <brent@brentium.com>
+*/
+
+function fix(hljs) {
+  return {
+    name: 'FIX',
+    contains: [
+    {
+      begin: /[^\u2401\u0001]+/,
+      end: /[\u2401\u0001]/,
+      excludeEnd: true,
+      returnBegin: true,
+      returnEnd: false,
+      contains: [
+      {
+        begin: /([^\u2401\u0001=]+)/,
+        end: /=([^\u2401\u0001=]+)/,
+        returnEnd: true,
+        returnBegin: false,
+        className: 'attr'
+      },
+      {
+        begin: /=/,
+        end: /([\u2401\u0001])/,
+        excludeEnd: true,
+        excludeBegin: true,
+        className: 'string'
+      }]
+    }],
+    case_insensitive: true
+  };
+}
+
+module.exports = fix;

+ 54 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/flix.js

@@ -0,0 +1,54 @@
+/*
+ Language: Flix
+ Category: functional
+ Author: Magnus Madsen <mmadsen@uwaterloo.ca>
+ Website: https://flix.dev/
+ */
+
+function flix (hljs) {
+
+    var CHAR = {
+        className: 'string',
+        begin: /'(.|\\[xXuU][a-zA-Z0-9]+)'/
+    };
+
+    var STRING = {
+        className: 'string',
+        variants: [
+            {
+                begin: '"', end: '"'
+            }
+        ]
+    };
+
+    var NAME = {
+        className: 'title',
+        begin: /[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/
+    };
+
+    var METHOD = {
+        className: 'function',
+        beginKeywords: 'def',
+        end: /[:={\[(\n;]/,
+        excludeEnd: true,
+        contains: [NAME]
+    };
+
+    return {
+        name: 'Flix',
+        keywords: {
+            literal: 'true false',
+            keyword: 'case class def else enum if impl import in lat rel index let match namespace switch type yield with'
+        },
+        contains: [
+            hljs.C_LINE_COMMENT_MODE,
+            hljs.C_BLOCK_COMMENT_MODE,
+            CHAR,
+            STRING,
+            METHOD,
+            hljs.C_NUMBER_MODE
+        ]
+    };
+}
+
+module.exports = flix;

+ 107 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/fortran.js

@@ -0,0 +1,107 @@
+/*
+Language: Fortran
+Author: Anthony Scemama <scemama@irsamc.ups-tlse.fr>
+Website: https://en.wikipedia.org/wiki/Fortran
+Category: scientific
+*/
+
+function fortran(hljs) {
+  const PARAMS = {
+    className: 'params',
+    begin: '\\(', end: '\\)'
+  };
+
+  const COMMENT = {
+    variants: [
+      hljs.COMMENT('!', '$', {relevance: 0}),
+      // allow Fortran 77 style comments
+      hljs.COMMENT('^C', '$', {relevance: 0})
+    ]
+  };
+
+  const NUMBER = {
+    className: 'number',
+    // regex in both fortran and irpf90 should match
+    begin: '(?=\\b|\\+|\\-|\\.)(?:\\.|\\d+\\.?)\\d*([de][+-]?\\d+)?(_[a-z_\\d]+)?',
+    relevance: 0
+  };
+
+  const FUNCTION_DEF = {
+    className: 'function',
+    beginKeywords: 'subroutine function program',
+    illegal: '[${=\\n]',
+    contains: [hljs.UNDERSCORE_TITLE_MODE, PARAMS]
+  };
+
+  const STRING = {
+    className: 'string',
+    relevance: 0,
+    variants: [
+      hljs.APOS_STRING_MODE,
+      hljs.QUOTE_STRING_MODE
+    ]
+  };
+
+  const KEYWORDS = {
+    literal: '.False. .True.',
+    keyword: 'kind do concurrent local shared while private call intrinsic where elsewhere ' +
+      'type endtype endmodule endselect endinterface end enddo endif if forall endforall only contains default return stop then block endblock endassociate ' +
+      'public subroutine|10 function program .and. .or. .not. .le. .eq. .ge. .gt. .lt. ' +
+      'goto save else use module select case ' +
+      'access blank direct exist file fmt form formatted iostat name named nextrec number opened rec recl sequential status unformatted unit ' +
+      'continue format pause cycle exit ' +
+      'c_null_char c_alert c_backspace c_form_feed flush wait decimal round iomsg ' +
+      'synchronous nopass non_overridable pass protected volatile abstract extends import ' +
+      'non_intrinsic value deferred generic final enumerator class associate bind enum ' +
+      'c_int c_short c_long c_long_long c_signed_char c_size_t c_int8_t c_int16_t c_int32_t c_int64_t c_int_least8_t c_int_least16_t ' +
+      'c_int_least32_t c_int_least64_t c_int_fast8_t c_int_fast16_t c_int_fast32_t c_int_fast64_t c_intmax_t C_intptr_t c_float c_double ' +
+      'c_long_double c_float_complex c_double_complex c_long_double_complex c_bool c_char c_null_ptr c_null_funptr ' +
+      'c_new_line c_carriage_return c_horizontal_tab c_vertical_tab iso_c_binding c_loc c_funloc c_associated  c_f_pointer ' +
+      'c_ptr c_funptr iso_fortran_env character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor ' +
+      'numeric_storage_size output_unit c_f_procpointer ieee_arithmetic ieee_support_underflow_control ' +
+      'ieee_get_underflow_mode ieee_set_underflow_mode newunit contiguous recursive ' +
+      'pad position action delim readwrite eor advance nml interface procedure namelist include sequence elemental pure impure ' +
+      'integer real character complex logical codimension dimension allocatable|10 parameter ' +
+      'external implicit|10 none double precision assign intent optional pointer ' +
+      'target in out common equivalence data',
+    built_in: 'alog alog10 amax0 amax1 amin0 amin1 amod cabs ccos cexp clog csin csqrt dabs dacos dasin datan datan2 dcos dcosh ddim dexp dint ' +
+      'dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh float iabs idim idint idnint ifix isign max0 max1 min0 min1 sngl ' +
+      'algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama ' +
+      'iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod ' +
+      'qnint qsign qsin qsinh qsqrt qtan qtanh abs acos aimag aint anint asin atan atan2 char cmplx conjg cos cosh exp ichar index int log ' +
+      'log10 max min nint sign sin sinh sqrt tan tanh print write dim lge lgt lle llt mod nullify allocate deallocate ' +
+      'adjustl adjustr all allocated any associated bit_size btest ceiling count cshift date_and_time digits dot_product ' +
+      'eoshift epsilon exponent floor fraction huge iand ibclr ibits ibset ieor ior ishft ishftc lbound len_trim matmul ' +
+      'maxexponent maxloc maxval merge minexponent minloc minval modulo mvbits nearest pack present product ' +
+      'radix random_number random_seed range repeat reshape rrspacing scale scan selected_int_kind selected_real_kind ' +
+      'set_exponent shape size spacing spread sum system_clock tiny transpose trim ubound unpack verify achar iachar transfer ' +
+      'dble entry dprod cpu_time command_argument_count get_command get_command_argument get_environment_variable is_iostat_end ' +
+      'ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode ' +
+      'is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_of '  +
+      'acosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2 ' +
+      'atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits ' +
+      'bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr ' +
+      'num_images parity popcnt poppar shifta shiftl shiftr this_image sync change team co_broadcast co_max co_min co_sum co_reduce'
+  };
+  return {
+    name: 'Fortran',
+    case_insensitive: true,
+    aliases: ['f90', 'f95'],
+    keywords: KEYWORDS,
+    illegal: /\/\*/,
+    contains: [
+      STRING,
+      FUNCTION_DEF,
+      // allow `C = value` for assignments so they aren't misdetected
+      // as Fortran 77 style comments
+      {
+        begin: /^C\s*=(?!=)/,
+        relevance: 0,
+      },
+      COMMENT,
+      NUMBER
+    ]
+  };
+}
+
+module.exports = fortran;

+ 68 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/fsharp.js

@@ -0,0 +1,68 @@
+/*
+Language: F#
+Author: Jonas Follesø <jonas@follesoe.no>
+Contributors: Troy Kershaw <hello@troykershaw.com>, Henrik Feldt <henrik@haf.se>
+Website: https://docs.microsoft.com/en-us/dotnet/fsharp/
+Category: functional
+*/
+function fsharp(hljs) {
+  var TYPEPARAM = {
+    begin: '<', end: '>',
+    contains: [
+      hljs.inherit(hljs.TITLE_MODE, {begin: /'[a-zA-Z0-9_]+/})
+    ]
+  };
+
+  return {
+    name: 'F#',
+    aliases: ['fs'],
+    keywords:
+      'abstract and as assert base begin class default delegate do done ' +
+      'downcast downto elif else end exception extern false finally for ' +
+      'fun function global if in inherit inline interface internal lazy let ' +
+      'match member module mutable namespace new null of open or ' +
+      'override private public rec return sig static struct then to ' +
+      'true try type upcast use val void when while with yield',
+    illegal: /\/\*/,
+    contains: [
+      {
+        // monad builder keywords (matches before non-bang kws)
+        className: 'keyword',
+        begin: /\b(yield|return|let|do)!/
+      },
+      {
+        className: 'string',
+        begin: '@"', end: '"',
+        contains: [{begin: '""'}]
+      },
+      {
+        className: 'string',
+        begin: '"""', end: '"""'
+      },
+      hljs.COMMENT('\\(\\*', '\\*\\)'),
+      {
+        className: 'class',
+        beginKeywords: 'type', end: '\\(|=|$', excludeEnd: true,
+        contains: [
+          hljs.UNDERSCORE_TITLE_MODE,
+          TYPEPARAM
+        ]
+      },
+      {
+        className: 'meta',
+        begin: '\\[<', end: '>\\]',
+        relevance: 10
+      },
+      {
+        className: 'symbol',
+        begin: '\\B(\'[A-Za-z])\\b',
+        contains: [hljs.BACKSLASH_ESCAPE]
+      },
+      hljs.C_LINE_COMMENT_MODE,
+      hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}),
+      hljs.C_NUMBER_MODE
+    ]
+  };
+}
+
+module.exports = fsharp;

+ 165 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/gams.js

@@ -0,0 +1,165 @@
+/*
+ Language: GAMS
+ Author: Stefan Bechert <stefan.bechert@gmx.net>
+ Contributors: Oleg Efimov <efimovov@gmail.com>, Mikko Kouhia <mikko.kouhia@iki.fi>
+ Description: The General Algebraic Modeling System language
+ Website: https://www.gams.com
+ Category: scientific
+ */
+
+function gams (hljs) {
+  var KEYWORDS = {
+    keyword:
+      'abort acronym acronyms alias all and assign binary card diag display ' +
+      'else eq file files for free ge gt if integer le loop lt maximizing ' +
+      'minimizing model models ne negative no not option options or ord ' +
+      'positive prod put putpage puttl repeat sameas semicont semiint smax ' +
+      'smin solve sos1 sos2 sum system table then until using while xor yes',
+    literal: 'eps inf na',
+    built_in:
+      'abs arccos arcsin arctan arctan2 Beta betaReg binomial ceil centropy ' +
+      'cos cosh cvPower div div0 eDist entropy errorf execSeed exp fact ' +
+      'floor frac gamma gammaReg log logBeta logGamma log10 log2 mapVal max ' +
+      'min mod ncpCM ncpF ncpVUpow ncpVUsin normal pi poly power ' +
+      'randBinomial randLinear randTriangle round rPower sigmoid sign ' +
+      'signPower sin sinh slexp sllog10 slrec sqexp sqlog10 sqr sqrec sqrt ' +
+      'tan tanh trunc uniform uniformInt vcPower bool_and bool_eqv bool_imp ' +
+      'bool_not bool_or bool_xor ifThen rel_eq rel_ge rel_gt rel_le rel_lt ' +
+      'rel_ne gday gdow ghour gleap gmillisec gminute gmonth gsecond gyear ' +
+      'jdate jnow jstart jtime errorLevel execError gamsRelease gamsVersion ' +
+      'handleCollect handleDelete handleStatus handleSubmit heapFree ' +
+      'heapLimit heapSize jobHandle jobKill jobStatus jobTerminate ' +
+      'licenseLevel licenseStatus maxExecError sleep timeClose timeComp ' +
+      'timeElapsed timeExec timeStart'
+  };
+  var PARAMS = {
+    className: 'params',
+    begin: /\(/, end: /\)/,
+    excludeBegin: true,
+    excludeEnd: true,
+  };
+  var SYMBOLS = {
+    className: 'symbol',
+    variants: [
+      {begin: /\=[lgenxc]=/},
+      {begin: /\$/},
+    ]
+  };
+  var QSTR = { // One-line quoted comment string
+    className: 'comment',
+    variants: [
+      {begin: '\'', end: '\''},
+      {begin: '"', end: '"'},
+    ],
+    illegal: '\\n',
+    contains: [hljs.BACKSLASH_ESCAPE]
+  };
+  var ASSIGNMENT = {
+    begin: '/',
+    end: '/',
+    keywords: KEYWORDS,
+    contains: [
+      QSTR,
+      hljs.C_LINE_COMMENT_MODE,
+      hljs.C_BLOCK_COMMENT_MODE,
+      hljs.QUOTE_STRING_MODE,
+      hljs.APOS_STRING_MODE,
+      hljs.C_NUMBER_MODE,
+    ],
+  };
+  var DESCTEXT = { // Parameter/set/variable description text
+    begin: /[a-z][a-z0-9_]*(\([a-z0-9_, ]*\))?[ \t]+/,
+    excludeBegin: true,
+    end: '$',
+    endsWithParent: true,
+    contains: [
+      QSTR,
+      ASSIGNMENT,
+      {
+        className: 'comment',
+        begin: /([ ]*[a-z0-9&#*=?@>\\<:\-,()$\[\]_.{}!+%^]+)+/,
+        relevance: 0
+      },
+    ],
+  };
+
+  return {
+    name: 'GAMS',
+    aliases: ['gms'],
+    case_insensitive: true,
+    keywords: KEYWORDS,
+    contains: [
+      hljs.COMMENT(/^\$ontext/, /^\$offtext/),
+      {
+        className: 'meta',
+        begin: '^\\$[a-z0-9]+',
+        end: '$',
+        returnBegin: true,
+        contains: [
+          {
+            className: 'meta-keyword',
+            begin: '^\\$[a-z0-9]+',
+          }
+        ]
+      },
+      hljs.COMMENT('^\\*', '$'),
+      hljs.C_LINE_COMMENT_MODE,
+      hljs.C_BLOCK_COMMENT_MODE,
+      hljs.QUOTE_STRING_MODE,
+      hljs.APOS_STRING_MODE,
+      // Declarations
+      {
+        beginKeywords:
+          'set sets parameter parameters variable variables ' +
+          'scalar scalars equation equations',
+        end: ';',
+        contains: [
+          hljs.COMMENT('^\\*', '$'),
+          hljs.C_LINE_COMMENT_MODE,
+          hljs.C_BLOCK_COMMENT_MODE,
+          hljs.QUOTE_STRING_MODE,
+          hljs.APOS_STRING_MODE,
+          ASSIGNMENT,
+          DESCTEXT,
+        ]
+      },
+      { // table environment
+        beginKeywords: 'table',
+        end: ';',
+        returnBegin: true,
+        contains: [
+          { // table header row
+            beginKeywords: 'table',
+            end: '$',
+            contains: [DESCTEXT],
+          },
+          hljs.COMMENT('^\\*', '$'),
+          hljs.C_LINE_COMMENT_MODE,
+          hljs.C_BLOCK_COMMENT_MODE,
+          hljs.QUOTE_STRING_MODE,
+          hljs.APOS_STRING_MODE,
+          hljs.C_NUMBER_MODE,
+          // Table does not contain DESCTEXT or ASSIGNMENT
+        ]
+      },
+      // Function definitions
+      {
+        className: 'function',
+        begin: /^[a-z][a-z0-9_,\-+' ()$]+\.{2}/,
+        returnBegin: true,
+        contains: [
+              { // Function title
+                className: 'title',
+                begin: /^[a-z0-9_]+/,
+              },
+              PARAMS,
+              SYMBOLS,
+            ],
+      },
+      hljs.C_NUMBER_MODE,
+      SYMBOLS,
+    ]
+  };
+}
+
+module.exports = gams;

+ 300 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/gauss.js

@@ -0,0 +1,300 @@
+/*
+Language: GAUSS
+Author: Matt Evans <matt@aptech.com>
+Description: GAUSS Mathematical and Statistical language
+Website: https://www.aptech.com
+Category: scientific
+*/
+function gauss(hljs) {
+  var KEYWORDS = {
+    keyword:  'bool break call callexe checkinterrupt clear clearg closeall cls comlog compile ' +
+              'continue create debug declare delete disable dlibrary dllcall do dos ed edit else ' +
+              'elseif enable end endfor endif endp endo errorlog errorlogat expr external fn ' +
+              'for format goto gosub graph if keyword let lib library line load loadarray loadexe ' +
+              'loadf loadk loadm loadp loads loadx local locate loopnextindex lprint lpwidth lshow ' +
+              'matrix msym ndpclex new open output outwidth plot plotsym pop prcsn print ' +
+              'printdos proc push retp return rndcon rndmod rndmult rndseed run save saveall screen ' +
+              'scroll setarray show sparse stop string struct system trace trap threadfor ' +
+              'threadendfor threadbegin threadjoin threadstat threadend until use while winprint ' +
+              'ne ge le gt lt and xor or not eq eqv',
+    built_in: 'abs acf aconcat aeye amax amean AmericanBinomCall AmericanBinomCall_Greeks AmericanBinomCall_ImpVol ' +
+              'AmericanBinomPut AmericanBinomPut_Greeks AmericanBinomPut_ImpVol AmericanBSCall AmericanBSCall_Greeks ' +
+              'AmericanBSCall_ImpVol AmericanBSPut AmericanBSPut_Greeks AmericanBSPut_ImpVol amin amult annotationGetDefaults ' +
+              'annotationSetBkd annotationSetFont annotationSetLineColor annotationSetLineStyle annotationSetLineThickness ' +
+              'annualTradingDays arccos arcsin areshape arrayalloc arrayindex arrayinit arraytomat asciiload asclabel astd ' +
+              'astds asum atan atan2 atranspose axmargin balance band bandchol bandcholsol bandltsol bandrv bandsolpd bar ' +
+              'base10 begwind besselj bessely beta box boxcox cdfBeta cdfBetaInv cdfBinomial cdfBinomialInv cdfBvn cdfBvn2 ' +
+              'cdfBvn2e cdfCauchy cdfCauchyInv cdfChic cdfChii cdfChinc cdfChincInv cdfExp cdfExpInv cdfFc cdfFnc cdfFncInv ' +
+              'cdfGam cdfGenPareto cdfHyperGeo cdfLaplace cdfLaplaceInv cdfLogistic cdfLogisticInv cdfmControlCreate cdfMvn ' +
+              'cdfMvn2e cdfMvnce cdfMvne cdfMvt2e cdfMvtce cdfMvte cdfN cdfN2 cdfNc cdfNegBinomial cdfNegBinomialInv cdfNi ' +
+              'cdfPoisson cdfPoissonInv cdfRayleigh cdfRayleighInv cdfTc cdfTci cdfTnc cdfTvn cdfWeibull cdfWeibullInv cdir ' +
+              'ceil ChangeDir chdir chiBarSquare chol choldn cholsol cholup chrs close code cols colsf combinate combinated ' +
+              'complex con cond conj cons ConScore contour conv convertsatostr convertstrtosa corrm corrms corrvc corrx corrxs ' +
+              'cos cosh counts countwts crossprd crout croutp csrcol csrlin csvReadM csvReadSA cumprodc cumsumc curve cvtos ' +
+              'datacreate datacreatecomplex datalist dataload dataloop dataopen datasave date datestr datestring datestrymd ' +
+              'dayinyr dayofweek dbAddDatabase dbClose dbCommit dbCreateQuery dbExecQuery dbGetConnectOptions dbGetDatabaseName ' +
+              'dbGetDriverName dbGetDrivers dbGetHostName dbGetLastErrorNum dbGetLastErrorText dbGetNumericalPrecPolicy ' +
+              'dbGetPassword dbGetPort dbGetTableHeaders dbGetTables dbGetUserName dbHasFeature dbIsDriverAvailable dbIsOpen ' +
+              'dbIsOpenError dbOpen dbQueryBindValue dbQueryClear dbQueryCols dbQueryExecPrepared dbQueryFetchAllM dbQueryFetchAllSA ' +
+              'dbQueryFetchOneM dbQueryFetchOneSA dbQueryFinish dbQueryGetBoundValue dbQueryGetBoundValues dbQueryGetField ' +
+              'dbQueryGetLastErrorNum dbQueryGetLastErrorText dbQueryGetLastInsertID dbQueryGetLastQuery dbQueryGetPosition ' +
+              'dbQueryIsActive dbQueryIsForwardOnly dbQueryIsNull dbQueryIsSelect dbQueryIsValid dbQueryPrepare dbQueryRows ' +
+              'dbQuerySeek dbQuerySeekFirst dbQuerySeekLast dbQuerySeekNext dbQuerySeekPrevious dbQuerySetForwardOnly ' +
+              'dbRemoveDatabase dbRollback dbSetConnectOptions dbSetDatabaseName dbSetHostName dbSetNumericalPrecPolicy ' +
+              'dbSetPort dbSetUserName dbTransaction DeleteFile delif delrows denseToSp denseToSpRE denToZero design det detl ' +
+              'dfft dffti diag diagrv digamma doswin DOSWinCloseall DOSWinOpen dotfeq dotfeqmt dotfge dotfgemt dotfgt dotfgtmt ' +
+              'dotfle dotflemt dotflt dotfltmt dotfne dotfnemt draw drop dsCreate dstat dstatmt dstatmtControlCreate dtdate dtday ' +
+              'dttime dttodtv dttostr dttoutc dtvnormal dtvtodt dtvtoutc dummy dummybr dummydn eig eigh eighv eigv elapsedTradingDays ' +
+              'endwind envget eof eqSolve eqSolvemt eqSolvemtControlCreate eqSolvemtOutCreate eqSolveset erf erfc erfccplx erfcplx error ' +
+              'etdays ethsec etstr EuropeanBinomCall EuropeanBinomCall_Greeks EuropeanBinomCall_ImpVol EuropeanBinomPut ' +
+              'EuropeanBinomPut_Greeks EuropeanBinomPut_ImpVol EuropeanBSCall EuropeanBSCall_Greeks EuropeanBSCall_ImpVol ' +
+              'EuropeanBSPut EuropeanBSPut_Greeks EuropeanBSPut_ImpVol exctsmpl exec execbg exp extern eye fcheckerr fclearerr feq ' +
+              'feqmt fflush fft ffti fftm fftmi fftn fge fgemt fgets fgetsa fgetsat fgetst fgt fgtmt fileinfo filesa fle flemt ' +
+              'floor flt fltmt fmod fne fnemt fonts fopen formatcv formatnv fputs fputst fseek fstrerror ftell ftocv ftos ftostrC ' +
+              'gamma gammacplx gammaii gausset gdaAppend gdaCreate gdaDStat gdaDStatMat gdaGetIndex gdaGetName gdaGetNames gdaGetOrders ' +
+              'gdaGetType gdaGetTypes gdaGetVarInfo gdaIsCplx gdaLoad gdaPack gdaRead gdaReadByIndex gdaReadSome gdaReadSparse ' +
+              'gdaReadStruct gdaReportVarInfo gdaSave gdaUpdate gdaUpdateAndPack gdaVars gdaWrite gdaWrite32 gdaWriteSome getarray ' +
+              'getdims getf getGAUSShome getmatrix getmatrix4D getname getnamef getNextTradingDay getNextWeekDay getnr getorders ' +
+              'getpath getPreviousTradingDay getPreviousWeekDay getRow getscalar3D getscalar4D getTrRow getwind glm gradcplx gradMT ' +
+              'gradMTm gradMTT gradMTTm gradp graphprt graphset hasimag header headermt hess hessMT hessMTg hessMTgw hessMTm ' +
+              'hessMTmw hessMTT hessMTTg hessMTTgw hessMTTm hessMTw hessp hist histf histp hsec imag indcv indexcat indices indices2 ' +
+              'indicesf indicesfn indnv indsav integrate1d integrateControlCreate intgrat2 intgrat3 inthp1 inthp2 inthp3 inthp4 ' +
+              'inthpControlCreate intquad1 intquad2 intquad3 intrleav intrleavsa intrsect intsimp inv invpd invswp iscplx iscplxf ' +
+              'isden isinfnanmiss ismiss key keyav keyw lag lag1 lagn lapEighb lapEighi lapEighvb lapEighvi lapgEig lapgEigh lapgEighv ' +
+              'lapgEigv lapgSchur lapgSvdcst lapgSvds lapgSvdst lapSvdcusv lapSvds lapSvdusv ldlp ldlsol linSolve listwise ln lncdfbvn ' +
+              'lncdfbvn2 lncdfmvn lncdfn lncdfn2 lncdfnc lnfact lngammacplx lnpdfmvn lnpdfmvt lnpdfn lnpdft loadd loadstruct loadwind ' +
+              'loess loessmt loessmtControlCreate log loglog logx logy lower lowmat lowmat1 ltrisol lu lusol machEpsilon make makevars ' +
+              'makewind margin matalloc matinit mattoarray maxbytes maxc maxindc maxv maxvec mbesselei mbesselei0 mbesselei1 mbesseli ' +
+              'mbesseli0 mbesseli1 meanc median mergeby mergevar minc minindc minv miss missex missrv moment momentd movingave ' +
+              'movingaveExpwgt movingaveWgt nextindex nextn nextnevn nextwind ntos null null1 numCombinations ols olsmt olsmtControlCreate ' +
+              'olsqr olsqr2 olsqrmt ones optn optnevn orth outtyp pacf packedToSp packr parse pause pdfCauchy pdfChi pdfExp pdfGenPareto ' +
+              'pdfHyperGeo pdfLaplace pdfLogistic pdfn pdfPoisson pdfRayleigh pdfWeibull pi pinv pinvmt plotAddArrow plotAddBar plotAddBox ' +
+              'plotAddHist plotAddHistF plotAddHistP plotAddPolar plotAddScatter plotAddShape plotAddTextbox plotAddTS plotAddXY plotArea ' +
+              'plotBar plotBox plotClearLayout plotContour plotCustomLayout plotGetDefaults plotHist plotHistF plotHistP plotLayout ' +
+              'plotLogLog plotLogX plotLogY plotOpenWindow plotPolar plotSave plotScatter plotSetAxesPen plotSetBar plotSetBarFill ' +
+              'plotSetBarStacked plotSetBkdColor plotSetFill plotSetGrid plotSetLegend plotSetLineColor plotSetLineStyle plotSetLineSymbol ' +
+              'plotSetLineThickness plotSetNewWindow plotSetTitle plotSetWhichYAxis plotSetXAxisShow plotSetXLabel plotSetXRange ' +
+              'plotSetXTicInterval plotSetXTicLabel plotSetYAxisShow plotSetYLabel plotSetYRange plotSetZAxisShow plotSetZLabel ' +
+              'plotSurface plotTS plotXY polar polychar polyeval polygamma polyint polymake polymat polymroot polymult polyroot ' +
+              'pqgwin previousindex princomp printfm printfmt prodc psi putarray putf putvals pvCreate pvGetIndex pvGetParNames ' +
+              'pvGetParVector pvLength pvList pvPack pvPacki pvPackm pvPackmi pvPacks pvPacksi pvPacksm pvPacksmi pvPutParVector ' +
+              'pvTest pvUnpack QNewton QNewtonmt QNewtonmtControlCreate QNewtonmtOutCreate QNewtonSet QProg QProgmt QProgmtInCreate ' +
+              'qqr qqre qqrep qr qre qrep qrsol qrtsol qtyr qtyre qtyrep quantile quantiled qyr qyre qyrep qz rank rankindx readr ' +
+              'real reclassify reclassifyCuts recode recserar recsercp recserrc rerun rescale reshape rets rev rfft rffti rfftip rfftn ' +
+              'rfftnp rfftp rndBernoulli rndBeta rndBinomial rndCauchy rndChiSquare rndCon rndCreateState rndExp rndGamma rndGeo rndGumbel ' +
+              'rndHyperGeo rndi rndKMbeta rndKMgam rndKMi rndKMn rndKMnb rndKMp rndKMu rndKMvm rndLaplace rndLCbeta rndLCgam rndLCi rndLCn ' +
+              'rndLCnb rndLCp rndLCu rndLCvm rndLogNorm rndMTu rndMVn rndMVt rndn rndnb rndNegBinomial rndp rndPoisson rndRayleigh ' +
+              'rndStateSkip rndu rndvm rndWeibull rndWishart rotater round rows rowsf rref sampleData satostrC saved saveStruct savewind ' +
+              'scale scale3d scalerr scalinfnanmiss scalmiss schtoc schur searchsourcepath seekr select selif seqa seqm setdif setdifsa ' +
+              'setvars setvwrmode setwind shell shiftr sin singleindex sinh sleep solpd sortc sortcc sortd sorthc sorthcc sortind ' +
+              'sortindc sortmc sortr sortrc spBiconjGradSol spChol spConjGradSol spCreate spDenseSubmat spDiagRvMat spEigv spEye spLDL ' +
+              'spline spLU spNumNZE spOnes spreadSheetReadM spreadSheetReadSA spreadSheetWrite spScale spSubmat spToDense spTrTDense ' +
+              'spTScalar spZeros sqpSolve sqpSolveMT sqpSolveMTControlCreate sqpSolveMTlagrangeCreate sqpSolveMToutCreate sqpSolveSet ' +
+              'sqrt statements stdc stdsc stocv stof strcombine strindx strlen strput strrindx strsect strsplit strsplitPad strtodt ' +
+              'strtof strtofcplx strtriml strtrimr strtrunc strtruncl strtruncpad strtruncr submat subscat substute subvec sumc sumr ' +
+              'surface svd svd1 svd2 svdcusv svds svdusv sysstate tab tan tanh tempname ' +
+              'time timedt timestr timeutc title tkf2eps tkf2ps tocart todaydt toeplitz token topolar trapchk ' +
+              'trigamma trimr trunc type typecv typef union unionsa uniqindx uniqindxsa unique uniquesa upmat upmat1 upper utctodt ' +
+              'utctodtv utrisol vals varCovMS varCovXS varget vargetl varmall varmares varput varputl vartypef vcm vcms vcx vcxs ' +
+              'vec vech vecr vector vget view viewxyz vlist vnamecv volume vput vread vtypecv wait waitc walkindex where window ' +
+              'writer xlabel xlsGetSheetCount xlsGetSheetSize xlsGetSheetTypes xlsMakeRange xlsReadM xlsReadSA xlsWrite xlsWriteM ' +
+              'xlsWriteSA xpnd xtics xy xyz ylabel ytics zeros zeta zlabel ztics cdfEmpirical dot h5create h5open h5read h5readAttribute ' +
+              'h5write h5writeAttribute ldl plotAddErrorBar plotAddSurface plotCDFEmpirical plotSetColormap plotSetContourLabels ' +
+              'plotSetLegendFont plotSetTextInterpreter plotSetXTicCount plotSetYTicCount plotSetZLevels powerm strjoin sylvester ' +
+              'strtrim',
+    literal: 'DB_AFTER_LAST_ROW DB_ALL_TABLES DB_BATCH_OPERATIONS DB_BEFORE_FIRST_ROW DB_BLOB DB_EVENT_NOTIFICATIONS ' +
+             'DB_FINISH_QUERY DB_HIGH_PRECISION DB_LAST_INSERT_ID DB_LOW_PRECISION_DOUBLE DB_LOW_PRECISION_INT32 ' +
+             'DB_LOW_PRECISION_INT64 DB_LOW_PRECISION_NUMBERS DB_MULTIPLE_RESULT_SETS DB_NAMED_PLACEHOLDERS ' +
+             'DB_POSITIONAL_PLACEHOLDERS DB_PREPARED_QUERIES DB_QUERY_SIZE DB_SIMPLE_LOCKING DB_SYSTEM_TABLES DB_TABLES ' +
+             'DB_TRANSACTIONS DB_UNICODE DB_VIEWS __STDIN __STDOUT __STDERR __FILE_DIR'
+  };
+
+
+  var AT_COMMENT_MODE = hljs.COMMENT('@', '@');
+
+  var PREPROCESSOR =
+  {
+    className: 'meta',
+    begin: '#', end: '$',
+    keywords: {'meta-keyword': 'define definecs|10 undef ifdef ifndef iflight ifdllcall ifmac ifos2win ifunix else endif lineson linesoff srcfile srcline'},
+    contains: [
+      {
+        begin: /\\\n/, relevance: 0
+      },
+      {
+        beginKeywords: 'include', end: '$',
+        keywords: {'meta-keyword': 'include'},
+        contains: [
+          {
+            className: 'meta-string',
+            begin: '"', end: '"',
+            illegal: '\\n'
+          }
+        ]
+      },
+      hljs.C_LINE_COMMENT_MODE,
+      hljs.C_BLOCK_COMMENT_MODE,
+      AT_COMMENT_MODE,
+    ]
+  };
+
+  var STRUCT_TYPE =
+  {
+    begin: /\bstruct\s+/,
+    end: /\s/,
+    keywords: "struct",
+    contains: [
+      {
+        className: "type",
+        begin: hljs.UNDERSCORE_IDENT_RE,
+        relevance: 0,
+      },
+    ],
+  };
+
+  // only for definitions
+  var PARSE_PARAMS = [
+    {
+      className: 'params',
+      begin: /\(/, end: /\)/,
+      excludeBegin: true,
+      excludeEnd: true,
+      endsWithParent: true,
+      relevance: 0,
+      contains: [
+        { // dots
+          className: 'literal',
+          begin: /\.\.\./,
+        },
+        hljs.C_NUMBER_MODE,
+        hljs.C_BLOCK_COMMENT_MODE,
+        AT_COMMENT_MODE,
+        STRUCT_TYPE,
+      ]
+    }
+  ];
+
+  var FUNCTION_DEF =
+  {
+    className: "title",
+    begin: hljs.UNDERSCORE_IDENT_RE,
+    relevance: 0,
+  };
+
+  var DEFINITION = function (beginKeywords, end, inherits) {
+    var mode = hljs.inherit(
+      {
+        className: "function",
+        beginKeywords: beginKeywords,
+        end: end,
+        excludeEnd: true,
+        contains: [].concat(PARSE_PARAMS),
+      },
+      inherits || {}
+    );
+    mode.contains.push(FUNCTION_DEF);
+    mode.contains.push(hljs.C_NUMBER_MODE);
+    mode.contains.push(hljs.C_BLOCK_COMMENT_MODE);
+    mode.contains.push(AT_COMMENT_MODE);
+    return mode;
+  };
+
+  var BUILT_IN_REF =
+  { // these are explicitly named internal function calls
+    className: 'built_in',
+    begin: '\\b(' + KEYWORDS.built_in.split(' ').join('|') + ')\\b',
+  };
+
+  var STRING_REF =
+  {
+    className: 'string',
+    begin: '"', end: '"',
+    contains: [hljs.BACKSLASH_ESCAPE],
+    relevance: 0,
+  };
+
+  var FUNCTION_REF =
+  {
+    //className: "fn_ref",
+    begin: hljs.UNDERSCORE_IDENT_RE + '\\s*\\(',
+    returnBegin: true,
+    keywords: KEYWORDS,
+    relevance: 0,
+    contains: [
+      {
+        beginKeywords: KEYWORDS.keyword,
+      },
+      BUILT_IN_REF,
+      { // ambiguously named function calls get a relevance of 0
+        className: 'built_in',
+        begin: hljs.UNDERSCORE_IDENT_RE,
+        relevance: 0,
+      },
+    ],
+  };
+
+  var FUNCTION_REF_PARAMS =
+  {
+    //className: "fn_ref_params",
+    begin: /\(/,
+    end: /\)/,
+    relevance: 0,
+    keywords: { built_in: KEYWORDS.built_in, literal: KEYWORDS.literal },
+    contains: [
+      hljs.C_NUMBER_MODE,
+      hljs.C_BLOCK_COMMENT_MODE,
+      AT_COMMENT_MODE,
+      BUILT_IN_REF,
+      FUNCTION_REF,
+      STRING_REF,
+      'self',
+    ],
+  };
+
+  FUNCTION_REF.contains.push(FUNCTION_REF_PARAMS);
+
+  return {
+    name: 'GAUSS',
+    aliases: ['gss'],
+    case_insensitive: true, // language is case-insensitive
+    keywords: KEYWORDS,
+    illegal: /(\{[%#]|[%#]\}| <- )/,
+    contains: [
+      hljs.C_NUMBER_MODE,
+      hljs.C_LINE_COMMENT_MODE,
+      hljs.C_BLOCK_COMMENT_MODE,
+      AT_COMMENT_MODE,
+      STRING_REF,
+      PREPROCESSOR,
+      {
+        className: 'keyword',
+        begin: /\bexternal (matrix|string|array|sparse matrix|struct|proc|keyword|fn)/,
+      },
+      DEFINITION('proc keyword', ';'),
+      DEFINITION('fn', '='),
+      {
+        beginKeywords: 'for threadfor',
+        end: /;/,
+        //end: /\(/,
+        relevance: 0,
+        contains: [
+          hljs.C_BLOCK_COMMENT_MODE,
+          AT_COMMENT_MODE,
+          FUNCTION_REF_PARAMS,
+        ],
+      },
+      { // custom method guard
+        // excludes method names from keyword processing
+        variants: [
+          { begin: hljs.UNDERSCORE_IDENT_RE + '\\.' + hljs.UNDERSCORE_IDENT_RE, },
+          { begin: hljs.UNDERSCORE_IDENT_RE + '\\s*=', },
+        ],
+        relevance: 0,
+      },
+      FUNCTION_REF,
+      STRUCT_TYPE,
+    ]
+  };
+}
+
+module.exports = gauss;

+ 77 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/gcode.js

@@ -0,0 +1,77 @@
+/*
+ Language: G-code (ISO 6983)
+ Contributors: Adam Joseph Cook <adam.joseph.cook@gmail.com>
+ Description: G-code syntax highlighter for Fanuc and other common CNC machine tool controls.
+ Website: https://www.sis.se/api/document/preview/911952/
+ */
+
+function gcode(hljs) {
+    var GCODE_IDENT_RE = '[A-Z_][A-Z0-9_.]*';
+    var GCODE_CLOSE_RE = '\\%';
+    var GCODE_KEYWORDS = {
+      $pattern: GCODE_IDENT_RE,
+      keyword: 'IF DO WHILE ENDWHILE CALL ENDIF SUB ENDSUB GOTO REPEAT ENDREPEAT ' +
+      'EQ LT GT NE GE LE OR XOR'
+    };
+    var GCODE_START = {
+        className: 'meta',
+        begin: '([O])([0-9]+)'
+    };
+    var GCODE_CODE = [
+        hljs.C_LINE_COMMENT_MODE,
+        hljs.C_BLOCK_COMMENT_MODE,
+        hljs.COMMENT(/\(/, /\)/),
+        hljs.inherit(hljs.C_NUMBER_MODE, {begin: '([-+]?([0-9]*\\.?[0-9]+\\.?))|' + hljs.C_NUMBER_RE}),
+        hljs.inherit(hljs.APOS_STRING_MODE, {illegal: null}),
+        hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null}),
+        {
+            className: 'name',
+            begin: '([G])([0-9]+\\.?[0-9]?)'
+        },
+        {
+            className: 'name',
+            begin: '([M])([0-9]+\\.?[0-9]?)'
+        },
+        {
+            className: 'attr',
+            begin: '(VC|VS|#)',
+            end: '(\\d+)'
+        },
+        {
+            className: 'attr',
+            begin: '(VZOFX|VZOFY|VZOFZ)'
+        },
+        {
+            className: 'built_in',
+            begin: '(ATAN|ABS|ACOS|ASIN|SIN|COS|EXP|FIX|FUP|ROUND|LN|TAN)(\\[)',
+            end: '([-+]?([0-9]*\\.?[0-9]+\\.?))(\\])'
+        },
+        {
+            className: 'symbol',
+            variants: [
+                {
+                    begin: 'N', end: '\\d+',
+                    illegal: '\\W'
+                }
+            ]
+        }
+    ];
+
+    return {
+        name: 'G-code (ISO 6983)',
+        aliases: ['nc'],
+        // Some implementations (CNC controls) of G-code are interoperable with uppercase and lowercase letters seamlessly.
+        // However, most prefer all uppercase and uppercase is customary.
+        case_insensitive: true,
+        keywords: GCODE_KEYWORDS,
+        contains: [
+            {
+                className: 'meta',
+                begin: GCODE_CLOSE_RE
+            },
+            GCODE_START
+        ].concat(GCODE_CODE)
+    };
+}
+
+module.exports = gcode;

+ 46 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/gherkin.js

@@ -0,0 +1,46 @@
+/*
+ Language: Gherkin
+ Author: Sam Pikesley (@pikesley) <sam.pikesley@theodi.org>
+ Description: Gherkin is the format for cucumber specifications. It is a domain specific language which helps you to describe business behavior without the need to go into detail of implementation.
+ Website: https://cucumber.io/docs/gherkin/
+ */
+
+function gherkin (hljs) {
+  return {
+    name: 'Gherkin',
+    aliases: ['feature'],
+    keywords: 'Feature Background Ability Business\ Need Scenario Scenarios Scenario\ Outline Scenario\ Template Examples Given And Then But When',
+    contains: [
+      {
+        className: 'symbol',
+        begin: '\\*',
+        relevance: 0
+      },
+      {
+        className: 'meta',
+        begin: '@[^@\\s]+'
+      },
+      {
+        begin: '\\|', end: '\\|\\w*$',
+        contains: [
+          {
+            className: 'string',
+            begin: '[^|]+'
+          }
+        ]
+      },
+      {
+        className: 'variable',
+        begin: '<', end: '>'
+      },
+      hljs.HASH_COMMENT_MODE,
+      {
+        className: 'string',
+        begin: '"""', end: '"""'
+      },
+      hljs.QUOTE_STRING_MODE
+    ]
+  };
+}
+
+module.exports = gherkin;

+ 127 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/glsl.js

@@ -0,0 +1,127 @@
+/*
+Language: GLSL
+Description: OpenGL Shading Language
+Author: Sergey Tikhomirov <sergey@tikhomirov.io>
+Website: https://en.wikipedia.org/wiki/OpenGL_Shading_Language
+Category: graphics
+*/
+
+function glsl(hljs) {
+  return {
+    name: 'GLSL',
+    keywords: {
+      keyword:
+        // Statements
+        'break continue discard do else for if return while switch case default ' +
+        // Qualifiers
+        'attribute binding buffer ccw centroid centroid varying coherent column_major const cw ' +
+        'depth_any depth_greater depth_less depth_unchanged early_fragment_tests equal_spacing ' +
+        'flat fractional_even_spacing fractional_odd_spacing highp in index inout invariant ' +
+        'invocations isolines layout line_strip lines lines_adjacency local_size_x local_size_y ' +
+        'local_size_z location lowp max_vertices mediump noperspective offset origin_upper_left ' +
+        'out packed patch pixel_center_integer point_mode points precise precision quads r11f_g11f_b10f '+
+        'r16 r16_snorm r16f r16i r16ui r32f r32i r32ui r8 r8_snorm r8i r8ui readonly restrict ' +
+        'rg16 rg16_snorm rg16f rg16i rg16ui rg32f rg32i rg32ui rg8 rg8_snorm rg8i rg8ui rgb10_a2 ' +
+        'rgb10_a2ui rgba16 rgba16_snorm rgba16f rgba16i rgba16ui rgba32f rgba32i rgba32ui rgba8 ' +
+        'rgba8_snorm rgba8i rgba8ui row_major sample shared smooth std140 std430 stream triangle_strip ' +
+        'triangles triangles_adjacency uniform varying vertices volatile writeonly',
+      type:
+        'atomic_uint bool bvec2 bvec3 bvec4 dmat2 dmat2x2 dmat2x3 dmat2x4 dmat3 dmat3x2 dmat3x3 ' +
+        'dmat3x4 dmat4 dmat4x2 dmat4x3 dmat4x4 double dvec2 dvec3 dvec4 float iimage1D iimage1DArray ' +
+        'iimage2D iimage2DArray iimage2DMS iimage2DMSArray iimage2DRect iimage3D iimageBuffer ' +
+        'iimageCube iimageCubeArray image1D image1DArray image2D image2DArray image2DMS image2DMSArray ' +
+        'image2DRect image3D imageBuffer imageCube imageCubeArray int isampler1D isampler1DArray ' +
+        'isampler2D isampler2DArray isampler2DMS isampler2DMSArray isampler2DRect isampler3D ' +
+        'isamplerBuffer isamplerCube isamplerCubeArray ivec2 ivec3 ivec4 mat2 mat2x2 mat2x3 ' +
+        'mat2x4 mat3 mat3x2 mat3x3 mat3x4 mat4 mat4x2 mat4x3 mat4x4 sampler1D sampler1DArray ' +
+        'sampler1DArrayShadow sampler1DShadow sampler2D sampler2DArray sampler2DArrayShadow ' +
+        'sampler2DMS sampler2DMSArray sampler2DRect sampler2DRectShadow sampler2DShadow sampler3D ' +
+        'samplerBuffer samplerCube samplerCubeArray samplerCubeArrayShadow samplerCubeShadow ' +
+        'image1D uimage1DArray uimage2D uimage2DArray uimage2DMS uimage2DMSArray uimage2DRect ' +
+        'uimage3D uimageBuffer uimageCube uimageCubeArray uint usampler1D usampler1DArray ' +
+        'usampler2D usampler2DArray usampler2DMS usampler2DMSArray usampler2DRect usampler3D ' +
+        'samplerBuffer usamplerCube usamplerCubeArray uvec2 uvec3 uvec4 vec2 vec3 vec4 void',
+      built_in:
+        // Constants
+        'gl_MaxAtomicCounterBindings gl_MaxAtomicCounterBufferSize gl_MaxClipDistances gl_MaxClipPlanes ' +
+        'gl_MaxCombinedAtomicCounterBuffers gl_MaxCombinedAtomicCounters gl_MaxCombinedImageUniforms ' +
+        'gl_MaxCombinedImageUnitsAndFragmentOutputs gl_MaxCombinedTextureImageUnits gl_MaxComputeAtomicCounterBuffers ' +
+        'gl_MaxComputeAtomicCounters gl_MaxComputeImageUniforms gl_MaxComputeTextureImageUnits ' +
+        'gl_MaxComputeUniformComponents gl_MaxComputeWorkGroupCount gl_MaxComputeWorkGroupSize ' +
+        'gl_MaxDrawBuffers gl_MaxFragmentAtomicCounterBuffers gl_MaxFragmentAtomicCounters ' +
+        'gl_MaxFragmentImageUniforms gl_MaxFragmentInputComponents gl_MaxFragmentInputVectors ' +
+        'gl_MaxFragmentUniformComponents gl_MaxFragmentUniformVectors gl_MaxGeometryAtomicCounterBuffers ' +
+        'gl_MaxGeometryAtomicCounters gl_MaxGeometryImageUniforms gl_MaxGeometryInputComponents ' +
+        'gl_MaxGeometryOutputComponents gl_MaxGeometryOutputVertices gl_MaxGeometryTextureImageUnits ' +
+        'gl_MaxGeometryTotalOutputComponents gl_MaxGeometryUniformComponents gl_MaxGeometryVaryingComponents ' +
+        'gl_MaxImageSamples gl_MaxImageUnits gl_MaxLights gl_MaxPatchVertices gl_MaxProgramTexelOffset ' +
+        'gl_MaxTessControlAtomicCounterBuffers gl_MaxTessControlAtomicCounters gl_MaxTessControlImageUniforms ' +
+        'gl_MaxTessControlInputComponents gl_MaxTessControlOutputComponents gl_MaxTessControlTextureImageUnits ' +
+        'gl_MaxTessControlTotalOutputComponents gl_MaxTessControlUniformComponents ' +
+        'gl_MaxTessEvaluationAtomicCounterBuffers gl_MaxTessEvaluationAtomicCounters ' +
+        'gl_MaxTessEvaluationImageUniforms gl_MaxTessEvaluationInputComponents gl_MaxTessEvaluationOutputComponents ' +
+        'gl_MaxTessEvaluationTextureImageUnits gl_MaxTessEvaluationUniformComponents ' +
+        'gl_MaxTessGenLevel gl_MaxTessPatchComponents gl_MaxTextureCoords gl_MaxTextureImageUnits ' +
+        'gl_MaxTextureUnits gl_MaxVaryingComponents gl_MaxVaryingFloats gl_MaxVaryingVectors ' +
+        'gl_MaxVertexAtomicCounterBuffers gl_MaxVertexAtomicCounters gl_MaxVertexAttribs gl_MaxVertexImageUniforms ' +
+        'gl_MaxVertexOutputComponents gl_MaxVertexOutputVectors gl_MaxVertexTextureImageUnits ' +
+        'gl_MaxVertexUniformComponents gl_MaxVertexUniformVectors gl_MaxViewports gl_MinProgramTexelOffset ' +
+        // Variables
+        'gl_BackColor gl_BackLightModelProduct gl_BackLightProduct gl_BackMaterial ' +
+        'gl_BackSecondaryColor gl_ClipDistance gl_ClipPlane gl_ClipVertex gl_Color ' +
+        'gl_DepthRange gl_EyePlaneQ gl_EyePlaneR gl_EyePlaneS gl_EyePlaneT gl_Fog gl_FogCoord ' +
+        'gl_FogFragCoord gl_FragColor gl_FragCoord gl_FragData gl_FragDepth gl_FrontColor ' +
+        'gl_FrontFacing gl_FrontLightModelProduct gl_FrontLightProduct gl_FrontMaterial ' +
+        'gl_FrontSecondaryColor gl_GlobalInvocationID gl_InstanceID gl_InvocationID gl_Layer gl_LightModel ' +
+        'gl_LightSource gl_LocalInvocationID gl_LocalInvocationIndex gl_ModelViewMatrix ' +
+        'gl_ModelViewMatrixInverse gl_ModelViewMatrixInverseTranspose gl_ModelViewMatrixTranspose ' +
+        'gl_ModelViewProjectionMatrix gl_ModelViewProjectionMatrixInverse gl_ModelViewProjectionMatrixInverseTranspose ' +
+        'gl_ModelViewProjectionMatrixTranspose gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 ' +
+        'gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 ' +
+        'gl_Normal gl_NormalMatrix gl_NormalScale gl_NumSamples gl_NumWorkGroups gl_ObjectPlaneQ ' +
+        'gl_ObjectPlaneR gl_ObjectPlaneS gl_ObjectPlaneT gl_PatchVerticesIn gl_Point gl_PointCoord ' +
+        'gl_PointSize gl_Position gl_PrimitiveID gl_PrimitiveIDIn gl_ProjectionMatrix gl_ProjectionMatrixInverse ' +
+        'gl_ProjectionMatrixInverseTranspose gl_ProjectionMatrixTranspose gl_SampleID gl_SampleMask ' +
+        'gl_SampleMaskIn gl_SamplePosition gl_SecondaryColor gl_TessCoord gl_TessLevelInner gl_TessLevelOuter ' +
+        'gl_TexCoord gl_TextureEnvColor gl_TextureMatrix gl_TextureMatrixInverse gl_TextureMatrixInverseTranspose ' +
+        'gl_TextureMatrixTranspose gl_Vertex gl_VertexID gl_ViewportIndex gl_WorkGroupID gl_WorkGroupSize gl_in gl_out ' +
+        // Functions
+        'EmitStreamVertex EmitVertex EndPrimitive EndStreamPrimitive abs acos acosh all any asin ' +
+        'asinh atan atanh atomicAdd atomicAnd atomicCompSwap atomicCounter atomicCounterDecrement ' +
+        'atomicCounterIncrement atomicExchange atomicMax atomicMin atomicOr atomicXor barrier ' +
+        'bitCount bitfieldExtract bitfieldInsert bitfieldReverse ceil clamp cos cosh cross ' +
+        'dFdx dFdy degrees determinant distance dot equal exp exp2 faceforward findLSB findMSB ' +
+        'floatBitsToInt floatBitsToUint floor fma fract frexp ftransform fwidth greaterThan ' +
+        'greaterThanEqual groupMemoryBarrier imageAtomicAdd imageAtomicAnd imageAtomicCompSwap ' +
+        'imageAtomicExchange imageAtomicMax imageAtomicMin imageAtomicOr imageAtomicXor imageLoad ' +
+        'imageSize imageStore imulExtended intBitsToFloat interpolateAtCentroid interpolateAtOffset ' +
+        'interpolateAtSample inverse inversesqrt isinf isnan ldexp length lessThan lessThanEqual log ' +
+        'log2 matrixCompMult max memoryBarrier memoryBarrierAtomicCounter memoryBarrierBuffer ' +
+        'memoryBarrierImage memoryBarrierShared min mix mod modf noise1 noise2 noise3 noise4 ' +
+        'normalize not notEqual outerProduct packDouble2x32 packHalf2x16 packSnorm2x16 packSnorm4x8 ' +
+        'packUnorm2x16 packUnorm4x8 pow radians reflect refract round roundEven shadow1D shadow1DLod ' +
+        'shadow1DProj shadow1DProjLod shadow2D shadow2DLod shadow2DProj shadow2DProjLod sign sin sinh ' +
+        'smoothstep sqrt step tan tanh texelFetch texelFetchOffset texture texture1D texture1DLod ' +
+        'texture1DProj texture1DProjLod texture2D texture2DLod texture2DProj texture2DProjLod ' +
+        'texture3D texture3DLod texture3DProj texture3DProjLod textureCube textureCubeLod ' +
+        'textureGather textureGatherOffset textureGatherOffsets textureGrad textureGradOffset ' +
+        'textureLod textureLodOffset textureOffset textureProj textureProjGrad textureProjGradOffset ' +
+        'textureProjLod textureProjLodOffset textureProjOffset textureQueryLevels textureQueryLod ' +
+        'textureSize transpose trunc uaddCarry uintBitsToFloat umulExtended unpackDouble2x32 ' +
+        'unpackHalf2x16 unpackSnorm2x16 unpackSnorm4x8 unpackUnorm2x16 unpackUnorm4x8 usubBorrow',
+      literal: 'true false'
+    },
+    illegal: '"',
+    contains: [
+      hljs.C_LINE_COMMENT_MODE,
+      hljs.C_BLOCK_COMMENT_MODE,
+      hljs.C_NUMBER_MODE,
+      {
+        className: 'meta',
+        begin: '#', end: '$'
+      }
+    ]
+  };
+}
+
+module.exports = glsl;

+ 883 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/gml.js

@@ -0,0 +1,883 @@
+/*
+Language: GML
+Author: Meseta <meseta@gmail.com>
+Description: Game Maker Language for GameMaker Studio 2
+Website: https://docs2.yoyogames.com
+Category: scripting
+*/
+
+function gml(hljs) {
+  var GML_KEYWORDS = {
+    keyword: 'begin end if then else while do for break continue with until ' +
+      'repeat exit and or xor not return mod div switch case default var ' +
+      'globalvar enum #macro #region #endregion',
+    built_in: 'is_real is_string is_array is_undefined is_int32 is_int64 ' +
+      'is_ptr is_vec3 is_vec4 is_matrix is_bool typeof ' +
+      'variable_global_exists variable_global_get variable_global_set ' +
+      'variable_instance_exists variable_instance_get variable_instance_set ' +
+      'variable_instance_get_names array_length_1d array_length_2d ' +
+      'array_height_2d array_equals array_create array_copy random ' +
+      'random_range irandom irandom_range random_set_seed random_get_seed ' +
+      'randomize randomise choose abs round floor ceil sign frac sqrt sqr ' +
+      'exp ln log2 log10 sin cos tan arcsin arccos arctan arctan2 dsin dcos ' +
+      'dtan darcsin darccos darctan darctan2 degtorad radtodeg power logn ' +
+      'min max mean median clamp lerp dot_product dot_product_3d ' +
+      'dot_product_normalised dot_product_3d_normalised ' +
+      'dot_product_normalized dot_product_3d_normalized math_set_epsilon ' +
+      'math_get_epsilon angle_difference point_distance_3d point_distance ' +
+      'point_direction lengthdir_x lengthdir_y real string int64 ptr ' +
+      'string_format chr ansi_char ord string_length string_byte_length ' +
+      'string_pos string_copy string_char_at string_ord_at string_byte_at ' +
+      'string_set_byte_at string_delete string_insert string_lower ' +
+      'string_upper string_repeat string_letters string_digits ' +
+      'string_lettersdigits string_replace string_replace_all string_count ' +
+      'string_hash_to_newline clipboard_has_text clipboard_set_text ' +
+      'clipboard_get_text date_current_datetime date_create_datetime ' +
+      'date_valid_datetime date_inc_year date_inc_month date_inc_week ' +
+      'date_inc_day date_inc_hour date_inc_minute date_inc_second ' +
+      'date_get_year date_get_month date_get_week date_get_day ' +
+      'date_get_hour date_get_minute date_get_second date_get_weekday ' +
+      'date_get_day_of_year date_get_hour_of_year date_get_minute_of_year ' +
+      'date_get_second_of_year date_year_span date_month_span ' +
+      'date_week_span date_day_span date_hour_span date_minute_span ' +
+      'date_second_span date_compare_datetime date_compare_date ' +
+      'date_compare_time date_date_of date_time_of date_datetime_string ' +
+      'date_date_string date_time_string date_days_in_month ' +
+      'date_days_in_year date_leap_year date_is_today date_set_timezone ' +
+      'date_get_timezone game_set_speed game_get_speed motion_set ' +
+      'motion_add place_free place_empty place_meeting place_snapped ' +
+      'move_random move_snap move_towards_point move_contact_solid ' +
+      'move_contact_all move_outside_solid move_outside_all ' +
+      'move_bounce_solid move_bounce_all move_wrap distance_to_point ' +
+      'distance_to_object position_empty position_meeting path_start ' +
+      'path_end mp_linear_step mp_potential_step mp_linear_step_object ' +
+      'mp_potential_step_object mp_potential_settings mp_linear_path ' +
+      'mp_potential_path mp_linear_path_object mp_potential_path_object ' +
+      'mp_grid_create mp_grid_destroy mp_grid_clear_all mp_grid_clear_cell ' +
+      'mp_grid_clear_rectangle mp_grid_add_cell mp_grid_get_cell ' +
+      'mp_grid_add_rectangle mp_grid_add_instances mp_grid_path ' +
+      'mp_grid_draw mp_grid_to_ds_grid collision_point collision_rectangle ' +
+      'collision_circle collision_ellipse collision_line ' +
+      'collision_point_list collision_rectangle_list collision_circle_list ' +
+      'collision_ellipse_list collision_line_list instance_position_list ' +
+      'instance_place_list point_in_rectangle ' +
+      'point_in_triangle point_in_circle rectangle_in_rectangle ' +
+      'rectangle_in_triangle rectangle_in_circle instance_find ' +
+      'instance_exists instance_number instance_position instance_nearest ' +
+      'instance_furthest instance_place instance_create_depth ' +
+      'instance_create_layer instance_copy instance_change instance_destroy ' +
+      'position_destroy position_change instance_id_get ' +
+      'instance_deactivate_all instance_deactivate_object ' +
+      'instance_deactivate_region instance_activate_all ' +
+      'instance_activate_object instance_activate_region room_goto ' +
+      'room_goto_previous room_goto_next room_previous room_next ' +
+      'room_restart game_end game_restart game_load game_save ' +
+      'game_save_buffer game_load_buffer event_perform event_user ' +
+      'event_perform_object event_inherited show_debug_message ' +
+      'show_debug_overlay debug_event debug_get_callstack alarm_get ' +
+      'alarm_set font_texture_page_size keyboard_set_map keyboard_get_map ' +
+      'keyboard_unset_map keyboard_check keyboard_check_pressed ' +
+      'keyboard_check_released keyboard_check_direct keyboard_get_numlock ' +
+      'keyboard_set_numlock keyboard_key_press keyboard_key_release ' +
+      'keyboard_clear io_clear mouse_check_button ' +
+      'mouse_check_button_pressed mouse_check_button_released ' +
+      'mouse_wheel_up mouse_wheel_down mouse_clear draw_self draw_sprite ' +
+      'draw_sprite_pos draw_sprite_ext draw_sprite_stretched ' +
+      'draw_sprite_stretched_ext draw_sprite_tiled draw_sprite_tiled_ext ' +
+      'draw_sprite_part draw_sprite_part_ext draw_sprite_general draw_clear ' +
+      'draw_clear_alpha draw_point draw_line draw_line_width draw_rectangle ' +
+      'draw_roundrect draw_roundrect_ext draw_triangle draw_circle ' +
+      'draw_ellipse draw_set_circle_precision draw_arrow draw_button ' +
+      'draw_path draw_healthbar draw_getpixel draw_getpixel_ext ' +
+      'draw_set_colour draw_set_color draw_set_alpha draw_get_colour ' +
+      'draw_get_color draw_get_alpha merge_colour make_colour_rgb ' +
+      'make_colour_hsv colour_get_red colour_get_green colour_get_blue ' +
+      'colour_get_hue colour_get_saturation colour_get_value merge_color ' +
+      'make_color_rgb make_color_hsv color_get_red color_get_green ' +
+      'color_get_blue color_get_hue color_get_saturation color_get_value ' +
+      'merge_color screen_save screen_save_part draw_set_font ' +
+      'draw_set_halign draw_set_valign draw_text draw_text_ext string_width ' +
+      'string_height string_width_ext string_height_ext ' +
+      'draw_text_transformed draw_text_ext_transformed draw_text_colour ' +
+      'draw_text_ext_colour draw_text_transformed_colour ' +
+      'draw_text_ext_transformed_colour draw_text_color draw_text_ext_color ' +
+      'draw_text_transformed_color draw_text_ext_transformed_color ' +
+      'draw_point_colour draw_line_colour draw_line_width_colour ' +
+      'draw_rectangle_colour draw_roundrect_colour ' +
+      'draw_roundrect_colour_ext draw_triangle_colour draw_circle_colour ' +
+      'draw_ellipse_colour draw_point_color draw_line_color ' +
+      'draw_line_width_color draw_rectangle_color draw_roundrect_color ' +
+      'draw_roundrect_color_ext draw_triangle_color draw_circle_color ' +
+      'draw_ellipse_color draw_primitive_begin draw_vertex ' +
+      'draw_vertex_colour draw_vertex_color draw_primitive_end ' +
+      'sprite_get_uvs font_get_uvs sprite_get_texture font_get_texture ' +
+      'texture_get_width texture_get_height texture_get_uvs ' +
+      'draw_primitive_begin_texture draw_vertex_texture ' +
+      'draw_vertex_texture_colour draw_vertex_texture_color ' +
+      'texture_global_scale surface_create surface_create_ext ' +
+      'surface_resize surface_free surface_exists surface_get_width ' +
+      'surface_get_height surface_get_texture surface_set_target ' +
+      'surface_set_target_ext surface_reset_target surface_depth_disable ' +
+      'surface_get_depth_disable draw_surface draw_surface_stretched ' +
+      'draw_surface_tiled draw_surface_part draw_surface_ext ' +
+      'draw_surface_stretched_ext draw_surface_tiled_ext ' +
+      'draw_surface_part_ext draw_surface_general surface_getpixel ' +
+      'surface_getpixel_ext surface_save surface_save_part surface_copy ' +
+      'surface_copy_part application_surface_draw_enable ' +
+      'application_get_position application_surface_enable ' +
+      'application_surface_is_enabled display_get_width display_get_height ' +
+      'display_get_orientation display_get_gui_width display_get_gui_height ' +
+      'display_reset display_mouse_get_x display_mouse_get_y ' +
+      'display_mouse_set display_set_ui_visibility ' +
+      'window_set_fullscreen window_get_fullscreen ' +
+      'window_set_caption window_set_min_width window_set_max_width ' +
+      'window_set_min_height window_set_max_height window_get_visible_rects ' +
+      'window_get_caption window_set_cursor window_get_cursor ' +
+      'window_set_colour window_get_colour window_set_color ' +
+      'window_get_color window_set_position window_set_size ' +
+      'window_set_rectangle window_center window_get_x window_get_y ' +
+      'window_get_width window_get_height window_mouse_get_x ' +
+      'window_mouse_get_y window_mouse_set window_view_mouse_get_x ' +
+      'window_view_mouse_get_y window_views_mouse_get_x ' +
+      'window_views_mouse_get_y audio_listener_position ' +
+      'audio_listener_velocity audio_listener_orientation ' +
+      'audio_emitter_position audio_emitter_create audio_emitter_free ' +
+      'audio_emitter_exists audio_emitter_pitch audio_emitter_velocity ' +
+      'audio_emitter_falloff audio_emitter_gain audio_play_sound ' +
+      'audio_play_sound_on audio_play_sound_at audio_stop_sound ' +
+      'audio_resume_music audio_music_is_playing audio_resume_sound ' +
+      'audio_pause_sound audio_pause_music audio_channel_num ' +
+      'audio_sound_length audio_get_type audio_falloff_set_model ' +
+      'audio_play_music audio_stop_music audio_master_gain audio_music_gain ' +
+      'audio_sound_gain audio_sound_pitch audio_stop_all audio_resume_all ' +
+      'audio_pause_all audio_is_playing audio_is_paused audio_exists ' +
+      'audio_sound_set_track_position audio_sound_get_track_position ' +
+      'audio_emitter_get_gain audio_emitter_get_pitch audio_emitter_get_x ' +
+      'audio_emitter_get_y audio_emitter_get_z audio_emitter_get_vx ' +
+      'audio_emitter_get_vy audio_emitter_get_vz ' +
+      'audio_listener_set_position audio_listener_set_velocity ' +
+      'audio_listener_set_orientation audio_listener_get_data ' +
+      'audio_set_master_gain audio_get_master_gain audio_sound_get_gain ' +
+      'audio_sound_get_pitch audio_get_name audio_sound_set_track_position ' +
+      'audio_sound_get_track_position audio_create_stream ' +
+      'audio_destroy_stream audio_create_sync_group ' +
+      'audio_destroy_sync_group audio_play_in_sync_group ' +
+      'audio_start_sync_group audio_stop_sync_group audio_pause_sync_group ' +
+      'audio_resume_sync_group audio_sync_group_get_track_pos ' +
+      'audio_sync_group_debug audio_sync_group_is_playing audio_debug ' +
+      'audio_group_load audio_group_unload audio_group_is_loaded ' +
+      'audio_group_load_progress audio_group_name audio_group_stop_all ' +
+      'audio_group_set_gain audio_create_buffer_sound ' +
+      'audio_free_buffer_sound audio_create_play_queue ' +
+      'audio_free_play_queue audio_queue_sound audio_get_recorder_count ' +
+      'audio_get_recorder_info audio_start_recording audio_stop_recording ' +
+      'audio_sound_get_listener_mask audio_emitter_get_listener_mask ' +
+      'audio_get_listener_mask audio_sound_set_listener_mask ' +
+      'audio_emitter_set_listener_mask audio_set_listener_mask ' +
+      'audio_get_listener_count audio_get_listener_info audio_system ' +
+      'show_message show_message_async clickable_add clickable_add_ext ' +
+      'clickable_change clickable_change_ext clickable_delete ' +
+      'clickable_exists clickable_set_style show_question ' +
+      'show_question_async get_integer get_string get_integer_async ' +
+      'get_string_async get_login_async get_open_filename get_save_filename ' +
+      'get_open_filename_ext get_save_filename_ext show_error ' +
+      'highscore_clear highscore_add highscore_value highscore_name ' +
+      'draw_highscore sprite_exists sprite_get_name sprite_get_number ' +
+      'sprite_get_width sprite_get_height sprite_get_xoffset ' +
+      'sprite_get_yoffset sprite_get_bbox_left sprite_get_bbox_right ' +
+      'sprite_get_bbox_top sprite_get_bbox_bottom sprite_save ' +
+      'sprite_save_strip sprite_set_cache_size sprite_set_cache_size_ext ' +
+      'sprite_get_tpe sprite_prefetch sprite_prefetch_multi sprite_flush ' +
+      'sprite_flush_multi sprite_set_speed sprite_get_speed_type ' +
+      'sprite_get_speed font_exists font_get_name font_get_fontname ' +
+      'font_get_bold font_get_italic font_get_first font_get_last ' +
+      'font_get_size font_set_cache_size path_exists path_get_name ' +
+      'path_get_length path_get_time path_get_kind path_get_closed ' +
+      'path_get_precision path_get_number path_get_point_x path_get_point_y ' +
+      'path_get_point_speed path_get_x path_get_y path_get_speed ' +
+      'script_exists script_get_name timeline_add timeline_delete ' +
+      'timeline_clear timeline_exists timeline_get_name ' +
+      'timeline_moment_clear timeline_moment_add_script timeline_size ' +
+      'timeline_max_moment object_exists object_get_name object_get_sprite ' +
+      'object_get_solid object_get_visible object_get_persistent ' +
+      'object_get_mask object_get_parent object_get_physics ' +
+      'object_is_ancestor room_exists room_get_name sprite_set_offset ' +
+      'sprite_duplicate sprite_assign sprite_merge sprite_add ' +
+      'sprite_replace sprite_create_from_surface sprite_add_from_surface ' +
+      'sprite_delete sprite_set_alpha_from_sprite sprite_collision_mask ' +
+      'font_add_enable_aa font_add_get_enable_aa font_add font_add_sprite ' +
+      'font_add_sprite_ext font_replace font_replace_sprite ' +
+      'font_replace_sprite_ext font_delete path_set_kind path_set_closed ' +
+      'path_set_precision path_add path_assign path_duplicate path_append ' +
+      'path_delete path_add_point path_insert_point path_change_point ' +
+      'path_delete_point path_clear_points path_reverse path_mirror ' +
+      'path_flip path_rotate path_rescale path_shift script_execute ' +
+      'object_set_sprite object_set_solid object_set_visible ' +
+      'object_set_persistent object_set_mask room_set_width room_set_height ' +
+      'room_set_persistent room_set_background_colour ' +
+      'room_set_background_color room_set_view room_set_viewport ' +
+      'room_get_viewport room_set_view_enabled room_add room_duplicate ' +
+      'room_assign room_instance_add room_instance_clear room_get_camera ' +
+      'room_set_camera asset_get_index asset_get_type ' +
+      'file_text_open_from_string file_text_open_read file_text_open_write ' +
+      'file_text_open_append file_text_close file_text_write_string ' +
+      'file_text_write_real file_text_writeln file_text_read_string ' +
+      'file_text_read_real file_text_readln file_text_eof file_text_eoln ' +
+      'file_exists file_delete file_rename file_copy directory_exists ' +
+      'directory_create directory_destroy file_find_first file_find_next ' +
+      'file_find_close file_attributes filename_name filename_path ' +
+      'filename_dir filename_drive filename_ext filename_change_ext ' +
+      'file_bin_open file_bin_rewrite file_bin_close file_bin_position ' +
+      'file_bin_size file_bin_seek file_bin_write_byte file_bin_read_byte ' +
+      'parameter_count parameter_string environment_get_variable ' +
+      'ini_open_from_string ini_open ini_close ini_read_string ' +
+      'ini_read_real ini_write_string ini_write_real ini_key_exists ' +
+      'ini_section_exists ini_key_delete ini_section_delete ' +
+      'ds_set_precision ds_exists ds_stack_create ds_stack_destroy ' +
+      'ds_stack_clear ds_stack_copy ds_stack_size ds_stack_empty ' +
+      'ds_stack_push ds_stack_pop ds_stack_top ds_stack_write ds_stack_read ' +
+      'ds_queue_create ds_queue_destroy ds_queue_clear ds_queue_copy ' +
+      'ds_queue_size ds_queue_empty ds_queue_enqueue ds_queue_dequeue ' +
+      'ds_queue_head ds_queue_tail ds_queue_write ds_queue_read ' +
+      'ds_list_create ds_list_destroy ds_list_clear ds_list_copy ' +
+      'ds_list_size ds_list_empty ds_list_add ds_list_insert ' +
+      'ds_list_replace ds_list_delete ds_list_find_index ds_list_find_value ' +
+      'ds_list_mark_as_list ds_list_mark_as_map ds_list_sort ' +
+      'ds_list_shuffle ds_list_write ds_list_read ds_list_set ds_map_create ' +
+      'ds_map_destroy ds_map_clear ds_map_copy ds_map_size ds_map_empty ' +
+      'ds_map_add ds_map_add_list ds_map_add_map ds_map_replace ' +
+      'ds_map_replace_map ds_map_replace_list ds_map_delete ds_map_exists ' +
+      'ds_map_find_value ds_map_find_previous ds_map_find_next ' +
+      'ds_map_find_first ds_map_find_last ds_map_write ds_map_read ' +
+      'ds_map_secure_save ds_map_secure_load ds_map_secure_load_buffer ' +
+      'ds_map_secure_save_buffer ds_map_set ds_priority_create ' +
+      'ds_priority_destroy ds_priority_clear ds_priority_copy ' +
+      'ds_priority_size ds_priority_empty ds_priority_add ' +
+      'ds_priority_change_priority ds_priority_find_priority ' +
+      'ds_priority_delete_value ds_priority_delete_min ds_priority_find_min ' +
+      'ds_priority_delete_max ds_priority_find_max ds_priority_write ' +
+      'ds_priority_read ds_grid_create ds_grid_destroy ds_grid_copy ' +
+      'ds_grid_resize ds_grid_width ds_grid_height ds_grid_clear ' +
+      'ds_grid_set ds_grid_add ds_grid_multiply ds_grid_set_region ' +
+      'ds_grid_add_region ds_grid_multiply_region ds_grid_set_disk ' +
+      'ds_grid_add_disk ds_grid_multiply_disk ds_grid_set_grid_region ' +
+      'ds_grid_add_grid_region ds_grid_multiply_grid_region ds_grid_get ' +
+      'ds_grid_get_sum ds_grid_get_max ds_grid_get_min ds_grid_get_mean ' +
+      'ds_grid_get_disk_sum ds_grid_get_disk_min ds_grid_get_disk_max ' +
+      'ds_grid_get_disk_mean ds_grid_value_exists ds_grid_value_x ' +
+      'ds_grid_value_y ds_grid_value_disk_exists ds_grid_value_disk_x ' +
+      'ds_grid_value_disk_y ds_grid_shuffle ds_grid_write ds_grid_read ' +
+      'ds_grid_sort ds_grid_set ds_grid_get effect_create_below ' +
+      'effect_create_above effect_clear part_type_create part_type_destroy ' +
+      'part_type_exists part_type_clear part_type_shape part_type_sprite ' +
+      'part_type_size part_type_scale part_type_orientation part_type_life ' +
+      'part_type_step part_type_death part_type_speed part_type_direction ' +
+      'part_type_gravity part_type_colour1 part_type_colour2 ' +
+      'part_type_colour3 part_type_colour_mix part_type_colour_rgb ' +
+      'part_type_colour_hsv part_type_color1 part_type_color2 ' +
+      'part_type_color3 part_type_color_mix part_type_color_rgb ' +
+      'part_type_color_hsv part_type_alpha1 part_type_alpha2 ' +
+      'part_type_alpha3 part_type_blend part_system_create ' +
+      'part_system_create_layer part_system_destroy part_system_exists ' +
+      'part_system_clear part_system_draw_order part_system_depth ' +
+      'part_system_position part_system_automatic_update ' +
+      'part_system_automatic_draw part_system_update part_system_drawit ' +
+      'part_system_get_layer part_system_layer part_particles_create ' +
+      'part_particles_create_colour part_particles_create_color ' +
+      'part_particles_clear part_particles_count part_emitter_create ' +
+      'part_emitter_destroy part_emitter_destroy_all part_emitter_exists ' +
+      'part_emitter_clear part_emitter_region part_emitter_burst ' +
+      'part_emitter_stream external_call external_define external_free ' +
+      'window_handle window_device matrix_get matrix_set ' +
+      'matrix_build_identity matrix_build matrix_build_lookat ' +
+      'matrix_build_projection_ortho matrix_build_projection_perspective ' +
+      'matrix_build_projection_perspective_fov matrix_multiply ' +
+      'matrix_transform_vertex matrix_stack_push matrix_stack_pop ' +
+      'matrix_stack_multiply matrix_stack_set matrix_stack_clear ' +
+      'matrix_stack_top matrix_stack_is_empty browser_input_capture ' +
+      'os_get_config os_get_info os_get_language os_get_region ' +
+      'os_lock_orientation display_get_dpi_x display_get_dpi_y ' +
+      'display_set_gui_size display_set_gui_maximise ' +
+      'display_set_gui_maximize device_mouse_dbclick_enable ' +
+      'display_set_timing_method display_get_timing_method ' +
+      'display_set_sleep_margin display_get_sleep_margin virtual_key_add ' +
+      'virtual_key_hide virtual_key_delete virtual_key_show ' +
+      'draw_enable_drawevent draw_enable_swf_aa draw_set_swf_aa_level ' +
+      'draw_get_swf_aa_level draw_texture_flush draw_flush ' +
+      'gpu_set_blendenable gpu_set_ztestenable gpu_set_zfunc ' +
+      'gpu_set_zwriteenable gpu_set_lightingenable gpu_set_fog ' +
+      'gpu_set_cullmode gpu_set_blendmode gpu_set_blendmode_ext ' +
+      'gpu_set_blendmode_ext_sepalpha gpu_set_colorwriteenable ' +
+      'gpu_set_colourwriteenable gpu_set_alphatestenable ' +
+      'gpu_set_alphatestref gpu_set_alphatestfunc gpu_set_texfilter ' +
+      'gpu_set_texfilter_ext gpu_set_texrepeat gpu_set_texrepeat_ext ' +
+      'gpu_set_tex_filter gpu_set_tex_filter_ext gpu_set_tex_repeat ' +
+      'gpu_set_tex_repeat_ext gpu_set_tex_mip_filter ' +
+      'gpu_set_tex_mip_filter_ext gpu_set_tex_mip_bias ' +
+      'gpu_set_tex_mip_bias_ext gpu_set_tex_min_mip gpu_set_tex_min_mip_ext ' +
+      'gpu_set_tex_max_mip gpu_set_tex_max_mip_ext gpu_set_tex_max_aniso ' +
+      'gpu_set_tex_max_aniso_ext gpu_set_tex_mip_enable ' +
+      'gpu_set_tex_mip_enable_ext gpu_get_blendenable gpu_get_ztestenable ' +
+      'gpu_get_zfunc gpu_get_zwriteenable gpu_get_lightingenable ' +
+      'gpu_get_fog gpu_get_cullmode gpu_get_blendmode gpu_get_blendmode_ext ' +
+      'gpu_get_blendmode_ext_sepalpha gpu_get_blendmode_src ' +
+      'gpu_get_blendmode_dest gpu_get_blendmode_srcalpha ' +
+      'gpu_get_blendmode_destalpha gpu_get_colorwriteenable ' +
+      'gpu_get_colourwriteenable gpu_get_alphatestenable ' +
+      'gpu_get_alphatestref gpu_get_alphatestfunc gpu_get_texfilter ' +
+      'gpu_get_texfilter_ext gpu_get_texrepeat gpu_get_texrepeat_ext ' +
+      'gpu_get_tex_filter gpu_get_tex_filter_ext gpu_get_tex_repeat ' +
+      'gpu_get_tex_repeat_ext gpu_get_tex_mip_filter ' +
+      'gpu_get_tex_mip_filter_ext gpu_get_tex_mip_bias ' +
+      'gpu_get_tex_mip_bias_ext gpu_get_tex_min_mip gpu_get_tex_min_mip_ext ' +
+      'gpu_get_tex_max_mip gpu_get_tex_max_mip_ext gpu_get_tex_max_aniso ' +
+      'gpu_get_tex_max_aniso_ext gpu_get_tex_mip_enable ' +
+      'gpu_get_tex_mip_enable_ext gpu_push_state gpu_pop_state ' +
+      'gpu_get_state gpu_set_state draw_light_define_ambient ' +
+      'draw_light_define_direction draw_light_define_point ' +
+      'draw_light_enable draw_set_lighting draw_light_get_ambient ' +
+      'draw_light_get draw_get_lighting shop_leave_rating url_get_domain ' +
+      'url_open url_open_ext url_open_full get_timer achievement_login ' +
+      'achievement_logout achievement_post achievement_increment ' +
+      'achievement_post_score achievement_available ' +
+      'achievement_show_achievements achievement_show_leaderboards ' +
+      'achievement_load_friends achievement_load_leaderboard ' +
+      'achievement_send_challenge achievement_load_progress ' +
+      'achievement_reset achievement_login_status achievement_get_pic ' +
+      'achievement_show_challenge_notifications achievement_get_challenges ' +
+      'achievement_event achievement_show achievement_get_info ' +
+      'cloud_file_save cloud_string_save cloud_synchronise ads_enable ' +
+      'ads_disable ads_setup ads_engagement_launch ads_engagement_available ' +
+      'ads_engagement_active ads_event ads_event_preload ' +
+      'ads_set_reward_callback ads_get_display_height ads_get_display_width ' +
+      'ads_move ads_interstitial_available ads_interstitial_display ' +
+      'device_get_tilt_x device_get_tilt_y device_get_tilt_z ' +
+      'device_is_keypad_open device_mouse_check_button ' +
+      'device_mouse_check_button_pressed device_mouse_check_button_released ' +
+      'device_mouse_x device_mouse_y device_mouse_raw_x device_mouse_raw_y ' +
+      'device_mouse_x_to_gui device_mouse_y_to_gui iap_activate iap_status ' +
+      'iap_enumerate_products iap_restore_all iap_acquire iap_consume ' +
+      'iap_product_details iap_purchase_details facebook_init ' +
+      'facebook_login facebook_status facebook_graph_request ' +
+      'facebook_dialog facebook_logout facebook_launch_offerwall ' +
+      'facebook_post_message facebook_send_invite facebook_user_id ' +
+      'facebook_accesstoken facebook_check_permission ' +
+      'facebook_request_read_permissions ' +
+      'facebook_request_publish_permissions gamepad_is_supported ' +
+      'gamepad_get_device_count gamepad_is_connected ' +
+      'gamepad_get_description gamepad_get_button_threshold ' +
+      'gamepad_set_button_threshold gamepad_get_axis_deadzone ' +
+      'gamepad_set_axis_deadzone gamepad_button_count gamepad_button_check ' +
+      'gamepad_button_check_pressed gamepad_button_check_released ' +
+      'gamepad_button_value gamepad_axis_count gamepad_axis_value ' +
+      'gamepad_set_vibration gamepad_set_colour gamepad_set_color ' +
+      'os_is_paused window_has_focus code_is_compiled http_get ' +
+      'http_get_file http_post_string http_request json_encode json_decode ' +
+      'zip_unzip load_csv base64_encode base64_decode md5_string_unicode ' +
+      'md5_string_utf8 md5_file os_is_network_connected sha1_string_unicode ' +
+      'sha1_string_utf8 sha1_file os_powersave_enable analytics_event ' +
+      'analytics_event_ext win8_livetile_tile_notification ' +
+      'win8_livetile_tile_clear win8_livetile_badge_notification ' +
+      'win8_livetile_badge_clear win8_livetile_queue_enable ' +
+      'win8_secondarytile_pin win8_secondarytile_badge_notification ' +
+      'win8_secondarytile_delete win8_livetile_notification_begin ' +
+      'win8_livetile_notification_secondary_begin ' +
+      'win8_livetile_notification_expiry win8_livetile_notification_tag ' +
+      'win8_livetile_notification_text_add ' +
+      'win8_livetile_notification_image_add win8_livetile_notification_end ' +
+      'win8_appbar_enable win8_appbar_add_element ' +
+      'win8_appbar_remove_element win8_settingscharm_add_entry ' +
+      'win8_settingscharm_add_html_entry win8_settingscharm_add_xaml_entry ' +
+      'win8_settingscharm_set_xaml_property ' +
+      'win8_settingscharm_get_xaml_property win8_settingscharm_remove_entry ' +
+      'win8_share_image win8_share_screenshot win8_share_file ' +
+      'win8_share_url win8_share_text win8_search_enable ' +
+      'win8_search_disable win8_search_add_suggestions ' +
+      'win8_device_touchscreen_available win8_license_initialize_sandbox ' +
+      'win8_license_trial_version winphone_license_trial_version ' +
+      'winphone_tile_title winphone_tile_count winphone_tile_back_title ' +
+      'winphone_tile_back_content winphone_tile_back_content_wide ' +
+      'winphone_tile_front_image winphone_tile_front_image_small ' +
+      'winphone_tile_front_image_wide winphone_tile_back_image ' +
+      'winphone_tile_back_image_wide winphone_tile_background_colour ' +
+      'winphone_tile_background_color winphone_tile_icon_image ' +
+      'winphone_tile_small_icon_image winphone_tile_wide_content ' +
+      'winphone_tile_cycle_images winphone_tile_small_background_image ' +
+      'physics_world_create physics_world_gravity ' +
+      'physics_world_update_speed physics_world_update_iterations ' +
+      'physics_world_draw_debug physics_pause_enable physics_fixture_create ' +
+      'physics_fixture_set_kinematic physics_fixture_set_density ' +
+      'physics_fixture_set_awake physics_fixture_set_restitution ' +
+      'physics_fixture_set_friction physics_fixture_set_collision_group ' +
+      'physics_fixture_set_sensor physics_fixture_set_linear_damping ' +
+      'physics_fixture_set_angular_damping physics_fixture_set_circle_shape ' +
+      'physics_fixture_set_box_shape physics_fixture_set_edge_shape ' +
+      'physics_fixture_set_polygon_shape physics_fixture_set_chain_shape ' +
+      'physics_fixture_add_point physics_fixture_bind ' +
+      'physics_fixture_bind_ext physics_fixture_delete physics_apply_force ' +
+      'physics_apply_impulse physics_apply_angular_impulse ' +
+      'physics_apply_local_force physics_apply_local_impulse ' +
+      'physics_apply_torque physics_mass_properties physics_draw_debug ' +
+      'physics_test_overlap physics_remove_fixture physics_set_friction ' +
+      'physics_set_density physics_set_restitution physics_get_friction ' +
+      'physics_get_density physics_get_restitution ' +
+      'physics_joint_distance_create physics_joint_rope_create ' +
+      'physics_joint_revolute_create physics_joint_prismatic_create ' +
+      'physics_joint_pulley_create physics_joint_wheel_create ' +
+      'physics_joint_weld_create physics_joint_friction_create ' +
+      'physics_joint_gear_create physics_joint_enable_motor ' +
+      'physics_joint_get_value physics_joint_set_value physics_joint_delete ' +
+      'physics_particle_create physics_particle_delete ' +
+      'physics_particle_delete_region_circle ' +
+      'physics_particle_delete_region_box ' +
+      'physics_particle_delete_region_poly physics_particle_set_flags ' +
+      'physics_particle_set_category_flags physics_particle_draw ' +
+      'physics_particle_draw_ext physics_particle_count ' +
+      'physics_particle_get_data physics_particle_get_data_particle ' +
+      'physics_particle_group_begin physics_particle_group_circle ' +
+      'physics_particle_group_box physics_particle_group_polygon ' +
+      'physics_particle_group_add_point physics_particle_group_end ' +
+      'physics_particle_group_join physics_particle_group_delete ' +
+      'physics_particle_group_count physics_particle_group_get_data ' +
+      'physics_particle_group_get_mass physics_particle_group_get_inertia ' +
+      'physics_particle_group_get_centre_x ' +
+      'physics_particle_group_get_centre_y physics_particle_group_get_vel_x ' +
+      'physics_particle_group_get_vel_y physics_particle_group_get_ang_vel ' +
+      'physics_particle_group_get_x physics_particle_group_get_y ' +
+      'physics_particle_group_get_angle physics_particle_set_group_flags ' +
+      'physics_particle_get_group_flags physics_particle_get_max_count ' +
+      'physics_particle_get_radius physics_particle_get_density ' +
+      'physics_particle_get_damping physics_particle_get_gravity_scale ' +
+      'physics_particle_set_max_count physics_particle_set_radius ' +
+      'physics_particle_set_density physics_particle_set_damping ' +
+      'physics_particle_set_gravity_scale network_create_socket ' +
+      'network_create_socket_ext network_create_server ' +
+      'network_create_server_raw network_connect network_connect_raw ' +
+      'network_send_packet network_send_raw network_send_broadcast ' +
+      'network_send_udp network_send_udp_raw network_set_timeout ' +
+      'network_set_config network_resolve network_destroy buffer_create ' +
+      'buffer_write buffer_read buffer_seek buffer_get_surface ' +
+      'buffer_set_surface buffer_delete buffer_exists buffer_get_type ' +
+      'buffer_get_alignment buffer_poke buffer_peek buffer_save ' +
+      'buffer_save_ext buffer_load buffer_load_ext buffer_load_partial ' +
+      'buffer_copy buffer_fill buffer_get_size buffer_tell buffer_resize ' +
+      'buffer_md5 buffer_sha1 buffer_base64_encode buffer_base64_decode ' +
+      'buffer_base64_decode_ext buffer_sizeof buffer_get_address ' +
+      'buffer_create_from_vertex_buffer ' +
+      'buffer_create_from_vertex_buffer_ext buffer_copy_from_vertex_buffer ' +
+      'buffer_async_group_begin buffer_async_group_option ' +
+      'buffer_async_group_end buffer_load_async buffer_save_async ' +
+      'gml_release_mode gml_pragma steam_activate_overlay ' +
+      'steam_is_overlay_enabled steam_is_overlay_activated ' +
+      'steam_get_persona_name steam_initialised ' +
+      'steam_is_cloud_enabled_for_app steam_is_cloud_enabled_for_account ' +
+      'steam_file_persisted steam_get_quota_total steam_get_quota_free ' +
+      'steam_file_write steam_file_write_file steam_file_read ' +
+      'steam_file_delete steam_file_exists steam_file_size steam_file_share ' +
+      'steam_is_screenshot_requested steam_send_screenshot ' +
+      'steam_is_user_logged_on steam_get_user_steam_id steam_user_owns_dlc ' +
+      'steam_user_installed_dlc steam_set_achievement steam_get_achievement ' +
+      'steam_clear_achievement steam_set_stat_int steam_set_stat_float ' +
+      'steam_set_stat_avg_rate steam_get_stat_int steam_get_stat_float ' +
+      'steam_get_stat_avg_rate steam_reset_all_stats ' +
+      'steam_reset_all_stats_achievements steam_stats_ready ' +
+      'steam_create_leaderboard steam_upload_score steam_upload_score_ext ' +
+      'steam_download_scores_around_user steam_download_scores ' +
+      'steam_download_friends_scores steam_upload_score_buffer ' +
+      'steam_upload_score_buffer_ext steam_current_game_language ' +
+      'steam_available_languages steam_activate_overlay_browser ' +
+      'steam_activate_overlay_user steam_activate_overlay_store ' +
+      'steam_get_user_persona_name steam_get_app_id ' +
+      'steam_get_user_account_id steam_ugc_download steam_ugc_create_item ' +
+      'steam_ugc_start_item_update steam_ugc_set_item_title ' +
+      'steam_ugc_set_item_description steam_ugc_set_item_visibility ' +
+      'steam_ugc_set_item_tags steam_ugc_set_item_content ' +
+      'steam_ugc_set_item_preview steam_ugc_submit_item_update ' +
+      'steam_ugc_get_item_update_progress steam_ugc_subscribe_item ' +
+      'steam_ugc_unsubscribe_item steam_ugc_num_subscribed_items ' +
+      'steam_ugc_get_subscribed_items steam_ugc_get_item_install_info ' +
+      'steam_ugc_get_item_update_info steam_ugc_request_item_details ' +
+      'steam_ugc_create_query_user steam_ugc_create_query_user_ex ' +
+      'steam_ugc_create_query_all steam_ugc_create_query_all_ex ' +
+      'steam_ugc_query_set_cloud_filename_filter ' +
+      'steam_ugc_query_set_match_any_tag steam_ugc_query_set_search_text ' +
+      'steam_ugc_query_set_ranked_by_trend_days ' +
+      'steam_ugc_query_add_required_tag steam_ugc_query_add_excluded_tag ' +
+      'steam_ugc_query_set_return_long_description ' +
+      'steam_ugc_query_set_return_total_only ' +
+      'steam_ugc_query_set_allow_cached_response steam_ugc_send_query ' +
+      'shader_set shader_get_name shader_reset shader_current ' +
+      'shader_is_compiled shader_get_sampler_index shader_get_uniform ' +
+      'shader_set_uniform_i shader_set_uniform_i_array shader_set_uniform_f ' +
+      'shader_set_uniform_f_array shader_set_uniform_matrix ' +
+      'shader_set_uniform_matrix_array shader_enable_corner_id ' +
+      'texture_set_stage texture_get_texel_width texture_get_texel_height ' +
+      'shaders_are_supported vertex_format_begin vertex_format_end ' +
+      'vertex_format_delete vertex_format_add_position ' +
+      'vertex_format_add_position_3d vertex_format_add_colour ' +
+      'vertex_format_add_color vertex_format_add_normal ' +
+      'vertex_format_add_texcoord vertex_format_add_textcoord ' +
+      'vertex_format_add_custom vertex_create_buffer ' +
+      'vertex_create_buffer_ext vertex_delete_buffer vertex_begin ' +
+      'vertex_end vertex_position vertex_position_3d vertex_colour ' +
+      'vertex_color vertex_argb vertex_texcoord vertex_normal vertex_float1 ' +
+      'vertex_float2 vertex_float3 vertex_float4 vertex_ubyte4 ' +
+      'vertex_submit vertex_freeze vertex_get_number vertex_get_buffer_size ' +
+      'vertex_create_buffer_from_buffer ' +
+      'vertex_create_buffer_from_buffer_ext push_local_notification ' +
+      'push_get_first_local_notification push_get_next_local_notification ' +
+      'push_cancel_local_notification skeleton_animation_set ' +
+      'skeleton_animation_get skeleton_animation_mix ' +
+      'skeleton_animation_set_ext skeleton_animation_get_ext ' +
+      'skeleton_animation_get_duration skeleton_animation_get_frames ' +
+      'skeleton_animation_clear skeleton_skin_set skeleton_skin_get ' +
+      'skeleton_attachment_set skeleton_attachment_get ' +
+      'skeleton_attachment_create skeleton_collision_draw_set ' +
+      'skeleton_bone_data_get skeleton_bone_data_set ' +
+      'skeleton_bone_state_get skeleton_bone_state_set skeleton_get_minmax ' +
+      'skeleton_get_num_bounds skeleton_get_bounds ' +
+      'skeleton_animation_get_frame skeleton_animation_set_frame ' +
+      'draw_skeleton draw_skeleton_time draw_skeleton_instance ' +
+      'draw_skeleton_collision skeleton_animation_list skeleton_skin_list ' +
+      'skeleton_slot_data layer_get_id layer_get_id_at_depth ' +
+      'layer_get_depth layer_create layer_destroy layer_destroy_instances ' +
+      'layer_add_instance layer_has_instance layer_set_visible ' +
+      'layer_get_visible layer_exists layer_x layer_y layer_get_x ' +
+      'layer_get_y layer_hspeed layer_vspeed layer_get_hspeed ' +
+      'layer_get_vspeed layer_script_begin layer_script_end layer_shader ' +
+      'layer_get_script_begin layer_get_script_end layer_get_shader ' +
+      'layer_set_target_room layer_get_target_room layer_reset_target_room ' +
+      'layer_get_all layer_get_all_elements layer_get_name layer_depth ' +
+      'layer_get_element_layer layer_get_element_type layer_element_move ' +
+      'layer_force_draw_depth layer_is_draw_depth_forced ' +
+      'layer_get_forced_depth layer_background_get_id ' +
+      'layer_background_exists layer_background_create ' +
+      'layer_background_destroy layer_background_visible ' +
+      'layer_background_change layer_background_sprite ' +
+      'layer_background_htiled layer_background_vtiled ' +
+      'layer_background_stretch layer_background_yscale ' +
+      'layer_background_xscale layer_background_blend ' +
+      'layer_background_alpha layer_background_index layer_background_speed ' +
+      'layer_background_get_visible layer_background_get_sprite ' +
+      'layer_background_get_htiled layer_background_get_vtiled ' +
+      'layer_background_get_stretch layer_background_get_yscale ' +
+      'layer_background_get_xscale layer_background_get_blend ' +
+      'layer_background_get_alpha layer_background_get_index ' +
+      'layer_background_get_speed layer_sprite_get_id layer_sprite_exists ' +
+      'layer_sprite_create layer_sprite_destroy layer_sprite_change ' +
+      'layer_sprite_index layer_sprite_speed layer_sprite_xscale ' +
+      'layer_sprite_yscale layer_sprite_angle layer_sprite_blend ' +
+      'layer_sprite_alpha layer_sprite_x layer_sprite_y ' +
+      'layer_sprite_get_sprite layer_sprite_get_index ' +
+      'layer_sprite_get_speed layer_sprite_get_xscale ' +
+      'layer_sprite_get_yscale layer_sprite_get_angle ' +
+      'layer_sprite_get_blend layer_sprite_get_alpha layer_sprite_get_x ' +
+      'layer_sprite_get_y layer_tilemap_get_id layer_tilemap_exists ' +
+      'layer_tilemap_create layer_tilemap_destroy tilemap_tileset tilemap_x ' +
+      'tilemap_y tilemap_set tilemap_set_at_pixel tilemap_get_tileset ' +
+      'tilemap_get_tile_width tilemap_get_tile_height tilemap_get_width ' +
+      'tilemap_get_height tilemap_get_x tilemap_get_y tilemap_get ' +
+      'tilemap_get_at_pixel tilemap_get_cell_x_at_pixel ' +
+      'tilemap_get_cell_y_at_pixel tilemap_clear draw_tilemap draw_tile ' +
+      'tilemap_set_global_mask tilemap_get_global_mask tilemap_set_mask ' +
+      'tilemap_get_mask tilemap_get_frame tile_set_empty tile_set_index ' +
+      'tile_set_flip tile_set_mirror tile_set_rotate tile_get_empty ' +
+      'tile_get_index tile_get_flip tile_get_mirror tile_get_rotate ' +
+      'layer_tile_exists layer_tile_create layer_tile_destroy ' +
+      'layer_tile_change layer_tile_xscale layer_tile_yscale ' +
+      'layer_tile_blend layer_tile_alpha layer_tile_x layer_tile_y ' +
+      'layer_tile_region layer_tile_visible layer_tile_get_sprite ' +
+      'layer_tile_get_xscale layer_tile_get_yscale layer_tile_get_blend ' +
+      'layer_tile_get_alpha layer_tile_get_x layer_tile_get_y ' +
+      'layer_tile_get_region layer_tile_get_visible ' +
+      'layer_instance_get_instance instance_activate_layer ' +
+      'instance_deactivate_layer camera_create camera_create_view ' +
+      'camera_destroy camera_apply camera_get_active camera_get_default ' +
+      'camera_set_default camera_set_view_mat camera_set_proj_mat ' +
+      'camera_set_update_script camera_set_begin_script ' +
+      'camera_set_end_script camera_set_view_pos camera_set_view_size ' +
+      'camera_set_view_speed camera_set_view_border camera_set_view_angle ' +
+      'camera_set_view_target camera_get_view_mat camera_get_proj_mat ' +
+      'camera_get_update_script camera_get_begin_script ' +
+      'camera_get_end_script camera_get_view_x camera_get_view_y ' +
+      'camera_get_view_width camera_get_view_height camera_get_view_speed_x ' +
+      'camera_get_view_speed_y camera_get_view_border_x ' +
+      'camera_get_view_border_y camera_get_view_angle ' +
+      'camera_get_view_target view_get_camera view_get_visible ' +
+      'view_get_xport view_get_yport view_get_wport view_get_hport ' +
+      'view_get_surface_id view_set_camera view_set_visible view_set_xport ' +
+      'view_set_yport view_set_wport view_set_hport view_set_surface_id ' +
+      'gesture_drag_time gesture_drag_distance gesture_flick_speed ' +
+      'gesture_double_tap_time gesture_double_tap_distance ' +
+      'gesture_pinch_distance gesture_pinch_angle_towards ' +
+      'gesture_pinch_angle_away gesture_rotate_time gesture_rotate_angle ' +
+      'gesture_tap_count gesture_get_drag_time gesture_get_drag_distance ' +
+      'gesture_get_flick_speed gesture_get_double_tap_time ' +
+      'gesture_get_double_tap_distance gesture_get_pinch_distance ' +
+      'gesture_get_pinch_angle_towards gesture_get_pinch_angle_away ' +
+      'gesture_get_rotate_time gesture_get_rotate_angle ' +
+      'gesture_get_tap_count keyboard_virtual_show keyboard_virtual_hide ' +
+      'keyboard_virtual_status keyboard_virtual_height',
+    literal: 'self other all noone global local undefined pointer_invalid ' +
+      'pointer_null path_action_stop path_action_restart ' +
+      'path_action_continue path_action_reverse true false pi GM_build_date ' +
+      'GM_version GM_runtime_version  timezone_local timezone_utc ' +
+      'gamespeed_fps gamespeed_microseconds  ev_create ev_destroy ev_step ' +
+      'ev_alarm ev_keyboard ev_mouse ev_collision ev_other ev_draw ' +
+      'ev_draw_begin ev_draw_end ev_draw_pre ev_draw_post ev_keypress ' +
+      'ev_keyrelease ev_trigger ev_left_button ev_right_button ' +
+      'ev_middle_button ev_no_button ev_left_press ev_right_press ' +
+      'ev_middle_press ev_left_release ev_right_release ev_middle_release ' +
+      'ev_mouse_enter ev_mouse_leave ev_mouse_wheel_up ev_mouse_wheel_down ' +
+      'ev_global_left_button ev_global_right_button ev_global_middle_button ' +
+      'ev_global_left_press ev_global_right_press ev_global_middle_press ' +
+      'ev_global_left_release ev_global_right_release ' +
+      'ev_global_middle_release ev_joystick1_left ev_joystick1_right ' +
+      'ev_joystick1_up ev_joystick1_down ev_joystick1_button1 ' +
+      'ev_joystick1_button2 ev_joystick1_button3 ev_joystick1_button4 ' +
+      'ev_joystick1_button5 ev_joystick1_button6 ev_joystick1_button7 ' +
+      'ev_joystick1_button8 ev_joystick2_left ev_joystick2_right ' +
+      'ev_joystick2_up ev_joystick2_down ev_joystick2_button1 ' +
+      'ev_joystick2_button2 ev_joystick2_button3 ev_joystick2_button4 ' +
+      'ev_joystick2_button5 ev_joystick2_button6 ev_joystick2_button7 ' +
+      'ev_joystick2_button8 ev_outside ev_boundary ev_game_start ' +
+      'ev_game_end ev_room_start ev_room_end ev_no_more_lives ' +
+      'ev_animation_end ev_end_of_path ev_no_more_health ev_close_button ' +
+      'ev_user0 ev_user1 ev_user2 ev_user3 ev_user4 ev_user5 ev_user6 ' +
+      'ev_user7 ev_user8 ev_user9 ev_user10 ev_user11 ev_user12 ev_user13 ' +
+      'ev_user14 ev_user15 ev_step_normal ev_step_begin ev_step_end ev_gui ' +
+      'ev_gui_begin ev_gui_end ev_cleanup ev_gesture ev_gesture_tap ' +
+      'ev_gesture_double_tap ev_gesture_drag_start ev_gesture_dragging ' +
+      'ev_gesture_drag_end ev_gesture_flick ev_gesture_pinch_start ' +
+      'ev_gesture_pinch_in ev_gesture_pinch_out ev_gesture_pinch_end ' +
+      'ev_gesture_rotate_start ev_gesture_rotating ev_gesture_rotate_end ' +
+      'ev_global_gesture_tap ev_global_gesture_double_tap ' +
+      'ev_global_gesture_drag_start ev_global_gesture_dragging ' +
+      'ev_global_gesture_drag_end ev_global_gesture_flick ' +
+      'ev_global_gesture_pinch_start ev_global_gesture_pinch_in ' +
+      'ev_global_gesture_pinch_out ev_global_gesture_pinch_end ' +
+      'ev_global_gesture_rotate_start ev_global_gesture_rotating ' +
+      'ev_global_gesture_rotate_end vk_nokey vk_anykey vk_enter vk_return ' +
+      'vk_shift vk_control vk_alt vk_escape vk_space vk_backspace vk_tab ' +
+      'vk_pause vk_printscreen vk_left vk_right vk_up vk_down vk_home ' +
+      'vk_end vk_delete vk_insert vk_pageup vk_pagedown vk_f1 vk_f2 vk_f3 ' +
+      'vk_f4 vk_f5 vk_f6 vk_f7 vk_f8 vk_f9 vk_f10 vk_f11 vk_f12 vk_numpad0 ' +
+      'vk_numpad1 vk_numpad2 vk_numpad3 vk_numpad4 vk_numpad5 vk_numpad6 ' +
+      'vk_numpad7 vk_numpad8 vk_numpad9 vk_divide vk_multiply vk_subtract ' +
+      'vk_add vk_decimal vk_lshift vk_lcontrol vk_lalt vk_rshift ' +
+      'vk_rcontrol vk_ralt  mb_any mb_none mb_left mb_right mb_middle ' +
+      'c_aqua c_black c_blue c_dkgray c_fuchsia c_gray c_green c_lime ' +
+      'c_ltgray c_maroon c_navy c_olive c_purple c_red c_silver c_teal ' +
+      'c_white c_yellow c_orange fa_left fa_center fa_right fa_top ' +
+      'fa_middle fa_bottom pr_pointlist pr_linelist pr_linestrip ' +
+      'pr_trianglelist pr_trianglestrip pr_trianglefan bm_complex bm_normal ' +
+      'bm_add bm_max bm_subtract bm_zero bm_one bm_src_colour ' +
+      'bm_inv_src_colour bm_src_color bm_inv_src_color bm_src_alpha ' +
+      'bm_inv_src_alpha bm_dest_alpha bm_inv_dest_alpha bm_dest_colour ' +
+      'bm_inv_dest_colour bm_dest_color bm_inv_dest_color bm_src_alpha_sat ' +
+      'tf_point tf_linear tf_anisotropic mip_off mip_on mip_markedonly ' +
+      'audio_falloff_none audio_falloff_inverse_distance ' +
+      'audio_falloff_inverse_distance_clamped audio_falloff_linear_distance ' +
+      'audio_falloff_linear_distance_clamped ' +
+      'audio_falloff_exponent_distance ' +
+      'audio_falloff_exponent_distance_clamped audio_old_system ' +
+      'audio_new_system audio_mono audio_stereo audio_3d cr_default cr_none ' +
+      'cr_arrow cr_cross cr_beam cr_size_nesw cr_size_ns cr_size_nwse ' +
+      'cr_size_we cr_uparrow cr_hourglass cr_drag cr_appstart cr_handpoint ' +
+      'cr_size_all spritespeed_framespersecond ' +
+      'spritespeed_framespergameframe asset_object asset_unknown ' +
+      'asset_sprite asset_sound asset_room asset_path asset_script ' +
+      'asset_font asset_timeline asset_tiles asset_shader fa_readonly ' +
+      'fa_hidden fa_sysfile fa_volumeid fa_directory fa_archive  ' +
+      'ds_type_map ds_type_list ds_type_stack ds_type_queue ds_type_grid ' +
+      'ds_type_priority ef_explosion ef_ring ef_ellipse ef_firework ' +
+      'ef_smoke ef_smokeup ef_star ef_spark ef_flare ef_cloud ef_rain ' +
+      'ef_snow pt_shape_pixel pt_shape_disk pt_shape_square pt_shape_line ' +
+      'pt_shape_star pt_shape_circle pt_shape_ring pt_shape_sphere ' +
+      'pt_shape_flare pt_shape_spark pt_shape_explosion pt_shape_cloud ' +
+      'pt_shape_smoke pt_shape_snow ps_distr_linear ps_distr_gaussian ' +
+      'ps_distr_invgaussian ps_shape_rectangle ps_shape_ellipse ' +
+      'ps_shape_diamond ps_shape_line ty_real ty_string dll_cdecl ' +
+      'dll_stdcall matrix_view matrix_projection matrix_world os_win32 ' +
+      'os_windows os_macosx os_ios os_android os_symbian os_linux ' +
+      'os_unknown os_winphone os_tizen os_win8native ' +
+      'os_wiiu os_3ds  os_psvita os_bb10 os_ps4 os_xboxone ' +
+      'os_ps3 os_xbox360 os_uwp os_tvos os_switch ' +
+      'browser_not_a_browser browser_unknown browser_ie browser_firefox ' +
+      'browser_chrome browser_safari browser_safari_mobile browser_opera ' +
+      'browser_tizen browser_edge browser_windows_store browser_ie_mobile  ' +
+      'device_ios_unknown device_ios_iphone device_ios_iphone_retina ' +
+      'device_ios_ipad device_ios_ipad_retina device_ios_iphone5 ' +
+      'device_ios_iphone6 device_ios_iphone6plus device_emulator ' +
+      'device_tablet display_landscape display_landscape_flipped ' +
+      'display_portrait display_portrait_flipped tm_sleep tm_countvsyncs ' +
+      'of_challenge_win of_challen ge_lose of_challenge_tie ' +
+      'leaderboard_type_number leaderboard_type_time_mins_secs ' +
+      'cmpfunc_never cmpfunc_less cmpfunc_equal cmpfunc_lessequal ' +
+      'cmpfunc_greater cmpfunc_notequal cmpfunc_greaterequal cmpfunc_always ' +
+      'cull_noculling cull_clockwise cull_counterclockwise lighttype_dir ' +
+      'lighttype_point iap_ev_storeload iap_ev_product iap_ev_purchase ' +
+      'iap_ev_consume iap_ev_restore iap_storeload_ok iap_storeload_failed ' +
+      'iap_status_uninitialised iap_status_unavailable iap_status_loading ' +
+      'iap_status_available iap_status_processing iap_status_restoring ' +
+      'iap_failed iap_unavailable iap_available iap_purchased iap_canceled ' +
+      'iap_refunded fb_login_default fb_login_fallback_to_webview ' +
+      'fb_login_no_fallback_to_webview fb_login_forcing_webview ' +
+      'fb_login_use_system_account fb_login_forcing_safari  ' +
+      'phy_joint_anchor_1_x phy_joint_anchor_1_y phy_joint_anchor_2_x ' +
+      'phy_joint_anchor_2_y phy_joint_reaction_force_x ' +
+      'phy_joint_reaction_force_y phy_joint_reaction_torque ' +
+      'phy_joint_motor_speed phy_joint_angle phy_joint_motor_torque ' +
+      'phy_joint_max_motor_torque phy_joint_translation phy_joint_speed ' +
+      'phy_joint_motor_force phy_joint_max_motor_force phy_joint_length_1 ' +
+      'phy_joint_length_2 phy_joint_damping_ratio phy_joint_frequency ' +
+      'phy_joint_lower_angle_limit phy_joint_upper_angle_limit ' +
+      'phy_joint_angle_limits phy_joint_max_length phy_joint_max_torque ' +
+      'phy_joint_max_force phy_debug_render_aabb ' +
+      'phy_debug_render_collision_pairs phy_debug_render_coms ' +
+      'phy_debug_render_core_shapes phy_debug_render_joints ' +
+      'phy_debug_render_obb phy_debug_render_shapes  ' +
+      'phy_particle_flag_water phy_particle_flag_zombie ' +
+      'phy_particle_flag_wall phy_particle_flag_spring ' +
+      'phy_particle_flag_elastic phy_particle_flag_viscous ' +
+      'phy_particle_flag_powder phy_particle_flag_tensile ' +
+      'phy_particle_flag_colourmixing phy_particle_flag_colormixing ' +
+      'phy_particle_group_flag_solid phy_particle_group_flag_rigid ' +
+      'phy_particle_data_flag_typeflags phy_particle_data_flag_position ' +
+      'phy_particle_data_flag_velocity phy_particle_data_flag_colour ' +
+      'phy_particle_data_flag_color phy_particle_data_flag_category  ' +
+      'achievement_our_info achievement_friends_info ' +
+      'achievement_leaderboard_info achievement_achievement_info ' +
+      'achievement_filter_all_players achievement_filter_friends_only ' +
+      'achievement_filter_favorites_only ' +
+      'achievement_type_achievement_challenge ' +
+      'achievement_type_score_challenge achievement_pic_loaded  ' +
+      'achievement_show_ui achievement_show_profile ' +
+      'achievement_show_leaderboard achievement_show_achievement ' +
+      'achievement_show_bank achievement_show_friend_picker ' +
+      'achievement_show_purchase_prompt network_socket_tcp ' +
+      'network_socket_udp network_socket_bluetooth network_type_connect ' +
+      'network_type_disconnect network_type_data ' +
+      'network_type_non_blocking_connect network_config_connect_timeout ' +
+      'network_config_use_non_blocking_socket ' +
+      'network_config_enable_reliable_udp ' +
+      'network_config_disable_reliable_udp buffer_fixed buffer_grow ' +
+      'buffer_wrap buffer_fast buffer_vbuffer buffer_network buffer_u8 ' +
+      'buffer_s8 buffer_u16 buffer_s16 buffer_u32 buffer_s32 buffer_u64 ' +
+      'buffer_f16 buffer_f32 buffer_f64 buffer_bool buffer_text ' +
+      'buffer_string buffer_surface_copy buffer_seek_start ' +
+      'buffer_seek_relative buffer_seek_end ' +
+      'buffer_generalerror buffer_outofspace buffer_outofbounds ' +
+      'buffer_invalidtype  text_type button_type input_type ANSI_CHARSET ' +
+      'DEFAULT_CHARSET EASTEUROPE_CHARSET RUSSIAN_CHARSET SYMBOL_CHARSET ' +
+      'SHIFTJIS_CHARSET HANGEUL_CHARSET GB2312_CHARSET CHINESEBIG5_CHARSET ' +
+      'JOHAB_CHARSET HEBREW_CHARSET ARABIC_CHARSET GREEK_CHARSET ' +
+      'TURKISH_CHARSET VIETNAMESE_CHARSET THAI_CHARSET MAC_CHARSET ' +
+      'BALTIC_CHARSET OEM_CHARSET  gp_face1 gp_face2 gp_face3 gp_face4 ' +
+      'gp_shoulderl gp_shoulderr gp_shoulderlb gp_shoulderrb gp_select ' +
+      'gp_start gp_stickl gp_stickr gp_padu gp_padd gp_padl gp_padr ' +
+      'gp_axislh gp_axislv gp_axisrh gp_axisrv ov_friends ov_community ' +
+      'ov_players ov_settings ov_gamegroup ov_achievements lb_sort_none ' +
+      'lb_sort_ascending lb_sort_descending lb_disp_none lb_disp_numeric ' +
+      'lb_disp_time_sec lb_disp_time_ms ugc_result_success ' +
+      'ugc_filetype_community ugc_filetype_microtrans ugc_visibility_public ' +
+      'ugc_visibility_friends_only ugc_visibility_private ' +
+      'ugc_query_RankedByVote ugc_query_RankedByPublicationDate ' +
+      'ugc_query_AcceptedForGameRankedByAcceptanceDate ' +
+      'ugc_query_RankedByTrend ' +
+      'ugc_query_FavoritedByFriendsRankedByPublicationDate ' +
+      'ugc_query_CreatedByFriendsRankedByPublicationDate ' +
+      'ugc_query_RankedByNumTimesReported ' +
+      'ugc_query_CreatedByFollowedUsersRankedByPublicationDate ' +
+      'ugc_query_NotYetRated ugc_query_RankedByTotalVotesAsc ' +
+      'ugc_query_RankedByVotesUp ugc_query_RankedByTextSearch ' +
+      'ugc_sortorder_CreationOrderDesc ugc_sortorder_CreationOrderAsc ' +
+      'ugc_sortorder_TitleAsc ugc_sortorder_LastUpdatedDesc ' +
+      'ugc_sortorder_SubscriptionDateDesc ugc_sortorder_VoteScoreDesc ' +
+      'ugc_sortorder_ForModeration ugc_list_Published ugc_list_VotedOn ' +
+      'ugc_list_VotedUp ugc_list_VotedDown ugc_list_WillVoteLater ' +
+      'ugc_list_Favorited ugc_list_Subscribed ugc_list_UsedOrPlayed ' +
+      'ugc_list_Followed ugc_match_Items ugc_match_Items_Mtx ' +
+      'ugc_match_Items_ReadyToUse ugc_match_Collections ugc_match_Artwork ' +
+      'ugc_match_Videos ugc_match_Screenshots ugc_match_AllGuides ' +
+      'ugc_match_WebGuides ugc_match_IntegratedGuides ' +
+      'ugc_match_UsableInGame ugc_match_ControllerBindings  ' +
+      'vertex_usage_position vertex_usage_colour vertex_usage_color ' +
+      'vertex_usage_normal vertex_usage_texcoord vertex_usage_textcoord ' +
+      'vertex_usage_blendweight vertex_usage_blendindices ' +
+      'vertex_usage_psize vertex_usage_tangent vertex_usage_binormal ' +
+      'vertex_usage_fog vertex_usage_depth vertex_usage_sample ' +
+      'vertex_type_float1 vertex_type_float2 vertex_type_float3 ' +
+      'vertex_type_float4 vertex_type_colour vertex_type_color ' +
+      'vertex_type_ubyte4 layerelementtype_undefined ' +
+      'layerelementtype_background layerelementtype_instance ' +
+      'layerelementtype_oldtilemap layerelementtype_sprite ' +
+      'layerelementtype_tilemap layerelementtype_particlesystem ' +
+      'layerelementtype_tile tile_rotate tile_flip tile_mirror ' +
+      'tile_index_mask kbv_type_default kbv_type_ascii kbv_type_url ' +
+      'kbv_type_email kbv_type_numbers kbv_type_phone kbv_type_phone_name ' +
+      'kbv_returnkey_default kbv_returnkey_go kbv_returnkey_google ' +
+      'kbv_returnkey_join kbv_returnkey_next kbv_returnkey_route ' +
+      'kbv_returnkey_search kbv_returnkey_send kbv_returnkey_yahoo ' +
+      'kbv_returnkey_done kbv_returnkey_continue kbv_returnkey_emergency ' +
+      'kbv_autocapitalize_none kbv_autocapitalize_words ' +
+      'kbv_autocapitalize_sentences kbv_autocapitalize_characters',
+    symbol: 'argument_relative argument argument0 argument1 argument2 ' +
+      'argument3 argument4 argument5 argument6 argument7 argument8 ' +
+      'argument9 argument10 argument11 argument12 argument13 argument14 ' +
+      'argument15 argument_count x y xprevious yprevious xstart ystart ' +
+      'hspeed vspeed direction speed friction gravity gravity_direction ' +
+      'path_index path_position path_positionprevious path_speed ' +
+      'path_scale path_orientation path_endaction object_index id solid ' +
+      'persistent mask_index instance_count instance_id room_speed fps ' +
+      'fps_real current_time current_year current_month current_day ' +
+      'current_weekday current_hour current_minute current_second alarm ' +
+      'timeline_index timeline_position timeline_speed timeline_running ' +
+      'timeline_loop room room_first room_last room_width room_height ' +
+      'room_caption room_persistent score lives health show_score ' +
+      'show_lives show_health caption_score caption_lives caption_health ' +
+      'event_type event_number event_object event_action ' +
+      'application_surface gamemaker_pro gamemaker_registered ' +
+      'gamemaker_version error_occurred error_last debug_mode ' +
+      'keyboard_key keyboard_lastkey keyboard_lastchar keyboard_string ' +
+      'mouse_x mouse_y mouse_button mouse_lastbutton cursor_sprite ' +
+      'visible sprite_index sprite_width sprite_height sprite_xoffset ' +
+      'sprite_yoffset image_number image_index image_speed depth ' +
+      'image_xscale image_yscale image_angle image_alpha image_blend ' +
+      'bbox_left bbox_right bbox_top bbox_bottom layer background_colour  ' +
+      'background_showcolour background_color background_showcolor ' +
+      'view_enabled view_current view_visible view_xview view_yview ' +
+      'view_wview view_hview view_xport view_yport view_wport view_hport ' +
+      'view_angle view_hborder view_vborder view_hspeed view_vspeed ' +
+      'view_object view_surface_id view_camera game_id game_display_name ' +
+      'game_project_name game_save_id working_directory temp_directory ' +
+      'program_directory browser_width browser_height os_type os_device ' +
+      'os_browser os_version display_aa async_load delta_time ' +
+      'webgl_enabled event_data iap_data phy_rotation phy_position_x ' +
+      'phy_position_y phy_angular_velocity phy_linear_velocity_x ' +
+      'phy_linear_velocity_y phy_speed_x phy_speed_y phy_speed ' +
+      'phy_angular_damping phy_linear_damping phy_bullet ' +
+      'phy_fixed_rotation phy_active phy_mass phy_inertia phy_com_x ' +
+      'phy_com_y phy_dynamic phy_kinematic phy_sleeping ' +
+      'phy_collision_points phy_collision_x phy_collision_y ' +
+      'phy_col_normal_x phy_col_normal_y phy_position_xprevious ' +
+      'phy_position_yprevious'
+  };
+
+  return {
+    name: 'GML',
+    aliases: ['gml', 'GML'],
+    case_insensitive: false, // language is case-insensitive
+    keywords: GML_KEYWORDS,
+
+    contains: [
+      hljs.C_LINE_COMMENT_MODE,
+      hljs.C_BLOCK_COMMENT_MODE,
+      hljs.APOS_STRING_MODE,
+      hljs.QUOTE_STRING_MODE,
+      hljs.C_NUMBER_MODE
+    ]
+  };
+}
+
+module.exports = gml;

+ 65 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/go.js

@@ -0,0 +1,65 @@
+/*
+Language: Go
+Author: Stephan Kountso aka StepLg <steplg@gmail.com>
+Contributors: Evgeny Stepanischev <imbolk@gmail.com>
+Description: Google go language (golang). For info about language
+Website: http://golang.org/
+Category: common, system
+*/
+
+function go(hljs) {
+  var GO_KEYWORDS = {
+    keyword:
+      'break default func interface select case map struct chan else goto package switch ' +
+      'const fallthrough if range type continue for import return var go defer ' +
+      'bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 ' +
+      'uint16 uint32 uint64 int uint uintptr rune',
+    literal:
+       'true false iota nil',
+    built_in:
+      'append cap close complex copy imag len make new panic print println real recover delete'
+  };
+  return {
+    name: 'Go',
+    aliases: ['golang'],
+    keywords: GO_KEYWORDS,
+    illegal: '</',
+    contains: [
+      hljs.C_LINE_COMMENT_MODE,
+      hljs.C_BLOCK_COMMENT_MODE,
+      {
+        className: 'string',
+        variants: [
+          hljs.QUOTE_STRING_MODE,
+          hljs.APOS_STRING_MODE,
+          {begin: '`', end: '`'},
+        ]
+      },
+      {
+        className: 'number',
+        variants: [
+          {begin: hljs.C_NUMBER_RE + '[i]', relevance: 1},
+          hljs.C_NUMBER_MODE
+        ]
+      },
+      {
+        begin: /:=/ // relevance booster
+      },
+      {
+        className: 'function',
+        beginKeywords: 'func', end: '\\s*(\\{|$)', excludeEnd: true,
+        contains: [
+          hljs.TITLE_MODE,
+          {
+            className: 'params',
+            begin: /\(/, end: /\)/,
+            keywords: GO_KEYWORDS,
+            illegal: /["']/
+          }
+        ]
+      }
+    ]
+  };
+}
+
+module.exports = go;

+ 32 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/golo.js

@@ -0,0 +1,32 @@
+/*
+Language: Golo
+Author: Philippe Charriere <ph.charriere@gmail.com>
+Description: a lightweight dynamic language for the JVM
+Website: http://golo-lang.org/
+*/
+
+function golo(hljs) {
+    return {
+      name: 'Golo',
+      keywords: {
+        keyword:
+          'println readln print import module function local return let var ' +
+          'while for foreach times in case when match with break continue ' +
+          'augment augmentation each find filter reduce ' +
+          'if then else otherwise try catch finally raise throw orIfNull ' +
+          'DynamicObject|10 DynamicVariable struct Observable map set vector list array',
+        literal:
+          'true false null'
+      },
+      contains: [
+        hljs.HASH_COMMENT_MODE,
+        hljs.QUOTE_STRING_MODE,
+        hljs.C_NUMBER_MODE,
+        {
+          className: 'meta', begin: '@[A-Za-z]+'
+        }
+      ]
+    }
+}
+
+module.exports = golo;

+ 44 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/gradle.js

@@ -0,0 +1,44 @@
+/*
+Language: Gradle
+Description: Gradle is an open-source build automation tool focused on flexibility and performance.
+Website: https://gradle.org
+Author: Damian Mee <mee.damian@gmail.com>
+*/
+
+function gradle(hljs) {
+  return {
+    name: 'Gradle',
+    case_insensitive: true,
+    keywords: {
+      keyword:
+        'task project allprojects subprojects artifacts buildscript configurations ' +
+        'dependencies repositories sourceSets description delete from into include ' +
+        'exclude source classpath destinationDir includes options sourceCompatibility ' +
+        'targetCompatibility group flatDir doLast doFirst flatten todir fromdir ant ' +
+        'def abstract break case catch continue default do else extends final finally ' +
+        'for if implements instanceof native new private protected public return static ' +
+        'switch synchronized throw throws transient try volatile while strictfp package ' +
+        'import false null super this true antlrtask checkstyle codenarc copy boolean ' +
+        'byte char class double float int interface long short void compile runTime ' +
+        'file fileTree abs any append asList asWritable call collect compareTo count ' +
+        'div dump each eachByte eachFile eachLine every find findAll flatten getAt ' +
+        'getErr getIn getOut getText grep immutable inject inspect intersect invokeMethods ' +
+        'isCase join leftShift minus multiply newInputStream newOutputStream newPrintWriter ' +
+        'newReader newWriter next plus pop power previous print println push putAt read ' +
+        'readBytes readLines reverse reverseEach round size sort splitEachLine step subMap ' +
+        'times toInteger toList tokenize upto waitForOrKill withPrintWriter withReader ' +
+        'withStream withWriter withWriterAppend write writeLine'
+    },
+    contains: [
+      hljs.C_LINE_COMMENT_MODE,
+      hljs.C_BLOCK_COMMENT_MODE,
+      hljs.APOS_STRING_MODE,
+      hljs.QUOTE_STRING_MODE,
+      hljs.NUMBER_MODE,
+      hljs.REGEXP_MODE
+
+    ]
+  }
+}
+
+module.exports = gradle;

+ 159 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/groovy.js

@@ -0,0 +1,159 @@
+/**
+ * @param {string} value
+ * @returns {RegExp}
+ * */
+
+/**
+ * @param {RegExp | string } re
+ * @returns {string}
+ */
+function source(re) {
+  if (!re) return null;
+  if (typeof re === "string") return re;
+
+  return re.source;
+}
+
+/**
+ * @param {RegExp | string } re
+ * @returns {string}
+ */
+function lookahead(re) {
+  return concat('(?=', re, ')');
+}
+
+/**
+ * @param {...(RegExp | string) } args
+ * @returns {string}
+ */
+function concat(...args) {
+  const joined = args.map((x) => source(x)).join("");
+  return joined;
+}
+
+/*
+ Language: Groovy
+ Author: Guillaume Laforge <glaforge@gmail.com>
+ Description: Groovy programming language implementation inspired from Vsevolod's Java mode
+ Website: https://groovy-lang.org
+ */
+
+function variants(variants, obj = {}) {
+  obj.variants = variants;
+  return obj;
+}
+
+function groovy(hljs) {
+  const IDENT_RE = '[A-Za-z0-9_$]+';
+  const COMMENT = variants([
+    hljs.C_LINE_COMMENT_MODE,
+    hljs.C_BLOCK_COMMENT_MODE,
+    hljs.COMMENT(
+      '/\\*\\*',
+      '\\*/',
+      {
+        relevance : 0,
+        contains : [
+          {
+            // eat up @'s in emails to prevent them to be recognized as doctags
+            begin: /\w+@/, relevance: 0
+          }, {
+            className : 'doctag',
+            begin : '@[A-Za-z]+'
+          }
+        ]
+      }
+    )
+  ]);
+  const REGEXP = {
+    className: 'regexp',
+    begin: /~?\/[^\/\n]+\//,
+    contains: [
+      hljs.BACKSLASH_ESCAPE
+    ]
+  };
+  const NUMBER = variants([
+    hljs.BINARY_NUMBER_MODE,
+    hljs.C_NUMBER_MODE,
+  ]);
+  const STRING = variants([
+    {
+      begin: /"""/,
+      end: /"""/
+    }, {
+      begin: /'''/,
+      end: /'''/
+    }, {
+      begin: "\\$/",
+      end: "/\\$",
+      relevance: 10
+    },
+    hljs.APOS_STRING_MODE,
+    hljs.QUOTE_STRING_MODE,
+    ],
+    { className: "string" }
+  );
+
+    return {
+        name: 'Groovy',
+        keywords: {
+            built_in: 'this super',
+            literal: 'true false null',
+            keyword:
+            'byte short char int long boolean float double void ' +
+            // groovy specific keywords
+            'def as in assert trait ' +
+            // common keywords with Java
+            'abstract static volatile transient public private protected synchronized final ' +
+            'class interface enum if else for while switch case break default continue ' +
+            'throw throws try catch finally implements extends new import package return instanceof'
+        },
+        contains: [
+            hljs.SHEBANG(),
+            COMMENT,
+            STRING,
+            REGEXP,
+            NUMBER,
+            {
+                className: 'class',
+                beginKeywords: 'class interface trait enum', end: '{',
+                illegal: ':',
+                contains: [
+                    {beginKeywords: 'extends implements'},
+                    hljs.UNDERSCORE_TITLE_MODE
+                ]
+            },
+            {
+                className: 'meta', begin: '@[A-Za-z]+'
+            },
+            {
+              // highlight map keys and named parameters as attrs
+              className: 'attr', begin: IDENT_RE + '[ \t]*:'
+            },
+            {
+              // catch middle element of the ternary operator
+              // to avoid highlight it as a label, named parameter, or map key
+              begin: /\?/,
+              end: /:/,
+              contains: [
+                COMMENT,
+                STRING,
+                REGEXP,
+                NUMBER,
+                'self'
+              ]
+            },
+            {
+                // highlight labeled statements
+                className: 'symbol',
+                begin: '^[ \t]*' + lookahead(IDENT_RE + ':'),
+                excludeBegin: true,
+                end: IDENT_RE + ':',
+                relevance: 0
+            }
+        ],
+        illegal: /#|<\//
+    };
+}
+
+module.exports = groovy;

+ 117 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/haml.js

@@ -0,0 +1,117 @@
+/*
+Language: HAML
+Requires: ruby.js
+Author: Dan Allen <dan.j.allen@gmail.com>
+Website: http://haml.info
+Category: template
+*/
+
+// TODO support filter tags like :javascript, support inline HTML
+function haml(hljs) {
+  return {
+    name: 'HAML',
+    case_insensitive: true,
+    contains: [
+      {
+        className: 'meta',
+        begin: '^!!!( (5|1\\.1|Strict|Frameset|Basic|Mobile|RDFa|XML\\b.*))?$',
+        relevance: 10
+      },
+      // FIXME these comments should be allowed to span indented lines
+      hljs.COMMENT(
+        '^\\s*(!=#|=#|-#|/).*$',
+        false,
+        {
+          relevance: 0
+        }
+      ),
+      {
+        begin: '^\\s*(-|=|!=)(?!#)',
+        starts: {
+          end: '\\n',
+          subLanguage: 'ruby'
+        }
+      },
+      {
+        className: 'tag',
+        begin: '^\\s*%',
+        contains: [
+          {
+            className: 'selector-tag',
+            begin: '\\w+'
+          },
+          {
+            className: 'selector-id',
+            begin: '#[\\w-]+'
+          },
+          {
+            className: 'selector-class',
+            begin: '\\.[\\w-]+'
+          },
+          {
+            begin: '{\\s*',
+            end: '\\s*}',
+            contains: [
+              {
+                begin: ':\\w+\\s*=>',
+                end: ',\\s+',
+                returnBegin: true,
+                endsWithParent: true,
+                contains: [
+                  {
+                    className: 'attr',
+                    begin: ':\\w+'
+                  },
+                  hljs.APOS_STRING_MODE,
+                  hljs.QUOTE_STRING_MODE,
+                  {
+                    begin: '\\w+',
+                    relevance: 0
+                  }
+                ]
+              }
+            ]
+          },
+          {
+            begin: '\\(\\s*',
+            end: '\\s*\\)',
+            excludeEnd: true,
+            contains: [
+              {
+                begin: '\\w+\\s*=',
+                end: '\\s+',
+                returnBegin: true,
+                endsWithParent: true,
+                contains: [
+                  {
+                    className: 'attr',
+                    begin: '\\w+',
+                    relevance: 0
+                  },
+                  hljs.APOS_STRING_MODE,
+                  hljs.QUOTE_STRING_MODE,
+                  {
+                    begin: '\\w+',
+                    relevance: 0
+                  }
+                ]
+              }
+            ]
+          }
+        ]
+      },
+      {
+        begin: '^\\s*[=~]\\s*'
+      },
+      {
+        begin: '#{',
+        starts: {
+          end: '}',
+          subLanguage: 'ruby'
+        }
+      }
+    ]
+  };
+}
+
+module.exports = haml;

+ 270 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/handlebars.js

@@ -0,0 +1,270 @@
+/**
+ * @param {string} value
+ * @returns {RegExp}
+ * */
+
+/**
+ * @param {RegExp | string } re
+ * @returns {string}
+ */
+function source(re) {
+  if (!re) return null;
+  if (typeof re === "string") return re;
+
+  return re.source;
+}
+
+/**
+ * @param {...(RegExp | string) } args
+ * @returns {string}
+ */
+function concat(...args) {
+  const joined = args.map((x) => source(x)).join("");
+  return joined;
+}
+
+/*
+Language: Handlebars
+Requires: xml.js
+Author: Robin Ward <robin.ward@gmail.com>
+Description: Matcher for Handlebars as well as EmberJS additions.
+Website: https://handlebarsjs.com
+Category: template
+*/
+
+function handlebars(hljs) {
+  const BUILT_INS = {
+    'builtin-name': [
+      'action',
+      'bindattr',
+      'collection',
+      'component',
+      'concat',
+      'debugger',
+      'each',
+      'each-in',
+      'get',
+      'hash',
+      'if',
+      'in',
+      'input',
+      'link-to',
+      'loc',
+      'log',
+      'lookup',
+      'mut',
+      'outlet',
+      'partial',
+      'query-params',
+      'render',
+      'template',
+      'textarea',
+      'unbound',
+      'unless',
+      'view',
+      'with',
+      'yield'
+    ].join(" ")
+  };
+
+  const LITERALS = {
+    literal: [
+      'true',
+      'false',
+      'undefined',
+      'null'
+    ].join(" ")
+  };
+
+  // as defined in https://handlebarsjs.com/guide/expressions.html#literal-segments
+  // this regex matches literal segments like ' abc ' or [ abc ] as well as helpers and paths
+  // like a/b, ./abc/cde, and abc.bcd
+
+  const DOUBLE_QUOTED_ID_REGEX=/".*?"/;
+  const SINGLE_QUOTED_ID_REGEX=/'.*?'/;
+  const BRACKET_QUOTED_ID_REGEX=/\[.*?\]/;
+  const PLAIN_ID_REGEX=/[^\s!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~]+/;
+  const PATH_DELIMITER_REGEX=/\.|\//;
+
+  const IDENTIFIER_REGEX = concat(
+    '(',
+    SINGLE_QUOTED_ID_REGEX, '|',
+    DOUBLE_QUOTED_ID_REGEX, '|',
+    BRACKET_QUOTED_ID_REGEX, '|',
+    PLAIN_ID_REGEX, '|',
+    PATH_DELIMITER_REGEX,
+    ')+'
+  );
+
+  // identifier followed by a equal-sign (without the equal sign)
+  const HASH_PARAM_REGEX = concat(
+    '(',
+    BRACKET_QUOTED_ID_REGEX, '|',
+    PLAIN_ID_REGEX,
+    ')(?==)'
+  );
+
+  const HELPER_NAME_OR_PATH_EXPRESSION = {
+    begin: IDENTIFIER_REGEX,
+    lexemes: /[\w.\/]+/
+  };
+
+  const HELPER_PARAMETER = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {
+    keywords: LITERALS
+  });
+
+  const SUB_EXPRESSION = {
+    begin: /\(/,
+    end: /\)/
+    // the "contains" is added below when all necessary sub-modes are defined
+  };
+
+  const HASH = {
+    // fka "attribute-assignment", parameters of the form 'key=value'
+    className: 'attr',
+    begin: HASH_PARAM_REGEX,
+    relevance: 0,
+    starts: {
+      begin: /=/,
+      end: /=/,
+      starts: {
+        contains: [
+          hljs.NUMBER_MODE,
+          hljs.QUOTE_STRING_MODE,
+          hljs.APOS_STRING_MODE,
+          HELPER_PARAMETER,
+          SUB_EXPRESSION
+        ]
+      }
+    }
+  };
+
+  const BLOCK_PARAMS = {
+    // parameters of the form '{{#with x as | y |}}...{{/with}}'
+    begin: /as\s+\|/,
+    keywords: { keyword: 'as' },
+    end: /\|/,
+    contains: [
+      {
+        // define sub-mode in order to prevent highlighting of block-parameter named "as"
+        begin: /\w+/
+      }
+    ]
+  };
+
+  const HELPER_PARAMETERS = {
+    contains: [
+      hljs.NUMBER_MODE,
+      hljs.QUOTE_STRING_MODE,
+      hljs.APOS_STRING_MODE,
+      BLOCK_PARAMS,
+      HASH,
+      HELPER_PARAMETER,
+      SUB_EXPRESSION
+    ],
+    returnEnd: true
+    // the property "end" is defined through inheritance when the mode is used. If depends
+    // on the surrounding mode, but "endsWithParent" does not work here (i.e. it includes the
+    // end-token of the surrounding mode)
+  };
+
+  const SUB_EXPRESSION_CONTENTS = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {
+    className: 'name',
+    keywords: BUILT_INS,
+    starts: hljs.inherit(HELPER_PARAMETERS, {
+      end: /\)/,
+    })
+  });
+
+  SUB_EXPRESSION.contains = [
+    SUB_EXPRESSION_CONTENTS
+  ];
+
+  const OPENING_BLOCK_MUSTACHE_CONTENTS = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {
+    keywords: BUILT_INS,
+    className: 'name',
+    starts: hljs.inherit(HELPER_PARAMETERS, {
+      end: /}}/,
+    })
+  });
+
+  const CLOSING_BLOCK_MUSTACHE_CONTENTS = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {
+    keywords: BUILT_INS,
+    className: 'name'
+  });
+
+  const BASIC_MUSTACHE_CONTENTS = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {
+    className: 'name',
+    keywords: BUILT_INS,
+    starts: hljs.inherit(HELPER_PARAMETERS, {
+      end: /}}/,
+    })
+  });
+
+  const ESCAPE_MUSTACHE_WITH_PRECEEDING_BACKSLASH = {begin: /\\\{\{/, skip: true};
+  const PREVENT_ESCAPE_WITH_ANOTHER_PRECEEDING_BACKSLASH = {begin: /\\\\(?=\{\{)/, skip: true};
+
+  return {
+    name: 'Handlebars',
+    aliases: ['hbs', 'html.hbs', 'html.handlebars', 'htmlbars'],
+    case_insensitive: true,
+    subLanguage: 'xml',
+    contains: [
+      ESCAPE_MUSTACHE_WITH_PRECEEDING_BACKSLASH,
+      PREVENT_ESCAPE_WITH_ANOTHER_PRECEEDING_BACKSLASH,
+      hljs.COMMENT(/\{\{!--/, /--\}\}/),
+      hljs.COMMENT(/\{\{!/, /\}\}/),
+      {
+        // open raw block "{{{{raw}}}} content not evaluated {{{{/raw}}}}"
+        className: 'template-tag',
+        begin: /\{\{\{\{(?!\/)/,
+        end: /\}\}\}\}/,
+        contains: [OPENING_BLOCK_MUSTACHE_CONTENTS],
+        starts: {end: /\{\{\{\{\//, returnEnd: true, subLanguage: 'xml'}
+      },
+      {
+        // close raw block
+        className: 'template-tag',
+        begin: /\{\{\{\{\//,
+        end: /\}\}\}\}/,
+        contains: [CLOSING_BLOCK_MUSTACHE_CONTENTS]
+      },
+      {
+        // open block statement
+        className: 'template-tag',
+        begin: /\{\{#/,
+        end: /\}\}/,
+        contains: [OPENING_BLOCK_MUSTACHE_CONTENTS],
+      },
+      {
+        className: 'template-tag',
+        begin: /\{\{(?=else\}\})/,
+        end: /\}\}/,
+        keywords: 'else'
+      },
+      {
+        // closing block statement
+        className: 'template-tag',
+        begin: /\{\{\//,
+        end: /\}\}/,
+        contains: [CLOSING_BLOCK_MUSTACHE_CONTENTS],
+      },
+      {
+        // template variable or helper-call that is NOT html-escaped
+        className: 'template-variable',
+        begin: /\{\{\{/,
+        end: /\}\}\}/,
+        contains: [BASIC_MUSTACHE_CONTENTS]
+      },
+      {
+        // template variable or helper-call that is html-escaped
+        className: 'template-variable',
+        begin: /\{\{/,
+        end: /\}\}/,
+        contains: [BASIC_MUSTACHE_CONTENTS]
+      }
+    ]
+  };
+}
+
+module.exports = handlebars;

+ 132 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/haskell.js

@@ -0,0 +1,132 @@
+/*
+Language: Haskell
+Author: Jeremy Hull <sourdrums@gmail.com>
+Contributors: Zena Treep <zena.treep@gmail.com>
+Website: https://www.haskell.org
+Category: functional
+*/
+
+function haskell(hljs) {
+  var COMMENT = {
+    variants: [
+      hljs.COMMENT('--', '$'),
+      hljs.COMMENT(
+        '{-',
+        '-}',
+        {
+          contains: ['self']
+        }
+      )
+    ]
+  };
+
+  var PRAGMA = {
+    className: 'meta',
+    begin: '{-#', end: '#-}'
+  };
+
+  var PREPROCESSOR = {
+    className: 'meta',
+    begin: '^#', end: '$'
+  };
+
+  var CONSTRUCTOR = {
+    className: 'type',
+    begin: '\\b[A-Z][\\w\']*', // TODO: other constructors (build-in, infix).
+    relevance: 0
+  };
+
+  var LIST = {
+    begin: '\\(', end: '\\)',
+    illegal: '"',
+    contains: [
+      PRAGMA,
+      PREPROCESSOR,
+      {className: 'type', begin: '\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?'},
+      hljs.inherit(hljs.TITLE_MODE, {begin: '[_a-z][\\w\']*'}),
+      COMMENT
+    ]
+  };
+
+  var RECORD = {
+    begin: '{', end: '}',
+    contains: LIST.contains
+  };
+
+  return {
+    name: 'Haskell',
+    aliases: ['hs'],
+    keywords:
+      'let in if then else case of where do module import hiding ' +
+      'qualified type data newtype deriving class instance as default ' +
+      'infix infixl infixr foreign export ccall stdcall cplusplus ' +
+      'jvm dotnet safe unsafe family forall mdo proc rec',
+    contains: [
+
+      // Top-level constructions.
+
+      {
+        beginKeywords: 'module', end: 'where',
+        keywords: 'module where',
+        contains: [LIST, COMMENT],
+        illegal: '\\W\\.|;'
+      },
+      {
+        begin: '\\bimport\\b', end: '$',
+        keywords: 'import qualified as hiding',
+        contains: [LIST, COMMENT],
+        illegal: '\\W\\.|;'
+      },
+
+      {
+        className: 'class',
+        begin: '^(\\s*)?(class|instance)\\b', end: 'where',
+        keywords: 'class family instance where',
+        contains: [CONSTRUCTOR, LIST, COMMENT]
+      },
+      {
+        className: 'class',
+        begin: '\\b(data|(new)?type)\\b', end: '$',
+        keywords: 'data family type newtype deriving',
+        contains: [PRAGMA, CONSTRUCTOR, LIST, RECORD, COMMENT]
+      },
+      {
+        beginKeywords: 'default', end: '$',
+        contains: [CONSTRUCTOR, LIST, COMMENT]
+      },
+      {
+        beginKeywords: 'infix infixl infixr', end: '$',
+        contains: [hljs.C_NUMBER_MODE, COMMENT]
+      },
+      {
+        begin: '\\bforeign\\b', end: '$',
+        keywords: 'foreign import export ccall stdcall cplusplus jvm ' +
+                  'dotnet safe unsafe',
+        contains: [CONSTRUCTOR, hljs.QUOTE_STRING_MODE, COMMENT]
+      },
+      {
+        className: 'meta',
+        begin: '#!\\/usr\\/bin\\/env\ runhaskell', end: '$'
+      },
+
+      // "Whitespaces".
+
+      PRAGMA,
+      PREPROCESSOR,
+
+      // Literals and names.
+
+      // TODO: characters.
+      hljs.QUOTE_STRING_MODE,
+      hljs.C_NUMBER_MODE,
+      CONSTRUCTOR,
+      hljs.inherit(hljs.TITLE_MODE, {begin: '^[_a-z][\\w\']*'}),
+
+      COMMENT,
+
+      {begin: '->|<-'} // No markup, relevance booster
+    ]
+  };
+}
+
+module.exports = haskell;

+ 120 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/haxe.js

@@ -0,0 +1,120 @@
+/*
+Language: Haxe
+Description: Haxe is an open source toolkit based on a modern, high level, strictly typed programming language.
+Author: Christopher Kaster <ikasoki@gmail.com> (Based on the actionscript.js language file by Alexander Myadzel)
+Contributors: Kenton Hamaluik <kentonh@gmail.com>
+Website: https://haxe.org
+*/
+
+function haxe(hljs) {
+
+  var HAXE_BASIC_TYPES = 'Int Float String Bool Dynamic Void Array ';
+
+  return {
+    name: 'Haxe',
+    aliases: ['hx'],
+    keywords: {
+      keyword: 'break case cast catch continue default do dynamic else enum extern ' +
+               'for function here if import in inline never new override package private get set ' +
+               'public return static super switch this throw trace try typedef untyped using var while ' +
+               HAXE_BASIC_TYPES,
+      built_in:
+        'trace this',
+      literal:
+        'true false null _'
+    },
+    contains: [
+      { className: 'string', // interpolate-able strings
+        begin: '\'', end: '\'',
+        contains: [
+          hljs.BACKSLASH_ESCAPE,
+          { className: 'subst', // interpolation
+            begin: '\\$\\{', end: '\\}'
+          },
+          { className: 'subst', // interpolation
+            begin: '\\$', end: '\\W}'
+          }
+        ]
+      },
+      hljs.QUOTE_STRING_MODE,
+      hljs.C_LINE_COMMENT_MODE,
+      hljs.C_BLOCK_COMMENT_MODE,
+      hljs.C_NUMBER_MODE,
+      { className: 'meta', // compiler meta
+        begin: '@:', end: '$'
+      },
+      { className: 'meta', // compiler conditionals
+        begin: '#', end: '$',
+        keywords: {'meta-keyword': 'if else elseif end error'}
+      },
+      { className: 'type', // function types
+        begin: ':[ \t]*', end: '[^A-Za-z0-9_ \t\\->]',
+        excludeBegin: true, excludeEnd: true,
+        relevance: 0
+      },
+      { className: 'type', // types
+        begin: ':[ \t]*', end: '\\W',
+        excludeBegin: true, excludeEnd: true
+      },
+      { className: 'type', // instantiation
+        begin: 'new *', end: '\\W',
+        excludeBegin: true, excludeEnd: true
+      },
+      { className: 'class', // enums
+        beginKeywords: 'enum', end: '\\{',
+        contains: [
+          hljs.TITLE_MODE
+        ]
+      },
+      { className: 'class', // abstracts
+        beginKeywords: 'abstract', end: '[\\{$]',
+        contains: [
+          { className: 'type',
+            begin: '\\(', end: '\\)',
+            excludeBegin: true, excludeEnd: true
+          },
+          { className: 'type',
+            begin: 'from +', end: '\\W',
+            excludeBegin: true, excludeEnd: true
+          },
+          { className: 'type',
+            begin: 'to +', end: '\\W',
+            excludeBegin: true, excludeEnd: true
+          },
+          hljs.TITLE_MODE
+        ],
+        keywords: {
+          keyword: 'abstract from to'
+        }
+      },
+      { className: 'class', // classes
+        begin: '\\b(class|interface) +', end: '[\\{$]',  excludeEnd: true,
+        keywords: 'class interface',
+        contains: [
+          { className: 'keyword',
+            begin: '\\b(extends|implements) +',
+            keywords: 'extends implements',
+            contains: [
+              {
+                className: 'type',
+                begin: hljs.IDENT_RE,
+                relevance: 0
+              }
+            ]
+          },
+          hljs.TITLE_MODE
+        ]
+      },
+      { className: 'function',
+        beginKeywords: 'function', end: '\\(', excludeEnd: true,
+        illegal: '\\S',
+        contains: [
+          hljs.TITLE_MODE
+        ]
+      }
+    ],
+    illegal: /<\//
+  };
+}
+
+module.exports = haxe;

File diff suppressed because it is too large
+ 13 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/hsp.js


+ 298 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/htmlbars.js

@@ -0,0 +1,298 @@
+/**
+ * @param {string} value
+ * @returns {RegExp}
+ * */
+
+/**
+ * @param {RegExp | string } re
+ * @returns {string}
+ */
+function source(re) {
+  if (!re) return null;
+  if (typeof re === "string") return re;
+
+  return re.source;
+}
+
+/**
+ * @param {...(RegExp | string) } args
+ * @returns {string}
+ */
+function concat(...args) {
+  const joined = args.map((x) => source(x)).join("");
+  return joined;
+}
+
+/*
+Language: Handlebars
+Requires: xml.js
+Author: Robin Ward <robin.ward@gmail.com>
+Description: Matcher for Handlebars as well as EmberJS additions.
+Website: https://handlebarsjs.com
+Category: template
+*/
+
+function handlebars(hljs) {
+  const BUILT_INS = {
+    'builtin-name': [
+      'action',
+      'bindattr',
+      'collection',
+      'component',
+      'concat',
+      'debugger',
+      'each',
+      'each-in',
+      'get',
+      'hash',
+      'if',
+      'in',
+      'input',
+      'link-to',
+      'loc',
+      'log',
+      'lookup',
+      'mut',
+      'outlet',
+      'partial',
+      'query-params',
+      'render',
+      'template',
+      'textarea',
+      'unbound',
+      'unless',
+      'view',
+      'with',
+      'yield'
+    ].join(" ")
+  };
+
+  const LITERALS = {
+    literal: [
+      'true',
+      'false',
+      'undefined',
+      'null'
+    ].join(" ")
+  };
+
+  // as defined in https://handlebarsjs.com/guide/expressions.html#literal-segments
+  // this regex matches literal segments like ' abc ' or [ abc ] as well as helpers and paths
+  // like a/b, ./abc/cde, and abc.bcd
+
+  const DOUBLE_QUOTED_ID_REGEX=/".*?"/;
+  const SINGLE_QUOTED_ID_REGEX=/'.*?'/;
+  const BRACKET_QUOTED_ID_REGEX=/\[.*?\]/;
+  const PLAIN_ID_REGEX=/[^\s!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~]+/;
+  const PATH_DELIMITER_REGEX=/\.|\//;
+
+  const IDENTIFIER_REGEX = concat(
+    '(',
+    SINGLE_QUOTED_ID_REGEX, '|',
+    DOUBLE_QUOTED_ID_REGEX, '|',
+    BRACKET_QUOTED_ID_REGEX, '|',
+    PLAIN_ID_REGEX, '|',
+    PATH_DELIMITER_REGEX,
+    ')+'
+  );
+
+  // identifier followed by a equal-sign (without the equal sign)
+  const HASH_PARAM_REGEX = concat(
+    '(',
+    BRACKET_QUOTED_ID_REGEX, '|',
+    PLAIN_ID_REGEX,
+    ')(?==)'
+  );
+
+  const HELPER_NAME_OR_PATH_EXPRESSION = {
+    begin: IDENTIFIER_REGEX,
+    lexemes: /[\w.\/]+/
+  };
+
+  const HELPER_PARAMETER = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {
+    keywords: LITERALS
+  });
+
+  const SUB_EXPRESSION = {
+    begin: /\(/,
+    end: /\)/
+    // the "contains" is added below when all necessary sub-modes are defined
+  };
+
+  const HASH = {
+    // fka "attribute-assignment", parameters of the form 'key=value'
+    className: 'attr',
+    begin: HASH_PARAM_REGEX,
+    relevance: 0,
+    starts: {
+      begin: /=/,
+      end: /=/,
+      starts: {
+        contains: [
+          hljs.NUMBER_MODE,
+          hljs.QUOTE_STRING_MODE,
+          hljs.APOS_STRING_MODE,
+          HELPER_PARAMETER,
+          SUB_EXPRESSION
+        ]
+      }
+    }
+  };
+
+  const BLOCK_PARAMS = {
+    // parameters of the form '{{#with x as | y |}}...{{/with}}'
+    begin: /as\s+\|/,
+    keywords: { keyword: 'as' },
+    end: /\|/,
+    contains: [
+      {
+        // define sub-mode in order to prevent highlighting of block-parameter named "as"
+        begin: /\w+/
+      }
+    ]
+  };
+
+  const HELPER_PARAMETERS = {
+    contains: [
+      hljs.NUMBER_MODE,
+      hljs.QUOTE_STRING_MODE,
+      hljs.APOS_STRING_MODE,
+      BLOCK_PARAMS,
+      HASH,
+      HELPER_PARAMETER,
+      SUB_EXPRESSION
+    ],
+    returnEnd: true
+    // the property "end" is defined through inheritance when the mode is used. If depends
+    // on the surrounding mode, but "endsWithParent" does not work here (i.e. it includes the
+    // end-token of the surrounding mode)
+  };
+
+  const SUB_EXPRESSION_CONTENTS = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {
+    className: 'name',
+    keywords: BUILT_INS,
+    starts: hljs.inherit(HELPER_PARAMETERS, {
+      end: /\)/,
+    })
+  });
+
+  SUB_EXPRESSION.contains = [
+    SUB_EXPRESSION_CONTENTS
+  ];
+
+  const OPENING_BLOCK_MUSTACHE_CONTENTS = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {
+    keywords: BUILT_INS,
+    className: 'name',
+    starts: hljs.inherit(HELPER_PARAMETERS, {
+      end: /}}/,
+    })
+  });
+
+  const CLOSING_BLOCK_MUSTACHE_CONTENTS = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {
+    keywords: BUILT_INS,
+    className: 'name'
+  });
+
+  const BASIC_MUSTACHE_CONTENTS = hljs.inherit(HELPER_NAME_OR_PATH_EXPRESSION, {
+    className: 'name',
+    keywords: BUILT_INS,
+    starts: hljs.inherit(HELPER_PARAMETERS, {
+      end: /}}/,
+    })
+  });
+
+  const ESCAPE_MUSTACHE_WITH_PRECEEDING_BACKSLASH = {begin: /\\\{\{/, skip: true};
+  const PREVENT_ESCAPE_WITH_ANOTHER_PRECEEDING_BACKSLASH = {begin: /\\\\(?=\{\{)/, skip: true};
+
+  return {
+    name: 'Handlebars',
+    aliases: ['hbs', 'html.hbs', 'html.handlebars', 'htmlbars'],
+    case_insensitive: true,
+    subLanguage: 'xml',
+    contains: [
+      ESCAPE_MUSTACHE_WITH_PRECEEDING_BACKSLASH,
+      PREVENT_ESCAPE_WITH_ANOTHER_PRECEEDING_BACKSLASH,
+      hljs.COMMENT(/\{\{!--/, /--\}\}/),
+      hljs.COMMENT(/\{\{!/, /\}\}/),
+      {
+        // open raw block "{{{{raw}}}} content not evaluated {{{{/raw}}}}"
+        className: 'template-tag',
+        begin: /\{\{\{\{(?!\/)/,
+        end: /\}\}\}\}/,
+        contains: [OPENING_BLOCK_MUSTACHE_CONTENTS],
+        starts: {end: /\{\{\{\{\//, returnEnd: true, subLanguage: 'xml'}
+      },
+      {
+        // close raw block
+        className: 'template-tag',
+        begin: /\{\{\{\{\//,
+        end: /\}\}\}\}/,
+        contains: [CLOSING_BLOCK_MUSTACHE_CONTENTS]
+      },
+      {
+        // open block statement
+        className: 'template-tag',
+        begin: /\{\{#/,
+        end: /\}\}/,
+        contains: [OPENING_BLOCK_MUSTACHE_CONTENTS],
+      },
+      {
+        className: 'template-tag',
+        begin: /\{\{(?=else\}\})/,
+        end: /\}\}/,
+        keywords: 'else'
+      },
+      {
+        // closing block statement
+        className: 'template-tag',
+        begin: /\{\{\//,
+        end: /\}\}/,
+        contains: [CLOSING_BLOCK_MUSTACHE_CONTENTS],
+      },
+      {
+        // template variable or helper-call that is NOT html-escaped
+        className: 'template-variable',
+        begin: /\{\{\{/,
+        end: /\}\}\}/,
+        contains: [BASIC_MUSTACHE_CONTENTS]
+      },
+      {
+        // template variable or helper-call that is html-escaped
+        className: 'template-variable',
+        begin: /\{\{/,
+        end: /\}\}/,
+        contains: [BASIC_MUSTACHE_CONTENTS]
+      }
+    ]
+  };
+}
+
+/*
+ Language: HTMLBars (legacy)
+ Requires: xml.js
+ Description: Matcher for Handlebars as well as EmberJS additions.
+ Website: https://github.com/tildeio/htmlbars
+ Category: template
+ */
+
+function htmlbars(hljs) {
+  const definition = handlebars(hljs);
+
+  definition.name = "HTMLbars";
+
+  // HACK: This lets handlebars do the auto-detection if it's been loaded (by
+  // default the build script will load in alphabetical order) and if not (perhaps
+  // an install is only using `htmlbars`, not `handlebars`) then this will still
+  // allow HTMLBars to participate in the auto-detection
+
+  // worse case someone will have HTMLbars and handlebars competing for the same
+  // content and will need to change their setup to only require handlebars, but
+  // I don't consider this a breaking change
+  if (hljs.getLanguage("handlebars")) {
+    definition.disableAutodetect = true;
+  }
+
+  return definition
+}
+
+module.exports = htmlbars;

+ 51 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/http.js

@@ -0,0 +1,51 @@
+/*
+Language: HTTP
+Description: HTTP request and response headers with automatic body highlighting
+Author: Ivan Sagalaev <maniac@softwaremaniacs.org>
+Category: common, protocols
+Website: https://developer.mozilla.org/en-US/docs/Web/HTTP/Overview
+*/
+
+function http(hljs) {
+  var VERSION = 'HTTP/[0-9\\.]+';
+  return {
+    name: 'HTTP',
+    aliases: ['https'],
+    illegal: '\\S',
+    contains: [
+      {
+        begin: '^' + VERSION, end: '$',
+        contains: [{className: 'number', begin: '\\b\\d{3}\\b'}]
+      },
+      {
+        begin: '^[A-Z]+ (.*?) ' + VERSION + '$', returnBegin: true, end: '$',
+        contains: [
+          {
+            className: 'string',
+            begin: ' ', end: ' ',
+            excludeBegin: true, excludeEnd: true
+          },
+          {
+            begin: VERSION
+          },
+          {
+            className: 'keyword',
+            begin: '[A-Z]+'
+          }
+        ]
+      },
+      {
+        className: 'attribute',
+        begin: '^\\w', end: ': ', excludeEnd: true,
+        illegal: '\\n|\\s|=',
+        starts: {end: '$', relevance: 0}
+      },
+      {
+        begin: '\\n\\n',
+        starts: {subLanguage: [], endsWithParent: true}
+      }
+    ]
+  };
+}
+
+module.exports = http;

+ 107 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/hy.js

@@ -0,0 +1,107 @@
+/*
+Language: Hy
+Description: Hy is a wonderful dialect of Lisp that’s embedded in Python.
+Author: Sergey Sobko <s.sobko@profitware.ru>
+Website: http://docs.hylang.org/en/stable/
+Category: lisp
+*/
+
+function hy(hljs) {
+  var SYMBOLSTART = 'a-zA-Z_\\-!.?+*=<>&#\'';
+  var SYMBOL_RE = '[' + SYMBOLSTART + '][' + SYMBOLSTART + '0-9/;:]*';
+  var keywords = {
+    $pattern: SYMBOL_RE,
+    'builtin-name':
+      // keywords
+      '!= % %= & &= * ** **= *= *map ' +
+      '+ += , --build-class-- --import-- -= . / // //= ' +
+      '/= < << <<= <= = > >= >> >>= ' +
+      '@ @= ^ ^= abs accumulate all and any ap-compose ' +
+      'ap-dotimes ap-each ap-each-while ap-filter ap-first ap-if ap-last ap-map ap-map-when ap-pipe ' +
+      'ap-reduce ap-reject apply as-> ascii assert assoc bin break butlast ' +
+      'callable calling-module-name car case cdr chain chr coll? combinations compile ' +
+      'compress cond cons cons? continue count curry cut cycle dec ' +
+      'def default-method defclass defmacro defmacro-alias defmacro/g! defmain defmethod defmulti defn ' +
+      'defn-alias defnc defnr defreader defseq del delattr delete-route dict-comp dir ' +
+      'disassemble dispatch-reader-macro distinct divmod do doto drop drop-last drop-while empty? ' +
+      'end-sequence eval eval-and-compile eval-when-compile even? every? except exec filter first ' +
+      'flatten float? fn fnc fnr for for* format fraction genexpr ' +
+      'gensym get getattr global globals group-by hasattr hash hex id ' +
+      'identity if if* if-not if-python2 import in inc input instance? ' +
+      'integer integer-char? integer? interleave interpose is is-coll is-cons is-empty is-even ' +
+      'is-every is-float is-instance is-integer is-integer-char is-iterable is-iterator is-keyword is-neg is-none ' +
+      'is-not is-numeric is-odd is-pos is-string is-symbol is-zero isinstance islice issubclass ' +
+      'iter iterable? iterate iterator? keyword keyword? lambda last len let ' +
+      'lif lif-not list* list-comp locals loop macro-error macroexpand macroexpand-1 macroexpand-all ' +
+      'map max merge-with method-decorator min multi-decorator multicombinations name neg? next ' +
+      'none? nonlocal not not-in not? nth numeric? oct odd? open ' +
+      'or ord partition permutations pos? post-route postwalk pow prewalk print ' +
+      'product profile/calls profile/cpu put-route quasiquote quote raise range read read-str ' +
+      'recursive-replace reduce remove repeat repeatedly repr require rest round route ' +
+      'route-with-methods rwm second seq set-comp setattr setv some sorted string ' +
+      'string? sum switch symbol? take take-nth take-while tee try unless ' +
+      'unquote unquote-splicing vars walk when while with with* with-decorator with-gensyms ' +
+      'xi xor yield yield-from zero? zip zip-longest | |= ~'
+   };
+
+  var SIMPLE_NUMBER_RE = '[-+]?\\d+(\\.\\d+)?';
+
+  var SYMBOL = {
+    begin: SYMBOL_RE,
+    relevance: 0
+  };
+  var NUMBER = {
+    className: 'number', begin: SIMPLE_NUMBER_RE,
+    relevance: 0
+  };
+  var STRING = hljs.inherit(hljs.QUOTE_STRING_MODE, {illegal: null});
+  var COMMENT = hljs.COMMENT(
+    ';',
+    '$',
+    {
+      relevance: 0
+    }
+  );
+  var LITERAL = {
+    className: 'literal',
+    begin: /\b([Tt]rue|[Ff]alse|nil|None)\b/
+  };
+  var COLLECTION = {
+    begin: '[\\[\\{]', end: '[\\]\\}]'
+  };
+  var HINT = {
+    className: 'comment',
+    begin: '\\^' + SYMBOL_RE
+  };
+  var HINT_COL = hljs.COMMENT('\\^\\{', '\\}');
+  var KEY = {
+    className: 'symbol',
+    begin: '[:]{1,2}' + SYMBOL_RE
+  };
+  var LIST = {
+    begin: '\\(', end: '\\)'
+  };
+  var BODY = {
+    endsWithParent: true,
+    relevance: 0
+  };
+  var NAME = {
+    keywords: keywords,
+    className: 'name', begin: SYMBOL_RE,
+    starts: BODY
+  };
+  var DEFAULT_CONTAINS = [LIST, STRING, HINT, HINT_COL, COMMENT, KEY, COLLECTION, NUMBER, LITERAL, SYMBOL];
+
+  LIST.contains = [hljs.COMMENT('comment', ''), NAME, BODY];
+  BODY.contains = DEFAULT_CONTAINS;
+  COLLECTION.contains = DEFAULT_CONTAINS;
+
+  return {
+    name: 'Hy',
+    aliases: ['hylang'],
+    illegal: /\S/,
+    contains: [hljs.SHEBANG(), LIST, STRING, HINT, HINT_COL, COMMENT, KEY, COLLECTION, NUMBER, LITERAL]
+  }
+}
+
+module.exports = hy;

+ 66 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/inform7.js

@@ -0,0 +1,66 @@
+/*
+Language: Inform 7
+Author: Bruno Dias <bruno.r.dias@gmail.com>
+Description: Language definition for Inform 7, a DSL for writing parser interactive fiction.
+Website: http://inform7.com
+*/
+
+function inform7(hljs) {
+  var START_BRACKET = '\\[';
+  var END_BRACKET = '\\]';
+  return {
+    name: 'Inform 7',
+    aliases: ['i7'],
+    case_insensitive: true,
+    keywords: {
+      // Some keywords more or less unique to I7, for relevance.
+      keyword:
+        // kind:
+        'thing room person man woman animal container ' +
+        'supporter backdrop door ' +
+        // characteristic:
+        'scenery open closed locked inside gender ' +
+        // verb:
+        'is are say understand ' +
+        // misc keyword:
+        'kind of rule'
+    },
+    contains: [
+      {
+        className: 'string',
+        begin: '"', end: '"',
+        relevance: 0,
+        contains: [
+          {
+            className: 'subst',
+            begin: START_BRACKET, end: END_BRACKET
+          }
+        ]
+      },
+      {
+        className: 'section',
+        begin: /^(Volume|Book|Part|Chapter|Section|Table)\b/,
+        end: '$'
+      },
+      {
+        // Rule definition
+        // This is here for relevance.
+        begin: /^(Check|Carry out|Report|Instead of|To|Rule|When|Before|After)\b/,
+        end: ':',
+        contains: [
+          {
+            //Rule name
+            begin: '\\(This', end: '\\)'
+          }
+        ]
+      },
+      {
+        className: 'comment',
+        begin: START_BRACKET, end: END_BRACKET,
+        contains: ['self']
+      }
+    ]
+  };
+}
+
+module.exports = inform7;

+ 143 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/ini.js

@@ -0,0 +1,143 @@
+/**
+ * @param {string} value
+ * @returns {RegExp}
+ * */
+
+/**
+ * @param {RegExp | string } re
+ * @returns {string}
+ */
+function source(re) {
+  if (!re) return null;
+  if (typeof re === "string") return re;
+
+  return re.source;
+}
+
+/**
+ * @param {RegExp | string } re
+ * @returns {string}
+ */
+function lookahead(re) {
+  return concat('(?=', re, ')');
+}
+
+/**
+ * @param {...(RegExp | string) } args
+ * @returns {string}
+ */
+function concat(...args) {
+  const joined = args.map((x) => source(x)).join("");
+  return joined;
+}
+
+/**
+ * Any of the passed expresssions may match
+ *
+ * Creates a huge this | this | that | that match
+ * @param {(RegExp | string)[] } args
+ * @returns {string}
+ */
+function either(...args) {
+  const joined = '(' + args.map((x) => source(x)).join("|") + ")";
+  return joined;
+}
+
+/*
+Language: TOML, also INI
+Description: TOML aims to be a minimal configuration file format that's easy to read due to obvious semantics.
+Contributors: Guillaume Gomez <guillaume1.gomez@gmail.com>
+Category: common, config
+Website: https://github.com/toml-lang/toml
+*/
+
+function ini(hljs) {
+  var NUMBERS = {
+    className: 'number',
+    relevance: 0,
+    variants: [
+      { begin: /([\+\-]+)?[\d]+_[\d_]+/ },
+      { begin: hljs.NUMBER_RE }
+    ]
+  };
+  var COMMENTS = hljs.COMMENT();
+  COMMENTS.variants = [
+    {begin: /;/, end: /$/},
+    {begin: /#/, end: /$/},
+  ];
+  var VARIABLES = {
+    className: 'variable',
+    variants: [
+      { begin: /\$[\w\d"][\w\d_]*/ },
+      { begin: /\$\{(.*?)}/ }
+    ]
+  };
+  var LITERALS = {
+    className: 'literal',
+    begin: /\bon|off|true|false|yes|no\b/
+  };
+  var STRINGS = {
+    className: "string",
+    contains: [hljs.BACKSLASH_ESCAPE],
+    variants: [
+      { begin: "'''", end: "'''", relevance: 10 },
+      { begin: '"""', end: '"""', relevance: 10 },
+      { begin: '"', end: '"' },
+      { begin: "'", end: "'" }
+    ]
+  };
+  var ARRAY = {
+    begin: /\[/, end: /\]/,
+    contains: [
+      COMMENTS,
+      LITERALS,
+      VARIABLES,
+      STRINGS,
+      NUMBERS,
+      'self'
+    ],
+    relevance:0
+  };
+
+  var BARE_KEY = /[A-Za-z0-9_-]+/;
+  var QUOTED_KEY_DOUBLE_QUOTE = /"(\\"|[^"])*"/;
+  var QUOTED_KEY_SINGLE_QUOTE = /'[^']*'/;
+  var ANY_KEY = either(
+    BARE_KEY, QUOTED_KEY_DOUBLE_QUOTE, QUOTED_KEY_SINGLE_QUOTE
+  );
+  var DOTTED_KEY = concat(
+    ANY_KEY, '(\\s*\\.\\s*', ANY_KEY, ')*',
+    lookahead(/\s*=\s*[^#\s]/)
+  );
+
+  return {
+    name: 'TOML, also INI',
+    aliases: ['toml'],
+    case_insensitive: true,
+    illegal: /\S/,
+    contains: [
+      COMMENTS,
+      {
+        className: 'section',
+        begin: /\[+/, end: /\]+/
+      },
+      {
+        begin: DOTTED_KEY,
+        className: 'attr',
+        starts: {
+          end: /$/,
+          contains: [
+            COMMENTS,
+            ARRAY,
+            LITERALS,
+            VARIABLES,
+            STRINGS,
+            NUMBERS
+          ]
+        }
+      }
+    ]
+  };
+}
+
+module.exports = ini;

+ 87 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/irpf90.js

@@ -0,0 +1,87 @@
+/*
+Language: IRPF90
+Author: Anthony Scemama <scemama@irsamc.ups-tlse.fr>
+Description: IRPF90 is an open-source Fortran code generator
+Website: http://irpf90.ups-tlse.fr
+Category: scientific
+*/
+
+function irpf90(hljs) {
+  var PARAMS = {
+    className: 'params',
+    begin: '\\(', end: '\\)'
+  };
+
+  var F_KEYWORDS = {
+    literal: '.False. .True.',
+    keyword: 'kind do while private call intrinsic where elsewhere ' +
+      'type endtype endmodule endselect endinterface end enddo endif if forall endforall only contains default return stop then ' +
+      'public subroutine|10 function program .and. .or. .not. .le. .eq. .ge. .gt. .lt. ' +
+      'goto save else use module select case ' +
+      'access blank direct exist file fmt form formatted iostat name named nextrec number opened rec recl sequential status unformatted unit ' +
+      'continue format pause cycle exit ' +
+      'c_null_char c_alert c_backspace c_form_feed flush wait decimal round iomsg ' +
+      'synchronous nopass non_overridable pass protected volatile abstract extends import ' +
+      'non_intrinsic value deferred generic final enumerator class associate bind enum ' +
+      'c_int c_short c_long c_long_long c_signed_char c_size_t c_int8_t c_int16_t c_int32_t c_int64_t c_int_least8_t c_int_least16_t ' +
+      'c_int_least32_t c_int_least64_t c_int_fast8_t c_int_fast16_t c_int_fast32_t c_int_fast64_t c_intmax_t C_intptr_t c_float c_double ' +
+      'c_long_double c_float_complex c_double_complex c_long_double_complex c_bool c_char c_null_ptr c_null_funptr ' +
+      'c_new_line c_carriage_return c_horizontal_tab c_vertical_tab iso_c_binding c_loc c_funloc c_associated  c_f_pointer ' +
+      'c_ptr c_funptr iso_fortran_env character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor ' +
+      'numeric_storage_size output_unit c_f_procpointer ieee_arithmetic ieee_support_underflow_control ' +
+      'ieee_get_underflow_mode ieee_set_underflow_mode newunit contiguous recursive ' +
+      'pad position action delim readwrite eor advance nml interface procedure namelist include sequence elemental pure ' +
+      'integer real character complex logical dimension allocatable|10 parameter ' +
+      'external implicit|10 none double precision assign intent optional pointer ' +
+      'target in out common equivalence data ' +
+      // IRPF90 special keywords
+      'begin_provider &begin_provider end_provider begin_shell end_shell begin_template end_template subst assert touch ' +
+      'soft_touch provide no_dep free irp_if irp_else irp_endif irp_write irp_read',
+    built_in: 'alog alog10 amax0 amax1 amin0 amin1 amod cabs ccos cexp clog csin csqrt dabs dacos dasin datan datan2 dcos dcosh ddim dexp dint ' +
+      'dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh float iabs idim idint idnint ifix isign max0 max1 min0 min1 sngl ' +
+      'algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama ' +
+      'iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod ' +
+      'qnint qsign qsin qsinh qsqrt qtan qtanh abs acos aimag aint anint asin atan atan2 char cmplx conjg cos cosh exp ichar index int log ' +
+      'log10 max min nint sign sin sinh sqrt tan tanh print write dim lge lgt lle llt mod nullify allocate deallocate ' +
+      'adjustl adjustr all allocated any associated bit_size btest ceiling count cshift date_and_time digits dot_product ' +
+      'eoshift epsilon exponent floor fraction huge iand ibclr ibits ibset ieor ior ishft ishftc lbound len_trim matmul ' +
+      'maxexponent maxloc maxval merge minexponent minloc minval modulo mvbits nearest pack present product ' +
+      'radix random_number random_seed range repeat reshape rrspacing scale scan selected_int_kind selected_real_kind ' +
+      'set_exponent shape size spacing spread sum system_clock tiny transpose trim ubound unpack verify achar iachar transfer ' +
+      'dble entry dprod cpu_time command_argument_count get_command get_command_argument get_environment_variable is_iostat_end ' +
+      'ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode ' +
+      'is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_of '  +
+      'acosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2 ' +
+      'atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits ' +
+      'bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr ' +
+      'num_images parity popcnt poppar shifta shiftl shiftr this_image ' +
+      // IRPF90 special built_ins
+      'IRP_ALIGN irp_here'
+  };
+  return {
+    name: 'IRPF90',
+    case_insensitive: true,
+    keywords: F_KEYWORDS,
+    illegal: /\/\*/,
+    contains: [
+      hljs.inherit(hljs.APOS_STRING_MODE, {className: 'string', relevance: 0}),
+      hljs.inherit(hljs.QUOTE_STRING_MODE, {className: 'string', relevance: 0}),
+      {
+        className: 'function',
+        beginKeywords: 'subroutine function program',
+        illegal: '[${=\\n]',
+        contains: [hljs.UNDERSCORE_TITLE_MODE, PARAMS]
+      },
+      hljs.COMMENT('!', '$', {relevance: 0}),
+      hljs.COMMENT('begin_doc', 'end_doc', {relevance: 10}),
+      {
+        className: 'number',
+        // regex in both fortran and irpf90 should match
+        begin: '(?=\\b|\\+|\\-|\\.)(?:\\.|\\d+\\.?)\\d*([de][+-]?\\d+)?(_[a-z_\\d]+)?',
+        relevance: 0
+      }
+    ]
+  };
+}
+
+module.exports = irpf90;

+ 3180 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/isbl.js

@@ -0,0 +1,3180 @@
+/*
+Language: ISBL
+Author: Dmitriy Tarasov <dimatar@gmail.com>
+Description: built-in language DIRECTUM
+Category: enterprise
+*/
+
+function isbl(hljs) {
+  // Определение идентификаторов
+  var UNDERSCORE_IDENT_RE = "[A-Za-zА-Яа-яёЁ_!][A-Za-zА-Яа-яёЁ_0-9]*";
+
+  // Определение имен функций
+  var FUNCTION_NAME_IDENT_RE = "[A-Za-zА-Яа-яёЁ_][A-Za-zА-Яа-яёЁ_0-9]*";
+
+  // keyword : ключевые слова
+  var KEYWORD =
+    "and и else иначе endexcept endfinally endforeach конецвсе endif конецесли endwhile конецпока " +
+    "except exitfor finally foreach все if если in в not не or или try while пока ";
+
+  // SYSRES Constants
+  var sysres_constants =
+    "SYSRES_CONST_ACCES_RIGHT_TYPE_EDIT " +
+    "SYSRES_CONST_ACCES_RIGHT_TYPE_FULL " +
+    "SYSRES_CONST_ACCES_RIGHT_TYPE_VIEW " +
+    "SYSRES_CONST_ACCESS_MODE_REQUISITE_CODE " +
+    "SYSRES_CONST_ACCESS_NO_ACCESS_VIEW " +
+    "SYSRES_CONST_ACCESS_NO_ACCESS_VIEW_CODE " +
+    "SYSRES_CONST_ACCESS_RIGHTS_ADD_REQUISITE_CODE " +
+    "SYSRES_CONST_ACCESS_RIGHTS_ADD_REQUISITE_YES_CODE " +
+    "SYSRES_CONST_ACCESS_RIGHTS_CHANGE_REQUISITE_CODE " +
+    "SYSRES_CONST_ACCESS_RIGHTS_CHANGE_REQUISITE_YES_CODE " +
+    "SYSRES_CONST_ACCESS_RIGHTS_DELETE_REQUISITE_CODE " +
+    "SYSRES_CONST_ACCESS_RIGHTS_DELETE_REQUISITE_YES_CODE " +
+    "SYSRES_CONST_ACCESS_RIGHTS_EXECUTE_REQUISITE_CODE " +
+    "SYSRES_CONST_ACCESS_RIGHTS_EXECUTE_REQUISITE_YES_CODE " +
+    "SYSRES_CONST_ACCESS_RIGHTS_NO_ACCESS_REQUISITE_CODE " +
+    "SYSRES_CONST_ACCESS_RIGHTS_NO_ACCESS_REQUISITE_YES_CODE " +
+    "SYSRES_CONST_ACCESS_RIGHTS_RATIFY_REQUISITE_CODE " +
+    "SYSRES_CONST_ACCESS_RIGHTS_RATIFY_REQUISITE_YES_CODE " +
+    "SYSRES_CONST_ACCESS_RIGHTS_REQUISITE_CODE " +
+    "SYSRES_CONST_ACCESS_RIGHTS_VIEW " +
+    "SYSRES_CONST_ACCESS_RIGHTS_VIEW_CODE " +
+    "SYSRES_CONST_ACCESS_RIGHTS_VIEW_REQUISITE_CODE " +
+    "SYSRES_CONST_ACCESS_RIGHTS_VIEW_REQUISITE_YES_CODE " +
+    "SYSRES_CONST_ACCESS_TYPE_CHANGE " +
+    "SYSRES_CONST_ACCESS_TYPE_CHANGE_CODE " +
+    "SYSRES_CONST_ACCESS_TYPE_EXISTS " +
+    "SYSRES_CONST_ACCESS_TYPE_EXISTS_CODE " +
+    "SYSRES_CONST_ACCESS_TYPE_FULL " +
+    "SYSRES_CONST_ACCESS_TYPE_FULL_CODE " +
+    "SYSRES_CONST_ACCESS_TYPE_VIEW " +
+    "SYSRES_CONST_ACCESS_TYPE_VIEW_CODE " +
+    "SYSRES_CONST_ACTION_TYPE_ABORT " +
+    "SYSRES_CONST_ACTION_TYPE_ACCEPT " +
+    "SYSRES_CONST_ACTION_TYPE_ACCESS_RIGHTS " +
+    "SYSRES_CONST_ACTION_TYPE_ADD_ATTACHMENT " +
+    "SYSRES_CONST_ACTION_TYPE_CHANGE_CARD " +
+    "SYSRES_CONST_ACTION_TYPE_CHANGE_KIND " +
+    "SYSRES_CONST_ACTION_TYPE_CHANGE_STORAGE " +
+    "SYSRES_CONST_ACTION_TYPE_CONTINUE " +
+    "SYSRES_CONST_ACTION_TYPE_COPY " +
+    "SYSRES_CONST_ACTION_TYPE_CREATE " +
+    "SYSRES_CONST_ACTION_TYPE_CREATE_VERSION " +
+    "SYSRES_CONST_ACTION_TYPE_DELETE " +
+    "SYSRES_CONST_ACTION_TYPE_DELETE_ATTACHMENT " +
+    "SYSRES_CONST_ACTION_TYPE_DELETE_VERSION " +
+    "SYSRES_CONST_ACTION_TYPE_DISABLE_DELEGATE_ACCESS_RIGHTS " +
+    "SYSRES_CONST_ACTION_TYPE_ENABLE_DELEGATE_ACCESS_RIGHTS " +
+    "SYSRES_CONST_ACTION_TYPE_ENCRYPTION_BY_CERTIFICATE " +
+    "SYSRES_CONST_ACTION_TYPE_ENCRYPTION_BY_CERTIFICATE_AND_PASSWORD " +
+    "SYSRES_CONST_ACTION_TYPE_ENCRYPTION_BY_PASSWORD " +
+    "SYSRES_CONST_ACTION_TYPE_EXPORT_WITH_LOCK " +
+    "SYSRES_CONST_ACTION_TYPE_EXPORT_WITHOUT_LOCK " +
+    "SYSRES_CONST_ACTION_TYPE_IMPORT_WITH_UNLOCK " +
+    "SYSRES_CONST_ACTION_TYPE_IMPORT_WITHOUT_UNLOCK " +
+    "SYSRES_CONST_ACTION_TYPE_LIFE_CYCLE_STAGE " +
+    "SYSRES_CONST_ACTION_TYPE_LOCK " +
+    "SYSRES_CONST_ACTION_TYPE_LOCK_FOR_SERVER " +
+    "SYSRES_CONST_ACTION_TYPE_LOCK_MODIFY " +
+    "SYSRES_CONST_ACTION_TYPE_MARK_AS_READED " +
+    "SYSRES_CONST_ACTION_TYPE_MARK_AS_UNREADED " +
+    "SYSRES_CONST_ACTION_TYPE_MODIFY " +
+    "SYSRES_CONST_ACTION_TYPE_MODIFY_CARD " +
+    "SYSRES_CONST_ACTION_TYPE_MOVE_TO_ARCHIVE " +
+    "SYSRES_CONST_ACTION_TYPE_OFF_ENCRYPTION " +
+    "SYSRES_CONST_ACTION_TYPE_PASSWORD_CHANGE " +
+    "SYSRES_CONST_ACTION_TYPE_PERFORM " +
+    "SYSRES_CONST_ACTION_TYPE_RECOVER_FROM_LOCAL_COPY " +
+    "SYSRES_CONST_ACTION_TYPE_RESTART " +
+    "SYSRES_CONST_ACTION_TYPE_RESTORE_FROM_ARCHIVE " +
+    "SYSRES_CONST_ACTION_TYPE_REVISION " +
+    "SYSRES_CONST_ACTION_TYPE_SEND_BY_MAIL " +
+    "SYSRES_CONST_ACTION_TYPE_SIGN " +
+    "SYSRES_CONST_ACTION_TYPE_START " +
+    "SYSRES_CONST_ACTION_TYPE_UNLOCK " +
+    "SYSRES_CONST_ACTION_TYPE_UNLOCK_FROM_SERVER " +
+    "SYSRES_CONST_ACTION_TYPE_VERSION_STATE " +
+    "SYSRES_CONST_ACTION_TYPE_VERSION_VISIBILITY " +
+    "SYSRES_CONST_ACTION_TYPE_VIEW " +
+    "SYSRES_CONST_ACTION_TYPE_VIEW_SHADOW_COPY " +
+    "SYSRES_CONST_ACTION_TYPE_WORKFLOW_DESCRIPTION_MODIFY " +
+    "SYSRES_CONST_ACTION_TYPE_WRITE_HISTORY " +
+    "SYSRES_CONST_ACTIVE_VERSION_STATE_PICK_VALUE " +
+    "SYSRES_CONST_ADD_REFERENCE_MODE_NAME " +
+    "SYSRES_CONST_ADDITION_REQUISITE_CODE " +
+    "SYSRES_CONST_ADDITIONAL_PARAMS_REQUISITE_CODE " +
+    "SYSRES_CONST_ADITIONAL_JOB_END_DATE_REQUISITE_NAME " +
+    "SYSRES_CONST_ADITIONAL_JOB_READ_REQUISITE_NAME " +
+    "SYSRES_CONST_ADITIONAL_JOB_START_DATE_REQUISITE_NAME " +
+    "SYSRES_CONST_ADITIONAL_JOB_STATE_REQUISITE_NAME " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_ADDING_USER_TO_GROUP_ACTION " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_ADDING_USER_TO_GROUP_ACTION_CODE " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_COMP_ACTION " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_COMP_ACTION_CODE " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_GROUP_ACTION " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_GROUP_ACTION_CODE " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_USER_ACTION " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_CREATION_USER_ACTION_CODE " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_CREATION " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_CREATION_ACTION " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_DELETION " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_DATABASE_USER_DELETION_ACTION " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_COMP_ACTION " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_COMP_ACTION_CODE " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_GROUP_ACTION " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_GROUP_ACTION_CODE " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_ACTION " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_ACTION_CODE " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_FROM_GROUP_ACTION " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_DELETION_USER_FROM_GROUP_ACTION_CODE " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_ACTION " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_ACTION_CODE " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_RESTRICTION_ACTION " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_FILTERER_RESTRICTION_ACTION_CODE " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_PRIVILEGE_ACTION " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_PRIVILEGE_ACTION_CODE " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_RIGHTS_ACTION " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_GRANTING_RIGHTS_ACTION_CODE " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_IS_MAIN_SERVER_CHANGED_ACTION " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_IS_MAIN_SERVER_CHANGED_ACTION_CODE " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_IS_PUBLIC_CHANGED_ACTION " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_IS_PUBLIC_CHANGED_ACTION_CODE " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_ACTION " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_ACTION_CODE " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_RESTRICTION_ACTION " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_FILTERER_RESTRICTION_ACTION_CODE " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_PRIVILEGE_ACTION " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_PRIVILEGE_ACTION_CODE " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_RIGHTS_ACTION " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_REMOVING_RIGHTS_ACTION_CODE " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_CREATION " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_CREATION_ACTION " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_DELETION " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_SERVER_LOGIN_DELETION_ACTION " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_CATEGORY_ACTION " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_CATEGORY_ACTION_CODE " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_COMP_TITLE_ACTION " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_COMP_TITLE_ACTION_CODE " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_FULL_NAME_ACTION " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_FULL_NAME_ACTION_CODE " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_GROUP_ACTION " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_GROUP_ACTION_CODE " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_PARENT_GROUP_ACTION " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_PARENT_GROUP_ACTION_CODE " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_AUTH_TYPE_ACTION " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_AUTH_TYPE_ACTION_CODE " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_LOGIN_ACTION " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_LOGIN_ACTION_CODE " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_STATUS_ACTION " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_UPDATING_USER_STATUS_ACTION_CODE " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_USER_PASSWORD_CHANGE " +
+    "SYSRES_CONST_ADMINISTRATION_HISTORY_USER_PASSWORD_CHANGE_ACTION " +
+    "SYSRES_CONST_ALL_ACCEPT_CONDITION_RUS " +
+    "SYSRES_CONST_ALL_USERS_GROUP " +
+    "SYSRES_CONST_ALL_USERS_GROUP_NAME " +
+    "SYSRES_CONST_ALL_USERS_SERVER_GROUP_NAME " +
+    "SYSRES_CONST_ALLOWED_ACCESS_TYPE_CODE " +
+    "SYSRES_CONST_ALLOWED_ACCESS_TYPE_NAME " +
+    "SYSRES_CONST_APP_VIEWER_TYPE_REQUISITE_CODE " +
+    "SYSRES_CONST_APPROVING_SIGNATURE_NAME " +
+    "SYSRES_CONST_APPROVING_SIGNATURE_REQUISITE_CODE " +
+    "SYSRES_CONST_ASSISTANT_SUBSTITUE_TYPE " +
+    "SYSRES_CONST_ASSISTANT_SUBSTITUE_TYPE_CODE " +
+    "SYSRES_CONST_ATTACH_TYPE_COMPONENT_TOKEN " +
+    "SYSRES_CONST_ATTACH_TYPE_DOC " +
+    "SYSRES_CONST_ATTACH_TYPE_EDOC " +
+    "SYSRES_CONST_ATTACH_TYPE_FOLDER " +
+    "SYSRES_CONST_ATTACH_TYPE_JOB " +
+    "SYSRES_CONST_ATTACH_TYPE_REFERENCE " +
+    "SYSRES_CONST_ATTACH_TYPE_TASK " +
+    "SYSRES_CONST_AUTH_ENCODED_PASSWORD " +
+    "SYSRES_CONST_AUTH_ENCODED_PASSWORD_CODE " +
+    "SYSRES_CONST_AUTH_NOVELL " +
+    "SYSRES_CONST_AUTH_PASSWORD " +
+    "SYSRES_CONST_AUTH_PASSWORD_CODE " +
+    "SYSRES_CONST_AUTH_WINDOWS " +
+    "SYSRES_CONST_AUTHENTICATING_SIGNATURE_NAME " +
+    "SYSRES_CONST_AUTHENTICATING_SIGNATURE_REQUISITE_CODE " +
+    "SYSRES_CONST_AUTO_ENUM_METHOD_FLAG " +
+    "SYSRES_CONST_AUTO_NUMERATION_CODE " +
+    "SYSRES_CONST_AUTO_STRONG_ENUM_METHOD_FLAG " +
+    "SYSRES_CONST_AUTOTEXT_NAME_REQUISITE_CODE " +
+    "SYSRES_CONST_AUTOTEXT_TEXT_REQUISITE_CODE " +
+    "SYSRES_CONST_AUTOTEXT_USAGE_ALL " +
+    "SYSRES_CONST_AUTOTEXT_USAGE_ALL_CODE " +
+    "SYSRES_CONST_AUTOTEXT_USAGE_SIGN " +
+    "SYSRES_CONST_AUTOTEXT_USAGE_SIGN_CODE " +
+    "SYSRES_CONST_AUTOTEXT_USAGE_WORK " +
+    "SYSRES_CONST_AUTOTEXT_USAGE_WORK_CODE " +
+    "SYSRES_CONST_AUTOTEXT_USE_ANYWHERE_CODE " +
+    "SYSRES_CONST_AUTOTEXT_USE_ON_SIGNING_CODE " +
+    "SYSRES_CONST_AUTOTEXT_USE_ON_WORK_CODE " +
+    "SYSRES_CONST_BEGIN_DATE_REQUISITE_CODE " +
+    "SYSRES_CONST_BLACK_LIFE_CYCLE_STAGE_FONT_COLOR " +
+    "SYSRES_CONST_BLUE_LIFE_CYCLE_STAGE_FONT_COLOR " +
+    "SYSRES_CONST_BTN_PART " +
+    "SYSRES_CONST_CALCULATED_ROLE_TYPE_CODE " +
+    "SYSRES_CONST_CALL_TYPE_VARIABLE_BUTTON_VALUE " +
+    "SYSRES_CONST_CALL_TYPE_VARIABLE_PROGRAM_VALUE " +
+    "SYSRES_CONST_CANCEL_MESSAGE_FUNCTION_RESULT " +
+    "SYSRES_CONST_CARD_PART " +
+    "SYSRES_CONST_CARD_REFERENCE_MODE_NAME " +
+    "SYSRES_CONST_CERTIFICATE_TYPE_REQUISITE_ENCRYPT_VALUE " +
+    "SYSRES_CONST_CERTIFICATE_TYPE_REQUISITE_SIGN_AND_ENCRYPT_VALUE " +
+    "SYSRES_CONST_CERTIFICATE_TYPE_REQUISITE_SIGN_VALUE " +
+    "SYSRES_CONST_CHECK_PARAM_VALUE_DATE_PARAM_TYPE " +
+    "SYSRES_CONST_CHECK_PARAM_VALUE_FLOAT_PARAM_TYPE " +
+    "SYSRES_CONST_CHECK_PARAM_VALUE_INTEGER_PARAM_TYPE " +
+    "SYSRES_CONST_CHECK_PARAM_VALUE_PICK_PARAM_TYPE " +
+    "SYSRES_CONST_CHECK_PARAM_VALUE_REEFRENCE_PARAM_TYPE " +
+    "SYSRES_CONST_CLOSED_RECORD_FLAG_VALUE_FEMININE " +
+    "SYSRES_CONST_CLOSED_RECORD_FLAG_VALUE_MASCULINE " +
+    "SYSRES_CONST_CODE_COMPONENT_TYPE_ADMIN " +
+    "SYSRES_CONST_CODE_COMPONENT_TYPE_DEVELOPER " +
+    "SYSRES_CONST_CODE_COMPONENT_TYPE_DOCS " +
+    "SYSRES_CONST_CODE_COMPONENT_TYPE_EDOC_CARDS " +
+    "SYSRES_CONST_CODE_COMPONENT_TYPE_EXTERNAL_EXECUTABLE " +
+    "SYSRES_CONST_CODE_COMPONENT_TYPE_OTHER " +
+    "SYSRES_CONST_CODE_COMPONENT_TYPE_REFERENCE " +
+    "SYSRES_CONST_CODE_COMPONENT_TYPE_REPORT " +
+    "SYSRES_CONST_CODE_COMPONENT_TYPE_SCRIPT " +
+    "SYSRES_CONST_CODE_COMPONENT_TYPE_URL " +
+    "SYSRES_CONST_CODE_REQUISITE_ACCESS " +
+    "SYSRES_CONST_CODE_REQUISITE_CODE " +
+    "SYSRES_CONST_CODE_REQUISITE_COMPONENT " +
+    "SYSRES_CONST_CODE_REQUISITE_DESCRIPTION " +
+    "SYSRES_CONST_CODE_REQUISITE_EXCLUDE_COMPONENT " +
+    "SYSRES_CONST_CODE_REQUISITE_RECORD " +
+    "SYSRES_CONST_COMMENT_REQ_CODE " +
+    "SYSRES_CONST_COMMON_SETTINGS_REQUISITE_CODE " +
+    "SYSRES_CONST_COMP_CODE_GRD " +
+    "SYSRES_CONST_COMPONENT_GROUP_TYPE_REQUISITE_CODE " +
+    "SYSRES_CONST_COMPONENT_TYPE_ADMIN_COMPONENTS " +
+    "SYSRES_CONST_COMPONENT_TYPE_DEVELOPER_COMPONENTS " +
+    "SYSRES_CONST_COMPONENT_TYPE_DOCS " +
+    "SYSRES_CONST_COMPONENT_TYPE_EDOC_CARDS " +
+    "SYSRES_CONST_COMPONENT_TYPE_EDOCS " +
+    "SYSRES_CONST_COMPONENT_TYPE_EXTERNAL_EXECUTABLE " +
+    "SYSRES_CONST_COMPONENT_TYPE_OTHER " +
+    "SYSRES_CONST_COMPONENT_TYPE_REFERENCE_TYPES " +
+    "SYSRES_CONST_COMPONENT_TYPE_REFERENCES " +
+    "SYSRES_CONST_COMPONENT_TYPE_REPORTS " +
+    "SYSRES_CONST_COMPONENT_TYPE_SCRIPTS " +
+    "SYSRES_CONST_COMPONENT_TYPE_URL " +
+    "SYSRES_CONST_COMPONENTS_REMOTE_SERVERS_VIEW_CODE " +
+    "SYSRES_CONST_CONDITION_BLOCK_DESCRIPTION " +
+    "SYSRES_CONST_CONST_FIRM_STATUS_COMMON " +
+    "SYSRES_CONST_CONST_FIRM_STATUS_INDIVIDUAL " +
+    "SYSRES_CONST_CONST_NEGATIVE_VALUE " +
+    "SYSRES_CONST_CONST_POSITIVE_VALUE " +
+    "SYSRES_CONST_CONST_SERVER_STATUS_DONT_REPLICATE " +
+    "SYSRES_CONST_CONST_SERVER_STATUS_REPLICATE " +
+    "SYSRES_CONST_CONTENTS_REQUISITE_CODE " +
+    "SYSRES_CONST_DATA_TYPE_BOOLEAN " +
+    "SYSRES_CONST_DATA_TYPE_DATE " +
+    "SYSRES_CONST_DATA_TYPE_FLOAT " +
+    "SYSRES_CONST_DATA_TYPE_INTEGER " +
+    "SYSRES_CONST_DATA_TYPE_PICK " +
+    "SYSRES_CONST_DATA_TYPE_REFERENCE " +
+    "SYSRES_CONST_DATA_TYPE_STRING " +
+    "SYSRES_CONST_DATA_TYPE_TEXT " +
+    "SYSRES_CONST_DATA_TYPE_VARIANT " +
+    "SYSRES_CONST_DATE_CLOSE_REQ_CODE " +
+    "SYSRES_CONST_DATE_FORMAT_DATE_ONLY_CHAR " +
+    "SYSRES_CONST_DATE_OPEN_REQ_CODE " +
+    "SYSRES_CONST_DATE_REQUISITE " +
+    "SYSRES_CONST_DATE_REQUISITE_CODE " +
+    "SYSRES_CONST_DATE_REQUISITE_NAME " +
+    "SYSRES_CONST_DATE_REQUISITE_TYPE " +
+    "SYSRES_CONST_DATE_TYPE_CHAR " +
+    "SYSRES_CONST_DATETIME_FORMAT_VALUE " +
+    "SYSRES_CONST_DEA_ACCESS_RIGHTS_ACTION_CODE " +
+    "SYSRES_CONST_DESCRIPTION_LOCALIZE_ID_REQUISITE_CODE " +
+    "SYSRES_CONST_DESCRIPTION_REQUISITE_CODE " +
+    "SYSRES_CONST_DET1_PART " +
+    "SYSRES_CONST_DET2_PART " +
+    "SYSRES_CONST_DET3_PART " +
+    "SYSRES_CONST_DET4_PART " +
+    "SYSRES_CONST_DET5_PART " +
+    "SYSRES_CONST_DET6_PART " +
+    "SYSRES_CONST_DETAIL_DATASET_KEY_REQUISITE_CODE " +
+    "SYSRES_CONST_DETAIL_PICK_REQUISITE_CODE " +
+    "SYSRES_CONST_DETAIL_REQ_CODE " +
+    "SYSRES_CONST_DO_NOT_USE_ACCESS_TYPE_CODE " +
+    "SYSRES_CONST_DO_NOT_USE_ACCESS_TYPE_NAME " +
+    "SYSRES_CONST_DO_NOT_USE_ON_VIEW_ACCESS_TYPE_CODE " +
+    "SYSRES_CONST_DO_NOT_USE_ON_VIEW_ACCESS_TYPE_NAME " +
+    "SYSRES_CONST_DOCUMENT_STORAGES_CODE " +
+    "SYSRES_CONST_DOCUMENT_TEMPLATES_TYPE_NAME " +
+    "SYSRES_CONST_DOUBLE_REQUISITE_CODE " +
+    "SYSRES_CONST_EDITOR_CLOSE_FILE_OBSERV_TYPE_CODE " +
+    "SYSRES_CONST_EDITOR_CLOSE_PROCESS_OBSERV_TYPE_CODE " +
+    "SYSRES_CONST_EDITOR_TYPE_REQUISITE_CODE " +
+    "SYSRES_CONST_EDITORS_APPLICATION_NAME_REQUISITE_CODE " +
+    "SYSRES_CONST_EDITORS_CREATE_SEVERAL_PROCESSES_REQUISITE_CODE " +
+    "SYSRES_CONST_EDITORS_EXTENSION_REQUISITE_CODE " +
+    "SYSRES_CONST_EDITORS_OBSERVER_BY_PROCESS_TYPE " +
+    "SYSRES_CONST_EDITORS_REFERENCE_CODE " +
+    "SYSRES_CONST_EDITORS_REPLACE_SPEC_CHARS_REQUISITE_CODE " +
+    "SYSRES_CONST_EDITORS_USE_PLUGINS_REQUISITE_CODE " +
+    "SYSRES_CONST_EDITORS_VIEW_DOCUMENT_OPENED_TO_EDIT_CODE " +
+    "SYSRES_CONST_EDOC_CARD_TYPE_REQUISITE_CODE " +
+    "SYSRES_CONST_EDOC_CARD_TYPES_LINK_REQUISITE_CODE " +
+    "SYSRES_CONST_EDOC_CERTIFICATE_AND_PASSWORD_ENCODE_CODE " +
+    "SYSRES_CONST_EDOC_CERTIFICATE_ENCODE_CODE " +
+    "SYSRES_CONST_EDOC_DATE_REQUISITE_CODE " +
+    "SYSRES_CONST_EDOC_KIND_REFERENCE_CODE " +
+    "SYSRES_CONST_EDOC_KINDS_BY_TEMPLATE_ACTION_CODE " +
+    "SYSRES_CONST_EDOC_MANAGE_ACCESS_CODE " +
+    "SYSRES_CONST_EDOC_NONE_ENCODE_CODE " +
+    "SYSRES_CONST_EDOC_NUMBER_REQUISITE_CODE " +
+    "SYSRES_CONST_EDOC_PASSWORD_ENCODE_CODE " +
+    "SYSRES_CONST_EDOC_READONLY_ACCESS_CODE " +
+    "SYSRES_CONST_EDOC_SHELL_LIFE_TYPE_VIEW_VALUE " +
+    "SYSRES_CONST_EDOC_SIZE_RESTRICTION_PRIORITY_REQUISITE_CODE " +
+    "SYSRES_CONST_EDOC_STORAGE_CHECK_ACCESS_RIGHTS_REQUISITE_CODE " +
+    "SYSRES_CONST_EDOC_STORAGE_COMPUTER_NAME_REQUISITE_CODE " +
+    "SYSRES_CONST_EDOC_STORAGE_DATABASE_NAME_REQUISITE_CODE " +
+    "SYSRES_CONST_EDOC_STORAGE_EDIT_IN_STORAGE_REQUISITE_CODE " +
+    "SYSRES_CONST_EDOC_STORAGE_LOCAL_PATH_REQUISITE_CODE " +
+    "SYSRES_CONST_EDOC_STORAGE_SHARED_SOURCE_NAME_REQUISITE_CODE " +
+    "SYSRES_CONST_EDOC_TEMPLATE_REQUISITE_CODE " +
+    "SYSRES_CONST_EDOC_TYPES_REFERENCE_CODE " +
+    "SYSRES_CONST_EDOC_VERSION_ACTIVE_STAGE_CODE " +
+    "SYSRES_CONST_EDOC_VERSION_DESIGN_STAGE_CODE " +
+    "SYSRES_CONST_EDOC_VERSION_OBSOLETE_STAGE_CODE " +
+    "SYSRES_CONST_EDOC_WRITE_ACCES_CODE " +
+    "SYSRES_CONST_EDOCUMENT_CARD_REQUISITES_REFERENCE_CODE_SELECTED_REQUISITE " +
+    "SYSRES_CONST_ENCODE_CERTIFICATE_TYPE_CODE " +
+    "SYSRES_CONST_END_DATE_REQUISITE_CODE " +
+    "SYSRES_CONST_ENUMERATION_TYPE_REQUISITE_CODE " +
+    "SYSRES_CONST_EXECUTE_ACCESS_RIGHTS_TYPE_CODE " +
+    "SYSRES_CONST_EXECUTIVE_FILE_STORAGE_TYPE " +
+    "SYSRES_CONST_EXIST_CONST " +
+    "SYSRES_CONST_EXIST_VALUE " +
+    "SYSRES_CONST_EXPORT_LOCK_TYPE_ASK " +
+    "SYSRES_CONST_EXPORT_LOCK_TYPE_WITH_LOCK " +
+    "SYSRES_CONST_EXPORT_LOCK_TYPE_WITHOUT_LOCK " +
+    "SYSRES_CONST_EXPORT_VERSION_TYPE_ASK " +
+    "SYSRES_CONST_EXPORT_VERSION_TYPE_LAST " +
+    "SYSRES_CONST_EXPORT_VERSION_TYPE_LAST_ACTIVE " +
+    "SYSRES_CONST_EXTENSION_REQUISITE_CODE " +
+    "SYSRES_CONST_FILTER_NAME_REQUISITE_CODE " +
+    "SYSRES_CONST_FILTER_REQUISITE_CODE " +
+    "SYSRES_CONST_FILTER_TYPE_COMMON_CODE " +
+    "SYSRES_CONST_FILTER_TYPE_COMMON_NAME " +
+    "SYSRES_CONST_FILTER_TYPE_USER_CODE " +
+    "SYSRES_CONST_FILTER_TYPE_USER_NAME " +
+    "SYSRES_CONST_FILTER_VALUE_REQUISITE_NAME " +
+    "SYSRES_CONST_FLOAT_NUMBER_FORMAT_CHAR " +
+    "SYSRES_CONST_FLOAT_REQUISITE_TYPE " +
+    "SYSRES_CONST_FOLDER_AUTHOR_VALUE " +
+    "SYSRES_CONST_FOLDER_KIND_ANY_OBJECTS " +
+    "SYSRES_CONST_FOLDER_KIND_COMPONENTS " +
+    "SYSRES_CONST_FOLDER_KIND_EDOCS " +
+    "SYSRES_CONST_FOLDER_KIND_JOBS " +
+    "SYSRES_CONST_FOLDER_KIND_TASKS " +
+    "SYSRES_CONST_FOLDER_TYPE_COMMON " +
+    "SYSRES_CONST_FOLDER_TYPE_COMPONENT " +
+    "SYSRES_CONST_FOLDER_TYPE_FAVORITES " +
+    "SYSRES_CONST_FOLDER_TYPE_INBOX " +
+    "SYSRES_CONST_FOLDER_TYPE_OUTBOX " +
+    "SYSRES_CONST_FOLDER_TYPE_QUICK_LAUNCH " +
+    "SYSRES_CONST_FOLDER_TYPE_SEARCH " +
+    "SYSRES_CONST_FOLDER_TYPE_SHORTCUTS " +
+    "SYSRES_CONST_FOLDER_TYPE_USER " +
+    "SYSRES_CONST_FROM_DICTIONARY_ENUM_METHOD_FLAG " +
+    "SYSRES_CONST_FULL_SUBSTITUTE_TYPE " +
+    "SYSRES_CONST_FULL_SUBSTITUTE_TYPE_CODE " +
+    "SYSRES_CONST_FUNCTION_CANCEL_RESULT " +
+    "SYSRES_CONST_FUNCTION_CATEGORY_SYSTEM " +
+    "SYSRES_CONST_FUNCTION_CATEGORY_USER " +
+    "SYSRES_CONST_FUNCTION_FAILURE_RESULT " +
+    "SYSRES_CONST_FUNCTION_SAVE_RESULT " +
+    "SYSRES_CONST_GENERATED_REQUISITE " +
+    "SYSRES_CONST_GREEN_LIFE_CYCLE_STAGE_FONT_COLOR " +
+    "SYSRES_CONST_GROUP_ACCOUNT_TYPE_VALUE_CODE " +
+    "SYSRES_CONST_GROUP_CATEGORY_NORMAL_CODE " +
+    "SYSRES_CONST_GROUP_CATEGORY_NORMAL_NAME " +
+    "SYSRES_CONST_GROUP_CATEGORY_SERVICE_CODE " +
+    "SYSRES_CONST_GROUP_CATEGORY_SERVICE_NAME " +
+    "SYSRES_CONST_GROUP_COMMON_CATEGORY_FIELD_VALUE " +
+    "SYSRES_CONST_GROUP_FULL_NAME_REQUISITE_CODE " +
+    "SYSRES_CONST_GROUP_NAME_REQUISITE_CODE " +
+    "SYSRES_CONST_GROUP_RIGHTS_T_REQUISITE_CODE " +
+    "SYSRES_CONST_GROUP_SERVER_CODES_REQUISITE_CODE " +
+    "SYSRES_CONST_GROUP_SERVER_NAME_REQUISITE_CODE " +
+    "SYSRES_CONST_GROUP_SERVICE_CATEGORY_FIELD_VALUE " +
+    "SYSRES_CONST_GROUP_USER_REQUISITE_CODE " +
+    "SYSRES_CONST_GROUPS_REFERENCE_CODE " +
+    "SYSRES_CONST_GROUPS_REQUISITE_CODE " +
+    "SYSRES_CONST_HIDDEN_MODE_NAME " +
+    "SYSRES_CONST_HIGH_LVL_REQUISITE_CODE " +
+    "SYSRES_CONST_HISTORY_ACTION_CREATE_CODE " +
+    "SYSRES_CONST_HISTORY_ACTION_DELETE_CODE " +
+    "SYSRES_CONST_HISTORY_ACTION_EDIT_CODE " +
+    "SYSRES_CONST_HOUR_CHAR " +
+    "SYSRES_CONST_ID_REQUISITE_CODE " +
+    "SYSRES_CONST_IDSPS_REQUISITE_CODE " +
+    "SYSRES_CONST_IMAGE_MODE_COLOR " +
+    "SYSRES_CONST_IMAGE_MODE_GREYSCALE " +
+    "SYSRES_CONST_IMAGE_MODE_MONOCHROME " +
+    "SYSRES_CONST_IMPORTANCE_HIGH " +
+    "SYSRES_CONST_IMPORTANCE_LOW " +
+    "SYSRES_CONST_IMPORTANCE_NORMAL " +
+    "SYSRES_CONST_IN_DESIGN_VERSION_STATE_PICK_VALUE " +
+    "SYSRES_CONST_INCOMING_WORK_RULE_TYPE_CODE " +
+    "SYSRES_CONST_INT_REQUISITE " +
+    "SYSRES_CONST_INT_REQUISITE_TYPE " +
+    "SYSRES_CONST_INTEGER_NUMBER_FORMAT_CHAR " +
+    "SYSRES_CONST_INTEGER_TYPE_CHAR " +
+    "SYSRES_CONST_IS_GENERATED_REQUISITE_NEGATIVE_VALUE " +
+    "SYSRES_CONST_IS_PUBLIC_ROLE_REQUISITE_CODE " +
+    "SYSRES_CONST_IS_REMOTE_USER_NEGATIVE_VALUE " +
+    "SYSRES_CONST_IS_REMOTE_USER_POSITIVE_VALUE " +
+    "SYSRES_CONST_IS_STORED_REQUISITE_NEGATIVE_VALUE " +
+    "SYSRES_CONST_IS_STORED_REQUISITE_STORED_VALUE " +
+    "SYSRES_CONST_ITALIC_LIFE_CYCLE_STAGE_DRAW_STYLE " +
+    "SYSRES_CONST_JOB_BLOCK_DESCRIPTION " +
+    "SYSRES_CONST_JOB_KIND_CONTROL_JOB " +
+    "SYSRES_CONST_JOB_KIND_JOB " +
+    "SYSRES_CONST_JOB_KIND_NOTICE " +
+    "SYSRES_CONST_JOB_STATE_ABORTED " +
+    "SYSRES_CONST_JOB_STATE_COMPLETE " +
+    "SYSRES_CONST_JOB_STATE_WORKING " +
+    "SYSRES_CONST_KIND_REQUISITE_CODE " +
+    "SYSRES_CONST_KIND_REQUISITE_NAME " +
+    "SYSRES_CONST_KINDS_CREATE_SHADOW_COPIES_REQUISITE_CODE " +
+    "SYSRES_CONST_KINDS_DEFAULT_EDOC_LIFE_STAGE_REQUISITE_CODE " +
+    "SYSRES_CONST_KINDS_EDOC_ALL_TEPLATES_ALLOWED_REQUISITE_CODE " +
+    "SYSRES_CONST_KINDS_EDOC_ALLOW_LIFE_CYCLE_STAGE_CHANGING_REQUISITE_CODE " +
+    "SYSRES_CONST_KINDS_EDOC_ALLOW_MULTIPLE_ACTIVE_VERSIONS_REQUISITE_CODE " +
+    "SYSRES_CONST_KINDS_EDOC_SHARE_ACCES_RIGHTS_BY_DEFAULT_CODE " +
+    "SYSRES_CONST_KINDS_EDOC_TEMPLATE_REQUISITE_CODE " +
+    "SYSRES_CONST_KINDS_EDOC_TYPE_REQUISITE_CODE " +
+    "SYSRES_CONST_KINDS_SIGNERS_REQUISITES_CODE " +
+    "SYSRES_CONST_KOD_INPUT_TYPE " +
+    "SYSRES_CONST_LAST_UPDATE_DATE_REQUISITE_CODE " +
+    "SYSRES_CONST_LIFE_CYCLE_START_STAGE_REQUISITE_CODE " +
+    "SYSRES_CONST_LILAC_LIFE_CYCLE_STAGE_FONT_COLOR " +
+    "SYSRES_CONST_LINK_OBJECT_KIND_COMPONENT " +
+    "SYSRES_CONST_LINK_OBJECT_KIND_DOCUMENT " +
+    "SYSRES_CONST_LINK_OBJECT_KIND_EDOC " +
+    "SYSRES_CONST_LINK_OBJECT_KIND_FOLDER " +
+    "SYSRES_CONST_LINK_OBJECT_KIND_JOB " +
+    "SYSRES_CONST_LINK_OBJECT_KIND_REFERENCE " +
+    "SYSRES_CONST_LINK_OBJECT_KIND_TASK " +
+    "SYSRES_CONST_LINK_REF_TYPE_REQUISITE_CODE " +
+    "SYSRES_CONST_LIST_REFERENCE_MODE_NAME " +
+    "SYSRES_CONST_LOCALIZATION_DICTIONARY_MAIN_VIEW_CODE " +
+    "SYSRES_CONST_MAIN_VIEW_CODE " +
+    "SYSRES_CONST_MANUAL_ENUM_METHOD_FLAG " +
+    "SYSRES_CONST_MASTER_COMP_TYPE_REQUISITE_CODE " +
+    "SYSRES_CONST_MASTER_TABLE_REC_ID_REQUISITE_CODE " +
+    "SYSRES_CONST_MAXIMIZED_MODE_NAME " +
+    "SYSRES_CONST_ME_VALUE " +
+    "SYSRES_CONST_MESSAGE_ATTENTION_CAPTION " +
+    "SYSRES_CONST_MESSAGE_CONFIRMATION_CAPTION " +
+    "SYSRES_CONST_MESSAGE_ERROR_CAPTION " +
+    "SYSRES_CONST_MESSAGE_INFORMATION_CAPTION " +
+    "SYSRES_CONST_MINIMIZED_MODE_NAME " +
+    "SYSRES_CONST_MINUTE_CHAR " +
+    "SYSRES_CONST_MODULE_REQUISITE_CODE " +
+    "SYSRES_CONST_MONITORING_BLOCK_DESCRIPTION " +
+    "SYSRES_CONST_MONTH_FORMAT_VALUE " +
+    "SYSRES_CONST_NAME_LOCALIZE_ID_REQUISITE_CODE " +
+    "SYSRES_CONST_NAME_REQUISITE_CODE " +
+    "SYSRES_CONST_NAME_SINGULAR_REQUISITE_CODE " +
+    "SYSRES_CONST_NAMEAN_INPUT_TYPE " +
+    "SYSRES_CONST_NEGATIVE_PICK_VALUE " +
+    "SYSRES_CONST_NEGATIVE_VALUE " +
+    "SYSRES_CONST_NO " +
+    "SYSRES_CONST_NO_PICK_VALUE " +
+    "SYSRES_CONST_NO_SIGNATURE_REQUISITE_CODE " +
+    "SYSRES_CONST_NO_VALUE " +
+    "SYSRES_CONST_NONE_ACCESS_RIGHTS_TYPE_CODE " +
+    "SYSRES_CONST_NONOPERATING_RECORD_FLAG_VALUE " +
+    "SYSRES_CONST_NONOPERATING_RECORD_FLAG_VALUE_MASCULINE " +
+    "SYSRES_CONST_NORMAL_ACCESS_RIGHTS_TYPE_CODE " +
+    "SYSRES_CONST_NORMAL_LIFE_CYCLE_STAGE_DRAW_STYLE " +
+    "SYSRES_CONST_NORMAL_MODE_NAME " +
+    "SYSRES_CONST_NOT_ALLOWED_ACCESS_TYPE_CODE " +
+    "SYSRES_CONST_NOT_ALLOWED_ACCESS_TYPE_NAME " +
+    "SYSRES_CONST_NOTE_REQUISITE_CODE " +
+    "SYSRES_CONST_NOTICE_BLOCK_DESCRIPTION " +
+    "SYSRES_CONST_NUM_REQUISITE " +
+    "SYSRES_CONST_NUM_STR_REQUISITE_CODE " +
+    "SYSRES_CONST_NUMERATION_AUTO_NOT_STRONG " +
+    "SYSRES_CONST_NUMERATION_AUTO_STRONG " +
+    "SYSRES_CONST_NUMERATION_FROM_DICTONARY " +
+    "SYSRES_CONST_NUMERATION_MANUAL " +
+    "SYSRES_CONST_NUMERIC_TYPE_CHAR " +
+    "SYSRES_CONST_NUMREQ_REQUISITE_CODE " +
+    "SYSRES_CONST_OBSOLETE_VERSION_STATE_PICK_VALUE " +
+    "SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE " +
+    "SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE_CODE " +
+    "SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE_FEMININE " +
+    "SYSRES_CONST_OPERATING_RECORD_FLAG_VALUE_MASCULINE " +
+    "SYSRES_CONST_OPTIONAL_FORM_COMP_REQCODE_PREFIX " +
+    "SYSRES_CONST_ORANGE_LIFE_CYCLE_STAGE_FONT_COLOR " +
+    "SYSRES_CONST_ORIGINALREF_REQUISITE_CODE " +
+    "SYSRES_CONST_OURFIRM_REF_CODE " +
+    "SYSRES_CONST_OURFIRM_REQUISITE_CODE " +
+    "SYSRES_CONST_OURFIRM_VAR " +
+    "SYSRES_CONST_OUTGOING_WORK_RULE_TYPE_CODE " +
+    "SYSRES_CONST_PICK_NEGATIVE_RESULT " +
+    "SYSRES_CONST_PICK_POSITIVE_RESULT " +
+    "SYSRES_CONST_PICK_REQUISITE " +
+    "SYSRES_CONST_PICK_REQUISITE_TYPE " +
+    "SYSRES_CONST_PICK_TYPE_CHAR " +
+    "SYSRES_CONST_PLAN_STATUS_REQUISITE_CODE " +
+    "SYSRES_CONST_PLATFORM_VERSION_COMMENT " +
+    "SYSRES_CONST_PLUGINS_SETTINGS_DESCRIPTION_REQUISITE_CODE " +
+    "SYSRES_CONST_POSITIVE_PICK_VALUE " +
+    "SYSRES_CONST_POWER_TO_CREATE_ACTION_CODE " +
+    "SYSRES_CONST_POWER_TO_SIGN_ACTION_CODE " +
+    "SYSRES_CONST_PRIORITY_REQUISITE_CODE " +
+    "SYSRES_CONST_QUALIFIED_TASK_TYPE " +
+    "SYSRES_CONST_QUALIFIED_TASK_TYPE_CODE " +
+    "SYSRES_CONST_RECSTAT_REQUISITE_CODE " +
+    "SYSRES_CONST_RED_LIFE_CYCLE_STAGE_FONT_COLOR " +
+    "SYSRES_CONST_REF_ID_T_REF_TYPE_REQUISITE_CODE " +
+    "SYSRES_CONST_REF_REQUISITE " +
+    "SYSRES_CONST_REF_REQUISITE_TYPE " +
+    "SYSRES_CONST_REF_REQUISITES_REFERENCE_CODE_SELECTED_REQUISITE " +
+    "SYSRES_CONST_REFERENCE_RECORD_HISTORY_CREATE_ACTION_CODE " +
+    "SYSRES_CONST_REFERENCE_RECORD_HISTORY_DELETE_ACTION_CODE " +
+    "SYSRES_CONST_REFERENCE_RECORD_HISTORY_MODIFY_ACTION_CODE " +
+    "SYSRES_CONST_REFERENCE_TYPE_CHAR " +
+    "SYSRES_CONST_REFERENCE_TYPE_REQUISITE_NAME " +
+    "SYSRES_CONST_REFERENCES_ADD_PARAMS_REQUISITE_CODE " +
+    "SYSRES_CONST_REFERENCES_DISPLAY_REQUISITE_REQUISITE_CODE " +
+    "SYSRES_CONST_REMOTE_SERVER_STATUS_WORKING " +
+    "SYSRES_CONST_REMOTE_SERVER_TYPE_MAIN " +
+    "SYSRES_CONST_REMOTE_SERVER_TYPE_SECONDARY " +
+    "SYSRES_CONST_REMOTE_USER_FLAG_VALUE_CODE " +
+    "SYSRES_CONST_REPORT_APP_EDITOR_INTERNAL " +
+    "SYSRES_CONST_REPORT_BASE_REPORT_ID_REQUISITE_CODE " +
+    "SYSRES_CONST_REPORT_BASE_REPORT_REQUISITE_CODE " +
+    "SYSRES_CONST_REPORT_SCRIPT_REQUISITE_CODE " +
+    "SYSRES_CONST_REPORT_TEMPLATE_REQUISITE_CODE " +
+    "SYSRES_CONST_REPORT_VIEWER_CODE_REQUISITE_CODE " +
+    "SYSRES_CONST_REQ_ALLOW_COMPONENT_DEFAULT_VALUE " +
+    "SYSRES_CONST_REQ_ALLOW_RECORD_DEFAULT_VALUE " +
+    "SYSRES_CONST_REQ_ALLOW_SERVER_COMPONENT_DEFAULT_VALUE " +
+    "SYSRES_CONST_REQ_MODE_AVAILABLE_CODE " +
+    "SYSRES_CONST_REQ_MODE_EDIT_CODE " +
+    "SYSRES_CONST_REQ_MODE_HIDDEN_CODE " +
+    "SYSRES_CONST_REQ_MODE_NOT_AVAILABLE_CODE " +
+    "SYSRES_CONST_REQ_MODE_VIEW_CODE " +
+    "SYSRES_CONST_REQ_NUMBER_REQUISITE_CODE " +
+    "SYSRES_CONST_REQ_SECTION_VALUE " +
+    "SYSRES_CONST_REQ_TYPE_VALUE " +
+    "SYSRES_CONST_REQUISITE_FORMAT_BY_UNIT " +
+    "SYSRES_CONST_REQUISITE_FORMAT_DATE_FULL " +
+    "SYSRES_CONST_REQUISITE_FORMAT_DATE_TIME " +
+    "SYSRES_CONST_REQUISITE_FORMAT_LEFT " +
+    "SYSRES_CONST_REQUISITE_FORMAT_RIGHT " +
+    "SYSRES_CONST_REQUISITE_FORMAT_WITHOUT_UNIT " +
+    "SYSRES_CONST_REQUISITE_NUMBER_REQUISITE_CODE " +
+    "SYSRES_CONST_REQUISITE_SECTION_ACTIONS " +
+    "SYSRES_CONST_REQUISITE_SECTION_BUTTON " +
+    "SYSRES_CONST_REQUISITE_SECTION_BUTTONS " +
+    "SYSRES_CONST_REQUISITE_SECTION_CARD " +
+    "SYSRES_CONST_REQUISITE_SECTION_TABLE " +
+    "SYSRES_CONST_REQUISITE_SECTION_TABLE10 " +
+    "SYSRES_CONST_REQUISITE_SECTION_TABLE11 " +
+    "SYSRES_CONST_REQUISITE_SECTION_TABLE12 " +
+    "SYSRES_CONST_REQUISITE_SECTION_TABLE13 " +
+    "SYSRES_CONST_REQUISITE_SECTION_TABLE14 " +
+    "SYSRES_CONST_REQUISITE_SECTION_TABLE15 " +
+    "SYSRES_CONST_REQUISITE_SECTION_TABLE16 " +
+    "SYSRES_CONST_REQUISITE_SECTION_TABLE17 " +
+    "SYSRES_CONST_REQUISITE_SECTION_TABLE18 " +
+    "SYSRES_CONST_REQUISITE_SECTION_TABLE19 " +
+    "SYSRES_CONST_REQUISITE_SECTION_TABLE2 " +
+    "SYSRES_CONST_REQUISITE_SECTION_TABLE20 " +
+    "SYSRES_CONST_REQUISITE_SECTION_TABLE21 " +
+    "SYSRES_CONST_REQUISITE_SECTION_TABLE22 " +
+    "SYSRES_CONST_REQUISITE_SECTION_TABLE23 " +
+    "SYSRES_CONST_REQUISITE_SECTION_TABLE24 " +
+    "SYSRES_CONST_REQUISITE_SECTION_TABLE3 " +
+    "SYSRES_CONST_REQUISITE_SECTION_TABLE4 " +
+    "SYSRES_CONST_REQUISITE_SECTION_TABLE5 " +
+    "SYSRES_CONST_REQUISITE_SECTION_TABLE6 " +
+    "SYSRES_CONST_REQUISITE_SECTION_TABLE7 " +
+    "SYSRES_CONST_REQUISITE_SECTION_TABLE8 " +
+    "SYSRES_CONST_REQUISITE_SECTION_TABLE9 " +
+    "SYSRES_CONST_REQUISITES_PSEUDOREFERENCE_REQUISITE_NUMBER_REQUISITE_CODE " +
+    "SYSRES_CONST_RIGHT_ALIGNMENT_CODE " +
+    "SYSRES_CONST_ROLES_REFERENCE_CODE " +
+    "SYSRES_CONST_ROUTE_STEP_AFTER_RUS " +
+    "SYSRES_CONST_ROUTE_STEP_AND_CONDITION_RUS " +
+    "SYSRES_CONST_ROUTE_STEP_OR_CONDITION_RUS " +
+    "SYSRES_CONST_ROUTE_TYPE_COMPLEX " +
+    "SYSRES_CONST_ROUTE_TYPE_PARALLEL " +
+    "SYSRES_CONST_ROUTE_TYPE_SERIAL " +
+    "SYSRES_CONST_SBDATASETDESC_NEGATIVE_VALUE " +
+    "SYSRES_CONST_SBDATASETDESC_POSITIVE_VALUE " +
+    "SYSRES_CONST_SBVIEWSDESC_POSITIVE_VALUE " +
+    "SYSRES_CONST_SCRIPT_BLOCK_DESCRIPTION " +
+    "SYSRES_CONST_SEARCH_BY_TEXT_REQUISITE_CODE " +
+    "SYSRES_CONST_SEARCHES_COMPONENT_CONTENT " +
+    "SYSRES_CONST_SEARCHES_CRITERIA_ACTION_NAME " +
+    "SYSRES_CONST_SEARCHES_EDOC_CONTENT " +
+    "SYSRES_CONST_SEARCHES_FOLDER_CONTENT " +
+    "SYSRES_CONST_SEARCHES_JOB_CONTENT " +
+    "SYSRES_CONST_SEARCHES_REFERENCE_CODE " +
+    "SYSRES_CONST_SEARCHES_TASK_CONTENT " +
+    "SYSRES_CONST_SECOND_CHAR " +
+    "SYSRES_CONST_SECTION_REQUISITE_ACTIONS_VALUE " +
+    "SYSRES_CONST_SECTION_REQUISITE_CARD_VALUE " +
+    "SYSRES_CONST_SECTION_REQUISITE_CODE " +
+    "SYSRES_CONST_SECTION_REQUISITE_DETAIL_1_VALUE " +
+    "SYSRES_CONST_SECTION_REQUISITE_DETAIL_2_VALUE " +
+    "SYSRES_CONST_SECTION_REQUISITE_DETAIL_3_VALUE " +
+    "SYSRES_CONST_SECTION_REQUISITE_DETAIL_4_VALUE " +
+    "SYSRES_CONST_SECTION_REQUISITE_DETAIL_5_VALUE " +
+    "SYSRES_CONST_SECTION_REQUISITE_DETAIL_6_VALUE " +
+    "SYSRES_CONST_SELECT_REFERENCE_MODE_NAME " +
+    "SYSRES_CONST_SELECT_TYPE_SELECTABLE " +
+    "SYSRES_CONST_SELECT_TYPE_SELECTABLE_ONLY_CHILD " +
+    "SYSRES_CONST_SELECT_TYPE_SELECTABLE_WITH_CHILD " +
+    "SYSRES_CONST_SELECT_TYPE_UNSLECTABLE " +
+    "SYSRES_CONST_SERVER_TYPE_MAIN " +
+    "SYSRES_CONST_SERVICE_USER_CATEGORY_FIELD_VALUE " +
+    "SYSRES_CONST_SETTINGS_USER_REQUISITE_CODE " +
+    "SYSRES_CONST_SIGNATURE_AND_ENCODE_CERTIFICATE_TYPE_CODE " +
+    "SYSRES_CONST_SIGNATURE_CERTIFICATE_TYPE_CODE " +
+    "SYSRES_CONST_SINGULAR_TITLE_REQUISITE_CODE " +
+    "SYSRES_CONST_SQL_SERVER_AUTHENTIFICATION_FLAG_VALUE_CODE " +
+    "SYSRES_CONST_SQL_SERVER_ENCODE_AUTHENTIFICATION_FLAG_VALUE_CODE " +
+    "SYSRES_CONST_STANDART_ROUTE_REFERENCE_CODE " +
+    "SYSRES_CONST_STANDART_ROUTE_REFERENCE_COMMENT_REQUISITE_CODE " +
+    "SYSRES_CONST_STANDART_ROUTES_GROUPS_REFERENCE_CODE " +
+    "SYSRES_CONST_STATE_REQ_NAME " +
+    "SYSRES_CONST_STATE_REQUISITE_ACTIVE_VALUE " +
+    "SYSRES_CONST_STATE_REQUISITE_CLOSED_VALUE " +
+    "SYSRES_CONST_STATE_REQUISITE_CODE " +
+    "SYSRES_CONST_STATIC_ROLE_TYPE_CODE " +
+    "SYSRES_CONST_STATUS_PLAN_DEFAULT_VALUE " +
+    "SYSRES_CONST_STATUS_VALUE_AUTOCLEANING " +
+    "SYSRES_CONST_STATUS_VALUE_BLUE_SQUARE " +
+    "SYSRES_CONST_STATUS_VALUE_COMPLETE " +
+    "SYSRES_CONST_STATUS_VALUE_GREEN_SQUARE " +
+    "SYSRES_CONST_STATUS_VALUE_ORANGE_SQUARE " +
+    "SYSRES_CONST_STATUS_VALUE_PURPLE_SQUARE " +
+    "SYSRES_CONST_STATUS_VALUE_RED_SQUARE " +
+    "SYSRES_CONST_STATUS_VALUE_SUSPEND " +
+    "SYSRES_CONST_STATUS_VALUE_YELLOW_SQUARE " +
+    "SYSRES_CONST_STDROUTE_SHOW_TO_USERS_REQUISITE_CODE " +
+    "SYSRES_CONST_STORAGE_TYPE_FILE " +
+    "SYSRES_CONST_STORAGE_TYPE_SQL_SERVER " +
+    "SYSRES_CONST_STR_REQUISITE " +
+    "SYSRES_CONST_STRIKEOUT_LIFE_CYCLE_STAGE_DRAW_STYLE " +
+    "SYSRES_CONST_STRING_FORMAT_LEFT_ALIGN_CHAR " +
+    "SYSRES_CONST_STRING_FORMAT_RIGHT_ALIGN_CHAR " +
+    "SYSRES_CONST_STRING_REQUISITE_CODE " +
+    "SYSRES_CONST_STRING_REQUISITE_TYPE " +
+    "SYSRES_CONST_STRING_TYPE_CHAR " +
+    "SYSRES_CONST_SUBSTITUTES_PSEUDOREFERENCE_CODE " +
+    "SYSRES_CONST_SUBTASK_BLOCK_DESCRIPTION " +
+    "SYSRES_CONST_SYSTEM_SETTING_CURRENT_USER_PARAM_VALUE " +
+    "SYSRES_CONST_SYSTEM_SETTING_EMPTY_VALUE_PARAM_VALUE " +
+    "SYSRES_CONST_SYSTEM_VERSION_COMMENT " +
+    "SYSRES_CONST_TASK_ACCESS_TYPE_ALL " +
+    "SYSRES_CONST_TASK_ACCESS_TYPE_ALL_MEMBERS " +
+    "SYSRES_CONST_TASK_ACCESS_TYPE_MANUAL " +
+    "SYSRES_CONST_TASK_ENCODE_TYPE_CERTIFICATION " +
+    "SYSRES_CONST_TASK_ENCODE_TYPE_CERTIFICATION_AND_PASSWORD " +
+    "SYSRES_CONST_TASK_ENCODE_TYPE_NONE " +
+    "SYSRES_CONST_TASK_ENCODE_TYPE_PASSWORD " +
+    "SYSRES_CONST_TASK_ROUTE_ALL_CONDITION " +
+    "SYSRES_CONST_TASK_ROUTE_AND_CONDITION " +
+    "SYSRES_CONST_TASK_ROUTE_OR_CONDITION " +
+    "SYSRES_CONST_TASK_STATE_ABORTED " +
+    "SYSRES_CONST_TASK_STATE_COMPLETE " +
+    "SYSRES_CONST_TASK_STATE_CONTINUED " +
+    "SYSRES_CONST_TASK_STATE_CONTROL " +
+    "SYSRES_CONST_TASK_STATE_INIT " +
+    "SYSRES_CONST_TASK_STATE_WORKING " +
+    "SYSRES_CONST_TASK_TITLE " +
+    "SYSRES_CONST_TASK_TYPES_GROUPS_REFERENCE_CODE " +
+    "SYSRES_CONST_TASK_TYPES_REFERENCE_CODE " +
+    "SYSRES_CONST_TEMPLATES_REFERENCE_CODE " +
+    "SYSRES_CONST_TEST_DATE_REQUISITE_NAME " +
+    "SYSRES_CONST_TEST_DEV_DATABASE_NAME " +
+    "SYSRES_CONST_TEST_DEV_SYSTEM_CODE " +
+    "SYSRES_CONST_TEST_EDMS_DATABASE_NAME " +
+    "SYSRES_CONST_TEST_EDMS_MAIN_CODE " +
+    "SYSRES_CONST_TEST_EDMS_MAIN_DB_NAME " +
+    "SYSRES_CONST_TEST_EDMS_SECOND_CODE " +
+    "SYSRES_CONST_TEST_EDMS_SECOND_DB_NAME " +
+    "SYSRES_CONST_TEST_EDMS_SYSTEM_CODE " +
+    "SYSRES_CONST_TEST_NUMERIC_REQUISITE_NAME " +
+    "SYSRES_CONST_TEXT_REQUISITE " +
+    "SYSRES_CONST_TEXT_REQUISITE_CODE " +
+    "SYSRES_CONST_TEXT_REQUISITE_TYPE " +
+    "SYSRES_CONST_TEXT_TYPE_CHAR " +
+    "SYSRES_CONST_TYPE_CODE_REQUISITE_CODE " +
+    "SYSRES_CONST_TYPE_REQUISITE_CODE " +
+    "SYSRES_CONST_UNDEFINED_LIFE_CYCLE_STAGE_FONT_COLOR " +
+    "SYSRES_CONST_UNITS_SECTION_ID_REQUISITE_CODE " +
+    "SYSRES_CONST_UNITS_SECTION_REQUISITE_CODE " +
+    "SYSRES_CONST_UNOPERATING_RECORD_FLAG_VALUE_CODE " +
+    "SYSRES_CONST_UNSTORED_DATA_REQUISITE_CODE " +
+    "SYSRES_CONST_UNSTORED_DATA_REQUISITE_NAME " +
+    "SYSRES_CONST_USE_ACCESS_TYPE_CODE " +
+    "SYSRES_CONST_USE_ACCESS_TYPE_NAME " +
+    "SYSRES_CONST_USER_ACCOUNT_TYPE_VALUE_CODE " +
+    "SYSRES_CONST_USER_ADDITIONAL_INFORMATION_REQUISITE_CODE " +
+    "SYSRES_CONST_USER_AND_GROUP_ID_FROM_PSEUDOREFERENCE_REQUISITE_CODE " +
+    "SYSRES_CONST_USER_CATEGORY_NORMAL " +
+    "SYSRES_CONST_USER_CERTIFICATE_REQUISITE_CODE " +
+    "SYSRES_CONST_USER_CERTIFICATE_STATE_REQUISITE_CODE " +
+    "SYSRES_CONST_USER_CERTIFICATE_SUBJECT_NAME_REQUISITE_CODE " +
+    "SYSRES_CONST_USER_CERTIFICATE_THUMBPRINT_REQUISITE_CODE " +
+    "SYSRES_CONST_USER_COMMON_CATEGORY " +
+    "SYSRES_CONST_USER_COMMON_CATEGORY_CODE " +
+    "SYSRES_CONST_USER_FULL_NAME_REQUISITE_CODE " +
+    "SYSRES_CONST_USER_GROUP_TYPE_REQUISITE_CODE " +
+    "SYSRES_CONST_USER_LOGIN_REQUISITE_CODE " +
+    "SYSRES_CONST_USER_REMOTE_CONTROLLER_REQUISITE_CODE " +
+    "SYSRES_CONST_USER_REMOTE_SYSTEM_REQUISITE_CODE " +
+    "SYSRES_CONST_USER_RIGHTS_T_REQUISITE_CODE " +
+    "SYSRES_CONST_USER_SERVER_NAME_REQUISITE_CODE " +
+    "SYSRES_CONST_USER_SERVICE_CATEGORY " +
+    "SYSRES_CONST_USER_SERVICE_CATEGORY_CODE " +
+    "SYSRES_CONST_USER_STATUS_ADMINISTRATOR_CODE " +
+    "SYSRES_CONST_USER_STATUS_ADMINISTRATOR_NAME " +
+    "SYSRES_CONST_USER_STATUS_DEVELOPER_CODE " +
+    "SYSRES_CONST_USER_STATUS_DEVELOPER_NAME " +
+    "SYSRES_CONST_USER_STATUS_DISABLED_CODE " +
+    "SYSRES_CONST_USER_STATUS_DISABLED_NAME " +
+    "SYSRES_CONST_USER_STATUS_SYSTEM_DEVELOPER_CODE " +
+    "SYSRES_CONST_USER_STATUS_USER_CODE " +
+    "SYSRES_CONST_USER_STATUS_USER_NAME " +
+    "SYSRES_CONST_USER_STATUS_USER_NAME_DEPRECATED " +
+    "SYSRES_CONST_USER_TYPE_FIELD_VALUE_USER " +
+    "SYSRES_CONST_USER_TYPE_REQUISITE_CODE " +
+    "SYSRES_CONST_USERS_CONTROLLER_REQUISITE_CODE " +
+    "SYSRES_CONST_USERS_IS_MAIN_SERVER_REQUISITE_CODE " +
+    "SYSRES_CONST_USERS_REFERENCE_CODE " +
+    "SYSRES_CONST_USERS_REGISTRATION_CERTIFICATES_ACTION_NAME " +
+    "SYSRES_CONST_USERS_REQUISITE_CODE " +
+    "SYSRES_CONST_USERS_SYSTEM_REQUISITE_CODE " +
+    "SYSRES_CONST_USERS_USER_ACCESS_RIGHTS_TYPR_REQUISITE_CODE " +
+    "SYSRES_CONST_USERS_USER_AUTHENTICATION_REQUISITE_CODE " +
+    "SYSRES_CONST_USERS_USER_COMPONENT_REQUISITE_CODE " +
+    "SYSRES_CONST_USERS_USER_GROUP_REQUISITE_CODE " +
+    "SYSRES_CONST_USERS_VIEW_CERTIFICATES_ACTION_NAME " +
+    "SYSRES_CONST_VIEW_DEFAULT_CODE " +
+    "SYSRES_CONST_VIEW_DEFAULT_NAME " +
+    "SYSRES_CONST_VIEWER_REQUISITE_CODE " +
+    "SYSRES_CONST_WAITING_BLOCK_DESCRIPTION " +
+    "SYSRES_CONST_WIZARD_FORM_LABEL_TEST_STRING  " +
+    "SYSRES_CONST_WIZARD_QUERY_PARAM_HEIGHT_ETALON_STRING " +
+    "SYSRES_CONST_WIZARD_REFERENCE_COMMENT_REQUISITE_CODE " +
+    "SYSRES_CONST_WORK_RULES_DESCRIPTION_REQUISITE_CODE " +
+    "SYSRES_CONST_WORK_TIME_CALENDAR_REFERENCE_CODE " +
+    "SYSRES_CONST_WORK_WORKFLOW_HARD_ROUTE_TYPE_VALUE " +
+    "SYSRES_CONST_WORK_WORKFLOW_HARD_ROUTE_TYPE_VALUE_CODE " +
+    "SYSRES_CONST_WORK_WORKFLOW_HARD_ROUTE_TYPE_VALUE_CODE_RUS " +
+    "SYSRES_CONST_WORK_WORKFLOW_SOFT_ROUTE_TYPE_VALUE_CODE_RUS " +
+    "SYSRES_CONST_WORKFLOW_ROUTE_TYPR_HARD " +
+    "SYSRES_CONST_WORKFLOW_ROUTE_TYPR_SOFT " +
+    "SYSRES_CONST_XML_ENCODING " +
+    "SYSRES_CONST_XREC_STAT_REQUISITE_CODE " +
+    "SYSRES_CONST_XRECID_FIELD_NAME " +
+    "SYSRES_CONST_YES " +
+    "SYSRES_CONST_YES_NO_2_REQUISITE_CODE " +
+    "SYSRES_CONST_YES_NO_REQUISITE_CODE " +
+    "SYSRES_CONST_YES_NO_T_REF_TYPE_REQUISITE_CODE " +
+    "SYSRES_CONST_YES_PICK_VALUE " +
+    "SYSRES_CONST_YES_VALUE ";
+
+  // Base constant
+  var base_constants = "CR FALSE nil NO_VALUE NULL TAB TRUE YES_VALUE ";
+
+  // Base group name
+  var base_group_name_constants =
+    "ADMINISTRATORS_GROUP_NAME CUSTOMIZERS_GROUP_NAME DEVELOPERS_GROUP_NAME SERVICE_USERS_GROUP_NAME ";
+
+  // Decision block properties
+  var decision_block_properties_constants =
+    "DECISION_BLOCK_FIRST_OPERAND_PROPERTY DECISION_BLOCK_NAME_PROPERTY DECISION_BLOCK_OPERATION_PROPERTY " +
+    "DECISION_BLOCK_RESULT_TYPE_PROPERTY DECISION_BLOCK_SECOND_OPERAND_PROPERTY ";
+
+  // File extension
+  var file_extension_constants =
+    "ANY_FILE_EXTENTION COMPRESSED_DOCUMENT_EXTENSION EXTENDED_DOCUMENT_EXTENSION " +
+    "SHORT_COMPRESSED_DOCUMENT_EXTENSION SHORT_EXTENDED_DOCUMENT_EXTENSION ";
+
+  // Job block properties
+  var job_block_properties_constants =
+    "JOB_BLOCK_ABORT_DEADLINE_PROPERTY " +
+    "JOB_BLOCK_AFTER_FINISH_EVENT " +
+    "JOB_BLOCK_AFTER_QUERY_PARAMETERS_EVENT " +
+    "JOB_BLOCK_ATTACHMENT_PROPERTY " +
+    "JOB_BLOCK_ATTACHMENTS_RIGHTS_GROUP_PROPERTY " +
+    "JOB_BLOCK_ATTACHMENTS_RIGHTS_TYPE_PROPERTY " +
+    "JOB_BLOCK_BEFORE_QUERY_PARAMETERS_EVENT " +
+    "JOB_BLOCK_BEFORE_START_EVENT " +
+    "JOB_BLOCK_CREATED_JOBS_PROPERTY " +
+    "JOB_BLOCK_DEADLINE_PROPERTY " +
+    "JOB_BLOCK_EXECUTION_RESULTS_PROPERTY " +
+    "JOB_BLOCK_IS_PARALLEL_PROPERTY " +
+    "JOB_BLOCK_IS_RELATIVE_ABORT_DEADLINE_PROPERTY " +
+    "JOB_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY " +
+    "JOB_BLOCK_JOB_TEXT_PROPERTY " +
+    "JOB_BLOCK_NAME_PROPERTY " +
+    "JOB_BLOCK_NEED_SIGN_ON_PERFORM_PROPERTY " +
+    "JOB_BLOCK_PERFORMER_PROPERTY " +
+    "JOB_BLOCK_RELATIVE_ABORT_DEADLINE_TYPE_PROPERTY " +
+    "JOB_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY " +
+    "JOB_BLOCK_SUBJECT_PROPERTY ";
+
+  // Language code
+  var language_code_constants = "ENGLISH_LANGUAGE_CODE RUSSIAN_LANGUAGE_CODE ";
+
+  // Launching external applications
+  var launching_external_applications_constants =
+    "smHidden smMaximized smMinimized smNormal wmNo wmYes ";
+
+  // Link kind
+  var link_kind_constants =
+    "COMPONENT_TOKEN_LINK_KIND " +
+    "DOCUMENT_LINK_KIND " +
+    "EDOCUMENT_LINK_KIND " +
+    "FOLDER_LINK_KIND " +
+    "JOB_LINK_KIND " +
+    "REFERENCE_LINK_KIND " +
+    "TASK_LINK_KIND ";
+
+  // Lock type
+  var lock_type_constants =
+    "COMPONENT_TOKEN_LOCK_TYPE EDOCUMENT_VERSION_LOCK_TYPE ";
+
+  // Monitor block properties
+  var monitor_block_properties_constants =
+    "MONITOR_BLOCK_AFTER_FINISH_EVENT " +
+    "MONITOR_BLOCK_BEFORE_START_EVENT " +
+    "MONITOR_BLOCK_DEADLINE_PROPERTY " +
+    "MONITOR_BLOCK_INTERVAL_PROPERTY " +
+    "MONITOR_BLOCK_INTERVAL_TYPE_PROPERTY " +
+    "MONITOR_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY " +
+    "MONITOR_BLOCK_NAME_PROPERTY " +
+    "MONITOR_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY " +
+    "MONITOR_BLOCK_SEARCH_SCRIPT_PROPERTY ";
+
+  // Notice block properties
+  var notice_block_properties_constants =
+    "NOTICE_BLOCK_AFTER_FINISH_EVENT " +
+    "NOTICE_BLOCK_ATTACHMENT_PROPERTY " +
+    "NOTICE_BLOCK_ATTACHMENTS_RIGHTS_GROUP_PROPERTY " +
+    "NOTICE_BLOCK_ATTACHMENTS_RIGHTS_TYPE_PROPERTY " +
+    "NOTICE_BLOCK_BEFORE_START_EVENT " +
+    "NOTICE_BLOCK_CREATED_NOTICES_PROPERTY " +
+    "NOTICE_BLOCK_DEADLINE_PROPERTY " +
+    "NOTICE_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY " +
+    "NOTICE_BLOCK_NAME_PROPERTY " +
+    "NOTICE_BLOCK_NOTICE_TEXT_PROPERTY " +
+    "NOTICE_BLOCK_PERFORMER_PROPERTY " +
+    "NOTICE_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY " +
+    "NOTICE_BLOCK_SUBJECT_PROPERTY ";
+
+  // Object events
+  var object_events_constants =
+    "dseAfterCancel " +
+    "dseAfterClose " +
+    "dseAfterDelete " +
+    "dseAfterDeleteOutOfTransaction " +
+    "dseAfterInsert " +
+    "dseAfterOpen " +
+    "dseAfterScroll " +
+    "dseAfterUpdate " +
+    "dseAfterUpdateOutOfTransaction " +
+    "dseBeforeCancel " +
+    "dseBeforeClose " +
+    "dseBeforeDelete " +
+    "dseBeforeDetailUpdate " +
+    "dseBeforeInsert " +
+    "dseBeforeOpen " +
+    "dseBeforeUpdate " +
+    "dseOnAnyRequisiteChange " +
+    "dseOnCloseRecord " +
+    "dseOnDeleteError " +
+    "dseOnOpenRecord " +
+    "dseOnPrepareUpdate " +
+    "dseOnUpdateError " +
+    "dseOnUpdateRatifiedRecord " +
+    "dseOnValidDelete " +
+    "dseOnValidUpdate " +
+    "reOnChange " +
+    "reOnChangeValues " +
+    "SELECTION_BEGIN_ROUTE_EVENT " +
+    "SELECTION_END_ROUTE_EVENT ";
+
+  // Object params
+  var object_params_constants =
+    "CURRENT_PERIOD_IS_REQUIRED " +
+    "PREVIOUS_CARD_TYPE_NAME " +
+    "SHOW_RECORD_PROPERTIES_FORM ";
+
+  // Other
+  var other_constants =
+    "ACCESS_RIGHTS_SETTING_DIALOG_CODE " +
+    "ADMINISTRATOR_USER_CODE " +
+    "ANALYTIC_REPORT_TYPE " +
+    "asrtHideLocal " +
+    "asrtHideRemote " +
+    "CALCULATED_ROLE_TYPE_CODE " +
+    "COMPONENTS_REFERENCE_DEVELOPER_VIEW_CODE " +
+    "DCTS_TEST_PROTOCOLS_FOLDER_PATH " +
+    "E_EDOC_VERSION_ALREADY_APPROVINGLY_SIGNED " +
+    "E_EDOC_VERSION_ALREADY_APPROVINGLY_SIGNED_BY_USER " +
+    "E_EDOC_VERSION_ALREDY_SIGNED " +
+    "E_EDOC_VERSION_ALREDY_SIGNED_BY_USER " +
+    "EDOC_TYPES_CODE_REQUISITE_FIELD_NAME " +
+    "EDOCUMENTS_ALIAS_NAME " +
+    "FILES_FOLDER_PATH " +
+    "FILTER_OPERANDS_DELIMITER " +
+    "FILTER_OPERATIONS_DELIMITER " +
+    "FORMCARD_NAME " +
+    "FORMLIST_NAME " +
+    "GET_EXTENDED_DOCUMENT_EXTENSION_CREATION_MODE " +
+    "GET_EXTENDED_DOCUMENT_EXTENSION_IMPORT_MODE " +
+    "INTEGRATED_REPORT_TYPE " +
+    "IS_BUILDER_APPLICATION_ROLE " +
+    "IS_BUILDER_APPLICATION_ROLE2 " +
+    "IS_BUILDER_USERS " +
+    "ISBSYSDEV " +
+    "LOG_FOLDER_PATH " +
+    "mbCancel " +
+    "mbNo " +
+    "mbNoToAll " +
+    "mbOK " +
+    "mbYes " +
+    "mbYesToAll " +
+    "MEMORY_DATASET_DESRIPTIONS_FILENAME " +
+    "mrNo " +
+    "mrNoToAll " +
+    "mrYes " +
+    "mrYesToAll " +
+    "MULTIPLE_SELECT_DIALOG_CODE " +
+    "NONOPERATING_RECORD_FLAG_FEMININE " +
+    "NONOPERATING_RECORD_FLAG_MASCULINE " +
+    "OPERATING_RECORD_FLAG_FEMININE " +
+    "OPERATING_RECORD_FLAG_MASCULINE " +
+    "PROFILING_SETTINGS_COMMON_SETTINGS_CODE_VALUE " +
+    "PROGRAM_INITIATED_LOOKUP_ACTION " +
+    "ratDelete " +
+    "ratEdit " +
+    "ratInsert " +
+    "REPORT_TYPE " +
+    "REQUIRED_PICK_VALUES_VARIABLE " +
+    "rmCard " +
+    "rmList " +
+    "SBRTE_PROGID_DEV " +
+    "SBRTE_PROGID_RELEASE " +
+    "STATIC_ROLE_TYPE_CODE " +
+    "SUPPRESS_EMPTY_TEMPLATE_CREATION " +
+    "SYSTEM_USER_CODE " +
+    "UPDATE_DIALOG_DATASET " +
+    "USED_IN_OBJECT_HINT_PARAM " +
+    "USER_INITIATED_LOOKUP_ACTION " +
+    "USER_NAME_FORMAT " +
+    "USER_SELECTION_RESTRICTIONS " +
+    "WORKFLOW_TEST_PROTOCOLS_FOLDER_PATH " +
+    "ELS_SUBTYPE_CONTROL_NAME " +
+    "ELS_FOLDER_KIND_CONTROL_NAME " +
+    "REPEAT_PROCESS_CURRENT_OBJECT_EXCEPTION_NAME ";
+
+  // Privileges
+  var privileges_constants =
+    "PRIVILEGE_COMPONENT_FULL_ACCESS " +
+    "PRIVILEGE_DEVELOPMENT_EXPORT " +
+    "PRIVILEGE_DEVELOPMENT_IMPORT " +
+    "PRIVILEGE_DOCUMENT_DELETE " +
+    "PRIVILEGE_ESD " +
+    "PRIVILEGE_FOLDER_DELETE " +
+    "PRIVILEGE_MANAGE_ACCESS_RIGHTS " +
+    "PRIVILEGE_MANAGE_REPLICATION " +
+    "PRIVILEGE_MANAGE_SESSION_SERVER " +
+    "PRIVILEGE_OBJECT_FULL_ACCESS " +
+    "PRIVILEGE_OBJECT_VIEW " +
+    "PRIVILEGE_RESERVE_LICENSE " +
+    "PRIVILEGE_SYSTEM_CUSTOMIZE " +
+    "PRIVILEGE_SYSTEM_DEVELOP " +
+    "PRIVILEGE_SYSTEM_INSTALL " +
+    "PRIVILEGE_TASK_DELETE " +
+    "PRIVILEGE_USER_PLUGIN_SETTINGS_CUSTOMIZE " +
+    "PRIVILEGES_PSEUDOREFERENCE_CODE ";
+
+  // Pseudoreference code
+  var pseudoreference_code_constants =
+    "ACCESS_TYPES_PSEUDOREFERENCE_CODE " +
+    "ALL_AVAILABLE_COMPONENTS_PSEUDOREFERENCE_CODE " +
+    "ALL_AVAILABLE_PRIVILEGES_PSEUDOREFERENCE_CODE " +
+    "ALL_REPLICATE_COMPONENTS_PSEUDOREFERENCE_CODE " +
+    "AVAILABLE_DEVELOPERS_COMPONENTS_PSEUDOREFERENCE_CODE " +
+    "COMPONENTS_PSEUDOREFERENCE_CODE " +
+    "FILTRATER_SETTINGS_CONFLICTS_PSEUDOREFERENCE_CODE " +
+    "GROUPS_PSEUDOREFERENCE_CODE " +
+    "RECEIVE_PROTOCOL_PSEUDOREFERENCE_CODE " +
+    "REFERENCE_REQUISITE_PSEUDOREFERENCE_CODE " +
+    "REFERENCE_REQUISITES_PSEUDOREFERENCE_CODE " +
+    "REFTYPES_PSEUDOREFERENCE_CODE " +
+    "REPLICATION_SEANCES_DIARY_PSEUDOREFERENCE_CODE " +
+    "SEND_PROTOCOL_PSEUDOREFERENCE_CODE " +
+    "SUBSTITUTES_PSEUDOREFERENCE_CODE " +
+    "SYSTEM_SETTINGS_PSEUDOREFERENCE_CODE " +
+    "UNITS_PSEUDOREFERENCE_CODE " +
+    "USERS_PSEUDOREFERENCE_CODE " +
+    "VIEWERS_PSEUDOREFERENCE_CODE ";
+
+  // Requisite ISBCertificateType values
+  var requisite_ISBCertificateType_values_constants =
+    "CERTIFICATE_TYPE_ENCRYPT " +
+    "CERTIFICATE_TYPE_SIGN " +
+    "CERTIFICATE_TYPE_SIGN_AND_ENCRYPT ";
+
+  // Requisite ISBEDocStorageType values
+  var requisite_ISBEDocStorageType_values_constants =
+    "STORAGE_TYPE_FILE " +
+    "STORAGE_TYPE_NAS_CIFS " +
+    "STORAGE_TYPE_SAPERION " +
+    "STORAGE_TYPE_SQL_SERVER ";
+
+  // Requisite CompType2 values
+  var requisite_compType2_values_constants =
+    "COMPTYPE2_REQUISITE_DOCUMENTS_VALUE " +
+    "COMPTYPE2_REQUISITE_TASKS_VALUE " +
+    "COMPTYPE2_REQUISITE_FOLDERS_VALUE " +
+    "COMPTYPE2_REQUISITE_REFERENCES_VALUE ";
+
+  // Requisite name
+  var requisite_name_constants =
+    "SYSREQ_CODE " +
+    "SYSREQ_COMPTYPE2 " +
+    "SYSREQ_CONST_AVAILABLE_FOR_WEB " +
+    "SYSREQ_CONST_COMMON_CODE " +
+    "SYSREQ_CONST_COMMON_VALUE " +
+    "SYSREQ_CONST_FIRM_CODE " +
+    "SYSREQ_CONST_FIRM_STATUS " +
+    "SYSREQ_CONST_FIRM_VALUE " +
+    "SYSREQ_CONST_SERVER_STATUS " +
+    "SYSREQ_CONTENTS " +
+    "SYSREQ_DATE_OPEN " +
+    "SYSREQ_DATE_CLOSE " +
+    "SYSREQ_DESCRIPTION " +
+    "SYSREQ_DESCRIPTION_LOCALIZE_ID " +
+    "SYSREQ_DOUBLE " +
+    "SYSREQ_EDOC_ACCESS_TYPE " +
+    "SYSREQ_EDOC_AUTHOR " +
+    "SYSREQ_EDOC_CREATED " +
+    "SYSREQ_EDOC_DELEGATE_RIGHTS_REQUISITE_CODE " +
+    "SYSREQ_EDOC_EDITOR " +
+    "SYSREQ_EDOC_ENCODE_TYPE " +
+    "SYSREQ_EDOC_ENCRYPTION_PLUGIN_NAME " +
+    "SYSREQ_EDOC_ENCRYPTION_PLUGIN_VERSION " +
+    "SYSREQ_EDOC_EXPORT_DATE " +
+    "SYSREQ_EDOC_EXPORTER " +
+    "SYSREQ_EDOC_KIND " +
+    "SYSREQ_EDOC_LIFE_STAGE_NAME " +
+    "SYSREQ_EDOC_LOCKED_FOR_SERVER_CODE " +
+    "SYSREQ_EDOC_MODIFIED " +
+    "SYSREQ_EDOC_NAME " +
+    "SYSREQ_EDOC_NOTE " +
+    "SYSREQ_EDOC_QUALIFIED_ID " +
+    "SYSREQ_EDOC_SESSION_KEY " +
+    "SYSREQ_EDOC_SESSION_KEY_ENCRYPTION_PLUGIN_NAME " +
+    "SYSREQ_EDOC_SESSION_KEY_ENCRYPTION_PLUGIN_VERSION " +
+    "SYSREQ_EDOC_SIGNATURE_TYPE " +
+    "SYSREQ_EDOC_SIGNED " +
+    "SYSREQ_EDOC_STORAGE " +
+    "SYSREQ_EDOC_STORAGES_ARCHIVE_STORAGE " +
+    "SYSREQ_EDOC_STORAGES_CHECK_RIGHTS " +
+    "SYSREQ_EDOC_STORAGES_COMPUTER_NAME " +
+    "SYSREQ_EDOC_STORAGES_EDIT_IN_STORAGE " +
+    "SYSREQ_EDOC_STORAGES_EXECUTIVE_STORAGE " +
+    "SYSREQ_EDOC_STORAGES_FUNCTION " +
+    "SYSREQ_EDOC_STORAGES_INITIALIZED " +
+    "SYSREQ_EDOC_STORAGES_LOCAL_PATH " +
+    "SYSREQ_EDOC_STORAGES_SAPERION_DATABASE_NAME " +
+    "SYSREQ_EDOC_STORAGES_SEARCH_BY_TEXT " +
+    "SYSREQ_EDOC_STORAGES_SERVER_NAME " +
+    "SYSREQ_EDOC_STORAGES_SHARED_SOURCE_NAME " +
+    "SYSREQ_EDOC_STORAGES_TYPE " +
+    "SYSREQ_EDOC_TEXT_MODIFIED " +
+    "SYSREQ_EDOC_TYPE_ACT_CODE " +
+    "SYSREQ_EDOC_TYPE_ACT_DESCRIPTION " +
+    "SYSREQ_EDOC_TYPE_ACT_DESCRIPTION_LOCALIZE_ID " +
+    "SYSREQ_EDOC_TYPE_ACT_ON_EXECUTE " +
+    "SYSREQ_EDOC_TYPE_ACT_ON_EXECUTE_EXISTS " +
+    "SYSREQ_EDOC_TYPE_ACT_SECTION " +
+    "SYSREQ_EDOC_TYPE_ADD_PARAMS " +
+    "SYSREQ_EDOC_TYPE_COMMENT " +
+    "SYSREQ_EDOC_TYPE_EVENT_TEXT " +
+    "SYSREQ_EDOC_TYPE_NAME_IN_SINGULAR " +
+    "SYSREQ_EDOC_TYPE_NAME_IN_SINGULAR_LOCALIZE_ID " +
+    "SYSREQ_EDOC_TYPE_NAME_LOCALIZE_ID " +
+    "SYSREQ_EDOC_TYPE_NUMERATION_METHOD " +
+    "SYSREQ_EDOC_TYPE_PSEUDO_REQUISITE_CODE " +
+    "SYSREQ_EDOC_TYPE_REQ_CODE " +
+    "SYSREQ_EDOC_TYPE_REQ_DESCRIPTION " +
+    "SYSREQ_EDOC_TYPE_REQ_DESCRIPTION_LOCALIZE_ID " +
+    "SYSREQ_EDOC_TYPE_REQ_IS_LEADING " +
+    "SYSREQ_EDOC_TYPE_REQ_IS_REQUIRED " +
+    "SYSREQ_EDOC_TYPE_REQ_NUMBER " +
+    "SYSREQ_EDOC_TYPE_REQ_ON_CHANGE " +
+    "SYSREQ_EDOC_TYPE_REQ_ON_CHANGE_EXISTS " +
+    "SYSREQ_EDOC_TYPE_REQ_ON_SELECT " +
+    "SYSREQ_EDOC_TYPE_REQ_ON_SELECT_KIND " +
+    "SYSREQ_EDOC_TYPE_REQ_SECTION " +
+    "SYSREQ_EDOC_TYPE_VIEW_CARD " +
+    "SYSREQ_EDOC_TYPE_VIEW_CODE " +
+    "SYSREQ_EDOC_TYPE_VIEW_COMMENT " +
+    "SYSREQ_EDOC_TYPE_VIEW_IS_MAIN " +
+    "SYSREQ_EDOC_TYPE_VIEW_NAME " +
+    "SYSREQ_EDOC_TYPE_VIEW_NAME_LOCALIZE_ID " +
+    "SYSREQ_EDOC_VERSION_AUTHOR " +
+    "SYSREQ_EDOC_VERSION_CRC " +
+    "SYSREQ_EDOC_VERSION_DATA " +
+    "SYSREQ_EDOC_VERSION_EDITOR " +
+    "SYSREQ_EDOC_VERSION_EXPORT_DATE " +
+    "SYSREQ_EDOC_VERSION_EXPORTER " +
+    "SYSREQ_EDOC_VERSION_HIDDEN " +
+    "SYSREQ_EDOC_VERSION_LIFE_STAGE " +
+    "SYSREQ_EDOC_VERSION_MODIFIED " +
+    "SYSREQ_EDOC_VERSION_NOTE " +
+    "SYSREQ_EDOC_VERSION_SIGNATURE_TYPE " +
+    "SYSREQ_EDOC_VERSION_SIGNED " +
+    "SYSREQ_EDOC_VERSION_SIZE " +
+    "SYSREQ_EDOC_VERSION_SOURCE " +
+    "SYSREQ_EDOC_VERSION_TEXT_MODIFIED " +
+    "SYSREQ_EDOCKIND_DEFAULT_VERSION_STATE_CODE " +
+    "SYSREQ_FOLDER_KIND " +
+    "SYSREQ_FUNC_CATEGORY " +
+    "SYSREQ_FUNC_COMMENT " +
+    "SYSREQ_FUNC_GROUP " +
+    "SYSREQ_FUNC_GROUP_COMMENT " +
+    "SYSREQ_FUNC_GROUP_NUMBER " +
+    "SYSREQ_FUNC_HELP " +
+    "SYSREQ_FUNC_PARAM_DEF_VALUE " +
+    "SYSREQ_FUNC_PARAM_IDENT " +
+    "SYSREQ_FUNC_PARAM_NUMBER " +
+    "SYSREQ_FUNC_PARAM_TYPE " +
+    "SYSREQ_FUNC_TEXT " +
+    "SYSREQ_GROUP_CATEGORY " +
+    "SYSREQ_ID " +
+    "SYSREQ_LAST_UPDATE " +
+    "SYSREQ_LEADER_REFERENCE " +
+    "SYSREQ_LINE_NUMBER " +
+    "SYSREQ_MAIN_RECORD_ID " +
+    "SYSREQ_NAME " +
+    "SYSREQ_NAME_LOCALIZE_ID " +
+    "SYSREQ_NOTE " +
+    "SYSREQ_ORIGINAL_RECORD " +
+    "SYSREQ_OUR_FIRM " +
+    "SYSREQ_PROFILING_SETTINGS_BATCH_LOGING " +
+    "SYSREQ_PROFILING_SETTINGS_BATCH_SIZE " +
+    "SYSREQ_PROFILING_SETTINGS_PROFILING_ENABLED " +
+    "SYSREQ_PROFILING_SETTINGS_SQL_PROFILING_ENABLED " +
+    "SYSREQ_PROFILING_SETTINGS_START_LOGGED " +
+    "SYSREQ_RECORD_STATUS " +
+    "SYSREQ_REF_REQ_FIELD_NAME " +
+    "SYSREQ_REF_REQ_FORMAT " +
+    "SYSREQ_REF_REQ_GENERATED " +
+    "SYSREQ_REF_REQ_LENGTH " +
+    "SYSREQ_REF_REQ_PRECISION " +
+    "SYSREQ_REF_REQ_REFERENCE " +
+    "SYSREQ_REF_REQ_SECTION " +
+    "SYSREQ_REF_REQ_STORED " +
+    "SYSREQ_REF_REQ_TOKENS " +
+    "SYSREQ_REF_REQ_TYPE " +
+    "SYSREQ_REF_REQ_VIEW " +
+    "SYSREQ_REF_TYPE_ACT_CODE " +
+    "SYSREQ_REF_TYPE_ACT_DESCRIPTION " +
+    "SYSREQ_REF_TYPE_ACT_DESCRIPTION_LOCALIZE_ID " +
+    "SYSREQ_REF_TYPE_ACT_ON_EXECUTE " +
+    "SYSREQ_REF_TYPE_ACT_ON_EXECUTE_EXISTS " +
+    "SYSREQ_REF_TYPE_ACT_SECTION " +
+    "SYSREQ_REF_TYPE_ADD_PARAMS " +
+    "SYSREQ_REF_TYPE_COMMENT " +
+    "SYSREQ_REF_TYPE_COMMON_SETTINGS " +
+    "SYSREQ_REF_TYPE_DISPLAY_REQUISITE_NAME " +
+    "SYSREQ_REF_TYPE_EVENT_TEXT " +
+    "SYSREQ_REF_TYPE_MAIN_LEADING_REF " +
+    "SYSREQ_REF_TYPE_NAME_IN_SINGULAR " +
+    "SYSREQ_REF_TYPE_NAME_IN_SINGULAR_LOCALIZE_ID " +
+    "SYSREQ_REF_TYPE_NAME_LOCALIZE_ID " +
+    "SYSREQ_REF_TYPE_NUMERATION_METHOD " +
+    "SYSREQ_REF_TYPE_REQ_CODE " +
+    "SYSREQ_REF_TYPE_REQ_DESCRIPTION " +
+    "SYSREQ_REF_TYPE_REQ_DESCRIPTION_LOCALIZE_ID " +
+    "SYSREQ_REF_TYPE_REQ_IS_CONTROL " +
+    "SYSREQ_REF_TYPE_REQ_IS_FILTER " +
+    "SYSREQ_REF_TYPE_REQ_IS_LEADING " +
+    "SYSREQ_REF_TYPE_REQ_IS_REQUIRED " +
+    "SYSREQ_REF_TYPE_REQ_NUMBER " +
+    "SYSREQ_REF_TYPE_REQ_ON_CHANGE " +
+    "SYSREQ_REF_TYPE_REQ_ON_CHANGE_EXISTS " +
+    "SYSREQ_REF_TYPE_REQ_ON_SELECT " +
+    "SYSREQ_REF_TYPE_REQ_ON_SELECT_KIND " +
+    "SYSREQ_REF_TYPE_REQ_SECTION " +
+    "SYSREQ_REF_TYPE_VIEW_CARD " +
+    "SYSREQ_REF_TYPE_VIEW_CODE " +
+    "SYSREQ_REF_TYPE_VIEW_COMMENT " +
+    "SYSREQ_REF_TYPE_VIEW_IS_MAIN " +
+    "SYSREQ_REF_TYPE_VIEW_NAME " +
+    "SYSREQ_REF_TYPE_VIEW_NAME_LOCALIZE_ID " +
+    "SYSREQ_REFERENCE_TYPE_ID " +
+    "SYSREQ_STATE " +
+    "SYSREQ_STATЕ " +
+    "SYSREQ_SYSTEM_SETTINGS_VALUE " +
+    "SYSREQ_TYPE " +
+    "SYSREQ_UNIT " +
+    "SYSREQ_UNIT_ID " +
+    "SYSREQ_USER_GROUPS_GROUP_FULL_NAME " +
+    "SYSREQ_USER_GROUPS_GROUP_NAME " +
+    "SYSREQ_USER_GROUPS_GROUP_SERVER_NAME " +
+    "SYSREQ_USERS_ACCESS_RIGHTS " +
+    "SYSREQ_USERS_AUTHENTICATION " +
+    "SYSREQ_USERS_CATEGORY " +
+    "SYSREQ_USERS_COMPONENT " +
+    "SYSREQ_USERS_COMPONENT_USER_IS_PUBLIC " +
+    "SYSREQ_USERS_DOMAIN " +
+    "SYSREQ_USERS_FULL_USER_NAME " +
+    "SYSREQ_USERS_GROUP " +
+    "SYSREQ_USERS_IS_MAIN_SERVER " +
+    "SYSREQ_USERS_LOGIN " +
+    "SYSREQ_USERS_REFERENCE_USER_IS_PUBLIC " +
+    "SYSREQ_USERS_STATUS " +
+    "SYSREQ_USERS_USER_CERTIFICATE " +
+    "SYSREQ_USERS_USER_CERTIFICATE_INFO " +
+    "SYSREQ_USERS_USER_CERTIFICATE_PLUGIN_NAME " +
+    "SYSREQ_USERS_USER_CERTIFICATE_PLUGIN_VERSION " +
+    "SYSREQ_USERS_USER_CERTIFICATE_STATE " +
+    "SYSREQ_USERS_USER_CERTIFICATE_SUBJECT_NAME " +
+    "SYSREQ_USERS_USER_CERTIFICATE_THUMBPRINT " +
+    "SYSREQ_USERS_USER_DEFAULT_CERTIFICATE " +
+    "SYSREQ_USERS_USER_DESCRIPTION " +
+    "SYSREQ_USERS_USER_GLOBAL_NAME " +
+    "SYSREQ_USERS_USER_LOGIN " +
+    "SYSREQ_USERS_USER_MAIN_SERVER " +
+    "SYSREQ_USERS_USER_TYPE " +
+    "SYSREQ_WORK_RULES_FOLDER_ID ";
+
+  // Result
+  var result_constants = "RESULT_VAR_NAME RESULT_VAR_NAME_ENG ";
+
+  // Rule identification
+  var rule_identification_constants =
+    "AUTO_NUMERATION_RULE_ID " +
+    "CANT_CHANGE_ID_REQUISITE_RULE_ID " +
+    "CANT_CHANGE_OURFIRM_REQUISITE_RULE_ID " +
+    "CHECK_CHANGING_REFERENCE_RECORD_USE_RULE_ID " +
+    "CHECK_CODE_REQUISITE_RULE_ID " +
+    "CHECK_DELETING_REFERENCE_RECORD_USE_RULE_ID " +
+    "CHECK_FILTRATER_CHANGES_RULE_ID " +
+    "CHECK_RECORD_INTERVAL_RULE_ID " +
+    "CHECK_REFERENCE_INTERVAL_RULE_ID " +
+    "CHECK_REQUIRED_DATA_FULLNESS_RULE_ID " +
+    "CHECK_REQUIRED_REQUISITES_FULLNESS_RULE_ID " +
+    "MAKE_RECORD_UNRATIFIED_RULE_ID " +
+    "RESTORE_AUTO_NUMERATION_RULE_ID " +
+    "SET_FIRM_CONTEXT_FROM_RECORD_RULE_ID " +
+    "SET_FIRST_RECORD_IN_LIST_FORM_RULE_ID " +
+    "SET_IDSPS_VALUE_RULE_ID " +
+    "SET_NEXT_CODE_VALUE_RULE_ID " +
+    "SET_OURFIRM_BOUNDS_RULE_ID " +
+    "SET_OURFIRM_REQUISITE_RULE_ID ";
+
+  // Script block properties
+  var script_block_properties_constants =
+    "SCRIPT_BLOCK_AFTER_FINISH_EVENT " +
+    "SCRIPT_BLOCK_BEFORE_START_EVENT " +
+    "SCRIPT_BLOCK_EXECUTION_RESULTS_PROPERTY " +
+    "SCRIPT_BLOCK_NAME_PROPERTY " +
+    "SCRIPT_BLOCK_SCRIPT_PROPERTY ";
+
+  // Subtask block properties
+  var subtask_block_properties_constants =
+    "SUBTASK_BLOCK_ABORT_DEADLINE_PROPERTY " +
+    "SUBTASK_BLOCK_AFTER_FINISH_EVENT " +
+    "SUBTASK_BLOCK_ASSIGN_PARAMS_EVENT " +
+    "SUBTASK_BLOCK_ATTACHMENTS_PROPERTY " +
+    "SUBTASK_BLOCK_ATTACHMENTS_RIGHTS_GROUP_PROPERTY " +
+    "SUBTASK_BLOCK_ATTACHMENTS_RIGHTS_TYPE_PROPERTY " +
+    "SUBTASK_BLOCK_BEFORE_START_EVENT " +
+    "SUBTASK_BLOCK_CREATED_TASK_PROPERTY " +
+    "SUBTASK_BLOCK_CREATION_EVENT " +
+    "SUBTASK_BLOCK_DEADLINE_PROPERTY " +
+    "SUBTASK_BLOCK_IMPORTANCE_PROPERTY " +
+    "SUBTASK_BLOCK_INITIATOR_PROPERTY " +
+    "SUBTASK_BLOCK_IS_RELATIVE_ABORT_DEADLINE_PROPERTY " +
+    "SUBTASK_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY " +
+    "SUBTASK_BLOCK_JOBS_TYPE_PROPERTY " +
+    "SUBTASK_BLOCK_NAME_PROPERTY " +
+    "SUBTASK_BLOCK_PARALLEL_ROUTE_PROPERTY " +
+    "SUBTASK_BLOCK_PERFORMERS_PROPERTY " +
+    "SUBTASK_BLOCK_RELATIVE_ABORT_DEADLINE_TYPE_PROPERTY " +
+    "SUBTASK_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY " +
+    "SUBTASK_BLOCK_REQUIRE_SIGN_PROPERTY " +
+    "SUBTASK_BLOCK_STANDARD_ROUTE_PROPERTY " +
+    "SUBTASK_BLOCK_START_EVENT " +
+    "SUBTASK_BLOCK_STEP_CONTROL_PROPERTY " +
+    "SUBTASK_BLOCK_SUBJECT_PROPERTY " +
+    "SUBTASK_BLOCK_TASK_CONTROL_PROPERTY " +
+    "SUBTASK_BLOCK_TEXT_PROPERTY " +
+    "SUBTASK_BLOCK_UNLOCK_ATTACHMENTS_ON_STOP_PROPERTY " +
+    "SUBTASK_BLOCK_USE_STANDARD_ROUTE_PROPERTY " +
+    "SUBTASK_BLOCK_WAIT_FOR_TASK_COMPLETE_PROPERTY ";
+
+  // System component
+  var system_component_constants =
+    "SYSCOMP_CONTROL_JOBS " +
+    "SYSCOMP_FOLDERS " +
+    "SYSCOMP_JOBS " +
+    "SYSCOMP_NOTICES " +
+    "SYSCOMP_TASKS ";
+
+  // System dialogs
+  var system_dialogs_constants =
+    "SYSDLG_CREATE_EDOCUMENT " +
+    "SYSDLG_CREATE_EDOCUMENT_VERSION " +
+    "SYSDLG_CURRENT_PERIOD " +
+    "SYSDLG_EDIT_FUNCTION_HELP " +
+    "SYSDLG_EDOCUMENT_KINDS_FOR_TEMPLATE " +
+    "SYSDLG_EXPORT_MULTIPLE_EDOCUMENTS " +
+    "SYSDLG_EXPORT_SINGLE_EDOCUMENT " +
+    "SYSDLG_IMPORT_EDOCUMENT " +
+    "SYSDLG_MULTIPLE_SELECT " +
+    "SYSDLG_SETUP_ACCESS_RIGHTS " +
+    "SYSDLG_SETUP_DEFAULT_RIGHTS " +
+    "SYSDLG_SETUP_FILTER_CONDITION " +
+    "SYSDLG_SETUP_SIGN_RIGHTS " +
+    "SYSDLG_SETUP_TASK_OBSERVERS " +
+    "SYSDLG_SETUP_TASK_ROUTE " +
+    "SYSDLG_SETUP_USERS_LIST " +
+    "SYSDLG_SIGN_EDOCUMENT " +
+    "SYSDLG_SIGN_MULTIPLE_EDOCUMENTS ";
+
+  // System reference names
+  var system_reference_names_constants =
+    "SYSREF_ACCESS_RIGHTS_TYPES " +
+    "SYSREF_ADMINISTRATION_HISTORY " +
+    "SYSREF_ALL_AVAILABLE_COMPONENTS " +
+    "SYSREF_ALL_AVAILABLE_PRIVILEGES " +
+    "SYSREF_ALL_REPLICATING_COMPONENTS " +
+    "SYSREF_AVAILABLE_DEVELOPERS_COMPONENTS " +
+    "SYSREF_CALENDAR_EVENTS " +
+    "SYSREF_COMPONENT_TOKEN_HISTORY " +
+    "SYSREF_COMPONENT_TOKENS " +
+    "SYSREF_COMPONENTS " +
+    "SYSREF_CONSTANTS " +
+    "SYSREF_DATA_RECEIVE_PROTOCOL " +
+    "SYSREF_DATA_SEND_PROTOCOL " +
+    "SYSREF_DIALOGS " +
+    "SYSREF_DIALOGS_REQUISITES " +
+    "SYSREF_EDITORS " +
+    "SYSREF_EDOC_CARDS " +
+    "SYSREF_EDOC_TYPES " +
+    "SYSREF_EDOCUMENT_CARD_REQUISITES " +
+    "SYSREF_EDOCUMENT_CARD_TYPES " +
+    "SYSREF_EDOCUMENT_CARD_TYPES_REFERENCE " +
+    "SYSREF_EDOCUMENT_CARDS " +
+    "SYSREF_EDOCUMENT_HISTORY " +
+    "SYSREF_EDOCUMENT_KINDS " +
+    "SYSREF_EDOCUMENT_REQUISITES " +
+    "SYSREF_EDOCUMENT_SIGNATURES " +
+    "SYSREF_EDOCUMENT_TEMPLATES " +
+    "SYSREF_EDOCUMENT_TEXT_STORAGES " +
+    "SYSREF_EDOCUMENT_VIEWS " +
+    "SYSREF_FILTERER_SETUP_CONFLICTS " +
+    "SYSREF_FILTRATER_SETTING_CONFLICTS " +
+    "SYSREF_FOLDER_HISTORY " +
+    "SYSREF_FOLDERS " +
+    "SYSREF_FUNCTION_GROUPS " +
+    "SYSREF_FUNCTION_PARAMS " +
+    "SYSREF_FUNCTIONS " +
+    "SYSREF_JOB_HISTORY " +
+    "SYSREF_LINKS " +
+    "SYSREF_LOCALIZATION_DICTIONARY " +
+    "SYSREF_LOCALIZATION_LANGUAGES " +
+    "SYSREF_MODULES " +
+    "SYSREF_PRIVILEGES " +
+    "SYSREF_RECORD_HISTORY " +
+    "SYSREF_REFERENCE_REQUISITES " +
+    "SYSREF_REFERENCE_TYPE_VIEWS " +
+    "SYSREF_REFERENCE_TYPES " +
+    "SYSREF_REFERENCES " +
+    "SYSREF_REFERENCES_REQUISITES " +
+    "SYSREF_REMOTE_SERVERS " +
+    "SYSREF_REPLICATION_SESSIONS_LOG " +
+    "SYSREF_REPLICATION_SESSIONS_PROTOCOL " +
+    "SYSREF_REPORTS " +
+    "SYSREF_ROLES " +
+    "SYSREF_ROUTE_BLOCK_GROUPS " +
+    "SYSREF_ROUTE_BLOCKS " +
+    "SYSREF_SCRIPTS " +
+    "SYSREF_SEARCHES " +
+    "SYSREF_SERVER_EVENTS " +
+    "SYSREF_SERVER_EVENTS_HISTORY " +
+    "SYSREF_STANDARD_ROUTE_GROUPS " +
+    "SYSREF_STANDARD_ROUTES " +
+    "SYSREF_STATUSES " +
+    "SYSREF_SYSTEM_SETTINGS " +
+    "SYSREF_TASK_HISTORY " +
+    "SYSREF_TASK_KIND_GROUPS " +
+    "SYSREF_TASK_KINDS " +
+    "SYSREF_TASK_RIGHTS " +
+    "SYSREF_TASK_SIGNATURES " +
+    "SYSREF_TASKS " +
+    "SYSREF_UNITS " +
+    "SYSREF_USER_GROUPS " +
+    "SYSREF_USER_GROUPS_REFERENCE " +
+    "SYSREF_USER_SUBSTITUTION " +
+    "SYSREF_USERS " +
+    "SYSREF_USERS_REFERENCE " +
+    "SYSREF_VIEWERS " +
+    "SYSREF_WORKING_TIME_CALENDARS ";
+
+  // Table name
+  var table_name_constants =
+    "ACCESS_RIGHTS_TABLE_NAME " +
+    "EDMS_ACCESS_TABLE_NAME " +
+    "EDOC_TYPES_TABLE_NAME ";
+
+  // Test
+  var test_constants =
+    "TEST_DEV_DB_NAME " +
+    "TEST_DEV_SYSTEM_CODE " +
+    "TEST_EDMS_DB_NAME " +
+    "TEST_EDMS_MAIN_CODE " +
+    "TEST_EDMS_MAIN_DB_NAME " +
+    "TEST_EDMS_SECOND_CODE " +
+    "TEST_EDMS_SECOND_DB_NAME " +
+    "TEST_EDMS_SYSTEM_CODE " +
+    "TEST_ISB5_MAIN_CODE " +
+    "TEST_ISB5_SECOND_CODE " +
+    "TEST_SQL_SERVER_2005_NAME " +
+    "TEST_SQL_SERVER_NAME ";
+
+  // Using the dialog windows
+  var using_the_dialog_windows_constants =
+    "ATTENTION_CAPTION " +
+    "cbsCommandLinks " +
+    "cbsDefault " +
+    "CONFIRMATION_CAPTION " +
+    "ERROR_CAPTION " +
+    "INFORMATION_CAPTION " +
+    "mrCancel " +
+    "mrOk ";
+
+  // Using the document
+  var using_the_document_constants =
+    "EDOC_VERSION_ACTIVE_STAGE_CODE " +
+    "EDOC_VERSION_DESIGN_STAGE_CODE " +
+    "EDOC_VERSION_OBSOLETE_STAGE_CODE ";
+
+  // Using the EA and encryption
+  var using_the_EA_and_encryption_constants =
+    "cpDataEnciphermentEnabled " +
+    "cpDigitalSignatureEnabled " +
+    "cpID " +
+    "cpIssuer " +
+    "cpPluginVersion " +
+    "cpSerial " +
+    "cpSubjectName " +
+    "cpSubjSimpleName " +
+    "cpValidFromDate " +
+    "cpValidToDate ";
+
+  // Using the ISBL-editor
+  var using_the_ISBL_editor_constants =
+    "ISBL_SYNTAX " + "NO_SYNTAX " + "XML_SYNTAX ";
+
+  // Wait block properties
+  var wait_block_properties_constants =
+    "WAIT_BLOCK_AFTER_FINISH_EVENT " +
+    "WAIT_BLOCK_BEFORE_START_EVENT " +
+    "WAIT_BLOCK_DEADLINE_PROPERTY " +
+    "WAIT_BLOCK_IS_RELATIVE_DEADLINE_PROPERTY " +
+    "WAIT_BLOCK_NAME_PROPERTY " +
+    "WAIT_BLOCK_RELATIVE_DEADLINE_TYPE_PROPERTY ";
+
+  // SYSRES Common
+  var sysres_common_constants =
+    "SYSRES_COMMON " +
+    "SYSRES_CONST " +
+    "SYSRES_MBFUNC " +
+    "SYSRES_SBDATA " +
+    "SYSRES_SBGUI " +
+    "SYSRES_SBINTF " +
+    "SYSRES_SBREFDSC " +
+    "SYSRES_SQLERRORS " +
+    "SYSRES_SYSCOMP ";
+
+  // Константы ==> built_in
+  var CONSTANTS =
+    sysres_constants +
+    base_constants +
+    base_group_name_constants +
+    decision_block_properties_constants +
+    file_extension_constants +
+    job_block_properties_constants +
+    language_code_constants +
+    launching_external_applications_constants +
+    link_kind_constants +
+    lock_type_constants +
+    monitor_block_properties_constants +
+    notice_block_properties_constants +
+    object_events_constants +
+    object_params_constants +
+    other_constants +
+    privileges_constants +
+    pseudoreference_code_constants +
+    requisite_ISBCertificateType_values_constants +
+    requisite_ISBEDocStorageType_values_constants +
+    requisite_compType2_values_constants +
+    requisite_name_constants +
+    result_constants +
+    rule_identification_constants +
+    script_block_properties_constants +
+    subtask_block_properties_constants +
+    system_component_constants +
+    system_dialogs_constants +
+    system_reference_names_constants +
+    table_name_constants +
+    test_constants +
+    using_the_dialog_windows_constants +
+    using_the_document_constants +
+    using_the_EA_and_encryption_constants +
+    using_the_ISBL_editor_constants +
+    wait_block_properties_constants +
+    sysres_common_constants;
+
+  // enum TAccountType
+  var TAccountType = "atUser atGroup atRole ";
+
+  // enum TActionEnabledMode
+  var TActionEnabledMode =
+    "aemEnabledAlways " +
+    "aemDisabledAlways " +
+    "aemEnabledOnBrowse " +
+    "aemEnabledOnEdit " +
+    "aemDisabledOnBrowseEmpty ";
+
+  // enum TAddPosition
+  var TAddPosition = "apBegin apEnd ";
+
+  // enum TAlignment
+  var TAlignment = "alLeft alRight ";
+
+  // enum TAreaShowMode
+  var TAreaShowMode =
+    "asmNever " +
+    "asmNoButCustomize " +
+    "asmAsLastTime " +
+    "asmYesButCustomize " +
+    "asmAlways ";
+
+  // enum TCertificateInvalidationReason
+  var TCertificateInvalidationReason = "cirCommon cirRevoked ";
+
+  // enum TCertificateType
+  var TCertificateType = "ctSignature ctEncode ctSignatureEncode ";
+
+  // enum TCheckListBoxItemState
+  var TCheckListBoxItemState = "clbUnchecked clbChecked clbGrayed ";
+
+  // enum TCloseOnEsc
+  var TCloseOnEsc = "ceISB ceAlways ceNever ";
+
+  // enum TCompType
+  var TCompType =
+    "ctDocument " +
+    "ctReference " +
+    "ctScript " +
+    "ctUnknown " +
+    "ctReport " +
+    "ctDialog " +
+    "ctFunction " +
+    "ctFolder " +
+    "ctEDocument " +
+    "ctTask " +
+    "ctJob " +
+    "ctNotice " +
+    "ctControlJob ";
+
+  // enum TConditionFormat
+  var TConditionFormat = "cfInternal cfDisplay ";
+
+  // enum TConnectionIntent
+  var TConnectionIntent = "ciUnspecified ciWrite ciRead ";
+
+  // enum TContentKind
+  var TContentKind =
+    "ckFolder " +
+    "ckEDocument " +
+    "ckTask " +
+    "ckJob " +
+    "ckComponentToken " +
+    "ckAny " +
+    "ckReference " +
+    "ckScript " +
+    "ckReport " +
+    "ckDialog ";
+
+  // enum TControlType
+  var TControlType =
+    "ctISBLEditor " +
+    "ctBevel " +
+    "ctButton " +
+    "ctCheckListBox " +
+    "ctComboBox " +
+    "ctComboEdit " +
+    "ctGrid " +
+    "ctDBCheckBox " +
+    "ctDBComboBox " +
+    "ctDBEdit " +
+    "ctDBEllipsis " +
+    "ctDBMemo " +
+    "ctDBNavigator " +
+    "ctDBRadioGroup " +
+    "ctDBStatusLabel " +
+    "ctEdit " +
+    "ctGroupBox " +
+    "ctInplaceHint " +
+    "ctMemo " +
+    "ctPanel " +
+    "ctListBox " +
+    "ctRadioButton " +
+    "ctRichEdit " +
+    "ctTabSheet " +
+    "ctWebBrowser " +
+    "ctImage " +
+    "ctHyperLink " +
+    "ctLabel " +
+    "ctDBMultiEllipsis " +
+    "ctRibbon " +
+    "ctRichView " +
+    "ctInnerPanel " +
+    "ctPanelGroup " +
+    "ctBitButton ";
+
+  // enum TCriterionContentType
+  var TCriterionContentType =
+    "cctDate " +
+    "cctInteger " +
+    "cctNumeric " +
+    "cctPick " +
+    "cctReference " +
+    "cctString " +
+    "cctText ";
+
+  // enum TCultureType
+  var TCultureType = "cltInternal cltPrimary cltGUI ";
+
+  // enum TDataSetEventType
+  var TDataSetEventType =
+    "dseBeforeOpen " +
+    "dseAfterOpen " +
+    "dseBeforeClose " +
+    "dseAfterClose " +
+    "dseOnValidDelete " +
+    "dseBeforeDelete " +
+    "dseAfterDelete " +
+    "dseAfterDeleteOutOfTransaction " +
+    "dseOnDeleteError " +
+    "dseBeforeInsert " +
+    "dseAfterInsert " +
+    "dseOnValidUpdate " +
+    "dseBeforeUpdate " +
+    "dseOnUpdateRatifiedRecord " +
+    "dseAfterUpdate " +
+    "dseAfterUpdateOutOfTransaction " +
+    "dseOnUpdateError " +
+    "dseAfterScroll " +
+    "dseOnOpenRecord " +
+    "dseOnCloseRecord " +
+    "dseBeforeCancel " +
+    "dseAfterCancel " +
+    "dseOnUpdateDeadlockError " +
+    "dseBeforeDetailUpdate " +
+    "dseOnPrepareUpdate " +
+    "dseOnAnyRequisiteChange ";
+
+  // enum TDataSetState
+  var TDataSetState = "dssEdit dssInsert dssBrowse dssInActive ";
+
+  // enum TDateFormatType
+  var TDateFormatType = "dftDate dftShortDate dftDateTime dftTimeStamp ";
+
+  // enum TDateOffsetType
+  var TDateOffsetType = "dotDays dotHours dotMinutes dotSeconds ";
+
+  // enum TDateTimeKind
+  var TDateTimeKind = "dtkndLocal dtkndUTC ";
+
+  // enum TDeaAccessRights
+  var TDeaAccessRights = "arNone arView arEdit arFull ";
+
+  // enum TDocumentDefaultAction
+  var TDocumentDefaultAction = "ddaView ddaEdit ";
+
+  // enum TEditMode
+  var TEditMode =
+    "emLock " +
+    "emEdit " +
+    "emSign " +
+    "emExportWithLock " +
+    "emImportWithUnlock " +
+    "emChangeVersionNote " +
+    "emOpenForModify " +
+    "emChangeLifeStage " +
+    "emDelete " +
+    "emCreateVersion " +
+    "emImport " +
+    "emUnlockExportedWithLock " +
+    "emStart " +
+    "emAbort " +
+    "emReInit " +
+    "emMarkAsReaded " +
+    "emMarkAsUnreaded " +
+    "emPerform " +
+    "emAccept " +
+    "emResume " +
+    "emChangeRights " +
+    "emEditRoute " +
+    "emEditObserver " +
+    "emRecoveryFromLocalCopy " +
+    "emChangeWorkAccessType " +
+    "emChangeEncodeTypeToCertificate " +
+    "emChangeEncodeTypeToPassword " +
+    "emChangeEncodeTypeToNone " +
+    "emChangeEncodeTypeToCertificatePassword " +
+    "emChangeStandardRoute " +
+    "emGetText " +
+    "emOpenForView " +
+    "emMoveToStorage " +
+    "emCreateObject " +
+    "emChangeVersionHidden " +
+    "emDeleteVersion " +
+    "emChangeLifeCycleStage " +
+    "emApprovingSign " +
+    "emExport " +
+    "emContinue " +
+    "emLockFromEdit " +
+    "emUnLockForEdit " +
+    "emLockForServer " +
+    "emUnlockFromServer " +
+    "emDelegateAccessRights " +
+    "emReEncode ";
+
+  // enum TEditorCloseObservType
+  var TEditorCloseObservType = "ecotFile ecotProcess ";
+
+  // enum TEdmsApplicationAction
+  var TEdmsApplicationAction = "eaGet eaCopy eaCreate eaCreateStandardRoute ";
+
+  // enum TEDocumentLockType
+  var TEDocumentLockType = "edltAll edltNothing edltQuery ";
+
+  // enum TEDocumentStepShowMode
+  var TEDocumentStepShowMode = "essmText essmCard ";
+
+  // enum TEDocumentStepVersionType
+  var TEDocumentStepVersionType = "esvtLast esvtLastActive esvtSpecified ";
+
+  // enum TEDocumentStorageFunction
+  var TEDocumentStorageFunction = "edsfExecutive edsfArchive ";
+
+  // enum TEDocumentStorageType
+  var TEDocumentStorageType = "edstSQLServer edstFile ";
+
+  // enum TEDocumentVersionSourceType
+  var TEDocumentVersionSourceType =
+    "edvstNone edvstEDocumentVersionCopy edvstFile edvstTemplate edvstScannedFile ";
+
+  // enum TEDocumentVersionState
+  var TEDocumentVersionState = "vsDefault vsDesign vsActive vsObsolete ";
+
+  // enum TEncodeType
+  var TEncodeType = "etNone etCertificate etPassword etCertificatePassword ";
+
+  // enum TExceptionCategory
+  var TExceptionCategory = "ecException ecWarning ecInformation ";
+
+  // enum TExportedSignaturesType
+  var TExportedSignaturesType = "estAll estApprovingOnly ";
+
+  // enum TExportedVersionType
+  var TExportedVersionType = "evtLast evtLastActive evtQuery ";
+
+  // enum TFieldDataType
+  var TFieldDataType =
+    "fdtString " +
+    "fdtNumeric " +
+    "fdtInteger " +
+    "fdtDate " +
+    "fdtText " +
+    "fdtUnknown " +
+    "fdtWideString " +
+    "fdtLargeInteger ";
+
+  // enum TFolderType
+  var TFolderType =
+    "ftInbox " +
+    "ftOutbox " +
+    "ftFavorites " +
+    "ftCommonFolder " +
+    "ftUserFolder " +
+    "ftComponents " +
+    "ftQuickLaunch " +
+    "ftShortcuts " +
+    "ftSearch ";
+
+  // enum TGridRowHeight
+  var TGridRowHeight = "grhAuto " + "grhX1 " + "grhX2 " + "grhX3 ";
+
+  // enum THyperlinkType
+  var THyperlinkType = "hltText " + "hltRTF " + "hltHTML ";
+
+  // enum TImageFileFormat
+  var TImageFileFormat =
+    "iffBMP " +
+    "iffJPEG " +
+    "iffMultiPageTIFF " +
+    "iffSinglePageTIFF " +
+    "iffTIFF " +
+    "iffPNG ";
+
+  // enum TImageMode
+  var TImageMode = "im8bGrayscale " + "im24bRGB " + "im1bMonochrome ";
+
+  // enum TImageType
+  var TImageType = "itBMP " + "itJPEG " + "itWMF " + "itPNG ";
+
+  // enum TInplaceHintKind
+  var TInplaceHintKind =
+    "ikhInformation " + "ikhWarning " + "ikhError " + "ikhNoIcon ";
+
+  // enum TISBLContext
+  var TISBLContext =
+    "icUnknown " +
+    "icScript " +
+    "icFunction " +
+    "icIntegratedReport " +
+    "icAnalyticReport " +
+    "icDataSetEventHandler " +
+    "icActionHandler " +
+    "icFormEventHandler " +
+    "icLookUpEventHandler " +
+    "icRequisiteChangeEventHandler " +
+    "icBeforeSearchEventHandler " +
+    "icRoleCalculation " +
+    "icSelectRouteEventHandler " +
+    "icBlockPropertyCalculation " +
+    "icBlockQueryParamsEventHandler " +
+    "icChangeSearchResultEventHandler " +
+    "icBlockEventHandler " +
+    "icSubTaskInitEventHandler " +
+    "icEDocDataSetEventHandler " +
+    "icEDocLookUpEventHandler " +
+    "icEDocActionHandler " +
+    "icEDocFormEventHandler " +
+    "icEDocRequisiteChangeEventHandler " +
+    "icStructuredConversionRule " +
+    "icStructuredConversionEventBefore " +
+    "icStructuredConversionEventAfter " +
+    "icWizardEventHandler " +
+    "icWizardFinishEventHandler " +
+    "icWizardStepEventHandler " +
+    "icWizardStepFinishEventHandler " +
+    "icWizardActionEnableEventHandler " +
+    "icWizardActionExecuteEventHandler " +
+    "icCreateJobsHandler " +
+    "icCreateNoticesHandler " +
+    "icBeforeLookUpEventHandler " +
+    "icAfterLookUpEventHandler " +
+    "icTaskAbortEventHandler " +
+    "icWorkflowBlockActionHandler " +
+    "icDialogDataSetEventHandler " +
+    "icDialogActionHandler " +
+    "icDialogLookUpEventHandler " +
+    "icDialogRequisiteChangeEventHandler " +
+    "icDialogFormEventHandler " +
+    "icDialogValidCloseEventHandler " +
+    "icBlockFormEventHandler " +
+    "icTaskFormEventHandler " +
+    "icReferenceMethod " +
+    "icEDocMethod " +
+    "icDialogMethod " +
+    "icProcessMessageHandler ";
+
+  // enum TItemShow
+  var TItemShow = "isShow " + "isHide " + "isByUserSettings ";
+
+  // enum TJobKind
+  var TJobKind = "jkJob " + "jkNotice " + "jkControlJob ";
+
+  // enum TJoinType
+  var TJoinType = "jtInner " + "jtLeft " + "jtRight " + "jtFull " + "jtCross ";
+
+  // enum TLabelPos
+  var TLabelPos = "lbpAbove " + "lbpBelow " + "lbpLeft " + "lbpRight ";
+
+  // enum TLicensingType
+  var TLicensingType = "eltPerConnection " + "eltPerUser ";
+
+  // enum TLifeCycleStageFontColor
+  var TLifeCycleStageFontColor =
+    "sfcUndefined " +
+    "sfcBlack " +
+    "sfcGreen " +
+    "sfcRed " +
+    "sfcBlue " +
+    "sfcOrange " +
+    "sfcLilac ";
+
+  // enum TLifeCycleStageFontStyle
+  var TLifeCycleStageFontStyle = "sfsItalic " + "sfsStrikeout " + "sfsNormal ";
+
+  // enum TLockableDevelopmentComponentType
+  var TLockableDevelopmentComponentType =
+    "ldctStandardRoute " +
+    "ldctWizard " +
+    "ldctScript " +
+    "ldctFunction " +
+    "ldctRouteBlock " +
+    "ldctIntegratedReport " +
+    "ldctAnalyticReport " +
+    "ldctReferenceType " +
+    "ldctEDocumentType " +
+    "ldctDialog " +
+    "ldctServerEvents ";
+
+  // enum TMaxRecordCountRestrictionType
+  var TMaxRecordCountRestrictionType =
+    "mrcrtNone " + "mrcrtUser " + "mrcrtMaximal " + "mrcrtCustom ";
+
+  // enum TRangeValueType
+  var TRangeValueType =
+    "vtEqual " + "vtGreaterOrEqual " + "vtLessOrEqual " + "vtRange ";
+
+  // enum TRelativeDate
+  var TRelativeDate =
+    "rdYesterday " +
+    "rdToday " +
+    "rdTomorrow " +
+    "rdThisWeek " +
+    "rdThisMonth " +
+    "rdThisYear " +
+    "rdNextMonth " +
+    "rdNextWeek " +
+    "rdLastWeek " +
+    "rdLastMonth ";
+
+  // enum TReportDestination
+  var TReportDestination = "rdWindow " + "rdFile " + "rdPrinter ";
+
+  // enum TReqDataType
+  var TReqDataType =
+    "rdtString " +
+    "rdtNumeric " +
+    "rdtInteger " +
+    "rdtDate " +
+    "rdtReference " +
+    "rdtAccount " +
+    "rdtText " +
+    "rdtPick " +
+    "rdtUnknown " +
+    "rdtLargeInteger " +
+    "rdtDocument ";
+
+  // enum TRequisiteEventType
+  var TRequisiteEventType = "reOnChange " + "reOnChangeValues ";
+
+  // enum TSBTimeType
+  var TSBTimeType = "ttGlobal " + "ttLocal " + "ttUser " + "ttSystem ";
+
+  // enum TSearchShowMode
+  var TSearchShowMode =
+    "ssmBrowse " + "ssmSelect " + "ssmMultiSelect " + "ssmBrowseModal ";
+
+  // enum TSelectMode
+  var TSelectMode = "smSelect " + "smLike " + "smCard ";
+
+  // enum TSignatureType
+  var TSignatureType = "stNone " + "stAuthenticating " + "stApproving ";
+
+  // enum TSignerContentType
+  var TSignerContentType = "sctString " + "sctStream ";
+
+  // enum TStringsSortType
+  var TStringsSortType = "sstAnsiSort " + "sstNaturalSort ";
+
+  // enum TStringValueType
+  var TStringValueType = "svtEqual " + "svtContain ";
+
+  // enum TStructuredObjectAttributeType
+  var TStructuredObjectAttributeType =
+    "soatString " +
+    "soatNumeric " +
+    "soatInteger " +
+    "soatDatetime " +
+    "soatReferenceRecord " +
+    "soatText " +
+    "soatPick " +
+    "soatBoolean " +
+    "soatEDocument " +
+    "soatAccount " +
+    "soatIntegerCollection " +
+    "soatNumericCollection " +
+    "soatStringCollection " +
+    "soatPickCollection " +
+    "soatDatetimeCollection " +
+    "soatBooleanCollection " +
+    "soatReferenceRecordCollection " +
+    "soatEDocumentCollection " +
+    "soatAccountCollection " +
+    "soatContents " +
+    "soatUnknown ";
+
+  // enum TTaskAbortReason
+  var TTaskAbortReason = "tarAbortByUser " + "tarAbortByWorkflowException ";
+
+  // enum TTextValueType
+  var TTextValueType = "tvtAllWords " + "tvtExactPhrase " + "tvtAnyWord ";
+
+  // enum TUserObjectStatus
+  var TUserObjectStatus =
+    "usNone " +
+    "usCompleted " +
+    "usRedSquare " +
+    "usBlueSquare " +
+    "usYellowSquare " +
+    "usGreenSquare " +
+    "usOrangeSquare " +
+    "usPurpleSquare " +
+    "usFollowUp ";
+
+  // enum TUserType
+  var TUserType =
+    "utUnknown " +
+    "utUser " +
+    "utDeveloper " +
+    "utAdministrator " +
+    "utSystemDeveloper " +
+    "utDisconnected ";
+
+  // enum TValuesBuildType
+  var TValuesBuildType =
+    "btAnd " + "btDetailAnd " + "btOr " + "btNotOr " + "btOnly ";
+
+  // enum TViewMode
+  var TViewMode = "vmView " + "vmSelect " + "vmNavigation ";
+
+  // enum TViewSelectionMode
+  var TViewSelectionMode =
+    "vsmSingle " + "vsmMultiple " + "vsmMultipleCheck " + "vsmNoSelection ";
+
+  // enum TWizardActionType
+  var TWizardActionType =
+    "wfatPrevious " + "wfatNext " + "wfatCancel " + "wfatFinish ";
+
+  // enum TWizardFormElementProperty
+  var TWizardFormElementProperty =
+    "wfepUndefined " +
+    "wfepText3 " +
+    "wfepText6 " +
+    "wfepText9 " +
+    "wfepSpinEdit " +
+    "wfepDropDown " +
+    "wfepRadioGroup " +
+    "wfepFlag " +
+    "wfepText12 " +
+    "wfepText15 " +
+    "wfepText18 " +
+    "wfepText21 " +
+    "wfepText24 " +
+    "wfepText27 " +
+    "wfepText30 " +
+    "wfepRadioGroupColumn1 " +
+    "wfepRadioGroupColumn2 " +
+    "wfepRadioGroupColumn3 ";
+
+  // enum TWizardFormElementType
+  var TWizardFormElementType =
+    "wfetQueryParameter " + "wfetText " + "wfetDelimiter " + "wfetLabel ";
+
+  // enum TWizardParamType
+  var TWizardParamType =
+    "wptString " +
+    "wptInteger " +
+    "wptNumeric " +
+    "wptBoolean " +
+    "wptDateTime " +
+    "wptPick " +
+    "wptText " +
+    "wptUser " +
+    "wptUserList " +
+    "wptEDocumentInfo " +
+    "wptEDocumentInfoList " +
+    "wptReferenceRecordInfo " +
+    "wptReferenceRecordInfoList " +
+    "wptFolderInfo " +
+    "wptTaskInfo " +
+    "wptContents " +
+    "wptFileName " +
+    "wptDate ";
+
+  // enum TWizardStepResult
+  var TWizardStepResult =
+    "wsrComplete " +
+    "wsrGoNext " +
+    "wsrGoPrevious " +
+    "wsrCustom " +
+    "wsrCancel " +
+    "wsrGoFinal ";
+
+  // enum TWizardStepType
+  var TWizardStepType =
+    "wstForm " +
+    "wstEDocument " +
+    "wstTaskCard " +
+    "wstReferenceRecordCard " +
+    "wstFinal ";
+
+  // enum TWorkAccessType
+  var TWorkAccessType = "waAll " + "waPerformers " + "waManual ";
+
+  // enum TWorkflowBlockType
+  var TWorkflowBlockType =
+    "wsbStart " +
+    "wsbFinish " +
+    "wsbNotice " +
+    "wsbStep " +
+    "wsbDecision " +
+    "wsbWait " +
+    "wsbMonitor " +
+    "wsbScript " +
+    "wsbConnector " +
+    "wsbSubTask " +
+    "wsbLifeCycleStage " +
+    "wsbPause ";
+
+  // enum TWorkflowDataType
+  var TWorkflowDataType =
+    "wdtInteger " +
+    "wdtFloat " +
+    "wdtString " +
+    "wdtPick " +
+    "wdtDateTime " +
+    "wdtBoolean " +
+    "wdtTask " +
+    "wdtJob " +
+    "wdtFolder " +
+    "wdtEDocument " +
+    "wdtReferenceRecord " +
+    "wdtUser " +
+    "wdtGroup " +
+    "wdtRole " +
+    "wdtIntegerCollection " +
+    "wdtFloatCollection " +
+    "wdtStringCollection " +
+    "wdtPickCollection " +
+    "wdtDateTimeCollection " +
+    "wdtBooleanCollection " +
+    "wdtTaskCollection " +
+    "wdtJobCollection " +
+    "wdtFolderCollection " +
+    "wdtEDocumentCollection " +
+    "wdtReferenceRecordCollection " +
+    "wdtUserCollection " +
+    "wdtGroupCollection " +
+    "wdtRoleCollection " +
+    "wdtContents " +
+    "wdtUserList " +
+    "wdtSearchDescription " +
+    "wdtDeadLine " +
+    "wdtPickSet " +
+    "wdtAccountCollection ";
+
+  // enum TWorkImportance
+  var TWorkImportance = "wiLow " + "wiNormal " + "wiHigh ";
+
+  // enum TWorkRouteType
+  var TWorkRouteType = "wrtSoft " + "wrtHard ";
+
+  // enum TWorkState
+  var TWorkState =
+    "wsInit " +
+    "wsRunning " +
+    "wsDone " +
+    "wsControlled " +
+    "wsAborted " +
+    "wsContinued ";
+
+  // enum TWorkTextBuildingMode
+  var TWorkTextBuildingMode =
+    "wtmFull " + "wtmFromCurrent " + "wtmOnlyCurrent ";
+
+  // Перечисления
+  var ENUMS =
+    TAccountType +
+    TActionEnabledMode +
+    TAddPosition +
+    TAlignment +
+    TAreaShowMode +
+    TCertificateInvalidationReason +
+    TCertificateType +
+    TCheckListBoxItemState +
+    TCloseOnEsc +
+    TCompType +
+    TConditionFormat +
+    TConnectionIntent +
+    TContentKind +
+    TControlType +
+    TCriterionContentType +
+    TCultureType +
+    TDataSetEventType +
+    TDataSetState +
+    TDateFormatType +
+    TDateOffsetType +
+    TDateTimeKind +
+    TDeaAccessRights +
+    TDocumentDefaultAction +
+    TEditMode +
+    TEditorCloseObservType +
+    TEdmsApplicationAction +
+    TEDocumentLockType +
+    TEDocumentStepShowMode +
+    TEDocumentStepVersionType +
+    TEDocumentStorageFunction +
+    TEDocumentStorageType +
+    TEDocumentVersionSourceType +
+    TEDocumentVersionState +
+    TEncodeType +
+    TExceptionCategory +
+    TExportedSignaturesType +
+    TExportedVersionType +
+    TFieldDataType +
+    TFolderType +
+    TGridRowHeight +
+    THyperlinkType +
+    TImageFileFormat +
+    TImageMode +
+    TImageType +
+    TInplaceHintKind +
+    TISBLContext +
+    TItemShow +
+    TJobKind +
+    TJoinType +
+    TLabelPos +
+    TLicensingType +
+    TLifeCycleStageFontColor +
+    TLifeCycleStageFontStyle +
+    TLockableDevelopmentComponentType +
+    TMaxRecordCountRestrictionType +
+    TRangeValueType +
+    TRelativeDate +
+    TReportDestination +
+    TReqDataType +
+    TRequisiteEventType +
+    TSBTimeType +
+    TSearchShowMode +
+    TSelectMode +
+    TSignatureType +
+    TSignerContentType +
+    TStringsSortType +
+    TStringValueType +
+    TStructuredObjectAttributeType +
+    TTaskAbortReason +
+    TTextValueType +
+    TUserObjectStatus +
+    TUserType +
+    TValuesBuildType +
+    TViewMode +
+    TViewSelectionMode +
+    TWizardActionType +
+    TWizardFormElementProperty +
+    TWizardFormElementType +
+    TWizardParamType +
+    TWizardStepResult +
+    TWizardStepType +
+    TWorkAccessType +
+    TWorkflowBlockType +
+    TWorkflowDataType +
+    TWorkImportance +
+    TWorkRouteType +
+    TWorkState +
+    TWorkTextBuildingMode;
+
+  // Системные функции ==> SYSFUNCTIONS
+  var system_functions =
+    "AddSubString " +
+    "AdjustLineBreaks " +
+    "AmountInWords " +
+    "Analysis " +
+    "ArrayDimCount " +
+    "ArrayHighBound " +
+    "ArrayLowBound " +
+    "ArrayOf " +
+    "ArrayReDim " +
+    "Assert " +
+    "Assigned " +
+    "BeginOfMonth " +
+    "BeginOfPeriod " +
+    "BuildProfilingOperationAnalysis " +
+    "CallProcedure " +
+    "CanReadFile " +
+    "CArrayElement " +
+    "CDataSetRequisite " +
+    "ChangeDate " +
+    "ChangeReferenceDataset " +
+    "Char " +
+    "CharPos " +
+    "CheckParam " +
+    "CheckParamValue " +
+    "CompareStrings " +
+    "ConstantExists " +
+    "ControlState " +
+    "ConvertDateStr " +
+    "Copy " +
+    "CopyFile " +
+    "CreateArray " +
+    "CreateCachedReference " +
+    "CreateConnection " +
+    "CreateDialog " +
+    "CreateDualListDialog " +
+    "CreateEditor " +
+    "CreateException " +
+    "CreateFile " +
+    "CreateFolderDialog " +
+    "CreateInputDialog " +
+    "CreateLinkFile " +
+    "CreateList " +
+    "CreateLock " +
+    "CreateMemoryDataSet " +
+    "CreateObject " +
+    "CreateOpenDialog " +
+    "CreateProgress " +
+    "CreateQuery " +
+    "CreateReference " +
+    "CreateReport " +
+    "CreateSaveDialog " +
+    "CreateScript " +
+    "CreateSQLPivotFunction " +
+    "CreateStringList " +
+    "CreateTreeListSelectDialog " +
+    "CSelectSQL " +
+    "CSQL " +
+    "CSubString " +
+    "CurrentUserID " +
+    "CurrentUserName " +
+    "CurrentVersion " +
+    "DataSetLocateEx " +
+    "DateDiff " +
+    "DateTimeDiff " +
+    "DateToStr " +
+    "DayOfWeek " +
+    "DeleteFile " +
+    "DirectoryExists " +
+    "DisableCheckAccessRights " +
+    "DisableCheckFullShowingRestriction " +
+    "DisableMassTaskSendingRestrictions " +
+    "DropTable " +
+    "DupeString " +
+    "EditText " +
+    "EnableCheckAccessRights " +
+    "EnableCheckFullShowingRestriction " +
+    "EnableMassTaskSendingRestrictions " +
+    "EndOfMonth " +
+    "EndOfPeriod " +
+    "ExceptionExists " +
+    "ExceptionsOff " +
+    "ExceptionsOn " +
+    "Execute " +
+    "ExecuteProcess " +
+    "Exit " +
+    "ExpandEnvironmentVariables " +
+    "ExtractFileDrive " +
+    "ExtractFileExt " +
+    "ExtractFileName " +
+    "ExtractFilePath " +
+    "ExtractParams " +
+    "FileExists " +
+    "FileSize " +
+    "FindFile " +
+    "FindSubString " +
+    "FirmContext " +
+    "ForceDirectories " +
+    "Format " +
+    "FormatDate " +
+    "FormatNumeric " +
+    "FormatSQLDate " +
+    "FormatString " +
+    "FreeException " +
+    "GetComponent " +
+    "GetComponentLaunchParam " +
+    "GetConstant " +
+    "GetLastException " +
+    "GetReferenceRecord " +
+    "GetRefTypeByRefID " +
+    "GetTableID " +
+    "GetTempFolder " +
+    "IfThen " +
+    "In " +
+    "IndexOf " +
+    "InputDialog " +
+    "InputDialogEx " +
+    "InteractiveMode " +
+    "IsFileLocked " +
+    "IsGraphicFile " +
+    "IsNumeric " +
+    "Length " +
+    "LoadString " +
+    "LoadStringFmt " +
+    "LocalTimeToUTC " +
+    "LowerCase " +
+    "Max " +
+    "MessageBox " +
+    "MessageBoxEx " +
+    "MimeDecodeBinary " +
+    "MimeDecodeString " +
+    "MimeEncodeBinary " +
+    "MimeEncodeString " +
+    "Min " +
+    "MoneyInWords " +
+    "MoveFile " +
+    "NewID " +
+    "Now " +
+    "OpenFile " +
+    "Ord " +
+    "Precision " +
+    "Raise " +
+    "ReadCertificateFromFile " +
+    "ReadFile " +
+    "ReferenceCodeByID " +
+    "ReferenceNumber " +
+    "ReferenceRequisiteMode " +
+    "ReferenceRequisiteValue " +
+    "RegionDateSettings " +
+    "RegionNumberSettings " +
+    "RegionTimeSettings " +
+    "RegRead " +
+    "RegWrite " +
+    "RenameFile " +
+    "Replace " +
+    "Round " +
+    "SelectServerCode " +
+    "SelectSQL " +
+    "ServerDateTime " +
+    "SetConstant " +
+    "SetManagedFolderFieldsState " +
+    "ShowConstantsInputDialog " +
+    "ShowMessage " +
+    "Sleep " +
+    "Split " +
+    "SQL " +
+    "SQL2XLSTAB " +
+    "SQLProfilingSendReport " +
+    "StrToDate " +
+    "SubString " +
+    "SubStringCount " +
+    "SystemSetting " +
+    "Time " +
+    "TimeDiff " +
+    "Today " +
+    "Transliterate " +
+    "Trim " +
+    "UpperCase " +
+    "UserStatus " +
+    "UTCToLocalTime " +
+    "ValidateXML " +
+    "VarIsClear " +
+    "VarIsEmpty " +
+    "VarIsNull " +
+    "WorkTimeDiff " +
+    "WriteFile " +
+    "WriteFileEx " +
+    "WriteObjectHistory " +
+    "Анализ " +
+    "БазаДанных " +
+    "БлокЕсть " +
+    "БлокЕстьРасш " +
+    "БлокИнфо " +
+    "БлокСнять " +
+    "БлокСнятьРасш " +
+    "БлокУстановить " +
+    "Ввод " +
+    "ВводМеню " +
+    "ВедС " +
+    "ВедСпр " +
+    "ВерхняяГраницаМассива " +
+    "ВнешПрогр " +
+    "Восст " +
+    "ВременнаяПапка " +
+    "Время " +
+    "ВыборSQL " +
+    "ВыбратьЗапись " +
+    "ВыделитьСтр " +
+    "Вызвать " +
+    "Выполнить " +
+    "ВыпПрогр " +
+    "ГрафическийФайл " +
+    "ГруппаДополнительно " +
+    "ДатаВремяСерв " +
+    "ДеньНедели " +
+    "ДиалогДаНет " +
+    "ДлинаСтр " +
+    "ДобПодстр " +
+    "ЕПусто " +
+    "ЕслиТо " +
+    "ЕЧисло " +
+    "ЗамПодстр " +
+    "ЗаписьСправочника " +
+    "ЗначПоляСпр " +
+    "ИДТипСпр " +
+    "ИзвлечьДиск " +
+    "ИзвлечьИмяФайла " +
+    "ИзвлечьПуть " +
+    "ИзвлечьРасширение " +
+    "ИзмДат " +
+    "ИзменитьРазмерМассива " +
+    "ИзмеренийМассива " +
+    "ИмяОрг " +
+    "ИмяПоляСпр " +
+    "Индекс " +
+    "ИндикаторЗакрыть " +
+    "ИндикаторОткрыть " +
+    "ИндикаторШаг " +
+    "ИнтерактивныйРежим " +
+    "ИтогТблСпр " +
+    "КодВидВедСпр " +
+    "КодВидСпрПоИД " +
+    "КодПоAnalit " +
+    "КодСимвола " +
+    "КодСпр " +
+    "КолПодстр " +
+    "КолПроп " +
+    "КонМес " +
+    "Конст " +
+    "КонстЕсть " +
+    "КонстЗнач " +
+    "КонТран " +
+    "КопироватьФайл " +
+    "КопияСтр " +
+    "КПериод " +
+    "КСтрТблСпр " +
+    "Макс " +
+    "МаксСтрТблСпр " +
+    "Массив " +
+    "Меню " +
+    "МенюРасш " +
+    "Мин " +
+    "НаборДанныхНайтиРасш " +
+    "НаимВидСпр " +
+    "НаимПоAnalit " +
+    "НаимСпр " +
+    "НастроитьПереводыСтрок " +
+    "НачМес " +
+    "НачТран " +
+    "НижняяГраницаМассива " +
+    "НомерСпр " +
+    "НПериод " +
+    "Окно " +
+    "Окр " +
+    "Окружение " +
+    "ОтлИнфДобавить " +
+    "ОтлИнфУдалить " +
+    "Отчет " +
+    "ОтчетАнал " +
+    "ОтчетИнт " +
+    "ПапкаСуществует " +
+    "Пауза " +
+    "ПВыборSQL " +
+    "ПереименоватьФайл " +
+    "Переменные " +
+    "ПереместитьФайл " +
+    "Подстр " +
+    "ПоискПодстр " +
+    "ПоискСтр " +
+    "ПолучитьИДТаблицы " +
+    "ПользовательДополнительно " +
+    "ПользовательИД " +
+    "ПользовательИмя " +
+    "ПользовательСтатус " +
+    "Прервать " +
+    "ПроверитьПараметр " +
+    "ПроверитьПараметрЗнач " +
+    "ПроверитьУсловие " +
+    "РазбСтр " +
+    "РазнВремя " +
+    "РазнДат " +
+    "РазнДатаВремя " +
+    "РазнРабВремя " +
+    "РегУстВрем " +
+    "РегУстДат " +
+    "РегУстЧсл " +
+    "РедТекст " +
+    "РеестрЗапись " +
+    "РеестрСписокИменПарам " +
+    "РеестрЧтение " +
+    "РеквСпр " +
+    "РеквСпрПр " +
+    "Сегодня " +
+    "Сейчас " +
+    "Сервер " +
+    "СерверПроцессИД " +
+    "СертификатФайлСчитать " +
+    "СжПроб " +
+    "Символ " +
+    "СистемаДиректумКод " +
+    "СистемаИнформация " +
+    "СистемаКод " +
+    "Содержит " +
+    "СоединениеЗакрыть " +
+    "СоединениеОткрыть " +
+    "СоздатьДиалог " +
+    "СоздатьДиалогВыбораИзДвухСписков " +
+    "СоздатьДиалогВыбораПапки " +
+    "СоздатьДиалогОткрытияФайла " +
+    "СоздатьДиалогСохраненияФайла " +
+    "СоздатьЗапрос " +
+    "СоздатьИндикатор " +
+    "СоздатьИсключение " +
+    "СоздатьКэшированныйСправочник " +
+    "СоздатьМассив " +
+    "СоздатьНаборДанных " +
+    "СоздатьОбъект " +
+    "СоздатьОтчет " +
+    "СоздатьПапку " +
+    "СоздатьРедактор " +
+    "СоздатьСоединение " +
+    "СоздатьСписок " +
+    "СоздатьСписокСтрок " +
+    "СоздатьСправочник " +
+    "СоздатьСценарий " +
+    "СоздСпр " +
+    "СостСпр " +
+    "Сохр " +
+    "СохрСпр " +
+    "СписокСистем " +
+    "Спр " +
+    "Справочник " +
+    "СпрБлокЕсть " +
+    "СпрБлокСнять " +
+    "СпрБлокСнятьРасш " +
+    "СпрБлокУстановить " +
+    "СпрИзмНабДан " +
+    "СпрКод " +
+    "СпрНомер " +
+    "СпрОбновить " +
+    "СпрОткрыть " +
+    "СпрОтменить " +
+    "СпрПарам " +
+    "СпрПолеЗнач " +
+    "СпрПолеИмя " +
+    "СпрРекв " +
+    "СпрРеквВведЗн " +
+    "СпрРеквНовые " +
+    "СпрРеквПр " +
+    "СпрРеквПредЗн " +
+    "СпрРеквРежим " +
+    "СпрРеквТипТекст " +
+    "СпрСоздать " +
+    "СпрСост " +
+    "СпрСохранить " +
+    "СпрТблИтог " +
+    "СпрТблСтр " +
+    "СпрТблСтрКол " +
+    "СпрТблСтрМакс " +
+    "СпрТблСтрМин " +
+    "СпрТблСтрПред " +
+    "СпрТблСтрСлед " +
+    "СпрТблСтрСозд " +
+    "СпрТблСтрУд " +
+    "СпрТекПредст " +
+    "СпрУдалить " +
+    "СравнитьСтр " +
+    "СтрВерхРегистр " +
+    "СтрНижнРегистр " +
+    "СтрТблСпр " +
+    "СумПроп " +
+    "Сценарий " +
+    "СценарийПарам " +
+    "ТекВерсия " +
+    "ТекОрг " +
+    "Точн " +
+    "Тран " +
+    "Транслитерация " +
+    "УдалитьТаблицу " +
+    "УдалитьФайл " +
+    "УдСпр " +
+    "УдСтрТблСпр " +
+    "Уст " +
+    "УстановкиКонстант " +
+    "ФайлАтрибутСчитать " +
+    "ФайлАтрибутУстановить " +
+    "ФайлВремя " +
+    "ФайлВремяУстановить " +
+    "ФайлВыбрать " +
+    "ФайлЗанят " +
+    "ФайлЗаписать " +
+    "ФайлИскать " +
+    "ФайлКопировать " +
+    "ФайлМожноЧитать " +
+    "ФайлОткрыть " +
+    "ФайлПереименовать " +
+    "ФайлПерекодировать " +
+    "ФайлПереместить " +
+    "ФайлПросмотреть " +
+    "ФайлРазмер " +
+    "ФайлСоздать " +
+    "ФайлСсылкаСоздать " +
+    "ФайлСуществует " +
+    "ФайлСчитать " +
+    "ФайлУдалить " +
+    "ФмтSQLДат " +
+    "ФмтДат " +
+    "ФмтСтр " +
+    "ФмтЧсл " +
+    "Формат " +
+    "ЦМассивЭлемент " +
+    "ЦНаборДанныхРеквизит " +
+    "ЦПодстр ";
+
+  // Предопределенные переменные ==> built_in
+  var predefined_variables =
+    "AltState " +
+    "Application " +
+    "CallType " +
+    "ComponentTokens " +
+    "CreatedJobs " +
+    "CreatedNotices " +
+    "ControlState " +
+    "DialogResult " +
+    "Dialogs " +
+    "EDocuments " +
+    "EDocumentVersionSource " +
+    "Folders " +
+    "GlobalIDs " +
+    "Job " +
+    "Jobs " +
+    "InputValue " +
+    "LookUpReference " +
+    "LookUpRequisiteNames " +
+    "LookUpSearch " +
+    "Object " +
+    "ParentComponent " +
+    "Processes " +
+    "References " +
+    "Requisite " +
+    "ReportName " +
+    "Reports " +
+    "Result " +
+    "Scripts " +
+    "Searches " +
+    "SelectedAttachments " +
+    "SelectedItems " +
+    "SelectMode " +
+    "Sender " +
+    "ServerEvents " +
+    "ServiceFactory " +
+    "ShiftState " +
+    "SubTask " +
+    "SystemDialogs " +
+    "Tasks " +
+    "Wizard " +
+    "Wizards " +
+    "Work " +
+    "ВызовСпособ " +
+    "ИмяОтчета " +
+    "РеквЗнач ";
+
+  // Интерфейсы ==> type
+  var interfaces =
+    "IApplication " +
+    "IAccessRights " +
+    "IAccountRepository " +
+    "IAccountSelectionRestrictions " +
+    "IAction " +
+    "IActionList " +
+    "IAdministrationHistoryDescription " +
+    "IAnchors " +
+    "IApplication " +
+    "IArchiveInfo " +
+    "IAttachment " +
+    "IAttachmentList " +
+    "ICheckListBox " +
+    "ICheckPointedList " +
+    "IColumn " +
+    "IComponent " +
+    "IComponentDescription " +
+    "IComponentToken " +
+    "IComponentTokenFactory " +
+    "IComponentTokenInfo " +
+    "ICompRecordInfo " +
+    "IConnection " +
+    "IContents " +
+    "IControl " +
+    "IControlJob " +
+    "IControlJobInfo " +
+    "IControlList " +
+    "ICrypto " +
+    "ICrypto2 " +
+    "ICustomJob " +
+    "ICustomJobInfo " +
+    "ICustomListBox " +
+    "ICustomObjectWizardStep " +
+    "ICustomWork " +
+    "ICustomWorkInfo " +
+    "IDataSet " +
+    "IDataSetAccessInfo " +
+    "IDataSigner " +
+    "IDateCriterion " +
+    "IDateRequisite " +
+    "IDateRequisiteDescription " +
+    "IDateValue " +
+    "IDeaAccessRights " +
+    "IDeaObjectInfo " +
+    "IDevelopmentComponentLock " +
+    "IDialog " +
+    "IDialogFactory " +
+    "IDialogPickRequisiteItems " +
+    "IDialogsFactory " +
+    "IDICSFactory " +
+    "IDocRequisite " +
+    "IDocumentInfo " +
+    "IDualListDialog " +
+    "IECertificate " +
+    "IECertificateInfo " +
+    "IECertificates " +
+    "IEditControl " +
+    "IEditorForm " +
+    "IEdmsExplorer " +
+    "IEdmsObject " +
+    "IEdmsObjectDescription " +
+    "IEdmsObjectFactory " +
+    "IEdmsObjectInfo " +
+    "IEDocument " +
+    "IEDocumentAccessRights " +
+    "IEDocumentDescription " +
+    "IEDocumentEditor " +
+    "IEDocumentFactory " +
+    "IEDocumentInfo " +
+    "IEDocumentStorage " +
+    "IEDocumentVersion " +
+    "IEDocumentVersionListDialog " +
+    "IEDocumentVersionSource " +
+    "IEDocumentWizardStep " +
+    "IEDocVerSignature " +
+    "IEDocVersionState " +
+    "IEnabledMode " +
+    "IEncodeProvider " +
+    "IEncrypter " +
+    "IEvent " +
+    "IEventList " +
+    "IException " +
+    "IExternalEvents " +
+    "IExternalHandler " +
+    "IFactory " +
+    "IField " +
+    "IFileDialog " +
+    "IFolder " +
+    "IFolderDescription " +
+    "IFolderDialog " +
+    "IFolderFactory " +
+    "IFolderInfo " +
+    "IForEach " +
+    "IForm " +
+    "IFormTitle " +
+    "IFormWizardStep " +
+    "IGlobalIDFactory " +
+    "IGlobalIDInfo " +
+    "IGrid " +
+    "IHasher " +
+    "IHistoryDescription " +
+    "IHyperLinkControl " +
+    "IImageButton " +
+    "IImageControl " +
+    "IInnerPanel " +
+    "IInplaceHint " +
+    "IIntegerCriterion " +
+    "IIntegerList " +
+    "IIntegerRequisite " +
+    "IIntegerValue " +
+    "IISBLEditorForm " +
+    "IJob " +
+    "IJobDescription " +
+    "IJobFactory " +
+    "IJobForm " +
+    "IJobInfo " +
+    "ILabelControl " +
+    "ILargeIntegerCriterion " +
+    "ILargeIntegerRequisite " +
+    "ILargeIntegerValue " +
+    "ILicenseInfo " +
+    "ILifeCycleStage " +
+    "IList " +
+    "IListBox " +
+    "ILocalIDInfo " +
+    "ILocalization " +
+    "ILock " +
+    "IMemoryDataSet " +
+    "IMessagingFactory " +
+    "IMetadataRepository " +
+    "INotice " +
+    "INoticeInfo " +
+    "INumericCriterion " +
+    "INumericRequisite " +
+    "INumericValue " +
+    "IObject " +
+    "IObjectDescription " +
+    "IObjectImporter " +
+    "IObjectInfo " +
+    "IObserver " +
+    "IPanelGroup " +
+    "IPickCriterion " +
+    "IPickProperty " +
+    "IPickRequisite " +
+    "IPickRequisiteDescription " +
+    "IPickRequisiteItem " +
+    "IPickRequisiteItems " +
+    "IPickValue " +
+    "IPrivilege " +
+    "IPrivilegeList " +
+    "IProcess " +
+    "IProcessFactory " +
+    "IProcessMessage " +
+    "IProgress " +
+    "IProperty " +
+    "IPropertyChangeEvent " +
+    "IQuery " +
+    "IReference " +
+    "IReferenceCriterion " +
+    "IReferenceEnabledMode " +
+    "IReferenceFactory " +
+    "IReferenceHistoryDescription " +
+    "IReferenceInfo " +
+    "IReferenceRecordCardWizardStep " +
+    "IReferenceRequisiteDescription " +
+    "IReferencesFactory " +
+    "IReferenceValue " +
+    "IRefRequisite " +
+    "IReport " +
+    "IReportFactory " +
+    "IRequisite " +
+    "IRequisiteDescription " +
+    "IRequisiteDescriptionList " +
+    "IRequisiteFactory " +
+    "IRichEdit " +
+    "IRouteStep " +
+    "IRule " +
+    "IRuleList " +
+    "ISchemeBlock " +
+    "IScript " +
+    "IScriptFactory " +
+    "ISearchCriteria " +
+    "ISearchCriterion " +
+    "ISearchDescription " +
+    "ISearchFactory " +
+    "ISearchFolderInfo " +
+    "ISearchForObjectDescription " +
+    "ISearchResultRestrictions " +
+    "ISecuredContext " +
+    "ISelectDialog " +
+    "IServerEvent " +
+    "IServerEventFactory " +
+    "IServiceDialog " +
+    "IServiceFactory " +
+    "ISignature " +
+    "ISignProvider " +
+    "ISignProvider2 " +
+    "ISignProvider3 " +
+    "ISimpleCriterion " +
+    "IStringCriterion " +
+    "IStringList " +
+    "IStringRequisite " +
+    "IStringRequisiteDescription " +
+    "IStringValue " +
+    "ISystemDialogsFactory " +
+    "ISystemInfo " +
+    "ITabSheet " +
+    "ITask " +
+    "ITaskAbortReasonInfo " +
+    "ITaskCardWizardStep " +
+    "ITaskDescription " +
+    "ITaskFactory " +
+    "ITaskInfo " +
+    "ITaskRoute " +
+    "ITextCriterion " +
+    "ITextRequisite " +
+    "ITextValue " +
+    "ITreeListSelectDialog " +
+    "IUser " +
+    "IUserList " +
+    "IValue " +
+    "IView " +
+    "IWebBrowserControl " +
+    "IWizard " +
+    "IWizardAction " +
+    "IWizardFactory " +
+    "IWizardFormElement " +
+    "IWizardParam " +
+    "IWizardPickParam " +
+    "IWizardReferenceParam " +
+    "IWizardStep " +
+    "IWorkAccessRights " +
+    "IWorkDescription " +
+    "IWorkflowAskableParam " +
+    "IWorkflowAskableParams " +
+    "IWorkflowBlock " +
+    "IWorkflowBlockResult " +
+    "IWorkflowEnabledMode " +
+    "IWorkflowParam " +
+    "IWorkflowPickParam " +
+    "IWorkflowReferenceParam " +
+    "IWorkState " +
+    "IWorkTreeCustomNode " +
+    "IWorkTreeJobNode " +
+    "IWorkTreeTaskNode " +
+    "IXMLEditorForm " +
+    "SBCrypto ";
+
+  // built_in : встроенные или библиотечные объекты (константы, перечисления)
+  var BUILTIN = CONSTANTS + ENUMS;
+
+  // class: встроенные наборы значений, системные объекты, фабрики
+  var CLASS = predefined_variables;
+
+  // literal : примитивные типы
+  var LITERAL = "null true false nil ";
+
+  // number : числа
+  var NUMBERS = {
+    className: "number",
+    begin: hljs.NUMBER_RE,
+    relevance: 0,
+  };
+
+  // string : строки
+  var STRINGS = {
+    className: "string",
+    variants: [{ begin: '"', end: '"' }, { begin: "'", end: "'" }],
+  };
+
+  // Токены
+  var DOCTAGS = {
+    className: "doctag",
+    begin: "\\b(?:TODO|DONE|BEGIN|END|STUB|CHG|FIXME|NOTE|BUG|XXX)\\b",
+    relevance: 0,
+  };
+
+  // Однострочный комментарий
+  var ISBL_LINE_COMMENT_MODE = {
+    className: "comment",
+    begin: "//",
+    end: "$",
+    relevance: 0,
+    contains: [hljs.PHRASAL_WORDS_MODE, DOCTAGS],
+  };
+
+  // Многострочный комментарий
+  var ISBL_BLOCK_COMMENT_MODE = {
+    className: "comment",
+    begin: "/\\*",
+    end: "\\*/",
+    relevance: 0,
+    contains: [hljs.PHRASAL_WORDS_MODE, DOCTAGS],
+  };
+
+  // comment : комментарии
+  var COMMENTS = {
+    variants: [ISBL_LINE_COMMENT_MODE, ISBL_BLOCK_COMMENT_MODE],
+  };
+
+  // keywords : ключевые слова
+  var KEYWORDS = {
+    $pattern: UNDERSCORE_IDENT_RE,
+    keyword: KEYWORD,
+    built_in: BUILTIN,
+    class: CLASS,
+    literal: LITERAL,
+  };
+
+  // methods : методы
+  var METHODS = {
+    begin: "\\.\\s*" + hljs.UNDERSCORE_IDENT_RE,
+    keywords: KEYWORDS,
+    relevance: 0,
+  };
+
+  // type : встроенные типы
+  var TYPES = {
+    className: "type",
+    begin: ":[ \\t]*(" + interfaces.trim().replace(/\s/g, "|") + ")",
+    end: "[ \\t]*=",
+    excludeEnd: true,
+  };
+
+  // variables : переменные
+  var VARIABLES = {
+    className: "variable",
+    keywords: KEYWORDS,
+    begin: UNDERSCORE_IDENT_RE,
+    relevance: 0,
+    contains: [TYPES, METHODS],
+  };
+
+  // Имена функций
+  var FUNCTION_TITLE = FUNCTION_NAME_IDENT_RE + "\\(";
+
+  var TITLE_MODE = {
+    className: "title",
+    keywords: {
+      $pattern: UNDERSCORE_IDENT_RE,
+      built_in: system_functions,
+    },
+    begin: FUNCTION_TITLE,
+    end: "\\(",
+    returnBegin: true,
+    excludeEnd: true,
+  };
+
+  // function : функции
+  var FUNCTIONS = {
+    className: "function",
+    begin: FUNCTION_TITLE,
+    end: "\\)$",
+    returnBegin: true,
+    keywords: KEYWORDS,
+    illegal: "[\\[\\]\\|\\$\\?%,~#@]",
+    contains: [TITLE_MODE, METHODS, VARIABLES, STRINGS, NUMBERS, COMMENTS],
+  };
+
+  return {
+    name: 'ISBL',
+    aliases: ["isbl"],
+    case_insensitive: true,
+    keywords: KEYWORDS,
+    illegal: "\\$|\\?|%|,|;$|~|#|@|</",
+    contains: [
+      FUNCTIONS,
+      TYPES,
+      METHODS,
+      VARIABLES,
+      STRINGS,
+      NUMBERS,
+      COMMENTS,
+    ],
+  };
+}
+
+module.exports = isbl;

+ 192 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/java.js

@@ -0,0 +1,192 @@
+/**
+ * @param {string} value
+ * @returns {RegExp}
+ * */
+
+/**
+ * @param {RegExp | string } re
+ * @returns {string}
+ */
+function source(re) {
+  if (!re) return null;
+  if (typeof re === "string") return re;
+
+  return re.source;
+}
+
+/**
+ * @param {RegExp | string } re
+ * @returns {string}
+ */
+function optional(re) {
+  return concat('(', re, ')?');
+}
+
+/**
+ * @param {...(RegExp | string) } args
+ * @returns {string}
+ */
+function concat(...args) {
+  const joined = args.map((x) => source(x)).join("");
+  return joined;
+}
+
+/**
+ * Any of the passed expresssions may match
+ *
+ * Creates a huge this | this | that | that match
+ * @param {(RegExp | string)[] } args
+ * @returns {string}
+ */
+function either(...args) {
+  const joined = '(' + args.map((x) => source(x)).join("|") + ")";
+  return joined;
+}
+
+/*
+Language: Java
+Author: Vsevolod Solovyov <vsevolod.solovyov@gmail.com>
+Category: common, enterprise
+Website: https://www.java.com/
+*/
+
+function java(hljs) {
+  var JAVA_IDENT_RE = '[\u00C0-\u02B8a-zA-Z_$][\u00C0-\u02B8a-zA-Z_$0-9]*';
+  var GENERIC_IDENT_RE = JAVA_IDENT_RE + '(<' + JAVA_IDENT_RE + '(\\s*,\\s*' + JAVA_IDENT_RE + ')*>)?';
+  var KEYWORDS = 'false synchronized int abstract float private char boolean var static null if const ' +
+    'for true while long strictfp finally protected import native final void ' +
+    'enum else break transient catch instanceof byte super volatile case assert short ' +
+    'package default double public try this switch continue throws protected public private ' +
+    'module requires exports do';
+
+  var ANNOTATION = {
+    className: 'meta',
+    begin: '@' + JAVA_IDENT_RE,
+    contains: [
+      {
+        begin: /\(/,
+        end: /\)/,
+        contains: ["self"] // allow nested () inside our annotation
+      },
+    ]
+  };
+  /**
+   * A given sequence, possibly with underscores
+   * @type {(s: string | RegExp) => string}  */
+  var SEQUENCE_ALLOWING_UNDERSCORES = (seq) => concat('[', seq, ']+([', seq, '_]*[', seq, ']+)?');
+  var JAVA_NUMBER_MODE = {
+    className: 'number',
+    variants: [
+      { begin: `\\b(0[bB]${SEQUENCE_ALLOWING_UNDERSCORES('01')})[lL]?` }, // binary
+      { begin: `\\b(0${SEQUENCE_ALLOWING_UNDERSCORES('0-7')})[dDfFlL]?` }, // octal
+      {
+        begin: concat(
+          /\b0[xX]/,
+          either(
+            concat(SEQUENCE_ALLOWING_UNDERSCORES('a-fA-F0-9'), /\./, SEQUENCE_ALLOWING_UNDERSCORES('a-fA-F0-9')),
+            concat(SEQUENCE_ALLOWING_UNDERSCORES('a-fA-F0-9'), /\.?/),
+            concat(/\./, SEQUENCE_ALLOWING_UNDERSCORES('a-fA-F0-9'))
+          ),
+          /([pP][+-]?(\d+))?/,
+          /[fFdDlL]?/ // decimal & fp mixed for simplicity
+        )
+      },
+      // scientific notation
+      { begin: concat(
+        /\b/,
+        either(
+          concat(/\d*\./, SEQUENCE_ALLOWING_UNDERSCORES("\\d")), // .3, 3.3, 3.3_3
+          SEQUENCE_ALLOWING_UNDERSCORES("\\d") // 3, 3_3
+        ),
+        /[eE][+-]?[\d]+[dDfF]?/)
+      },
+      // decimal & fp mixed for simplicity
+      { begin: concat(
+        /\b/,
+        SEQUENCE_ALLOWING_UNDERSCORES(/\d/),
+        optional(/\.?/),
+        optional(SEQUENCE_ALLOWING_UNDERSCORES(/\d/)),
+        /[dDfFlL]?/)
+      }
+    ],
+    relevance: 0
+  };
+
+  return {
+    name: 'Java',
+    aliases: ['jsp'],
+    keywords: KEYWORDS,
+    illegal: /<\/|#/,
+    contains: [
+      hljs.COMMENT(
+        '/\\*\\*',
+        '\\*/',
+        {
+          relevance: 0,
+          contains: [
+            {
+              // eat up @'s in emails to prevent them to be recognized as doctags
+              begin: /\w+@/, relevance: 0
+            },
+            {
+              className: 'doctag',
+              begin: '@[A-Za-z]+'
+            }
+          ]
+        }
+      ),
+      hljs.C_LINE_COMMENT_MODE,
+      hljs.C_BLOCK_COMMENT_MODE,
+      hljs.APOS_STRING_MODE,
+      hljs.QUOTE_STRING_MODE,
+      {
+        className: 'class',
+        beginKeywords: 'class interface enum', end: /[{;=]/, excludeEnd: true,
+        keywords: 'class interface enum',
+        illegal: /[:"\[\]]/,
+        contains: [
+          { beginKeywords: 'extends implements' },
+          hljs.UNDERSCORE_TITLE_MODE
+        ]
+      },
+      {
+        // Expression keywords prevent 'keyword Name(...)' from being
+        // recognized as a function definition
+        beginKeywords: 'new throw return else',
+        relevance: 0
+      },
+      {
+        className: 'function',
+        begin: '(' + GENERIC_IDENT_RE + '\\s+)+' + hljs.UNDERSCORE_IDENT_RE + '\\s*\\(', returnBegin: true, end: /[{;=]/,
+        excludeEnd: true,
+        keywords: KEYWORDS,
+        contains: [
+          {
+            begin: hljs.UNDERSCORE_IDENT_RE + '\\s*\\(', returnBegin: true,
+            relevance: 0,
+            contains: [hljs.UNDERSCORE_TITLE_MODE]
+          },
+          {
+            className: 'params',
+            begin: /\(/, end: /\)/,
+            keywords: KEYWORDS,
+            relevance: 0,
+            contains: [
+              ANNOTATION,
+              hljs.APOS_STRING_MODE,
+              hljs.QUOTE_STRING_MODE,
+              hljs.C_NUMBER_MODE,
+              hljs.C_BLOCK_COMMENT_MODE
+            ]
+          },
+          hljs.C_LINE_COMMENT_MODE,
+          hljs.C_BLOCK_COMMENT_MODE
+        ]
+      },
+      JAVA_NUMBER_MODE,
+      ANNOTATION
+    ]
+  };
+}
+
+module.exports = java;

+ 454 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/javascript.js

@@ -0,0 +1,454 @@
+const IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*';
+const KEYWORDS = [
+  "as", // for exports
+  "in",
+  "of",
+  "if",
+  "for",
+  "while",
+  "finally",
+  "var",
+  "new",
+  "function",
+  "do",
+  "return",
+  "void",
+  "else",
+  "break",
+  "catch",
+  "instanceof",
+  "with",
+  "throw",
+  "case",
+  "default",
+  "try",
+  "switch",
+  "continue",
+  "typeof",
+  "delete",
+  "let",
+  "yield",
+  "const",
+  "class",
+  // JS handles these with a special rule
+  // "get",
+  // "set",
+  "debugger",
+  "async",
+  "await",
+  "static",
+  "import",
+  "from",
+  "export",
+  "extends"
+];
+const LITERALS = [
+  "true",
+  "false",
+  "null",
+  "undefined",
+  "NaN",
+  "Infinity"
+];
+
+const TYPES = [
+  "Intl",
+  "DataView",
+  "Number",
+  "Math",
+  "Date",
+  "String",
+  "RegExp",
+  "Object",
+  "Function",
+  "Boolean",
+  "Error",
+  "Symbol",
+  "Set",
+  "Map",
+  "WeakSet",
+  "WeakMap",
+  "Proxy",
+  "Reflect",
+  "JSON",
+  "Promise",
+  "Float64Array",
+  "Int16Array",
+  "Int32Array",
+  "Int8Array",
+  "Uint16Array",
+  "Uint32Array",
+  "Float32Array",
+  "Array",
+  "Uint8Array",
+  "Uint8ClampedArray",
+  "ArrayBuffer"
+];
+
+const ERROR_TYPES = [
+  "EvalError",
+  "InternalError",
+  "RangeError",
+  "ReferenceError",
+  "SyntaxError",
+  "TypeError",
+  "URIError"
+];
+
+const BUILT_IN_GLOBALS = [
+  "setInterval",
+  "setTimeout",
+  "clearInterval",
+  "clearTimeout",
+
+  "require",
+  "exports",
+
+  "eval",
+  "isFinite",
+  "isNaN",
+  "parseFloat",
+  "parseInt",
+  "decodeURI",
+  "decodeURIComponent",
+  "encodeURI",
+  "encodeURIComponent",
+  "escape",
+  "unescape"
+];
+
+const BUILT_IN_VARIABLES = [
+  "arguments",
+  "this",
+  "super",
+  "console",
+  "window",
+  "document",
+  "localStorage",
+  "module",
+  "global" // Node.js
+];
+
+const BUILT_INS = [].concat(
+  BUILT_IN_GLOBALS,
+  BUILT_IN_VARIABLES,
+  TYPES,
+  ERROR_TYPES
+);
+
+/**
+ * @param {string} value
+ * @returns {RegExp}
+ * */
+
+/**
+ * @param {RegExp | string } re
+ * @returns {string}
+ */
+function source(re) {
+  if (!re) return null;
+  if (typeof re === "string") return re;
+
+  return re.source;
+}
+
+/**
+ * @param {RegExp | string } re
+ * @returns {string}
+ */
+function lookahead(re) {
+  return concat('(?=', re, ')');
+}
+
+/**
+ * @param {...(RegExp | string) } args
+ * @returns {string}
+ */
+function concat(...args) {
+  const joined = args.map((x) => source(x)).join("");
+  return joined;
+}
+
+/*
+Language: JavaScript
+Description: JavaScript (JS) is a lightweight, interpreted, or just-in-time compiled programming language with first-class functions.
+Category: common, scripting
+Website: https://developer.mozilla.org/en-US/docs/Web/JavaScript
+*/
+
+function javascript(hljs) {
+  var IDENT_RE$1 = IDENT_RE;
+  var FRAGMENT = {
+    begin: '<>',
+    end: '</>'
+  };
+  var XML_TAG = {
+    begin: /<[A-Za-z0-9\\._:-]+/,
+    end: /\/[A-Za-z0-9\\._:-]+>|\/>/
+  };
+  var KEYWORDS$1 = {
+    $pattern: IDENT_RE,
+    keyword: KEYWORDS.join(" "),
+    literal: LITERALS.join(" "),
+    built_in: BUILT_INS.join(" ")
+  };
+  var NUMBER = {
+    className: 'number',
+    variants: [
+      { begin: '\\b(0[bB][01]+)n?' },
+      { begin: '\\b(0[oO][0-7]+)n?' },
+      { begin: hljs.C_NUMBER_RE + 'n?' }
+    ],
+    relevance: 0
+  };
+  var SUBST = {
+    className: 'subst',
+    begin: '\\$\\{', end: '\\}',
+    keywords: KEYWORDS$1,
+    contains: []  // defined later
+  };
+  var HTML_TEMPLATE = {
+    begin: 'html`', end: '',
+    starts: {
+      end: '`', returnEnd: false,
+      contains: [
+        hljs.BACKSLASH_ESCAPE,
+        SUBST
+      ],
+      subLanguage: 'xml',
+    }
+  };
+  var CSS_TEMPLATE = {
+    begin: 'css`', end: '',
+    starts: {
+      end: '`', returnEnd: false,
+      contains: [
+        hljs.BACKSLASH_ESCAPE,
+        SUBST
+      ],
+      subLanguage: 'css',
+    }
+  };
+  var TEMPLATE_STRING = {
+    className: 'string',
+    begin: '`', end: '`',
+    contains: [
+      hljs.BACKSLASH_ESCAPE,
+      SUBST
+    ]
+  };
+  SUBST.contains = [
+    hljs.APOS_STRING_MODE,
+    hljs.QUOTE_STRING_MODE,
+    HTML_TEMPLATE,
+    CSS_TEMPLATE,
+    TEMPLATE_STRING,
+    NUMBER,
+    hljs.REGEXP_MODE
+  ];
+  var PARAMS_CONTAINS = SUBST.contains.concat([
+    // eat recursive parens in sub expressions
+    { begin: /\(/, end: /\)/,
+      contains: ["self"].concat(SUBST.contains, [hljs.C_BLOCK_COMMENT_MODE, hljs.C_LINE_COMMENT_MODE])
+    },
+    hljs.C_BLOCK_COMMENT_MODE,
+    hljs.C_LINE_COMMENT_MODE
+  ]);
+  var PARAMS = {
+    className: 'params',
+    begin: /\(/, end: /\)/,
+    excludeBegin: true,
+    excludeEnd: true,
+    contains: PARAMS_CONTAINS
+  };
+
+  return {
+    name: 'JavaScript',
+    aliases: ['js', 'jsx', 'mjs', 'cjs'],
+    keywords: KEYWORDS$1,
+    contains: [
+      hljs.SHEBANG({
+        binary: "node",
+        relevance: 5
+      }),
+      {
+        className: 'meta',
+        relevance: 10,
+        begin: /^\s*['"]use (strict|asm)['"]/
+      },
+      hljs.APOS_STRING_MODE,
+      hljs.QUOTE_STRING_MODE,
+      HTML_TEMPLATE,
+      CSS_TEMPLATE,
+      TEMPLATE_STRING,
+      hljs.C_LINE_COMMENT_MODE,
+      hljs.COMMENT(
+        '/\\*\\*',
+        '\\*/',
+        {
+          relevance : 0,
+          contains : [
+            {
+              className : 'doctag',
+              begin : '@[A-Za-z]+',
+              contains : [
+                {
+                  className: 'type',
+                  begin: '\\{',
+                  end: '\\}',
+                  relevance: 0
+                },
+                {
+                  className: 'variable',
+                  begin: IDENT_RE$1 + '(?=\\s*(-)|$)',
+                  endsParent: true,
+                  relevance: 0
+                },
+                // eat spaces (not newlines) so we can find
+                // types or variables
+                {
+                  begin: /(?=[^\n])\s/,
+                  relevance: 0
+                },
+              ]
+            }
+          ]
+        }
+      ),
+      hljs.C_BLOCK_COMMENT_MODE,
+      NUMBER,
+      { // object attr container
+        begin: concat(/[{,\n]\s*/,
+          // we need to look ahead to make sure that we actually have an
+          // attribute coming up so we don't steal a comma from a potential
+          // "value" container
+          //
+          // NOTE: this might not work how you think.  We don't actually always
+          // enter this mode and stay.  Instead it might merely match `,
+          // <comments up next>` and then immediately end after the , because it
+          // fails to find any actual attrs. But this still does the job because
+          // it prevents the value contain rule from grabbing this instead and
+          // prevening this rule from firing when we actually DO have keys.
+          lookahead(concat(
+            // we also need to allow for multiple possible comments inbetween
+            // the first key:value pairing
+            /(((\/\/.*$)|(\/\*(.|\n)*\*\/))\s*)*/,
+            IDENT_RE$1 + '\\s*:'))),
+        relevance: 0,
+        contains: [
+          {
+            className: 'attr',
+            begin: IDENT_RE$1 + lookahead('\\s*:'),
+            relevance: 0,
+          },
+        ]
+      },
+      { // "value" container
+        begin: '(' + hljs.RE_STARTERS_RE + '|\\b(case|return|throw)\\b)\\s*',
+        keywords: 'return throw case',
+        contains: [
+          hljs.C_LINE_COMMENT_MODE,
+          hljs.C_BLOCK_COMMENT_MODE,
+          hljs.REGEXP_MODE,
+          {
+            className: 'function',
+            // we have to count the parens to make sure we actually have the
+            // correct bounding ( ) before the =>.  There could be any number of
+            // sub-expressions inside also surrounded by parens.
+            begin: '(\\([^(]*' +
+              '(\\([^(]*' +
+                '(\\([^(]*' +
+                '\\))?' +
+              '\\))?' +
+            '\\)|' + hljs.UNDERSCORE_IDENT_RE + ')\\s*=>', returnBegin: true,
+            end: '\\s*=>',
+            contains: [
+              {
+                className: 'params',
+                variants: [
+                  {
+                    begin: hljs.UNDERSCORE_IDENT_RE
+                  },
+                  {
+                    className: null,
+                    begin: /\(\s*\)/,
+                    skip: true
+                  },
+                  {
+                    begin: /\(/, end: /\)/,
+                    excludeBegin: true, excludeEnd: true,
+                    keywords: KEYWORDS$1,
+                    contains: PARAMS_CONTAINS
+                  }
+                ]
+              }
+            ]
+          },
+          { // could be a comma delimited list of params to a function call
+            begin: /,/, relevance: 0,
+          },
+          {
+            className: '',
+            begin: /\s/,
+            end: /\s*/,
+            skip: true,
+          },
+          { // JSX
+            variants: [
+              { begin: FRAGMENT.begin, end: FRAGMENT.end },
+              { begin: XML_TAG.begin, end: XML_TAG.end }
+            ],
+            subLanguage: 'xml',
+            contains: [
+              {
+                begin: XML_TAG.begin, end: XML_TAG.end, skip: true,
+                contains: ['self']
+              }
+            ]
+          },
+        ],
+        relevance: 0
+      },
+      {
+        className: 'function',
+        beginKeywords: 'function', end: /\{/, excludeEnd: true,
+        contains: [
+          hljs.inherit(hljs.TITLE_MODE, {begin: IDENT_RE$1}),
+          PARAMS
+        ],
+        illegal: /\[|%/
+      },
+      {
+        begin: /\$[(.]/ // relevance booster for a pattern common to JS libs: `$(something)` and `$.something`
+      },
+
+      hljs.METHOD_GUARD,
+      { // ES6 class
+        className: 'class',
+        beginKeywords: 'class', end: /[{;=]/, excludeEnd: true,
+        illegal: /[:"\[\]]/,
+        contains: [
+          {beginKeywords: 'extends'},
+          hljs.UNDERSCORE_TITLE_MODE
+        ]
+      },
+      {
+        beginKeywords: 'constructor', end: /\{/, excludeEnd: true
+      },
+      {
+        begin: '(get|set)\\s+(?=' + IDENT_RE$1 + '\\()',
+        end: /{/,
+        keywords: "get set",
+        contains: [
+          hljs.inherit(hljs.TITLE_MODE, {begin: IDENT_RE$1}),
+          { begin: /\(\)/ }, // eat to avoid empty params
+          PARAMS
+        ]
+
+      }
+    ],
+    illegal: /#(?!!)/
+  };
+}
+
+module.exports = javascript;

+ 8 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/javascript.old.js

@@ -0,0 +1,8 @@
+/* eslint-disable no-unreachable */
+
+function javascript_old(hljs) {
+
+  return hljs.requireLanguage("typescript").rawDefinition();
+}
+
+module.exports = javascript_old;

+ 57 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/jboss-cli.js

@@ -0,0 +1,57 @@
+/*
+ Language: JBoss CLI
+ Author: Raphaël Parrëe <rparree@edc4it.com>
+ Description: language definition jboss cli
+ Website: https://docs.jboss.org/author/display/WFLY/Command+Line+Interface
+ Category: config
+ */
+
+function jbossCli (hljs) {
+  var PARAM = {
+    begin: /[\w-]+ *=/, returnBegin: true,
+    relevance: 0,
+    contains: [{className: 'attr', begin: /[\w-]+/}]
+  };
+  var PARAMSBLOCK = {
+    className: 'params',
+    begin: /\(/,
+    end: /\)/,
+    contains: [PARAM],
+    relevance : 0
+  };
+  var OPERATION = {
+    className: 'function',
+    begin: /:[\w\-.]+/,
+    relevance: 0
+  };
+  var PATH = {
+    className: 'string',
+    begin: /\B(([\/.])[\w\-.\/=]+)+/,
+  };
+  var COMMAND_PARAMS = {
+    className: 'params',
+    begin: /--[\w\-=\/]+/,
+  };
+  return {
+    name: 'JBoss CLI',
+    aliases: ['wildfly-cli'],
+    keywords: {
+      $pattern: '[a-z\-]+',
+      keyword: 'alias batch cd clear command connect connection-factory connection-info data-source deploy ' +
+      'deployment-info deployment-overlay echo echo-dmr help history if jdbc-driver-info jms-queue|20 jms-topic|20 ls ' +
+      'patch pwd quit read-attribute read-operation reload rollout-plan run-batch set shutdown try unalias ' +
+      'undeploy unset version xa-data-source', // module
+      literal: 'true false'
+    },
+    contains: [
+      hljs.HASH_COMMENT_MODE,
+      hljs.QUOTE_STRING_MODE,
+      COMMAND_PARAMS,
+      OPERATION,
+      PATH,
+      PARAMSBLOCK
+    ]
+  }
+}
+
+module.exports = jbossCli;

+ 54 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/json.js

@@ -0,0 +1,54 @@
+/*
+Language: JSON
+Description: JSON (JavaScript Object Notation) is a lightweight data-interchange format.
+Author: Ivan Sagalaev <maniac@softwaremaniacs.org>
+Website: http://www.json.org
+Category: common, protocols
+*/
+
+function json(hljs) {
+  var LITERALS = {literal: 'true false null'};
+  var ALLOWED_COMMENTS = [
+    hljs.C_LINE_COMMENT_MODE,
+    hljs.C_BLOCK_COMMENT_MODE
+  ];
+  var TYPES = [
+    hljs.QUOTE_STRING_MODE,
+    hljs.C_NUMBER_MODE
+  ];
+  var VALUE_CONTAINER = {
+    end: ',', endsWithParent: true, excludeEnd: true,
+    contains: TYPES,
+    keywords: LITERALS
+  };
+  var OBJECT = {
+    begin: '{', end: '}',
+    contains: [
+      {
+        className: 'attr',
+        begin: /"/, end: /"/,
+        contains: [hljs.BACKSLASH_ESCAPE],
+        illegal: '\\n',
+      },
+      hljs.inherit(VALUE_CONTAINER, {begin: /:/})
+    ].concat(ALLOWED_COMMENTS),
+    illegal: '\\S'
+  };
+  var ARRAY = {
+    begin: '\\[', end: '\\]',
+    contains: [hljs.inherit(VALUE_CONTAINER)], // inherit is a workaround for a bug that makes shared modes with endsWithParent compile only the ending of one of the parents
+    illegal: '\\S'
+  };
+  TYPES.push(OBJECT, ARRAY);
+  ALLOWED_COMMENTS.forEach(function(rule) {
+    TYPES.push(rule);
+  });
+  return {
+    name: 'JSON',
+    contains: TYPES,
+    keywords: LITERALS,
+    illegal: '\\S'
+  };
+}
+
+module.exports = json;

+ 50 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/julia-repl.js

@@ -0,0 +1,50 @@
+/*
+Language: Julia REPL
+Description: Julia REPL sessions
+Author: Morten Piibeleht <morten.piibeleht@gmail.com>
+Website: https://julialang.org
+Requires: julia.js
+
+The Julia REPL code blocks look something like the following:
+
+  julia> function foo(x)
+             x + 1
+         end
+  foo (generic function with 1 method)
+
+They start on a new line with "julia>". Usually there should also be a space after this, but
+we also allow the code to start right after the > character. The code may run over multiple
+lines, but the additional lines must start with six spaces (i.e. be indented to match
+"julia>"). The rest of the code is assumed to be output from the executed code and will be
+left un-highlighted.
+
+Using simply spaces to identify line continuations may get a false-positive if the output
+also prints out six spaces, but such cases should be rare.
+*/
+
+function juliaRepl(hljs) {
+  return {
+    name: 'Julia REPL',
+    contains: [
+      {
+        className: 'meta',
+        begin: /^julia>/,
+        relevance: 10,
+        starts: {
+          // end the highlighting if we are on a new line and the line does not have at
+          // least six spaces in the beginning
+          end: /^(?![ ]{6})/,
+          subLanguage: 'julia'
+      },
+      // jldoctest Markdown blocks are used in the Julia manual and package docs indicate
+      // code snippets that should be verified when the documentation is built. They can be
+      // either REPL-like or script-like, but are usually REPL-like and therefore we apply
+      // julia-repl highlighting to them. More information can be found in Documenter's
+      // manual: https://juliadocs.github.io/Documenter.jl/latest/man/doctests.html
+      aliases: ['jldoctest']
+      }
+    ]
+  }
+}
+
+module.exports = juliaRepl;

+ 173 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/julia.js

@@ -0,0 +1,173 @@
+/*
+Language: Julia
+Description: Julia is a high-level, high-performance, dynamic programming language.
+Author: Kenta Sato <bicycle1885@gmail.com>
+Contributors: Alex Arslan <ararslan@comcast.net>
+Website: https://julialang.org
+*/
+
+function julia(hljs) {
+  // Since there are numerous special names in Julia, it is too much trouble
+  // to maintain them by hand. Hence these names (i.e. keywords, literals and
+  // built-ins) are automatically generated from Julia v0.6 itself through
+  // the following scripts for each.
+
+  // ref: http://julia.readthedocs.org/en/latest/manual/variables/#allowed-variable-names
+  var VARIABLE_NAME_RE = '[A-Za-z_\\u00A1-\\uFFFF][A-Za-z_0-9\\u00A1-\\uFFFF]*';
+
+  var KEYWORDS = {
+    $pattern: VARIABLE_NAME_RE,
+    // # keyword generator, multi-word keywords handled manually below
+    // foreach(println, ["in", "isa", "where"])
+    // for kw in Base.REPLCompletions.complete_keyword("")
+    //     if !(contains(kw, " ") || kw == "struct")
+    //         println(kw)
+    //     end
+    // end
+    keyword:
+      'in isa where ' +
+      'baremodule begin break catch ccall const continue do else elseif end export false finally for function ' +
+      'global if import importall let local macro module quote return true try using while ' +
+      // legacy, to be deprecated in the next release
+      'type immutable abstract bitstype typealias ',
+
+    // # literal generator
+    // println("true")
+    // println("false")
+    // for name in Base.REPLCompletions.completions("", 0)[1]
+    //     try
+    //         v = eval(Symbol(name))
+    //         if !(v isa Function || v isa Type || v isa TypeVar || v isa Module || v isa Colon)
+    //             println(name)
+    //         end
+    //     end
+    // end
+    literal:
+      'true false ' +
+      'ARGS C_NULL DevNull ENDIAN_BOM ENV I Inf Inf16 Inf32 Inf64 InsertionSort JULIA_HOME LOAD_PATH MergeSort ' +
+      'NaN NaN16 NaN32 NaN64 PROGRAM_FILE QuickSort RoundDown RoundFromZero RoundNearest RoundNearestTiesAway ' +
+      'RoundNearestTiesUp RoundToZero RoundUp STDERR STDIN STDOUT VERSION catalan e|0 eu|0 eulergamma golden im ' +
+      'nothing pi γ π φ ',
+
+    // # built_in generator:
+    // for name in Base.REPLCompletions.completions("", 0)[1]
+    //     try
+    //         v = eval(Symbol(name))
+    //         if v isa Type || v isa TypeVar
+    //             println(name)
+    //         end
+    //     end
+    // end
+    built_in:
+      'ANY AbstractArray AbstractChannel AbstractFloat AbstractMatrix AbstractRNG AbstractSerializer AbstractSet ' +
+      'AbstractSparseArray AbstractSparseMatrix AbstractSparseVector AbstractString AbstractUnitRange AbstractVecOrMat ' +
+      'AbstractVector Any ArgumentError Array AssertionError Associative Base64DecodePipe Base64EncodePipe Bidiagonal '+
+      'BigFloat BigInt BitArray BitMatrix BitVector Bool BoundsError BufferStream CachingPool CapturedException ' +
+      'CartesianIndex CartesianRange Cchar Cdouble Cfloat Channel Char Cint Cintmax_t Clong Clonglong ClusterManager ' +
+      'Cmd CodeInfo Colon Complex Complex128 Complex32 Complex64 CompositeException Condition ConjArray ConjMatrix ' +
+      'ConjVector Cptrdiff_t Cshort Csize_t Cssize_t Cstring Cuchar Cuint Cuintmax_t Culong Culonglong Cushort Cwchar_t ' +
+      'Cwstring DataType Date DateFormat DateTime DenseArray DenseMatrix DenseVecOrMat DenseVector Diagonal Dict ' +
+      'DimensionMismatch Dims DirectIndexString Display DivideError DomainError EOFError EachLine Enum Enumerate ' +
+      'ErrorException Exception ExponentialBackOff Expr Factorization FileMonitor Float16 Float32 Float64 Function ' +
+      'Future GlobalRef GotoNode HTML Hermitian IO IOBuffer IOContext IOStream IPAddr IPv4 IPv6 IndexCartesian IndexLinear ' +
+      'IndexStyle InexactError InitError Int Int128 Int16 Int32 Int64 Int8 IntSet Integer InterruptException ' +
+      'InvalidStateException Irrational KeyError LabelNode LinSpace LineNumberNode LoadError LowerTriangular MIME Matrix ' +
+      'MersenneTwister Method MethodError MethodTable Module NTuple NewvarNode NullException Nullable Number ObjectIdDict ' +
+      'OrdinalRange OutOfMemoryError OverflowError Pair ParseError PartialQuickSort PermutedDimsArray Pipe ' +
+      'PollingFileWatcher ProcessExitedException Ptr QuoteNode RandomDevice Range RangeIndex Rational RawFD ' +
+      'ReadOnlyMemoryError Real ReentrantLock Ref Regex RegexMatch RemoteChannel RemoteException RevString RoundingMode ' +
+      'RowVector SSAValue SegmentationFault SerializationState Set SharedArray SharedMatrix SharedVector Signed ' +
+      'SimpleVector Slot SlotNumber SparseMatrixCSC SparseVector StackFrame StackOverflowError StackTrace StepRange ' +
+      'StepRangeLen StridedArray StridedMatrix StridedVecOrMat StridedVector String SubArray SubString SymTridiagonal ' +
+      'Symbol Symmetric SystemError TCPSocket Task Text TextDisplay Timer Tridiagonal Tuple Type TypeError TypeMapEntry ' +
+      'TypeMapLevel TypeName TypeVar TypedSlot UDPSocket UInt UInt128 UInt16 UInt32 UInt64 UInt8 UndefRefError UndefVarError ' +
+      'UnicodeError UniformScaling Union UnionAll UnitRange Unsigned UpperTriangular Val Vararg VecElement VecOrMat Vector ' +
+      'VersionNumber Void WeakKeyDict WeakRef WorkerConfig WorkerPool '
+  };
+
+  // placeholder for recursive self-reference
+  var DEFAULT = {
+    keywords: KEYWORDS, illegal: /<\//
+  };
+
+  // ref: http://julia.readthedocs.org/en/latest/manual/integers-and-floating-point-numbers/
+  var NUMBER = {
+    className: 'number',
+    // supported numeric literals:
+    //  * binary literal (e.g. 0x10)
+    //  * octal literal (e.g. 0o76543210)
+    //  * hexadecimal literal (e.g. 0xfedcba876543210)
+    //  * hexadecimal floating point literal (e.g. 0x1p0, 0x1.2p2)
+    //  * decimal literal (e.g. 9876543210, 100_000_000)
+    //  * floating pointe literal (e.g. 1.2, 1.2f, .2, 1., 1.2e10, 1.2e-10)
+    begin: /(\b0x[\d_]*(\.[\d_]*)?|0x\.\d[\d_]*)p[-+]?\d+|\b0[box][a-fA-F0-9][a-fA-F0-9_]*|(\b\d[\d_]*(\.[\d_]*)?|\.\d[\d_]*)([eEfF][-+]?\d+)?/,
+    relevance: 0
+  };
+
+  var CHAR = {
+    className: 'string',
+    begin: /'(.|\\[xXuU][a-zA-Z0-9]+)'/
+  };
+
+  var INTERPOLATION = {
+    className: 'subst',
+    begin: /\$\(/, end: /\)/,
+    keywords: KEYWORDS
+  };
+
+  var INTERPOLATED_VARIABLE = {
+    className: 'variable',
+    begin: '\\$' + VARIABLE_NAME_RE
+  };
+
+  // TODO: neatly escape normal code in string literal
+  var STRING = {
+    className: 'string',
+    contains: [hljs.BACKSLASH_ESCAPE, INTERPOLATION, INTERPOLATED_VARIABLE],
+    variants: [
+      { begin: /\w*"""/, end: /"""\w*/, relevance: 10 },
+      { begin: /\w*"/, end: /"\w*/ }
+    ]
+  };
+
+  var COMMAND = {
+    className: 'string',
+    contains: [hljs.BACKSLASH_ESCAPE, INTERPOLATION, INTERPOLATED_VARIABLE],
+    begin: '`', end: '`'
+  };
+
+  var MACROCALL = {
+    className: 'meta',
+    begin: '@' + VARIABLE_NAME_RE
+  };
+
+  var COMMENT = {
+    className: 'comment',
+    variants: [
+      { begin: '#=', end: '=#', relevance: 10 },
+      { begin: '#', end: '$' }
+    ]
+  };
+
+  DEFAULT.name = 'Julia';
+  DEFAULT.contains = [
+    NUMBER,
+    CHAR,
+    STRING,
+    COMMAND,
+    MACROCALL,
+    COMMENT,
+    hljs.HASH_COMMENT_MODE,
+    {
+      className: 'keyword',
+      begin:
+        '\\b(((abstract|primitive)\\s+)type|(mutable\\s+)?struct)\\b'
+    },
+    {begin: /<:/}  // relevance booster
+  ];
+  INTERPOLATION.contains = DEFAULT.contains;
+
+  return DEFAULT;
+}
+
+module.exports = julia;

+ 226 - 0
components/cmder-MDParserHighlight/highlight.js/lib/languages/kotlin.js

@@ -0,0 +1,226 @@
+/*
+ Language: Kotlin
+ Description: Kotlin is an OSS statically typed programming language that targets the JVM, Android, JavaScript and Native.
+ Author: Sergey Mashkov <cy6erGn0m@gmail.com>
+ Website: https://kotlinlang.org
+ Category: common
+ */
+
+
+function kotlin(hljs) {
+  var KEYWORDS = {
+    keyword:
+      'abstract as val var vararg get set class object open private protected public noinline ' +
+      'crossinline dynamic final enum if else do while for when throw try catch finally ' +
+      'import package is in fun override companion reified inline lateinit init ' +
+      'interface annotation data sealed internal infix operator out by constructor super ' +
+      'tailrec where const inner suspend typealias external expect actual',
+    built_in:
+      'Byte Short Char Int Long Boolean Float Double Void Unit Nothing',
+    literal:
+      'true false null'
+  };
+  var KEYWORDS_WITH_LABEL = {
+    className: 'keyword',
+    begin: /\b(break|continue|return|this)\b/,
+    starts: {
+      contains: [
+        {
+          className: 'symbol',
+          begin: /@\w+/
+        }
+      ]
+    }
+  };
+  var LABEL = {
+    className: 'symbol', begin: hljs.UNDERSCORE_IDENT_RE + '@'
+  };
+
+  // for string templates
+  var SUBST = {
+    className: 'subst',
+    begin: '\\${', end: '}', contains: [hljs.C_NUMBER_MODE]
+  };
+  var VARIABLE = {
+    className: 'variable', begin: '\\$' + hljs.UNDERSCORE_IDENT_RE
+  };
+  var STRING = {
+    className: 'string',
+    variants: [
+      {
+        begin: '"""', end: '"""(?=[^"])',
+        contains: [VARIABLE, SUBST]
+      },
+      // Can't use built-in modes easily, as we want to use STRING in the meta
+      // context as 'meta-string' and there's no syntax to remove explicitly set
+      // classNames in built-in modes.
+      {
+        begin: '\'', end: '\'',
+        illegal: /\n/,
+        contains: [hljs.BACKSLASH_ESCAPE]
+      },
+      {
+        begin: '"', end: '"',
+        illegal: /\n/,
+        contains: [hljs.BACKSLASH_ESCAPE, VARIABLE, SUBST]
+      }
+    ]
+  };
+  SUBST.contains.push(STRING);
+
+  var ANNOTATION_USE_SITE = {
+    className: 'meta', begin: '@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*' + hljs.UNDERSCORE_IDENT_RE + ')?'
+  };
+  var ANNOTATION = {
+    className: 'meta', begin: '@' + hljs.UNDERSCORE_IDENT_RE,
+    contains: [
+      {
+        begin: /\(/, end: /\)/,
+        contains: [
+          hljs.inherit(STRING, {className: 'meta-string'})
+        ]
+      }
+    ]
+  };
+
+  // https://kotlinlang.org/docs/reference/whatsnew11.html#underscores-in-numeric-literals
+  // According to the doc above, the number mode of kotlin is the same as java 8,
+  // so the code below is copied from java.js
+  var KOTLIN_NUMBER_RE = '\\b' +
+    '(' +
+      '0[bB]([01]+[01_]+[01]+|[01]+)' + // 0b...
+      '|' +
+      '0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)' + // 0x...
+      '|' +
+      '(' +
+        '([\\d]+[\\d_]+[\\d]+|[\\d]+)(\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))?' +
+        '|' +
+        '\\.([\\d]+[\\d_]+[\\d]+|[\\d]+)' +
+      ')' +
+      '([eE][-+]?\\d+)?' + // octal, decimal, float
+    ')' +
+    '[lLfF]?';
+  var KOTLIN_NUMBER_MODE = {
+    className: 'number',
+    begin: KOTLIN_NUMBER_RE,
+    relevance: 0
+  };
+  var KOTLIN_NESTED_COMMENT = hljs.COMMENT(
+    '/\\*', '\\*/',
+    { contains: [ hljs.C_BLOCK_COMMENT_MODE ] }
+  );
+  var KOTLIN_PAREN_TYPE = {
+    variants: [
+	  { className: 'type',
+	    begin: hljs.UNDERSCORE_IDENT_RE
+	  },
+	  { begin: /\(/, end: /\)/,
+	    contains: [] //defined later
+	  }
+	]
+  };
+  var KOTLIN_PAREN_TYPE2 = KOTLIN_PAREN_TYPE;
+  KOTLIN_PAREN_TYPE2.variants[1].contains = [ KOTLIN_PAREN_TYPE ];
+  KOTLIN_PAREN_TYPE.variants[1].contains = [ KOTLIN_PAREN_TYPE2 ];
+
+  return {
+    name: 'Kotlin',
+    aliases: ['kt'],
+    keywords: KEYWORDS,
+    contains : [
+      hljs.COMMENT(
+        '/\\*\\*',
+        '\\*/',
+        {
+          relevance : 0,
+          contains : [{
+            className : 'doctag',
+            begin : '@[A-Za-z]+'
+          }]
+        }
+      ),
+      hljs.C_LINE_COMMENT_MODE,
+      KOTLIN_NESTED_COMMENT,
+      KEYWORDS_WITH_LABEL,
+      LABEL,
+      ANNOTATION_USE_SITE,
+      ANNOTATION,
+      {
+        className: 'function',
+        beginKeywords: 'fun', end: '[(]|$',
+        returnBegin: true,
+        excludeEnd: true,
+        keywords: KEYWORDS,
+        illegal: /fun\s+(<.*>)?[^\s\(]+(\s+[^\s\(]+)\s*=/,
+        relevance: 5,
+        contains: [
+          {
+            begin: hljs.UNDERSCORE_IDENT_RE + '\\s*\\(', returnBegin: true,
+            relevance: 0,
+            contains: [hljs.UNDERSCORE_TITLE_MODE]
+          },
+          {
+            className: 'type',
+            begin: /</, end: />/, keywords: 'reified',
+            relevance: 0
+          },
+          {
+            className: 'params',
+            begin: /\(/, end: /\)/,
+            endsParent: true,
+            keywords: KEYWORDS,
+            relevance: 0,
+            contains: [
+              {
+                begin: /:/, end: /[=,\/]/, endsWithParent: true,
+                contains: [
+                  KOTLIN_PAREN_TYPE,
+                  hljs.C_LINE_COMMENT_MODE,
+                  KOTLIN_NESTED_COMMENT
+                ],
+                relevance: 0
+              },
+              hljs.C_LINE_COMMENT_MODE,
+              KOTLIN_NESTED_COMMENT,
+              ANNOTATION_USE_SITE,
+              ANNOTATION,
+              STRING,
+              hljs.C_NUMBER_MODE
+            ]
+          },
+          KOTLIN_NESTED_COMMENT
+        ]
+      },
+      {
+        className: 'class',
+        beginKeywords: 'class interface trait', end: /[:\{(]|$/, // remove 'trait' when removed from KEYWORDS
+        excludeEnd: true,
+        illegal: 'extends implements',
+        contains: [
+          {beginKeywords: 'public protected internal private constructor'},
+          hljs.UNDERSCORE_TITLE_MODE,
+          {
+            className: 'type',
+            begin: /</, end: />/, excludeBegin: true, excludeEnd: true,
+            relevance: 0
+          },
+          {
+            className: 'type',
+            begin: /[,:]\s*/, end: /[<\(,]|$/, excludeBegin: true, returnEnd: true
+          },
+          ANNOTATION_USE_SITE,
+          ANNOTATION
+        ]
+      },
+      STRING,
+      {
+        className: 'meta',
+        begin: "^#!/usr/bin/env", end: '$',
+        illegal: '\n'
+      },
+      KOTLIN_NUMBER_MODE
+    ]
+  };
+}
+
+module.exports = kotlin;

Some files were not shown because too many files changed in this diff