highmark-markdown 0.0.154 → 0.0.155

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.
Files changed (66) hide show
  1. package/example.js +2212 -1446
  2. package/lib/example/view.js +19 -15
  3. package/lib/index.js +4 -8
  4. package/lib/markdown/bnf.js +2 -2
  5. package/lib/markdown/parser.js +5 -5
  6. package/lib/node/markdown/anchor.js +7 -1
  7. package/lib/node/markdown/contents.js +149 -0
  8. package/lib/node/markdown/contentsItem.js +141 -0
  9. package/lib/node/markdown/contentsList.js +135 -0
  10. package/lib/node/markdown/division.js +80 -62
  11. package/lib/node/markdown/heading/primary.js +134 -0
  12. package/lib/node/markdown/{quaternaryHeading.js → heading/quaternary.js} +20 -6
  13. package/lib/node/markdown/{secondaryHeading.js → heading/secondary.js} +20 -6
  14. package/lib/node/markdown/{tertiaryHeading.js → heading/tertiary.js} +20 -6
  15. package/lib/node/markdown/{header.js → heading.js} +15 -15
  16. package/lib/node/markdown/import.js +16 -9
  17. package/lib/node/markdown/line.js +4 -4
  18. package/lib/node/markdown/markedText.js +5 -3
  19. package/lib/node/markdown.js +35 -14
  20. package/lib/nodeMap.js +7 -7
  21. package/lib/ruleNameToHTMLMap.js +10 -4
  22. package/lib/ruleNames.js +16 -6
  23. package/lib/utilities/childNodes.js +48 -46
  24. package/lib/utilities/footnotes.js +71 -0
  25. package/lib/utilities/nodes.js +21 -0
  26. package/lib/utilities/query.js +30 -3
  27. package/lib/utilities/string.js +2 -2
  28. package/lib/utilities/tokens.js +45 -0
  29. package/lib/utilities/tree.js +172 -0
  30. package/package.json +3 -3
  31. package/src/example/view.js +35 -21
  32. package/src/index.js +1 -2
  33. package/src/markdown/bnf.js +6 -4
  34. package/src/markdown/parser.js +1 -1
  35. package/src/node/markdown/anchor.js +4 -0
  36. package/src/node/markdown/contents.js +40 -0
  37. package/src/node/markdown/contentsItem.js +49 -0
  38. package/src/node/markdown/contentsList.js +35 -0
  39. package/src/node/markdown/division.js +94 -39
  40. package/src/node/markdown/heading/primary.js +9 -0
  41. package/src/node/markdown/heading/quaternary.js +9 -0
  42. package/src/node/markdown/heading/secondary.js +9 -0
  43. package/src/node/markdown/heading/tertiary.js +9 -0
  44. package/src/node/markdown/heading.js +13 -0
  45. package/src/node/markdown/import.js +22 -7
  46. package/src/node/markdown/line.js +6 -4
  47. package/src/node/markdown/markedText.js +4 -4
  48. package/src/node/markdown.js +48 -18
  49. package/src/nodeMap.js +7 -7
  50. package/src/ruleNameToHTMLMap.js +15 -5
  51. package/src/ruleNames.js +6 -2
  52. package/src/utilities/childNodes.js +57 -49
  53. package/src/utilities/{link.js → footnotes.js} +8 -0
  54. package/src/utilities/{node.js → nodes.js} +0 -4
  55. package/src/utilities/query.js +32 -1
  56. package/src/utilities/string.js +1 -2
  57. package/src/utilities/tokens.js +14 -0
  58. package/src/utilities/tree.js +139 -0
  59. package/lib/node/markdown/primaryHeading.js +0 -167
  60. package/lib/utilities/link.js +0 -63
  61. package/lib/utilities/node.js +0 -32
  62. package/src/node/markdown/header.js +0 -14
  63. package/src/node/markdown/primaryHeading.js +0 -38
  64. package/src/node/markdown/quaternaryHeading.js +0 -7
  65. package/src/node/markdown/secondaryHeading.js +0 -7
  66. package/src/node/markdown/tertiaryHeading.js +0 -7
@@ -9,124 +9,132 @@ import { contentFromMarkdownNodes } from "./content";
9
9
 
10
10
  const { clear } = arrayUtilities;
11
11
 
12
- export function domElementsFromChildNodes(childNodes, context) {
13
- const domElements = [],
12
+ export function htmlFromChildNodes(childNodes, context, trimmed) {
13
+ let html;
14
+
15
+ const htmls = [],
14
16
  plainTextMarkdownNodes = [];
15
17
 
16
18
  childNodes.forEach((childNode) => {
17
19
  const childNodeNonTerminalNode = childNode.isNonTerminalNode();
18
20
 
19
21
  if (childNodeNonTerminalNode) {
20
- const childNodePlainTextMarkdownNode = (childNode instanceof PlainTextMarkdownNode);
22
+ const nonTerminalNode = childNode, ///
23
+ markdownNode = nonTerminalNode, ///
24
+ markdownNodePlainTextMarkdownNode = (markdownNode instanceof PlainTextMarkdownNode);
21
25
 
22
- if (childNodePlainTextMarkdownNode) {
23
- const plainTextMarkdownNode = childNode; ///
26
+ if (markdownNodePlainTextMarkdownNode) {
27
+ const plainTextMarkdownNode = markdownNode; ///
24
28
 
25
29
  plainTextMarkdownNodes.push(plainTextMarkdownNode);
26
30
  } else {
27
- const textDOMElement = textDOMElementFromPlainTextMarkdownNodes(plainTextMarkdownNodes, context)
31
+ html = htmlFromPlainTextMarkdownNodes(plainTextMarkdownNodes, context, trimmed)
28
32
 
29
- if (textDOMElement !== null) {
30
- const domElement = textDOMElement; ///
33
+ if (html !== null) {
34
+ htmls.push(html);
31
35
 
32
- domElements.push(domElement);
36
+ trimmed = false;
33
37
  }
34
38
 
35
- const domElement = childNode.createDOMElement(context);
39
+ const indent = null;
36
40
 
37
- if (domElement !== null) {
38
- domElements.push(domElement);
41
+ html = markdownNode.asHTML(indent, context);
42
+
43
+ if (html !== null) {
44
+ htmls.push(html);
39
45
  }
40
46
  }
41
47
  }
42
48
  });
43
49
 
44
- const textDOMElement = textDOMElementFromPlainTextMarkdownNodes(plainTextMarkdownNodes, context)
50
+ html = htmlFromPlainTextMarkdownNodes(plainTextMarkdownNodes, context, trimmed)
45
51
 
46
- if (textDOMElement !== null) {
47
- const domElement = textDOMElement; ///
48
-
49
- domElements.push(domElement);
52
+ if (html !== null) {
53
+ htmls.push(html);
50
54
  }
51
55
 
52
- return domElements;
53
- }
56
+ html = htmls.join(EMPTY_STRING);
54
57
 
55
- export function htmlFromChildNodes(childNodes, context) {
56
- let html;
58
+ return html;
59
+ }
57
60
 
58
- const htmls = [],
61
+ export function domElementsFromChildNodes(childNodes, context, trimmed) {
62
+ const domElements = [],
59
63
  plainTextMarkdownNodes = [];
60
64
 
61
65
  childNodes.forEach((childNode) => {
62
66
  const childNodeNonTerminalNode = childNode.isNonTerminalNode();
63
67
 
64
68
  if (childNodeNonTerminalNode) {
65
- const childNodePlainTextMarkdownNode = (childNode instanceof PlainTextMarkdownNode);
69
+ const nonTerminalNode = childNode, ///
70
+ markdownNode = nonTerminalNode, ///
71
+ markdownNodePlainTextMarkdownNode = (markdownNode instanceof PlainTextMarkdownNode);
66
72
 
67
- if (childNodePlainTextMarkdownNode) {
68
- const plainTextMarkdownNode = childNode; ///
73
+ if (markdownNodePlainTextMarkdownNode) {
74
+ const plainTextMarkdownNode = markdownNode; ///
69
75
 
70
76
  plainTextMarkdownNodes.push(plainTextMarkdownNode);
71
77
  } else {
72
- html = htmlFromPlainTextMarkdownNodes(plainTextMarkdownNodes, context)
78
+ const textDOMElement = textDOMElementFromPlainTextMarkdownNodes(plainTextMarkdownNodes, context, trimmed)
73
79
 
74
- if (html !== null) {
75
- htmls.push(html);
76
- }
80
+ if (textDOMElement !== null) {
81
+ const domElement = textDOMElement; ///
77
82
 
78
- const indent = null;
83
+ domElements.push(domElement);
79
84
 
80
- html = childNode.asHTML(indent, context);
85
+ trimmed = false;
86
+ }
81
87
 
82
- if (html !== null) {
83
- htmls.push(html);
88
+ const domElement = markdownNode.createDOMElement(context);
89
+
90
+ if (domElement !== null) {
91
+ domElements.push(domElement);
84
92
  }
85
93
  }
86
94
  }
87
95
  });
88
96
 
89
- html = htmlFromPlainTextMarkdownNodes(plainTextMarkdownNodes, context)
97
+ const textDOMElement = textDOMElementFromPlainTextMarkdownNodes(plainTextMarkdownNodes, context, trimmed)
90
98
 
91
- if (html !== null) {
92
- htmls.push(html);
93
- }
99
+ if (textDOMElement !== null) {
100
+ const domElement = textDOMElement; ///
94
101
 
95
- html = htmls.join(EMPTY_STRING);
102
+ domElements.push(domElement);
103
+ }
96
104
 
97
- return html;
105
+ return domElements;
98
106
  }
99
107
 
100
- function textDOMElementFromPlainTextMarkdownNodes(plainTextMarkdownNodes, context) {
101
- let textDOMElement = null;
108
+ function htmlFromPlainTextMarkdownNodes(plainTextMarkdownNodes, context, trimmed) {
109
+ let html = null;
102
110
 
103
111
  const plainTextMarkdownNodesLength = plainTextMarkdownNodes.length;
104
112
 
105
113
  if (plainTextMarkdownNodesLength > 0) {
106
114
  const markdownNodes = plainTextMarkdownNodes, ///
107
- content = contentFromMarkdownNodes(markdownNodes, context);
115
+ content = contentFromMarkdownNodes(markdownNodes, context, trimmed);
108
116
 
109
- textDOMElement = document.createTextNode(content);
117
+ html = content; ///
110
118
 
111
119
  clear(plainTextMarkdownNodes);
112
120
  }
113
121
 
114
- return textDOMElement;
122
+ return html;
115
123
  }
116
124
 
117
- function htmlFromPlainTextMarkdownNodes(plainTextMarkdownNodes, context) {
118
- let html = null;
125
+ function textDOMElementFromPlainTextMarkdownNodes(plainTextMarkdownNodes, context, trimmed) {
126
+ let textDOMElement = null;
119
127
 
120
128
  const plainTextMarkdownNodesLength = plainTextMarkdownNodes.length;
121
129
 
122
130
  if (plainTextMarkdownNodesLength > 0) {
123
131
  const markdownNodes = plainTextMarkdownNodes, ///
124
- content = contentFromMarkdownNodes(markdownNodes, context);
132
+ content = contentFromMarkdownNodes(markdownNodes, context, trimmed);
125
133
 
126
- html = content;
134
+ textDOMElement = document.createTextNode(content);
127
135
 
128
136
  clear(plainTextMarkdownNodes);
129
137
  }
130
138
 
131
- return html;
139
+ return textDOMElement;
132
140
  }
@@ -8,6 +8,14 @@ import { linkMarkdownNodesFromNode } from "../utilities/query";
8
8
 
9
9
  const { strlen, indexOf } = stringUtilities;
10
10
 
11
+ export function appendFootnotesListMarkdownNodeHTML(childNodesHTML, footnotesListMarkdownNode, indent, context) {
12
+ const footnotesListMarkdownNodeHTML = footnotesListMarkdownNode.asHTML(indent, context);
13
+
14
+ childNodesHTML = `${childNodesHTML}${footnotesListMarkdownNodeHTML}`;
15
+
16
+ return childNodesHTML;
17
+ }
18
+
11
19
  export function renumberLinkMarkdownNodesHTML(childNodesHTML, divisionMarkdownNode, footnotesListMarkdownNode, context) {
12
20
  let number = 1;
13
21
 
@@ -17,7 +17,3 @@ export function setNonTerminalNodes(parser, nodeMap) {
17
17
  rule.setNonTerminalNode(NonTerminalNode);
18
18
  });
19
19
  }
20
-
21
- export default {
22
- setNonTerminalNodes
23
- };
@@ -3,9 +3,11 @@
3
3
  import { Query } from "occam-query";
4
4
  import { arrayUtilities } from "necessary";
5
5
 
6
- const { push } = arrayUtilities;
6
+ const { first, push } = arrayUtilities;
7
7
 
8
8
  const linkMarkdownNodesQuery = Query.fromExpression(`//link`),
9
+ contentMarkdownNodeQuery = Query.fromExpression(`//contents`),
10
+ headingMarkdownNodesQuery = Query.fromExpression(`//primaryHeading|secondaryHeading|tertiaryHeading|quaternaryHeading`),
9
11
  footnoteMarkdownNodesQuery = Query.fromExpression(`//footnote`),
10
12
  referenceMarkdownNodesQuery = Query.fromExpression(`//reference`);
11
13
 
@@ -15,6 +17,18 @@ export function linkMarkdownNodesFromNode(node, linkMarkdownNodes = []) {
15
17
  return linkMarkdownNodes;
16
18
  }
17
19
 
20
+ export function contentsMarkdownNodeFromNode(node) {
21
+ const contentsMarkdownNode = nodeFromNodeAndQuery(node, contentMarkdownNodeQuery);
22
+
23
+ return contentsMarkdownNode;
24
+ }
25
+
26
+ export function headingMarkdownNodesFromNode(node, headingMarkdownNodes = []) {
27
+ nodesFromNodeAndQuery(node, headingMarkdownNodesQuery, headingMarkdownNodes);
28
+
29
+ return headingMarkdownNodes;
30
+ }
31
+
18
32
  export function footnoteMarkdownNodesFromNode(node, footnoteMarkdownNodes = []) {
19
33
  nodesFromNodeAndQuery(node, footnoteMarkdownNodesQuery, footnoteMarkdownNodes);
20
34
 
@@ -29,10 +43,27 @@ export function referenceMarkdownNodesFromNode(node, referenceMarkdownNodes = []
29
43
 
30
44
  export default {
31
45
  linkMarkdownNodesFromNode,
46
+ contentsMarkdownNodeFromNode,
47
+ headingMarkdownNodesFromNode,
32
48
  footnoteMarkdownNodesFromNode,
33
49
  referenceMarkdownNodesFromNode
34
50
  };
35
51
 
52
+ function nodeFromNodeAndQuery(node, query) {
53
+ const queryNodes = query.execute(node),
54
+ queryNodesLength = queryNodes.length;
55
+
56
+ if (queryNodesLength === 0) {
57
+ node = null;
58
+ } else {
59
+ const firstQueryNode = first(queryNodes);
60
+
61
+ node = firstQueryNode; ///
62
+ }
63
+
64
+ return node;
65
+ }
66
+
36
67
  function nodesFromNodeAndQuery(node, query, nodes) {
37
68
  const queryNodes = query.execute(node);
38
69
 
@@ -7,7 +7,7 @@ import { EMPTY_STRING } from "../constants";
7
7
  const { substring } = stringUtilities;
8
8
 
9
9
  export function trim(string) {
10
- const shavenString = string.replace(/^.|.$/g, EMPTY_STRING);
10
+ const shavenString = string.replace(/^["`'\s]+|["`'\s]+$/g, EMPTY_STRING);
11
11
 
12
12
  return shavenString;
13
13
  }
@@ -53,4 +53,3 @@ export function splice(string, start, deleteCount, middleString) {
53
53
 
54
54
  return string;
55
55
  }
56
-
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ export function replaceTokens(replacedChildNode, replacementTokens, context) {
4
+ const { tokens } = context,
5
+ nonTerminalNode = replacedChildNode, ///
6
+ lastSignificantToken = nonTerminalNode.getLastSignificantToken(),
7
+ firstSignificantToken = nonTerminalNode.getFirstSignificantToken(),
8
+ lastSignificantTokenIndex = tokens.indexOf(lastSignificantToken),
9
+ firstSignificantTokenIndex = tokens.indexOf(firstSignificantToken),
10
+ start = firstSignificantTokenIndex, ///
11
+ deleteCount = lastSignificantTokenIndex - firstSignificantTokenIndex; ///
12
+
13
+ tokens.splice(start, deleteCount, ...replacementTokens);
14
+ }
@@ -0,0 +1,139 @@
1
+ "use strict";
2
+
3
+ import { arrayUtilities } from "necessary";
4
+
5
+ const { first, last } = arrayUtilities;
6
+
7
+ export function nestNodes(nodes) {
8
+ const nestedNodesStack = NestedNodeStack.fromNothing();
9
+
10
+ nodes.forEach((node) => {
11
+ const level = node.getLevel();
12
+
13
+ let nestedNodesStackLevel = nestedNodesStack.getLevel()
14
+
15
+ while (nestedNodesStackLevel < level) {
16
+ nestedNodesStackLevel = nestedNodesStack.increment();
17
+ }
18
+
19
+ while (nestedNodesStackLevel > level) {
20
+ nestedNodesStackLevel = nestedNodesStack.decrement();
21
+ }
22
+
23
+ const nestedNode = NestedNode.fromNode(node);
24
+
25
+ nestedNodesStack.addNestedNode(nestedNode);
26
+ });
27
+
28
+ const nestedNode = nestedNodesStack.getNestedNode();
29
+
30
+ return nestedNode;
31
+ }
32
+
33
+ class NestedNode {
34
+ constructor(node, childNestedNodes) {
35
+ this.node = node;
36
+ this.childNestedNodes = childNestedNodes;
37
+ }
38
+
39
+ getNode() {
40
+ return this.node;
41
+ }
42
+
43
+ getChildNestedNodes() {
44
+ return this.childNestedNodes;
45
+ }
46
+
47
+ addNestedNode(nestedNode) {
48
+ const childNestedNode = nestedNode; ///
49
+
50
+ this.childNestedNodes.push(childNestedNode);
51
+ }
52
+
53
+ static fromNode(node) {
54
+ const childNestedNodes = [],
55
+ nestedNode = new NestedNode(node, childNestedNodes);
56
+
57
+ return nestedNode;
58
+ }
59
+
60
+ static fromNothing() {
61
+ const node = null,
62
+ childNestedNodes = [],
63
+ nestedNode = new NestedNode(node, childNestedNodes);
64
+
65
+ return nestedNode;
66
+ }
67
+ }
68
+
69
+ class NestedNodeStack {
70
+ constructor(nestedNodes) {
71
+ this.nestedNodes = nestedNodes;
72
+ }
73
+
74
+ getNestedNodes() {
75
+ return this.nestedNodes;
76
+ }
77
+
78
+ getLastNestedNode() {
79
+ const lastNestedNode = last(this.nestedNodes);
80
+
81
+ return lastNestedNode;
82
+ }
83
+
84
+ getNestedNode() {
85
+ const firstNestedNode = first(this.nestedNodes),
86
+ nestedNode = firstNestedNode; ///
87
+
88
+ return nestedNode;
89
+ }
90
+
91
+ getLevel() {
92
+ const nestedNodesLength = this.nestedNodes.length,
93
+ level = nestedNodesLength; ///
94
+
95
+ return level;
96
+ }
97
+
98
+ increment() {
99
+ const nestedNode = NestedNode.fromNothing();
100
+
101
+ this.addNestedNode(nestedNode);
102
+
103
+ const level = this.getLevel();
104
+
105
+ return level;
106
+ }
107
+
108
+ decrement() {
109
+ this.removeNestedNode();
110
+
111
+ const level = this.getLevel();
112
+
113
+ return level;
114
+ }
115
+
116
+ addNestedNode(nestedNode) {
117
+ const lastNestedNode = this.getLastNestedNode();
118
+
119
+ lastNestedNode.addNestedNode(nestedNode);
120
+
121
+ this.nestedNodes.push(nestedNode);
122
+ }
123
+
124
+ removeNestedNode() {
125
+ const nestedNode = this.nestedNodes.pop();
126
+
127
+ return nestedNode;
128
+ }
129
+
130
+ static fromNothing() {
131
+ const nestedNode = NestedNode.fromNothing(),
132
+ nestedNodes = [
133
+ nestedNode
134
+ ],
135
+ nestedNodesStack = new NestedNodeStack(nestedNodes);
136
+
137
+ return nestedNodesStack;
138
+ }
139
+ }
@@ -1,167 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return PrimaryHeadingMarkdownNode;
9
- }
10
- });
11
- var _necessary = require("necessary");
12
- var _markdown = /*#__PURE__*/ _interop_require_default(require("../../node/markdown"));
13
- function _assert_this_initialized(self) {
14
- if (self === void 0) {
15
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
16
- }
17
- return self;
18
- }
19
- function _class_call_check(instance, Constructor) {
20
- if (!(instance instanceof Constructor)) {
21
- throw new TypeError("Cannot call a class as a function");
22
- }
23
- }
24
- function _defineProperties(target, props) {
25
- for(var i = 0; i < props.length; i++){
26
- var descriptor = props[i];
27
- descriptor.enumerable = descriptor.enumerable || false;
28
- descriptor.configurable = true;
29
- if ("value" in descriptor) descriptor.writable = true;
30
- Object.defineProperty(target, descriptor.key, descriptor);
31
- }
32
- }
33
- function _create_class(Constructor, protoProps, staticProps) {
34
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
35
- if (staticProps) _defineProperties(Constructor, staticProps);
36
- return Constructor;
37
- }
38
- function _get(target, property, receiver) {
39
- if (typeof Reflect !== "undefined" && Reflect.get) {
40
- _get = Reflect.get;
41
- } else {
42
- _get = function get(target, property, receiver) {
43
- var base = _super_prop_base(target, property);
44
- if (!base) return;
45
- var desc = Object.getOwnPropertyDescriptor(base, property);
46
- if (desc.get) {
47
- return desc.get.call(receiver || target);
48
- }
49
- return desc.value;
50
- };
51
- }
52
- return _get(target, property, receiver || target);
53
- }
54
- function _get_prototype_of(o) {
55
- _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
56
- return o.__proto__ || Object.getPrototypeOf(o);
57
- };
58
- return _get_prototype_of(o);
59
- }
60
- function _inherits(subClass, superClass) {
61
- if (typeof superClass !== "function" && superClass !== null) {
62
- throw new TypeError("Super expression must either be null or a function");
63
- }
64
- subClass.prototype = Object.create(superClass && superClass.prototype, {
65
- constructor: {
66
- value: subClass,
67
- writable: true,
68
- configurable: true
69
- }
70
- });
71
- if (superClass) _set_prototype_of(subClass, superClass);
72
- }
73
- function _interop_require_default(obj) {
74
- return obj && obj.__esModule ? obj : {
75
- default: obj
76
- };
77
- }
78
- function _possible_constructor_return(self, call) {
79
- if (call && (_type_of(call) === "object" || typeof call === "function")) {
80
- return call;
81
- }
82
- return _assert_this_initialized(self);
83
- }
84
- function _set_prototype_of(o, p) {
85
- _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
86
- o.__proto__ = p;
87
- return o;
88
- };
89
- return _set_prototype_of(o, p);
90
- }
91
- function _super_prop_base(object, property) {
92
- while(!Object.prototype.hasOwnProperty.call(object, property)){
93
- object = _get_prototype_of(object);
94
- if (object === null) break;
95
- }
96
- return object;
97
- }
98
- function _type_of(obj) {
99
- "@swc/helpers - typeof";
100
- return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
101
- }
102
- function _is_native_reflect_construct() {
103
- if (typeof Reflect === "undefined" || !Reflect.construct) return false;
104
- if (Reflect.construct.sham) return false;
105
- if (typeof Proxy === "function") return true;
106
- try {
107
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
108
- return true;
109
- } catch (e) {
110
- return false;
111
- }
112
- }
113
- function _create_super(Derived) {
114
- var hasNativeReflectConstruct = _is_native_reflect_construct();
115
- return function _createSuperInternal() {
116
- var Super = _get_prototype_of(Derived), result;
117
- if (hasNativeReflectConstruct) {
118
- var NewTarget = _get_prototype_of(this).constructor;
119
- result = Reflect.construct(Super, arguments, NewTarget);
120
- } else {
121
- result = Super.apply(this, arguments);
122
- }
123
- return _possible_constructor_return(this, result);
124
- };
125
- }
126
- var second = _necessary.arrayUtilities.second;
127
- var PrimaryHeadingMarkdownNode = /*#__PURE__*/ function(MarkdownNode) {
128
- _inherits(PrimaryHeadingMarkdownNode, MarkdownNode);
129
- var _super = _create_super(PrimaryHeadingMarkdownNode);
130
- function PrimaryHeadingMarkdownNode() {
131
- _class_call_check(this, PrimaryHeadingMarkdownNode);
132
- return _super.apply(this, arguments);
133
- }
134
- _create_class(PrimaryHeadingMarkdownNode, [
135
- {
136
- key: "asHTML",
137
- value: function asHTML(indent, context) {
138
- var title = context.title;
139
- if (title === null) {
140
- title = this.title(context);
141
- Object.assign(context, {
142
- title: title
143
- });
144
- }
145
- var html = _get(_get_prototype_of(PrimaryHeadingMarkdownNode.prototype), "asHTML", this).call(this, indent, context);
146
- return html;
147
- }
148
- },
149
- {
150
- key: "title",
151
- value: function title(context) {
152
- var indent = null, childNodes = this.getChildNodes(), secondChildNode = second(childNodes), lineMarkdownNode = secondChildNode, lineMarkdownNodeChildNodesHTML = lineMarkdownNode.childNodesAsHTML(indent, context), title = lineMarkdownNodeChildNodesHTML;
153
- return title;
154
- }
155
- }
156
- ], [
157
- {
158
- key: "fromRuleNameChildNodesAndOpacity",
159
- value: function fromRuleNameChildNodesAndOpacity(ruleName, childNodes, opacity) {
160
- return _markdown.default.fromRuleNameChildNodesAndOpacity(PrimaryHeadingMarkdownNode, ruleName, childNodes, opacity);
161
- }
162
- }
163
- ]);
164
- return PrimaryHeadingMarkdownNode;
165
- }(_markdown.default);
166
-
167
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ub2RlL21hcmtkb3duL3ByaW1hcnlIZWFkaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IE1hcmtkb3duTm9kZSBmcm9tIFwiLi4vLi4vbm9kZS9tYXJrZG93blwiO1xuXG5jb25zdCB7IHNlY29uZCB9ID0gYXJyYXlVdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFByaW1hcnlIZWFkaW5nTWFya2Rvd25Ob2RlIGV4dGVuZHMgTWFya2Rvd25Ob2RlIHtcbiAgYXNIVE1MKGluZGVudCwgY29udGV4dCkge1xuICAgIGxldCB7IHRpdGxlIH0gPSBjb250ZXh0O1xuXG4gICAgaWYgKHRpdGxlID09PSBudWxsKSB7XG4gICAgICB0aXRsZSA9IHRoaXMudGl0bGUoY29udGV4dCk7XG5cbiAgICAgIE9iamVjdC5hc3NpZ24oY29udGV4dCwge1xuICAgICAgICB0aXRsZVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgaHRtbCA9IHN1cGVyLmFzSFRNTChpbmRlbnQsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGh0bWw7XG4gIH1cblxuICB0aXRsZShjb250ZXh0KSB7XG4gICAgY29uc3QgaW5kZW50ID0gbnVsbCxcbiAgICAgICAgICBjaGlsZE5vZGVzID0gdGhpcy5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgc2Vjb25kQ2hpbGROb2RlID0gc2Vjb25kKGNoaWxkTm9kZXMpLFxuICAgICAgICAgIGxpbmVNYXJrZG93bk5vZGUgPSBzZWNvbmRDaGlsZE5vZGUsIC8vL1xuICAgICAgICAgIGxpbmVNYXJrZG93bk5vZGVDaGlsZE5vZGVzSFRNTCA9IGxpbmVNYXJrZG93bk5vZGUuY2hpbGROb2Rlc0FzSFRNTChpbmRlbnQsIGNvbnRleHQpLFxuICAgICAgICAgIHRpdGxlID0gbGluZU1hcmtkb3duTm9kZUNoaWxkTm9kZXNIVE1MO1xuXG4gICAgcmV0dXJuIHRpdGxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21SdWxlTmFtZUNoaWxkTm9kZXNBbmRPcGFjaXR5KHJ1bGVOYW1lLCBjaGlsZE5vZGVzLCBvcGFjaXR5KSB7IHJldHVybiBNYXJrZG93bk5vZGUuZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc0FuZE9wYWNpdHkoUHJpbWFyeUhlYWRpbmdNYXJrZG93bk5vZGUsIHJ1bGVOYW1lLCBjaGlsZE5vZGVzLCBvcGFjaXR5KTsgfVxufVxuIl0sIm5hbWVzIjpbIlByaW1hcnlIZWFkaW5nTWFya2Rvd25Ob2RlIiwic2Vjb25kIiwiYXJyYXlVdGlsaXRpZXMiLCJhc0hUTUwiLCJpbmRlbnQiLCJjb250ZXh0IiwidGl0bGUiLCJPYmplY3QiLCJhc3NpZ24iLCJodG1sIiwiY2hpbGROb2RlcyIsImdldENoaWxkTm9kZXMiLCJzZWNvbmRDaGlsZE5vZGUiLCJsaW5lTWFya2Rvd25Ob2RlIiwibGluZU1hcmtkb3duTm9kZUNoaWxkTm9kZXNIVE1MIiwiY2hpbGROb2Rlc0FzSFRNTCIsImZyb21SdWxlTmFtZUNoaWxkTm9kZXNBbmRPcGFjaXR5IiwicnVsZU5hbWUiLCJvcGFjaXR5IiwiTWFya2Rvd25Ob2RlIl0sInJhbmdlTWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyIsIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQVFxQkE7Ozt5QkFOVTsrREFFTjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXpCLElBQU0sQUFBRUMsU0FBV0MseUJBQWMsQ0FBekJEO0FBRU8sSUFBQSxBQUFNRCwyQ0FBRCxBQUFMO2NBQU1BOytCQUFBQTthQUFBQTtnQ0FBQUE7OztrQkFBQUE7O1lBQ25CRyxLQUFBQTttQkFBQUEsU0FBQUEsT0FBT0MsTUFBTSxFQUFFQyxPQUFPO2dCQUNwQixJQUFJLEFBQUVDLFFBQVVELFFBQVZDO2dCQUVOLElBQUlBLFVBQVUsTUFBTTtvQkFDbEJBLFFBQVEsSUFBSSxDQUFDQSxLQUFLLENBQUNEO29CQUVuQkUsT0FBT0MsTUFBTSxDQUFDSCxTQUFTO3dCQUNyQkMsT0FBQUE7b0JBQ0Y7Z0JBQ0Y7Z0JBRUEsSUFBTUcsT0FBTyx1QkFaSVQsdUNBWUVHLFVBQU4sSUFBSyxhQUFRQyxRQUFRQztnQkFFbEMsT0FBT0k7WUFDVDs7O1lBRUFILEtBQUFBO21CQUFBQSxTQUFBQSxNQUFNRCxPQUFPO2dCQUNYLElBQU1ELFNBQVMsTUFDVE0sYUFBYSxJQUFJLENBQUNDLGFBQWEsSUFDL0JDLGtCQUFrQlgsT0FBT1MsYUFDekJHLG1CQUFtQkQsaUJBQ25CRSxpQ0FBaUNELGlCQUFpQkUsZ0JBQWdCLENBQUNYLFFBQVFDLFVBQzNFQyxRQUFRUTtnQkFFZCxPQUFPUjtZQUNUOzs7O1lBRU9VLEtBQUFBO21CQUFQLFNBQU9BLGlDQUFpQ0MsUUFBUSxFQUFFUCxVQUFVLEVBQUVRLE9BQU87Z0JBQUksT0FBT0MsaUJBQVksQ0FBQ0gsZ0NBQWdDLENBNUIxR2hCLDRCQTRCdUlpQixVQUFVUCxZQUFZUTtZQUFVOzs7V0E1QnZLbEI7RUFBbUNtQixpQkFBWSJ9
@@ -1,63 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- function _export(target, all) {
6
- for(var name in all)Object.defineProperty(target, name, {
7
- enumerable: true,
8
- get: all[name]
9
- });
10
- }
11
- _export(exports, {
12
- default: function() {
13
- return _default;
14
- },
15
- renumberLinkMarkdownNodes: function() {
16
- return renumberLinkMarkdownNodes;
17
- },
18
- renumberLinkMarkdownNodesHTML: function() {
19
- return renumberLinkMarkdownNodesHTML;
20
- }
21
- });
22
- var _necessary = require("necessary");
23
- var _constants = require("../constants");
24
- var _string = require("../utilities/string");
25
- var _query = require("../utilities/query");
26
- var strlen = _necessary.stringUtilities.strlen, indexOf = _necessary.stringUtilities.indexOf;
27
- function renumberLinkMarkdownNodesHTML(childNodesHTML, divisionMarkdownNode, footnotesListMarkdownNode, context) {
28
- var number = 1;
29
- var identifiers = footnotesListMarkdownNode.identifiers(), linkMarkdownNodes = (0, _query.linkMarkdownNodesFromNode)(divisionMarkdownNode);
30
- linkMarkdownNodes.forEach(function(linkMarkdownNode) {
31
- var indent = null, identifier = linkMarkdownNode.identifier(context), identifiersIncludesIdentifier = identifiers.includes(identifier), linkMarkdownNodeHTML = linkMarkdownNode.asHTML(indent, context), index = indexOf(childNodesHTML, linkMarkdownNodeHTML), length = strlen(linkMarkdownNodeHTML), start = index, deleteCount = length; ///
32
- if (identifiersIncludesIdentifier) {
33
- var linkMarkdownNodeHTML1 = linkMarkdownNode.asHTML(indent, context, number);
34
- childNodesHTML = (0, _string.splice)(childNodesHTML, start, deleteCount, linkMarkdownNodeHTML1);
35
- number++;
36
- } else {
37
- childNodesHTML = (0, _string.chop)(childNodesHTML, start, deleteCount);
38
- }
39
- });
40
- return childNodesHTML;
41
- }
42
- function renumberLinkMarkdownNodes(divisionMarkdownNode, footnotesListMarkdownNode, context) {
43
- var number = 1;
44
- var identifiers = footnotesListMarkdownNode.identifiers(), linkMarkdownNodes = (0, _query.linkMarkdownNodesFromNode)(divisionMarkdownNode);
45
- linkMarkdownNodes.forEach(function(linkMarkdownNode) {
46
- var identifier = linkMarkdownNode.identifier(context), linkMarkdownNodeDOMElement = linkMarkdownNode.getDOMElement(), identifiersIncludesIdentifier = identifiers.includes(identifier);
47
- var innerHTML;
48
- if (identifiersIncludesIdentifier) {
49
- innerHTML = "".concat(number);
50
- number++;
51
- } else {
52
- innerHTML = _constants.EMPTY_STRING;
53
- }
54
- Object.assign(linkMarkdownNodeDOMElement, {
55
- innerHTML: innerHTML
56
- });
57
- });
58
- }
59
- var _default = {
60
- renumberLinkMarkdownNodes: renumberLinkMarkdownNodes
61
- };
62
-
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvbGluay5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgc3RyaW5nVXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgeyBFTVBUWV9TVFJJTkcgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBjaG9wLCBzcGxpY2UgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuaW1wb3J0IHsgbGlua01hcmtkb3duTm9kZXNGcm9tTm9kZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgeyBzdHJsZW4sIGluZGV4T2YgfSA9IHN0cmluZ1V0aWxpdGllcztcblxuZXhwb3J0IGZ1bmN0aW9uIHJlbnVtYmVyTGlua01hcmtkb3duTm9kZXNIVE1MKGNoaWxkTm9kZXNIVE1MLCBkaXZpc2lvbk1hcmtkb3duTm9kZSwgZm9vdG5vdGVzTGlzdE1hcmtkb3duTm9kZSwgY29udGV4dCkge1xuICBsZXQgbnVtYmVyID0gMTtcblxuICBjb25zdCBpZGVudGlmaWVycyA9IGZvb3Rub3Rlc0xpc3RNYXJrZG93bk5vZGUuaWRlbnRpZmllcnMoKSxcbiAgICAgICAgbGlua01hcmtkb3duTm9kZXMgPSBsaW5rTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlKGRpdmlzaW9uTWFya2Rvd25Ob2RlKTtcblxuICBsaW5rTWFya2Rvd25Ob2Rlcy5mb3JFYWNoKChsaW5rTWFya2Rvd25Ob2RlKSA9PiB7XG4gICAgY29uc3QgaW5kZW50ID0gbnVsbCxcbiAgICAgICAgICBpZGVudGlmaWVyID0gbGlua01hcmtkb3duTm9kZS5pZGVudGlmaWVyKGNvbnRleHQpLFxuICAgICAgICAgIGlkZW50aWZpZXJzSW5jbHVkZXNJZGVudGlmaWVyID0gaWRlbnRpZmllcnMuaW5jbHVkZXMoaWRlbnRpZmllciksXG4gICAgICAgICAgbGlua01hcmtkb3duTm9kZUhUTUwgPSBsaW5rTWFya2Rvd25Ob2RlLmFzSFRNTChpbmRlbnQsIGNvbnRleHQpLFxuICAgICAgICAgIGluZGV4ID0gaW5kZXhPZihjaGlsZE5vZGVzSFRNTCwgbGlua01hcmtkb3duTm9kZUhUTUwpLFxuICAgICAgICAgIGxlbmd0aCA9IHN0cmxlbihsaW5rTWFya2Rvd25Ob2RlSFRNTCksXG4gICAgICAgICAgc3RhcnQgPSBpbmRleCwgIC8vL1xuICAgICAgICAgIGRlbGV0ZUNvdW50ID0gbGVuZ3RoOyAvLy9cblxuICAgIGlmIChpZGVudGlmaWVyc0luY2x1ZGVzSWRlbnRpZmllcikge1xuICAgICAgY29uc3QgbGlua01hcmtkb3duTm9kZUhUTUwgPSBsaW5rTWFya2Rvd25Ob2RlLmFzSFRNTChpbmRlbnQsIGNvbnRleHQsIG51bWJlcik7XG5cbiAgICAgIGNoaWxkTm9kZXNIVE1MID0gc3BsaWNlKGNoaWxkTm9kZXNIVE1MLCBzdGFydCwgZGVsZXRlQ291bnQsIGxpbmtNYXJrZG93bk5vZGVIVE1MKTtcblxuICAgICAgbnVtYmVyKys7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNoaWxkTm9kZXNIVE1MID0gY2hvcChjaGlsZE5vZGVzSFRNTCwgc3RhcnQsIGRlbGV0ZUNvdW50KTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBjaGlsZE5vZGVzSFRNTDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbnVtYmVyTGlua01hcmtkb3duTm9kZXMoZGl2aXNpb25NYXJrZG93bk5vZGUsIGZvb3Rub3Rlc0xpc3RNYXJrZG93bk5vZGUsIGNvbnRleHQpIHtcbiAgbGV0IG51bWJlciA9IDE7XG5cbiAgY29uc3QgaWRlbnRpZmllcnMgPSBmb290bm90ZXNMaXN0TWFya2Rvd25Ob2RlLmlkZW50aWZpZXJzKCksXG4gICAgICAgIGxpbmtNYXJrZG93bk5vZGVzID0gbGlua01hcmtkb3duTm9kZXNGcm9tTm9kZShkaXZpc2lvbk1hcmtkb3duTm9kZSk7XG5cbiAgbGlua01hcmtkb3duTm9kZXMuZm9yRWFjaCgobGlua01hcmtkb3duTm9kZSkgPT4ge1xuICAgIGNvbnN0IGlkZW50aWZpZXIgPSBsaW5rTWFya2Rvd25Ob2RlLmlkZW50aWZpZXIoY29udGV4dCksXG4gICAgICAgICAgbGlua01hcmtkb3duTm9kZURPTUVsZW1lbnQgPSBsaW5rTWFya2Rvd25Ob2RlLmdldERPTUVsZW1lbnQoKSxcbiAgICAgICAgICBpZGVudGlmaWVyc0luY2x1ZGVzSWRlbnRpZmllciA9IGlkZW50aWZpZXJzLmluY2x1ZGVzKGlkZW50aWZpZXIpO1xuXG4gICAgbGV0IGlubmVySFRNTDtcblxuICAgIGlmIChpZGVudGlmaWVyc0luY2x1ZGVzSWRlbnRpZmllcikge1xuICAgICAgaW5uZXJIVE1MID0gYCR7bnVtYmVyfWA7XG5cbiAgICAgIG51bWJlcisrO1xuICAgIH0gZWxzZSB7XG4gICAgICBpbm5lckhUTUwgPSBFTVBUWV9TVFJJTkc7XG4gICAgfVxuXG4gICAgT2JqZWN0LmFzc2lnbihsaW5rTWFya2Rvd25Ob2RlRE9NRWxlbWVudCwge1xuICAgICAgaW5uZXJIVE1MXG4gICAgfSk7XG4gIH0pO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHJlbnVtYmVyTGlua01hcmtkb3duTm9kZXNcbn07XG4iXSwibmFtZXMiOlsicmVudW1iZXJMaW5rTWFya2Rvd25Ob2RlcyIsInJlbnVtYmVyTGlua01hcmtkb3duTm9kZXNIVE1MIiwic3RybGVuIiwic3RyaW5nVXRpbGl0aWVzIiwiaW5kZXhPZiIsImNoaWxkTm9kZXNIVE1MIiwiZGl2aXNpb25NYXJrZG93bk5vZGUiLCJmb290bm90ZXNMaXN0TWFya2Rvd25Ob2RlIiwiY29udGV4dCIsIm51bWJlciIsImlkZW50aWZpZXJzIiwibGlua01hcmtkb3duTm9kZXMiLCJsaW5rTWFya2Rvd25Ob2Rlc0Zyb21Ob2RlIiwiZm9yRWFjaCIsImxpbmtNYXJrZG93bk5vZGUiLCJpbmRlbnQiLCJpZGVudGlmaWVyIiwiaWRlbnRpZmllcnNJbmNsdWRlc0lkZW50aWZpZXIiLCJpbmNsdWRlcyIsImxpbmtNYXJrZG93bk5vZGVIVE1MIiwiYXNIVE1MIiwiaW5kZXgiLCJsZW5ndGgiLCJzdGFydCIsImRlbGV0ZUNvdW50Iiwic3BsaWNlIiwiY2hvcCIsImxpbmtNYXJrZG93bk5vZGVET01FbGVtZW50IiwiZ2V0RE9NRWxlbWVudCIsImlubmVySFRNTCIsIkVNUFRZX1NUUklORyIsIk9iamVjdCIsImFzc2lnbiJdLCJyYW5nZU1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7IiwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQW1FQSxPQUVFO2VBRkY7O0lBM0JnQkEseUJBQXlCO2VBQXpCQTs7SUE5QkFDLDZCQUE2QjtlQUE3QkE7Ozt5QkFSZ0I7eUJBRUg7c0JBQ0E7cUJBQ2E7QUFFMUMsSUFBUUMsU0FBb0JDLDBCQUFlLENBQW5DRCxRQUFRRSxVQUFZRCwwQkFBZSxDQUEzQkM7QUFFVCxTQUFTSCw4QkFBOEJJLGNBQWMsRUFBRUMsb0JBQW9CLEVBQUVDLHlCQUF5QixFQUFFQyxPQUFPO0lBQ3BILElBQUlDLFNBQVM7SUFFYixJQUFNQyxjQUFjSCwwQkFBMEJHLFdBQVcsSUFDbkRDLG9CQUFvQkMsSUFBQUEsZ0NBQXlCLEVBQUNOO0lBRXBESyxrQkFBa0JFLE9BQU8sQ0FBQyxTQUFDQztRQUN6QixJQUFNQyxTQUFTLE1BQ1RDLGFBQWFGLGlCQUFpQkUsVUFBVSxDQUFDUixVQUN6Q1MsZ0NBQWdDUCxZQUFZUSxRQUFRLENBQUNGLGFBQ3JERyx1QkFBdUJMLGlCQUFpQk0sTUFBTSxDQUFDTCxRQUFRUCxVQUN2RGEsUUFBUWpCLFFBQVFDLGdCQUFnQmMsdUJBQ2hDRyxTQUFTcEIsT0FBT2lCLHVCQUNoQkksUUFBUUYsT0FDUkcsY0FBY0YsUUFBUSxHQUFHO1FBRS9CLElBQUlMLCtCQUErQjtZQUNqQyxJQUFNRSx3QkFBdUJMLGlCQUFpQk0sTUFBTSxDQUFDTCxRQUFRUCxTQUFTQztZQUV0RUosaUJBQWlCb0IsSUFBQUEsY0FBTSxFQUFDcEIsZ0JBQWdCa0IsT0FBT0MsYUFBYUw7WUFFNURWO1FBQ0YsT0FBTztZQUNMSixpQkFBaUJxQixJQUFBQSxZQUFJLEVBQUNyQixnQkFBZ0JrQixPQUFPQztRQUMvQztJQUNGO0lBRUEsT0FBT25CO0FBQ1Q7QUFFTyxTQUFTTCwwQkFBMEJNLG9CQUFvQixFQUFFQyx5QkFBeUIsRUFBRUMsT0FBTztJQUNoRyxJQUFJQyxTQUFTO0lBRWIsSUFBTUMsY0FBY0gsMEJBQTBCRyxXQUFXLElBQ25EQyxvQkFBb0JDLElBQUFBLGdDQUF5QixFQUFDTjtJQUVwREssa0JBQWtCRSxPQUFPLENBQUMsU0FBQ0M7UUFDekIsSUFBTUUsYUFBYUYsaUJBQWlCRSxVQUFVLENBQUNSLFVBQ3pDbUIsNkJBQTZCYixpQkFBaUJjLGFBQWEsSUFDM0RYLGdDQUFnQ1AsWUFBWVEsUUFBUSxDQUFDRjtRQUUzRCxJQUFJYTtRQUVKLElBQUlaLCtCQUErQjtZQUNqQ1ksWUFBWSxBQUFDLEdBQVMsT0FBUHBCO1lBRWZBO1FBQ0YsT0FBTztZQUNMb0IsWUFBWUMsdUJBQVk7UUFDMUI7UUFFQUMsT0FBT0MsTUFBTSxDQUFDTCw0QkFBNEI7WUFDeENFLFdBQUFBO1FBQ0Y7SUFDRjtBQUNGO0lBRUEsV0FBZTtJQUNiN0IsMkJBQUFBO0FBQ0YifQ==