hebrew-transliteration 2.6.0 → 2.6.2

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 (102) hide show
  1. package/dist/cjs/hebCharsTrans.js +73 -0
  2. package/dist/cjs/hebCharsTrans.js.map +7 -0
  3. package/dist/cjs/index.js +40 -0
  4. package/dist/cjs/index.js.map +7 -0
  5. package/dist/cjs/package.json +3 -0
  6. package/dist/cjs/remove.js +195 -0
  7. package/dist/cjs/remove.js.map +7 -0
  8. package/dist/cjs/rules.js +367 -0
  9. package/dist/cjs/rules.js.map +7 -0
  10. package/dist/cjs/schema.js +200 -0
  11. package/dist/cjs/schema.js.map +7 -0
  12. package/dist/cjs/schemas/brillAcademic.js +102 -0
  13. package/dist/cjs/schemas/brillAcademic.js.map +7 -0
  14. package/dist/cjs/schemas/brillSimple.js +101 -0
  15. package/dist/cjs/schemas/brillSimple.js.map +7 -0
  16. package/dist/cjs/schemas/index.js +49 -0
  17. package/dist/cjs/schemas/index.js.map +7 -0
  18. package/dist/cjs/schemas/jss.js +115 -0
  19. package/dist/cjs/schemas/jss.js.map +7 -0
  20. package/dist/cjs/schemas/michiganClaremont.js +95 -0
  21. package/dist/cjs/schemas/michiganClaremont.js.map +7 -0
  22. package/dist/cjs/schemas/romaniote.js +186 -0
  23. package/dist/cjs/schemas/romaniote.js.map +7 -0
  24. package/dist/cjs/schemas/sblAcademicSpirantization.js +101 -0
  25. package/dist/cjs/schemas/sblAcademicSpirantization.js.map +7 -0
  26. package/dist/cjs/schemas/sblSimple.js +110 -0
  27. package/dist/cjs/schemas/sblSimple.js.map +7 -0
  28. package/dist/cjs/schemas/tiberian.js +467 -0
  29. package/dist/cjs/schemas/tiberian.js.map +7 -0
  30. package/dist/cjs/sequence.js +34 -0
  31. package/dist/cjs/sequence.js.map +7 -0
  32. package/dist/cjs/transliterate.js +63 -0
  33. package/dist/cjs/transliterate.js.map +7 -0
  34. package/dist/{hebCharsTrans.js → esm/hebCharsTrans.js} +1 -4
  35. package/dist/esm/hebCharsTrans.js.map +1 -0
  36. package/dist/esm/index.js +11 -0
  37. package/dist/esm/index.js.map +1 -0
  38. package/dist/esm/package.json +3 -0
  39. package/dist/{remove.js → esm/remove.js} +15 -15
  40. package/dist/esm/remove.js.map +1 -0
  41. package/dist/{rules.js → esm/rules.js} +40 -52
  42. package/dist/esm/rules.js.map +1 -0
  43. package/dist/esm/schema.js +659 -0
  44. package/dist/esm/schema.js.map +1 -0
  45. package/dist/{schemas → esm/schemas}/brillAcademic.js +1 -4
  46. package/dist/esm/schemas/brillAcademic.js.map +1 -0
  47. package/dist/{schemas → esm/schemas}/brillSimple.js +1 -4
  48. package/dist/esm/schemas/brillSimple.js.map +1 -0
  49. package/dist/esm/schemas/index.js +10 -0
  50. package/dist/esm/schemas/index.js.map +1 -0
  51. package/dist/{schemas → esm/schemas}/jss.js +2 -6
  52. package/dist/esm/schemas/jss.js.map +1 -0
  53. package/dist/{schemas → esm/schemas}/michiganClaremont.js +1 -4
  54. package/dist/esm/schemas/michiganClaremont.js.map +1 -0
  55. package/dist/{schemas → esm/schemas}/romaniote.js +4 -7
  56. package/dist/esm/schemas/romaniote.js.map +1 -0
  57. package/dist/{schemas → esm/schemas}/sblAcademicSpirantization.js +1 -4
  58. package/dist/esm/schemas/sblAcademicSpirantization.js.map +1 -0
  59. package/dist/{schemas → esm/schemas}/sblSimple.js +1 -4
  60. package/dist/esm/schemas/sblSimple.js.map +1 -0
  61. package/dist/{schemas → esm/schemas}/tiberian.js +34 -51
  62. package/dist/esm/schemas/tiberian.js.map +1 -0
  63. package/dist/{sequence.js → esm/sequence.js} +4 -8
  64. package/dist/esm/sequence.js.map +1 -0
  65. package/dist/{transliterate.js → esm/transliterate.js} +12 -17
  66. package/dist/esm/transliterate.js.map +1 -0
  67. package/package.json +26 -22
  68. package/dist/hebCharsTrans.js.map +0 -1
  69. package/dist/index.js +0 -14
  70. package/dist/index.js.map +0 -1
  71. package/dist/remove.js.map +0 -1
  72. package/dist/rules.js.map +0 -1
  73. package/dist/schema.js +0 -174
  74. package/dist/schema.js.map +0 -1
  75. package/dist/schemas/brillAcademic.js.map +0 -1
  76. package/dist/schemas/brillSimple.js.map +0 -1
  77. package/dist/schemas/index.js +0 -20
  78. package/dist/schemas/index.js.map +0 -1
  79. package/dist/schemas/jss.js.map +0 -1
  80. package/dist/schemas/michiganClaremont.js.map +0 -1
  81. package/dist/schemas/romaniote.js.map +0 -1
  82. package/dist/schemas/sblAcademicSpirantization.js.map +0 -1
  83. package/dist/schemas/sblSimple.js.map +0 -1
  84. package/dist/schemas/tiberian.js.map +0 -1
  85. package/dist/sequence.js.map +0 -1
  86. package/dist/transliterate.js.map +0 -1
  87. /package/dist/{hebCharsTrans.d.ts → types/hebCharsTrans.d.ts} +0 -0
  88. /package/dist/{index.d.ts → types/index.d.ts} +0 -0
  89. /package/dist/{remove.d.ts → types/remove.d.ts} +0 -0
  90. /package/dist/{rules.d.ts → types/rules.d.ts} +0 -0
  91. /package/dist/{schema.d.ts → types/schema.d.ts} +0 -0
  92. /package/dist/{schemas → types/schemas}/brillAcademic.d.ts +0 -0
  93. /package/dist/{schemas → types/schemas}/brillSimple.d.ts +0 -0
  94. /package/dist/{schemas → types/schemas}/index.d.ts +0 -0
  95. /package/dist/{schemas → types/schemas}/jss.d.ts +0 -0
  96. /package/dist/{schemas → types/schemas}/michiganClaremont.d.ts +0 -0
  97. /package/dist/{schemas → types/schemas}/romaniote.d.ts +0 -0
  98. /package/dist/{schemas → types/schemas}/sblAcademicSpirantization.d.ts +0 -0
  99. /package/dist/{schemas → types/schemas}/sblSimple.d.ts +0 -0
  100. /package/dist/{schemas → types/schemas}/tiberian.d.ts +0 -0
  101. /package/dist/{sequence.d.ts → types/sequence.d.ts} +0 -0
  102. /package/dist/{transliterate.d.ts → types/transliterate.d.ts} +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/transliterate.ts"],
4
+ "sourcesContent": ["import { sylRules, wordRules } from \"./rules\";\nimport { SBL, Schema } from \"./schema\";\nimport { Text } from \"havarotjs\";\nimport { Word } from \"havarotjs/word\";\nimport { SylOpts } from \"havarotjs/text\";\n\n/**\n *\n * @param schema\n * @returns syllable options passed into havarotjs\n * @description sanitizes the SylOpts of the schema so as to not pass in undefined\n */\nconst getSylOpts = (schema: Partial<SylOpts>) => {\n const options: SylOpts = {};\n if (\"longVowels\" in schema) options.longVowels = schema.longVowels;\n if (\"qametsQatan\" in schema) options.qametsQatan = schema.qametsQatan;\n if (\"sqnmlvy\" in schema) options.shevaAfterMeteg = schema.shevaAfterMeteg;\n if (\"sqnmlvy\" in schema) options.sqnmlvy = schema.sqnmlvy;\n if (\"wawShureq\" in schema) options.wawShureq = schema.wawShureq;\n if (\"article\" in schema) options.article = schema.article;\n if (\"allowNoNiqqud\" in schema) options.allowNoNiqqud = schema.allowNoNiqqud;\n if (\"strict\" in schema) options.strict = schema.strict;\n return options;\n};\n\n/**\n * transliterates Hebrew text\n *\n * @param text - a string or {@link https://charlesloder.github.io/havarot/classes/text.Text.html | Text} of Hebrew characters\n * @param schema - a {@link Schema} for transliterating the text\n * @returns a transliterated text\n *\n * @example Default\n * ```ts\n * import { transliterate } from \"hebrew-transliteration\";\n *\n * transliterate(\"\u05D0\u05B1\u05DC\u05B9\u05D4\u05B4\u05D9\u05DD\");\n * // \"\u02BE\u0115l\u014Dh\u00EEm\";\n * ```\n *\n * ---\n *\n * @remarks\n *\n * If no {@link Schema} is passed, then the package defaults to SBL's academic style\n *\n * You can pass in a partial schema that will modify SBL's academic style:\n *\n * ```ts\n * transliterate(\"\u05E9\u05C1\u05B8\u05DC\u05D5\u05B9\u05DD\", { SHIN: \"sh\" })\n * // sh\u0101l\u00F4m\n * ```\n *\n * ---\n *\n * If you need a fully custom schema, it is best to use the {@link Schema} constructor:\n *\n * ```ts\n * import { transliterate, Schema } from \"hebrew-transliteration\";\n *\n * const schema = new Schema({ ALEF: \"'\", BET: \"B\", ... QAMETS: \"A\", ... }) // truncated for brevity\n *\n * transliterate(\"\u05D0\u05B8\u05A3\u05D1\", schema)\n * // 'AB\n * ```\n *\n */\nexport const transliterate = (text: string | Text, schema?: Partial<Schema> | Schema) => {\n const transSchema = schema instanceof Schema ? schema : new SBL(schema ?? {});\n const newText = text instanceof Text ? text : new Text(text, getSylOpts(transSchema ?? {}));\n return newText.words\n .map((word) => {\n let transliteration = wordRules(word, transSchema);\n if (transliteration instanceof Word) {\n transliteration = transliteration.syllables\n .map((s) => sylRules(s, transSchema))\n .join(transSchema.SYLLABLE_SEPARATOR ?? \"\");\n }\n return `${transliteration}${word.whiteSpaceAfter ?? \"\"}`;\n })\n .join(\"\");\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;AAAA;;;;;mBAAoC;AACpC,oBAA4B;AAC5B,uBAAqB;AACrB,kBAAqB;AASrB,MAAM,aAAa,CAAC,WAA4B;AAC9C,QAAM,UAAmB,CAAA;AACzB,MAAI,gBAAgB;AAAQ,YAAQ,aAAa,OAAO;AACxD,MAAI,iBAAiB;AAAQ,YAAQ,cAAc,OAAO;AAC1D,MAAI,aAAa;AAAQ,YAAQ,kBAAkB,OAAO;AAC1D,MAAI,aAAa;AAAQ,YAAQ,UAAU,OAAO;AAClD,MAAI,eAAe;AAAQ,YAAQ,YAAY,OAAO;AACtD,MAAI,aAAa;AAAQ,YAAQ,UAAU,OAAO;AAClD,MAAI,mBAAmB;AAAQ,YAAQ,gBAAgB,OAAO;AAC9D,MAAI,YAAY;AAAQ,YAAQ,SAAS,OAAO;AAChD,SAAO;AACT;AA4CO,MAAM,gBAAgB,CAAC,MAAqB,WAAqC;AACtF,QAAM,cAAc,kBAAkB,uBAAS,SAAS,IAAI,kBAAI,0BAAU,CAAA,CAAE;AAC5E,QAAM,UAAU,gBAAgB,wBAAO,OAAO,IAAI,sBAAK,MAAM,WAAW,oCAAe,CAAA,CAAE,CAAC;AAC1F,SAAO,QAAQ,MACZ,IAAI,CAAC,SAAQ;AAvElB;AAwEM,QAAI,sBAAkB,wBAAU,MAAM,WAAW;AACjD,QAAI,2BAA2B,kBAAM;AACnC,wBAAkB,gBAAgB,UAC/B,IAAI,CAAC,UAAM,uBAAS,GAAG,WAAW,CAAC,EACnC,MAAK,iBAAY,uBAAZ,YAAkC,EAAE;IAC9C;AACA,WAAO,GAAG,mBAAkB,UAAK,oBAAL,YAAwB;EACtD,CAAC,EACA,KAAK,EAAE;AACZ;",
6
+ "names": []
7
+ }
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.transliterateMap = void 0;
4
- exports.transliterateMap = {
1
+ export const transliterateMap = {
5
2
  // niqqud
6
3
  "\u{05B0}": "VOCAL_SHEVA", // HEBREW POINT SHEVA (U+05B0)
7
4
  "\u{05B1}": "HATAF_SEGOL", // HEBREW POINT HATAF SEGOL (U+05B1)
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hebCharsTrans.js","sourceRoot":"","sources":["../../src/hebCharsTrans.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,gBAAgB,GAAQ;IACnC,WAAW;IACX,UAAU,EAAE,aAAa,EAAE,8BAA8B;IACzD,UAAU,EAAE,aAAa,EAAE,oCAAoC;IAC/D,UAAU,EAAE,aAAa,EAAE,oCAAoC;IAC/D,UAAU,EAAE,cAAc,EAAE,qCAAqC;IACjE,UAAU,EAAE,OAAO,EAAE,8BAA8B;IACnD,UAAU,EAAE,OAAO,EAAE,8BAA8B;IACnD,UAAU,EAAE,OAAO,EAAE,8BAA8B;IACnD,UAAU,EAAE,OAAO,EAAE,8BAA8B;IACnD,UAAU,EAAE,QAAQ,EAAE,+BAA+B;IACrD,UAAU,EAAE,OAAO,EAAE,8BAA8B;IACnD,UAAU,EAAE,OAAO,EAAE,4CAA4C;IACjE,UAAU,EAAE,QAAQ,EAAE,+BAA+B;IACrD,UAAU,EAAE,QAAQ,EAAE,wCAAwC;IAC9D,kDAAkD;IAClD,UAAU,EAAE,OAAO,EAAE,oCAAoC;IACzD,UAAU,EAAE,OAAO,EAAE,oCAAoC;IACzD,UAAU,EAAE,WAAW,EAAE,wCAAwC;IACjE,UAAU,EAAE,cAAc,EAAE,qCAAqC;IACjE,eAAe;IACf,CAAC,EAAE,MAAM,EAAE,8BAA8B;IACzC,CAAC,EAAE,KAAK,EAAE,6BAA6B;IACvC,CAAC,EAAE,OAAO,EAAE,+BAA+B;IAC3C,CAAC,EAAE,OAAO,EAAE,+BAA+B;IAC3C,CAAC,EAAE,IAAI,EAAE,4BAA4B;IACrC,CAAC,EAAE,KAAK,EAAE,6BAA6B;IACvC,CAAC,EAAE,OAAO,EAAE,+BAA+B;IAC3C,CAAC,EAAE,KAAK,EAAE,6BAA6B;IACvC,CAAC,EAAE,KAAK,EAAE,6BAA6B;IACvC,CAAC,EAAE,KAAK,EAAE,6BAA6B;IACvC,CAAC,EAAE,WAAW,EAAE,mCAAmC;IACnD,CAAC,EAAE,KAAK,EAAE,6BAA6B;IACvC,CAAC,EAAE,OAAO,EAAE,+BAA+B;IAC3C,CAAC,EAAE,WAAW,EAAE,mCAAmC;IACnD,CAAC,EAAE,KAAK,EAAE,6BAA6B;IACvC,CAAC,EAAE,WAAW,EAAE,mCAAmC;IACnD,CAAC,EAAE,KAAK,EAAE,6BAA6B;IACvC,CAAC,EAAE,QAAQ,EAAE,gCAAgC;IAC7C,CAAC,EAAE,MAAM,EAAE,8BAA8B;IACzC,CAAC,EAAE,UAAU,EAAE,kCAAkC;IACjD,CAAC,EAAE,IAAI,EAAE,4BAA4B;IACrC,CAAC,EAAE,aAAa,EAAE,qCAAqC;IACvD,CAAC,EAAE,OAAO,EAAE,+BAA+B;IAC3C,CAAC,EAAE,KAAK,EAAE,6BAA6B;IACvC,CAAC,EAAE,MAAM,EAAE,8BAA8B;IACzC,CAAC,EAAE,MAAM,EAAE,8BAA8B;IACzC,CAAC,EAAE,KAAK,CAAC,6BAA6B;IACtC,kDAAkD;IAClD,wDAAwD;IACxD,qDAAqD;IACrD,uDAAuD;CACxD,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { Text } from "havarotjs";
2
+ import { transliterate } from "./transliterate.js";
3
+ import { sequence } from "./sequence.js";
4
+ import { remove } from "./remove.js";
5
+ import { Schema } from "./schema.js";
6
+ /**
7
+ * I accidentally published a canary version without a tag, making it "latest".
8
+ * Just adding this comment and creating a new version to make it latest
9
+ */
10
+ export { remove, Schema, sequence, Text, transliterate };
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "module"
3
+ }
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.remove = exports.all = exports.marks = exports.punctuation = exports.vowels = exports.points = exports.accents = void 0;
4
- const sequence_1 = require("./sequence");
1
+ import { sequence } from "./sequence.js";
5
2
  const removeMap = {
6
3
  // accents //
7
4
  ETNAHTA: "\u{0591}", // U+0591 HEBREW ACCENT ETNAHTA
@@ -68,7 +65,7 @@ const removeMap = {
68
65
  /**
69
66
  * removes all chars called HEBREW ACCENT (U+0591-05AF)
70
67
  */
71
- exports.accents = {
68
+ export const accents = {
72
69
  ETNAHTA: true,
73
70
  SEGOLTA: true,
74
71
  SHALSHELET: true,
@@ -103,7 +100,7 @@ exports.accents = {
103
100
  /**
104
101
  * removes all chars called HEBREW POINT (U+05B0-05BD, U+05BF, U+05C1-05C2 and U+05C7)
105
102
  */
106
- exports.points = {
103
+ export const points = {
107
104
  SHEVA: true,
108
105
  HATAF_SEGOL: true,
109
106
  HATAF_PATAH: true,
@@ -129,7 +126,7 @@ exports.points = {
129
126
  * - METEG
130
127
  * - RAFE
131
128
  */
132
- exports.vowels = {
129
+ export const vowels = {
133
130
  SHEVA: true,
134
131
  HATAF_SEGOL: true,
135
132
  HATAF_PATAH: true,
@@ -147,7 +144,7 @@ exports.vowels = {
147
144
  /**
148
145
  * removes all chars called HEBREW PUNCTUATION (U+05BE, U+05C0, U+05C3, and U+05C6)
149
146
  */
150
- exports.punctuation = {
147
+ export const punctuation = {
151
148
  MAQAF: true,
152
149
  PASEQ: true,
153
150
  SOF_PASUQ: true,
@@ -158,12 +155,17 @@ exports.punctuation = {
158
155
  /**
159
156
  * removes all chars called HEBREW MARK (U+05AF, U+05C4, and U+05C5)
160
157
  */
161
- exports.marks = {
158
+ export const marks = {
162
159
  MASORA_CIRCLE: true,
163
160
  UPPER_DOT: true,
164
161
  LOWER_DOT: true
165
162
  };
166
- exports.all = Object.assign(Object.assign(Object.assign(Object.assign({}, exports.accents), exports.points), exports.punctuation), exports.marks);
163
+ export const all = {
164
+ ...accents,
165
+ ...points,
166
+ ...punctuation,
167
+ ...marks
168
+ };
167
169
  /**
168
170
  * removes niqqud from Hebrew text
169
171
  *
@@ -197,18 +199,16 @@ exports.all = Object.assign(Object.assign(Object.assign(Object.assign({}, export
197
199
  * // שרי אשתך, וימצאו
198
200
  * ```
199
201
  */
200
- const remove = (text, options = Object.assign(Object.assign({}, exports.accents), { METEG: true, RAFE: true })) => {
202
+ export const remove = (text, options = { ...accents, METEG: true, RAFE: true }) => {
201
203
  /** all the keys of options that are to be removed */
202
204
  const keys = Object.keys(options).filter((k) => (k in options ? options[k] : false));
203
- const sequenced = (0, sequence_1.sequence)(text);
205
+ const sequenced = sequence(text);
204
206
  return keys.reduce((a, c) => {
205
- var _a;
206
- const key = (_a = removeMap[c]) !== null && _a !== void 0 ? _a : null;
207
+ const key = removeMap[c] ?? null;
207
208
  if (key) {
208
209
  return a.replace(new RegExp(key, "gu"), "");
209
210
  }
210
211
  return a;
211
212
  }, sequenced);
212
213
  };
213
- exports.remove = remove;
214
214
  //# sourceMappingURL=remove.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove.js","sourceRoot":"","sources":["../../src/remove.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AA6OtC,MAAM,SAAS,GAAQ;IACrB,aAAa;IACb,OAAO,EAAE,UAAU,EAAE,+BAA+B;IACpD,OAAO,EAAE,UAAU,EAAE,6BAA6B;IAClD,UAAU,EAAE,UAAU,EAAE,kCAAkC;IAC1D,WAAW,EAAE,UAAU,EAAE,mCAAmC;IAC5D,WAAW,EAAE,UAAU,EAAE,mCAAmC;IAC5D,MAAM,EAAE,UAAU,EAAE,8BAA8B;IAClD,KAAK,EAAE,UAAU,EAAE,6BAA6B;IAChD,KAAK,EAAE,UAAU,EAAE,6BAA6B;IAChD,MAAM,EAAE,UAAU,EAAE,8BAA8B;IAClD,KAAK,EAAE,UAAU,EAAE,6BAA6B;IAChD,KAAK,EAAE,UAAU,EAAE,6BAA6B;IAChD,MAAM,EAAE,UAAU,EAAE,8BAA8B;IAClD,aAAa,EAAE,UAAU,EAAE,qCAAqC;IAChE,SAAS,EAAE,UAAU,EAAE,iCAAiC;IACxD,WAAW,EAAE,UAAU,EAAE,mCAAmC;IAC5D,cAAc,EAAE,UAAU,EAAE,sCAAsC;IAClE,KAAK,EAAE,UAAU,EAAE,6BAA6B;IAChD,YAAY,EAAE,UAAU,EAAE,oCAAoC;IAC9D,KAAK,EAAE,UAAU,EAAE,6BAA6B;IAChD,QAAQ,EAAE,UAAU,EAAE,gCAAgC;IACtD,MAAM,EAAE,UAAU,EAAE,8BAA8B;IAClD,aAAa,EAAE,UAAU,EAAE,qCAAqC;IAChE,KAAK,EAAE,UAAU,EAAE,6BAA6B;IAChD,KAAK,EAAE,UAAU,EAAE,6BAA6B;IAChD,cAAc,EAAE,UAAU,EAAE,sCAAsC;IAClE,cAAc,EAAE,UAAU,EAAE,sCAAsC;IAClE,GAAG,EAAE,UAAU,EAAE,2BAA2B;IAC5C,IAAI,EAAE,UAAU,EAAE,4BAA4B;IAC9C,IAAI,EAAE,UAAU,EAAE,4BAA4B;IAC9C,KAAK,EAAE,UAAU,EAAE,6BAA6B;IAChD,YAAY;IACZ,KAAK,EAAE,UAAU,EAAE,qBAAqB;IACxC,WAAW,EAAE,UAAU,EAAE,2BAA2B;IACpD,WAAW,EAAE,UAAU,EAAE,2BAA2B;IACpD,YAAY,EAAE,UAAU,EAAE,4BAA4B;IACtD,KAAK,EAAE,UAAU,EAAE,qBAAqB;IACxC,KAAK,EAAE,UAAU,EAAE,qBAAqB;IACxC,KAAK,EAAE,UAAU,EAAE,qBAAqB;IACxC,KAAK,EAAE,UAAU,EAAE,qBAAqB;IACxC,MAAM,EAAE,UAAU,EAAE,sBAAsB;IAC1C,KAAK,EAAE,UAAU,EAAE,qBAAqB;IACxC,6DAA6D;IAC7D,uEAAuE;IACvE,MAAM,EAAE,UAAU,EAAE,sBAAsB;IAC1C,MAAM,EAAE,UAAU,EAAE,+BAA+B;IACnD,KAAK,EAAE,UAAU,EAAE,qBAAqB;IACxC,IAAI,EAAE,UAAU,EAAE,oBAAoB;IACtC,QAAQ,EAAE,UAAU,EAAE,wBAAwB;IAC9C,OAAO,EAAE,UAAU,EAAE,uBAAuB;IAC5C,YAAY,EAAE,UAAU,EAAE,4BAA4B;IACtD,KAAK,EAAE,UAAU,EAAE,2BAA2B;IAC9C,KAAK,EAAE,UAAU,EAAE,2BAA2B;IAC9C,SAAS,EAAE,UAAU,EAAE,+BAA+B;IACtD,WAAW,EAAE,UAAU,EAAE,iCAAiC;IAC1D,sEAAsE;IACtE,WAAW,EAAE,UAAU,EAAE,4BAA4B;IACrD,cAAc,EAAE,UAAU,EAAE,+BAA+B;IAC3D,aAAa,EAAE,UAAU,EAAE,oCAAoC;IAC/D,SAAS,EAAE,UAAU,EAAE,gCAAgC;IACvD,SAAS,EAAE,UAAU,CAAC,iCAAiC;CACxD,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAkB;IACpC,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,UAAU,EAAE,IAAI;IAChB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,IAAI;IACjB,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,IAAI;IACZ,aAAa,EAAE,IAAI;IACnB,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,IAAI;IACjB,cAAc,EAAE,IAAI;IACpB,KAAK,EAAE,IAAI;IACX,YAAY,EAAE,IAAI;IAClB,KAAK,EAAE,IAAI;IACX,QAAQ,EAAE,IAAI;IACd,MAAM,EAAE,IAAI;IACZ,aAAa,EAAE,IAAI;IACnB,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,IAAI;IACpB,GAAG,EAAE,IAAI;IACT,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,IAAI;CACZ,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAkB;IACnC,KAAK,EAAE,IAAI;IACX,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,IAAI;IACjB,YAAY,EAAE,IAAI;IAClB,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,IAAI;IACV,YAAY,EAAE,IAAI;CACnB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,MAAM,GAAkB;IACnC,KAAK,EAAE,IAAI;IACX,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,IAAI;IACjB,YAAY,EAAE,IAAI;IAClB,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,YAAY,EAAE,IAAI;CACnB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAkB;IACxC,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,IAAI;IACjB,cAAc,EAAE,IAAI;CACrB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,KAAK,GAAkB;IAClC,aAAa,EAAE,IAAI;IACnB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;CAChB,CAAC;AAEF,MAAM,CAAC,MAAM,GAAG,GAAkB;IAChC,GAAG,OAAO;IACV,GAAG,MAAM;IACT,GAAG,WAAW;IACd,GAAG,KAAK;CACT,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,UAAyB,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAU,EAAE;IAC/G,qDAAqD;IACrD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAClG,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC1B,MAAM,GAAG,GAAG,SAAS,CAAC,CAAc,CAAC,IAAI,IAAI,CAAC;QAC9C,IAAI,GAAG,EAAE,CAAC;YACR,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC,EAAE,SAAS,CAAC,CAAC;AAChB,CAAC,CAAC"}
@@ -1,11 +1,8 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.wordRules = exports.sylRules = exports.replaceAndTransliterate = void 0;
4
- const cluster_1 = require("havarotjs/cluster");
5
- const syllable_1 = require("havarotjs/syllable");
6
- const word_1 = require("havarotjs/word");
7
- const regularExpressions_1 = require("havarotjs/utils/regularExpressions");
8
- const hebCharsTrans_1 = require("./hebCharsTrans");
1
+ import { Cluster } from "havarotjs/cluster";
2
+ import { Syllable } from "havarotjs/syllable";
3
+ import { Word } from "havarotjs/word";
4
+ import { hebChars, clusterSplitGroup } from "havarotjs/utils/regularExpressions";
5
+ import { transliterateMap as map } from "./hebCharsTrans.js";
9
6
  const taamim = /[\u{0590}-\u{05AF}\u{05BD}\u{05BF}]/gu;
10
7
  /**
11
8
  * maps Hebrew characters to schema
@@ -16,7 +13,7 @@ const taamim = /[\u{0590}-\u{05AF}\u{05BD}\u{05BF}]/gu;
16
13
  *
17
14
  */
18
15
  const mapChars = (schema) => (input) => {
19
- return [...input].map((char) => (char in hebCharsTrans_1.transliterateMap ? schema[hebCharsTrans_1.transliterateMap[char]] : char)).join("");
16
+ return [...input].map((char) => (char in map ? schema[map[char]] : char)).join("");
20
17
  };
21
18
  /**
22
19
  * a wrapper around String.replace() to constrain to a RegExp
@@ -44,13 +41,11 @@ const replaceWithRegex = (input, regex, replaceValue) => input.replace(regex, re
44
41
  * @param schema the Schema
45
42
  * @returns
46
43
  */
47
- const replaceAndTransliterate = (input, regex, replaceValue, schema) => {
44
+ export const replaceAndTransliterate = (input, regex, replaceValue, schema) => {
48
45
  const sylSeq = replaceWithRegex(input, regex, replaceValue);
49
46
  return [...sylSeq].map(mapChars(schema)).join("");
50
47
  };
51
- exports.replaceAndTransliterate = replaceAndTransliterate;
52
48
  const isDageshChazaq = (cluster, schema) => {
53
- var _a, _b, _c, _d, _e, _f;
54
49
  // if there is no dagesh chazaq in the schema, then return false
55
50
  if (!schema.DAGESH_CHAZAQ) {
56
51
  return false;
@@ -63,20 +58,20 @@ const isDageshChazaq = (cluster, schema) => {
63
58
  if (!/\u{05BC}/u.test(cluster.text)) {
64
59
  return false;
65
60
  }
66
- const prevWord = (_c = (_b = (_a = cluster.syllable) === null || _a === void 0 ? void 0 : _a.word) === null || _b === void 0 ? void 0 : _b.prev) === null || _c === void 0 ? void 0 : _c.value;
67
- if (prevWord && (prevWord === null || prevWord === void 0 ? void 0 : prevWord.isInConstruct) && !prevWord.syllables[prevWord.syllables.length - 1].isClosed) {
61
+ const prevWord = cluster.syllable?.word?.prev?.value;
62
+ if (prevWord && prevWord?.isInConstruct && !prevWord.syllables[prevWord.syllables.length - 1].isClosed) {
68
63
  return true;
69
64
  }
70
65
  // this could be a code smell, b/c the copySyllable function results are not the most predictable
71
- const prevSyllable = (_d = cluster.syllable) === null || _d === void 0 ? void 0 : _d.prev;
66
+ const prevSyllable = cluster.syllable?.prev;
72
67
  if (!prevSyllable) {
73
68
  return false;
74
69
  }
75
- const prevCoda = (_e = prevSyllable.value) === null || _e === void 0 ? void 0 : _e.codaWithGemination;
70
+ const prevCoda = prevSyllable.value?.codaWithGemination;
76
71
  if (!prevCoda) {
77
72
  return false;
78
73
  }
79
- return prevCoda === ((_f = cluster.syllable) === null || _f === void 0 ? void 0 : _f.onset);
74
+ return prevCoda === cluster.syllable?.onset;
80
75
  };
81
76
  const getDageshChazaqVal = (input, dagesh, isChazaq) => {
82
77
  if (!isChazaq) {
@@ -99,13 +94,13 @@ const getDivineName = (str, schema) => {
99
94
  const end = str[str.length - 1];
100
95
  // if DN is pointed with a hiriq, then it is read as 'elohim
101
96
  const divineName = schema.DIVINE_NAME_ELOHIM && /\u{05B4}/u.test(str) ? schema.DIVINE_NAME_ELOHIM : schema.DIVINE_NAME;
102
- return `${regularExpressions_1.hebChars.test(begn) ? "" : begn}${divineName}${regularExpressions_1.hebChars.test(end) ? "" : end}`;
97
+ return `${hebChars.test(begn) ? "" : begn}${divineName}${hebChars.test(end) ? "" : end}`;
103
98
  };
104
99
  const materFeatures = (syl, schema) => {
105
100
  const mater = syl.clusters.filter((c) => c.isMater)[0];
106
- const prev = mater.prev instanceof cluster_1.Cluster ? mater.prev : null;
101
+ const prev = mater.prev instanceof Cluster ? mater.prev : null;
107
102
  const materText = mater.text;
108
- const prevText = ((prev === null || prev === void 0 ? void 0 : prev.text) || "").replace(taamim, "");
103
+ const prevText = (prev?.text || "").replace(taamim, "");
109
104
  // string comprised of all non-mater clusters in a syl with a mater
110
105
  let noMaterText = syl.clusters
111
106
  .filter((c) => !c.isMater)
@@ -151,8 +146,7 @@ const materFeatures = (syl, schema) => {
151
146
  return materText;
152
147
  };
153
148
  const joinSyllableChars = (syl, sylChars, schema) => {
154
- var _a, _b, _c;
155
- const isInConstruct = (_a = syl.word) === null || _a === void 0 ? void 0 : _a.isInConstruct;
149
+ const isInConstruct = syl.word?.isInConstruct;
156
150
  if (isInConstruct) {
157
151
  return sylChars.map(mapChars(schema)).join("");
158
152
  }
@@ -165,7 +159,7 @@ const joinSyllableChars = (syl, sylChars, schema) => {
165
159
  return sylChars.map(mapChars(schema)).join("");
166
160
  }
167
161
  if (schema.STRESS_MARKER) {
168
- const exclude = (_c = (_b = schema.STRESS_MARKER) === null || _b === void 0 ? void 0 : _b.exclude) !== null && _c !== void 0 ? _c : "never";
162
+ const exclude = schema.STRESS_MARKER?.exclude ?? "never";
169
163
  if (exclude === "single" && !syl.prev && !syl.next) {
170
164
  return sylChars.map(mapChars(schema)).join("");
171
165
  }
@@ -215,24 +209,23 @@ const joinSyllableChars = (syl, sylChars, schema) => {
215
209
  const str = sylChars.map(mapChars(schema)).join("");
216
210
  const match = str.match(vowelRgx);
217
211
  if (location === "before-vowel") {
218
- return (match === null || match === void 0 ? void 0 : match.length) ? str.replace(match[0], `${mark}${match[0]}`) : str;
212
+ return match?.length ? str.replace(match[0], `${mark}${match[0]}`) : str;
219
213
  }
220
214
  // after-vowel
221
- return (match === null || match === void 0 ? void 0 : match.length) ? str.replace(match[0], `${match[0]}${mark}`) : str;
215
+ return match?.length ? str.replace(match[0], `${match[0]}${mark}`) : str;
222
216
  }
223
217
  return sylChars.map(mapChars(schema)).join("");
224
218
  };
225
219
  const consonantFeatures = (clusterText, syl, cluster, schema) => {
226
- var _a, _b;
227
- if ((_a = schema.ADDITIONAL_FEATURES) === null || _a === void 0 ? void 0 : _a.length) {
220
+ if (schema.ADDITIONAL_FEATURES?.length) {
228
221
  const seqs = schema.ADDITIONAL_FEATURES;
229
222
  for (const seq of seqs) {
230
223
  const heb = new RegExp(seq.HEBREW, "u");
231
224
  if (seq.FEATURE === "cluster" && heb.test(clusterText)) {
232
225
  const transliteration = seq.TRANSLITERATION;
233
- const passThrough = (_b = seq.PASS_THROUGH) !== null && _b !== void 0 ? _b : true;
226
+ const passThrough = seq.PASS_THROUGH ?? true;
234
227
  if (typeof transliteration === "string") {
235
- return (0, exports.replaceAndTransliterate)(clusterText, heb, transliteration, schema);
228
+ return replaceAndTransliterate(clusterText, heb, transliteration, schema);
236
229
  }
237
230
  if (!passThrough) {
238
231
  return transliteration(cluster, seq.HEBREW, schema);
@@ -300,28 +293,27 @@ const consonantFeatures = (clusterText, syl, cluster, schema) => {
300
293
  return clusterText;
301
294
  };
302
295
  const copySyllable = (newText, old) => {
303
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
304
- const newClusters = newText.split(regularExpressions_1.clusterSplitGroup).map((clusterString) => new cluster_1.Cluster(clusterString, true));
296
+ const newClusters = newText.split(clusterSplitGroup).map((clusterString) => new Cluster(clusterString, true));
305
297
  const oldClusters = old.clusters;
306
298
  // set prev and next based on old syllable
307
299
  if (newClusters.length === oldClusters.length) {
308
- newClusters.forEach((c, i) => { var _a, _b, _c, _d; return ((c.prev = (_b = (_a = oldClusters[i]) === null || _a === void 0 ? void 0 : _a.prev) !== null && _b !== void 0 ? _b : null), (c.next = (_d = (_c = oldClusters[i]) === null || _c === void 0 ? void 0 : _c.next) !== null && _d !== void 0 ? _d : null)); });
300
+ newClusters.forEach((c, i) => ((c.prev = oldClusters[i]?.prev ?? null), (c.next = oldClusters[i]?.next ?? null)));
309
301
  }
310
302
  else {
311
303
  for (let i = 0; i < newClusters.length; i++) {
312
304
  const c = newClusters[i];
313
- if (((_a = oldClusters[i]) === null || _a === void 0 ? void 0 : _a.text[0]) === (c === null || c === void 0 ? void 0 : c.text[0])) {
314
- c.prev = (_c = (_b = oldClusters[i]) === null || _b === void 0 ? void 0 : _b.prev) !== null && _c !== void 0 ? _c : null;
315
- c.next = (_e = (_d = oldClusters[i]) === null || _d === void 0 ? void 0 : _d.next) !== null && _e !== void 0 ? _e : null;
305
+ if (oldClusters[i]?.text[0] === c?.text[0]) {
306
+ c.prev = oldClusters[i]?.prev ?? null;
307
+ c.next = oldClusters[i]?.next ?? null;
316
308
  }
317
309
  else {
318
- c.prev = (_g = (_f = oldClusters[i]) === null || _f === void 0 ? void 0 : _f.prev) !== null && _g !== void 0 ? _g : null;
319
- c.next = (_j = (_h = oldClusters[i + 1]) === null || _h === void 0 ? void 0 : _h.next) !== null && _j !== void 0 ? _j : null;
310
+ c.prev = oldClusters[i]?.prev ?? null;
311
+ c.next = oldClusters[i + 1]?.next ?? null;
320
312
  i++;
321
313
  }
322
314
  }
323
315
  }
324
- const newSyl = new syllable_1.Syllable(newClusters, {
316
+ const newSyl = new Syllable(newClusters, {
325
317
  isClosed: old.isClosed,
326
318
  isAccented: old.isAccented,
327
319
  isFinal: old.isFinal
@@ -332,19 +324,18 @@ const copySyllable = (newText, old) => {
332
324
  newSyl.word = old.word;
333
325
  return newSyl;
334
326
  };
335
- const sylRules = (syl, schema) => {
336
- var _a, _b;
327
+ export const sylRules = (syl, schema) => {
337
328
  const sylTxt = syl.text.replace(taamim, "");
338
- if ((_a = schema.ADDITIONAL_FEATURES) === null || _a === void 0 ? void 0 : _a.length) {
329
+ if (schema.ADDITIONAL_FEATURES?.length) {
339
330
  const seqs = schema.ADDITIONAL_FEATURES;
340
331
  for (const seq of seqs) {
341
332
  const heb = new RegExp(seq.HEBREW, "u");
342
333
  if (seq.FEATURE === "syllable" && heb.test(sylTxt)) {
343
334
  const transliteration = seq.TRANSLITERATION;
344
- const passThrough = (_b = seq.PASS_THROUGH) !== null && _b !== void 0 ? _b : true;
335
+ const passThrough = seq.PASS_THROUGH ?? true;
345
336
  // if transliteration is a string, then replace
346
337
  if (typeof transliteration === "string") {
347
- return (0, exports.replaceAndTransliterate)(sylTxt, heb, transliteration, schema);
338
+ return replaceAndTransliterate(sylTxt, heb, transliteration, schema);
348
339
  }
349
340
  // if transliteration is a function and passThrough is false, then transliterate and exit
350
341
  if (!passThrough) {
@@ -378,35 +369,32 @@ const sylRules = (syl, schema) => {
378
369
  // there may be taamim still in the text, so remove them
379
370
  return joinSyllableChars(syl, returnTxt, schema).replace(taamim, "");
380
371
  };
381
- exports.sylRules = sylRules;
382
- const wordRules = (word, schema) => {
383
- var _a, _b;
372
+ export const wordRules = (word, schema) => {
384
373
  if (word.isDivineName)
385
374
  return getDivineName(word.text, schema);
386
375
  if (word.hasDivineName)
387
- return `${(0, exports.sylRules)(word.syllables[0], schema)}-${getDivineName(word.text, schema)}`;
376
+ return `${sylRules(word.syllables[0], schema)}-${getDivineName(word.text, schema)}`;
388
377
  if (word.isNotHebrew)
389
378
  return word.text;
390
- if ((_a = schema.ADDITIONAL_FEATURES) === null || _a === void 0 ? void 0 : _a.length) {
379
+ if (schema.ADDITIONAL_FEATURES?.length) {
391
380
  const seqs = schema.ADDITIONAL_FEATURES;
392
381
  for (const seq of seqs) {
393
382
  const heb = new RegExp(seq.HEBREW, "u");
394
383
  const text = word.text.replace(taamim, "");
395
384
  if (seq.FEATURE === "word" && heb.test(text)) {
396
385
  const transliteration = seq.TRANSLITERATION;
397
- const passThrough = (_b = seq.PASS_THROUGH) !== null && _b !== void 0 ? _b : true;
386
+ const passThrough = seq.PASS_THROUGH ?? true;
398
387
  if (typeof transliteration === "string") {
399
- return (0, exports.replaceAndTransliterate)(text, heb, transliteration, schema);
388
+ return replaceAndTransliterate(text, heb, transliteration, schema);
400
389
  }
401
390
  if (!passThrough) {
402
391
  return transliteration(word, seq.HEBREW, schema);
403
392
  }
404
- return new word_1.Word(transliteration(word, seq.HEBREW, schema), schema);
393
+ return new Word(transliteration(word, seq.HEBREW, schema), schema);
405
394
  }
406
395
  }
407
396
  return word;
408
397
  }
409
398
  return word;
410
399
  };
411
- exports.wordRules = wordRules;
412
400
  //# sourceMappingURL=rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/rules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAEjF,OAAO,EAAE,gBAAgB,IAAI,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAE1D,MAAM,MAAM,GAAG,uCAAuC,CAAC;AAEvD;;;;;;;GAOG;AACH,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC,KAAa,EAAE,EAAE;IACrD,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC7F,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,gBAAgB,GAAG,CAAC,KAAa,EAAE,KAAa,EAAE,YAAoB,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;AAEpH;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,KAAa,EAAE,KAAa,EAAE,YAAoB,EAAE,MAAc,EAAE,EAAE;IAC5G,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACpD,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,OAAgB,EAAE,MAAc,EAAE,EAAE;IAC1D,gEAAgE;IAChE,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,qDAAqD;IACrD,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,uDAAuD;IACvD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;IACrD,IAAI,QAAQ,IAAI,QAAQ,EAAE,aAAa,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACvG,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iGAAiG;IACjG,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC;IAC5C,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,EAAE,kBAAkB,CAAC;IACxD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,QAAQ,KAAK,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC;AAC9C,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,KAAa,EAAE,MAA+B,EAAE,QAAiB,EAAE,EAAE;IAC/F,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,OAAO,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,KAAK,GAAG,MAAM,CAAC;AACxB,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,aAAa,GAAG,CAAC,GAAW,EAAE,MAAc,EAAU,EAAE;IAC5D,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACpB,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAChC,4DAA4D;IAC5D,MAAM,UAAU,GACd,MAAM,CAAC,kBAAkB,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;IACtG,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AAC3F,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,GAAa,EAAE,MAAc,EAAE,EAAE;IACtD,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,YAAY,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/D,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;IAC7B,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACxD,mEAAmE;IACnE,IAAI,WAAW,GAAG,GAAG,CAAC,QAAQ;SAC3B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;SACzB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;SACzE,IAAI,CAAC,EAAE,CAAC,CAAC;IAEZ,uBAAuB;IACvB,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC1C,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;IAE/D,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACxB,QAAQ;QACR,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,OAAO,gBAAgB,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACtE,CAAC;QACD,QAAQ;QACR,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,OAAO,gBAAgB,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACtE,CAAC;QACD,QAAQ;QACR,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,OAAO,gBAAgB,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACzB,QAAQ;QACR,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,OAAO,gBAAgB,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAED,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACxB,SAAS;QACT,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,OAAO,gBAAgB,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACtE,CAAC;QAED,SAAS;QACT,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,OAAO,gBAAgB,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QACrE,CAAC;QAED,QAAQ;QACR,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,OAAO,gBAAgB,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,GAAa,EAAE,QAAkB,EAAE,MAAc,EAAU,EAAE;IACtF,MAAM,aAAa,GAAG,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC;IAE9C,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QACpB,OAAO,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,wFAAwF;IACxF,MAAM,iBAAiB,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACnF,IAAI,iBAAiB,EAAE,CAAC;QACtB,OAAO,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,EAAE,OAAO,IAAI,OAAO,CAAC;QAEzD,IAAI,OAAO,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACnD,OAAO,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,OAAO,KAAK,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACrC,OAAO,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC;QAC/C,MAAM,IAAI,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC;QAEvC,mEAAmE;QACnE,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,OAAO,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,QAAQ,KAAK,iBAAiB,EAAE,CAAC;YACnC,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACpF,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACtD,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC;gBAC/B,OAAO,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YAC3C,CAAC;YAED,OAAO,GAAG,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QAC7D,CAAC;QAED,IAAI,QAAQ,KAAK,gBAAgB,EAAE,CAAC;YAClC,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC;QAC7D,CAAC;QAED,MAAM,MAAM,GAAG;YACb,MAAM,CAAC,KAAK;YACZ,MAAM,CAAC,WAAW;YAClB,MAAM,CAAC,MAAM;YACb,MAAM,CAAC,YAAY;YACnB,MAAM,CAAC,KAAK;YACZ,MAAM,CAAC,WAAW;YAClB,MAAM,CAAC,KAAK;YACZ,MAAM,CAAC,KAAK;YACZ,MAAM,CAAC,KAAK;YACZ,MAAM,CAAC,YAAY;YACnB,MAAM,CAAC,MAAM;YACb,MAAM,CAAC,SAAS;YAChB,MAAM,CAAC,QAAQ;YACf,MAAM,CAAC,QAAQ;YACf,MAAM,CAAC,SAAS;YAChB,MAAM,CAAC,SAAS;YAChB,MAAM,CAAC,SAAS;YAChB,MAAM,CAAC,SAAS;YAChB,MAAM,CAAC,MAAM;SACd,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnD,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAElC,IAAI,QAAQ,KAAK,cAAc,EAAE,CAAC;YAChC,OAAO,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAC3E,CAAC;QAED,cAAc;QACd,OAAO,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC3E,CAAC;IAED,OAAO,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACjD,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,WAAmB,EAAE,GAAa,EAAE,OAAgB,EAAE,MAAc,EAAE,EAAE;IACjG,IAAI,MAAM,CAAC,mBAAmB,EAAE,MAAM,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,MAAM,CAAC,mBAAmB,CAAC;QACxC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACxC,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;gBACvD,MAAM,eAAe,GAAG,GAAG,CAAC,eAAe,CAAC;gBAC5C,MAAM,WAAW,GAAG,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC;gBAC7C,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE,CAAC;oBACxC,OAAO,uBAAuB,CAAC,WAAW,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;gBAC5E,CAAC;gBACD,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjB,OAAO,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBACtD,CAAC;gBACD,WAAW,GAAG,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;IACH,CAAC;IAED,WAAW,GAAG,OAAO,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;IAEpG,YAAY;IACZ,IAAI,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACrC,OAAO,gBAAgB,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QACjC,MAAM,WAAW,GAAG,qBAAqB,CAAC;QAC1C,IAAI,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YAClC,OAAO,gBAAgB,CAAC,WAAW,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,WAAW,GAAG,qBAAqB,CAAC;QAC1C,IAAI,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YAClC,OAAO,gBAAgB,CAAC,WAAW,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,SAAS,GAAG,6BAA6B,CAAC;QAChD,IAAI,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YAChC,OAAO,gBAAgB,CAAC,WAAW,EAAE,SAAS,EAAE,0BAA0B,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IAED,gBAAgB;IAChB,MAAM,aAAa,GAAG,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAEtD,IAAI,MAAM,CAAC,UAAU,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACxD,OAAO,gBAAgB,CACrB,WAAW,EACX,YAAY,EACZ,kBAAkB,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAC3E,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,YAAY,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QAC1D,OAAO,gBAAgB,CACrB,WAAW,EACX,YAAY,EACZ,kBAAkB,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAC7E,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,YAAY,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QAC1D,OAAO,gBAAgB,CACrB,WAAW,EACX,YAAY,EACZ,kBAAkB,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAC7E,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,UAAU,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACxD,OAAO,gBAAgB,CACrB,WAAW,EACX,YAAY,EACZ,kBAAkB,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAC3E,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,UAAU,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACxD,OAAO,gBAAgB,CACrB,WAAW,EACX,YAAY,EACZ,kBAAkB,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAC3E,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACvD,OAAO,gBAAgB,CACrB,WAAW,EACX,YAAY,EACZ,kBAAkB,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAC1E,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,UAAU,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACxD,OAAO,gBAAgB,CACrB,WAAW,EACX,YAAY,EACZ,kBAAkB,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAC3E,CAAC;IACJ,CAAC;IAED,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACnC,OAAO,gBAAgB,CACrB,WAAW,EACX,YAAY,EACZ,kBAAkB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CACrE,CAAC;IACJ,CAAC;IAED,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACnC,OAAO,gBAAgB,CACrB,WAAW,EACX,YAAY,EACZ,kBAAkB,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CACpE,CAAC;IACJ,CAAC;IAED,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACxC,MAAM,eAAe,GAAG,IAAI,MAAM,CAAC,SAAS,GAAG,UAAU,EAAE,GAAG,CAAC,CAAC;QAChE,OAAO,gBAAgB,CACrB,WAAW,EACX,eAAe,EACf,kBAAkB,CAAC,SAAS,EAAE,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CACnE,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,OAAO,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,OAAe,EAAE,GAAa,EAAE,EAAE;IACtD,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;IAC9G,MAAM,WAAW,GAAG,GAAG,CAAC,QAAQ,CAAC;IAEjC,0CAA0C;IAC1C,IAAI,WAAW,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC;QAC9C,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;IACpH,CAAC;SAAM,CAAC;QACN,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3C,CAAC,CAAC,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC;gBACtC,CAAC,CAAC,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACN,CAAC,CAAC,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC;gBACtC,CAAC,CAAC,IAAI,GAAG,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC;gBAC1C,CAAC,EAAE,CAAC;YACN,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE;QACvC,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,OAAO,EAAE,GAAG,CAAC,OAAO;KACrB,CAAC,CAAC;IAEH,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC;IAElD,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IACvB,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IACvB,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IAEvB,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAa,EAAE,MAAc,EAAU,EAAE;IAChE,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAE5C,IAAI,MAAM,CAAC,mBAAmB,EAAE,MAAM,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,MAAM,CAAC,mBAAmB,CAAC;QACxC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACxC,IAAI,GAAG,CAAC,OAAO,KAAK,UAAU,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBACnD,MAAM,eAAe,GAAG,GAAG,CAAC,eAAe,CAAC;gBAC5C,MAAM,WAAW,GAAG,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC;gBAE7C,+CAA+C;gBAC/C,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE,CAAC;oBACxC,OAAO,uBAAuB,CAAC,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;gBACvE,CAAC;gBAED,yFAAyF;gBACzF,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjB,OAAO,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAClD,CAAC;gBAED,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAEzD,2FAA2F;gBAC3F,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;oBACvB,GAAG,GAAG,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC;QACH,CAAC,CAAC,mBAAmB;IACvB,CAAC;IAED,uBAAuB;IACvB,MAAM,QAAQ,GAAG,2BAA2B,CAAC;IAC7C,IAAI,GAAG,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACnE,OAAO,iBAAiB,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC;IAED,uBAAuB;IACvB,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACnE,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC5C,OAAO,iBAAiB,CAAC,GAAG,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;IACvD,CAAC;IAED,oBAAoB;IACpB,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7C,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACrD,OAAO,iBAAiB,CAAC,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,wDAAwD;IACxD,OAAO,iBAAiB,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACvE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAU,EAAE,MAAc,EAAiB,EAAE;IACrE,IAAI,IAAI,CAAC,YAAY;QAAE,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC/D,IAAI,IAAI,CAAC,aAAa;QAAE,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;IAC5G,IAAI,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC;IACvC,IAAI,MAAM,CAAC,mBAAmB,EAAE,MAAM,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,MAAM,CAAC,mBAAmB,CAAC;QACxC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACxC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC3C,IAAI,GAAG,CAAC,OAAO,KAAK,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7C,MAAM,eAAe,GAAG,GAAG,CAAC,eAAe,CAAC;gBAC5C,MAAM,WAAW,GAAG,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC;gBAC7C,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE,CAAC;oBACxC,OAAO,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;gBACrE,CAAC;gBACD,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjB,OAAO,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBACnD,CAAC;gBACD,OAAO,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}