@gmb/bitmark-parser-generator 5.31.1 → 5.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli/main.js CHANGED
@@ -3091,11 +3091,16 @@ var CARDSETS = {
3091
3091
  exportJsonKey: { "@bit": { heading: { forKeys: "$" } } }
3092
3092
  },
3093
3093
  {
3094
+ // Axis-side `[@isCaseSensitive]` is a cascade SOURCE
3095
+ // only: it must fire (so value-side cells inherit via
3096
+ // `$ancestor`) but emit nothing itself — emission is
3097
+ // owned by the value-side's cell-nested rule
3098
+ // (`cells[$s].isCaseSensitive`, PLAN-122). The earlier
3099
+ // flat `$ancestor` rule here double-emitted at bit
3100
+ // scope and broke the `optimize(fullize(x)) ==
3101
+ // optimize(x)` law on match-matrix.
3094
3102
  key: ConfigKey.property_isCaseSensitive,
3095
- exportJsonKey: [
3096
- { "@absent": { isCaseSensitive: "$ancestor" } },
3097
- { isCaseSensitive: "$" }
3098
- ],
3103
+ exportJsonKey: {},
3099
3104
  description: "Property to indicate if the match is case sensitive.",
3100
3105
  format: TagFormat.boolean
3101
3106
  }
@@ -4975,18 +4980,16 @@ var GROUPS = {
4975
4980
  description: "Item, lead, page number, margin number, instruction and hint tags"
4976
4981
  },
4977
4982
  {
4978
- // PLAN-072 + ALIGN-EXAMPLE-CASCADE §3.2: cascade-fired
4979
- // `@example` from the bit header marks EVERY choice with
4980
- // `isExample: true` (matches BPG output), but only the
4981
- // FIRST correct choice gets `example: true` (BPG
4982
- // `fillBooleanExample(..., firstCorrectOnly=true)`).
4983
- //
4984
- // Two `@absent` rules, picked first-match-wins:
4985
- // 1. Verbose form gated on `@parent.isCorrect=true` with
4986
- // `maxEmits:1` fires once for the first correct.
4987
- // 2. Plain `@absent` fires on every remaining entry
4988
- // (subsequent corrects and all incorrects), emitting
4989
- // `isExample` only.
4983
+ // PLAN-072 + ALIGN-EXAMPLE-CASCADE §3.2, corrected by
4984
+ // bpg 5.31 probing: cascade-fired `@example` decorates only
4985
+ // the FIRST correct choice (`example: true` via the
4986
+ // `@parent.isCorrect`-gated `@absent` rule, `maxEmits:1`
4987
+ // BPG `fillBooleanExample(..., firstCorrectOnly=true)`).
4988
+ // There is deliberately NO plain `@absent` rule: an ancestor
4989
+ // bare example must leave the remaining choices untouched
4990
+ // (a plain `@absent` decoration broke the
4991
+ // `optimize(fullize(x)) == optimize(x)` law the
4992
+ // synthesized `isExample` keys survived re-optimization).
4990
4993
  // The `serialize_cards` cascade-counter scope holds the cap
4991
4994
  // across the whole cardset.
4992
4995
  // @card scope-shift writes choice-container isExample (e.g.
@@ -5014,13 +5017,6 @@ var GROUPS = {
5014
5017
  "@card": { isExample: true }
5015
5018
  }
5016
5019
  },
5017
- {
5018
- "@absent": {
5019
- isExample: true,
5020
- "@bit": { isExample: true },
5021
- "@card": { isExample: true }
5022
- }
5023
- },
5024
5020
  {
5025
5021
  isExample: true,
5026
5022
  example: "$",
@@ -5062,11 +5058,13 @@ var GROUPS = {
5062
5058
  description: "Item, lead, page number, margin number, instruction and hint tags"
5063
5059
  },
5064
5060
  {
5065
- // PLAN-072 + ALIGN-EXAMPLE-CASCADE §3.2: cascade-fired
5066
- // `@example` on a `-` (incorrect choice) emits
5067
- // `isExample: true` only — no `example` (BPG fixtures show
5068
- // `isExample` on every choice, but `example` only on the
5069
- // first correct via firstCorrectOnly cascade).
5061
+ // PLAN-072 + ALIGN-EXAMPLE-CASCADE §3.2, corrected by
5062
+ // bpg 5.31 probing: an ancestor bare `@example` leaves
5063
+ // incorrect choices UNTOUCHED — no cascade decoration at
5064
+ // all (no `@absent` rule; a plain `@absent isExample`
5065
+ // decoration broke the `optimize(fullize(x)) ==
5066
+ // optimize(x)` law). Only an explicit `[@example]` on the
5067
+ // choice itself emits.
5070
5068
  // @card scope-shift writes choice-container isExample.
5071
5069
  key: ConfigKey.property_example,
5072
5070
  jsonKey: "example",
@@ -5079,13 +5077,6 @@ var GROUPS = {
5079
5077
  "@card": { isExample: true }
5080
5078
  }
5081
5079
  },
5082
- {
5083
- "@absent": {
5084
- isExample: true,
5085
- "@bit": { isExample: true },
5086
- "@card": { isExample: true }
5087
- }
5088
- },
5089
5080
  {
5090
5081
  isExample: true,
5091
5082
  example: "$",
@@ -5093,7 +5084,7 @@ var GROUPS = {
5093
5084
  "@card": { isExample: true }
5094
5085
  }
5095
5086
  ],
5096
- description: "An example for the true/false statement/question (incorrect entry \u2014 isExample only on cascade)",
5087
+ description: "An example for the true/false statement/question (incorrect entry \u2014 no cascade decoration: an ancestor bare example leaves incorrect choices untouched, bpg 5.31)",
5097
5088
  format: TagFormat.boolean,
5098
5089
  nullable: true
5099
5090
  }
@@ -7152,7 +7143,9 @@ var BITS = {
7152
7143
  description: "Common tags for quiz bits"
7153
7144
  },
7154
7145
  {
7155
- exportJsonKey: { title: "$" },
7146
+ maxCount: 2,
7147
+ jsonKey: "title|multi(count=2, key=subtitle)",
7148
+ exportJsonKey: [{ "@level=1": { title: "$" } }, { "@level=2": { subtitle: "$" } }],
7156
7149
  key: ConfigKey.tag_title,
7157
7150
  description: "The title of the flashcard quiz"
7158
7151
  },
@@ -7257,7 +7250,9 @@ var BITS = {
7257
7250
  description: "Article bit, used for articles / paragraphs",
7258
7251
  tags: [
7259
7252
  {
7260
- exportJsonKey: { title: "$" },
7253
+ maxCount: 2,
7254
+ jsonKey: "title|multi(count=2, key=subtitle)",
7255
+ exportJsonKey: [{ "@level=1": { title: "$" } }, { "@level=2": { subtitle: "$" } }],
7261
7256
  key: ConfigKey.tag_title,
7262
7257
  description: "The title of the article"
7263
7258
  }
@@ -9223,7 +9218,9 @@ var BITS = {
9223
9218
  description: "Example bit, used to provide examples in articles or books",
9224
9219
  tags: [
9225
9220
  {
9226
- exportJsonKey: { title: "$" },
9221
+ maxCount: 2,
9222
+ jsonKey: "title|multi(count=2, key=subtitle)",
9223
+ exportJsonKey: [{ "@level=1": { title: "$" } }, { "@level=2": { subtitle: "$" } }],
9227
9224
  key: ConfigKey.tag_title,
9228
9225
  description: "The title of the example"
9229
9226
  },
@@ -11824,7 +11821,9 @@ var BITS = {
11824
11821
  description: "Page bit, used to create pages in articles or books",
11825
11822
  tags: [
11826
11823
  {
11827
- exportJsonKey: { title: "$" },
11824
+ maxCount: 2,
11825
+ jsonKey: "title|multi(count=2, key=subtitle)",
11826
+ exportJsonKey: [{ "@level=1": { title: "$" } }, { "@level=2": { subtitle: "$" } }],
11828
11827
  key: ConfigKey.tag_title,
11829
11828
  description: "Title of the page, used to display the page title"
11830
11829
  },
@@ -12282,7 +12281,9 @@ var BITS = {
12282
12281
  description: "Review note bit, used to create review notes in articles or books",
12283
12282
  tags: [
12284
12283
  {
12285
- exportJsonKey: { title: "$" },
12284
+ maxCount: 2,
12285
+ jsonKey: "title|multi(count=2, key=subtitle)",
12286
+ exportJsonKey: [{ "@level=1": { title: "$" } }, { "@level=2": { subtitle: "$" } }],
12286
12287
  key: ConfigKey.tag_title,
12287
12288
  description: "Title of the review note, used to display the note title"
12288
12289
  },
@@ -13868,7 +13869,7 @@ var instance2 = new Config();
13868
13869
  // src/generated/package_info.ts
13869
13870
  var PACKAGE_INFO = {
13870
13871
  "name": "@gmb/bitmark-parser-generator",
13871
- "version": "5.31.1",
13872
+ "version": "5.32.0",
13872
13873
  "license": "ISC"};
13873
13874
  var Environment = {
13874
13875
  unknown: "",
@@ -14117,6 +14118,7 @@ var TextMarkType = {
14117
14118
  del: "del",
14118
14119
  underline: "underline",
14119
14120
  doubleUnderline: "doubleUnderline",
14121
+ smallcaps: "smallcaps",
14120
14122
  circle: "circle",
14121
14123
  languageEmRed: "languageEmRed",
14122
14124
  languageEmOrange: "languageEmOrange",
@@ -14148,7 +14150,10 @@ var TextMarkType = {
14148
14150
  code: "code",
14149
14151
  timer: "timer",
14150
14152
  duration: "duration",
14153
+ // legacy: no longer produced by the parser (>= 8.41.1), accepted as generator input
14151
14154
  color: "color",
14155
+ // legacy: no longer produced by the parser (>= 8.41.1, now textStyle), accepted as generator input
14156
+ textStyle: "textStyle",
14152
14157
  colorPicker: "colorPicker",
14153
14158
  comment: "comment"
14154
14159
  };
@@ -15703,6 +15708,7 @@ var INLINE_MARK_TYPES = [
15703
15708
  TextMarkType.del,
15704
15709
  TextMarkType.underline,
15705
15710
  TextMarkType.doubleUnderline,
15711
+ TextMarkType.smallcaps,
15706
15712
  TextMarkType.circle,
15707
15713
  TextMarkType.languageEmRed,
15708
15714
  TextMarkType.languageEmOrange,
@@ -15733,11 +15739,24 @@ var INLINE_MARK_TYPES = [
15733
15739
  TextMarkType.var,
15734
15740
  TextMarkType.code,
15735
15741
  TextMarkType.timer,
15736
- TextMarkType.duration,
15737
15742
  TextMarkType.color,
15743
+ // legacy input, written as color: (same as textStyle)
15744
+ TextMarkType.textStyle,
15738
15745
  TextMarkType.colorPicker,
15739
15746
  TextMarkType.comment
15740
15747
  ];
15748
+ var HIGHLIGHT_COLORS = [
15749
+ "orange",
15750
+ "yellow",
15751
+ "green",
15752
+ "blue",
15753
+ "purple",
15754
+ "pink",
15755
+ "brown",
15756
+ "white",
15757
+ "black",
15758
+ "gray"
15759
+ ];
15741
15760
  var INDENTATION_REGEX = new RegExp(/(\n|\r\n)/, "g");
15742
15761
  var LINK_REGEX = new RegExp(/https?:\/\/|mailto:(.*)/, "g");
15743
15762
  var LINK_BREAKSCAPE_REGEX = new RegExp(/\]/, "g");
@@ -16294,14 +16313,16 @@ var TextGenerator = class _TextGenerator extends AstWalkerGenerator {
16294
16313
  this.writeMarkTextWrapper(INLINE_MARK);
16295
16314
  return;
16296
16315
  }
16297
- const singleMark = node.marks.length === 1 && forceSingleMark;
16298
- const markStartEnd = node.marks.reduce(
16316
+ const marks = this.getWritableMarks(node.marks);
16317
+ if (marks.length === 0) return;
16318
+ const singleMark = marks.length === 1 && forceSingleMark;
16319
+ const markStartEnd = marks.reduce(
16299
16320
  (acc, mark) => {
16300
16321
  if (acc) return acc;
16301
- if (STANDARD_MARK_TYPES.indexOf(mark.type) !== -1) {
16322
+ if (this.isStandardMark(mark)) {
16302
16323
  if (singleMark) return STANDARD_MARKS[mark.type];
16303
16324
  return INLINE_MARK;
16304
- } else if (INLINE_MARK_TYPES.indexOf(mark.type) !== -1) {
16325
+ } else if (this.isInlineMark(mark)) {
16305
16326
  return INLINE_MARK;
16306
16327
  } else ;
16307
16328
  return acc;
@@ -16315,8 +16336,8 @@ var TextGenerator = class _TextGenerator extends AstWalkerGenerator {
16315
16336
  this.writeMarkTextWrapper(markStartEnd);
16316
16337
  }
16317
16338
  if (stage == Stage.between) {
16318
- for (const mark of node.marks) {
16319
- if (STANDARD_MARK_TYPES.indexOf(mark.type) !== -1) {
16339
+ for (const mark of marks) {
16340
+ if (this.isStandardMark(mark)) {
16320
16341
  if (!singleMark) {
16321
16342
  this.writeInlineMarkStartEnd();
16322
16343
  this.writeInlineMark(mark);
@@ -16345,7 +16366,7 @@ var TextGenerator = class _TextGenerator extends AstWalkerGenerator {
16345
16366
  } else if (TextMarkType.symbol === mark.type) {
16346
16367
  this.writeInlineMarkStartEnd();
16347
16368
  this.writeSymbolMark(mark);
16348
- } else if (INLINE_MARK_TYPES.indexOf(mark.type) !== -1) {
16369
+ } else if (this.isInlineMark(mark)) {
16349
16370
  this.writeInlineMarkStartEnd();
16350
16371
  this.writeInlineMark(mark);
16351
16372
  } else ;
@@ -16353,12 +16374,12 @@ var TextGenerator = class _TextGenerator extends AstWalkerGenerator {
16353
16374
  }
16354
16375
  if (stage == Stage.exit) {
16355
16376
  let inlineMarkWritten = false;
16356
- for (const mark of node.marks) {
16357
- if (STANDARD_MARK_TYPES.indexOf(mark.type) !== -1) {
16377
+ for (const mark of marks) {
16378
+ if (this.isStandardMark(mark)) {
16358
16379
  if (!singleMark) {
16359
16380
  inlineMarkWritten = true;
16360
16381
  }
16361
- } else if (TextMarkType.comment === mark.type || TextMarkType.link === mark.type || TextMarkType.ref === mark.type || TextMarkType.xref === mark.type || TextMarkType.footnote === mark.type || TextMarkType.footnoteStar === mark.type || INLINE_MARK_TYPES.indexOf(mark.type) !== -1) {
16382
+ } else if (TextMarkType.comment === mark.type || TextMarkType.link === mark.type || TextMarkType.ref === mark.type || TextMarkType.xref === mark.type || TextMarkType.footnote === mark.type || TextMarkType.footnoteStar === mark.type || this.isInlineMark(mark)) {
16362
16383
  inlineMarkWritten = true;
16363
16384
  } else ;
16364
16385
  }
@@ -16438,8 +16459,15 @@ var TextGenerator = class _TextGenerator extends AstWalkerGenerator {
16438
16459
  if (node.attrs == null || !node.attrs.src) return;
16439
16460
  const attrs = node.attrs;
16440
16461
  const inlineImage = node.type === TextNodeType.imageInline;
16462
+ let ignoreAttributes;
16463
+ if (inlineImage) {
16464
+ ignoreAttributes = /* @__PURE__ */ new Set(["alt", "zoomDisabled", "title"]);
16465
+ const a = attrs;
16466
+ if (a.alignmentVertical === "top") ignoreAttributes.add("alignmentVertical");
16467
+ if (a.size === "line-height") ignoreAttributes.add("size");
16468
+ }
16441
16469
  const mediaAttrs = this.getMediaAttrs(inlineImage ? "imageInline" : "image", attrs, {
16442
- ignoreAttributes: inlineImage ? /* @__PURE__ */ new Set(["alt", "zoomDisabled", "title"]) : void 0
16470
+ ignoreAttributes
16443
16471
  });
16444
16472
  let s = "";
16445
16473
  if (inlineImage) {
@@ -16469,16 +16497,87 @@ var TextGenerator = class _TextGenerator extends AstWalkerGenerator {
16469
16497
  if (s) this.write(s);
16470
16498
  }
16471
16499
  writeInlineMark(mark) {
16472
- let s = `${mark.type}`;
16473
- if (mark.attrs) {
16474
- for (const [k, v] of Object.entries(mark.attrs)) {
16475
- if (k === "language" && v !== "plain text" || k === "color" || k === "propertyRef" || k === "name" || k === "duration") {
16476
- s = `${s}:${v}`;
16500
+ const attrs = mark.attrs ?? {};
16501
+ let s;
16502
+ switch (mark.type) {
16503
+ case TextMarkType.textStyle:
16504
+ case TextMarkType.color:
16505
+ s = `color:${attrs.color ?? ""}`;
16506
+ break;
16507
+ case TextMarkType.timer:
16508
+ s = attrs.name ? `timer:${attrs.name}` : "timer";
16509
+ s += `|duration:${attrs.duration ?? ""}`;
16510
+ break;
16511
+ case TextMarkType.highlight:
16512
+ case TextMarkType.userHighlight:
16513
+ s = attrs.color ? `${mark.type}|color:${attrs.color}` : `${mark.type}`;
16514
+ break;
16515
+ default: {
16516
+ s = `${mark.type}`;
16517
+ for (const [k, v] of Object.entries(attrs)) {
16518
+ if (k === "language" && v !== "plain text" || k === "propertyRef" || k === "name") {
16519
+ s = `${s}:${v}`;
16520
+ }
16477
16521
  }
16478
16522
  }
16479
16523
  }
16480
16524
  this.write(s);
16481
16525
  }
16526
+ /**
16527
+ * Resolve the marks of a text node into the marks that will actually be written.
16528
+ *
16529
+ * - Merges a legacy standalone 'duration' mark into its sibling 'timer' mark.
16530
+ * - Drops marks the current grammar cannot express (standalone 'duration', 'timer'
16531
+ * without a duration).
16532
+ * - Moves a 'textStyle'/'color' mark before a preceding bare 'highlight'/'userHighlight'
16533
+ * mark when its color is a valid highlight color; written in the original order the
16534
+ * output would re-parse as a highlight-with-color compound mark and change meaning.
16535
+ */
16536
+ getWritableMarks(nodeMarks) {
16537
+ const attrsOf = (m) => m.attrs ?? {};
16538
+ let marks = [...nodeMarks];
16539
+ const timer = marks.find((m) => m.type === TextMarkType.timer);
16540
+ const duration = marks.find((m) => m.type === TextMarkType.duration);
16541
+ if (timer && duration && !attrsOf(timer).duration) {
16542
+ marks = marks.map(
16543
+ (m) => m === timer ? {
16544
+ ...timer,
16545
+ attrs: { ...attrsOf(timer), duration: attrsOf(duration).duration }
16546
+ } : m
16547
+ );
16548
+ }
16549
+ marks = marks.filter((m) => {
16550
+ if (m.type === TextMarkType.duration) return false;
16551
+ if (m.type === TextMarkType.timer) return !!attrsOf(m).duration;
16552
+ return true;
16553
+ });
16554
+ const isBareHighlight = (m) => (m.type === TextMarkType.highlight || m.type === TextMarkType.userHighlight) && !attrsOf(m).color;
16555
+ const isHighlightColorStyle = (m) => (m.type === TextMarkType.textStyle || m.type === TextMarkType.color) && HIGHLIGHT_COLORS.indexOf(attrsOf(m).color) !== -1;
16556
+ for (let i = 0; i < marks.length - 1; i++) {
16557
+ if (isBareHighlight(marks[i]) && isHighlightColorStyle(marks[i + 1])) {
16558
+ const tmp = marks[i];
16559
+ marks[i] = marks[i + 1];
16560
+ marks[i + 1] = tmp;
16561
+ }
16562
+ }
16563
+ return marks;
16564
+ }
16565
+ /**
16566
+ * True if the mark is written using its standard form (e.g. **bold**, !!highlight!!)
16567
+ * when it is the only mark. A highlight mark with a color attribute is excluded - it
16568
+ * can only be expressed using the inline chain form (==text==|highlight|color:x|).
16569
+ */
16570
+ isStandardMark(mark) {
16571
+ if (STANDARD_MARK_TYPES.indexOf(mark.type) === -1) return false;
16572
+ return !(mark.attrs && mark.attrs.color);
16573
+ }
16574
+ /**
16575
+ * True if the mark is written using the inline chain form (==text==|mark|).
16576
+ */
16577
+ isInlineMark(mark) {
16578
+ if (INLINE_MARK_TYPES.indexOf(mark.type) !== -1) return true;
16579
+ return mark.type === TextMarkType.highlight && !!(mark.attrs && mark.attrs.color);
16580
+ }
16482
16581
  writeCommentMark(mark) {
16483
16582
  const comment = mark.comment || "";
16484
16583
  const s = `#${comment}`;
@@ -16683,7 +16782,7 @@ var TextGenerator = class _TextGenerator extends AstWalkerGenerator {
16683
16782
  };
16684
16783
 
16685
16784
  // src/generated/parser/text/text-peggy-parser.js
16686
- var VERSION = "8.37.3";
16785
+ var VERSION = "8.41.1";
16687
16786
  function unbreakscape(str) {
16688
16787
  if (typeof str !== "string") return null;
16689
16788
  return instance3.unbreakscape(str);
@@ -16898,87 +16997,88 @@ function peg$parse(input, options) {
16898
16997
  const peg$c60 = "var:";
16899
16998
  const peg$c61 = "code:";
16900
16999
  const peg$c62 = "timer";
16901
- const peg$c63 = "timer:";
16902
- const peg$c64 = "duration:";
16903
- const peg$c65 = "P";
16904
- const peg$c66 = "color:";
16905
- const peg$c67 = "colorPicker:";
16906
- const peg$c68 = "|\u25BA";
16907
- const peg$c69 = "bold";
16908
- const peg$c70 = "italic";
16909
- const peg$c71 = "light";
16910
- const peg$c72 = "highlightOrange";
16911
- const peg$c73 = "highlightYellow";
16912
- const peg$c74 = "highlightGreen";
16913
- const peg$c75 = "highlightBlue";
16914
- const peg$c76 = "highlightPurple";
16915
- const peg$c77 = "highlightPink";
16916
- const peg$c78 = "highlightBrown";
16917
- const peg$c79 = "highlightBlack";
16918
- const peg$c80 = "highlightWhite";
16919
- const peg$c81 = "highlightGray";
16920
- const peg$c82 = "highlight";
16921
- const peg$c83 = "strike";
16922
- const peg$c84 = "subscript";
16923
- const peg$c85 = "superscript";
16924
- const peg$c86 = "ins";
16925
- const peg$c87 = "del";
16926
- const peg$c88 = "underline";
16927
- const peg$c89 = "doubleUnderline";
16928
- const peg$c90 = "circle";
16929
- const peg$c91 = "languageEmRed";
16930
- const peg$c92 = "languageEmOrange";
16931
- const peg$c93 = "languageEmYellow";
16932
- const peg$c94 = "languageEmGreen";
16933
- const peg$c95 = "languageEmBlue";
16934
- const peg$c96 = "languageEmPurple";
16935
- const peg$c97 = "languageEmPink";
16936
- const peg$c98 = "languageEmBrown";
16937
- const peg$c99 = "languageEmBlack";
16938
- const peg$c100 = "languageEmWhite";
16939
- const peg$c101 = "languageEmGray";
16940
- const peg$c102 = "languageEm";
16941
- const peg$c103 = "userUnderline";
16942
- const peg$c104 = "userDoubleUnderline";
16943
- const peg$c105 = "userStrike";
16944
- const peg$c106 = "userCircle";
16945
- const peg$c107 = "userHighlight";
16946
- const peg$c108 = "notranslate";
16947
- const peg$c109 = "aqua";
16948
- const peg$c110 = "black";
16949
- const peg$c111 = "blue";
16950
- const peg$c112 = "brown";
16951
- const peg$c113 = "fuchsia";
16952
- const peg$c114 = "lightgrey";
16953
- const peg$c115 = "gray";
16954
- const peg$c116 = "darkgray";
16955
- const peg$c117 = "green";
16956
- const peg$c118 = "lime";
16957
- const peg$c119 = "magenta";
16958
- const peg$c120 = "maroon";
16959
- const peg$c121 = "navy";
16960
- const peg$c122 = "olive";
16961
- const peg$c123 = "orange";
16962
- const peg$c124 = "pink";
16963
- const peg$c125 = "purple";
16964
- const peg$c126 = "red";
16965
- const peg$c127 = "silver";
16966
- const peg$c128 = "teal";
16967
- const peg$c129 = "violet";
16968
- const peg$c130 = "white";
16969
- const peg$c131 = "yellow";
16970
- const peg$c132 = "*";
16971
- const peg$c133 = "_";
16972
- const peg$c134 = "`";
16973
- const peg$c135 = "!";
16974
- const peg$c136 = "[!";
16975
- const peg$c137 = "]";
16976
- const peg$c138 = "\n";
16977
- const peg$c139 = "\r\n";
16978
- const peg$c140 = "http";
16979
- const peg$c141 = "s";
16980
- const peg$c142 = "://";
16981
- const peg$c143 = "mailto:";
17000
+ const peg$c63 = "duration:";
17001
+ const peg$c64 = "P";
17002
+ const peg$c65 = "timer:";
17003
+ const peg$c66 = "highlight";
17004
+ const peg$c67 = "color:";
17005
+ const peg$c68 = "userHighlight";
17006
+ const peg$c69 = "colorPicker:";
17007
+ const peg$c70 = "|\u25BA";
17008
+ const peg$c71 = "bold";
17009
+ const peg$c72 = "italic";
17010
+ const peg$c73 = "light";
17011
+ const peg$c74 = "highlightOrange";
17012
+ const peg$c75 = "highlightYellow";
17013
+ const peg$c76 = "highlightGreen";
17014
+ const peg$c77 = "highlightBlue";
17015
+ const peg$c78 = "highlightPurple";
17016
+ const peg$c79 = "highlightPink";
17017
+ const peg$c80 = "highlightBrown";
17018
+ const peg$c81 = "highlightBlack";
17019
+ const peg$c82 = "highlightWhite";
17020
+ const peg$c83 = "highlightGray";
17021
+ const peg$c84 = "strike";
17022
+ const peg$c85 = "subscript";
17023
+ const peg$c86 = "superscript";
17024
+ const peg$c87 = "ins";
17025
+ const peg$c88 = "del";
17026
+ const peg$c89 = "underline";
17027
+ const peg$c90 = "doubleUnderline";
17028
+ const peg$c91 = "smallcaps";
17029
+ const peg$c92 = "circle";
17030
+ const peg$c93 = "languageEmRed";
17031
+ const peg$c94 = "languageEmOrange";
17032
+ const peg$c95 = "languageEmYellow";
17033
+ const peg$c96 = "languageEmGreen";
17034
+ const peg$c97 = "languageEmBlue";
17035
+ const peg$c98 = "languageEmPurple";
17036
+ const peg$c99 = "languageEmPink";
17037
+ const peg$c100 = "languageEmBrown";
17038
+ const peg$c101 = "languageEmBlack";
17039
+ const peg$c102 = "languageEmWhite";
17040
+ const peg$c103 = "languageEmGray";
17041
+ const peg$c104 = "languageEm";
17042
+ const peg$c105 = "userUnderline";
17043
+ const peg$c106 = "userDoubleUnderline";
17044
+ const peg$c107 = "userStrike";
17045
+ const peg$c108 = "userCircle";
17046
+ const peg$c109 = "notranslate";
17047
+ const peg$c110 = "aqua";
17048
+ const peg$c111 = "black";
17049
+ const peg$c112 = "blue";
17050
+ const peg$c113 = "brown";
17051
+ const peg$c114 = "fuchsia";
17052
+ const peg$c115 = "lightgrey";
17053
+ const peg$c116 = "gray";
17054
+ const peg$c117 = "darkgray";
17055
+ const peg$c118 = "green";
17056
+ const peg$c119 = "lime";
17057
+ const peg$c120 = "magenta";
17058
+ const peg$c121 = "maroon";
17059
+ const peg$c122 = "navy";
17060
+ const peg$c123 = "olive";
17061
+ const peg$c124 = "orange";
17062
+ const peg$c125 = "pink";
17063
+ const peg$c126 = "purple";
17064
+ const peg$c127 = "red";
17065
+ const peg$c128 = "silver";
17066
+ const peg$c129 = "teal";
17067
+ const peg$c130 = "violet";
17068
+ const peg$c131 = "white";
17069
+ const peg$c132 = "yellow";
17070
+ const peg$c133 = "*";
17071
+ const peg$c134 = "_";
17072
+ const peg$c135 = "`";
17073
+ const peg$c136 = "!";
17074
+ const peg$c137 = "[!";
17075
+ const peg$c138 = "]";
17076
+ const peg$c139 = "\n";
17077
+ const peg$c140 = "\r\n";
17078
+ const peg$c141 = "http";
17079
+ const peg$c142 = "s";
17080
+ const peg$c143 = "://";
17081
+ const peg$c144 = "mailto:";
16982
17082
  const peg$r0 = /^[ \t]/;
16983
17083
  const peg$r1 = /^[0-9]/;
16984
17084
  const peg$r2 = /^[\r\u2028-\u2029]/;
@@ -17051,91 +17151,92 @@ function peg$parse(input, options) {
17051
17151
  const peg$e64 = peg$literalExpectation("var:", false);
17052
17152
  const peg$e65 = peg$literalExpectation("code:", false);
17053
17153
  const peg$e66 = peg$literalExpectation("timer", false);
17054
- const peg$e67 = peg$literalExpectation("timer:", false);
17055
- const peg$e68 = peg$literalExpectation("duration:", false);
17056
- const peg$e69 = peg$literalExpectation("P", false);
17057
- const peg$e70 = peg$literalExpectation("color:", false);
17058
- const peg$e71 = peg$literalExpectation("colorPicker:", false);
17059
- const peg$e72 = peg$literalExpectation("|\u25BA", false);
17060
- const peg$e73 = peg$literalExpectation("bold", false);
17061
- const peg$e74 = peg$literalExpectation("italic", false);
17062
- const peg$e75 = peg$literalExpectation("light", false);
17063
- const peg$e76 = peg$literalExpectation("highlightOrange", false);
17064
- const peg$e77 = peg$literalExpectation("highlightYellow", false);
17065
- const peg$e78 = peg$literalExpectation("highlightGreen", false);
17066
- const peg$e79 = peg$literalExpectation("highlightBlue", false);
17067
- const peg$e80 = peg$literalExpectation("highlightPurple", false);
17068
- const peg$e81 = peg$literalExpectation("highlightPink", false);
17069
- const peg$e82 = peg$literalExpectation("highlightBrown", false);
17070
- const peg$e83 = peg$literalExpectation("highlightBlack", false);
17071
- const peg$e84 = peg$literalExpectation("highlightWhite", false);
17072
- const peg$e85 = peg$literalExpectation("highlightGray", false);
17073
- const peg$e86 = peg$literalExpectation("highlight", false);
17074
- const peg$e87 = peg$literalExpectation("strike", false);
17075
- const peg$e88 = peg$literalExpectation("subscript", false);
17076
- const peg$e89 = peg$literalExpectation("superscript", false);
17077
- const peg$e90 = peg$literalExpectation("ins", false);
17078
- const peg$e91 = peg$literalExpectation("del", false);
17079
- const peg$e92 = peg$literalExpectation("underline", false);
17080
- const peg$e93 = peg$literalExpectation("doubleUnderline", false);
17081
- const peg$e94 = peg$literalExpectation("circle", false);
17082
- const peg$e95 = peg$literalExpectation("languageEmRed", false);
17083
- const peg$e96 = peg$literalExpectation("languageEmOrange", false);
17084
- const peg$e97 = peg$literalExpectation("languageEmYellow", false);
17085
- const peg$e98 = peg$literalExpectation("languageEmGreen", false);
17086
- const peg$e99 = peg$literalExpectation("languageEmBlue", false);
17087
- const peg$e100 = peg$literalExpectation("languageEmPurple", false);
17088
- const peg$e101 = peg$literalExpectation("languageEmPink", false);
17089
- const peg$e102 = peg$literalExpectation("languageEmBrown", false);
17090
- const peg$e103 = peg$literalExpectation("languageEmBlack", false);
17091
- const peg$e104 = peg$literalExpectation("languageEmWhite", false);
17092
- const peg$e105 = peg$literalExpectation("languageEmGray", false);
17093
- const peg$e106 = peg$literalExpectation("languageEm", false);
17094
- const peg$e107 = peg$literalExpectation("userUnderline", false);
17095
- const peg$e108 = peg$literalExpectation("userDoubleUnderline", false);
17096
- const peg$e109 = peg$literalExpectation("userStrike", false);
17097
- const peg$e110 = peg$literalExpectation("userCircle", false);
17098
- const peg$e111 = peg$literalExpectation("userHighlight", false);
17099
- const peg$e112 = peg$literalExpectation("notranslate", false);
17100
- const peg$e113 = peg$literalExpectation("aqua", false);
17101
- const peg$e114 = peg$literalExpectation("black", false);
17102
- const peg$e115 = peg$literalExpectation("blue", false);
17103
- const peg$e116 = peg$literalExpectation("brown", false);
17104
- const peg$e117 = peg$literalExpectation("fuchsia", false);
17105
- const peg$e118 = peg$literalExpectation("lightgrey", false);
17106
- const peg$e119 = peg$literalExpectation("gray", false);
17107
- const peg$e120 = peg$literalExpectation("darkgray", false);
17108
- const peg$e121 = peg$literalExpectation("green", false);
17109
- const peg$e122 = peg$literalExpectation("lime", false);
17110
- const peg$e123 = peg$literalExpectation("magenta", false);
17111
- const peg$e124 = peg$literalExpectation("maroon", false);
17112
- const peg$e125 = peg$literalExpectation("navy", false);
17113
- const peg$e126 = peg$literalExpectation("olive", false);
17114
- const peg$e127 = peg$literalExpectation("orange", false);
17115
- const peg$e128 = peg$literalExpectation("pink", false);
17116
- const peg$e129 = peg$literalExpectation("purple", false);
17117
- const peg$e130 = peg$literalExpectation("red", false);
17118
- const peg$e131 = peg$literalExpectation("silver", false);
17119
- const peg$e132 = peg$literalExpectation("teal", false);
17120
- const peg$e133 = peg$literalExpectation("violet", false);
17121
- const peg$e134 = peg$literalExpectation("white", false);
17122
- const peg$e135 = peg$literalExpectation("yellow", false);
17123
- const peg$e136 = peg$literalExpectation("*", false);
17124
- const peg$e137 = peg$literalExpectation("_", false);
17125
- const peg$e138 = peg$literalExpectation("`", false);
17126
- const peg$e139 = peg$literalExpectation("!", false);
17127
- const peg$e140 = peg$literalExpectation("[!", false);
17128
- const peg$e141 = peg$literalExpectation("]", false);
17129
- const peg$e142 = peg$otherExpectation("Line Terminator");
17130
- const peg$e143 = peg$literalExpectation("\n", false);
17131
- const peg$e144 = peg$literalExpectation("\r\n", false);
17132
- const peg$e145 = peg$classExpectation(["\r", ["\u2028", "\u2029"]], false, false, false);
17133
- const peg$e146 = peg$classExpectation(["\n", "\r", "\u2028", "\u2029"], true, false, false);
17134
- const peg$e147 = peg$literalExpectation("http", false);
17135
- const peg$e148 = peg$literalExpectation("s", false);
17136
- const peg$e149 = peg$literalExpectation("://", false);
17137
- const peg$e150 = peg$literalExpectation("mailto:", false);
17138
- const peg$e151 = peg$classExpectation(["!", ["#", ";"], "=", ["?", "["], ["]", "_"], ["a", "{"], ["}", "~"]], false, false, false);
17154
+ const peg$e67 = peg$literalExpectation("duration:", false);
17155
+ const peg$e68 = peg$literalExpectation("P", false);
17156
+ const peg$e69 = peg$literalExpectation("timer:", false);
17157
+ const peg$e70 = peg$literalExpectation("highlight", false);
17158
+ const peg$e71 = peg$literalExpectation("color:", false);
17159
+ const peg$e72 = peg$literalExpectation("userHighlight", false);
17160
+ const peg$e73 = peg$literalExpectation("colorPicker:", false);
17161
+ const peg$e74 = peg$literalExpectation("|\u25BA", false);
17162
+ const peg$e75 = peg$literalExpectation("bold", false);
17163
+ const peg$e76 = peg$literalExpectation("italic", false);
17164
+ const peg$e77 = peg$literalExpectation("light", false);
17165
+ const peg$e78 = peg$literalExpectation("highlightOrange", false);
17166
+ const peg$e79 = peg$literalExpectation("highlightYellow", false);
17167
+ const peg$e80 = peg$literalExpectation("highlightGreen", false);
17168
+ const peg$e81 = peg$literalExpectation("highlightBlue", false);
17169
+ const peg$e82 = peg$literalExpectation("highlightPurple", false);
17170
+ const peg$e83 = peg$literalExpectation("highlightPink", false);
17171
+ const peg$e84 = peg$literalExpectation("highlightBrown", false);
17172
+ const peg$e85 = peg$literalExpectation("highlightBlack", false);
17173
+ const peg$e86 = peg$literalExpectation("highlightWhite", false);
17174
+ const peg$e87 = peg$literalExpectation("highlightGray", false);
17175
+ const peg$e88 = peg$literalExpectation("strike", false);
17176
+ const peg$e89 = peg$literalExpectation("subscript", false);
17177
+ const peg$e90 = peg$literalExpectation("superscript", false);
17178
+ const peg$e91 = peg$literalExpectation("ins", false);
17179
+ const peg$e92 = peg$literalExpectation("del", false);
17180
+ const peg$e93 = peg$literalExpectation("underline", false);
17181
+ const peg$e94 = peg$literalExpectation("doubleUnderline", false);
17182
+ const peg$e95 = peg$literalExpectation("smallcaps", false);
17183
+ const peg$e96 = peg$literalExpectation("circle", false);
17184
+ const peg$e97 = peg$literalExpectation("languageEmRed", false);
17185
+ const peg$e98 = peg$literalExpectation("languageEmOrange", false);
17186
+ const peg$e99 = peg$literalExpectation("languageEmYellow", false);
17187
+ const peg$e100 = peg$literalExpectation("languageEmGreen", false);
17188
+ const peg$e101 = peg$literalExpectation("languageEmBlue", false);
17189
+ const peg$e102 = peg$literalExpectation("languageEmPurple", false);
17190
+ const peg$e103 = peg$literalExpectation("languageEmPink", false);
17191
+ const peg$e104 = peg$literalExpectation("languageEmBrown", false);
17192
+ const peg$e105 = peg$literalExpectation("languageEmBlack", false);
17193
+ const peg$e106 = peg$literalExpectation("languageEmWhite", false);
17194
+ const peg$e107 = peg$literalExpectation("languageEmGray", false);
17195
+ const peg$e108 = peg$literalExpectation("languageEm", false);
17196
+ const peg$e109 = peg$literalExpectation("userUnderline", false);
17197
+ const peg$e110 = peg$literalExpectation("userDoubleUnderline", false);
17198
+ const peg$e111 = peg$literalExpectation("userStrike", false);
17199
+ const peg$e112 = peg$literalExpectation("userCircle", false);
17200
+ const peg$e113 = peg$literalExpectation("notranslate", false);
17201
+ const peg$e114 = peg$literalExpectation("aqua", false);
17202
+ const peg$e115 = peg$literalExpectation("black", false);
17203
+ const peg$e116 = peg$literalExpectation("blue", false);
17204
+ const peg$e117 = peg$literalExpectation("brown", false);
17205
+ const peg$e118 = peg$literalExpectation("fuchsia", false);
17206
+ const peg$e119 = peg$literalExpectation("lightgrey", false);
17207
+ const peg$e120 = peg$literalExpectation("gray", false);
17208
+ const peg$e121 = peg$literalExpectation("darkgray", false);
17209
+ const peg$e122 = peg$literalExpectation("green", false);
17210
+ const peg$e123 = peg$literalExpectation("lime", false);
17211
+ const peg$e124 = peg$literalExpectation("magenta", false);
17212
+ const peg$e125 = peg$literalExpectation("maroon", false);
17213
+ const peg$e126 = peg$literalExpectation("navy", false);
17214
+ const peg$e127 = peg$literalExpectation("olive", false);
17215
+ const peg$e128 = peg$literalExpectation("orange", false);
17216
+ const peg$e129 = peg$literalExpectation("pink", false);
17217
+ const peg$e130 = peg$literalExpectation("purple", false);
17218
+ const peg$e131 = peg$literalExpectation("red", false);
17219
+ const peg$e132 = peg$literalExpectation("silver", false);
17220
+ const peg$e133 = peg$literalExpectation("teal", false);
17221
+ const peg$e134 = peg$literalExpectation("violet", false);
17222
+ const peg$e135 = peg$literalExpectation("white", false);
17223
+ const peg$e136 = peg$literalExpectation("yellow", false);
17224
+ const peg$e137 = peg$literalExpectation("*", false);
17225
+ const peg$e138 = peg$literalExpectation("_", false);
17226
+ const peg$e139 = peg$literalExpectation("`", false);
17227
+ const peg$e140 = peg$literalExpectation("!", false);
17228
+ const peg$e141 = peg$literalExpectation("[!", false);
17229
+ const peg$e142 = peg$literalExpectation("]", false);
17230
+ const peg$e143 = peg$otherExpectation("Line Terminator");
17231
+ const peg$e144 = peg$literalExpectation("\n", false);
17232
+ const peg$e145 = peg$literalExpectation("\r\n", false);
17233
+ const peg$e146 = peg$classExpectation(["\r", ["\u2028", "\u2029"]], false, false, false);
17234
+ const peg$e147 = peg$classExpectation(["\n", "\r", "\u2028", "\u2029"], true, false, false);
17235
+ const peg$e148 = peg$literalExpectation("http", false);
17236
+ const peg$e149 = peg$literalExpectation("s", false);
17237
+ const peg$e150 = peg$literalExpectation("://", false);
17238
+ const peg$e151 = peg$literalExpectation("mailto:", false);
17239
+ const peg$e152 = peg$classExpectation(["!", ["#", ";"], "=", ["?", "["], ["]", "_"], ["a", "{"], ["}", "~"]], false, false, false);
17139
17240
  function peg$f0() {
17140
17241
  return VERSION;
17141
17242
  }
@@ -17411,7 +17512,7 @@ function peg$parse(input, options) {
17411
17512
  return { attrs: { formula: unbreakscape(t) }, type: "latex" };
17412
17513
  }
17413
17514
  function peg$f57(alt, u, ch) {
17414
- return { attrs: { alt, src: (u.pr + u.t).trim(), ...Object.assign({}, ...ch), zoomDisabled: true }, type: "imageInline" };
17515
+ return { attrs: { alt, src: (u.pr + u.t).trim(), "alignmentVertical": "top", size: "line-height", ...Object.assign({}, ...ch), zoomDisabled: true }, type: "imageInline" };
17415
17516
  }
17416
17517
  function peg$f58(t, marks) {
17417
17518
  if (!marks) marks = [];
@@ -17490,59 +17591,62 @@ function peg$parse(input, options) {
17490
17591
  function peg$f82(lang) {
17491
17592
  return { type: "code", attrs: { language: lang.trim().toLowerCase() } };
17492
17593
  }
17493
- function peg$f83() {
17494
- return { type: "timer", attrs: { name: "" } };
17594
+ function peg$f83(d) {
17595
+ return { type: "timer", attrs: { name: "", duration: d.trim() } };
17495
17596
  }
17496
- function peg$f84(str) {
17497
- return { type: "timer", attrs: { name: str.trim() } };
17597
+ function peg$f84(str, d) {
17598
+ return { type: "timer", attrs: { name: str.trim(), duration: d.trim() } };
17498
17599
  }
17499
- function peg$f85(str) {
17500
- return { type: "duration", attrs: { duration: str } };
17600
+ function peg$f85(color) {
17601
+ return { type: "highlight", attrs: { color } };
17501
17602
  }
17502
17603
  function peg$f86(color) {
17503
- return { type: "color", attrs: { color } };
17604
+ return { type: "userHighlight", attrs: { color } };
17605
+ }
17606
+ function peg$f87(color) {
17607
+ return { type: "textStyle", attrs: { color } };
17504
17608
  }
17505
- function peg$f87(str) {
17609
+ function peg$f88(str) {
17506
17610
  return { type: "colorPicker", attrs: { propertyRef: str.trim() } };
17507
17611
  }
17508
- function peg$f88(style) {
17612
+ function peg$f89(style) {
17509
17613
  return { type: style };
17510
17614
  }
17511
- function peg$f89(str) {
17615
+ function peg$f90(str) {
17512
17616
  return { type: "comment", comment: str };
17513
17617
  }
17514
- function peg$f90(r) {
17618
+ function peg$f91(r) {
17515
17619
  return r.trim();
17516
17620
  }
17517
- function peg$f91(bs) {
17621
+ function peg$f92(bs) {
17518
17622
  return [{ type: "paragraph", content: bs, attrs: {} }];
17519
17623
  }
17520
- function peg$f92(first, more) {
17624
+ function peg$f93(first, more) {
17521
17625
  const cleaned_ = cleanEmptyTextNodes(first ? [first, ...more.flat()] : more.flat());
17522
17626
  return cleaned_;
17523
17627
  }
17524
- function peg$f93() {
17628
+ function peg$f94() {
17525
17629
  return { "type": "hardBreak" };
17526
17630
  }
17527
- function peg$f94(t) {
17631
+ function peg$f95(t) {
17528
17632
  return { text: unbreakscape(t), type: "text" };
17529
17633
  }
17530
- function peg$f95(t) {
17634
+ function peg$f96(t) {
17531
17635
  return { index: +t, type: "bit" };
17532
17636
  }
17533
- function peg$f96(t) {
17637
+ function peg$f97(t) {
17534
17638
  return { marks: [{ type: "bold" }], text: unbreakscape(t), type: "text" };
17535
17639
  }
17536
- function peg$f97(t) {
17640
+ function peg$f98(t) {
17537
17641
  return { marks: [{ type: "italic" }], text: unbreakscape(t), type: "text" };
17538
17642
  }
17539
- function peg$f98(t) {
17643
+ function peg$f99(t) {
17540
17644
  return { marks: [{ type: "light" }], text: unbreakscape(t), type: "text" };
17541
17645
  }
17542
- function peg$f99(t) {
17646
+ function peg$f100(t) {
17543
17647
  return { marks: [{ type: "highlight" }], text: unbreakscape(t), type: "text" };
17544
17648
  }
17545
- function peg$f100(pr, t) {
17649
+ function peg$f101(pr, t) {
17546
17650
  return { pr, t };
17547
17651
  }
17548
17652
  let peg$currPos = options.peg$currPos | 0;
@@ -22299,7 +22403,7 @@ function peg$parse(input, options) {
22299
22403
  return s0;
22300
22404
  }
22301
22405
  function peg$parseAttrChainItem() {
22302
- let s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10;
22406
+ let s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12;
22303
22407
  s0 = peg$currPos;
22304
22408
  if (input.substr(peg$currPos, 5) === peg$c52) {
22305
22409
  s1 = peg$c52;
@@ -23256,7 +23360,109 @@ function peg$parse(input, options) {
23256
23360
  if (s1 !== peg$FAILED) {
23257
23361
  s2 = peg$parseBlockTag();
23258
23362
  if (s2 !== peg$FAILED) {
23259
- s0 = peg$f83();
23363
+ if (input.substr(peg$currPos, 9) === peg$c63) {
23364
+ s3 = peg$c63;
23365
+ peg$currPos += 9;
23366
+ } else {
23367
+ s3 = peg$FAILED;
23368
+ if (peg$silentFails === 0) {
23369
+ peg$fail(peg$e67);
23370
+ }
23371
+ }
23372
+ if (s3 !== peg$FAILED) {
23373
+ s4 = peg$currPos;
23374
+ s5 = peg$currPos;
23375
+ if (input.charCodeAt(peg$currPos) === 80) {
23376
+ s6 = peg$c64;
23377
+ peg$currPos++;
23378
+ } else {
23379
+ s6 = peg$FAILED;
23380
+ if (peg$silentFails === 0) {
23381
+ peg$fail(peg$e68);
23382
+ }
23383
+ }
23384
+ if (s6 !== peg$FAILED) {
23385
+ s7 = peg$currPos;
23386
+ s8 = [];
23387
+ s9 = peg$currPos;
23388
+ s10 = peg$currPos;
23389
+ peg$silentFails++;
23390
+ s11 = peg$parseBlockTag();
23391
+ peg$silentFails--;
23392
+ if (s11 === peg$FAILED) {
23393
+ s10 = void 0;
23394
+ } else {
23395
+ peg$currPos = s10;
23396
+ s10 = peg$FAILED;
23397
+ }
23398
+ if (s10 !== peg$FAILED) {
23399
+ s11 = peg$parsechar();
23400
+ if (s11 !== peg$FAILED) {
23401
+ s10 = [s10, s11];
23402
+ s9 = s10;
23403
+ } else {
23404
+ peg$currPos = s9;
23405
+ s9 = peg$FAILED;
23406
+ }
23407
+ } else {
23408
+ peg$currPos = s9;
23409
+ s9 = peg$FAILED;
23410
+ }
23411
+ while (s9 !== peg$FAILED) {
23412
+ s8.push(s9);
23413
+ s9 = peg$currPos;
23414
+ s10 = peg$currPos;
23415
+ peg$silentFails++;
23416
+ s11 = peg$parseBlockTag();
23417
+ peg$silentFails--;
23418
+ if (s11 === peg$FAILED) {
23419
+ s10 = void 0;
23420
+ } else {
23421
+ peg$currPos = s10;
23422
+ s10 = peg$FAILED;
23423
+ }
23424
+ if (s10 !== peg$FAILED) {
23425
+ s11 = peg$parsechar();
23426
+ if (s11 !== peg$FAILED) {
23427
+ s10 = [s10, s11];
23428
+ s9 = s10;
23429
+ } else {
23430
+ peg$currPos = s9;
23431
+ s9 = peg$FAILED;
23432
+ }
23433
+ } else {
23434
+ peg$currPos = s9;
23435
+ s9 = peg$FAILED;
23436
+ }
23437
+ }
23438
+ s7 = input.substring(s7, peg$currPos);
23439
+ s6 = [s6, s7];
23440
+ s5 = s6;
23441
+ } else {
23442
+ peg$currPos = s5;
23443
+ s5 = peg$FAILED;
23444
+ }
23445
+ if (s5 !== peg$FAILED) {
23446
+ s4 = input.substring(s4, peg$currPos);
23447
+ } else {
23448
+ s4 = s5;
23449
+ }
23450
+ if (s4 !== peg$FAILED) {
23451
+ s5 = peg$parseBlockTag();
23452
+ if (s5 !== peg$FAILED) {
23453
+ s0 = peg$f83(s4);
23454
+ } else {
23455
+ peg$currPos = s0;
23456
+ s0 = peg$FAILED;
23457
+ }
23458
+ } else {
23459
+ peg$currPos = s0;
23460
+ s0 = peg$FAILED;
23461
+ }
23462
+ } else {
23463
+ peg$currPos = s0;
23464
+ s0 = peg$FAILED;
23465
+ }
23260
23466
  } else {
23261
23467
  peg$currPos = s0;
23262
23468
  s0 = peg$FAILED;
@@ -23267,13 +23473,13 @@ function peg$parse(input, options) {
23267
23473
  }
23268
23474
  if (s0 === peg$FAILED) {
23269
23475
  s0 = peg$currPos;
23270
- if (input.substr(peg$currPos, 6) === peg$c63) {
23271
- s1 = peg$c63;
23476
+ if (input.substr(peg$currPos, 6) === peg$c65) {
23477
+ s1 = peg$c65;
23272
23478
  peg$currPos += 6;
23273
23479
  } else {
23274
23480
  s1 = peg$FAILED;
23275
23481
  if (peg$silentFails === 0) {
23276
- peg$fail(peg$e67);
23482
+ peg$fail(peg$e69);
23277
23483
  }
23278
23484
  }
23279
23485
  if (s1 !== peg$FAILED) {
@@ -23333,108 +23539,154 @@ function peg$parse(input, options) {
23333
23539
  s2 = input.substring(s2, peg$currPos);
23334
23540
  s3 = peg$parseBlockTag();
23335
23541
  if (s3 !== peg$FAILED) {
23336
- s0 = peg$f84(s2);
23337
- } else {
23338
- peg$currPos = s0;
23339
- s0 = peg$FAILED;
23340
- }
23341
- } else {
23342
- peg$currPos = s0;
23343
- s0 = peg$FAILED;
23344
- }
23345
- if (s0 === peg$FAILED) {
23346
- s0 = peg$currPos;
23347
- if (input.substr(peg$currPos, 9) === peg$c64) {
23348
- s1 = peg$c64;
23349
- peg$currPos += 9;
23350
- } else {
23351
- s1 = peg$FAILED;
23352
- if (peg$silentFails === 0) {
23353
- peg$fail(peg$e68);
23354
- }
23355
- }
23356
- if (s1 !== peg$FAILED) {
23357
- s2 = peg$currPos;
23358
- s3 = peg$currPos;
23359
- if (input.charCodeAt(peg$currPos) === 80) {
23360
- s4 = peg$c65;
23361
- peg$currPos++;
23542
+ if (input.substr(peg$currPos, 9) === peg$c63) {
23543
+ s4 = peg$c63;
23544
+ peg$currPos += 9;
23362
23545
  } else {
23363
23546
  s4 = peg$FAILED;
23364
23547
  if (peg$silentFails === 0) {
23365
- peg$fail(peg$e69);
23548
+ peg$fail(peg$e67);
23366
23549
  }
23367
23550
  }
23368
23551
  if (s4 !== peg$FAILED) {
23369
23552
  s5 = peg$currPos;
23370
- s6 = [];
23371
- s7 = peg$currPos;
23372
- s8 = peg$currPos;
23373
- peg$silentFails++;
23374
- s9 = peg$parseBlockTag();
23375
- peg$silentFails--;
23376
- if (s9 === peg$FAILED) {
23377
- s8 = void 0;
23553
+ s6 = peg$currPos;
23554
+ if (input.charCodeAt(peg$currPos) === 80) {
23555
+ s7 = peg$c64;
23556
+ peg$currPos++;
23378
23557
  } else {
23379
- peg$currPos = s8;
23380
- s8 = peg$FAILED;
23381
- }
23382
- if (s8 !== peg$FAILED) {
23383
- s9 = peg$parsechar();
23384
- if (s9 !== peg$FAILED) {
23385
- s8 = [s8, s9];
23386
- s7 = s8;
23387
- } else {
23388
- peg$currPos = s7;
23389
- s7 = peg$FAILED;
23390
- }
23391
- } else {
23392
- peg$currPos = s7;
23393
23558
  s7 = peg$FAILED;
23559
+ if (peg$silentFails === 0) {
23560
+ peg$fail(peg$e68);
23561
+ }
23394
23562
  }
23395
- while (s7 !== peg$FAILED) {
23396
- s6.push(s7);
23397
- s7 = peg$currPos;
23563
+ if (s7 !== peg$FAILED) {
23398
23564
  s8 = peg$currPos;
23565
+ s9 = [];
23566
+ s10 = peg$currPos;
23567
+ s11 = peg$currPos;
23399
23568
  peg$silentFails++;
23400
- s9 = peg$parseBlockTag();
23569
+ s12 = peg$parseBlockTag();
23401
23570
  peg$silentFails--;
23402
- if (s9 === peg$FAILED) {
23403
- s8 = void 0;
23571
+ if (s12 === peg$FAILED) {
23572
+ s11 = void 0;
23404
23573
  } else {
23405
- peg$currPos = s8;
23406
- s8 = peg$FAILED;
23574
+ peg$currPos = s11;
23575
+ s11 = peg$FAILED;
23407
23576
  }
23408
- if (s8 !== peg$FAILED) {
23409
- s9 = peg$parsechar();
23410
- if (s9 !== peg$FAILED) {
23411
- s8 = [s8, s9];
23412
- s7 = s8;
23577
+ if (s11 !== peg$FAILED) {
23578
+ s12 = peg$parsechar();
23579
+ if (s12 !== peg$FAILED) {
23580
+ s11 = [s11, s12];
23581
+ s10 = s11;
23413
23582
  } else {
23414
- peg$currPos = s7;
23415
- s7 = peg$FAILED;
23583
+ peg$currPos = s10;
23584
+ s10 = peg$FAILED;
23416
23585
  }
23417
23586
  } else {
23418
- peg$currPos = s7;
23419
- s7 = peg$FAILED;
23587
+ peg$currPos = s10;
23588
+ s10 = peg$FAILED;
23420
23589
  }
23590
+ while (s10 !== peg$FAILED) {
23591
+ s9.push(s10);
23592
+ s10 = peg$currPos;
23593
+ s11 = peg$currPos;
23594
+ peg$silentFails++;
23595
+ s12 = peg$parseBlockTag();
23596
+ peg$silentFails--;
23597
+ if (s12 === peg$FAILED) {
23598
+ s11 = void 0;
23599
+ } else {
23600
+ peg$currPos = s11;
23601
+ s11 = peg$FAILED;
23602
+ }
23603
+ if (s11 !== peg$FAILED) {
23604
+ s12 = peg$parsechar();
23605
+ if (s12 !== peg$FAILED) {
23606
+ s11 = [s11, s12];
23607
+ s10 = s11;
23608
+ } else {
23609
+ peg$currPos = s10;
23610
+ s10 = peg$FAILED;
23611
+ }
23612
+ } else {
23613
+ peg$currPos = s10;
23614
+ s10 = peg$FAILED;
23615
+ }
23616
+ }
23617
+ s8 = input.substring(s8, peg$currPos);
23618
+ s7 = [s7, s8];
23619
+ s6 = s7;
23620
+ } else {
23621
+ peg$currPos = s6;
23622
+ s6 = peg$FAILED;
23623
+ }
23624
+ if (s6 !== peg$FAILED) {
23625
+ s5 = input.substring(s5, peg$currPos);
23626
+ } else {
23627
+ s5 = s6;
23628
+ }
23629
+ if (s5 !== peg$FAILED) {
23630
+ s6 = peg$parseBlockTag();
23631
+ if (s6 !== peg$FAILED) {
23632
+ s0 = peg$f84(s2, s5);
23633
+ } else {
23634
+ peg$currPos = s0;
23635
+ s0 = peg$FAILED;
23636
+ }
23637
+ } else {
23638
+ peg$currPos = s0;
23639
+ s0 = peg$FAILED;
23421
23640
  }
23422
- s5 = input.substring(s5, peg$currPos);
23423
- s4 = [s4, s5];
23424
- s3 = s4;
23425
23641
  } else {
23426
- peg$currPos = s3;
23427
- s3 = peg$FAILED;
23642
+ peg$currPos = s0;
23643
+ s0 = peg$FAILED;
23428
23644
  }
23429
- if (s3 !== peg$FAILED) {
23430
- s2 = input.substring(s2, peg$currPos);
23431
- } else {
23432
- s2 = s3;
23645
+ } else {
23646
+ peg$currPos = s0;
23647
+ s0 = peg$FAILED;
23648
+ }
23649
+ } else {
23650
+ peg$currPos = s0;
23651
+ s0 = peg$FAILED;
23652
+ }
23653
+ if (s0 === peg$FAILED) {
23654
+ s0 = peg$currPos;
23655
+ if (input.substr(peg$currPos, 9) === peg$c66) {
23656
+ s1 = peg$c66;
23657
+ peg$currPos += 9;
23658
+ } else {
23659
+ s1 = peg$FAILED;
23660
+ if (peg$silentFails === 0) {
23661
+ peg$fail(peg$e70);
23433
23662
  }
23663
+ }
23664
+ if (s1 !== peg$FAILED) {
23665
+ s2 = peg$parseBlockTag();
23434
23666
  if (s2 !== peg$FAILED) {
23435
- s3 = peg$parseBlockTag();
23667
+ if (input.substr(peg$currPos, 6) === peg$c67) {
23668
+ s3 = peg$c67;
23669
+ peg$currPos += 6;
23670
+ } else {
23671
+ s3 = peg$FAILED;
23672
+ if (peg$silentFails === 0) {
23673
+ peg$fail(peg$e71);
23674
+ }
23675
+ }
23436
23676
  if (s3 !== peg$FAILED) {
23437
- s0 = peg$f85(s2);
23677
+ s4 = peg$parseHighlightColor();
23678
+ if (s4 !== peg$FAILED) {
23679
+ s5 = peg$parseBlockTag();
23680
+ if (s5 !== peg$FAILED) {
23681
+ s0 = peg$f85(s4);
23682
+ } else {
23683
+ peg$currPos = s0;
23684
+ s0 = peg$FAILED;
23685
+ }
23686
+ } else {
23687
+ peg$currPos = s0;
23688
+ s0 = peg$FAILED;
23689
+ }
23438
23690
  } else {
23439
23691
  peg$currPos = s0;
23440
23692
  s0 = peg$FAILED;
@@ -23449,21 +23701,41 @@ function peg$parse(input, options) {
23449
23701
  }
23450
23702
  if (s0 === peg$FAILED) {
23451
23703
  s0 = peg$currPos;
23452
- if (input.substr(peg$currPos, 6) === peg$c66) {
23453
- s1 = peg$c66;
23454
- peg$currPos += 6;
23704
+ if (input.substr(peg$currPos, 13) === peg$c68) {
23705
+ s1 = peg$c68;
23706
+ peg$currPos += 13;
23455
23707
  } else {
23456
23708
  s1 = peg$FAILED;
23457
23709
  if (peg$silentFails === 0) {
23458
- peg$fail(peg$e70);
23710
+ peg$fail(peg$e72);
23459
23711
  }
23460
23712
  }
23461
23713
  if (s1 !== peg$FAILED) {
23462
- s2 = peg$parseColor();
23714
+ s2 = peg$parseBlockTag();
23463
23715
  if (s2 !== peg$FAILED) {
23464
- s3 = peg$parseBlockTag();
23716
+ if (input.substr(peg$currPos, 6) === peg$c67) {
23717
+ s3 = peg$c67;
23718
+ peg$currPos += 6;
23719
+ } else {
23720
+ s3 = peg$FAILED;
23721
+ if (peg$silentFails === 0) {
23722
+ peg$fail(peg$e71);
23723
+ }
23724
+ }
23465
23725
  if (s3 !== peg$FAILED) {
23466
- s0 = peg$f86(s2);
23726
+ s4 = peg$parseHighlightColor();
23727
+ if (s4 !== peg$FAILED) {
23728
+ s5 = peg$parseBlockTag();
23729
+ if (s5 !== peg$FAILED) {
23730
+ s0 = peg$f86(s4);
23731
+ } else {
23732
+ peg$currPos = s0;
23733
+ s0 = peg$FAILED;
23734
+ }
23735
+ } else {
23736
+ peg$currPos = s0;
23737
+ s0 = peg$FAILED;
23738
+ }
23467
23739
  } else {
23468
23740
  peg$currPos = s0;
23469
23741
  s0 = peg$FAILED;
@@ -23478,9 +23750,9 @@ function peg$parse(input, options) {
23478
23750
  }
23479
23751
  if (s0 === peg$FAILED) {
23480
23752
  s0 = peg$currPos;
23481
- if (input.substr(peg$currPos, 12) === peg$c67) {
23753
+ if (input.substr(peg$currPos, 6) === peg$c67) {
23482
23754
  s1 = peg$c67;
23483
- peg$currPos += 12;
23755
+ peg$currPos += 6;
23484
23756
  } else {
23485
23757
  s1 = peg$FAILED;
23486
23758
  if (peg$silentFails === 0) {
@@ -23488,34 +23760,37 @@ function peg$parse(input, options) {
23488
23760
  }
23489
23761
  }
23490
23762
  if (s1 !== peg$FAILED) {
23491
- s2 = peg$currPos;
23492
- s3 = [];
23493
- s4 = peg$currPos;
23494
- s5 = peg$currPos;
23495
- peg$silentFails++;
23496
- s6 = peg$parseBlockTag();
23497
- peg$silentFails--;
23498
- if (s6 === peg$FAILED) {
23499
- s5 = void 0;
23500
- } else {
23501
- peg$currPos = s5;
23502
- s5 = peg$FAILED;
23503
- }
23504
- if (s5 !== peg$FAILED) {
23505
- s6 = peg$parsechar();
23506
- if (s6 !== peg$FAILED) {
23507
- s5 = [s5, s6];
23508
- s4 = s5;
23763
+ s2 = peg$parseColor();
23764
+ if (s2 !== peg$FAILED) {
23765
+ s3 = peg$parseBlockTag();
23766
+ if (s3 !== peg$FAILED) {
23767
+ s0 = peg$f87(s2);
23509
23768
  } else {
23510
- peg$currPos = s4;
23511
- s4 = peg$FAILED;
23769
+ peg$currPos = s0;
23770
+ s0 = peg$FAILED;
23512
23771
  }
23513
23772
  } else {
23514
- peg$currPos = s4;
23515
- s4 = peg$FAILED;
23773
+ peg$currPos = s0;
23774
+ s0 = peg$FAILED;
23516
23775
  }
23517
- while (s4 !== peg$FAILED) {
23518
- s3.push(s4);
23776
+ } else {
23777
+ peg$currPos = s0;
23778
+ s0 = peg$FAILED;
23779
+ }
23780
+ if (s0 === peg$FAILED) {
23781
+ s0 = peg$currPos;
23782
+ if (input.substr(peg$currPos, 12) === peg$c69) {
23783
+ s1 = peg$c69;
23784
+ peg$currPos += 12;
23785
+ } else {
23786
+ s1 = peg$FAILED;
23787
+ if (peg$silentFails === 0) {
23788
+ peg$fail(peg$e73);
23789
+ }
23790
+ }
23791
+ if (s1 !== peg$FAILED) {
23792
+ s2 = peg$currPos;
23793
+ s3 = [];
23519
23794
  s4 = peg$currPos;
23520
23795
  s5 = peg$currPos;
23521
23796
  peg$silentFails++;
@@ -23540,48 +23815,8 @@ function peg$parse(input, options) {
23540
23815
  peg$currPos = s4;
23541
23816
  s4 = peg$FAILED;
23542
23817
  }
23543
- }
23544
- s2 = input.substring(s2, peg$currPos);
23545
- s3 = peg$parseBlockTag();
23546
- if (s3 !== peg$FAILED) {
23547
- s0 = peg$f87(s2);
23548
- } else {
23549
- peg$currPos = s0;
23550
- s0 = peg$FAILED;
23551
- }
23552
- } else {
23553
- peg$currPos = s0;
23554
- s0 = peg$FAILED;
23555
- }
23556
- if (s0 === peg$FAILED) {
23557
- s0 = peg$currPos;
23558
- s1 = peg$parseAlternativeStyleTags();
23559
- if (s1 !== peg$FAILED) {
23560
- s2 = peg$parseBlockTag();
23561
- if (s2 !== peg$FAILED) {
23562
- s0 = peg$f88(s1);
23563
- } else {
23564
- peg$currPos = s0;
23565
- s0 = peg$FAILED;
23566
- }
23567
- } else {
23568
- peg$currPos = s0;
23569
- s0 = peg$FAILED;
23570
- }
23571
- if (s0 === peg$FAILED) {
23572
- s0 = peg$currPos;
23573
- if (input.charCodeAt(peg$currPos) === 35) {
23574
- s1 = peg$c21;
23575
- peg$currPos++;
23576
- } else {
23577
- s1 = peg$FAILED;
23578
- if (peg$silentFails === 0) {
23579
- peg$fail(peg$e25);
23580
- }
23581
- }
23582
- if (s1 !== peg$FAILED) {
23583
- s2 = peg$currPos;
23584
- s3 = [];
23818
+ while (s4 !== peg$FAILED) {
23819
+ s3.push(s4);
23585
23820
  s4 = peg$currPos;
23586
23821
  s5 = peg$currPos;
23587
23822
  peg$silentFails++;
@@ -23606,8 +23841,48 @@ function peg$parse(input, options) {
23606
23841
  peg$currPos = s4;
23607
23842
  s4 = peg$FAILED;
23608
23843
  }
23609
- while (s4 !== peg$FAILED) {
23610
- s3.push(s4);
23844
+ }
23845
+ s2 = input.substring(s2, peg$currPos);
23846
+ s3 = peg$parseBlockTag();
23847
+ if (s3 !== peg$FAILED) {
23848
+ s0 = peg$f88(s2);
23849
+ } else {
23850
+ peg$currPos = s0;
23851
+ s0 = peg$FAILED;
23852
+ }
23853
+ } else {
23854
+ peg$currPos = s0;
23855
+ s0 = peg$FAILED;
23856
+ }
23857
+ if (s0 === peg$FAILED) {
23858
+ s0 = peg$currPos;
23859
+ s1 = peg$parseAlternativeStyleTags();
23860
+ if (s1 !== peg$FAILED) {
23861
+ s2 = peg$parseBlockTag();
23862
+ if (s2 !== peg$FAILED) {
23863
+ s0 = peg$f89(s1);
23864
+ } else {
23865
+ peg$currPos = s0;
23866
+ s0 = peg$FAILED;
23867
+ }
23868
+ } else {
23869
+ peg$currPos = s0;
23870
+ s0 = peg$FAILED;
23871
+ }
23872
+ if (s0 === peg$FAILED) {
23873
+ s0 = peg$currPos;
23874
+ if (input.charCodeAt(peg$currPos) === 35) {
23875
+ s1 = peg$c21;
23876
+ peg$currPos++;
23877
+ } else {
23878
+ s1 = peg$FAILED;
23879
+ if (peg$silentFails === 0) {
23880
+ peg$fail(peg$e25);
23881
+ }
23882
+ }
23883
+ if (s1 !== peg$FAILED) {
23884
+ s2 = peg$currPos;
23885
+ s3 = [];
23611
23886
  s4 = peg$currPos;
23612
23887
  s5 = peg$currPos;
23613
23888
  peg$silentFails++;
@@ -23632,18 +23907,45 @@ function peg$parse(input, options) {
23632
23907
  peg$currPos = s4;
23633
23908
  s4 = peg$FAILED;
23634
23909
  }
23635
- }
23636
- s2 = input.substring(s2, peg$currPos);
23637
- s3 = peg$parseBlockTag();
23638
- if (s3 !== peg$FAILED) {
23639
- s0 = peg$f89(s2);
23910
+ while (s4 !== peg$FAILED) {
23911
+ s3.push(s4);
23912
+ s4 = peg$currPos;
23913
+ s5 = peg$currPos;
23914
+ peg$silentFails++;
23915
+ s6 = peg$parseBlockTag();
23916
+ peg$silentFails--;
23917
+ if (s6 === peg$FAILED) {
23918
+ s5 = void 0;
23919
+ } else {
23920
+ peg$currPos = s5;
23921
+ s5 = peg$FAILED;
23922
+ }
23923
+ if (s5 !== peg$FAILED) {
23924
+ s6 = peg$parsechar();
23925
+ if (s6 !== peg$FAILED) {
23926
+ s5 = [s5, s6];
23927
+ s4 = s5;
23928
+ } else {
23929
+ peg$currPos = s4;
23930
+ s4 = peg$FAILED;
23931
+ }
23932
+ } else {
23933
+ peg$currPos = s4;
23934
+ s4 = peg$FAILED;
23935
+ }
23936
+ }
23937
+ s2 = input.substring(s2, peg$currPos);
23938
+ s3 = peg$parseBlockTag();
23939
+ if (s3 !== peg$FAILED) {
23940
+ s0 = peg$f90(s2);
23941
+ } else {
23942
+ peg$currPos = s0;
23943
+ s0 = peg$FAILED;
23944
+ }
23640
23945
  } else {
23641
23946
  peg$currPos = s0;
23642
23947
  s0 = peg$FAILED;
23643
23948
  }
23644
- } else {
23645
- peg$currPos = s0;
23646
- s0 = peg$FAILED;
23647
23949
  }
23648
23950
  }
23649
23951
  }
@@ -23677,13 +23979,13 @@ function peg$parse(input, options) {
23677
23979
  function peg$parseRef() {
23678
23980
  let s0, s1, s2, s3, s4, s5, s6;
23679
23981
  s0 = peg$currPos;
23680
- if (input.substr(peg$currPos, 2) === peg$c68) {
23681
- s1 = peg$c68;
23982
+ if (input.substr(peg$currPos, 2) === peg$c70) {
23983
+ s1 = peg$c70;
23682
23984
  peg$currPos += 2;
23683
23985
  } else {
23684
23986
  s1 = peg$FAILED;
23685
23987
  if (peg$silentFails === 0) {
23686
- peg$fail(peg$e72);
23988
+ peg$fail(peg$e74);
23687
23989
  }
23688
23990
  }
23689
23991
  if (s1 !== peg$FAILED) {
@@ -23741,7 +24043,7 @@ function peg$parse(input, options) {
23741
24043
  }
23742
24044
  }
23743
24045
  s2 = input.substring(s2, peg$currPos);
23744
- s0 = peg$f90(s2);
24046
+ s0 = peg$f91(s2);
23745
24047
  } else {
23746
24048
  peg$currPos = s0;
23747
24049
  s0 = peg$FAILED;
@@ -23750,403 +24052,414 @@ function peg$parse(input, options) {
23750
24052
  }
23751
24053
  function peg$parseAlternativeStyleTags() {
23752
24054
  let s0;
23753
- if (input.substr(peg$currPos, 4) === peg$c69) {
23754
- s0 = peg$c69;
24055
+ if (input.substr(peg$currPos, 4) === peg$c71) {
24056
+ s0 = peg$c71;
23755
24057
  peg$currPos += 4;
23756
24058
  } else {
23757
24059
  s0 = peg$FAILED;
23758
24060
  if (peg$silentFails === 0) {
23759
- peg$fail(peg$e73);
24061
+ peg$fail(peg$e75);
23760
24062
  }
23761
24063
  }
23762
24064
  if (s0 === peg$FAILED) {
23763
- if (input.substr(peg$currPos, 6) === peg$c70) {
23764
- s0 = peg$c70;
24065
+ if (input.substr(peg$currPos, 6) === peg$c72) {
24066
+ s0 = peg$c72;
23765
24067
  peg$currPos += 6;
23766
24068
  } else {
23767
24069
  s0 = peg$FAILED;
23768
24070
  if (peg$silentFails === 0) {
23769
- peg$fail(peg$e74);
24071
+ peg$fail(peg$e76);
23770
24072
  }
23771
24073
  }
23772
24074
  if (s0 === peg$FAILED) {
23773
- if (input.substr(peg$currPos, 5) === peg$c71) {
23774
- s0 = peg$c71;
24075
+ if (input.substr(peg$currPos, 5) === peg$c73) {
24076
+ s0 = peg$c73;
23775
24077
  peg$currPos += 5;
23776
24078
  } else {
23777
24079
  s0 = peg$FAILED;
23778
24080
  if (peg$silentFails === 0) {
23779
- peg$fail(peg$e75);
24081
+ peg$fail(peg$e77);
23780
24082
  }
23781
24083
  }
23782
24084
  if (s0 === peg$FAILED) {
23783
- if (input.substr(peg$currPos, 15) === peg$c72) {
23784
- s0 = peg$c72;
24085
+ if (input.substr(peg$currPos, 15) === peg$c74) {
24086
+ s0 = peg$c74;
23785
24087
  peg$currPos += 15;
23786
24088
  } else {
23787
24089
  s0 = peg$FAILED;
23788
24090
  if (peg$silentFails === 0) {
23789
- peg$fail(peg$e76);
24091
+ peg$fail(peg$e78);
23790
24092
  }
23791
24093
  }
23792
24094
  if (s0 === peg$FAILED) {
23793
- if (input.substr(peg$currPos, 15) === peg$c73) {
23794
- s0 = peg$c73;
24095
+ if (input.substr(peg$currPos, 15) === peg$c75) {
24096
+ s0 = peg$c75;
23795
24097
  peg$currPos += 15;
23796
24098
  } else {
23797
24099
  s0 = peg$FAILED;
23798
24100
  if (peg$silentFails === 0) {
23799
- peg$fail(peg$e77);
24101
+ peg$fail(peg$e79);
23800
24102
  }
23801
24103
  }
23802
24104
  if (s0 === peg$FAILED) {
23803
- if (input.substr(peg$currPos, 14) === peg$c74) {
23804
- s0 = peg$c74;
24105
+ if (input.substr(peg$currPos, 14) === peg$c76) {
24106
+ s0 = peg$c76;
23805
24107
  peg$currPos += 14;
23806
24108
  } else {
23807
24109
  s0 = peg$FAILED;
23808
24110
  if (peg$silentFails === 0) {
23809
- peg$fail(peg$e78);
24111
+ peg$fail(peg$e80);
23810
24112
  }
23811
24113
  }
23812
24114
  if (s0 === peg$FAILED) {
23813
- if (input.substr(peg$currPos, 13) === peg$c75) {
23814
- s0 = peg$c75;
24115
+ if (input.substr(peg$currPos, 13) === peg$c77) {
24116
+ s0 = peg$c77;
23815
24117
  peg$currPos += 13;
23816
24118
  } else {
23817
24119
  s0 = peg$FAILED;
23818
24120
  if (peg$silentFails === 0) {
23819
- peg$fail(peg$e79);
24121
+ peg$fail(peg$e81);
23820
24122
  }
23821
24123
  }
23822
24124
  if (s0 === peg$FAILED) {
23823
- if (input.substr(peg$currPos, 15) === peg$c76) {
23824
- s0 = peg$c76;
24125
+ if (input.substr(peg$currPos, 15) === peg$c78) {
24126
+ s0 = peg$c78;
23825
24127
  peg$currPos += 15;
23826
24128
  } else {
23827
24129
  s0 = peg$FAILED;
23828
24130
  if (peg$silentFails === 0) {
23829
- peg$fail(peg$e80);
24131
+ peg$fail(peg$e82);
23830
24132
  }
23831
24133
  }
23832
24134
  if (s0 === peg$FAILED) {
23833
- if (input.substr(peg$currPos, 13) === peg$c77) {
23834
- s0 = peg$c77;
24135
+ if (input.substr(peg$currPos, 13) === peg$c79) {
24136
+ s0 = peg$c79;
23835
24137
  peg$currPos += 13;
23836
24138
  } else {
23837
24139
  s0 = peg$FAILED;
23838
24140
  if (peg$silentFails === 0) {
23839
- peg$fail(peg$e81);
24141
+ peg$fail(peg$e83);
23840
24142
  }
23841
24143
  }
23842
24144
  if (s0 === peg$FAILED) {
23843
- if (input.substr(peg$currPos, 14) === peg$c78) {
23844
- s0 = peg$c78;
24145
+ if (input.substr(peg$currPos, 14) === peg$c80) {
24146
+ s0 = peg$c80;
23845
24147
  peg$currPos += 14;
23846
24148
  } else {
23847
24149
  s0 = peg$FAILED;
23848
24150
  if (peg$silentFails === 0) {
23849
- peg$fail(peg$e82);
24151
+ peg$fail(peg$e84);
23850
24152
  }
23851
24153
  }
23852
24154
  if (s0 === peg$FAILED) {
23853
- if (input.substr(peg$currPos, 14) === peg$c79) {
23854
- s0 = peg$c79;
24155
+ if (input.substr(peg$currPos, 14) === peg$c81) {
24156
+ s0 = peg$c81;
23855
24157
  peg$currPos += 14;
23856
24158
  } else {
23857
24159
  s0 = peg$FAILED;
23858
24160
  if (peg$silentFails === 0) {
23859
- peg$fail(peg$e83);
24161
+ peg$fail(peg$e85);
23860
24162
  }
23861
24163
  }
23862
24164
  if (s0 === peg$FAILED) {
23863
- if (input.substr(peg$currPos, 14) === peg$c80) {
23864
- s0 = peg$c80;
24165
+ if (input.substr(peg$currPos, 14) === peg$c82) {
24166
+ s0 = peg$c82;
23865
24167
  peg$currPos += 14;
23866
24168
  } else {
23867
24169
  s0 = peg$FAILED;
23868
24170
  if (peg$silentFails === 0) {
23869
- peg$fail(peg$e84);
24171
+ peg$fail(peg$e86);
23870
24172
  }
23871
24173
  }
23872
24174
  if (s0 === peg$FAILED) {
23873
- if (input.substr(peg$currPos, 13) === peg$c81) {
23874
- s0 = peg$c81;
24175
+ if (input.substr(peg$currPos, 13) === peg$c83) {
24176
+ s0 = peg$c83;
23875
24177
  peg$currPos += 13;
23876
24178
  } else {
23877
24179
  s0 = peg$FAILED;
23878
24180
  if (peg$silentFails === 0) {
23879
- peg$fail(peg$e85);
24181
+ peg$fail(peg$e87);
23880
24182
  }
23881
24183
  }
23882
24184
  if (s0 === peg$FAILED) {
23883
- if (input.substr(peg$currPos, 9) === peg$c82) {
23884
- s0 = peg$c82;
24185
+ if (input.substr(peg$currPos, 9) === peg$c66) {
24186
+ s0 = peg$c66;
23885
24187
  peg$currPos += 9;
23886
24188
  } else {
23887
24189
  s0 = peg$FAILED;
23888
24190
  if (peg$silentFails === 0) {
23889
- peg$fail(peg$e86);
24191
+ peg$fail(peg$e70);
23890
24192
  }
23891
24193
  }
23892
24194
  if (s0 === peg$FAILED) {
23893
- if (input.substr(peg$currPos, 6) === peg$c83) {
23894
- s0 = peg$c83;
24195
+ if (input.substr(peg$currPos, 6) === peg$c84) {
24196
+ s0 = peg$c84;
23895
24197
  peg$currPos += 6;
23896
24198
  } else {
23897
24199
  s0 = peg$FAILED;
23898
24200
  if (peg$silentFails === 0) {
23899
- peg$fail(peg$e87);
24201
+ peg$fail(peg$e88);
23900
24202
  }
23901
24203
  }
23902
24204
  if (s0 === peg$FAILED) {
23903
- if (input.substr(peg$currPos, 9) === peg$c84) {
23904
- s0 = peg$c84;
24205
+ if (input.substr(peg$currPos, 9) === peg$c85) {
24206
+ s0 = peg$c85;
23905
24207
  peg$currPos += 9;
23906
24208
  } else {
23907
24209
  s0 = peg$FAILED;
23908
24210
  if (peg$silentFails === 0) {
23909
- peg$fail(peg$e88);
24211
+ peg$fail(peg$e89);
23910
24212
  }
23911
24213
  }
23912
24214
  if (s0 === peg$FAILED) {
23913
- if (input.substr(peg$currPos, 11) === peg$c85) {
23914
- s0 = peg$c85;
24215
+ if (input.substr(peg$currPos, 11) === peg$c86) {
24216
+ s0 = peg$c86;
23915
24217
  peg$currPos += 11;
23916
24218
  } else {
23917
24219
  s0 = peg$FAILED;
23918
24220
  if (peg$silentFails === 0) {
23919
- peg$fail(peg$e89);
24221
+ peg$fail(peg$e90);
23920
24222
  }
23921
24223
  }
23922
24224
  if (s0 === peg$FAILED) {
23923
- if (input.substr(peg$currPos, 3) === peg$c86) {
23924
- s0 = peg$c86;
24225
+ if (input.substr(peg$currPos, 3) === peg$c87) {
24226
+ s0 = peg$c87;
23925
24227
  peg$currPos += 3;
23926
24228
  } else {
23927
24229
  s0 = peg$FAILED;
23928
24230
  if (peg$silentFails === 0) {
23929
- peg$fail(peg$e90);
24231
+ peg$fail(peg$e91);
23930
24232
  }
23931
24233
  }
23932
24234
  if (s0 === peg$FAILED) {
23933
- if (input.substr(peg$currPos, 3) === peg$c87) {
23934
- s0 = peg$c87;
24235
+ if (input.substr(peg$currPos, 3) === peg$c88) {
24236
+ s0 = peg$c88;
23935
24237
  peg$currPos += 3;
23936
24238
  } else {
23937
24239
  s0 = peg$FAILED;
23938
24240
  if (peg$silentFails === 0) {
23939
- peg$fail(peg$e91);
24241
+ peg$fail(peg$e92);
23940
24242
  }
23941
24243
  }
23942
24244
  if (s0 === peg$FAILED) {
23943
- if (input.substr(peg$currPos, 9) === peg$c88) {
23944
- s0 = peg$c88;
24245
+ if (input.substr(peg$currPos, 9) === peg$c89) {
24246
+ s0 = peg$c89;
23945
24247
  peg$currPos += 9;
23946
24248
  } else {
23947
24249
  s0 = peg$FAILED;
23948
24250
  if (peg$silentFails === 0) {
23949
- peg$fail(peg$e92);
24251
+ peg$fail(peg$e93);
23950
24252
  }
23951
24253
  }
23952
24254
  if (s0 === peg$FAILED) {
23953
- if (input.substr(peg$currPos, 15) === peg$c89) {
23954
- s0 = peg$c89;
24255
+ if (input.substr(peg$currPos, 15) === peg$c90) {
24256
+ s0 = peg$c90;
23955
24257
  peg$currPos += 15;
23956
24258
  } else {
23957
24259
  s0 = peg$FAILED;
23958
24260
  if (peg$silentFails === 0) {
23959
- peg$fail(peg$e93);
24261
+ peg$fail(peg$e94);
23960
24262
  }
23961
24263
  }
23962
24264
  if (s0 === peg$FAILED) {
23963
- if (input.substr(peg$currPos, 6) === peg$c90) {
23964
- s0 = peg$c90;
23965
- peg$currPos += 6;
24265
+ if (input.substr(peg$currPos, 9) === peg$c91) {
24266
+ s0 = peg$c91;
24267
+ peg$currPos += 9;
23966
24268
  } else {
23967
24269
  s0 = peg$FAILED;
23968
24270
  if (peg$silentFails === 0) {
23969
- peg$fail(peg$e94);
24271
+ peg$fail(peg$e95);
23970
24272
  }
23971
24273
  }
23972
24274
  if (s0 === peg$FAILED) {
23973
- if (input.substr(peg$currPos, 13) === peg$c91) {
23974
- s0 = peg$c91;
23975
- peg$currPos += 13;
24275
+ if (input.substr(peg$currPos, 6) === peg$c92) {
24276
+ s0 = peg$c92;
24277
+ peg$currPos += 6;
23976
24278
  } else {
23977
24279
  s0 = peg$FAILED;
23978
24280
  if (peg$silentFails === 0) {
23979
- peg$fail(peg$e95);
24281
+ peg$fail(peg$e96);
23980
24282
  }
23981
24283
  }
23982
24284
  if (s0 === peg$FAILED) {
23983
- if (input.substr(peg$currPos, 16) === peg$c92) {
23984
- s0 = peg$c92;
23985
- peg$currPos += 16;
24285
+ if (input.substr(peg$currPos, 13) === peg$c93) {
24286
+ s0 = peg$c93;
24287
+ peg$currPos += 13;
23986
24288
  } else {
23987
24289
  s0 = peg$FAILED;
23988
24290
  if (peg$silentFails === 0) {
23989
- peg$fail(peg$e96);
24291
+ peg$fail(peg$e97);
23990
24292
  }
23991
24293
  }
23992
24294
  if (s0 === peg$FAILED) {
23993
- if (input.substr(peg$currPos, 16) === peg$c93) {
23994
- s0 = peg$c93;
24295
+ if (input.substr(peg$currPos, 16) === peg$c94) {
24296
+ s0 = peg$c94;
23995
24297
  peg$currPos += 16;
23996
24298
  } else {
23997
24299
  s0 = peg$FAILED;
23998
24300
  if (peg$silentFails === 0) {
23999
- peg$fail(peg$e97);
24301
+ peg$fail(peg$e98);
24000
24302
  }
24001
24303
  }
24002
24304
  if (s0 === peg$FAILED) {
24003
- if (input.substr(peg$currPos, 15) === peg$c94) {
24004
- s0 = peg$c94;
24005
- peg$currPos += 15;
24305
+ if (input.substr(peg$currPos, 16) === peg$c95) {
24306
+ s0 = peg$c95;
24307
+ peg$currPos += 16;
24006
24308
  } else {
24007
24309
  s0 = peg$FAILED;
24008
24310
  if (peg$silentFails === 0) {
24009
- peg$fail(peg$e98);
24311
+ peg$fail(peg$e99);
24010
24312
  }
24011
24313
  }
24012
24314
  if (s0 === peg$FAILED) {
24013
- if (input.substr(peg$currPos, 14) === peg$c95) {
24014
- s0 = peg$c95;
24015
- peg$currPos += 14;
24315
+ if (input.substr(peg$currPos, 15) === peg$c96) {
24316
+ s0 = peg$c96;
24317
+ peg$currPos += 15;
24016
24318
  } else {
24017
24319
  s0 = peg$FAILED;
24018
24320
  if (peg$silentFails === 0) {
24019
- peg$fail(peg$e99);
24321
+ peg$fail(peg$e100);
24020
24322
  }
24021
24323
  }
24022
24324
  if (s0 === peg$FAILED) {
24023
- if (input.substr(peg$currPos, 16) === peg$c96) {
24024
- s0 = peg$c96;
24025
- peg$currPos += 16;
24325
+ if (input.substr(peg$currPos, 14) === peg$c97) {
24326
+ s0 = peg$c97;
24327
+ peg$currPos += 14;
24026
24328
  } else {
24027
24329
  s0 = peg$FAILED;
24028
24330
  if (peg$silentFails === 0) {
24029
- peg$fail(peg$e100);
24331
+ peg$fail(peg$e101);
24030
24332
  }
24031
24333
  }
24032
24334
  if (s0 === peg$FAILED) {
24033
- if (input.substr(peg$currPos, 14) === peg$c97) {
24034
- s0 = peg$c97;
24035
- peg$currPos += 14;
24335
+ if (input.substr(peg$currPos, 16) === peg$c98) {
24336
+ s0 = peg$c98;
24337
+ peg$currPos += 16;
24036
24338
  } else {
24037
24339
  s0 = peg$FAILED;
24038
24340
  if (peg$silentFails === 0) {
24039
- peg$fail(peg$e101);
24341
+ peg$fail(peg$e102);
24040
24342
  }
24041
24343
  }
24042
24344
  if (s0 === peg$FAILED) {
24043
- if (input.substr(peg$currPos, 15) === peg$c98) {
24044
- s0 = peg$c98;
24045
- peg$currPos += 15;
24345
+ if (input.substr(peg$currPos, 14) === peg$c99) {
24346
+ s0 = peg$c99;
24347
+ peg$currPos += 14;
24046
24348
  } else {
24047
24349
  s0 = peg$FAILED;
24048
24350
  if (peg$silentFails === 0) {
24049
- peg$fail(peg$e102);
24351
+ peg$fail(peg$e103);
24050
24352
  }
24051
24353
  }
24052
24354
  if (s0 === peg$FAILED) {
24053
- if (input.substr(peg$currPos, 15) === peg$c99) {
24054
- s0 = peg$c99;
24355
+ if (input.substr(peg$currPos, 15) === peg$c100) {
24356
+ s0 = peg$c100;
24055
24357
  peg$currPos += 15;
24056
24358
  } else {
24057
24359
  s0 = peg$FAILED;
24058
24360
  if (peg$silentFails === 0) {
24059
- peg$fail(peg$e103);
24361
+ peg$fail(peg$e104);
24060
24362
  }
24061
24363
  }
24062
24364
  if (s0 === peg$FAILED) {
24063
- if (input.substr(peg$currPos, 15) === peg$c100) {
24064
- s0 = peg$c100;
24365
+ if (input.substr(peg$currPos, 15) === peg$c101) {
24366
+ s0 = peg$c101;
24065
24367
  peg$currPos += 15;
24066
24368
  } else {
24067
24369
  s0 = peg$FAILED;
24068
24370
  if (peg$silentFails === 0) {
24069
- peg$fail(peg$e104);
24371
+ peg$fail(peg$e105);
24070
24372
  }
24071
24373
  }
24072
24374
  if (s0 === peg$FAILED) {
24073
- if (input.substr(peg$currPos, 14) === peg$c101) {
24074
- s0 = peg$c101;
24075
- peg$currPos += 14;
24375
+ if (input.substr(peg$currPos, 15) === peg$c102) {
24376
+ s0 = peg$c102;
24377
+ peg$currPos += 15;
24076
24378
  } else {
24077
24379
  s0 = peg$FAILED;
24078
24380
  if (peg$silentFails === 0) {
24079
- peg$fail(peg$e105);
24381
+ peg$fail(peg$e106);
24080
24382
  }
24081
24383
  }
24082
24384
  if (s0 === peg$FAILED) {
24083
- if (input.substr(peg$currPos, 10) === peg$c102) {
24084
- s0 = peg$c102;
24085
- peg$currPos += 10;
24385
+ if (input.substr(peg$currPos, 14) === peg$c103) {
24386
+ s0 = peg$c103;
24387
+ peg$currPos += 14;
24086
24388
  } else {
24087
24389
  s0 = peg$FAILED;
24088
24390
  if (peg$silentFails === 0) {
24089
- peg$fail(peg$e106);
24391
+ peg$fail(peg$e107);
24090
24392
  }
24091
24393
  }
24092
24394
  if (s0 === peg$FAILED) {
24093
- if (input.substr(peg$currPos, 13) === peg$c103) {
24094
- s0 = peg$c103;
24095
- peg$currPos += 13;
24395
+ if (input.substr(peg$currPos, 10) === peg$c104) {
24396
+ s0 = peg$c104;
24397
+ peg$currPos += 10;
24096
24398
  } else {
24097
24399
  s0 = peg$FAILED;
24098
24400
  if (peg$silentFails === 0) {
24099
- peg$fail(peg$e107);
24401
+ peg$fail(peg$e108);
24100
24402
  }
24101
24403
  }
24102
24404
  if (s0 === peg$FAILED) {
24103
- if (input.substr(peg$currPos, 19) === peg$c104) {
24104
- s0 = peg$c104;
24105
- peg$currPos += 19;
24405
+ if (input.substr(peg$currPos, 13) === peg$c105) {
24406
+ s0 = peg$c105;
24407
+ peg$currPos += 13;
24106
24408
  } else {
24107
24409
  s0 = peg$FAILED;
24108
24410
  if (peg$silentFails === 0) {
24109
- peg$fail(peg$e108);
24411
+ peg$fail(peg$e109);
24110
24412
  }
24111
24413
  }
24112
24414
  if (s0 === peg$FAILED) {
24113
- if (input.substr(peg$currPos, 10) === peg$c105) {
24114
- s0 = peg$c105;
24115
- peg$currPos += 10;
24415
+ if (input.substr(peg$currPos, 19) === peg$c106) {
24416
+ s0 = peg$c106;
24417
+ peg$currPos += 19;
24116
24418
  } else {
24117
24419
  s0 = peg$FAILED;
24118
24420
  if (peg$silentFails === 0) {
24119
- peg$fail(peg$e109);
24421
+ peg$fail(peg$e110);
24120
24422
  }
24121
24423
  }
24122
24424
  if (s0 === peg$FAILED) {
24123
- if (input.substr(peg$currPos, 10) === peg$c106) {
24124
- s0 = peg$c106;
24425
+ if (input.substr(peg$currPos, 10) === peg$c107) {
24426
+ s0 = peg$c107;
24125
24427
  peg$currPos += 10;
24126
24428
  } else {
24127
24429
  s0 = peg$FAILED;
24128
24430
  if (peg$silentFails === 0) {
24129
- peg$fail(peg$e110);
24431
+ peg$fail(peg$e111);
24130
24432
  }
24131
24433
  }
24132
24434
  if (s0 === peg$FAILED) {
24133
- if (input.substr(peg$currPos, 13) === peg$c107) {
24134
- s0 = peg$c107;
24135
- peg$currPos += 13;
24435
+ if (input.substr(peg$currPos, 10) === peg$c108) {
24436
+ s0 = peg$c108;
24437
+ peg$currPos += 10;
24136
24438
  } else {
24137
24439
  s0 = peg$FAILED;
24138
24440
  if (peg$silentFails === 0) {
24139
- peg$fail(peg$e111);
24441
+ peg$fail(peg$e112);
24140
24442
  }
24141
24443
  }
24142
24444
  if (s0 === peg$FAILED) {
24143
- if (input.substr(peg$currPos, 11) === peg$c108) {
24144
- s0 = peg$c108;
24145
- peg$currPos += 11;
24445
+ if (input.substr(peg$currPos, 13) === peg$c68) {
24446
+ s0 = peg$c68;
24447
+ peg$currPos += 13;
24146
24448
  } else {
24147
24449
  s0 = peg$FAILED;
24148
24450
  if (peg$silentFails === 0) {
24149
- peg$fail(peg$e112);
24451
+ peg$fail(peg$e72);
24452
+ }
24453
+ }
24454
+ if (s0 === peg$FAILED) {
24455
+ if (input.substr(peg$currPos, 11) === peg$c109) {
24456
+ s0 = peg$c109;
24457
+ peg$currPos += 11;
24458
+ } else {
24459
+ s0 = peg$FAILED;
24460
+ if (peg$silentFails === 0) {
24461
+ peg$fail(peg$e113);
24462
+ }
24150
24463
  }
24151
24464
  }
24152
24465
  }
@@ -24192,233 +24505,233 @@ function peg$parse(input, options) {
24192
24505
  }
24193
24506
  function peg$parseColor() {
24194
24507
  let s0;
24195
- if (input.substr(peg$currPos, 4) === peg$c109) {
24196
- s0 = peg$c109;
24508
+ if (input.substr(peg$currPos, 4) === peg$c110) {
24509
+ s0 = peg$c110;
24197
24510
  peg$currPos += 4;
24198
24511
  } else {
24199
24512
  s0 = peg$FAILED;
24200
24513
  if (peg$silentFails === 0) {
24201
- peg$fail(peg$e113);
24514
+ peg$fail(peg$e114);
24202
24515
  }
24203
24516
  }
24204
24517
  if (s0 === peg$FAILED) {
24205
- if (input.substr(peg$currPos, 5) === peg$c110) {
24206
- s0 = peg$c110;
24518
+ if (input.substr(peg$currPos, 5) === peg$c111) {
24519
+ s0 = peg$c111;
24207
24520
  peg$currPos += 5;
24208
24521
  } else {
24209
24522
  s0 = peg$FAILED;
24210
24523
  if (peg$silentFails === 0) {
24211
- peg$fail(peg$e114);
24524
+ peg$fail(peg$e115);
24212
24525
  }
24213
24526
  }
24214
24527
  if (s0 === peg$FAILED) {
24215
- if (input.substr(peg$currPos, 4) === peg$c111) {
24216
- s0 = peg$c111;
24528
+ if (input.substr(peg$currPos, 4) === peg$c112) {
24529
+ s0 = peg$c112;
24217
24530
  peg$currPos += 4;
24218
24531
  } else {
24219
24532
  s0 = peg$FAILED;
24220
24533
  if (peg$silentFails === 0) {
24221
- peg$fail(peg$e115);
24534
+ peg$fail(peg$e116);
24222
24535
  }
24223
24536
  }
24224
24537
  if (s0 === peg$FAILED) {
24225
- if (input.substr(peg$currPos, 5) === peg$c112) {
24226
- s0 = peg$c112;
24538
+ if (input.substr(peg$currPos, 5) === peg$c113) {
24539
+ s0 = peg$c113;
24227
24540
  peg$currPos += 5;
24228
24541
  } else {
24229
24542
  s0 = peg$FAILED;
24230
24543
  if (peg$silentFails === 0) {
24231
- peg$fail(peg$e116);
24544
+ peg$fail(peg$e117);
24232
24545
  }
24233
24546
  }
24234
24547
  if (s0 === peg$FAILED) {
24235
- if (input.substr(peg$currPos, 7) === peg$c113) {
24236
- s0 = peg$c113;
24548
+ if (input.substr(peg$currPos, 7) === peg$c114) {
24549
+ s0 = peg$c114;
24237
24550
  peg$currPos += 7;
24238
24551
  } else {
24239
24552
  s0 = peg$FAILED;
24240
24553
  if (peg$silentFails === 0) {
24241
- peg$fail(peg$e117);
24554
+ peg$fail(peg$e118);
24242
24555
  }
24243
24556
  }
24244
24557
  if (s0 === peg$FAILED) {
24245
- if (input.substr(peg$currPos, 9) === peg$c114) {
24246
- s0 = peg$c114;
24558
+ if (input.substr(peg$currPos, 9) === peg$c115) {
24559
+ s0 = peg$c115;
24247
24560
  peg$currPos += 9;
24248
24561
  } else {
24249
24562
  s0 = peg$FAILED;
24250
24563
  if (peg$silentFails === 0) {
24251
- peg$fail(peg$e118);
24564
+ peg$fail(peg$e119);
24252
24565
  }
24253
24566
  }
24254
24567
  if (s0 === peg$FAILED) {
24255
- if (input.substr(peg$currPos, 4) === peg$c115) {
24256
- s0 = peg$c115;
24568
+ if (input.substr(peg$currPos, 4) === peg$c116) {
24569
+ s0 = peg$c116;
24257
24570
  peg$currPos += 4;
24258
24571
  } else {
24259
24572
  s0 = peg$FAILED;
24260
24573
  if (peg$silentFails === 0) {
24261
- peg$fail(peg$e119);
24574
+ peg$fail(peg$e120);
24262
24575
  }
24263
24576
  }
24264
24577
  if (s0 === peg$FAILED) {
24265
- if (input.substr(peg$currPos, 8) === peg$c116) {
24266
- s0 = peg$c116;
24578
+ if (input.substr(peg$currPos, 8) === peg$c117) {
24579
+ s0 = peg$c117;
24267
24580
  peg$currPos += 8;
24268
24581
  } else {
24269
24582
  s0 = peg$FAILED;
24270
24583
  if (peg$silentFails === 0) {
24271
- peg$fail(peg$e120);
24584
+ peg$fail(peg$e121);
24272
24585
  }
24273
24586
  }
24274
24587
  if (s0 === peg$FAILED) {
24275
- if (input.substr(peg$currPos, 5) === peg$c117) {
24276
- s0 = peg$c117;
24588
+ if (input.substr(peg$currPos, 5) === peg$c118) {
24589
+ s0 = peg$c118;
24277
24590
  peg$currPos += 5;
24278
24591
  } else {
24279
24592
  s0 = peg$FAILED;
24280
24593
  if (peg$silentFails === 0) {
24281
- peg$fail(peg$e121);
24594
+ peg$fail(peg$e122);
24282
24595
  }
24283
24596
  }
24284
24597
  if (s0 === peg$FAILED) {
24285
- if (input.substr(peg$currPos, 4) === peg$c118) {
24286
- s0 = peg$c118;
24598
+ if (input.substr(peg$currPos, 4) === peg$c119) {
24599
+ s0 = peg$c119;
24287
24600
  peg$currPos += 4;
24288
24601
  } else {
24289
24602
  s0 = peg$FAILED;
24290
24603
  if (peg$silentFails === 0) {
24291
- peg$fail(peg$e122);
24604
+ peg$fail(peg$e123);
24292
24605
  }
24293
24606
  }
24294
24607
  if (s0 === peg$FAILED) {
24295
- if (input.substr(peg$currPos, 7) === peg$c119) {
24296
- s0 = peg$c119;
24608
+ if (input.substr(peg$currPos, 7) === peg$c120) {
24609
+ s0 = peg$c120;
24297
24610
  peg$currPos += 7;
24298
24611
  } else {
24299
24612
  s0 = peg$FAILED;
24300
24613
  if (peg$silentFails === 0) {
24301
- peg$fail(peg$e123);
24614
+ peg$fail(peg$e124);
24302
24615
  }
24303
24616
  }
24304
24617
  if (s0 === peg$FAILED) {
24305
- if (input.substr(peg$currPos, 6) === peg$c120) {
24306
- s0 = peg$c120;
24618
+ if (input.substr(peg$currPos, 6) === peg$c121) {
24619
+ s0 = peg$c121;
24307
24620
  peg$currPos += 6;
24308
24621
  } else {
24309
24622
  s0 = peg$FAILED;
24310
24623
  if (peg$silentFails === 0) {
24311
- peg$fail(peg$e124);
24624
+ peg$fail(peg$e125);
24312
24625
  }
24313
24626
  }
24314
24627
  if (s0 === peg$FAILED) {
24315
- if (input.substr(peg$currPos, 4) === peg$c121) {
24316
- s0 = peg$c121;
24628
+ if (input.substr(peg$currPos, 4) === peg$c122) {
24629
+ s0 = peg$c122;
24317
24630
  peg$currPos += 4;
24318
24631
  } else {
24319
24632
  s0 = peg$FAILED;
24320
24633
  if (peg$silentFails === 0) {
24321
- peg$fail(peg$e125);
24634
+ peg$fail(peg$e126);
24322
24635
  }
24323
24636
  }
24324
24637
  if (s0 === peg$FAILED) {
24325
- if (input.substr(peg$currPos, 5) === peg$c122) {
24326
- s0 = peg$c122;
24638
+ if (input.substr(peg$currPos, 5) === peg$c123) {
24639
+ s0 = peg$c123;
24327
24640
  peg$currPos += 5;
24328
24641
  } else {
24329
24642
  s0 = peg$FAILED;
24330
24643
  if (peg$silentFails === 0) {
24331
- peg$fail(peg$e126);
24644
+ peg$fail(peg$e127);
24332
24645
  }
24333
24646
  }
24334
24647
  if (s0 === peg$FAILED) {
24335
- if (input.substr(peg$currPos, 6) === peg$c123) {
24336
- s0 = peg$c123;
24648
+ if (input.substr(peg$currPos, 6) === peg$c124) {
24649
+ s0 = peg$c124;
24337
24650
  peg$currPos += 6;
24338
24651
  } else {
24339
24652
  s0 = peg$FAILED;
24340
24653
  if (peg$silentFails === 0) {
24341
- peg$fail(peg$e127);
24654
+ peg$fail(peg$e128);
24342
24655
  }
24343
24656
  }
24344
24657
  if (s0 === peg$FAILED) {
24345
- if (input.substr(peg$currPos, 4) === peg$c124) {
24346
- s0 = peg$c124;
24658
+ if (input.substr(peg$currPos, 4) === peg$c125) {
24659
+ s0 = peg$c125;
24347
24660
  peg$currPos += 4;
24348
24661
  } else {
24349
24662
  s0 = peg$FAILED;
24350
24663
  if (peg$silentFails === 0) {
24351
- peg$fail(peg$e128);
24664
+ peg$fail(peg$e129);
24352
24665
  }
24353
24666
  }
24354
24667
  if (s0 === peg$FAILED) {
24355
- if (input.substr(peg$currPos, 6) === peg$c125) {
24356
- s0 = peg$c125;
24668
+ if (input.substr(peg$currPos, 6) === peg$c126) {
24669
+ s0 = peg$c126;
24357
24670
  peg$currPos += 6;
24358
24671
  } else {
24359
24672
  s0 = peg$FAILED;
24360
24673
  if (peg$silentFails === 0) {
24361
- peg$fail(peg$e129);
24674
+ peg$fail(peg$e130);
24362
24675
  }
24363
24676
  }
24364
24677
  if (s0 === peg$FAILED) {
24365
- if (input.substr(peg$currPos, 3) === peg$c126) {
24366
- s0 = peg$c126;
24678
+ if (input.substr(peg$currPos, 3) === peg$c127) {
24679
+ s0 = peg$c127;
24367
24680
  peg$currPos += 3;
24368
24681
  } else {
24369
24682
  s0 = peg$FAILED;
24370
24683
  if (peg$silentFails === 0) {
24371
- peg$fail(peg$e130);
24684
+ peg$fail(peg$e131);
24372
24685
  }
24373
24686
  }
24374
24687
  if (s0 === peg$FAILED) {
24375
- if (input.substr(peg$currPos, 6) === peg$c127) {
24376
- s0 = peg$c127;
24688
+ if (input.substr(peg$currPos, 6) === peg$c128) {
24689
+ s0 = peg$c128;
24377
24690
  peg$currPos += 6;
24378
24691
  } else {
24379
24692
  s0 = peg$FAILED;
24380
24693
  if (peg$silentFails === 0) {
24381
- peg$fail(peg$e131);
24694
+ peg$fail(peg$e132);
24382
24695
  }
24383
24696
  }
24384
24697
  if (s0 === peg$FAILED) {
24385
- if (input.substr(peg$currPos, 4) === peg$c128) {
24386
- s0 = peg$c128;
24698
+ if (input.substr(peg$currPos, 4) === peg$c129) {
24699
+ s0 = peg$c129;
24387
24700
  peg$currPos += 4;
24388
24701
  } else {
24389
24702
  s0 = peg$FAILED;
24390
24703
  if (peg$silentFails === 0) {
24391
- peg$fail(peg$e132);
24704
+ peg$fail(peg$e133);
24392
24705
  }
24393
24706
  }
24394
24707
  if (s0 === peg$FAILED) {
24395
- if (input.substr(peg$currPos, 6) === peg$c129) {
24396
- s0 = peg$c129;
24708
+ if (input.substr(peg$currPos, 6) === peg$c130) {
24709
+ s0 = peg$c130;
24397
24710
  peg$currPos += 6;
24398
24711
  } else {
24399
24712
  s0 = peg$FAILED;
24400
24713
  if (peg$silentFails === 0) {
24401
- peg$fail(peg$e133);
24714
+ peg$fail(peg$e134);
24402
24715
  }
24403
24716
  }
24404
24717
  if (s0 === peg$FAILED) {
24405
- if (input.substr(peg$currPos, 5) === peg$c130) {
24406
- s0 = peg$c130;
24718
+ if (input.substr(peg$currPos, 5) === peg$c131) {
24719
+ s0 = peg$c131;
24407
24720
  peg$currPos += 5;
24408
24721
  } else {
24409
24722
  s0 = peg$FAILED;
24410
24723
  if (peg$silentFails === 0) {
24411
- peg$fail(peg$e134);
24724
+ peg$fail(peg$e135);
24412
24725
  }
24413
24726
  }
24414
24727
  if (s0 === peg$FAILED) {
24415
- if (input.substr(peg$currPos, 6) === peg$c131) {
24416
- s0 = peg$c131;
24728
+ if (input.substr(peg$currPos, 6) === peg$c132) {
24729
+ s0 = peg$c132;
24417
24730
  peg$currPos += 6;
24418
24731
  } else {
24419
24732
  s0 = peg$FAILED;
24420
24733
  if (peg$silentFails === 0) {
24421
- peg$fail(peg$e135);
24734
+ peg$fail(peg$e136);
24422
24735
  }
24423
24736
  }
24424
24737
  }
@@ -24445,12 +24758,124 @@ function peg$parse(input, options) {
24445
24758
  }
24446
24759
  return s0;
24447
24760
  }
24761
+ function peg$parseHighlightColor() {
24762
+ let s0;
24763
+ if (input.substr(peg$currPos, 6) === peg$c124) {
24764
+ s0 = peg$c124;
24765
+ peg$currPos += 6;
24766
+ } else {
24767
+ s0 = peg$FAILED;
24768
+ if (peg$silentFails === 0) {
24769
+ peg$fail(peg$e128);
24770
+ }
24771
+ }
24772
+ if (s0 === peg$FAILED) {
24773
+ if (input.substr(peg$currPos, 6) === peg$c132) {
24774
+ s0 = peg$c132;
24775
+ peg$currPos += 6;
24776
+ } else {
24777
+ s0 = peg$FAILED;
24778
+ if (peg$silentFails === 0) {
24779
+ peg$fail(peg$e136);
24780
+ }
24781
+ }
24782
+ if (s0 === peg$FAILED) {
24783
+ if (input.substr(peg$currPos, 5) === peg$c118) {
24784
+ s0 = peg$c118;
24785
+ peg$currPos += 5;
24786
+ } else {
24787
+ s0 = peg$FAILED;
24788
+ if (peg$silentFails === 0) {
24789
+ peg$fail(peg$e122);
24790
+ }
24791
+ }
24792
+ if (s0 === peg$FAILED) {
24793
+ if (input.substr(peg$currPos, 4) === peg$c112) {
24794
+ s0 = peg$c112;
24795
+ peg$currPos += 4;
24796
+ } else {
24797
+ s0 = peg$FAILED;
24798
+ if (peg$silentFails === 0) {
24799
+ peg$fail(peg$e116);
24800
+ }
24801
+ }
24802
+ if (s0 === peg$FAILED) {
24803
+ if (input.substr(peg$currPos, 6) === peg$c126) {
24804
+ s0 = peg$c126;
24805
+ peg$currPos += 6;
24806
+ } else {
24807
+ s0 = peg$FAILED;
24808
+ if (peg$silentFails === 0) {
24809
+ peg$fail(peg$e130);
24810
+ }
24811
+ }
24812
+ if (s0 === peg$FAILED) {
24813
+ if (input.substr(peg$currPos, 4) === peg$c125) {
24814
+ s0 = peg$c125;
24815
+ peg$currPos += 4;
24816
+ } else {
24817
+ s0 = peg$FAILED;
24818
+ if (peg$silentFails === 0) {
24819
+ peg$fail(peg$e129);
24820
+ }
24821
+ }
24822
+ if (s0 === peg$FAILED) {
24823
+ if (input.substr(peg$currPos, 5) === peg$c113) {
24824
+ s0 = peg$c113;
24825
+ peg$currPos += 5;
24826
+ } else {
24827
+ s0 = peg$FAILED;
24828
+ if (peg$silentFails === 0) {
24829
+ peg$fail(peg$e117);
24830
+ }
24831
+ }
24832
+ if (s0 === peg$FAILED) {
24833
+ if (input.substr(peg$currPos, 5) === peg$c131) {
24834
+ s0 = peg$c131;
24835
+ peg$currPos += 5;
24836
+ } else {
24837
+ s0 = peg$FAILED;
24838
+ if (peg$silentFails === 0) {
24839
+ peg$fail(peg$e135);
24840
+ }
24841
+ }
24842
+ if (s0 === peg$FAILED) {
24843
+ if (input.substr(peg$currPos, 5) === peg$c111) {
24844
+ s0 = peg$c111;
24845
+ peg$currPos += 5;
24846
+ } else {
24847
+ s0 = peg$FAILED;
24848
+ if (peg$silentFails === 0) {
24849
+ peg$fail(peg$e115);
24850
+ }
24851
+ }
24852
+ if (s0 === peg$FAILED) {
24853
+ if (input.substr(peg$currPos, 4) === peg$c116) {
24854
+ s0 = peg$c116;
24855
+ peg$currPos += 4;
24856
+ } else {
24857
+ s0 = peg$FAILED;
24858
+ if (peg$silentFails === 0) {
24859
+ peg$fail(peg$e120);
24860
+ }
24861
+ }
24862
+ }
24863
+ }
24864
+ }
24865
+ }
24866
+ }
24867
+ }
24868
+ }
24869
+ }
24870
+ }
24871
+ return s0;
24872
+ }
24448
24873
  function peg$parsebitmarkMinusMinus() {
24449
24874
  let s0, s1;
24450
24875
  peg$silentFails++;
24451
24876
  s0 = peg$currPos;
24452
24877
  s1 = peg$parsebitmarkMinusMinusString();
24453
- s1 = peg$f91(s1);
24878
+ s1 = peg$f92(s1);
24454
24879
  s0 = s1;
24455
24880
  peg$silentFails--;
24456
24881
  return s0;
@@ -24475,7 +24900,7 @@ function peg$parse(input, options) {
24475
24900
  s3 = peg$parsePlainText();
24476
24901
  }
24477
24902
  }
24478
- s0 = peg$f92(s1, s2);
24903
+ s0 = peg$f93(s1, s2);
24479
24904
  peg$silentFails--;
24480
24905
  return s0;
24481
24906
  }
@@ -24484,7 +24909,7 @@ function peg$parse(input, options) {
24484
24909
  s0 = peg$currPos;
24485
24910
  s1 = peg$parseNL();
24486
24911
  if (s1 !== peg$FAILED) {
24487
- s1 = peg$f93();
24912
+ s1 = peg$f94();
24488
24913
  }
24489
24914
  s0 = s1;
24490
24915
  if (s0 === peg$FAILED) {
@@ -24612,7 +25037,7 @@ function peg$parse(input, options) {
24612
25037
  s1 = s2;
24613
25038
  }
24614
25039
  if (s1 !== peg$FAILED) {
24615
- s1 = peg$f94(s1);
25040
+ s1 = peg$f95(s1);
24616
25041
  }
24617
25042
  s0 = s1;
24618
25043
  }
@@ -24621,12 +25046,12 @@ function peg$parse(input, options) {
24621
25046
  function peg$parseBoldHalfTag() {
24622
25047
  let s0;
24623
25048
  if (input.charCodeAt(peg$currPos) === 42) {
24624
- s0 = peg$c132;
25049
+ s0 = peg$c133;
24625
25050
  peg$currPos++;
24626
25051
  } else {
24627
25052
  s0 = peg$FAILED;
24628
25053
  if (peg$silentFails === 0) {
24629
- peg$fail(peg$e136);
25054
+ peg$fail(peg$e137);
24630
25055
  }
24631
25056
  }
24632
25057
  return s0;
@@ -24634,12 +25059,12 @@ function peg$parse(input, options) {
24634
25059
  function peg$parseItalicHalfTag() {
24635
25060
  let s0;
24636
25061
  if (input.charCodeAt(peg$currPos) === 95) {
24637
- s0 = peg$c133;
25062
+ s0 = peg$c134;
24638
25063
  peg$currPos++;
24639
25064
  } else {
24640
25065
  s0 = peg$FAILED;
24641
25066
  if (peg$silentFails === 0) {
24642
- peg$fail(peg$e137);
25067
+ peg$fail(peg$e138);
24643
25068
  }
24644
25069
  }
24645
25070
  return s0;
@@ -24647,12 +25072,12 @@ function peg$parse(input, options) {
24647
25072
  function peg$parseLightHalfTag() {
24648
25073
  let s0;
24649
25074
  if (input.charCodeAt(peg$currPos) === 96) {
24650
- s0 = peg$c134;
25075
+ s0 = peg$c135;
24651
25076
  peg$currPos++;
24652
25077
  } else {
24653
25078
  s0 = peg$FAILED;
24654
25079
  if (peg$silentFails === 0) {
24655
- peg$fail(peg$e138);
25080
+ peg$fail(peg$e139);
24656
25081
  }
24657
25082
  }
24658
25083
  return s0;
@@ -24660,12 +25085,12 @@ function peg$parse(input, options) {
24660
25085
  function peg$parseHighlightHalfTag() {
24661
25086
  let s0;
24662
25087
  if (input.charCodeAt(peg$currPos) === 33) {
24663
- s0 = peg$c135;
25088
+ s0 = peg$c136;
24664
25089
  peg$currPos++;
24665
25090
  } else {
24666
25091
  s0 = peg$FAILED;
24667
25092
  if (peg$silentFails === 0) {
24668
- peg$fail(peg$e139);
25093
+ peg$fail(peg$e140);
24669
25094
  }
24670
25095
  }
24671
25096
  return s0;
@@ -24748,13 +25173,13 @@ function peg$parse(input, options) {
24748
25173
  }
24749
25174
  function peg$parseBodyBitOpenTag() {
24750
25175
  let s0;
24751
- if (input.substr(peg$currPos, 2) === peg$c136) {
24752
- s0 = peg$c136;
25176
+ if (input.substr(peg$currPos, 2) === peg$c137) {
25177
+ s0 = peg$c137;
24753
25178
  peg$currPos += 2;
24754
25179
  } else {
24755
25180
  s0 = peg$FAILED;
24756
25181
  if (peg$silentFails === 0) {
24757
- peg$fail(peg$e140);
25182
+ peg$fail(peg$e141);
24758
25183
  }
24759
25184
  }
24760
25185
  return s0;
@@ -24762,12 +25187,12 @@ function peg$parse(input, options) {
24762
25187
  function peg$parseBodyBitCloseTag() {
24763
25188
  let s0;
24764
25189
  if (input.charCodeAt(peg$currPos) === 93) {
24765
- s0 = peg$c137;
25190
+ s0 = peg$c138;
24766
25191
  peg$currPos++;
24767
25192
  } else {
24768
25193
  s0 = peg$FAILED;
24769
25194
  if (peg$silentFails === 0) {
24770
- peg$fail(peg$e141);
25195
+ peg$fail(peg$e142);
24771
25196
  }
24772
25197
  }
24773
25198
  return s0;
@@ -24812,7 +25237,7 @@ function peg$parse(input, options) {
24812
25237
  if (s2 !== peg$FAILED) {
24813
25238
  s3 = peg$parseBodyBitCloseTag();
24814
25239
  if (s3 !== peg$FAILED) {
24815
- s0 = peg$f95(s2);
25240
+ s0 = peg$f96(s2);
24816
25241
  } else {
24817
25242
  peg$currPos = s0;
24818
25243
  s0 = peg$FAILED;
@@ -24901,7 +25326,7 @@ function peg$parse(input, options) {
24901
25326
  s2 = input.substring(s2, peg$currPos);
24902
25327
  s3 = peg$parseBoldTag();
24903
25328
  if (s3 !== peg$FAILED) {
24904
- s0 = peg$f96(s2);
25329
+ s0 = peg$f97(s2);
24905
25330
  } else {
24906
25331
  peg$currPos = s0;
24907
25332
  s0 = peg$FAILED;
@@ -24986,7 +25411,7 @@ function peg$parse(input, options) {
24986
25411
  s2 = input.substring(s2, peg$currPos);
24987
25412
  s3 = peg$parseItalicTag();
24988
25413
  if (s3 !== peg$FAILED) {
24989
- s0 = peg$f97(s2);
25414
+ s0 = peg$f98(s2);
24990
25415
  } else {
24991
25416
  peg$currPos = s0;
24992
25417
  s0 = peg$FAILED;
@@ -25071,7 +25496,7 @@ function peg$parse(input, options) {
25071
25496
  s2 = input.substring(s2, peg$currPos);
25072
25497
  s3 = peg$parseLightTag();
25073
25498
  if (s3 !== peg$FAILED) {
25074
- s0 = peg$f98(s2);
25499
+ s0 = peg$f99(s2);
25075
25500
  } else {
25076
25501
  peg$currPos = s0;
25077
25502
  s0 = peg$FAILED;
@@ -25156,7 +25581,7 @@ function peg$parse(input, options) {
25156
25581
  s2 = input.substring(s2, peg$currPos);
25157
25582
  s3 = peg$parseHighlightTag();
25158
25583
  if (s3 !== peg$FAILED) {
25159
- s0 = peg$f99(s2);
25584
+ s0 = peg$f100(s2);
25160
25585
  } else {
25161
25586
  peg$currPos = s0;
25162
25587
  s0 = peg$FAILED;
@@ -25241,22 +25666,22 @@ function peg$parse(input, options) {
25241
25666
  let s0;
25242
25667
  peg$silentFails++;
25243
25668
  if (input.charCodeAt(peg$currPos) === 10) {
25244
- s0 = peg$c138;
25669
+ s0 = peg$c139;
25245
25670
  peg$currPos++;
25246
25671
  } else {
25247
25672
  s0 = peg$FAILED;
25248
25673
  if (peg$silentFails === 0) {
25249
- peg$fail(peg$e143);
25674
+ peg$fail(peg$e144);
25250
25675
  }
25251
25676
  }
25252
25677
  if (s0 === peg$FAILED) {
25253
- if (input.substr(peg$currPos, 2) === peg$c139) {
25254
- s0 = peg$c139;
25678
+ if (input.substr(peg$currPos, 2) === peg$c140) {
25679
+ s0 = peg$c140;
25255
25680
  peg$currPos += 2;
25256
25681
  } else {
25257
25682
  s0 = peg$FAILED;
25258
25683
  if (peg$silentFails === 0) {
25259
- peg$fail(peg$e144);
25684
+ peg$fail(peg$e145);
25260
25685
  }
25261
25686
  }
25262
25687
  if (s0 === peg$FAILED) {
@@ -25266,7 +25691,7 @@ function peg$parse(input, options) {
25266
25691
  } else {
25267
25692
  s0 = peg$FAILED;
25268
25693
  if (peg$silentFails === 0) {
25269
- peg$fail(peg$e145);
25694
+ peg$fail(peg$e146);
25270
25695
  }
25271
25696
  }
25272
25697
  }
@@ -25274,7 +25699,7 @@ function peg$parse(input, options) {
25274
25699
  peg$silentFails--;
25275
25700
  if (s0 === peg$FAILED) {
25276
25701
  if (peg$silentFails === 0) {
25277
- peg$fail(peg$e142);
25702
+ peg$fail(peg$e143);
25278
25703
  }
25279
25704
  }
25280
25705
  return s0;
@@ -25287,7 +25712,7 @@ function peg$parse(input, options) {
25287
25712
  } else {
25288
25713
  s0 = peg$FAILED;
25289
25714
  if (peg$silentFails === 0) {
25290
- peg$fail(peg$e146);
25715
+ peg$fail(peg$e147);
25291
25716
  }
25292
25717
  }
25293
25718
  return s0;
@@ -25321,35 +25746,35 @@ function peg$parse(input, options) {
25321
25746
  let s0, s1, s2, s3, s4, s5, s6, s7, s8;
25322
25747
  s0 = peg$currPos;
25323
25748
  s1 = peg$currPos;
25324
- if (input.substr(peg$currPos, 4) === peg$c140) {
25325
- s2 = peg$c140;
25749
+ if (input.substr(peg$currPos, 4) === peg$c141) {
25750
+ s2 = peg$c141;
25326
25751
  peg$currPos += 4;
25327
25752
  } else {
25328
25753
  s2 = peg$FAILED;
25329
25754
  if (peg$silentFails === 0) {
25330
- peg$fail(peg$e147);
25755
+ peg$fail(peg$e148);
25331
25756
  }
25332
25757
  }
25333
25758
  if (s2 !== peg$FAILED) {
25334
25759
  if (input.charCodeAt(peg$currPos) === 115) {
25335
- s3 = peg$c141;
25760
+ s3 = peg$c142;
25336
25761
  peg$currPos++;
25337
25762
  } else {
25338
25763
  s3 = peg$FAILED;
25339
25764
  if (peg$silentFails === 0) {
25340
- peg$fail(peg$e148);
25765
+ peg$fail(peg$e149);
25341
25766
  }
25342
25767
  }
25343
25768
  if (s3 === peg$FAILED) {
25344
25769
  s3 = null;
25345
25770
  }
25346
- if (input.substr(peg$currPos, 3) === peg$c142) {
25347
- s4 = peg$c142;
25771
+ if (input.substr(peg$currPos, 3) === peg$c143) {
25772
+ s4 = peg$c143;
25348
25773
  peg$currPos += 3;
25349
25774
  } else {
25350
25775
  s4 = peg$FAILED;
25351
25776
  if (peg$silentFails === 0) {
25352
- peg$fail(peg$e149);
25777
+ peg$fail(peg$e150);
25353
25778
  }
25354
25779
  }
25355
25780
  if (s4 !== peg$FAILED) {
@@ -25427,35 +25852,35 @@ function peg$parse(input, options) {
25427
25852
  s0 = peg$currPos;
25428
25853
  s1 = peg$currPos;
25429
25854
  s2 = peg$currPos;
25430
- if (input.substr(peg$currPos, 4) === peg$c140) {
25431
- s3 = peg$c140;
25855
+ if (input.substr(peg$currPos, 4) === peg$c141) {
25856
+ s3 = peg$c141;
25432
25857
  peg$currPos += 4;
25433
25858
  } else {
25434
25859
  s3 = peg$FAILED;
25435
25860
  if (peg$silentFails === 0) {
25436
- peg$fail(peg$e147);
25861
+ peg$fail(peg$e148);
25437
25862
  }
25438
25863
  }
25439
25864
  if (s3 !== peg$FAILED) {
25440
25865
  if (input.charCodeAt(peg$currPos) === 115) {
25441
- s4 = peg$c141;
25866
+ s4 = peg$c142;
25442
25867
  peg$currPos++;
25443
25868
  } else {
25444
25869
  s4 = peg$FAILED;
25445
25870
  if (peg$silentFails === 0) {
25446
- peg$fail(peg$e148);
25871
+ peg$fail(peg$e149);
25447
25872
  }
25448
25873
  }
25449
25874
  if (s4 === peg$FAILED) {
25450
25875
  s4 = null;
25451
25876
  }
25452
- if (input.substr(peg$currPos, 3) === peg$c142) {
25453
- s5 = peg$c142;
25877
+ if (input.substr(peg$currPos, 3) === peg$c143) {
25878
+ s5 = peg$c143;
25454
25879
  peg$currPos += 3;
25455
25880
  } else {
25456
25881
  s5 = peg$FAILED;
25457
25882
  if (peg$silentFails === 0) {
25458
- peg$fail(peg$e149);
25883
+ peg$fail(peg$e150);
25459
25884
  }
25460
25885
  }
25461
25886
  if (s5 !== peg$FAILED) {
@@ -25470,13 +25895,13 @@ function peg$parse(input, options) {
25470
25895
  s2 = peg$FAILED;
25471
25896
  }
25472
25897
  if (s2 === peg$FAILED) {
25473
- if (input.substr(peg$currPos, 7) === peg$c143) {
25474
- s2 = peg$c143;
25898
+ if (input.substr(peg$currPos, 7) === peg$c144) {
25899
+ s2 = peg$c144;
25475
25900
  peg$currPos += 7;
25476
25901
  } else {
25477
25902
  s2 = peg$FAILED;
25478
25903
  if (peg$silentFails === 0) {
25479
- peg$fail(peg$e150);
25904
+ peg$fail(peg$e151);
25480
25905
  }
25481
25906
  }
25482
25907
  }
@@ -25540,7 +25965,7 @@ function peg$parse(input, options) {
25540
25965
  }
25541
25966
  }
25542
25967
  s2 = input.substring(s2, peg$currPos);
25543
- s0 = peg$f100(s1, s2);
25968
+ s0 = peg$f101(s1, s2);
25544
25969
  } else {
25545
25970
  peg$currPos = s0;
25546
25971
  s0 = peg$FAILED;
@@ -25555,7 +25980,7 @@ function peg$parse(input, options) {
25555
25980
  } else {
25556
25981
  s0 = peg$FAILED;
25557
25982
  if (peg$silentFails === 0) {
25558
- peg$fail(peg$e151);
25983
+ peg$fail(peg$e152);
25559
25984
  }
25560
25985
  }
25561
25986
  return s0;
@@ -43695,6 +44120,8 @@ var ConfigBuilder = class {
43695
44120
  format = "bitmark";
43696
44121
  } else if (tag.format === TagFormat.number) {
43697
44122
  format = "number";
44123
+ } else if (tag.format === TagFormat.coordinates) {
44124
+ format = "coordinates";
43698
44125
  }
43699
44126
  } else if (tagType === BitTagConfigKeyType.resource) {
43700
44127
  format = "string";