@readme/markdown 13.7.0 → 13.7.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.
package/dist/main.node.js CHANGED
@@ -19020,6 +19020,7 @@ __webpack_require__.r(__webpack_exports__);
19020
19020
  __webpack_require__.d(__webpack_exports__, {
19021
19021
  Components: () => (/* reexport */ components_namespaceObject),
19022
19022
  FLOW_TYPES: () => (/* reexport */ FLOW_TYPES),
19023
+ NodeTypes: () => (/* reexport */ NodeTypes),
19023
19024
  Owlmoji: () => (/* reexport */ Owlmoji),
19024
19025
  compile: () => (/* reexport */ lib_compile),
19025
19026
  exports: () => (/* reexport */ lib_exports),
@@ -24904,10 +24905,19 @@ const TailwindStyle = ({ children, darkModeDataAttribute }) => {
24904
24905
  records.forEach(record => {
24905
24906
  if (record.type === 'childList') {
24906
24907
  record.addedNodes.forEach(node => {
24907
- if (!(node instanceof HTMLElement) || !node.classList.contains(tailwindPrefix))
24908
+ if (!(node instanceof HTMLElement))
24908
24909
  return;
24909
- traverse(node, addClasses);
24910
- shouldUpdate = true;
24910
+ // Check the added node itself
24911
+ if (node.classList.contains(tailwindPrefix)) {
24912
+ traverse(node, addClasses);
24913
+ shouldUpdate = true;
24914
+ }
24915
+ // Also check descendants — React may insert a parent node
24916
+ // whose children contain TailwindRoot elements
24917
+ node.querySelectorAll(`.${tailwindPrefix}`).forEach(child => {
24918
+ traverse(child, addClasses);
24919
+ shouldUpdate = true;
24920
+ });
24911
24921
  });
24912
24922
  }
24913
24923
  else if (record.type === 'attributes') {
@@ -63747,7 +63757,6 @@ var CODE_POINTS;
63747
63757
  CODE_POINTS[CODE_POINTS["SPACE"] = 32] = "SPACE";
63748
63758
  CODE_POINTS[CODE_POINTS["EXCLAMATION_MARK"] = 33] = "EXCLAMATION_MARK";
63749
63759
  CODE_POINTS[CODE_POINTS["QUOTATION_MARK"] = 34] = "QUOTATION_MARK";
63750
- CODE_POINTS[CODE_POINTS["NUMBER_SIGN"] = 35] = "NUMBER_SIGN";
63751
63760
  CODE_POINTS[CODE_POINTS["AMPERSAND"] = 38] = "AMPERSAND";
63752
63761
  CODE_POINTS[CODE_POINTS["APOSTROPHE"] = 39] = "APOSTROPHE";
63753
63762
  CODE_POINTS[CODE_POINTS["HYPHEN_MINUS"] = 45] = "HYPHEN_MINUS";
@@ -63760,17 +63769,12 @@ var CODE_POINTS;
63760
63769
  CODE_POINTS[CODE_POINTS["GREATER_THAN_SIGN"] = 62] = "GREATER_THAN_SIGN";
63761
63770
  CODE_POINTS[CODE_POINTS["QUESTION_MARK"] = 63] = "QUESTION_MARK";
63762
63771
  CODE_POINTS[CODE_POINTS["LATIN_CAPITAL_A"] = 65] = "LATIN_CAPITAL_A";
63763
- CODE_POINTS[CODE_POINTS["LATIN_CAPITAL_F"] = 70] = "LATIN_CAPITAL_F";
63764
- CODE_POINTS[CODE_POINTS["LATIN_CAPITAL_X"] = 88] = "LATIN_CAPITAL_X";
63765
63772
  CODE_POINTS[CODE_POINTS["LATIN_CAPITAL_Z"] = 90] = "LATIN_CAPITAL_Z";
63766
63773
  CODE_POINTS[CODE_POINTS["RIGHT_SQUARE_BRACKET"] = 93] = "RIGHT_SQUARE_BRACKET";
63767
63774
  CODE_POINTS[CODE_POINTS["GRAVE_ACCENT"] = 96] = "GRAVE_ACCENT";
63768
63775
  CODE_POINTS[CODE_POINTS["LATIN_SMALL_A"] = 97] = "LATIN_SMALL_A";
63769
- CODE_POINTS[CODE_POINTS["LATIN_SMALL_F"] = 102] = "LATIN_SMALL_F";
63770
- CODE_POINTS[CODE_POINTS["LATIN_SMALL_X"] = 120] = "LATIN_SMALL_X";
63771
63776
  CODE_POINTS[CODE_POINTS["LATIN_SMALL_Z"] = 122] = "LATIN_SMALL_Z";
63772
- CODE_POINTS[CODE_POINTS["REPLACEMENT_CHARACTER"] = 65533] = "REPLACEMENT_CHARACTER";
63773
- })(CODE_POINTS = CODE_POINTS || (CODE_POINTS = {}));
63777
+ })(CODE_POINTS || (CODE_POINTS = {}));
63774
63778
  const SEQUENCES = {
63775
63779
  DASH_DASH: '--',
63776
63780
  CDATA_START: '[CDATA[',
@@ -63797,7 +63801,7 @@ function isControlCodePoint(cp) {
63797
63801
  function isUndefinedCodePoint(cp) {
63798
63802
  return (cp >= 64976 && cp <= 65007) || UNDEFINED_CODE_POINTS.has(cp);
63799
63803
  }
63800
- //# sourceMappingURL=unicode.js.map
63804
+
63801
63805
  ;// ./node_modules/parse5/dist/common/error-codes.js
63802
63806
  var ERR;
63803
63807
  (function (ERR) {
@@ -63861,8 +63865,8 @@ var ERR;
63861
63865
  ERR["misplacedStartTagForHeadElement"] = "misplaced-start-tag-for-head-element";
63862
63866
  ERR["nestedNoscriptInHead"] = "nested-noscript-in-head";
63863
63867
  ERR["eofInElementThatCanContainOnlyText"] = "eof-in-element-that-can-contain-only-text";
63864
- })(ERR = ERR || (ERR = {}));
63865
- //# sourceMappingURL=error-codes.js.map
63868
+ })(ERR || (ERR = {}));
63869
+
63866
63870
  ;// ./node_modules/parse5/dist/tokenizer/preprocessor.js
63867
63871
 
63868
63872
 
@@ -63897,22 +63901,24 @@ class Preprocessor {
63897
63901
  get offset() {
63898
63902
  return this.droppedBufferSize + this.pos;
63899
63903
  }
63900
- getError(code) {
63904
+ getError(code, cpOffset) {
63901
63905
  const { line, col, offset } = this;
63906
+ const startCol = col + cpOffset;
63907
+ const startOffset = offset + cpOffset;
63902
63908
  return {
63903
63909
  code,
63904
63910
  startLine: line,
63905
63911
  endLine: line,
63906
- startCol: col,
63907
- endCol: col,
63908
- startOffset: offset,
63909
- endOffset: offset,
63912
+ startCol,
63913
+ endCol: startCol,
63914
+ startOffset,
63915
+ endOffset: startOffset,
63910
63916
  };
63911
63917
  }
63912
63918
  _err(code) {
63913
63919
  if (this.handler.onParseError && this.lastErrOffset !== this.offset) {
63914
63920
  this.lastErrOffset = this.offset;
63915
- this.handler.onParseError(this.getError(code));
63921
+ this.handler.onParseError(this.getError(code, 0));
63916
63922
  }
63917
63923
  }
63918
63924
  _addGap() {
@@ -64058,7 +64064,7 @@ class Preprocessor {
64058
64064
  this.isEol = false;
64059
64065
  }
64060
64066
  }
64061
- //# sourceMappingURL=preprocessor.js.map
64067
+
64062
64068
  ;// ./node_modules/parse5/dist/common/token.js
64063
64069
  var token_TokenType;
64064
64070
  (function (TokenType) {
@@ -64071,7 +64077,7 @@ var token_TokenType;
64071
64077
  TokenType[TokenType["DOCTYPE"] = 6] = "DOCTYPE";
64072
64078
  TokenType[TokenType["EOF"] = 7] = "EOF";
64073
64079
  TokenType[TokenType["HIBERNATION"] = 8] = "HIBERNATION";
64074
- })(token_TokenType = token_TokenType || (token_TokenType = {}));
64080
+ })(token_TokenType || (token_TokenType = {}));
64075
64081
  function getTokenAttr(token, attrName) {
64076
64082
  for (let i = token.attrs.length - 1; i >= 0; i--) {
64077
64083
  if (token.attrs[i].name === attrName) {
@@ -64080,24 +64086,24 @@ function getTokenAttr(token, attrName) {
64080
64086
  }
64081
64087
  return null;
64082
64088
  }
64083
- //# sourceMappingURL=token.js.map
64084
- ;// ./node_modules/entities/lib/esm/generated/decode-data-html.js
64089
+
64090
+ ;// ./node_modules/parse5/node_modules/entities/dist/esm/generated/decode-data-html.js
64085
64091
  // Generated using scripts/write-decode-map.ts
64086
- /* harmony default export */ const decode_data_html = (new Uint16Array(
64092
+ const decode_data_html_htmlDecodeTree = /* #__PURE__ */ new Uint16Array(
64087
64093
  // prettier-ignore
64088
- "\u1d41<\xd5\u0131\u028a\u049d\u057b\u05d0\u0675\u06de\u07a2\u07d6\u080f\u0a4a\u0a91\u0da1\u0e6d\u0f09\u0f26\u10ca\u1228\u12e1\u1415\u149d\u14c3\u14df\u1525\0\0\0\0\0\0\u156b\u16cd\u198d\u1c12\u1ddd\u1f7e\u2060\u21b0\u228d\u23c0\u23fb\u2442\u2824\u2912\u2d08\u2e48\u2fce\u3016\u32ba\u3639\u37ac\u38fe\u3a28\u3a71\u3ae0\u3b2e\u0800EMabcfglmnoprstu\\bfms\x7f\x84\x8b\x90\x95\x98\xa6\xb3\xb9\xc8\xcflig\u803b\xc6\u40c6P\u803b&\u4026cute\u803b\xc1\u40c1reve;\u4102\u0100iyx}rc\u803b\xc2\u40c2;\u4410r;\uc000\ud835\udd04rave\u803b\xc0\u40c0pha;\u4391acr;\u4100d;\u6a53\u0100gp\x9d\xa1on;\u4104f;\uc000\ud835\udd38plyFunction;\u6061ing\u803b\xc5\u40c5\u0100cs\xbe\xc3r;\uc000\ud835\udc9cign;\u6254ilde\u803b\xc3\u40c3ml\u803b\xc4\u40c4\u0400aceforsu\xe5\xfb\xfe\u0117\u011c\u0122\u0127\u012a\u0100cr\xea\xf2kslash;\u6216\u0176\xf6\xf8;\u6ae7ed;\u6306y;\u4411\u0180crt\u0105\u010b\u0114ause;\u6235noullis;\u612ca;\u4392r;\uc000\ud835\udd05pf;\uc000\ud835\udd39eve;\u42d8c\xf2\u0113mpeq;\u624e\u0700HOacdefhilorsu\u014d\u0151\u0156\u0180\u019e\u01a2\u01b5\u01b7\u01ba\u01dc\u0215\u0273\u0278\u027ecy;\u4427PY\u803b\xa9\u40a9\u0180cpy\u015d\u0162\u017aute;\u4106\u0100;i\u0167\u0168\u62d2talDifferentialD;\u6145leys;\u612d\u0200aeio\u0189\u018e\u0194\u0198ron;\u410cdil\u803b\xc7\u40c7rc;\u4108nint;\u6230ot;\u410a\u0100dn\u01a7\u01adilla;\u40b8terDot;\u40b7\xf2\u017fi;\u43a7rcle\u0200DMPT\u01c7\u01cb\u01d1\u01d6ot;\u6299inus;\u6296lus;\u6295imes;\u6297o\u0100cs\u01e2\u01f8kwiseContourIntegral;\u6232eCurly\u0100DQ\u0203\u020foubleQuote;\u601duote;\u6019\u0200lnpu\u021e\u0228\u0247\u0255on\u0100;e\u0225\u0226\u6237;\u6a74\u0180git\u022f\u0236\u023aruent;\u6261nt;\u622fourIntegral;\u622e\u0100fr\u024c\u024e;\u6102oduct;\u6210nterClockwiseContourIntegral;\u6233oss;\u6a2fcr;\uc000\ud835\udc9ep\u0100;C\u0284\u0285\u62d3ap;\u624d\u0580DJSZacefios\u02a0\u02ac\u02b0\u02b4\u02b8\u02cb\u02d7\u02e1\u02e6\u0333\u048d\u0100;o\u0179\u02a5trahd;\u6911cy;\u4402cy;\u4405cy;\u440f\u0180grs\u02bf\u02c4\u02c7ger;\u6021r;\u61a1hv;\u6ae4\u0100ay\u02d0\u02d5ron;\u410e;\u4414l\u0100;t\u02dd\u02de\u6207a;\u4394r;\uc000\ud835\udd07\u0100af\u02eb\u0327\u0100cm\u02f0\u0322ritical\u0200ADGT\u0300\u0306\u0316\u031ccute;\u40b4o\u0174\u030b\u030d;\u42d9bleAcute;\u42ddrave;\u4060ilde;\u42dcond;\u62c4ferentialD;\u6146\u0470\u033d\0\0\0\u0342\u0354\0\u0405f;\uc000\ud835\udd3b\u0180;DE\u0348\u0349\u034d\u40a8ot;\u60dcqual;\u6250ble\u0300CDLRUV\u0363\u0372\u0382\u03cf\u03e2\u03f8ontourIntegra\xec\u0239o\u0274\u0379\0\0\u037b\xbb\u0349nArrow;\u61d3\u0100eo\u0387\u03a4ft\u0180ART\u0390\u0396\u03a1rrow;\u61d0ightArrow;\u61d4e\xe5\u02cang\u0100LR\u03ab\u03c4eft\u0100AR\u03b3\u03b9rrow;\u67f8ightArrow;\u67faightArrow;\u67f9ight\u0100AT\u03d8\u03derrow;\u61d2ee;\u62a8p\u0241\u03e9\0\0\u03efrrow;\u61d1ownArrow;\u61d5erticalBar;\u6225n\u0300ABLRTa\u0412\u042a\u0430\u045e\u047f\u037crrow\u0180;BU\u041d\u041e\u0422\u6193ar;\u6913pArrow;\u61f5reve;\u4311eft\u02d2\u043a\0\u0446\0\u0450ightVector;\u6950eeVector;\u695eector\u0100;B\u0459\u045a\u61bdar;\u6956ight\u01d4\u0467\0\u0471eeVector;\u695fector\u0100;B\u047a\u047b\u61c1ar;\u6957ee\u0100;A\u0486\u0487\u62a4rrow;\u61a7\u0100ct\u0492\u0497r;\uc000\ud835\udc9frok;\u4110\u0800NTacdfglmopqstux\u04bd\u04c0\u04c4\u04cb\u04de\u04e2\u04e7\u04ee\u04f5\u0521\u052f\u0536\u0552\u055d\u0560\u0565G;\u414aH\u803b\xd0\u40d0cute\u803b\xc9\u40c9\u0180aiy\u04d2\u04d7\u04dcron;\u411arc\u803b\xca\u40ca;\u442dot;\u4116r;\uc000\ud835\udd08rave\u803b\xc8\u40c8ement;\u6208\u0100ap\u04fa\u04fecr;\u4112ty\u0253\u0506\0\0\u0512mallSquare;\u65fberySmallSquare;\u65ab\u0100gp\u0526\u052aon;\u4118f;\uc000\ud835\udd3csilon;\u4395u\u0100ai\u053c\u0549l\u0100;T\u0542\u0543\u6a75ilde;\u6242librium;\u61cc\u0100ci\u0557\u055ar;\u6130m;\u6a73a;\u4397ml\u803b\xcb\u40cb\u0100ip\u056a\u056fsts;\u6203onentialE;\u6147\u0280cfios\u0585\u0588\u058d\u05b2\u05ccy;\u4424r;\uc000\ud835\udd09lled\u0253\u0597\0\0\u05a3mallSquare;\u65fcerySmallSquare;\u65aa\u0370\u05ba\0\u05bf\0\0\u05c4f;\uc000\ud835\udd3dAll;\u6200riertrf;\u6131c\xf2\u05cb\u0600JTabcdfgorst\u05e8\u05ec\u05ef\u05fa\u0600\u0612\u0616\u061b\u061d\u0623\u066c\u0672cy;\u4403\u803b>\u403emma\u0100;d\u05f7\u05f8\u4393;\u43dcreve;\u411e\u0180eiy\u0607\u060c\u0610dil;\u4122rc;\u411c;\u4413ot;\u4120r;\uc000\ud835\udd0a;\u62d9pf;\uc000\ud835\udd3eeater\u0300EFGLST\u0635\u0644\u064e\u0656\u065b\u0666qual\u0100;L\u063e\u063f\u6265ess;\u62dbullEqual;\u6267reater;\u6aa2ess;\u6277lantEqual;\u6a7eilde;\u6273cr;\uc000\ud835\udca2;\u626b\u0400Aacfiosu\u0685\u068b\u0696\u069b\u069e\u06aa\u06be\u06caRDcy;\u442a\u0100ct\u0690\u0694ek;\u42c7;\u405eirc;\u4124r;\u610clbertSpace;\u610b\u01f0\u06af\0\u06b2f;\u610dizontalLine;\u6500\u0100ct\u06c3\u06c5\xf2\u06a9rok;\u4126mp\u0144\u06d0\u06d8ownHum\xf0\u012fqual;\u624f\u0700EJOacdfgmnostu\u06fa\u06fe\u0703\u0707\u070e\u071a\u071e\u0721\u0728\u0744\u0778\u078b\u078f\u0795cy;\u4415lig;\u4132cy;\u4401cute\u803b\xcd\u40cd\u0100iy\u0713\u0718rc\u803b\xce\u40ce;\u4418ot;\u4130r;\u6111rave\u803b\xcc\u40cc\u0180;ap\u0720\u072f\u073f\u0100cg\u0734\u0737r;\u412ainaryI;\u6148lie\xf3\u03dd\u01f4\u0749\0\u0762\u0100;e\u074d\u074e\u622c\u0100gr\u0753\u0758ral;\u622bsection;\u62c2isible\u0100CT\u076c\u0772omma;\u6063imes;\u6062\u0180gpt\u077f\u0783\u0788on;\u412ef;\uc000\ud835\udd40a;\u4399cr;\u6110ilde;\u4128\u01eb\u079a\0\u079ecy;\u4406l\u803b\xcf\u40cf\u0280cfosu\u07ac\u07b7\u07bc\u07c2\u07d0\u0100iy\u07b1\u07b5rc;\u4134;\u4419r;\uc000\ud835\udd0dpf;\uc000\ud835\udd41\u01e3\u07c7\0\u07ccr;\uc000\ud835\udca5rcy;\u4408kcy;\u4404\u0380HJacfos\u07e4\u07e8\u07ec\u07f1\u07fd\u0802\u0808cy;\u4425cy;\u440cppa;\u439a\u0100ey\u07f6\u07fbdil;\u4136;\u441ar;\uc000\ud835\udd0epf;\uc000\ud835\udd42cr;\uc000\ud835\udca6\u0580JTaceflmost\u0825\u0829\u082c\u0850\u0863\u09b3\u09b8\u09c7\u09cd\u0a37\u0a47cy;\u4409\u803b<\u403c\u0280cmnpr\u0837\u083c\u0841\u0844\u084dute;\u4139bda;\u439bg;\u67ealacetrf;\u6112r;\u619e\u0180aey\u0857\u085c\u0861ron;\u413ddil;\u413b;\u441b\u0100fs\u0868\u0970t\u0500ACDFRTUVar\u087e\u08a9\u08b1\u08e0\u08e6\u08fc\u092f\u095b\u0390\u096a\u0100nr\u0883\u088fgleBracket;\u67e8row\u0180;BR\u0899\u089a\u089e\u6190ar;\u61e4ightArrow;\u61c6eiling;\u6308o\u01f5\u08b7\0\u08c3bleBracket;\u67e6n\u01d4\u08c8\0\u08d2eeVector;\u6961ector\u0100;B\u08db\u08dc\u61c3ar;\u6959loor;\u630aight\u0100AV\u08ef\u08f5rrow;\u6194ector;\u694e\u0100er\u0901\u0917e\u0180;AV\u0909\u090a\u0910\u62a3rrow;\u61a4ector;\u695aiangle\u0180;BE\u0924\u0925\u0929\u62b2ar;\u69cfqual;\u62b4p\u0180DTV\u0937\u0942\u094cownVector;\u6951eeVector;\u6960ector\u0100;B\u0956\u0957\u61bfar;\u6958ector\u0100;B\u0965\u0966\u61bcar;\u6952ight\xe1\u039cs\u0300EFGLST\u097e\u098b\u0995\u099d\u09a2\u09adqualGreater;\u62daullEqual;\u6266reater;\u6276ess;\u6aa1lantEqual;\u6a7dilde;\u6272r;\uc000\ud835\udd0f\u0100;e\u09bd\u09be\u62d8ftarrow;\u61daidot;\u413f\u0180npw\u09d4\u0a16\u0a1bg\u0200LRlr\u09de\u09f7\u0a02\u0a10eft\u0100AR\u09e6\u09ecrrow;\u67f5ightArrow;\u67f7ightArrow;\u67f6eft\u0100ar\u03b3\u0a0aight\xe1\u03bfight\xe1\u03caf;\uc000\ud835\udd43er\u0100LR\u0a22\u0a2ceftArrow;\u6199ightArrow;\u6198\u0180cht\u0a3e\u0a40\u0a42\xf2\u084c;\u61b0rok;\u4141;\u626a\u0400acefiosu\u0a5a\u0a5d\u0a60\u0a77\u0a7c\u0a85\u0a8b\u0a8ep;\u6905y;\u441c\u0100dl\u0a65\u0a6fiumSpace;\u605flintrf;\u6133r;\uc000\ud835\udd10nusPlus;\u6213pf;\uc000\ud835\udd44c\xf2\u0a76;\u439c\u0480Jacefostu\u0aa3\u0aa7\u0aad\u0ac0\u0b14\u0b19\u0d91\u0d97\u0d9ecy;\u440acute;\u4143\u0180aey\u0ab4\u0ab9\u0aberon;\u4147dil;\u4145;\u441d\u0180gsw\u0ac7\u0af0\u0b0eative\u0180MTV\u0ad3\u0adf\u0ae8ediumSpace;\u600bhi\u0100cn\u0ae6\u0ad8\xeb\u0ad9eryThi\xee\u0ad9ted\u0100GL\u0af8\u0b06reaterGreate\xf2\u0673essLes\xf3\u0a48Line;\u400ar;\uc000\ud835\udd11\u0200Bnpt\u0b22\u0b28\u0b37\u0b3areak;\u6060BreakingSpace;\u40a0f;\u6115\u0680;CDEGHLNPRSTV\u0b55\u0b56\u0b6a\u0b7c\u0ba1\u0beb\u0c04\u0c5e\u0c84\u0ca6\u0cd8\u0d61\u0d85\u6aec\u0100ou\u0b5b\u0b64ngruent;\u6262pCap;\u626doubleVerticalBar;\u6226\u0180lqx\u0b83\u0b8a\u0b9bement;\u6209ual\u0100;T\u0b92\u0b93\u6260ilde;\uc000\u2242\u0338ists;\u6204reater\u0380;EFGLST\u0bb6\u0bb7\u0bbd\u0bc9\u0bd3\u0bd8\u0be5\u626fqual;\u6271ullEqual;\uc000\u2267\u0338reater;\uc000\u226b\u0338ess;\u6279lantEqual;\uc000\u2a7e\u0338ilde;\u6275ump\u0144\u0bf2\u0bfdownHump;\uc000\u224e\u0338qual;\uc000\u224f\u0338e\u0100fs\u0c0a\u0c27tTriangle\u0180;BE\u0c1a\u0c1b\u0c21\u62eaar;\uc000\u29cf\u0338qual;\u62ecs\u0300;EGLST\u0c35\u0c36\u0c3c\u0c44\u0c4b\u0c58\u626equal;\u6270reater;\u6278ess;\uc000\u226a\u0338lantEqual;\uc000\u2a7d\u0338ilde;\u6274ested\u0100GL\u0c68\u0c79reaterGreater;\uc000\u2aa2\u0338essLess;\uc000\u2aa1\u0338recedes\u0180;ES\u0c92\u0c93\u0c9b\u6280qual;\uc000\u2aaf\u0338lantEqual;\u62e0\u0100ei\u0cab\u0cb9verseElement;\u620cghtTriangle\u0180;BE\u0ccb\u0ccc\u0cd2\u62ebar;\uc000\u29d0\u0338qual;\u62ed\u0100qu\u0cdd\u0d0cuareSu\u0100bp\u0ce8\u0cf9set\u0100;E\u0cf0\u0cf3\uc000\u228f\u0338qual;\u62e2erset\u0100;E\u0d03\u0d06\uc000\u2290\u0338qual;\u62e3\u0180bcp\u0d13\u0d24\u0d4eset\u0100;E\u0d1b\u0d1e\uc000\u2282\u20d2qual;\u6288ceeds\u0200;EST\u0d32\u0d33\u0d3b\u0d46\u6281qual;\uc000\u2ab0\u0338lantEqual;\u62e1ilde;\uc000\u227f\u0338erset\u0100;E\u0d58\u0d5b\uc000\u2283\u20d2qual;\u6289ilde\u0200;EFT\u0d6e\u0d6f\u0d75\u0d7f\u6241qual;\u6244ullEqual;\u6247ilde;\u6249erticalBar;\u6224cr;\uc000\ud835\udca9ilde\u803b\xd1\u40d1;\u439d\u0700Eacdfgmoprstuv\u0dbd\u0dc2\u0dc9\u0dd5\u0ddb\u0de0\u0de7\u0dfc\u0e02\u0e20\u0e22\u0e32\u0e3f\u0e44lig;\u4152cute\u803b\xd3\u40d3\u0100iy\u0dce\u0dd3rc\u803b\xd4\u40d4;\u441eblac;\u4150r;\uc000\ud835\udd12rave\u803b\xd2\u40d2\u0180aei\u0dee\u0df2\u0df6cr;\u414cga;\u43a9cron;\u439fpf;\uc000\ud835\udd46enCurly\u0100DQ\u0e0e\u0e1aoubleQuote;\u601cuote;\u6018;\u6a54\u0100cl\u0e27\u0e2cr;\uc000\ud835\udcaaash\u803b\xd8\u40d8i\u016c\u0e37\u0e3cde\u803b\xd5\u40d5es;\u6a37ml\u803b\xd6\u40d6er\u0100BP\u0e4b\u0e60\u0100ar\u0e50\u0e53r;\u603eac\u0100ek\u0e5a\u0e5c;\u63deet;\u63b4arenthesis;\u63dc\u0480acfhilors\u0e7f\u0e87\u0e8a\u0e8f\u0e92\u0e94\u0e9d\u0eb0\u0efcrtialD;\u6202y;\u441fr;\uc000\ud835\udd13i;\u43a6;\u43a0usMinus;\u40b1\u0100ip\u0ea2\u0eadncareplan\xe5\u069df;\u6119\u0200;eio\u0eb9\u0eba\u0ee0\u0ee4\u6abbcedes\u0200;EST\u0ec8\u0ec9\u0ecf\u0eda\u627aqual;\u6aaflantEqual;\u627cilde;\u627eme;\u6033\u0100dp\u0ee9\u0eeeuct;\u620fortion\u0100;a\u0225\u0ef9l;\u621d\u0100ci\u0f01\u0f06r;\uc000\ud835\udcab;\u43a8\u0200Ufos\u0f11\u0f16\u0f1b\u0f1fOT\u803b\"\u4022r;\uc000\ud835\udd14pf;\u611acr;\uc000\ud835\udcac\u0600BEacefhiorsu\u0f3e\u0f43\u0f47\u0f60\u0f73\u0fa7\u0faa\u0fad\u1096\u10a9\u10b4\u10bearr;\u6910G\u803b\xae\u40ae\u0180cnr\u0f4e\u0f53\u0f56ute;\u4154g;\u67ebr\u0100;t\u0f5c\u0f5d\u61a0l;\u6916\u0180aey\u0f67\u0f6c\u0f71ron;\u4158dil;\u4156;\u4420\u0100;v\u0f78\u0f79\u611cerse\u0100EU\u0f82\u0f99\u0100lq\u0f87\u0f8eement;\u620builibrium;\u61cbpEquilibrium;\u696fr\xbb\u0f79o;\u43a1ght\u0400ACDFTUVa\u0fc1\u0feb\u0ff3\u1022\u1028\u105b\u1087\u03d8\u0100nr\u0fc6\u0fd2gleBracket;\u67e9row\u0180;BL\u0fdc\u0fdd\u0fe1\u6192ar;\u61e5eftArrow;\u61c4eiling;\u6309o\u01f5\u0ff9\0\u1005bleBracket;\u67e7n\u01d4\u100a\0\u1014eeVector;\u695dector\u0100;B\u101d\u101e\u61c2ar;\u6955loor;\u630b\u0100er\u102d\u1043e\u0180;AV\u1035\u1036\u103c\u62a2rrow;\u61a6ector;\u695biangle\u0180;BE\u1050\u1051\u1055\u62b3ar;\u69d0qual;\u62b5p\u0180DTV\u1063\u106e\u1078ownVector;\u694feeVector;\u695cector\u0100;B\u1082\u1083\u61bear;\u6954ector\u0100;B\u1091\u1092\u61c0ar;\u6953\u0100pu\u109b\u109ef;\u611dndImplies;\u6970ightarrow;\u61db\u0100ch\u10b9\u10bcr;\u611b;\u61b1leDelayed;\u69f4\u0680HOacfhimoqstu\u10e4\u10f1\u10f7\u10fd\u1119\u111e\u1151\u1156\u1161\u1167\u11b5\u11bb\u11bf\u0100Cc\u10e9\u10eeHcy;\u4429y;\u4428FTcy;\u442ccute;\u415a\u0280;aeiy\u1108\u1109\u110e\u1113\u1117\u6abcron;\u4160dil;\u415erc;\u415c;\u4421r;\uc000\ud835\udd16ort\u0200DLRU\u112a\u1134\u113e\u1149ownArrow\xbb\u041eeftArrow\xbb\u089aightArrow\xbb\u0fddpArrow;\u6191gma;\u43a3allCircle;\u6218pf;\uc000\ud835\udd4a\u0272\u116d\0\0\u1170t;\u621aare\u0200;ISU\u117b\u117c\u1189\u11af\u65a1ntersection;\u6293u\u0100bp\u118f\u119eset\u0100;E\u1197\u1198\u628fqual;\u6291erset\u0100;E\u11a8\u11a9\u6290qual;\u6292nion;\u6294cr;\uc000\ud835\udcaear;\u62c6\u0200bcmp\u11c8\u11db\u1209\u120b\u0100;s\u11cd\u11ce\u62d0et\u0100;E\u11cd\u11d5qual;\u6286\u0100ch\u11e0\u1205eeds\u0200;EST\u11ed\u11ee\u11f4\u11ff\u627bqual;\u6ab0lantEqual;\u627dilde;\u627fTh\xe1\u0f8c;\u6211\u0180;es\u1212\u1213\u1223\u62d1rset\u0100;E\u121c\u121d\u6283qual;\u6287et\xbb\u1213\u0580HRSacfhiors\u123e\u1244\u1249\u1255\u125e\u1271\u1276\u129f\u12c2\u12c8\u12d1ORN\u803b\xde\u40deADE;\u6122\u0100Hc\u124e\u1252cy;\u440by;\u4426\u0100bu\u125a\u125c;\u4009;\u43a4\u0180aey\u1265\u126a\u126fron;\u4164dil;\u4162;\u4422r;\uc000\ud835\udd17\u0100ei\u127b\u1289\u01f2\u1280\0\u1287efore;\u6234a;\u4398\u0100cn\u128e\u1298kSpace;\uc000\u205f\u200aSpace;\u6009lde\u0200;EFT\u12ab\u12ac\u12b2\u12bc\u623cqual;\u6243ullEqual;\u6245ilde;\u6248pf;\uc000\ud835\udd4bipleDot;\u60db\u0100ct\u12d6\u12dbr;\uc000\ud835\udcafrok;\u4166\u0ae1\u12f7\u130e\u131a\u1326\0\u132c\u1331\0\0\0\0\0\u1338\u133d\u1377\u1385\0\u13ff\u1404\u140a\u1410\u0100cr\u12fb\u1301ute\u803b\xda\u40dar\u0100;o\u1307\u1308\u619fcir;\u6949r\u01e3\u1313\0\u1316y;\u440eve;\u416c\u0100iy\u131e\u1323rc\u803b\xdb\u40db;\u4423blac;\u4170r;\uc000\ud835\udd18rave\u803b\xd9\u40d9acr;\u416a\u0100di\u1341\u1369er\u0100BP\u1348\u135d\u0100ar\u134d\u1350r;\u405fac\u0100ek\u1357\u1359;\u63dfet;\u63b5arenthesis;\u63ddon\u0100;P\u1370\u1371\u62c3lus;\u628e\u0100gp\u137b\u137fon;\u4172f;\uc000\ud835\udd4c\u0400ADETadps\u1395\u13ae\u13b8\u13c4\u03e8\u13d2\u13d7\u13f3rrow\u0180;BD\u1150\u13a0\u13a4ar;\u6912ownArrow;\u61c5ownArrow;\u6195quilibrium;\u696eee\u0100;A\u13cb\u13cc\u62a5rrow;\u61a5own\xe1\u03f3er\u0100LR\u13de\u13e8eftArrow;\u6196ightArrow;\u6197i\u0100;l\u13f9\u13fa\u43d2on;\u43a5ing;\u416ecr;\uc000\ud835\udcb0ilde;\u4168ml\u803b\xdc\u40dc\u0480Dbcdefosv\u1427\u142c\u1430\u1433\u143e\u1485\u148a\u1490\u1496ash;\u62abar;\u6aeby;\u4412ash\u0100;l\u143b\u143c\u62a9;\u6ae6\u0100er\u1443\u1445;\u62c1\u0180bty\u144c\u1450\u147aar;\u6016\u0100;i\u144f\u1455cal\u0200BLST\u1461\u1465\u146a\u1474ar;\u6223ine;\u407ceparator;\u6758ilde;\u6240ThinSpace;\u600ar;\uc000\ud835\udd19pf;\uc000\ud835\udd4dcr;\uc000\ud835\udcb1dash;\u62aa\u0280cefos\u14a7\u14ac\u14b1\u14b6\u14bcirc;\u4174dge;\u62c0r;\uc000\ud835\udd1apf;\uc000\ud835\udd4ecr;\uc000\ud835\udcb2\u0200fios\u14cb\u14d0\u14d2\u14d8r;\uc000\ud835\udd1b;\u439epf;\uc000\ud835\udd4fcr;\uc000\ud835\udcb3\u0480AIUacfosu\u14f1\u14f5\u14f9\u14fd\u1504\u150f\u1514\u151a\u1520cy;\u442fcy;\u4407cy;\u442ecute\u803b\xdd\u40dd\u0100iy\u1509\u150drc;\u4176;\u442br;\uc000\ud835\udd1cpf;\uc000\ud835\udd50cr;\uc000\ud835\udcb4ml;\u4178\u0400Hacdefos\u1535\u1539\u153f\u154b\u154f\u155d\u1560\u1564cy;\u4416cute;\u4179\u0100ay\u1544\u1549ron;\u417d;\u4417ot;\u417b\u01f2\u1554\0\u155boWidt\xe8\u0ad9a;\u4396r;\u6128pf;\u6124cr;\uc000\ud835\udcb5\u0be1\u1583\u158a\u1590\0\u15b0\u15b6\u15bf\0\0\0\0\u15c6\u15db\u15eb\u165f\u166d\0\u1695\u169b\u16b2\u16b9\0\u16becute\u803b\xe1\u40e1reve;\u4103\u0300;Ediuy\u159c\u159d\u15a1\u15a3\u15a8\u15ad\u623e;\uc000\u223e\u0333;\u623frc\u803b\xe2\u40e2te\u80bb\xb4\u0306;\u4430lig\u803b\xe6\u40e6\u0100;r\xb2\u15ba;\uc000\ud835\udd1erave\u803b\xe0\u40e0\u0100ep\u15ca\u15d6\u0100fp\u15cf\u15d4sym;\u6135\xe8\u15d3ha;\u43b1\u0100ap\u15dfc\u0100cl\u15e4\u15e7r;\u4101g;\u6a3f\u0264\u15f0\0\0\u160a\u0280;adsv\u15fa\u15fb\u15ff\u1601\u1607\u6227nd;\u6a55;\u6a5clope;\u6a58;\u6a5a\u0380;elmrsz\u1618\u1619\u161b\u161e\u163f\u164f\u1659\u6220;\u69a4e\xbb\u1619sd\u0100;a\u1625\u1626\u6221\u0461\u1630\u1632\u1634\u1636\u1638\u163a\u163c\u163e;\u69a8;\u69a9;\u69aa;\u69ab;\u69ac;\u69ad;\u69ae;\u69aft\u0100;v\u1645\u1646\u621fb\u0100;d\u164c\u164d\u62be;\u699d\u0100pt\u1654\u1657h;\u6222\xbb\xb9arr;\u637c\u0100gp\u1663\u1667on;\u4105f;\uc000\ud835\udd52\u0380;Eaeiop\u12c1\u167b\u167d\u1682\u1684\u1687\u168a;\u6a70cir;\u6a6f;\u624ad;\u624bs;\u4027rox\u0100;e\u12c1\u1692\xf1\u1683ing\u803b\xe5\u40e5\u0180cty\u16a1\u16a6\u16a8r;\uc000\ud835\udcb6;\u402amp\u0100;e\u12c1\u16af\xf1\u0288ilde\u803b\xe3\u40e3ml\u803b\xe4\u40e4\u0100ci\u16c2\u16c8onin\xf4\u0272nt;\u6a11\u0800Nabcdefiklnoprsu\u16ed\u16f1\u1730\u173c\u1743\u1748\u1778\u177d\u17e0\u17e6\u1839\u1850\u170d\u193d\u1948\u1970ot;\u6aed\u0100cr\u16f6\u171ek\u0200ceps\u1700\u1705\u170d\u1713ong;\u624cpsilon;\u43f6rime;\u6035im\u0100;e\u171a\u171b\u623dq;\u62cd\u0176\u1722\u1726ee;\u62bded\u0100;g\u172c\u172d\u6305e\xbb\u172drk\u0100;t\u135c\u1737brk;\u63b6\u0100oy\u1701\u1741;\u4431quo;\u601e\u0280cmprt\u1753\u175b\u1761\u1764\u1768aus\u0100;e\u010a\u0109ptyv;\u69b0s\xe9\u170cno\xf5\u0113\u0180ahw\u176f\u1771\u1773;\u43b2;\u6136een;\u626cr;\uc000\ud835\udd1fg\u0380costuvw\u178d\u179d\u17b3\u17c1\u17d5\u17db\u17de\u0180aiu\u1794\u1796\u179a\xf0\u0760rc;\u65efp\xbb\u1371\u0180dpt\u17a4\u17a8\u17adot;\u6a00lus;\u6a01imes;\u6a02\u0271\u17b9\0\0\u17becup;\u6a06ar;\u6605riangle\u0100du\u17cd\u17d2own;\u65bdp;\u65b3plus;\u6a04e\xe5\u1444\xe5\u14adarow;\u690d\u0180ako\u17ed\u1826\u1835\u0100cn\u17f2\u1823k\u0180lst\u17fa\u05ab\u1802ozenge;\u69ebriangle\u0200;dlr\u1812\u1813\u1818\u181d\u65b4own;\u65beeft;\u65c2ight;\u65b8k;\u6423\u01b1\u182b\0\u1833\u01b2\u182f\0\u1831;\u6592;\u65914;\u6593ck;\u6588\u0100eo\u183e\u184d\u0100;q\u1843\u1846\uc000=\u20e5uiv;\uc000\u2261\u20e5t;\u6310\u0200ptwx\u1859\u185e\u1867\u186cf;\uc000\ud835\udd53\u0100;t\u13cb\u1863om\xbb\u13cctie;\u62c8\u0600DHUVbdhmptuv\u1885\u1896\u18aa\u18bb\u18d7\u18db\u18ec\u18ff\u1905\u190a\u1910\u1921\u0200LRlr\u188e\u1890\u1892\u1894;\u6557;\u6554;\u6556;\u6553\u0280;DUdu\u18a1\u18a2\u18a4\u18a6\u18a8\u6550;\u6566;\u6569;\u6564;\u6567\u0200LRlr\u18b3\u18b5\u18b7\u18b9;\u655d;\u655a;\u655c;\u6559\u0380;HLRhlr\u18ca\u18cb\u18cd\u18cf\u18d1\u18d3\u18d5\u6551;\u656c;\u6563;\u6560;\u656b;\u6562;\u655fox;\u69c9\u0200LRlr\u18e4\u18e6\u18e8\u18ea;\u6555;\u6552;\u6510;\u650c\u0280;DUdu\u06bd\u18f7\u18f9\u18fb\u18fd;\u6565;\u6568;\u652c;\u6534inus;\u629flus;\u629eimes;\u62a0\u0200LRlr\u1919\u191b\u191d\u191f;\u655b;\u6558;\u6518;\u6514\u0380;HLRhlr\u1930\u1931\u1933\u1935\u1937\u1939\u193b\u6502;\u656a;\u6561;\u655e;\u653c;\u6524;\u651c\u0100ev\u0123\u1942bar\u803b\xa6\u40a6\u0200ceio\u1951\u1956\u195a\u1960r;\uc000\ud835\udcb7mi;\u604fm\u0100;e\u171a\u171cl\u0180;bh\u1968\u1969\u196b\u405c;\u69c5sub;\u67c8\u016c\u1974\u197el\u0100;e\u1979\u197a\u6022t\xbb\u197ap\u0180;Ee\u012f\u1985\u1987;\u6aae\u0100;q\u06dc\u06db\u0ce1\u19a7\0\u19e8\u1a11\u1a15\u1a32\0\u1a37\u1a50\0\0\u1ab4\0\0\u1ac1\0\0\u1b21\u1b2e\u1b4d\u1b52\0\u1bfd\0\u1c0c\u0180cpr\u19ad\u19b2\u19ddute;\u4107\u0300;abcds\u19bf\u19c0\u19c4\u19ca\u19d5\u19d9\u6229nd;\u6a44rcup;\u6a49\u0100au\u19cf\u19d2p;\u6a4bp;\u6a47ot;\u6a40;\uc000\u2229\ufe00\u0100eo\u19e2\u19e5t;\u6041\xee\u0693\u0200aeiu\u19f0\u19fb\u1a01\u1a05\u01f0\u19f5\0\u19f8s;\u6a4don;\u410ddil\u803b\xe7\u40e7rc;\u4109ps\u0100;s\u1a0c\u1a0d\u6a4cm;\u6a50ot;\u410b\u0180dmn\u1a1b\u1a20\u1a26il\u80bb\xb8\u01adptyv;\u69b2t\u8100\xa2;e\u1a2d\u1a2e\u40a2r\xe4\u01b2r;\uc000\ud835\udd20\u0180cei\u1a3d\u1a40\u1a4dy;\u4447ck\u0100;m\u1a47\u1a48\u6713ark\xbb\u1a48;\u43c7r\u0380;Ecefms\u1a5f\u1a60\u1a62\u1a6b\u1aa4\u1aaa\u1aae\u65cb;\u69c3\u0180;el\u1a69\u1a6a\u1a6d\u42c6q;\u6257e\u0261\u1a74\0\0\u1a88rrow\u0100lr\u1a7c\u1a81eft;\u61baight;\u61bb\u0280RSacd\u1a92\u1a94\u1a96\u1a9a\u1a9f\xbb\u0f47;\u64c8st;\u629birc;\u629aash;\u629dnint;\u6a10id;\u6aefcir;\u69c2ubs\u0100;u\u1abb\u1abc\u6663it\xbb\u1abc\u02ec\u1ac7\u1ad4\u1afa\0\u1b0aon\u0100;e\u1acd\u1ace\u403a\u0100;q\xc7\xc6\u026d\u1ad9\0\0\u1ae2a\u0100;t\u1ade\u1adf\u402c;\u4040\u0180;fl\u1ae8\u1ae9\u1aeb\u6201\xee\u1160e\u0100mx\u1af1\u1af6ent\xbb\u1ae9e\xf3\u024d\u01e7\u1afe\0\u1b07\u0100;d\u12bb\u1b02ot;\u6a6dn\xf4\u0246\u0180fry\u1b10\u1b14\u1b17;\uc000\ud835\udd54o\xe4\u0254\u8100\xa9;s\u0155\u1b1dr;\u6117\u0100ao\u1b25\u1b29rr;\u61b5ss;\u6717\u0100cu\u1b32\u1b37r;\uc000\ud835\udcb8\u0100bp\u1b3c\u1b44\u0100;e\u1b41\u1b42\u6acf;\u6ad1\u0100;e\u1b49\u1b4a\u6ad0;\u6ad2dot;\u62ef\u0380delprvw\u1b60\u1b6c\u1b77\u1b82\u1bac\u1bd4\u1bf9arr\u0100lr\u1b68\u1b6a;\u6938;\u6935\u0270\u1b72\0\0\u1b75r;\u62dec;\u62dfarr\u0100;p\u1b7f\u1b80\u61b6;\u693d\u0300;bcdos\u1b8f\u1b90\u1b96\u1ba1\u1ba5\u1ba8\u622arcap;\u6a48\u0100au\u1b9b\u1b9ep;\u6a46p;\u6a4aot;\u628dr;\u6a45;\uc000\u222a\ufe00\u0200alrv\u1bb5\u1bbf\u1bde\u1be3rr\u0100;m\u1bbc\u1bbd\u61b7;\u693cy\u0180evw\u1bc7\u1bd4\u1bd8q\u0270\u1bce\0\0\u1bd2re\xe3\u1b73u\xe3\u1b75ee;\u62ceedge;\u62cfen\u803b\xa4\u40a4earrow\u0100lr\u1bee\u1bf3eft\xbb\u1b80ight\xbb\u1bbde\xe4\u1bdd\u0100ci\u1c01\u1c07onin\xf4\u01f7nt;\u6231lcty;\u632d\u0980AHabcdefhijlorstuwz\u1c38\u1c3b\u1c3f\u1c5d\u1c69\u1c75\u1c8a\u1c9e\u1cac\u1cb7\u1cfb\u1cff\u1d0d\u1d7b\u1d91\u1dab\u1dbb\u1dc6\u1dcdr\xf2\u0381ar;\u6965\u0200glrs\u1c48\u1c4d\u1c52\u1c54ger;\u6020eth;\u6138\xf2\u1133h\u0100;v\u1c5a\u1c5b\u6010\xbb\u090a\u016b\u1c61\u1c67arow;\u690fa\xe3\u0315\u0100ay\u1c6e\u1c73ron;\u410f;\u4434\u0180;ao\u0332\u1c7c\u1c84\u0100gr\u02bf\u1c81r;\u61catseq;\u6a77\u0180glm\u1c91\u1c94\u1c98\u803b\xb0\u40b0ta;\u43b4ptyv;\u69b1\u0100ir\u1ca3\u1ca8sht;\u697f;\uc000\ud835\udd21ar\u0100lr\u1cb3\u1cb5\xbb\u08dc\xbb\u101e\u0280aegsv\u1cc2\u0378\u1cd6\u1cdc\u1ce0m\u0180;os\u0326\u1cca\u1cd4nd\u0100;s\u0326\u1cd1uit;\u6666amma;\u43ddin;\u62f2\u0180;io\u1ce7\u1ce8\u1cf8\u40f7de\u8100\xf7;o\u1ce7\u1cf0ntimes;\u62c7n\xf8\u1cf7cy;\u4452c\u026f\u1d06\0\0\u1d0arn;\u631eop;\u630d\u0280lptuw\u1d18\u1d1d\u1d22\u1d49\u1d55lar;\u4024f;\uc000\ud835\udd55\u0280;emps\u030b\u1d2d\u1d37\u1d3d\u1d42q\u0100;d\u0352\u1d33ot;\u6251inus;\u6238lus;\u6214quare;\u62a1blebarwedg\xe5\xfan\u0180adh\u112e\u1d5d\u1d67ownarrow\xf3\u1c83arpoon\u0100lr\u1d72\u1d76ef\xf4\u1cb4igh\xf4\u1cb6\u0162\u1d7f\u1d85karo\xf7\u0f42\u026f\u1d8a\0\0\u1d8ern;\u631fop;\u630c\u0180cot\u1d98\u1da3\u1da6\u0100ry\u1d9d\u1da1;\uc000\ud835\udcb9;\u4455l;\u69f6rok;\u4111\u0100dr\u1db0\u1db4ot;\u62f1i\u0100;f\u1dba\u1816\u65bf\u0100ah\u1dc0\u1dc3r\xf2\u0429a\xf2\u0fa6angle;\u69a6\u0100ci\u1dd2\u1dd5y;\u445fgrarr;\u67ff\u0900Dacdefglmnopqrstux\u1e01\u1e09\u1e19\u1e38\u0578\u1e3c\u1e49\u1e61\u1e7e\u1ea5\u1eaf\u1ebd\u1ee1\u1f2a\u1f37\u1f44\u1f4e\u1f5a\u0100Do\u1e06\u1d34o\xf4\u1c89\u0100cs\u1e0e\u1e14ute\u803b\xe9\u40e9ter;\u6a6e\u0200aioy\u1e22\u1e27\u1e31\u1e36ron;\u411br\u0100;c\u1e2d\u1e2e\u6256\u803b\xea\u40ealon;\u6255;\u444dot;\u4117\u0100Dr\u1e41\u1e45ot;\u6252;\uc000\ud835\udd22\u0180;rs\u1e50\u1e51\u1e57\u6a9aave\u803b\xe8\u40e8\u0100;d\u1e5c\u1e5d\u6a96ot;\u6a98\u0200;ils\u1e6a\u1e6b\u1e72\u1e74\u6a99nters;\u63e7;\u6113\u0100;d\u1e79\u1e7a\u6a95ot;\u6a97\u0180aps\u1e85\u1e89\u1e97cr;\u4113ty\u0180;sv\u1e92\u1e93\u1e95\u6205et\xbb\u1e93p\u01001;\u1e9d\u1ea4\u0133\u1ea1\u1ea3;\u6004;\u6005\u6003\u0100gs\u1eaa\u1eac;\u414bp;\u6002\u0100gp\u1eb4\u1eb8on;\u4119f;\uc000\ud835\udd56\u0180als\u1ec4\u1ece\u1ed2r\u0100;s\u1eca\u1ecb\u62d5l;\u69e3us;\u6a71i\u0180;lv\u1eda\u1edb\u1edf\u43b5on\xbb\u1edb;\u43f5\u0200csuv\u1eea\u1ef3\u1f0b\u1f23\u0100io\u1eef\u1e31rc\xbb\u1e2e\u0269\u1ef9\0\0\u1efb\xed\u0548ant\u0100gl\u1f02\u1f06tr\xbb\u1e5dess\xbb\u1e7a\u0180aei\u1f12\u1f16\u1f1als;\u403dst;\u625fv\u0100;D\u0235\u1f20D;\u6a78parsl;\u69e5\u0100Da\u1f2f\u1f33ot;\u6253rr;\u6971\u0180cdi\u1f3e\u1f41\u1ef8r;\u612fo\xf4\u0352\u0100ah\u1f49\u1f4b;\u43b7\u803b\xf0\u40f0\u0100mr\u1f53\u1f57l\u803b\xeb\u40ebo;\u60ac\u0180cip\u1f61\u1f64\u1f67l;\u4021s\xf4\u056e\u0100eo\u1f6c\u1f74ctatio\xee\u0559nential\xe5\u0579\u09e1\u1f92\0\u1f9e\0\u1fa1\u1fa7\0\0\u1fc6\u1fcc\0\u1fd3\0\u1fe6\u1fea\u2000\0\u2008\u205allingdotse\xf1\u1e44y;\u4444male;\u6640\u0180ilr\u1fad\u1fb3\u1fc1lig;\u8000\ufb03\u0269\u1fb9\0\0\u1fbdg;\u8000\ufb00ig;\u8000\ufb04;\uc000\ud835\udd23lig;\u8000\ufb01lig;\uc000fj\u0180alt\u1fd9\u1fdc\u1fe1t;\u666dig;\u8000\ufb02ns;\u65b1of;\u4192\u01f0\u1fee\0\u1ff3f;\uc000\ud835\udd57\u0100ak\u05bf\u1ff7\u0100;v\u1ffc\u1ffd\u62d4;\u6ad9artint;\u6a0d\u0100ao\u200c\u2055\u0100cs\u2011\u2052\u03b1\u201a\u2030\u2038\u2045\u2048\0\u2050\u03b2\u2022\u2025\u2027\u202a\u202c\0\u202e\u803b\xbd\u40bd;\u6153\u803b\xbc\u40bc;\u6155;\u6159;\u615b\u01b3\u2034\0\u2036;\u6154;\u6156\u02b4\u203e\u2041\0\0\u2043\u803b\xbe\u40be;\u6157;\u615c5;\u6158\u01b6\u204c\0\u204e;\u615a;\u615d8;\u615el;\u6044wn;\u6322cr;\uc000\ud835\udcbb\u0880Eabcdefgijlnorstv\u2082\u2089\u209f\u20a5\u20b0\u20b4\u20f0\u20f5\u20fa\u20ff\u2103\u2112\u2138\u0317\u213e\u2152\u219e\u0100;l\u064d\u2087;\u6a8c\u0180cmp\u2090\u2095\u209dute;\u41f5ma\u0100;d\u209c\u1cda\u43b3;\u6a86reve;\u411f\u0100iy\u20aa\u20aerc;\u411d;\u4433ot;\u4121\u0200;lqs\u063e\u0642\u20bd\u20c9\u0180;qs\u063e\u064c\u20c4lan\xf4\u0665\u0200;cdl\u0665\u20d2\u20d5\u20e5c;\u6aa9ot\u0100;o\u20dc\u20dd\u6a80\u0100;l\u20e2\u20e3\u6a82;\u6a84\u0100;e\u20ea\u20ed\uc000\u22db\ufe00s;\u6a94r;\uc000\ud835\udd24\u0100;g\u0673\u061bmel;\u6137cy;\u4453\u0200;Eaj\u065a\u210c\u210e\u2110;\u6a92;\u6aa5;\u6aa4\u0200Eaes\u211b\u211d\u2129\u2134;\u6269p\u0100;p\u2123\u2124\u6a8arox\xbb\u2124\u0100;q\u212e\u212f\u6a88\u0100;q\u212e\u211bim;\u62e7pf;\uc000\ud835\udd58\u0100ci\u2143\u2146r;\u610am\u0180;el\u066b\u214e\u2150;\u6a8e;\u6a90\u8300>;cdlqr\u05ee\u2160\u216a\u216e\u2173\u2179\u0100ci\u2165\u2167;\u6aa7r;\u6a7aot;\u62d7Par;\u6995uest;\u6a7c\u0280adels\u2184\u216a\u2190\u0656\u219b\u01f0\u2189\0\u218epro\xf8\u209er;\u6978q\u0100lq\u063f\u2196les\xf3\u2088i\xed\u066b\u0100en\u21a3\u21adrtneqq;\uc000\u2269\ufe00\xc5\u21aa\u0500Aabcefkosy\u21c4\u21c7\u21f1\u21f5\u21fa\u2218\u221d\u222f\u2268\u227dr\xf2\u03a0\u0200ilmr\u21d0\u21d4\u21d7\u21dbrs\xf0\u1484f\xbb\u2024il\xf4\u06a9\u0100dr\u21e0\u21e4cy;\u444a\u0180;cw\u08f4\u21eb\u21efir;\u6948;\u61adar;\u610firc;\u4125\u0180alr\u2201\u220e\u2213rts\u0100;u\u2209\u220a\u6665it\xbb\u220alip;\u6026con;\u62b9r;\uc000\ud835\udd25s\u0100ew\u2223\u2229arow;\u6925arow;\u6926\u0280amopr\u223a\u223e\u2243\u225e\u2263rr;\u61fftht;\u623bk\u0100lr\u2249\u2253eftarrow;\u61a9ightarrow;\u61aaf;\uc000\ud835\udd59bar;\u6015\u0180clt\u226f\u2274\u2278r;\uc000\ud835\udcbdas\xe8\u21f4rok;\u4127\u0100bp\u2282\u2287ull;\u6043hen\xbb\u1c5b\u0ae1\u22a3\0\u22aa\0\u22b8\u22c5\u22ce\0\u22d5\u22f3\0\0\u22f8\u2322\u2367\u2362\u237f\0\u2386\u23aa\u23b4cute\u803b\xed\u40ed\u0180;iy\u0771\u22b0\u22b5rc\u803b\xee\u40ee;\u4438\u0100cx\u22bc\u22bfy;\u4435cl\u803b\xa1\u40a1\u0100fr\u039f\u22c9;\uc000\ud835\udd26rave\u803b\xec\u40ec\u0200;ino\u073e\u22dd\u22e9\u22ee\u0100in\u22e2\u22e6nt;\u6a0ct;\u622dfin;\u69dcta;\u6129lig;\u4133\u0180aop\u22fe\u231a\u231d\u0180cgt\u2305\u2308\u2317r;\u412b\u0180elp\u071f\u230f\u2313in\xe5\u078ear\xf4\u0720h;\u4131f;\u62b7ed;\u41b5\u0280;cfot\u04f4\u232c\u2331\u233d\u2341are;\u6105in\u0100;t\u2338\u2339\u621eie;\u69dddo\xf4\u2319\u0280;celp\u0757\u234c\u2350\u235b\u2361al;\u62ba\u0100gr\u2355\u2359er\xf3\u1563\xe3\u234darhk;\u6a17rod;\u6a3c\u0200cgpt\u236f\u2372\u2376\u237by;\u4451on;\u412ff;\uc000\ud835\udd5aa;\u43b9uest\u803b\xbf\u40bf\u0100ci\u238a\u238fr;\uc000\ud835\udcben\u0280;Edsv\u04f4\u239b\u239d\u23a1\u04f3;\u62f9ot;\u62f5\u0100;v\u23a6\u23a7\u62f4;\u62f3\u0100;i\u0777\u23aelde;\u4129\u01eb\u23b8\0\u23bccy;\u4456l\u803b\xef\u40ef\u0300cfmosu\u23cc\u23d7\u23dc\u23e1\u23e7\u23f5\u0100iy\u23d1\u23d5rc;\u4135;\u4439r;\uc000\ud835\udd27ath;\u4237pf;\uc000\ud835\udd5b\u01e3\u23ec\0\u23f1r;\uc000\ud835\udcbfrcy;\u4458kcy;\u4454\u0400acfghjos\u240b\u2416\u2422\u2427\u242d\u2431\u2435\u243bppa\u0100;v\u2413\u2414\u43ba;\u43f0\u0100ey\u241b\u2420dil;\u4137;\u443ar;\uc000\ud835\udd28reen;\u4138cy;\u4445cy;\u445cpf;\uc000\ud835\udd5ccr;\uc000\ud835\udcc0\u0b80ABEHabcdefghjlmnoprstuv\u2470\u2481\u2486\u248d\u2491\u250e\u253d\u255a\u2580\u264e\u265e\u2665\u2679\u267d\u269a\u26b2\u26d8\u275d\u2768\u278b\u27c0\u2801\u2812\u0180art\u2477\u247a\u247cr\xf2\u09c6\xf2\u0395ail;\u691barr;\u690e\u0100;g\u0994\u248b;\u6a8bar;\u6962\u0963\u24a5\0\u24aa\0\u24b1\0\0\0\0\0\u24b5\u24ba\0\u24c6\u24c8\u24cd\0\u24f9ute;\u413amptyv;\u69b4ra\xee\u084cbda;\u43bbg\u0180;dl\u088e\u24c1\u24c3;\u6991\xe5\u088e;\u6a85uo\u803b\xab\u40abr\u0400;bfhlpst\u0899\u24de\u24e6\u24e9\u24eb\u24ee\u24f1\u24f5\u0100;f\u089d\u24e3s;\u691fs;\u691d\xeb\u2252p;\u61abl;\u6939im;\u6973l;\u61a2\u0180;ae\u24ff\u2500\u2504\u6aabil;\u6919\u0100;s\u2509\u250a\u6aad;\uc000\u2aad\ufe00\u0180abr\u2515\u2519\u251drr;\u690crk;\u6772\u0100ak\u2522\u252cc\u0100ek\u2528\u252a;\u407b;\u405b\u0100es\u2531\u2533;\u698bl\u0100du\u2539\u253b;\u698f;\u698d\u0200aeuy\u2546\u254b\u2556\u2558ron;\u413e\u0100di\u2550\u2554il;\u413c\xec\u08b0\xe2\u2529;\u443b\u0200cqrs\u2563\u2566\u256d\u257da;\u6936uo\u0100;r\u0e19\u1746\u0100du\u2572\u2577har;\u6967shar;\u694bh;\u61b2\u0280;fgqs\u258b\u258c\u0989\u25f3\u25ff\u6264t\u0280ahlrt\u2598\u25a4\u25b7\u25c2\u25e8rrow\u0100;t\u0899\u25a1a\xe9\u24f6arpoon\u0100du\u25af\u25b4own\xbb\u045ap\xbb\u0966eftarrows;\u61c7ight\u0180ahs\u25cd\u25d6\u25derrow\u0100;s\u08f4\u08a7arpoon\xf3\u0f98quigarro\xf7\u21f0hreetimes;\u62cb\u0180;qs\u258b\u0993\u25falan\xf4\u09ac\u0280;cdgs\u09ac\u260a\u260d\u261d\u2628c;\u6aa8ot\u0100;o\u2614\u2615\u6a7f\u0100;r\u261a\u261b\u6a81;\u6a83\u0100;e\u2622\u2625\uc000\u22da\ufe00s;\u6a93\u0280adegs\u2633\u2639\u263d\u2649\u264bppro\xf8\u24c6ot;\u62d6q\u0100gq\u2643\u2645\xf4\u0989gt\xf2\u248c\xf4\u099bi\xed\u09b2\u0180ilr\u2655\u08e1\u265asht;\u697c;\uc000\ud835\udd29\u0100;E\u099c\u2663;\u6a91\u0161\u2669\u2676r\u0100du\u25b2\u266e\u0100;l\u0965\u2673;\u696alk;\u6584cy;\u4459\u0280;acht\u0a48\u2688\u268b\u2691\u2696r\xf2\u25c1orne\xf2\u1d08ard;\u696bri;\u65fa\u0100io\u269f\u26a4dot;\u4140ust\u0100;a\u26ac\u26ad\u63b0che\xbb\u26ad\u0200Eaes\u26bb\u26bd\u26c9\u26d4;\u6268p\u0100;p\u26c3\u26c4\u6a89rox\xbb\u26c4\u0100;q\u26ce\u26cf\u6a87\u0100;q\u26ce\u26bbim;\u62e6\u0400abnoptwz\u26e9\u26f4\u26f7\u271a\u272f\u2741\u2747\u2750\u0100nr\u26ee\u26f1g;\u67ecr;\u61fdr\xeb\u08c1g\u0180lmr\u26ff\u270d\u2714eft\u0100ar\u09e6\u2707ight\xe1\u09f2apsto;\u67fcight\xe1\u09fdparrow\u0100lr\u2725\u2729ef\xf4\u24edight;\u61ac\u0180afl\u2736\u2739\u273dr;\u6985;\uc000\ud835\udd5dus;\u6a2dimes;\u6a34\u0161\u274b\u274fst;\u6217\xe1\u134e\u0180;ef\u2757\u2758\u1800\u65cange\xbb\u2758ar\u0100;l\u2764\u2765\u4028t;\u6993\u0280achmt\u2773\u2776\u277c\u2785\u2787r\xf2\u08a8orne\xf2\u1d8car\u0100;d\u0f98\u2783;\u696d;\u600eri;\u62bf\u0300achiqt\u2798\u279d\u0a40\u27a2\u27ae\u27bbquo;\u6039r;\uc000\ud835\udcc1m\u0180;eg\u09b2\u27aa\u27ac;\u6a8d;\u6a8f\u0100bu\u252a\u27b3o\u0100;r\u0e1f\u27b9;\u601arok;\u4142\u8400<;cdhilqr\u082b\u27d2\u2639\u27dc\u27e0\u27e5\u27ea\u27f0\u0100ci\u27d7\u27d9;\u6aa6r;\u6a79re\xe5\u25f2mes;\u62c9arr;\u6976uest;\u6a7b\u0100Pi\u27f5\u27f9ar;\u6996\u0180;ef\u2800\u092d\u181b\u65c3r\u0100du\u2807\u280dshar;\u694ahar;\u6966\u0100en\u2817\u2821rtneqq;\uc000\u2268\ufe00\xc5\u281e\u0700Dacdefhilnopsu\u2840\u2845\u2882\u288e\u2893\u28a0\u28a5\u28a8\u28da\u28e2\u28e4\u0a83\u28f3\u2902Dot;\u623a\u0200clpr\u284e\u2852\u2863\u287dr\u803b\xaf\u40af\u0100et\u2857\u2859;\u6642\u0100;e\u285e\u285f\u6720se\xbb\u285f\u0100;s\u103b\u2868to\u0200;dlu\u103b\u2873\u2877\u287bow\xee\u048cef\xf4\u090f\xf0\u13d1ker;\u65ae\u0100oy\u2887\u288cmma;\u6a29;\u443cash;\u6014asuredangle\xbb\u1626r;\uc000\ud835\udd2ao;\u6127\u0180cdn\u28af\u28b4\u28c9ro\u803b\xb5\u40b5\u0200;acd\u1464\u28bd\u28c0\u28c4s\xf4\u16a7ir;\u6af0ot\u80bb\xb7\u01b5us\u0180;bd\u28d2\u1903\u28d3\u6212\u0100;u\u1d3c\u28d8;\u6a2a\u0163\u28de\u28e1p;\u6adb\xf2\u2212\xf0\u0a81\u0100dp\u28e9\u28eeels;\u62a7f;\uc000\ud835\udd5e\u0100ct\u28f8\u28fdr;\uc000\ud835\udcc2pos\xbb\u159d\u0180;lm\u2909\u290a\u290d\u43bctimap;\u62b8\u0c00GLRVabcdefghijlmoprstuvw\u2942\u2953\u297e\u2989\u2998\u29da\u29e9\u2a15\u2a1a\u2a58\u2a5d\u2a83\u2a95\u2aa4\u2aa8\u2b04\u2b07\u2b44\u2b7f\u2bae\u2c34\u2c67\u2c7c\u2ce9\u0100gt\u2947\u294b;\uc000\u22d9\u0338\u0100;v\u2950\u0bcf\uc000\u226b\u20d2\u0180elt\u295a\u2972\u2976ft\u0100ar\u2961\u2967rrow;\u61cdightarrow;\u61ce;\uc000\u22d8\u0338\u0100;v\u297b\u0c47\uc000\u226a\u20d2ightarrow;\u61cf\u0100Dd\u298e\u2993ash;\u62afash;\u62ae\u0280bcnpt\u29a3\u29a7\u29ac\u29b1\u29ccla\xbb\u02deute;\u4144g;\uc000\u2220\u20d2\u0280;Eiop\u0d84\u29bc\u29c0\u29c5\u29c8;\uc000\u2a70\u0338d;\uc000\u224b\u0338s;\u4149ro\xf8\u0d84ur\u0100;a\u29d3\u29d4\u666el\u0100;s\u29d3\u0b38\u01f3\u29df\0\u29e3p\u80bb\xa0\u0b37mp\u0100;e\u0bf9\u0c00\u0280aeouy\u29f4\u29fe\u2a03\u2a10\u2a13\u01f0\u29f9\0\u29fb;\u6a43on;\u4148dil;\u4146ng\u0100;d\u0d7e\u2a0aot;\uc000\u2a6d\u0338p;\u6a42;\u443dash;\u6013\u0380;Aadqsx\u0b92\u2a29\u2a2d\u2a3b\u2a41\u2a45\u2a50rr;\u61d7r\u0100hr\u2a33\u2a36k;\u6924\u0100;o\u13f2\u13f0ot;\uc000\u2250\u0338ui\xf6\u0b63\u0100ei\u2a4a\u2a4ear;\u6928\xed\u0b98ist\u0100;s\u0ba0\u0b9fr;\uc000\ud835\udd2b\u0200Eest\u0bc5\u2a66\u2a79\u2a7c\u0180;qs\u0bbc\u2a6d\u0be1\u0180;qs\u0bbc\u0bc5\u2a74lan\xf4\u0be2i\xed\u0bea\u0100;r\u0bb6\u2a81\xbb\u0bb7\u0180Aap\u2a8a\u2a8d\u2a91r\xf2\u2971rr;\u61aear;\u6af2\u0180;sv\u0f8d\u2a9c\u0f8c\u0100;d\u2aa1\u2aa2\u62fc;\u62facy;\u445a\u0380AEadest\u2ab7\u2aba\u2abe\u2ac2\u2ac5\u2af6\u2af9r\xf2\u2966;\uc000\u2266\u0338rr;\u619ar;\u6025\u0200;fqs\u0c3b\u2ace\u2ae3\u2aeft\u0100ar\u2ad4\u2ad9rro\xf7\u2ac1ightarro\xf7\u2a90\u0180;qs\u0c3b\u2aba\u2aealan\xf4\u0c55\u0100;s\u0c55\u2af4\xbb\u0c36i\xed\u0c5d\u0100;r\u0c35\u2afei\u0100;e\u0c1a\u0c25i\xe4\u0d90\u0100pt\u2b0c\u2b11f;\uc000\ud835\udd5f\u8180\xac;in\u2b19\u2b1a\u2b36\u40acn\u0200;Edv\u0b89\u2b24\u2b28\u2b2e;\uc000\u22f9\u0338ot;\uc000\u22f5\u0338\u01e1\u0b89\u2b33\u2b35;\u62f7;\u62f6i\u0100;v\u0cb8\u2b3c\u01e1\u0cb8\u2b41\u2b43;\u62fe;\u62fd\u0180aor\u2b4b\u2b63\u2b69r\u0200;ast\u0b7b\u2b55\u2b5a\u2b5flle\xec\u0b7bl;\uc000\u2afd\u20e5;\uc000\u2202\u0338lint;\u6a14\u0180;ce\u0c92\u2b70\u2b73u\xe5\u0ca5\u0100;c\u0c98\u2b78\u0100;e\u0c92\u2b7d\xf1\u0c98\u0200Aait\u2b88\u2b8b\u2b9d\u2ba7r\xf2\u2988rr\u0180;cw\u2b94\u2b95\u2b99\u619b;\uc000\u2933\u0338;\uc000\u219d\u0338ghtarrow\xbb\u2b95ri\u0100;e\u0ccb\u0cd6\u0380chimpqu\u2bbd\u2bcd\u2bd9\u2b04\u0b78\u2be4\u2bef\u0200;cer\u0d32\u2bc6\u0d37\u2bc9u\xe5\u0d45;\uc000\ud835\udcc3ort\u026d\u2b05\0\0\u2bd6ar\xe1\u2b56m\u0100;e\u0d6e\u2bdf\u0100;q\u0d74\u0d73su\u0100bp\u2beb\u2bed\xe5\u0cf8\xe5\u0d0b\u0180bcp\u2bf6\u2c11\u2c19\u0200;Ees\u2bff\u2c00\u0d22\u2c04\u6284;\uc000\u2ac5\u0338et\u0100;e\u0d1b\u2c0bq\u0100;q\u0d23\u2c00c\u0100;e\u0d32\u2c17\xf1\u0d38\u0200;Ees\u2c22\u2c23\u0d5f\u2c27\u6285;\uc000\u2ac6\u0338et\u0100;e\u0d58\u2c2eq\u0100;q\u0d60\u2c23\u0200gilr\u2c3d\u2c3f\u2c45\u2c47\xec\u0bd7lde\u803b\xf1\u40f1\xe7\u0c43iangle\u0100lr\u2c52\u2c5ceft\u0100;e\u0c1a\u2c5a\xf1\u0c26ight\u0100;e\u0ccb\u2c65\xf1\u0cd7\u0100;m\u2c6c\u2c6d\u43bd\u0180;es\u2c74\u2c75\u2c79\u4023ro;\u6116p;\u6007\u0480DHadgilrs\u2c8f\u2c94\u2c99\u2c9e\u2ca3\u2cb0\u2cb6\u2cd3\u2ce3ash;\u62adarr;\u6904p;\uc000\u224d\u20d2ash;\u62ac\u0100et\u2ca8\u2cac;\uc000\u2265\u20d2;\uc000>\u20d2nfin;\u69de\u0180Aet\u2cbd\u2cc1\u2cc5rr;\u6902;\uc000\u2264\u20d2\u0100;r\u2cca\u2ccd\uc000<\u20d2ie;\uc000\u22b4\u20d2\u0100At\u2cd8\u2cdcrr;\u6903rie;\uc000\u22b5\u20d2im;\uc000\u223c\u20d2\u0180Aan\u2cf0\u2cf4\u2d02rr;\u61d6r\u0100hr\u2cfa\u2cfdk;\u6923\u0100;o\u13e7\u13e5ear;\u6927\u1253\u1a95\0\0\0\0\0\0\0\0\0\0\0\0\0\u2d2d\0\u2d38\u2d48\u2d60\u2d65\u2d72\u2d84\u1b07\0\0\u2d8d\u2dab\0\u2dc8\u2dce\0\u2ddc\u2e19\u2e2b\u2e3e\u2e43\u0100cs\u2d31\u1a97ute\u803b\xf3\u40f3\u0100iy\u2d3c\u2d45r\u0100;c\u1a9e\u2d42\u803b\xf4\u40f4;\u443e\u0280abios\u1aa0\u2d52\u2d57\u01c8\u2d5alac;\u4151v;\u6a38old;\u69bclig;\u4153\u0100cr\u2d69\u2d6dir;\u69bf;\uc000\ud835\udd2c\u036f\u2d79\0\0\u2d7c\0\u2d82n;\u42dbave\u803b\xf2\u40f2;\u69c1\u0100bm\u2d88\u0df4ar;\u69b5\u0200acit\u2d95\u2d98\u2da5\u2da8r\xf2\u1a80\u0100ir\u2d9d\u2da0r;\u69beoss;\u69bbn\xe5\u0e52;\u69c0\u0180aei\u2db1\u2db5\u2db9cr;\u414dga;\u43c9\u0180cdn\u2dc0\u2dc5\u01cdron;\u43bf;\u69b6pf;\uc000\ud835\udd60\u0180ael\u2dd4\u2dd7\u01d2r;\u69b7rp;\u69b9\u0380;adiosv\u2dea\u2deb\u2dee\u2e08\u2e0d\u2e10\u2e16\u6228r\xf2\u1a86\u0200;efm\u2df7\u2df8\u2e02\u2e05\u6a5dr\u0100;o\u2dfe\u2dff\u6134f\xbb\u2dff\u803b\xaa\u40aa\u803b\xba\u40bagof;\u62b6r;\u6a56lope;\u6a57;\u6a5b\u0180clo\u2e1f\u2e21\u2e27\xf2\u2e01ash\u803b\xf8\u40f8l;\u6298i\u016c\u2e2f\u2e34de\u803b\xf5\u40f5es\u0100;a\u01db\u2e3as;\u6a36ml\u803b\xf6\u40f6bar;\u633d\u0ae1\u2e5e\0\u2e7d\0\u2e80\u2e9d\0\u2ea2\u2eb9\0\0\u2ecb\u0e9c\0\u2f13\0\0\u2f2b\u2fbc\0\u2fc8r\u0200;ast\u0403\u2e67\u2e72\u0e85\u8100\xb6;l\u2e6d\u2e6e\u40b6le\xec\u0403\u0269\u2e78\0\0\u2e7bm;\u6af3;\u6afdy;\u443fr\u0280cimpt\u2e8b\u2e8f\u2e93\u1865\u2e97nt;\u4025od;\u402eil;\u6030enk;\u6031r;\uc000\ud835\udd2d\u0180imo\u2ea8\u2eb0\u2eb4\u0100;v\u2ead\u2eae\u43c6;\u43d5ma\xf4\u0a76ne;\u660e\u0180;tv\u2ebf\u2ec0\u2ec8\u43c0chfork\xbb\u1ffd;\u43d6\u0100au\u2ecf\u2edfn\u0100ck\u2ed5\u2eddk\u0100;h\u21f4\u2edb;\u610e\xf6\u21f4s\u0480;abcdemst\u2ef3\u2ef4\u1908\u2ef9\u2efd\u2f04\u2f06\u2f0a\u2f0e\u402bcir;\u6a23ir;\u6a22\u0100ou\u1d40\u2f02;\u6a25;\u6a72n\u80bb\xb1\u0e9dim;\u6a26wo;\u6a27\u0180ipu\u2f19\u2f20\u2f25ntint;\u6a15f;\uc000\ud835\udd61nd\u803b\xa3\u40a3\u0500;Eaceinosu\u0ec8\u2f3f\u2f41\u2f44\u2f47\u2f81\u2f89\u2f92\u2f7e\u2fb6;\u6ab3p;\u6ab7u\xe5\u0ed9\u0100;c\u0ece\u2f4c\u0300;acens\u0ec8\u2f59\u2f5f\u2f66\u2f68\u2f7eppro\xf8\u2f43urlye\xf1\u0ed9\xf1\u0ece\u0180aes\u2f6f\u2f76\u2f7approx;\u6ab9qq;\u6ab5im;\u62e8i\xed\u0edfme\u0100;s\u2f88\u0eae\u6032\u0180Eas\u2f78\u2f90\u2f7a\xf0\u2f75\u0180dfp\u0eec\u2f99\u2faf\u0180als\u2fa0\u2fa5\u2faalar;\u632eine;\u6312urf;\u6313\u0100;t\u0efb\u2fb4\xef\u0efbrel;\u62b0\u0100ci\u2fc0\u2fc5r;\uc000\ud835\udcc5;\u43c8ncsp;\u6008\u0300fiopsu\u2fda\u22e2\u2fdf\u2fe5\u2feb\u2ff1r;\uc000\ud835\udd2epf;\uc000\ud835\udd62rime;\u6057cr;\uc000\ud835\udcc6\u0180aeo\u2ff8\u3009\u3013t\u0100ei\u2ffe\u3005rnion\xf3\u06b0nt;\u6a16st\u0100;e\u3010\u3011\u403f\xf1\u1f19\xf4\u0f14\u0a80ABHabcdefhilmnoprstux\u3040\u3051\u3055\u3059\u30e0\u310e\u312b\u3147\u3162\u3172\u318e\u3206\u3215\u3224\u3229\u3258\u326e\u3272\u3290\u32b0\u32b7\u0180art\u3047\u304a\u304cr\xf2\u10b3\xf2\u03ddail;\u691car\xf2\u1c65ar;\u6964\u0380cdenqrt\u3068\u3075\u3078\u307f\u308f\u3094\u30cc\u0100eu\u306d\u3071;\uc000\u223d\u0331te;\u4155i\xe3\u116emptyv;\u69b3g\u0200;del\u0fd1\u3089\u308b\u308d;\u6992;\u69a5\xe5\u0fd1uo\u803b\xbb\u40bbr\u0580;abcfhlpstw\u0fdc\u30ac\u30af\u30b7\u30b9\u30bc\u30be\u30c0\u30c3\u30c7\u30cap;\u6975\u0100;f\u0fe0\u30b4s;\u6920;\u6933s;\u691e\xeb\u225d\xf0\u272el;\u6945im;\u6974l;\u61a3;\u619d\u0100ai\u30d1\u30d5il;\u691ao\u0100;n\u30db\u30dc\u6236al\xf3\u0f1e\u0180abr\u30e7\u30ea\u30eer\xf2\u17e5rk;\u6773\u0100ak\u30f3\u30fdc\u0100ek\u30f9\u30fb;\u407d;\u405d\u0100es\u3102\u3104;\u698cl\u0100du\u310a\u310c;\u698e;\u6990\u0200aeuy\u3117\u311c\u3127\u3129ron;\u4159\u0100di\u3121\u3125il;\u4157\xec\u0ff2\xe2\u30fa;\u4440\u0200clqs\u3134\u3137\u313d\u3144a;\u6937dhar;\u6969uo\u0100;r\u020e\u020dh;\u61b3\u0180acg\u314e\u315f\u0f44l\u0200;ips\u0f78\u3158\u315b\u109cn\xe5\u10bbar\xf4\u0fa9t;\u65ad\u0180ilr\u3169\u1023\u316esht;\u697d;\uc000\ud835\udd2f\u0100ao\u3177\u3186r\u0100du\u317d\u317f\xbb\u047b\u0100;l\u1091\u3184;\u696c\u0100;v\u318b\u318c\u43c1;\u43f1\u0180gns\u3195\u31f9\u31fcht\u0300ahlrst\u31a4\u31b0\u31c2\u31d8\u31e4\u31eerrow\u0100;t\u0fdc\u31ada\xe9\u30c8arpoon\u0100du\u31bb\u31bfow\xee\u317ep\xbb\u1092eft\u0100ah\u31ca\u31d0rrow\xf3\u0feaarpoon\xf3\u0551ightarrows;\u61c9quigarro\xf7\u30cbhreetimes;\u62ccg;\u42daingdotse\xf1\u1f32\u0180ahm\u320d\u3210\u3213r\xf2\u0feaa\xf2\u0551;\u600foust\u0100;a\u321e\u321f\u63b1che\xbb\u321fmid;\u6aee\u0200abpt\u3232\u323d\u3240\u3252\u0100nr\u3237\u323ag;\u67edr;\u61fer\xeb\u1003\u0180afl\u3247\u324a\u324er;\u6986;\uc000\ud835\udd63us;\u6a2eimes;\u6a35\u0100ap\u325d\u3267r\u0100;g\u3263\u3264\u4029t;\u6994olint;\u6a12ar\xf2\u31e3\u0200achq\u327b\u3280\u10bc\u3285quo;\u603ar;\uc000\ud835\udcc7\u0100bu\u30fb\u328ao\u0100;r\u0214\u0213\u0180hir\u3297\u329b\u32a0re\xe5\u31f8mes;\u62cai\u0200;efl\u32aa\u1059\u1821\u32ab\u65b9tri;\u69celuhar;\u6968;\u611e\u0d61\u32d5\u32db\u32df\u332c\u3338\u3371\0\u337a\u33a4\0\0\u33ec\u33f0\0\u3428\u3448\u345a\u34ad\u34b1\u34ca\u34f1\0\u3616\0\0\u3633cute;\u415bqu\xef\u27ba\u0500;Eaceinpsy\u11ed\u32f3\u32f5\u32ff\u3302\u330b\u330f\u331f\u3326\u3329;\u6ab4\u01f0\u32fa\0\u32fc;\u6ab8on;\u4161u\xe5\u11fe\u0100;d\u11f3\u3307il;\u415frc;\u415d\u0180Eas\u3316\u3318\u331b;\u6ab6p;\u6abaim;\u62e9olint;\u6a13i\xed\u1204;\u4441ot\u0180;be\u3334\u1d47\u3335\u62c5;\u6a66\u0380Aacmstx\u3346\u334a\u3357\u335b\u335e\u3363\u336drr;\u61d8r\u0100hr\u3350\u3352\xeb\u2228\u0100;o\u0a36\u0a34t\u803b\xa7\u40a7i;\u403bwar;\u6929m\u0100in\u3369\xf0nu\xf3\xf1t;\u6736r\u0100;o\u3376\u2055\uc000\ud835\udd30\u0200acoy\u3382\u3386\u3391\u33a0rp;\u666f\u0100hy\u338b\u338fcy;\u4449;\u4448rt\u026d\u3399\0\0\u339ci\xe4\u1464ara\xec\u2e6f\u803b\xad\u40ad\u0100gm\u33a8\u33b4ma\u0180;fv\u33b1\u33b2\u33b2\u43c3;\u43c2\u0400;deglnpr\u12ab\u33c5\u33c9\u33ce\u33d6\u33de\u33e1\u33e6ot;\u6a6a\u0100;q\u12b1\u12b0\u0100;E\u33d3\u33d4\u6a9e;\u6aa0\u0100;E\u33db\u33dc\u6a9d;\u6a9fe;\u6246lus;\u6a24arr;\u6972ar\xf2\u113d\u0200aeit\u33f8\u3408\u340f\u3417\u0100ls\u33fd\u3404lsetm\xe9\u336ahp;\u6a33parsl;\u69e4\u0100dl\u1463\u3414e;\u6323\u0100;e\u341c\u341d\u6aaa\u0100;s\u3422\u3423\u6aac;\uc000\u2aac\ufe00\u0180flp\u342e\u3433\u3442tcy;\u444c\u0100;b\u3438\u3439\u402f\u0100;a\u343e\u343f\u69c4r;\u633ff;\uc000\ud835\udd64a\u0100dr\u344d\u0402es\u0100;u\u3454\u3455\u6660it\xbb\u3455\u0180csu\u3460\u3479\u349f\u0100au\u3465\u346fp\u0100;s\u1188\u346b;\uc000\u2293\ufe00p\u0100;s\u11b4\u3475;\uc000\u2294\ufe00u\u0100bp\u347f\u348f\u0180;es\u1197\u119c\u3486et\u0100;e\u1197\u348d\xf1\u119d\u0180;es\u11a8\u11ad\u3496et\u0100;e\u11a8\u349d\xf1\u11ae\u0180;af\u117b\u34a6\u05b0r\u0165\u34ab\u05b1\xbb\u117car\xf2\u1148\u0200cemt\u34b9\u34be\u34c2\u34c5r;\uc000\ud835\udcc8tm\xee\xf1i\xec\u3415ar\xe6\u11be\u0100ar\u34ce\u34d5r\u0100;f\u34d4\u17bf\u6606\u0100an\u34da\u34edight\u0100ep\u34e3\u34eapsilo\xee\u1ee0h\xe9\u2eafs\xbb\u2852\u0280bcmnp\u34fb\u355e\u1209\u358b\u358e\u0480;Edemnprs\u350e\u350f\u3511\u3515\u351e\u3523\u352c\u3531\u3536\u6282;\u6ac5ot;\u6abd\u0100;d\u11da\u351aot;\u6ac3ult;\u6ac1\u0100Ee\u3528\u352a;\u6acb;\u628alus;\u6abfarr;\u6979\u0180eiu\u353d\u3552\u3555t\u0180;en\u350e\u3545\u354bq\u0100;q\u11da\u350feq\u0100;q\u352b\u3528m;\u6ac7\u0100bp\u355a\u355c;\u6ad5;\u6ad3c\u0300;acens\u11ed\u356c\u3572\u3579\u357b\u3326ppro\xf8\u32faurlye\xf1\u11fe\xf1\u11f3\u0180aes\u3582\u3588\u331bppro\xf8\u331aq\xf1\u3317g;\u666a\u0680123;Edehlmnps\u35a9\u35ac\u35af\u121c\u35b2\u35b4\u35c0\u35c9\u35d5\u35da\u35df\u35e8\u35ed\u803b\xb9\u40b9\u803b\xb2\u40b2\u803b\xb3\u40b3;\u6ac6\u0100os\u35b9\u35bct;\u6abeub;\u6ad8\u0100;d\u1222\u35c5ot;\u6ac4s\u0100ou\u35cf\u35d2l;\u67c9b;\u6ad7arr;\u697bult;\u6ac2\u0100Ee\u35e4\u35e6;\u6acc;\u628blus;\u6ac0\u0180eiu\u35f4\u3609\u360ct\u0180;en\u121c\u35fc\u3602q\u0100;q\u1222\u35b2eq\u0100;q\u35e7\u35e4m;\u6ac8\u0100bp\u3611\u3613;\u6ad4;\u6ad6\u0180Aan\u361c\u3620\u362drr;\u61d9r\u0100hr\u3626\u3628\xeb\u222e\u0100;o\u0a2b\u0a29war;\u692alig\u803b\xdf\u40df\u0be1\u3651\u365d\u3660\u12ce\u3673\u3679\0\u367e\u36c2\0\0\0\0\0\u36db\u3703\0\u3709\u376c\0\0\0\u3787\u0272\u3656\0\0\u365bget;\u6316;\u43c4r\xeb\u0e5f\u0180aey\u3666\u366b\u3670ron;\u4165dil;\u4163;\u4442lrec;\u6315r;\uc000\ud835\udd31\u0200eiko\u3686\u369d\u36b5\u36bc\u01f2\u368b\0\u3691e\u01004f\u1284\u1281a\u0180;sv\u3698\u3699\u369b\u43b8ym;\u43d1\u0100cn\u36a2\u36b2k\u0100as\u36a8\u36aeppro\xf8\u12c1im\xbb\u12acs\xf0\u129e\u0100as\u36ba\u36ae\xf0\u12c1rn\u803b\xfe\u40fe\u01ec\u031f\u36c6\u22e7es\u8180\xd7;bd\u36cf\u36d0\u36d8\u40d7\u0100;a\u190f\u36d5r;\u6a31;\u6a30\u0180eps\u36e1\u36e3\u3700\xe1\u2a4d\u0200;bcf\u0486\u36ec\u36f0\u36f4ot;\u6336ir;\u6af1\u0100;o\u36f9\u36fc\uc000\ud835\udd65rk;\u6ada\xe1\u3362rime;\u6034\u0180aip\u370f\u3712\u3764d\xe5\u1248\u0380adempst\u3721\u374d\u3740\u3751\u3757\u375c\u375fngle\u0280;dlqr\u3730\u3731\u3736\u3740\u3742\u65b5own\xbb\u1dbbeft\u0100;e\u2800\u373e\xf1\u092e;\u625cight\u0100;e\u32aa\u374b\xf1\u105aot;\u65ecinus;\u6a3alus;\u6a39b;\u69cdime;\u6a3bezium;\u63e2\u0180cht\u3772\u377d\u3781\u0100ry\u3777\u377b;\uc000\ud835\udcc9;\u4446cy;\u445brok;\u4167\u0100io\u378b\u378ex\xf4\u1777head\u0100lr\u3797\u37a0eftarro\xf7\u084fightarrow\xbb\u0f5d\u0900AHabcdfghlmoprstuw\u37d0\u37d3\u37d7\u37e4\u37f0\u37fc\u380e\u381c\u3823\u3834\u3851\u385d\u386b\u38a9\u38cc\u38d2\u38ea\u38f6r\xf2\u03edar;\u6963\u0100cr\u37dc\u37e2ute\u803b\xfa\u40fa\xf2\u1150r\u01e3\u37ea\0\u37edy;\u445eve;\u416d\u0100iy\u37f5\u37farc\u803b\xfb\u40fb;\u4443\u0180abh\u3803\u3806\u380br\xf2\u13adlac;\u4171a\xf2\u13c3\u0100ir\u3813\u3818sht;\u697e;\uc000\ud835\udd32rave\u803b\xf9\u40f9\u0161\u3827\u3831r\u0100lr\u382c\u382e\xbb\u0957\xbb\u1083lk;\u6580\u0100ct\u3839\u384d\u026f\u383f\0\0\u384arn\u0100;e\u3845\u3846\u631cr\xbb\u3846op;\u630fri;\u65f8\u0100al\u3856\u385acr;\u416b\u80bb\xa8\u0349\u0100gp\u3862\u3866on;\u4173f;\uc000\ud835\udd66\u0300adhlsu\u114b\u3878\u387d\u1372\u3891\u38a0own\xe1\u13b3arpoon\u0100lr\u3888\u388cef\xf4\u382digh\xf4\u382fi\u0180;hl\u3899\u389a\u389c\u43c5\xbb\u13faon\xbb\u389aparrows;\u61c8\u0180cit\u38b0\u38c4\u38c8\u026f\u38b6\0\0\u38c1rn\u0100;e\u38bc\u38bd\u631dr\xbb\u38bdop;\u630eng;\u416fri;\u65f9cr;\uc000\ud835\udcca\u0180dir\u38d9\u38dd\u38e2ot;\u62f0lde;\u4169i\u0100;f\u3730\u38e8\xbb\u1813\u0100am\u38ef\u38f2r\xf2\u38a8l\u803b\xfc\u40fcangle;\u69a7\u0780ABDacdeflnoprsz\u391c\u391f\u3929\u392d\u39b5\u39b8\u39bd\u39df\u39e4\u39e8\u39f3\u39f9\u39fd\u3a01\u3a20r\xf2\u03f7ar\u0100;v\u3926\u3927\u6ae8;\u6ae9as\xe8\u03e1\u0100nr\u3932\u3937grt;\u699c\u0380eknprst\u34e3\u3946\u394b\u3952\u395d\u3964\u3996app\xe1\u2415othin\xe7\u1e96\u0180hir\u34eb\u2ec8\u3959op\xf4\u2fb5\u0100;h\u13b7\u3962\xef\u318d\u0100iu\u3969\u396dgm\xe1\u33b3\u0100bp\u3972\u3984setneq\u0100;q\u397d\u3980\uc000\u228a\ufe00;\uc000\u2acb\ufe00setneq\u0100;q\u398f\u3992\uc000\u228b\ufe00;\uc000\u2acc\ufe00\u0100hr\u399b\u399fet\xe1\u369ciangle\u0100lr\u39aa\u39afeft\xbb\u0925ight\xbb\u1051y;\u4432ash\xbb\u1036\u0180elr\u39c4\u39d2\u39d7\u0180;be\u2dea\u39cb\u39cfar;\u62bbq;\u625alip;\u62ee\u0100bt\u39dc\u1468a\xf2\u1469r;\uc000\ud835\udd33tr\xe9\u39aesu\u0100bp\u39ef\u39f1\xbb\u0d1c\xbb\u0d59pf;\uc000\ud835\udd67ro\xf0\u0efbtr\xe9\u39b4\u0100cu\u3a06\u3a0br;\uc000\ud835\udccb\u0100bp\u3a10\u3a18n\u0100Ee\u3980\u3a16\xbb\u397en\u0100Ee\u3992\u3a1e\xbb\u3990igzag;\u699a\u0380cefoprs\u3a36\u3a3b\u3a56\u3a5b\u3a54\u3a61\u3a6airc;\u4175\u0100di\u3a40\u3a51\u0100bg\u3a45\u3a49ar;\u6a5fe\u0100;q\u15fa\u3a4f;\u6259erp;\u6118r;\uc000\ud835\udd34pf;\uc000\ud835\udd68\u0100;e\u1479\u3a66at\xe8\u1479cr;\uc000\ud835\udccc\u0ae3\u178e\u3a87\0\u3a8b\0\u3a90\u3a9b\0\0\u3a9d\u3aa8\u3aab\u3aaf\0\0\u3ac3\u3ace\0\u3ad8\u17dc\u17dftr\xe9\u17d1r;\uc000\ud835\udd35\u0100Aa\u3a94\u3a97r\xf2\u03c3r\xf2\u09f6;\u43be\u0100Aa\u3aa1\u3aa4r\xf2\u03b8r\xf2\u09eba\xf0\u2713is;\u62fb\u0180dpt\u17a4\u3ab5\u3abe\u0100fl\u3aba\u17a9;\uc000\ud835\udd69im\xe5\u17b2\u0100Aa\u3ac7\u3acar\xf2\u03cer\xf2\u0a01\u0100cq\u3ad2\u17b8r;\uc000\ud835\udccd\u0100pt\u17d6\u3adcr\xe9\u17d4\u0400acefiosu\u3af0\u3afd\u3b08\u3b0c\u3b11\u3b15\u3b1b\u3b21c\u0100uy\u3af6\u3afbte\u803b\xfd\u40fd;\u444f\u0100iy\u3b02\u3b06rc;\u4177;\u444bn\u803b\xa5\u40a5r;\uc000\ud835\udd36cy;\u4457pf;\uc000\ud835\udd6acr;\uc000\ud835\udcce\u0100cm\u3b26\u3b29y;\u444el\u803b\xff\u40ff\u0500acdefhiosw\u3b42\u3b48\u3b54\u3b58\u3b64\u3b69\u3b6d\u3b74\u3b7a\u3b80cute;\u417a\u0100ay\u3b4d\u3b52ron;\u417e;\u4437ot;\u417c\u0100et\u3b5d\u3b61tr\xe6\u155fa;\u43b6r;\uc000\ud835\udd37cy;\u4436grarr;\u61ddpf;\uc000\ud835\udd6bcr;\uc000\ud835\udccf\u0100jn\u3b85\u3b87;\u600dj;\u600c"
64094
+ /* #__PURE__ */ "\u1d41<\xd5\u0131\u028a\u049d\u057b\u05d0\u0675\u06de\u07a2\u07d6\u080f\u0a4a\u0a91\u0da1\u0e6d\u0f09\u0f26\u10ca\u1228\u12e1\u1415\u149d\u14c3\u14df\u1525\0\0\0\0\0\0\u156b\u16cd\u198d\u1c12\u1ddd\u1f7e\u2060\u21b0\u228d\u23c0\u23fb\u2442\u2824\u2912\u2d08\u2e48\u2fce\u3016\u32ba\u3639\u37ac\u38fe\u3a28\u3a71\u3ae0\u3b2e\u0800EMabcfglmnoprstu\\bfms\x7f\x84\x8b\x90\x95\x98\xa6\xb3\xb9\xc8\xcflig\u803b\xc6\u40c6P\u803b&\u4026cute\u803b\xc1\u40c1reve;\u4102\u0100iyx}rc\u803b\xc2\u40c2;\u4410r;\uc000\ud835\udd04rave\u803b\xc0\u40c0pha;\u4391acr;\u4100d;\u6a53\u0100gp\x9d\xa1on;\u4104f;\uc000\ud835\udd38plyFunction;\u6061ing\u803b\xc5\u40c5\u0100cs\xbe\xc3r;\uc000\ud835\udc9cign;\u6254ilde\u803b\xc3\u40c3ml\u803b\xc4\u40c4\u0400aceforsu\xe5\xfb\xfe\u0117\u011c\u0122\u0127\u012a\u0100cr\xea\xf2kslash;\u6216\u0176\xf6\xf8;\u6ae7ed;\u6306y;\u4411\u0180crt\u0105\u010b\u0114ause;\u6235noullis;\u612ca;\u4392r;\uc000\ud835\udd05pf;\uc000\ud835\udd39eve;\u42d8c\xf2\u0113mpeq;\u624e\u0700HOacdefhilorsu\u014d\u0151\u0156\u0180\u019e\u01a2\u01b5\u01b7\u01ba\u01dc\u0215\u0273\u0278\u027ecy;\u4427PY\u803b\xa9\u40a9\u0180cpy\u015d\u0162\u017aute;\u4106\u0100;i\u0167\u0168\u62d2talDifferentialD;\u6145leys;\u612d\u0200aeio\u0189\u018e\u0194\u0198ron;\u410cdil\u803b\xc7\u40c7rc;\u4108nint;\u6230ot;\u410a\u0100dn\u01a7\u01adilla;\u40b8terDot;\u40b7\xf2\u017fi;\u43a7rcle\u0200DMPT\u01c7\u01cb\u01d1\u01d6ot;\u6299inus;\u6296lus;\u6295imes;\u6297o\u0100cs\u01e2\u01f8kwiseContourIntegral;\u6232eCurly\u0100DQ\u0203\u020foubleQuote;\u601duote;\u6019\u0200lnpu\u021e\u0228\u0247\u0255on\u0100;e\u0225\u0226\u6237;\u6a74\u0180git\u022f\u0236\u023aruent;\u6261nt;\u622fourIntegral;\u622e\u0100fr\u024c\u024e;\u6102oduct;\u6210nterClockwiseContourIntegral;\u6233oss;\u6a2fcr;\uc000\ud835\udc9ep\u0100;C\u0284\u0285\u62d3ap;\u624d\u0580DJSZacefios\u02a0\u02ac\u02b0\u02b4\u02b8\u02cb\u02d7\u02e1\u02e6\u0333\u048d\u0100;o\u0179\u02a5trahd;\u6911cy;\u4402cy;\u4405cy;\u440f\u0180grs\u02bf\u02c4\u02c7ger;\u6021r;\u61a1hv;\u6ae4\u0100ay\u02d0\u02d5ron;\u410e;\u4414l\u0100;t\u02dd\u02de\u6207a;\u4394r;\uc000\ud835\udd07\u0100af\u02eb\u0327\u0100cm\u02f0\u0322ritical\u0200ADGT\u0300\u0306\u0316\u031ccute;\u40b4o\u0174\u030b\u030d;\u42d9bleAcute;\u42ddrave;\u4060ilde;\u42dcond;\u62c4ferentialD;\u6146\u0470\u033d\0\0\0\u0342\u0354\0\u0405f;\uc000\ud835\udd3b\u0180;DE\u0348\u0349\u034d\u40a8ot;\u60dcqual;\u6250ble\u0300CDLRUV\u0363\u0372\u0382\u03cf\u03e2\u03f8ontourIntegra\xec\u0239o\u0274\u0379\0\0\u037b\xbb\u0349nArrow;\u61d3\u0100eo\u0387\u03a4ft\u0180ART\u0390\u0396\u03a1rrow;\u61d0ightArrow;\u61d4e\xe5\u02cang\u0100LR\u03ab\u03c4eft\u0100AR\u03b3\u03b9rrow;\u67f8ightArrow;\u67faightArrow;\u67f9ight\u0100AT\u03d8\u03derrow;\u61d2ee;\u62a8p\u0241\u03e9\0\0\u03efrrow;\u61d1ownArrow;\u61d5erticalBar;\u6225n\u0300ABLRTa\u0412\u042a\u0430\u045e\u047f\u037crrow\u0180;BU\u041d\u041e\u0422\u6193ar;\u6913pArrow;\u61f5reve;\u4311eft\u02d2\u043a\0\u0446\0\u0450ightVector;\u6950eeVector;\u695eector\u0100;B\u0459\u045a\u61bdar;\u6956ight\u01d4\u0467\0\u0471eeVector;\u695fector\u0100;B\u047a\u047b\u61c1ar;\u6957ee\u0100;A\u0486\u0487\u62a4rrow;\u61a7\u0100ct\u0492\u0497r;\uc000\ud835\udc9frok;\u4110\u0800NTacdfglmopqstux\u04bd\u04c0\u04c4\u04cb\u04de\u04e2\u04e7\u04ee\u04f5\u0521\u052f\u0536\u0552\u055d\u0560\u0565G;\u414aH\u803b\xd0\u40d0cute\u803b\xc9\u40c9\u0180aiy\u04d2\u04d7\u04dcron;\u411arc\u803b\xca\u40ca;\u442dot;\u4116r;\uc000\ud835\udd08rave\u803b\xc8\u40c8ement;\u6208\u0100ap\u04fa\u04fecr;\u4112ty\u0253\u0506\0\0\u0512mallSquare;\u65fberySmallSquare;\u65ab\u0100gp\u0526\u052aon;\u4118f;\uc000\ud835\udd3csilon;\u4395u\u0100ai\u053c\u0549l\u0100;T\u0542\u0543\u6a75ilde;\u6242librium;\u61cc\u0100ci\u0557\u055ar;\u6130m;\u6a73a;\u4397ml\u803b\xcb\u40cb\u0100ip\u056a\u056fsts;\u6203onentialE;\u6147\u0280cfios\u0585\u0588\u058d\u05b2\u05ccy;\u4424r;\uc000\ud835\udd09lled\u0253\u0597\0\0\u05a3mallSquare;\u65fcerySmallSquare;\u65aa\u0370\u05ba\0\u05bf\0\0\u05c4f;\uc000\ud835\udd3dAll;\u6200riertrf;\u6131c\xf2\u05cb\u0600JTabcdfgorst\u05e8\u05ec\u05ef\u05fa\u0600\u0612\u0616\u061b\u061d\u0623\u066c\u0672cy;\u4403\u803b>\u403emma\u0100;d\u05f7\u05f8\u4393;\u43dcreve;\u411e\u0180eiy\u0607\u060c\u0610dil;\u4122rc;\u411c;\u4413ot;\u4120r;\uc000\ud835\udd0a;\u62d9pf;\uc000\ud835\udd3eeater\u0300EFGLST\u0635\u0644\u064e\u0656\u065b\u0666qual\u0100;L\u063e\u063f\u6265ess;\u62dbullEqual;\u6267reater;\u6aa2ess;\u6277lantEqual;\u6a7eilde;\u6273cr;\uc000\ud835\udca2;\u626b\u0400Aacfiosu\u0685\u068b\u0696\u069b\u069e\u06aa\u06be\u06caRDcy;\u442a\u0100ct\u0690\u0694ek;\u42c7;\u405eirc;\u4124r;\u610clbertSpace;\u610b\u01f0\u06af\0\u06b2f;\u610dizontalLine;\u6500\u0100ct\u06c3\u06c5\xf2\u06a9rok;\u4126mp\u0144\u06d0\u06d8ownHum\xf0\u012fqual;\u624f\u0700EJOacdfgmnostu\u06fa\u06fe\u0703\u0707\u070e\u071a\u071e\u0721\u0728\u0744\u0778\u078b\u078f\u0795cy;\u4415lig;\u4132cy;\u4401cute\u803b\xcd\u40cd\u0100iy\u0713\u0718rc\u803b\xce\u40ce;\u4418ot;\u4130r;\u6111rave\u803b\xcc\u40cc\u0180;ap\u0720\u072f\u073f\u0100cg\u0734\u0737r;\u412ainaryI;\u6148lie\xf3\u03dd\u01f4\u0749\0\u0762\u0100;e\u074d\u074e\u622c\u0100gr\u0753\u0758ral;\u622bsection;\u62c2isible\u0100CT\u076c\u0772omma;\u6063imes;\u6062\u0180gpt\u077f\u0783\u0788on;\u412ef;\uc000\ud835\udd40a;\u4399cr;\u6110ilde;\u4128\u01eb\u079a\0\u079ecy;\u4406l\u803b\xcf\u40cf\u0280cfosu\u07ac\u07b7\u07bc\u07c2\u07d0\u0100iy\u07b1\u07b5rc;\u4134;\u4419r;\uc000\ud835\udd0dpf;\uc000\ud835\udd41\u01e3\u07c7\0\u07ccr;\uc000\ud835\udca5rcy;\u4408kcy;\u4404\u0380HJacfos\u07e4\u07e8\u07ec\u07f1\u07fd\u0802\u0808cy;\u4425cy;\u440cppa;\u439a\u0100ey\u07f6\u07fbdil;\u4136;\u441ar;\uc000\ud835\udd0epf;\uc000\ud835\udd42cr;\uc000\ud835\udca6\u0580JTaceflmost\u0825\u0829\u082c\u0850\u0863\u09b3\u09b8\u09c7\u09cd\u0a37\u0a47cy;\u4409\u803b<\u403c\u0280cmnpr\u0837\u083c\u0841\u0844\u084dute;\u4139bda;\u439bg;\u67ealacetrf;\u6112r;\u619e\u0180aey\u0857\u085c\u0861ron;\u413ddil;\u413b;\u441b\u0100fs\u0868\u0970t\u0500ACDFRTUVar\u087e\u08a9\u08b1\u08e0\u08e6\u08fc\u092f\u095b\u0390\u096a\u0100nr\u0883\u088fgleBracket;\u67e8row\u0180;BR\u0899\u089a\u089e\u6190ar;\u61e4ightArrow;\u61c6eiling;\u6308o\u01f5\u08b7\0\u08c3bleBracket;\u67e6n\u01d4\u08c8\0\u08d2eeVector;\u6961ector\u0100;B\u08db\u08dc\u61c3ar;\u6959loor;\u630aight\u0100AV\u08ef\u08f5rrow;\u6194ector;\u694e\u0100er\u0901\u0917e\u0180;AV\u0909\u090a\u0910\u62a3rrow;\u61a4ector;\u695aiangle\u0180;BE\u0924\u0925\u0929\u62b2ar;\u69cfqual;\u62b4p\u0180DTV\u0937\u0942\u094cownVector;\u6951eeVector;\u6960ector\u0100;B\u0956\u0957\u61bfar;\u6958ector\u0100;B\u0965\u0966\u61bcar;\u6952ight\xe1\u039cs\u0300EFGLST\u097e\u098b\u0995\u099d\u09a2\u09adqualGreater;\u62daullEqual;\u6266reater;\u6276ess;\u6aa1lantEqual;\u6a7dilde;\u6272r;\uc000\ud835\udd0f\u0100;e\u09bd\u09be\u62d8ftarrow;\u61daidot;\u413f\u0180npw\u09d4\u0a16\u0a1bg\u0200LRlr\u09de\u09f7\u0a02\u0a10eft\u0100AR\u09e6\u09ecrrow;\u67f5ightArrow;\u67f7ightArrow;\u67f6eft\u0100ar\u03b3\u0a0aight\xe1\u03bfight\xe1\u03caf;\uc000\ud835\udd43er\u0100LR\u0a22\u0a2ceftArrow;\u6199ightArrow;\u6198\u0180cht\u0a3e\u0a40\u0a42\xf2\u084c;\u61b0rok;\u4141;\u626a\u0400acefiosu\u0a5a\u0a5d\u0a60\u0a77\u0a7c\u0a85\u0a8b\u0a8ep;\u6905y;\u441c\u0100dl\u0a65\u0a6fiumSpace;\u605flintrf;\u6133r;\uc000\ud835\udd10nusPlus;\u6213pf;\uc000\ud835\udd44c\xf2\u0a76;\u439c\u0480Jacefostu\u0aa3\u0aa7\u0aad\u0ac0\u0b14\u0b19\u0d91\u0d97\u0d9ecy;\u440acute;\u4143\u0180aey\u0ab4\u0ab9\u0aberon;\u4147dil;\u4145;\u441d\u0180gsw\u0ac7\u0af0\u0b0eative\u0180MTV\u0ad3\u0adf\u0ae8ediumSpace;\u600bhi\u0100cn\u0ae6\u0ad8\xeb\u0ad9eryThi\xee\u0ad9ted\u0100GL\u0af8\u0b06reaterGreate\xf2\u0673essLes\xf3\u0a48Line;\u400ar;\uc000\ud835\udd11\u0200Bnpt\u0b22\u0b28\u0b37\u0b3areak;\u6060BreakingSpace;\u40a0f;\u6115\u0680;CDEGHLNPRSTV\u0b55\u0b56\u0b6a\u0b7c\u0ba1\u0beb\u0c04\u0c5e\u0c84\u0ca6\u0cd8\u0d61\u0d85\u6aec\u0100ou\u0b5b\u0b64ngruent;\u6262pCap;\u626doubleVerticalBar;\u6226\u0180lqx\u0b83\u0b8a\u0b9bement;\u6209ual\u0100;T\u0b92\u0b93\u6260ilde;\uc000\u2242\u0338ists;\u6204reater\u0380;EFGLST\u0bb6\u0bb7\u0bbd\u0bc9\u0bd3\u0bd8\u0be5\u626fqual;\u6271ullEqual;\uc000\u2267\u0338reater;\uc000\u226b\u0338ess;\u6279lantEqual;\uc000\u2a7e\u0338ilde;\u6275ump\u0144\u0bf2\u0bfdownHump;\uc000\u224e\u0338qual;\uc000\u224f\u0338e\u0100fs\u0c0a\u0c27tTriangle\u0180;BE\u0c1a\u0c1b\u0c21\u62eaar;\uc000\u29cf\u0338qual;\u62ecs\u0300;EGLST\u0c35\u0c36\u0c3c\u0c44\u0c4b\u0c58\u626equal;\u6270reater;\u6278ess;\uc000\u226a\u0338lantEqual;\uc000\u2a7d\u0338ilde;\u6274ested\u0100GL\u0c68\u0c79reaterGreater;\uc000\u2aa2\u0338essLess;\uc000\u2aa1\u0338recedes\u0180;ES\u0c92\u0c93\u0c9b\u6280qual;\uc000\u2aaf\u0338lantEqual;\u62e0\u0100ei\u0cab\u0cb9verseElement;\u620cghtTriangle\u0180;BE\u0ccb\u0ccc\u0cd2\u62ebar;\uc000\u29d0\u0338qual;\u62ed\u0100qu\u0cdd\u0d0cuareSu\u0100bp\u0ce8\u0cf9set\u0100;E\u0cf0\u0cf3\uc000\u228f\u0338qual;\u62e2erset\u0100;E\u0d03\u0d06\uc000\u2290\u0338qual;\u62e3\u0180bcp\u0d13\u0d24\u0d4eset\u0100;E\u0d1b\u0d1e\uc000\u2282\u20d2qual;\u6288ceeds\u0200;EST\u0d32\u0d33\u0d3b\u0d46\u6281qual;\uc000\u2ab0\u0338lantEqual;\u62e1ilde;\uc000\u227f\u0338erset\u0100;E\u0d58\u0d5b\uc000\u2283\u20d2qual;\u6289ilde\u0200;EFT\u0d6e\u0d6f\u0d75\u0d7f\u6241qual;\u6244ullEqual;\u6247ilde;\u6249erticalBar;\u6224cr;\uc000\ud835\udca9ilde\u803b\xd1\u40d1;\u439d\u0700Eacdfgmoprstuv\u0dbd\u0dc2\u0dc9\u0dd5\u0ddb\u0de0\u0de7\u0dfc\u0e02\u0e20\u0e22\u0e32\u0e3f\u0e44lig;\u4152cute\u803b\xd3\u40d3\u0100iy\u0dce\u0dd3rc\u803b\xd4\u40d4;\u441eblac;\u4150r;\uc000\ud835\udd12rave\u803b\xd2\u40d2\u0180aei\u0dee\u0df2\u0df6cr;\u414cga;\u43a9cron;\u439fpf;\uc000\ud835\udd46enCurly\u0100DQ\u0e0e\u0e1aoubleQuote;\u601cuote;\u6018;\u6a54\u0100cl\u0e27\u0e2cr;\uc000\ud835\udcaaash\u803b\xd8\u40d8i\u016c\u0e37\u0e3cde\u803b\xd5\u40d5es;\u6a37ml\u803b\xd6\u40d6er\u0100BP\u0e4b\u0e60\u0100ar\u0e50\u0e53r;\u603eac\u0100ek\u0e5a\u0e5c;\u63deet;\u63b4arenthesis;\u63dc\u0480acfhilors\u0e7f\u0e87\u0e8a\u0e8f\u0e92\u0e94\u0e9d\u0eb0\u0efcrtialD;\u6202y;\u441fr;\uc000\ud835\udd13i;\u43a6;\u43a0usMinus;\u40b1\u0100ip\u0ea2\u0eadncareplan\xe5\u069df;\u6119\u0200;eio\u0eb9\u0eba\u0ee0\u0ee4\u6abbcedes\u0200;EST\u0ec8\u0ec9\u0ecf\u0eda\u627aqual;\u6aaflantEqual;\u627cilde;\u627eme;\u6033\u0100dp\u0ee9\u0eeeuct;\u620fortion\u0100;a\u0225\u0ef9l;\u621d\u0100ci\u0f01\u0f06r;\uc000\ud835\udcab;\u43a8\u0200Ufos\u0f11\u0f16\u0f1b\u0f1fOT\u803b\"\u4022r;\uc000\ud835\udd14pf;\u611acr;\uc000\ud835\udcac\u0600BEacefhiorsu\u0f3e\u0f43\u0f47\u0f60\u0f73\u0fa7\u0faa\u0fad\u1096\u10a9\u10b4\u10bearr;\u6910G\u803b\xae\u40ae\u0180cnr\u0f4e\u0f53\u0f56ute;\u4154g;\u67ebr\u0100;t\u0f5c\u0f5d\u61a0l;\u6916\u0180aey\u0f67\u0f6c\u0f71ron;\u4158dil;\u4156;\u4420\u0100;v\u0f78\u0f79\u611cerse\u0100EU\u0f82\u0f99\u0100lq\u0f87\u0f8eement;\u620builibrium;\u61cbpEquilibrium;\u696fr\xbb\u0f79o;\u43a1ght\u0400ACDFTUVa\u0fc1\u0feb\u0ff3\u1022\u1028\u105b\u1087\u03d8\u0100nr\u0fc6\u0fd2gleBracket;\u67e9row\u0180;BL\u0fdc\u0fdd\u0fe1\u6192ar;\u61e5eftArrow;\u61c4eiling;\u6309o\u01f5\u0ff9\0\u1005bleBracket;\u67e7n\u01d4\u100a\0\u1014eeVector;\u695dector\u0100;B\u101d\u101e\u61c2ar;\u6955loor;\u630b\u0100er\u102d\u1043e\u0180;AV\u1035\u1036\u103c\u62a2rrow;\u61a6ector;\u695biangle\u0180;BE\u1050\u1051\u1055\u62b3ar;\u69d0qual;\u62b5p\u0180DTV\u1063\u106e\u1078ownVector;\u694feeVector;\u695cector\u0100;B\u1082\u1083\u61bear;\u6954ector\u0100;B\u1091\u1092\u61c0ar;\u6953\u0100pu\u109b\u109ef;\u611dndImplies;\u6970ightarrow;\u61db\u0100ch\u10b9\u10bcr;\u611b;\u61b1leDelayed;\u69f4\u0680HOacfhimoqstu\u10e4\u10f1\u10f7\u10fd\u1119\u111e\u1151\u1156\u1161\u1167\u11b5\u11bb\u11bf\u0100Cc\u10e9\u10eeHcy;\u4429y;\u4428FTcy;\u442ccute;\u415a\u0280;aeiy\u1108\u1109\u110e\u1113\u1117\u6abcron;\u4160dil;\u415erc;\u415c;\u4421r;\uc000\ud835\udd16ort\u0200DLRU\u112a\u1134\u113e\u1149ownArrow\xbb\u041eeftArrow\xbb\u089aightArrow\xbb\u0fddpArrow;\u6191gma;\u43a3allCircle;\u6218pf;\uc000\ud835\udd4a\u0272\u116d\0\0\u1170t;\u621aare\u0200;ISU\u117b\u117c\u1189\u11af\u65a1ntersection;\u6293u\u0100bp\u118f\u119eset\u0100;E\u1197\u1198\u628fqual;\u6291erset\u0100;E\u11a8\u11a9\u6290qual;\u6292nion;\u6294cr;\uc000\ud835\udcaear;\u62c6\u0200bcmp\u11c8\u11db\u1209\u120b\u0100;s\u11cd\u11ce\u62d0et\u0100;E\u11cd\u11d5qual;\u6286\u0100ch\u11e0\u1205eeds\u0200;EST\u11ed\u11ee\u11f4\u11ff\u627bqual;\u6ab0lantEqual;\u627dilde;\u627fTh\xe1\u0f8c;\u6211\u0180;es\u1212\u1213\u1223\u62d1rset\u0100;E\u121c\u121d\u6283qual;\u6287et\xbb\u1213\u0580HRSacfhiors\u123e\u1244\u1249\u1255\u125e\u1271\u1276\u129f\u12c2\u12c8\u12d1ORN\u803b\xde\u40deADE;\u6122\u0100Hc\u124e\u1252cy;\u440by;\u4426\u0100bu\u125a\u125c;\u4009;\u43a4\u0180aey\u1265\u126a\u126fron;\u4164dil;\u4162;\u4422r;\uc000\ud835\udd17\u0100ei\u127b\u1289\u01f2\u1280\0\u1287efore;\u6234a;\u4398\u0100cn\u128e\u1298kSpace;\uc000\u205f\u200aSpace;\u6009lde\u0200;EFT\u12ab\u12ac\u12b2\u12bc\u623cqual;\u6243ullEqual;\u6245ilde;\u6248pf;\uc000\ud835\udd4bipleDot;\u60db\u0100ct\u12d6\u12dbr;\uc000\ud835\udcafrok;\u4166\u0ae1\u12f7\u130e\u131a\u1326\0\u132c\u1331\0\0\0\0\0\u1338\u133d\u1377\u1385\0\u13ff\u1404\u140a\u1410\u0100cr\u12fb\u1301ute\u803b\xda\u40dar\u0100;o\u1307\u1308\u619fcir;\u6949r\u01e3\u1313\0\u1316y;\u440eve;\u416c\u0100iy\u131e\u1323rc\u803b\xdb\u40db;\u4423blac;\u4170r;\uc000\ud835\udd18rave\u803b\xd9\u40d9acr;\u416a\u0100di\u1341\u1369er\u0100BP\u1348\u135d\u0100ar\u134d\u1350r;\u405fac\u0100ek\u1357\u1359;\u63dfet;\u63b5arenthesis;\u63ddon\u0100;P\u1370\u1371\u62c3lus;\u628e\u0100gp\u137b\u137fon;\u4172f;\uc000\ud835\udd4c\u0400ADETadps\u1395\u13ae\u13b8\u13c4\u03e8\u13d2\u13d7\u13f3rrow\u0180;BD\u1150\u13a0\u13a4ar;\u6912ownArrow;\u61c5ownArrow;\u6195quilibrium;\u696eee\u0100;A\u13cb\u13cc\u62a5rrow;\u61a5own\xe1\u03f3er\u0100LR\u13de\u13e8eftArrow;\u6196ightArrow;\u6197i\u0100;l\u13f9\u13fa\u43d2on;\u43a5ing;\u416ecr;\uc000\ud835\udcb0ilde;\u4168ml\u803b\xdc\u40dc\u0480Dbcdefosv\u1427\u142c\u1430\u1433\u143e\u1485\u148a\u1490\u1496ash;\u62abar;\u6aeby;\u4412ash\u0100;l\u143b\u143c\u62a9;\u6ae6\u0100er\u1443\u1445;\u62c1\u0180bty\u144c\u1450\u147aar;\u6016\u0100;i\u144f\u1455cal\u0200BLST\u1461\u1465\u146a\u1474ar;\u6223ine;\u407ceparator;\u6758ilde;\u6240ThinSpace;\u600ar;\uc000\ud835\udd19pf;\uc000\ud835\udd4dcr;\uc000\ud835\udcb1dash;\u62aa\u0280cefos\u14a7\u14ac\u14b1\u14b6\u14bcirc;\u4174dge;\u62c0r;\uc000\ud835\udd1apf;\uc000\ud835\udd4ecr;\uc000\ud835\udcb2\u0200fios\u14cb\u14d0\u14d2\u14d8r;\uc000\ud835\udd1b;\u439epf;\uc000\ud835\udd4fcr;\uc000\ud835\udcb3\u0480AIUacfosu\u14f1\u14f5\u14f9\u14fd\u1504\u150f\u1514\u151a\u1520cy;\u442fcy;\u4407cy;\u442ecute\u803b\xdd\u40dd\u0100iy\u1509\u150drc;\u4176;\u442br;\uc000\ud835\udd1cpf;\uc000\ud835\udd50cr;\uc000\ud835\udcb4ml;\u4178\u0400Hacdefos\u1535\u1539\u153f\u154b\u154f\u155d\u1560\u1564cy;\u4416cute;\u4179\u0100ay\u1544\u1549ron;\u417d;\u4417ot;\u417b\u01f2\u1554\0\u155boWidt\xe8\u0ad9a;\u4396r;\u6128pf;\u6124cr;\uc000\ud835\udcb5\u0be1\u1583\u158a\u1590\0\u15b0\u15b6\u15bf\0\0\0\0\u15c6\u15db\u15eb\u165f\u166d\0\u1695\u169b\u16b2\u16b9\0\u16becute\u803b\xe1\u40e1reve;\u4103\u0300;Ediuy\u159c\u159d\u15a1\u15a3\u15a8\u15ad\u623e;\uc000\u223e\u0333;\u623frc\u803b\xe2\u40e2te\u80bb\xb4\u0306;\u4430lig\u803b\xe6\u40e6\u0100;r\xb2\u15ba;\uc000\ud835\udd1erave\u803b\xe0\u40e0\u0100ep\u15ca\u15d6\u0100fp\u15cf\u15d4sym;\u6135\xe8\u15d3ha;\u43b1\u0100ap\u15dfc\u0100cl\u15e4\u15e7r;\u4101g;\u6a3f\u0264\u15f0\0\0\u160a\u0280;adsv\u15fa\u15fb\u15ff\u1601\u1607\u6227nd;\u6a55;\u6a5clope;\u6a58;\u6a5a\u0380;elmrsz\u1618\u1619\u161b\u161e\u163f\u164f\u1659\u6220;\u69a4e\xbb\u1619sd\u0100;a\u1625\u1626\u6221\u0461\u1630\u1632\u1634\u1636\u1638\u163a\u163c\u163e;\u69a8;\u69a9;\u69aa;\u69ab;\u69ac;\u69ad;\u69ae;\u69aft\u0100;v\u1645\u1646\u621fb\u0100;d\u164c\u164d\u62be;\u699d\u0100pt\u1654\u1657h;\u6222\xbb\xb9arr;\u637c\u0100gp\u1663\u1667on;\u4105f;\uc000\ud835\udd52\u0380;Eaeiop\u12c1\u167b\u167d\u1682\u1684\u1687\u168a;\u6a70cir;\u6a6f;\u624ad;\u624bs;\u4027rox\u0100;e\u12c1\u1692\xf1\u1683ing\u803b\xe5\u40e5\u0180cty\u16a1\u16a6\u16a8r;\uc000\ud835\udcb6;\u402amp\u0100;e\u12c1\u16af\xf1\u0288ilde\u803b\xe3\u40e3ml\u803b\xe4\u40e4\u0100ci\u16c2\u16c8onin\xf4\u0272nt;\u6a11\u0800Nabcdefiklnoprsu\u16ed\u16f1\u1730\u173c\u1743\u1748\u1778\u177d\u17e0\u17e6\u1839\u1850\u170d\u193d\u1948\u1970ot;\u6aed\u0100cr\u16f6\u171ek\u0200ceps\u1700\u1705\u170d\u1713ong;\u624cpsilon;\u43f6rime;\u6035im\u0100;e\u171a\u171b\u623dq;\u62cd\u0176\u1722\u1726ee;\u62bded\u0100;g\u172c\u172d\u6305e\xbb\u172drk\u0100;t\u135c\u1737brk;\u63b6\u0100oy\u1701\u1741;\u4431quo;\u601e\u0280cmprt\u1753\u175b\u1761\u1764\u1768aus\u0100;e\u010a\u0109ptyv;\u69b0s\xe9\u170cno\xf5\u0113\u0180ahw\u176f\u1771\u1773;\u43b2;\u6136een;\u626cr;\uc000\ud835\udd1fg\u0380costuvw\u178d\u179d\u17b3\u17c1\u17d5\u17db\u17de\u0180aiu\u1794\u1796\u179a\xf0\u0760rc;\u65efp\xbb\u1371\u0180dpt\u17a4\u17a8\u17adot;\u6a00lus;\u6a01imes;\u6a02\u0271\u17b9\0\0\u17becup;\u6a06ar;\u6605riangle\u0100du\u17cd\u17d2own;\u65bdp;\u65b3plus;\u6a04e\xe5\u1444\xe5\u14adarow;\u690d\u0180ako\u17ed\u1826\u1835\u0100cn\u17f2\u1823k\u0180lst\u17fa\u05ab\u1802ozenge;\u69ebriangle\u0200;dlr\u1812\u1813\u1818\u181d\u65b4own;\u65beeft;\u65c2ight;\u65b8k;\u6423\u01b1\u182b\0\u1833\u01b2\u182f\0\u1831;\u6592;\u65914;\u6593ck;\u6588\u0100eo\u183e\u184d\u0100;q\u1843\u1846\uc000=\u20e5uiv;\uc000\u2261\u20e5t;\u6310\u0200ptwx\u1859\u185e\u1867\u186cf;\uc000\ud835\udd53\u0100;t\u13cb\u1863om\xbb\u13cctie;\u62c8\u0600DHUVbdhmptuv\u1885\u1896\u18aa\u18bb\u18d7\u18db\u18ec\u18ff\u1905\u190a\u1910\u1921\u0200LRlr\u188e\u1890\u1892\u1894;\u6557;\u6554;\u6556;\u6553\u0280;DUdu\u18a1\u18a2\u18a4\u18a6\u18a8\u6550;\u6566;\u6569;\u6564;\u6567\u0200LRlr\u18b3\u18b5\u18b7\u18b9;\u655d;\u655a;\u655c;\u6559\u0380;HLRhlr\u18ca\u18cb\u18cd\u18cf\u18d1\u18d3\u18d5\u6551;\u656c;\u6563;\u6560;\u656b;\u6562;\u655fox;\u69c9\u0200LRlr\u18e4\u18e6\u18e8\u18ea;\u6555;\u6552;\u6510;\u650c\u0280;DUdu\u06bd\u18f7\u18f9\u18fb\u18fd;\u6565;\u6568;\u652c;\u6534inus;\u629flus;\u629eimes;\u62a0\u0200LRlr\u1919\u191b\u191d\u191f;\u655b;\u6558;\u6518;\u6514\u0380;HLRhlr\u1930\u1931\u1933\u1935\u1937\u1939\u193b\u6502;\u656a;\u6561;\u655e;\u653c;\u6524;\u651c\u0100ev\u0123\u1942bar\u803b\xa6\u40a6\u0200ceio\u1951\u1956\u195a\u1960r;\uc000\ud835\udcb7mi;\u604fm\u0100;e\u171a\u171cl\u0180;bh\u1968\u1969\u196b\u405c;\u69c5sub;\u67c8\u016c\u1974\u197el\u0100;e\u1979\u197a\u6022t\xbb\u197ap\u0180;Ee\u012f\u1985\u1987;\u6aae\u0100;q\u06dc\u06db\u0ce1\u19a7\0\u19e8\u1a11\u1a15\u1a32\0\u1a37\u1a50\0\0\u1ab4\0\0\u1ac1\0\0\u1b21\u1b2e\u1b4d\u1b52\0\u1bfd\0\u1c0c\u0180cpr\u19ad\u19b2\u19ddute;\u4107\u0300;abcds\u19bf\u19c0\u19c4\u19ca\u19d5\u19d9\u6229nd;\u6a44rcup;\u6a49\u0100au\u19cf\u19d2p;\u6a4bp;\u6a47ot;\u6a40;\uc000\u2229\ufe00\u0100eo\u19e2\u19e5t;\u6041\xee\u0693\u0200aeiu\u19f0\u19fb\u1a01\u1a05\u01f0\u19f5\0\u19f8s;\u6a4don;\u410ddil\u803b\xe7\u40e7rc;\u4109ps\u0100;s\u1a0c\u1a0d\u6a4cm;\u6a50ot;\u410b\u0180dmn\u1a1b\u1a20\u1a26il\u80bb\xb8\u01adptyv;\u69b2t\u8100\xa2;e\u1a2d\u1a2e\u40a2r\xe4\u01b2r;\uc000\ud835\udd20\u0180cei\u1a3d\u1a40\u1a4dy;\u4447ck\u0100;m\u1a47\u1a48\u6713ark\xbb\u1a48;\u43c7r\u0380;Ecefms\u1a5f\u1a60\u1a62\u1a6b\u1aa4\u1aaa\u1aae\u65cb;\u69c3\u0180;el\u1a69\u1a6a\u1a6d\u42c6q;\u6257e\u0261\u1a74\0\0\u1a88rrow\u0100lr\u1a7c\u1a81eft;\u61baight;\u61bb\u0280RSacd\u1a92\u1a94\u1a96\u1a9a\u1a9f\xbb\u0f47;\u64c8st;\u629birc;\u629aash;\u629dnint;\u6a10id;\u6aefcir;\u69c2ubs\u0100;u\u1abb\u1abc\u6663it\xbb\u1abc\u02ec\u1ac7\u1ad4\u1afa\0\u1b0aon\u0100;e\u1acd\u1ace\u403a\u0100;q\xc7\xc6\u026d\u1ad9\0\0\u1ae2a\u0100;t\u1ade\u1adf\u402c;\u4040\u0180;fl\u1ae8\u1ae9\u1aeb\u6201\xee\u1160e\u0100mx\u1af1\u1af6ent\xbb\u1ae9e\xf3\u024d\u01e7\u1afe\0\u1b07\u0100;d\u12bb\u1b02ot;\u6a6dn\xf4\u0246\u0180fry\u1b10\u1b14\u1b17;\uc000\ud835\udd54o\xe4\u0254\u8100\xa9;s\u0155\u1b1dr;\u6117\u0100ao\u1b25\u1b29rr;\u61b5ss;\u6717\u0100cu\u1b32\u1b37r;\uc000\ud835\udcb8\u0100bp\u1b3c\u1b44\u0100;e\u1b41\u1b42\u6acf;\u6ad1\u0100;e\u1b49\u1b4a\u6ad0;\u6ad2dot;\u62ef\u0380delprvw\u1b60\u1b6c\u1b77\u1b82\u1bac\u1bd4\u1bf9arr\u0100lr\u1b68\u1b6a;\u6938;\u6935\u0270\u1b72\0\0\u1b75r;\u62dec;\u62dfarr\u0100;p\u1b7f\u1b80\u61b6;\u693d\u0300;bcdos\u1b8f\u1b90\u1b96\u1ba1\u1ba5\u1ba8\u622arcap;\u6a48\u0100au\u1b9b\u1b9ep;\u6a46p;\u6a4aot;\u628dr;\u6a45;\uc000\u222a\ufe00\u0200alrv\u1bb5\u1bbf\u1bde\u1be3rr\u0100;m\u1bbc\u1bbd\u61b7;\u693cy\u0180evw\u1bc7\u1bd4\u1bd8q\u0270\u1bce\0\0\u1bd2re\xe3\u1b73u\xe3\u1b75ee;\u62ceedge;\u62cfen\u803b\xa4\u40a4earrow\u0100lr\u1bee\u1bf3eft\xbb\u1b80ight\xbb\u1bbde\xe4\u1bdd\u0100ci\u1c01\u1c07onin\xf4\u01f7nt;\u6231lcty;\u632d\u0980AHabcdefhijlorstuwz\u1c38\u1c3b\u1c3f\u1c5d\u1c69\u1c75\u1c8a\u1c9e\u1cac\u1cb7\u1cfb\u1cff\u1d0d\u1d7b\u1d91\u1dab\u1dbb\u1dc6\u1dcdr\xf2\u0381ar;\u6965\u0200glrs\u1c48\u1c4d\u1c52\u1c54ger;\u6020eth;\u6138\xf2\u1133h\u0100;v\u1c5a\u1c5b\u6010\xbb\u090a\u016b\u1c61\u1c67arow;\u690fa\xe3\u0315\u0100ay\u1c6e\u1c73ron;\u410f;\u4434\u0180;ao\u0332\u1c7c\u1c84\u0100gr\u02bf\u1c81r;\u61catseq;\u6a77\u0180glm\u1c91\u1c94\u1c98\u803b\xb0\u40b0ta;\u43b4ptyv;\u69b1\u0100ir\u1ca3\u1ca8sht;\u697f;\uc000\ud835\udd21ar\u0100lr\u1cb3\u1cb5\xbb\u08dc\xbb\u101e\u0280aegsv\u1cc2\u0378\u1cd6\u1cdc\u1ce0m\u0180;os\u0326\u1cca\u1cd4nd\u0100;s\u0326\u1cd1uit;\u6666amma;\u43ddin;\u62f2\u0180;io\u1ce7\u1ce8\u1cf8\u40f7de\u8100\xf7;o\u1ce7\u1cf0ntimes;\u62c7n\xf8\u1cf7cy;\u4452c\u026f\u1d06\0\0\u1d0arn;\u631eop;\u630d\u0280lptuw\u1d18\u1d1d\u1d22\u1d49\u1d55lar;\u4024f;\uc000\ud835\udd55\u0280;emps\u030b\u1d2d\u1d37\u1d3d\u1d42q\u0100;d\u0352\u1d33ot;\u6251inus;\u6238lus;\u6214quare;\u62a1blebarwedg\xe5\xfan\u0180adh\u112e\u1d5d\u1d67ownarrow\xf3\u1c83arpoon\u0100lr\u1d72\u1d76ef\xf4\u1cb4igh\xf4\u1cb6\u0162\u1d7f\u1d85karo\xf7\u0f42\u026f\u1d8a\0\0\u1d8ern;\u631fop;\u630c\u0180cot\u1d98\u1da3\u1da6\u0100ry\u1d9d\u1da1;\uc000\ud835\udcb9;\u4455l;\u69f6rok;\u4111\u0100dr\u1db0\u1db4ot;\u62f1i\u0100;f\u1dba\u1816\u65bf\u0100ah\u1dc0\u1dc3r\xf2\u0429a\xf2\u0fa6angle;\u69a6\u0100ci\u1dd2\u1dd5y;\u445fgrarr;\u67ff\u0900Dacdefglmnopqrstux\u1e01\u1e09\u1e19\u1e38\u0578\u1e3c\u1e49\u1e61\u1e7e\u1ea5\u1eaf\u1ebd\u1ee1\u1f2a\u1f37\u1f44\u1f4e\u1f5a\u0100Do\u1e06\u1d34o\xf4\u1c89\u0100cs\u1e0e\u1e14ute\u803b\xe9\u40e9ter;\u6a6e\u0200aioy\u1e22\u1e27\u1e31\u1e36ron;\u411br\u0100;c\u1e2d\u1e2e\u6256\u803b\xea\u40ealon;\u6255;\u444dot;\u4117\u0100Dr\u1e41\u1e45ot;\u6252;\uc000\ud835\udd22\u0180;rs\u1e50\u1e51\u1e57\u6a9aave\u803b\xe8\u40e8\u0100;d\u1e5c\u1e5d\u6a96ot;\u6a98\u0200;ils\u1e6a\u1e6b\u1e72\u1e74\u6a99nters;\u63e7;\u6113\u0100;d\u1e79\u1e7a\u6a95ot;\u6a97\u0180aps\u1e85\u1e89\u1e97cr;\u4113ty\u0180;sv\u1e92\u1e93\u1e95\u6205et\xbb\u1e93p\u01001;\u1e9d\u1ea4\u0133\u1ea1\u1ea3;\u6004;\u6005\u6003\u0100gs\u1eaa\u1eac;\u414bp;\u6002\u0100gp\u1eb4\u1eb8on;\u4119f;\uc000\ud835\udd56\u0180als\u1ec4\u1ece\u1ed2r\u0100;s\u1eca\u1ecb\u62d5l;\u69e3us;\u6a71i\u0180;lv\u1eda\u1edb\u1edf\u43b5on\xbb\u1edb;\u43f5\u0200csuv\u1eea\u1ef3\u1f0b\u1f23\u0100io\u1eef\u1e31rc\xbb\u1e2e\u0269\u1ef9\0\0\u1efb\xed\u0548ant\u0100gl\u1f02\u1f06tr\xbb\u1e5dess\xbb\u1e7a\u0180aei\u1f12\u1f16\u1f1als;\u403dst;\u625fv\u0100;D\u0235\u1f20D;\u6a78parsl;\u69e5\u0100Da\u1f2f\u1f33ot;\u6253rr;\u6971\u0180cdi\u1f3e\u1f41\u1ef8r;\u612fo\xf4\u0352\u0100ah\u1f49\u1f4b;\u43b7\u803b\xf0\u40f0\u0100mr\u1f53\u1f57l\u803b\xeb\u40ebo;\u60ac\u0180cip\u1f61\u1f64\u1f67l;\u4021s\xf4\u056e\u0100eo\u1f6c\u1f74ctatio\xee\u0559nential\xe5\u0579\u09e1\u1f92\0\u1f9e\0\u1fa1\u1fa7\0\0\u1fc6\u1fcc\0\u1fd3\0\u1fe6\u1fea\u2000\0\u2008\u205allingdotse\xf1\u1e44y;\u4444male;\u6640\u0180ilr\u1fad\u1fb3\u1fc1lig;\u8000\ufb03\u0269\u1fb9\0\0\u1fbdg;\u8000\ufb00ig;\u8000\ufb04;\uc000\ud835\udd23lig;\u8000\ufb01lig;\uc000fj\u0180alt\u1fd9\u1fdc\u1fe1t;\u666dig;\u8000\ufb02ns;\u65b1of;\u4192\u01f0\u1fee\0\u1ff3f;\uc000\ud835\udd57\u0100ak\u05bf\u1ff7\u0100;v\u1ffc\u1ffd\u62d4;\u6ad9artint;\u6a0d\u0100ao\u200c\u2055\u0100cs\u2011\u2052\u03b1\u201a\u2030\u2038\u2045\u2048\0\u2050\u03b2\u2022\u2025\u2027\u202a\u202c\0\u202e\u803b\xbd\u40bd;\u6153\u803b\xbc\u40bc;\u6155;\u6159;\u615b\u01b3\u2034\0\u2036;\u6154;\u6156\u02b4\u203e\u2041\0\0\u2043\u803b\xbe\u40be;\u6157;\u615c5;\u6158\u01b6\u204c\0\u204e;\u615a;\u615d8;\u615el;\u6044wn;\u6322cr;\uc000\ud835\udcbb\u0880Eabcdefgijlnorstv\u2082\u2089\u209f\u20a5\u20b0\u20b4\u20f0\u20f5\u20fa\u20ff\u2103\u2112\u2138\u0317\u213e\u2152\u219e\u0100;l\u064d\u2087;\u6a8c\u0180cmp\u2090\u2095\u209dute;\u41f5ma\u0100;d\u209c\u1cda\u43b3;\u6a86reve;\u411f\u0100iy\u20aa\u20aerc;\u411d;\u4433ot;\u4121\u0200;lqs\u063e\u0642\u20bd\u20c9\u0180;qs\u063e\u064c\u20c4lan\xf4\u0665\u0200;cdl\u0665\u20d2\u20d5\u20e5c;\u6aa9ot\u0100;o\u20dc\u20dd\u6a80\u0100;l\u20e2\u20e3\u6a82;\u6a84\u0100;e\u20ea\u20ed\uc000\u22db\ufe00s;\u6a94r;\uc000\ud835\udd24\u0100;g\u0673\u061bmel;\u6137cy;\u4453\u0200;Eaj\u065a\u210c\u210e\u2110;\u6a92;\u6aa5;\u6aa4\u0200Eaes\u211b\u211d\u2129\u2134;\u6269p\u0100;p\u2123\u2124\u6a8arox\xbb\u2124\u0100;q\u212e\u212f\u6a88\u0100;q\u212e\u211bim;\u62e7pf;\uc000\ud835\udd58\u0100ci\u2143\u2146r;\u610am\u0180;el\u066b\u214e\u2150;\u6a8e;\u6a90\u8300>;cdlqr\u05ee\u2160\u216a\u216e\u2173\u2179\u0100ci\u2165\u2167;\u6aa7r;\u6a7aot;\u62d7Par;\u6995uest;\u6a7c\u0280adels\u2184\u216a\u2190\u0656\u219b\u01f0\u2189\0\u218epro\xf8\u209er;\u6978q\u0100lq\u063f\u2196les\xf3\u2088i\xed\u066b\u0100en\u21a3\u21adrtneqq;\uc000\u2269\ufe00\xc5\u21aa\u0500Aabcefkosy\u21c4\u21c7\u21f1\u21f5\u21fa\u2218\u221d\u222f\u2268\u227dr\xf2\u03a0\u0200ilmr\u21d0\u21d4\u21d7\u21dbrs\xf0\u1484f\xbb\u2024il\xf4\u06a9\u0100dr\u21e0\u21e4cy;\u444a\u0180;cw\u08f4\u21eb\u21efir;\u6948;\u61adar;\u610firc;\u4125\u0180alr\u2201\u220e\u2213rts\u0100;u\u2209\u220a\u6665it\xbb\u220alip;\u6026con;\u62b9r;\uc000\ud835\udd25s\u0100ew\u2223\u2229arow;\u6925arow;\u6926\u0280amopr\u223a\u223e\u2243\u225e\u2263rr;\u61fftht;\u623bk\u0100lr\u2249\u2253eftarrow;\u61a9ightarrow;\u61aaf;\uc000\ud835\udd59bar;\u6015\u0180clt\u226f\u2274\u2278r;\uc000\ud835\udcbdas\xe8\u21f4rok;\u4127\u0100bp\u2282\u2287ull;\u6043hen\xbb\u1c5b\u0ae1\u22a3\0\u22aa\0\u22b8\u22c5\u22ce\0\u22d5\u22f3\0\0\u22f8\u2322\u2367\u2362\u237f\0\u2386\u23aa\u23b4cute\u803b\xed\u40ed\u0180;iy\u0771\u22b0\u22b5rc\u803b\xee\u40ee;\u4438\u0100cx\u22bc\u22bfy;\u4435cl\u803b\xa1\u40a1\u0100fr\u039f\u22c9;\uc000\ud835\udd26rave\u803b\xec\u40ec\u0200;ino\u073e\u22dd\u22e9\u22ee\u0100in\u22e2\u22e6nt;\u6a0ct;\u622dfin;\u69dcta;\u6129lig;\u4133\u0180aop\u22fe\u231a\u231d\u0180cgt\u2305\u2308\u2317r;\u412b\u0180elp\u071f\u230f\u2313in\xe5\u078ear\xf4\u0720h;\u4131f;\u62b7ed;\u41b5\u0280;cfot\u04f4\u232c\u2331\u233d\u2341are;\u6105in\u0100;t\u2338\u2339\u621eie;\u69dddo\xf4\u2319\u0280;celp\u0757\u234c\u2350\u235b\u2361al;\u62ba\u0100gr\u2355\u2359er\xf3\u1563\xe3\u234darhk;\u6a17rod;\u6a3c\u0200cgpt\u236f\u2372\u2376\u237by;\u4451on;\u412ff;\uc000\ud835\udd5aa;\u43b9uest\u803b\xbf\u40bf\u0100ci\u238a\u238fr;\uc000\ud835\udcben\u0280;Edsv\u04f4\u239b\u239d\u23a1\u04f3;\u62f9ot;\u62f5\u0100;v\u23a6\u23a7\u62f4;\u62f3\u0100;i\u0777\u23aelde;\u4129\u01eb\u23b8\0\u23bccy;\u4456l\u803b\xef\u40ef\u0300cfmosu\u23cc\u23d7\u23dc\u23e1\u23e7\u23f5\u0100iy\u23d1\u23d5rc;\u4135;\u4439r;\uc000\ud835\udd27ath;\u4237pf;\uc000\ud835\udd5b\u01e3\u23ec\0\u23f1r;\uc000\ud835\udcbfrcy;\u4458kcy;\u4454\u0400acfghjos\u240b\u2416\u2422\u2427\u242d\u2431\u2435\u243bppa\u0100;v\u2413\u2414\u43ba;\u43f0\u0100ey\u241b\u2420dil;\u4137;\u443ar;\uc000\ud835\udd28reen;\u4138cy;\u4445cy;\u445cpf;\uc000\ud835\udd5ccr;\uc000\ud835\udcc0\u0b80ABEHabcdefghjlmnoprstuv\u2470\u2481\u2486\u248d\u2491\u250e\u253d\u255a\u2580\u264e\u265e\u2665\u2679\u267d\u269a\u26b2\u26d8\u275d\u2768\u278b\u27c0\u2801\u2812\u0180art\u2477\u247a\u247cr\xf2\u09c6\xf2\u0395ail;\u691barr;\u690e\u0100;g\u0994\u248b;\u6a8bar;\u6962\u0963\u24a5\0\u24aa\0\u24b1\0\0\0\0\0\u24b5\u24ba\0\u24c6\u24c8\u24cd\0\u24f9ute;\u413amptyv;\u69b4ra\xee\u084cbda;\u43bbg\u0180;dl\u088e\u24c1\u24c3;\u6991\xe5\u088e;\u6a85uo\u803b\xab\u40abr\u0400;bfhlpst\u0899\u24de\u24e6\u24e9\u24eb\u24ee\u24f1\u24f5\u0100;f\u089d\u24e3s;\u691fs;\u691d\xeb\u2252p;\u61abl;\u6939im;\u6973l;\u61a2\u0180;ae\u24ff\u2500\u2504\u6aabil;\u6919\u0100;s\u2509\u250a\u6aad;\uc000\u2aad\ufe00\u0180abr\u2515\u2519\u251drr;\u690crk;\u6772\u0100ak\u2522\u252cc\u0100ek\u2528\u252a;\u407b;\u405b\u0100es\u2531\u2533;\u698bl\u0100du\u2539\u253b;\u698f;\u698d\u0200aeuy\u2546\u254b\u2556\u2558ron;\u413e\u0100di\u2550\u2554il;\u413c\xec\u08b0\xe2\u2529;\u443b\u0200cqrs\u2563\u2566\u256d\u257da;\u6936uo\u0100;r\u0e19\u1746\u0100du\u2572\u2577har;\u6967shar;\u694bh;\u61b2\u0280;fgqs\u258b\u258c\u0989\u25f3\u25ff\u6264t\u0280ahlrt\u2598\u25a4\u25b7\u25c2\u25e8rrow\u0100;t\u0899\u25a1a\xe9\u24f6arpoon\u0100du\u25af\u25b4own\xbb\u045ap\xbb\u0966eftarrows;\u61c7ight\u0180ahs\u25cd\u25d6\u25derrow\u0100;s\u08f4\u08a7arpoon\xf3\u0f98quigarro\xf7\u21f0hreetimes;\u62cb\u0180;qs\u258b\u0993\u25falan\xf4\u09ac\u0280;cdgs\u09ac\u260a\u260d\u261d\u2628c;\u6aa8ot\u0100;o\u2614\u2615\u6a7f\u0100;r\u261a\u261b\u6a81;\u6a83\u0100;e\u2622\u2625\uc000\u22da\ufe00s;\u6a93\u0280adegs\u2633\u2639\u263d\u2649\u264bppro\xf8\u24c6ot;\u62d6q\u0100gq\u2643\u2645\xf4\u0989gt\xf2\u248c\xf4\u099bi\xed\u09b2\u0180ilr\u2655\u08e1\u265asht;\u697c;\uc000\ud835\udd29\u0100;E\u099c\u2663;\u6a91\u0161\u2669\u2676r\u0100du\u25b2\u266e\u0100;l\u0965\u2673;\u696alk;\u6584cy;\u4459\u0280;acht\u0a48\u2688\u268b\u2691\u2696r\xf2\u25c1orne\xf2\u1d08ard;\u696bri;\u65fa\u0100io\u269f\u26a4dot;\u4140ust\u0100;a\u26ac\u26ad\u63b0che\xbb\u26ad\u0200Eaes\u26bb\u26bd\u26c9\u26d4;\u6268p\u0100;p\u26c3\u26c4\u6a89rox\xbb\u26c4\u0100;q\u26ce\u26cf\u6a87\u0100;q\u26ce\u26bbim;\u62e6\u0400abnoptwz\u26e9\u26f4\u26f7\u271a\u272f\u2741\u2747\u2750\u0100nr\u26ee\u26f1g;\u67ecr;\u61fdr\xeb\u08c1g\u0180lmr\u26ff\u270d\u2714eft\u0100ar\u09e6\u2707ight\xe1\u09f2apsto;\u67fcight\xe1\u09fdparrow\u0100lr\u2725\u2729ef\xf4\u24edight;\u61ac\u0180afl\u2736\u2739\u273dr;\u6985;\uc000\ud835\udd5dus;\u6a2dimes;\u6a34\u0161\u274b\u274fst;\u6217\xe1\u134e\u0180;ef\u2757\u2758\u1800\u65cange\xbb\u2758ar\u0100;l\u2764\u2765\u4028t;\u6993\u0280achmt\u2773\u2776\u277c\u2785\u2787r\xf2\u08a8orne\xf2\u1d8car\u0100;d\u0f98\u2783;\u696d;\u600eri;\u62bf\u0300achiqt\u2798\u279d\u0a40\u27a2\u27ae\u27bbquo;\u6039r;\uc000\ud835\udcc1m\u0180;eg\u09b2\u27aa\u27ac;\u6a8d;\u6a8f\u0100bu\u252a\u27b3o\u0100;r\u0e1f\u27b9;\u601arok;\u4142\u8400<;cdhilqr\u082b\u27d2\u2639\u27dc\u27e0\u27e5\u27ea\u27f0\u0100ci\u27d7\u27d9;\u6aa6r;\u6a79re\xe5\u25f2mes;\u62c9arr;\u6976uest;\u6a7b\u0100Pi\u27f5\u27f9ar;\u6996\u0180;ef\u2800\u092d\u181b\u65c3r\u0100du\u2807\u280dshar;\u694ahar;\u6966\u0100en\u2817\u2821rtneqq;\uc000\u2268\ufe00\xc5\u281e\u0700Dacdefhilnopsu\u2840\u2845\u2882\u288e\u2893\u28a0\u28a5\u28a8\u28da\u28e2\u28e4\u0a83\u28f3\u2902Dot;\u623a\u0200clpr\u284e\u2852\u2863\u287dr\u803b\xaf\u40af\u0100et\u2857\u2859;\u6642\u0100;e\u285e\u285f\u6720se\xbb\u285f\u0100;s\u103b\u2868to\u0200;dlu\u103b\u2873\u2877\u287bow\xee\u048cef\xf4\u090f\xf0\u13d1ker;\u65ae\u0100oy\u2887\u288cmma;\u6a29;\u443cash;\u6014asuredangle\xbb\u1626r;\uc000\ud835\udd2ao;\u6127\u0180cdn\u28af\u28b4\u28c9ro\u803b\xb5\u40b5\u0200;acd\u1464\u28bd\u28c0\u28c4s\xf4\u16a7ir;\u6af0ot\u80bb\xb7\u01b5us\u0180;bd\u28d2\u1903\u28d3\u6212\u0100;u\u1d3c\u28d8;\u6a2a\u0163\u28de\u28e1p;\u6adb\xf2\u2212\xf0\u0a81\u0100dp\u28e9\u28eeels;\u62a7f;\uc000\ud835\udd5e\u0100ct\u28f8\u28fdr;\uc000\ud835\udcc2pos\xbb\u159d\u0180;lm\u2909\u290a\u290d\u43bctimap;\u62b8\u0c00GLRVabcdefghijlmoprstuvw\u2942\u2953\u297e\u2989\u2998\u29da\u29e9\u2a15\u2a1a\u2a58\u2a5d\u2a83\u2a95\u2aa4\u2aa8\u2b04\u2b07\u2b44\u2b7f\u2bae\u2c34\u2c67\u2c7c\u2ce9\u0100gt\u2947\u294b;\uc000\u22d9\u0338\u0100;v\u2950\u0bcf\uc000\u226b\u20d2\u0180elt\u295a\u2972\u2976ft\u0100ar\u2961\u2967rrow;\u61cdightarrow;\u61ce;\uc000\u22d8\u0338\u0100;v\u297b\u0c47\uc000\u226a\u20d2ightarrow;\u61cf\u0100Dd\u298e\u2993ash;\u62afash;\u62ae\u0280bcnpt\u29a3\u29a7\u29ac\u29b1\u29ccla\xbb\u02deute;\u4144g;\uc000\u2220\u20d2\u0280;Eiop\u0d84\u29bc\u29c0\u29c5\u29c8;\uc000\u2a70\u0338d;\uc000\u224b\u0338s;\u4149ro\xf8\u0d84ur\u0100;a\u29d3\u29d4\u666el\u0100;s\u29d3\u0b38\u01f3\u29df\0\u29e3p\u80bb\xa0\u0b37mp\u0100;e\u0bf9\u0c00\u0280aeouy\u29f4\u29fe\u2a03\u2a10\u2a13\u01f0\u29f9\0\u29fb;\u6a43on;\u4148dil;\u4146ng\u0100;d\u0d7e\u2a0aot;\uc000\u2a6d\u0338p;\u6a42;\u443dash;\u6013\u0380;Aadqsx\u0b92\u2a29\u2a2d\u2a3b\u2a41\u2a45\u2a50rr;\u61d7r\u0100hr\u2a33\u2a36k;\u6924\u0100;o\u13f2\u13f0ot;\uc000\u2250\u0338ui\xf6\u0b63\u0100ei\u2a4a\u2a4ear;\u6928\xed\u0b98ist\u0100;s\u0ba0\u0b9fr;\uc000\ud835\udd2b\u0200Eest\u0bc5\u2a66\u2a79\u2a7c\u0180;qs\u0bbc\u2a6d\u0be1\u0180;qs\u0bbc\u0bc5\u2a74lan\xf4\u0be2i\xed\u0bea\u0100;r\u0bb6\u2a81\xbb\u0bb7\u0180Aap\u2a8a\u2a8d\u2a91r\xf2\u2971rr;\u61aear;\u6af2\u0180;sv\u0f8d\u2a9c\u0f8c\u0100;d\u2aa1\u2aa2\u62fc;\u62facy;\u445a\u0380AEadest\u2ab7\u2aba\u2abe\u2ac2\u2ac5\u2af6\u2af9r\xf2\u2966;\uc000\u2266\u0338rr;\u619ar;\u6025\u0200;fqs\u0c3b\u2ace\u2ae3\u2aeft\u0100ar\u2ad4\u2ad9rro\xf7\u2ac1ightarro\xf7\u2a90\u0180;qs\u0c3b\u2aba\u2aealan\xf4\u0c55\u0100;s\u0c55\u2af4\xbb\u0c36i\xed\u0c5d\u0100;r\u0c35\u2afei\u0100;e\u0c1a\u0c25i\xe4\u0d90\u0100pt\u2b0c\u2b11f;\uc000\ud835\udd5f\u8180\xac;in\u2b19\u2b1a\u2b36\u40acn\u0200;Edv\u0b89\u2b24\u2b28\u2b2e;\uc000\u22f9\u0338ot;\uc000\u22f5\u0338\u01e1\u0b89\u2b33\u2b35;\u62f7;\u62f6i\u0100;v\u0cb8\u2b3c\u01e1\u0cb8\u2b41\u2b43;\u62fe;\u62fd\u0180aor\u2b4b\u2b63\u2b69r\u0200;ast\u0b7b\u2b55\u2b5a\u2b5flle\xec\u0b7bl;\uc000\u2afd\u20e5;\uc000\u2202\u0338lint;\u6a14\u0180;ce\u0c92\u2b70\u2b73u\xe5\u0ca5\u0100;c\u0c98\u2b78\u0100;e\u0c92\u2b7d\xf1\u0c98\u0200Aait\u2b88\u2b8b\u2b9d\u2ba7r\xf2\u2988rr\u0180;cw\u2b94\u2b95\u2b99\u619b;\uc000\u2933\u0338;\uc000\u219d\u0338ghtarrow\xbb\u2b95ri\u0100;e\u0ccb\u0cd6\u0380chimpqu\u2bbd\u2bcd\u2bd9\u2b04\u0b78\u2be4\u2bef\u0200;cer\u0d32\u2bc6\u0d37\u2bc9u\xe5\u0d45;\uc000\ud835\udcc3ort\u026d\u2b05\0\0\u2bd6ar\xe1\u2b56m\u0100;e\u0d6e\u2bdf\u0100;q\u0d74\u0d73su\u0100bp\u2beb\u2bed\xe5\u0cf8\xe5\u0d0b\u0180bcp\u2bf6\u2c11\u2c19\u0200;Ees\u2bff\u2c00\u0d22\u2c04\u6284;\uc000\u2ac5\u0338et\u0100;e\u0d1b\u2c0bq\u0100;q\u0d23\u2c00c\u0100;e\u0d32\u2c17\xf1\u0d38\u0200;Ees\u2c22\u2c23\u0d5f\u2c27\u6285;\uc000\u2ac6\u0338et\u0100;e\u0d58\u2c2eq\u0100;q\u0d60\u2c23\u0200gilr\u2c3d\u2c3f\u2c45\u2c47\xec\u0bd7lde\u803b\xf1\u40f1\xe7\u0c43iangle\u0100lr\u2c52\u2c5ceft\u0100;e\u0c1a\u2c5a\xf1\u0c26ight\u0100;e\u0ccb\u2c65\xf1\u0cd7\u0100;m\u2c6c\u2c6d\u43bd\u0180;es\u2c74\u2c75\u2c79\u4023ro;\u6116p;\u6007\u0480DHadgilrs\u2c8f\u2c94\u2c99\u2c9e\u2ca3\u2cb0\u2cb6\u2cd3\u2ce3ash;\u62adarr;\u6904p;\uc000\u224d\u20d2ash;\u62ac\u0100et\u2ca8\u2cac;\uc000\u2265\u20d2;\uc000>\u20d2nfin;\u69de\u0180Aet\u2cbd\u2cc1\u2cc5rr;\u6902;\uc000\u2264\u20d2\u0100;r\u2cca\u2ccd\uc000<\u20d2ie;\uc000\u22b4\u20d2\u0100At\u2cd8\u2cdcrr;\u6903rie;\uc000\u22b5\u20d2im;\uc000\u223c\u20d2\u0180Aan\u2cf0\u2cf4\u2d02rr;\u61d6r\u0100hr\u2cfa\u2cfdk;\u6923\u0100;o\u13e7\u13e5ear;\u6927\u1253\u1a95\0\0\0\0\0\0\0\0\0\0\0\0\0\u2d2d\0\u2d38\u2d48\u2d60\u2d65\u2d72\u2d84\u1b07\0\0\u2d8d\u2dab\0\u2dc8\u2dce\0\u2ddc\u2e19\u2e2b\u2e3e\u2e43\u0100cs\u2d31\u1a97ute\u803b\xf3\u40f3\u0100iy\u2d3c\u2d45r\u0100;c\u1a9e\u2d42\u803b\xf4\u40f4;\u443e\u0280abios\u1aa0\u2d52\u2d57\u01c8\u2d5alac;\u4151v;\u6a38old;\u69bclig;\u4153\u0100cr\u2d69\u2d6dir;\u69bf;\uc000\ud835\udd2c\u036f\u2d79\0\0\u2d7c\0\u2d82n;\u42dbave\u803b\xf2\u40f2;\u69c1\u0100bm\u2d88\u0df4ar;\u69b5\u0200acit\u2d95\u2d98\u2da5\u2da8r\xf2\u1a80\u0100ir\u2d9d\u2da0r;\u69beoss;\u69bbn\xe5\u0e52;\u69c0\u0180aei\u2db1\u2db5\u2db9cr;\u414dga;\u43c9\u0180cdn\u2dc0\u2dc5\u01cdron;\u43bf;\u69b6pf;\uc000\ud835\udd60\u0180ael\u2dd4\u2dd7\u01d2r;\u69b7rp;\u69b9\u0380;adiosv\u2dea\u2deb\u2dee\u2e08\u2e0d\u2e10\u2e16\u6228r\xf2\u1a86\u0200;efm\u2df7\u2df8\u2e02\u2e05\u6a5dr\u0100;o\u2dfe\u2dff\u6134f\xbb\u2dff\u803b\xaa\u40aa\u803b\xba\u40bagof;\u62b6r;\u6a56lope;\u6a57;\u6a5b\u0180clo\u2e1f\u2e21\u2e27\xf2\u2e01ash\u803b\xf8\u40f8l;\u6298i\u016c\u2e2f\u2e34de\u803b\xf5\u40f5es\u0100;a\u01db\u2e3as;\u6a36ml\u803b\xf6\u40f6bar;\u633d\u0ae1\u2e5e\0\u2e7d\0\u2e80\u2e9d\0\u2ea2\u2eb9\0\0\u2ecb\u0e9c\0\u2f13\0\0\u2f2b\u2fbc\0\u2fc8r\u0200;ast\u0403\u2e67\u2e72\u0e85\u8100\xb6;l\u2e6d\u2e6e\u40b6le\xec\u0403\u0269\u2e78\0\0\u2e7bm;\u6af3;\u6afdy;\u443fr\u0280cimpt\u2e8b\u2e8f\u2e93\u1865\u2e97nt;\u4025od;\u402eil;\u6030enk;\u6031r;\uc000\ud835\udd2d\u0180imo\u2ea8\u2eb0\u2eb4\u0100;v\u2ead\u2eae\u43c6;\u43d5ma\xf4\u0a76ne;\u660e\u0180;tv\u2ebf\u2ec0\u2ec8\u43c0chfork\xbb\u1ffd;\u43d6\u0100au\u2ecf\u2edfn\u0100ck\u2ed5\u2eddk\u0100;h\u21f4\u2edb;\u610e\xf6\u21f4s\u0480;abcdemst\u2ef3\u2ef4\u1908\u2ef9\u2efd\u2f04\u2f06\u2f0a\u2f0e\u402bcir;\u6a23ir;\u6a22\u0100ou\u1d40\u2f02;\u6a25;\u6a72n\u80bb\xb1\u0e9dim;\u6a26wo;\u6a27\u0180ipu\u2f19\u2f20\u2f25ntint;\u6a15f;\uc000\ud835\udd61nd\u803b\xa3\u40a3\u0500;Eaceinosu\u0ec8\u2f3f\u2f41\u2f44\u2f47\u2f81\u2f89\u2f92\u2f7e\u2fb6;\u6ab3p;\u6ab7u\xe5\u0ed9\u0100;c\u0ece\u2f4c\u0300;acens\u0ec8\u2f59\u2f5f\u2f66\u2f68\u2f7eppro\xf8\u2f43urlye\xf1\u0ed9\xf1\u0ece\u0180aes\u2f6f\u2f76\u2f7approx;\u6ab9qq;\u6ab5im;\u62e8i\xed\u0edfme\u0100;s\u2f88\u0eae\u6032\u0180Eas\u2f78\u2f90\u2f7a\xf0\u2f75\u0180dfp\u0eec\u2f99\u2faf\u0180als\u2fa0\u2fa5\u2faalar;\u632eine;\u6312urf;\u6313\u0100;t\u0efb\u2fb4\xef\u0efbrel;\u62b0\u0100ci\u2fc0\u2fc5r;\uc000\ud835\udcc5;\u43c8ncsp;\u6008\u0300fiopsu\u2fda\u22e2\u2fdf\u2fe5\u2feb\u2ff1r;\uc000\ud835\udd2epf;\uc000\ud835\udd62rime;\u6057cr;\uc000\ud835\udcc6\u0180aeo\u2ff8\u3009\u3013t\u0100ei\u2ffe\u3005rnion\xf3\u06b0nt;\u6a16st\u0100;e\u3010\u3011\u403f\xf1\u1f19\xf4\u0f14\u0a80ABHabcdefhilmnoprstux\u3040\u3051\u3055\u3059\u30e0\u310e\u312b\u3147\u3162\u3172\u318e\u3206\u3215\u3224\u3229\u3258\u326e\u3272\u3290\u32b0\u32b7\u0180art\u3047\u304a\u304cr\xf2\u10b3\xf2\u03ddail;\u691car\xf2\u1c65ar;\u6964\u0380cdenqrt\u3068\u3075\u3078\u307f\u308f\u3094\u30cc\u0100eu\u306d\u3071;\uc000\u223d\u0331te;\u4155i\xe3\u116emptyv;\u69b3g\u0200;del\u0fd1\u3089\u308b\u308d;\u6992;\u69a5\xe5\u0fd1uo\u803b\xbb\u40bbr\u0580;abcfhlpstw\u0fdc\u30ac\u30af\u30b7\u30b9\u30bc\u30be\u30c0\u30c3\u30c7\u30cap;\u6975\u0100;f\u0fe0\u30b4s;\u6920;\u6933s;\u691e\xeb\u225d\xf0\u272el;\u6945im;\u6974l;\u61a3;\u619d\u0100ai\u30d1\u30d5il;\u691ao\u0100;n\u30db\u30dc\u6236al\xf3\u0f1e\u0180abr\u30e7\u30ea\u30eer\xf2\u17e5rk;\u6773\u0100ak\u30f3\u30fdc\u0100ek\u30f9\u30fb;\u407d;\u405d\u0100es\u3102\u3104;\u698cl\u0100du\u310a\u310c;\u698e;\u6990\u0200aeuy\u3117\u311c\u3127\u3129ron;\u4159\u0100di\u3121\u3125il;\u4157\xec\u0ff2\xe2\u30fa;\u4440\u0200clqs\u3134\u3137\u313d\u3144a;\u6937dhar;\u6969uo\u0100;r\u020e\u020dh;\u61b3\u0180acg\u314e\u315f\u0f44l\u0200;ips\u0f78\u3158\u315b\u109cn\xe5\u10bbar\xf4\u0fa9t;\u65ad\u0180ilr\u3169\u1023\u316esht;\u697d;\uc000\ud835\udd2f\u0100ao\u3177\u3186r\u0100du\u317d\u317f\xbb\u047b\u0100;l\u1091\u3184;\u696c\u0100;v\u318b\u318c\u43c1;\u43f1\u0180gns\u3195\u31f9\u31fcht\u0300ahlrst\u31a4\u31b0\u31c2\u31d8\u31e4\u31eerrow\u0100;t\u0fdc\u31ada\xe9\u30c8arpoon\u0100du\u31bb\u31bfow\xee\u317ep\xbb\u1092eft\u0100ah\u31ca\u31d0rrow\xf3\u0feaarpoon\xf3\u0551ightarrows;\u61c9quigarro\xf7\u30cbhreetimes;\u62ccg;\u42daingdotse\xf1\u1f32\u0180ahm\u320d\u3210\u3213r\xf2\u0feaa\xf2\u0551;\u600foust\u0100;a\u321e\u321f\u63b1che\xbb\u321fmid;\u6aee\u0200abpt\u3232\u323d\u3240\u3252\u0100nr\u3237\u323ag;\u67edr;\u61fer\xeb\u1003\u0180afl\u3247\u324a\u324er;\u6986;\uc000\ud835\udd63us;\u6a2eimes;\u6a35\u0100ap\u325d\u3267r\u0100;g\u3263\u3264\u4029t;\u6994olint;\u6a12ar\xf2\u31e3\u0200achq\u327b\u3280\u10bc\u3285quo;\u603ar;\uc000\ud835\udcc7\u0100bu\u30fb\u328ao\u0100;r\u0214\u0213\u0180hir\u3297\u329b\u32a0re\xe5\u31f8mes;\u62cai\u0200;efl\u32aa\u1059\u1821\u32ab\u65b9tri;\u69celuhar;\u6968;\u611e\u0d61\u32d5\u32db\u32df\u332c\u3338\u3371\0\u337a\u33a4\0\0\u33ec\u33f0\0\u3428\u3448\u345a\u34ad\u34b1\u34ca\u34f1\0\u3616\0\0\u3633cute;\u415bqu\xef\u27ba\u0500;Eaceinpsy\u11ed\u32f3\u32f5\u32ff\u3302\u330b\u330f\u331f\u3326\u3329;\u6ab4\u01f0\u32fa\0\u32fc;\u6ab8on;\u4161u\xe5\u11fe\u0100;d\u11f3\u3307il;\u415frc;\u415d\u0180Eas\u3316\u3318\u331b;\u6ab6p;\u6abaim;\u62e9olint;\u6a13i\xed\u1204;\u4441ot\u0180;be\u3334\u1d47\u3335\u62c5;\u6a66\u0380Aacmstx\u3346\u334a\u3357\u335b\u335e\u3363\u336drr;\u61d8r\u0100hr\u3350\u3352\xeb\u2228\u0100;o\u0a36\u0a34t\u803b\xa7\u40a7i;\u403bwar;\u6929m\u0100in\u3369\xf0nu\xf3\xf1t;\u6736r\u0100;o\u3376\u2055\uc000\ud835\udd30\u0200acoy\u3382\u3386\u3391\u33a0rp;\u666f\u0100hy\u338b\u338fcy;\u4449;\u4448rt\u026d\u3399\0\0\u339ci\xe4\u1464ara\xec\u2e6f\u803b\xad\u40ad\u0100gm\u33a8\u33b4ma\u0180;fv\u33b1\u33b2\u33b2\u43c3;\u43c2\u0400;deglnpr\u12ab\u33c5\u33c9\u33ce\u33d6\u33de\u33e1\u33e6ot;\u6a6a\u0100;q\u12b1\u12b0\u0100;E\u33d3\u33d4\u6a9e;\u6aa0\u0100;E\u33db\u33dc\u6a9d;\u6a9fe;\u6246lus;\u6a24arr;\u6972ar\xf2\u113d\u0200aeit\u33f8\u3408\u340f\u3417\u0100ls\u33fd\u3404lsetm\xe9\u336ahp;\u6a33parsl;\u69e4\u0100dl\u1463\u3414e;\u6323\u0100;e\u341c\u341d\u6aaa\u0100;s\u3422\u3423\u6aac;\uc000\u2aac\ufe00\u0180flp\u342e\u3433\u3442tcy;\u444c\u0100;b\u3438\u3439\u402f\u0100;a\u343e\u343f\u69c4r;\u633ff;\uc000\ud835\udd64a\u0100dr\u344d\u0402es\u0100;u\u3454\u3455\u6660it\xbb\u3455\u0180csu\u3460\u3479\u349f\u0100au\u3465\u346fp\u0100;s\u1188\u346b;\uc000\u2293\ufe00p\u0100;s\u11b4\u3475;\uc000\u2294\ufe00u\u0100bp\u347f\u348f\u0180;es\u1197\u119c\u3486et\u0100;e\u1197\u348d\xf1\u119d\u0180;es\u11a8\u11ad\u3496et\u0100;e\u11a8\u349d\xf1\u11ae\u0180;af\u117b\u34a6\u05b0r\u0165\u34ab\u05b1\xbb\u117car\xf2\u1148\u0200cemt\u34b9\u34be\u34c2\u34c5r;\uc000\ud835\udcc8tm\xee\xf1i\xec\u3415ar\xe6\u11be\u0100ar\u34ce\u34d5r\u0100;f\u34d4\u17bf\u6606\u0100an\u34da\u34edight\u0100ep\u34e3\u34eapsilo\xee\u1ee0h\xe9\u2eafs\xbb\u2852\u0280bcmnp\u34fb\u355e\u1209\u358b\u358e\u0480;Edemnprs\u350e\u350f\u3511\u3515\u351e\u3523\u352c\u3531\u3536\u6282;\u6ac5ot;\u6abd\u0100;d\u11da\u351aot;\u6ac3ult;\u6ac1\u0100Ee\u3528\u352a;\u6acb;\u628alus;\u6abfarr;\u6979\u0180eiu\u353d\u3552\u3555t\u0180;en\u350e\u3545\u354bq\u0100;q\u11da\u350feq\u0100;q\u352b\u3528m;\u6ac7\u0100bp\u355a\u355c;\u6ad5;\u6ad3c\u0300;acens\u11ed\u356c\u3572\u3579\u357b\u3326ppro\xf8\u32faurlye\xf1\u11fe\xf1\u11f3\u0180aes\u3582\u3588\u331bppro\xf8\u331aq\xf1\u3317g;\u666a\u0680123;Edehlmnps\u35a9\u35ac\u35af\u121c\u35b2\u35b4\u35c0\u35c9\u35d5\u35da\u35df\u35e8\u35ed\u803b\xb9\u40b9\u803b\xb2\u40b2\u803b\xb3\u40b3;\u6ac6\u0100os\u35b9\u35bct;\u6abeub;\u6ad8\u0100;d\u1222\u35c5ot;\u6ac4s\u0100ou\u35cf\u35d2l;\u67c9b;\u6ad7arr;\u697bult;\u6ac2\u0100Ee\u35e4\u35e6;\u6acc;\u628blus;\u6ac0\u0180eiu\u35f4\u3609\u360ct\u0180;en\u121c\u35fc\u3602q\u0100;q\u1222\u35b2eq\u0100;q\u35e7\u35e4m;\u6ac8\u0100bp\u3611\u3613;\u6ad4;\u6ad6\u0180Aan\u361c\u3620\u362drr;\u61d9r\u0100hr\u3626\u3628\xeb\u222e\u0100;o\u0a2b\u0a29war;\u692alig\u803b\xdf\u40df\u0be1\u3651\u365d\u3660\u12ce\u3673\u3679\0\u367e\u36c2\0\0\0\0\0\u36db\u3703\0\u3709\u376c\0\0\0\u3787\u0272\u3656\0\0\u365bget;\u6316;\u43c4r\xeb\u0e5f\u0180aey\u3666\u366b\u3670ron;\u4165dil;\u4163;\u4442lrec;\u6315r;\uc000\ud835\udd31\u0200eiko\u3686\u369d\u36b5\u36bc\u01f2\u368b\0\u3691e\u01004f\u1284\u1281a\u0180;sv\u3698\u3699\u369b\u43b8ym;\u43d1\u0100cn\u36a2\u36b2k\u0100as\u36a8\u36aeppro\xf8\u12c1im\xbb\u12acs\xf0\u129e\u0100as\u36ba\u36ae\xf0\u12c1rn\u803b\xfe\u40fe\u01ec\u031f\u36c6\u22e7es\u8180\xd7;bd\u36cf\u36d0\u36d8\u40d7\u0100;a\u190f\u36d5r;\u6a31;\u6a30\u0180eps\u36e1\u36e3\u3700\xe1\u2a4d\u0200;bcf\u0486\u36ec\u36f0\u36f4ot;\u6336ir;\u6af1\u0100;o\u36f9\u36fc\uc000\ud835\udd65rk;\u6ada\xe1\u3362rime;\u6034\u0180aip\u370f\u3712\u3764d\xe5\u1248\u0380adempst\u3721\u374d\u3740\u3751\u3757\u375c\u375fngle\u0280;dlqr\u3730\u3731\u3736\u3740\u3742\u65b5own\xbb\u1dbbeft\u0100;e\u2800\u373e\xf1\u092e;\u625cight\u0100;e\u32aa\u374b\xf1\u105aot;\u65ecinus;\u6a3alus;\u6a39b;\u69cdime;\u6a3bezium;\u63e2\u0180cht\u3772\u377d\u3781\u0100ry\u3777\u377b;\uc000\ud835\udcc9;\u4446cy;\u445brok;\u4167\u0100io\u378b\u378ex\xf4\u1777head\u0100lr\u3797\u37a0eftarro\xf7\u084fightarrow\xbb\u0f5d\u0900AHabcdfghlmoprstuw\u37d0\u37d3\u37d7\u37e4\u37f0\u37fc\u380e\u381c\u3823\u3834\u3851\u385d\u386b\u38a9\u38cc\u38d2\u38ea\u38f6r\xf2\u03edar;\u6963\u0100cr\u37dc\u37e2ute\u803b\xfa\u40fa\xf2\u1150r\u01e3\u37ea\0\u37edy;\u445eve;\u416d\u0100iy\u37f5\u37farc\u803b\xfb\u40fb;\u4443\u0180abh\u3803\u3806\u380br\xf2\u13adlac;\u4171a\xf2\u13c3\u0100ir\u3813\u3818sht;\u697e;\uc000\ud835\udd32rave\u803b\xf9\u40f9\u0161\u3827\u3831r\u0100lr\u382c\u382e\xbb\u0957\xbb\u1083lk;\u6580\u0100ct\u3839\u384d\u026f\u383f\0\0\u384arn\u0100;e\u3845\u3846\u631cr\xbb\u3846op;\u630fri;\u65f8\u0100al\u3856\u385acr;\u416b\u80bb\xa8\u0349\u0100gp\u3862\u3866on;\u4173f;\uc000\ud835\udd66\u0300adhlsu\u114b\u3878\u387d\u1372\u3891\u38a0own\xe1\u13b3arpoon\u0100lr\u3888\u388cef\xf4\u382digh\xf4\u382fi\u0180;hl\u3899\u389a\u389c\u43c5\xbb\u13faon\xbb\u389aparrows;\u61c8\u0180cit\u38b0\u38c4\u38c8\u026f\u38b6\0\0\u38c1rn\u0100;e\u38bc\u38bd\u631dr\xbb\u38bdop;\u630eng;\u416fri;\u65f9cr;\uc000\ud835\udcca\u0180dir\u38d9\u38dd\u38e2ot;\u62f0lde;\u4169i\u0100;f\u3730\u38e8\xbb\u1813\u0100am\u38ef\u38f2r\xf2\u38a8l\u803b\xfc\u40fcangle;\u69a7\u0780ABDacdeflnoprsz\u391c\u391f\u3929\u392d\u39b5\u39b8\u39bd\u39df\u39e4\u39e8\u39f3\u39f9\u39fd\u3a01\u3a20r\xf2\u03f7ar\u0100;v\u3926\u3927\u6ae8;\u6ae9as\xe8\u03e1\u0100nr\u3932\u3937grt;\u699c\u0380eknprst\u34e3\u3946\u394b\u3952\u395d\u3964\u3996app\xe1\u2415othin\xe7\u1e96\u0180hir\u34eb\u2ec8\u3959op\xf4\u2fb5\u0100;h\u13b7\u3962\xef\u318d\u0100iu\u3969\u396dgm\xe1\u33b3\u0100bp\u3972\u3984setneq\u0100;q\u397d\u3980\uc000\u228a\ufe00;\uc000\u2acb\ufe00setneq\u0100;q\u398f\u3992\uc000\u228b\ufe00;\uc000\u2acc\ufe00\u0100hr\u399b\u399fet\xe1\u369ciangle\u0100lr\u39aa\u39afeft\xbb\u0925ight\xbb\u1051y;\u4432ash\xbb\u1036\u0180elr\u39c4\u39d2\u39d7\u0180;be\u2dea\u39cb\u39cfar;\u62bbq;\u625alip;\u62ee\u0100bt\u39dc\u1468a\xf2\u1469r;\uc000\ud835\udd33tr\xe9\u39aesu\u0100bp\u39ef\u39f1\xbb\u0d1c\xbb\u0d59pf;\uc000\ud835\udd67ro\xf0\u0efbtr\xe9\u39b4\u0100cu\u3a06\u3a0br;\uc000\ud835\udccb\u0100bp\u3a10\u3a18n\u0100Ee\u3980\u3a16\xbb\u397en\u0100Ee\u3992\u3a1e\xbb\u3990igzag;\u699a\u0380cefoprs\u3a36\u3a3b\u3a56\u3a5b\u3a54\u3a61\u3a6airc;\u4175\u0100di\u3a40\u3a51\u0100bg\u3a45\u3a49ar;\u6a5fe\u0100;q\u15fa\u3a4f;\u6259erp;\u6118r;\uc000\ud835\udd34pf;\uc000\ud835\udd68\u0100;e\u1479\u3a66at\xe8\u1479cr;\uc000\ud835\udccc\u0ae3\u178e\u3a87\0\u3a8b\0\u3a90\u3a9b\0\0\u3a9d\u3aa8\u3aab\u3aaf\0\0\u3ac3\u3ace\0\u3ad8\u17dc\u17dftr\xe9\u17d1r;\uc000\ud835\udd35\u0100Aa\u3a94\u3a97r\xf2\u03c3r\xf2\u09f6;\u43be\u0100Aa\u3aa1\u3aa4r\xf2\u03b8r\xf2\u09eba\xf0\u2713is;\u62fb\u0180dpt\u17a4\u3ab5\u3abe\u0100fl\u3aba\u17a9;\uc000\ud835\udd69im\xe5\u17b2\u0100Aa\u3ac7\u3acar\xf2\u03cer\xf2\u0a01\u0100cq\u3ad2\u17b8r;\uc000\ud835\udccd\u0100pt\u17d6\u3adcr\xe9\u17d4\u0400acefiosu\u3af0\u3afd\u3b08\u3b0c\u3b11\u3b15\u3b1b\u3b21c\u0100uy\u3af6\u3afbte\u803b\xfd\u40fd;\u444f\u0100iy\u3b02\u3b06rc;\u4177;\u444bn\u803b\xa5\u40a5r;\uc000\ud835\udd36cy;\u4457pf;\uc000\ud835\udd6acr;\uc000\ud835\udcce\u0100cm\u3b26\u3b29y;\u444el\u803b\xff\u40ff\u0500acdefhiosw\u3b42\u3b48\u3b54\u3b58\u3b64\u3b69\u3b6d\u3b74\u3b7a\u3b80cute;\u417a\u0100ay\u3b4d\u3b52ron;\u417e;\u4437ot;\u417c\u0100et\u3b5d\u3b61tr\xe6\u155fa;\u43b6r;\uc000\ud835\udd37cy;\u4436grarr;\u61ddpf;\uc000\ud835\udd6bcr;\uc000\ud835\udccf\u0100jn\u3b85\u3b87;\u600dj;\u600c"
64089
64095
  .split("")
64090
- .map((c) => c.charCodeAt(0))));
64096
+ .map((c) => c.charCodeAt(0)));
64091
64097
  //# sourceMappingURL=decode-data-html.js.map
64092
- ;// ./node_modules/entities/lib/esm/generated/decode-data-xml.js
64098
+ ;// ./node_modules/parse5/node_modules/entities/dist/esm/generated/decode-data-xml.js
64093
64099
  // Generated using scripts/write-decode-map.ts
64094
- /* harmony default export */ const decode_data_xml = (new Uint16Array(
64100
+ const decode_data_xml_xmlDecodeTree = /* #__PURE__ */ new Uint16Array(
64095
64101
  // prettier-ignore
64096
- "\u0200aglq\t\x15\x18\x1b\u026d\x0f\0\0\x12p;\u4026os;\u4027t;\u403et;\u403cuot;\u4022"
64102
+ /* #__PURE__ */ "\u0200aglq\t\x15\x18\x1b\u026d\x0f\0\0\x12p;\u4026os;\u4027t;\u403et;\u403cuot;\u4022"
64097
64103
  .split("")
64098
- .map((c) => c.charCodeAt(0))));
64104
+ .map((c) => c.charCodeAt(0)));
64099
64105
  //# sourceMappingURL=decode-data-xml.js.map
64100
- ;// ./node_modules/entities/lib/esm/decode_codepoint.js
64106
+ ;// ./node_modules/parse5/node_modules/entities/dist/esm/decode-codepoint.js
64101
64107
  // Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134
64102
64108
  var decode_codepoint_a;
64103
64109
  const decodeMap = new Map([
@@ -64134,14 +64140,14 @@ const decodeMap = new Map([
64134
64140
  /**
64135
64141
  * Polyfill for `String.fromCodePoint`. It is used to create a string from a Unicode code point.
64136
64142
  */
64137
- const fromCodePoint =
64138
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, node/no-unsupported-features/es-builtins
64143
+ const decode_codepoint_fromCodePoint =
64144
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, n/no-unsupported-features/es-builtins
64139
64145
  (decode_codepoint_a = String.fromCodePoint) !== null && decode_codepoint_a !== void 0 ? decode_codepoint_a : function (codePoint) {
64140
64146
  let output = "";
64141
- if (codePoint > 0xffff) {
64142
- codePoint -= 0x10000;
64143
- output += String.fromCharCode(((codePoint >>> 10) & 0x3ff) | 0xd800);
64144
- codePoint = 0xdc00 | (codePoint & 0x3ff);
64147
+ if (codePoint > 65535) {
64148
+ codePoint -= 65536;
64149
+ output += String.fromCharCode(((codePoint >>> 10) & 1023) | 55296);
64150
+ codePoint = 56320 | (codePoint & 1023);
64145
64151
  }
64146
64152
  output += String.fromCharCode(codePoint);
64147
64153
  return output;
@@ -64153,8 +64159,9 @@ const fromCodePoint =
64153
64159
  */
64154
64160
  function replaceCodePoint(codePoint) {
64155
64161
  var _a;
64156
- if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) {
64157
- return 0xfffd;
64162
+ if ((codePoint >= 55296 && codePoint <= 57343) ||
64163
+ codePoint > 1114111) {
64164
+ return 65533;
64158
64165
  }
64159
64166
  return (_a = decodeMap.get(codePoint)) !== null && _a !== void 0 ? _a : codePoint;
64160
64167
  }
@@ -64166,15 +64173,12 @@ function replaceCodePoint(codePoint) {
64166
64173
  * @returns The decoded code point.
64167
64174
  */
64168
64175
  function decodeCodePoint(codePoint) {
64169
- return fromCodePoint(replaceCodePoint(codePoint));
64176
+ return decode_codepoint_fromCodePoint(replaceCodePoint(codePoint));
64170
64177
  }
64171
- //# sourceMappingURL=decode_codepoint.js.map
64172
- ;// ./node_modules/entities/lib/esm/decode.js
64173
-
64178
+ //# sourceMappingURL=decode-codepoint.js.map
64179
+ ;// ./node_modules/parse5/node_modules/entities/dist/esm/decode.js
64174
64180
 
64175
64181
 
64176
- // Re-export for use by eg. htmlparser2
64177
-
64178
64182
 
64179
64183
  var CharCodes;
64180
64184
  (function (CharCodes) {
@@ -64192,7 +64196,7 @@ var CharCodes;
64192
64196
  CharCodes[CharCodes["UPPER_Z"] = 90] = "UPPER_Z";
64193
64197
  })(CharCodes || (CharCodes = {}));
64194
64198
  /** Bit that needs to be set to convert an upper case ASCII character to lower case */
64195
- const TO_LOWER_BIT = 0b100000;
64199
+ const TO_LOWER_BIT = 32;
64196
64200
  var BinTrieFlags;
64197
64201
  (function (BinTrieFlags) {
64198
64202
  BinTrieFlags[BinTrieFlags["VALUE_LENGTH"] = 49152] = "VALUE_LENGTH";
@@ -64293,32 +64297,32 @@ class EntityDecoder {
64293
64297
  * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the
64294
64298
  * entity is incomplete, and resume when the next string is written.
64295
64299
  *
64296
- * @param string The string containing the entity (or a continuation of the entity).
64300
+ * @param input The string containing the entity (or a continuation of the entity).
64297
64301
  * @param offset The offset at which the entity begins. Should be 0 if this is not the first call.
64298
64302
  * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
64299
64303
  */
64300
- write(str, offset) {
64304
+ write(input, offset) {
64301
64305
  switch (this.state) {
64302
64306
  case EntityDecoderState.EntityStart: {
64303
- if (str.charCodeAt(offset) === CharCodes.NUM) {
64307
+ if (input.charCodeAt(offset) === CharCodes.NUM) {
64304
64308
  this.state = EntityDecoderState.NumericStart;
64305
64309
  this.consumed += 1;
64306
- return this.stateNumericStart(str, offset + 1);
64310
+ return this.stateNumericStart(input, offset + 1);
64307
64311
  }
64308
64312
  this.state = EntityDecoderState.NamedEntity;
64309
- return this.stateNamedEntity(str, offset);
64313
+ return this.stateNamedEntity(input, offset);
64310
64314
  }
64311
64315
  case EntityDecoderState.NumericStart: {
64312
- return this.stateNumericStart(str, offset);
64316
+ return this.stateNumericStart(input, offset);
64313
64317
  }
64314
64318
  case EntityDecoderState.NumericDecimal: {
64315
- return this.stateNumericDecimal(str, offset);
64319
+ return this.stateNumericDecimal(input, offset);
64316
64320
  }
64317
64321
  case EntityDecoderState.NumericHex: {
64318
- return this.stateNumericHex(str, offset);
64322
+ return this.stateNumericHex(input, offset);
64319
64323
  }
64320
64324
  case EntityDecoderState.NamedEntity: {
64321
- return this.stateNamedEntity(str, offset);
64325
+ return this.stateNamedEntity(input, offset);
64322
64326
  }
64323
64327
  }
64324
64328
  }
@@ -64327,28 +64331,28 @@ class EntityDecoder {
64327
64331
  *
64328
64332
  * Equivalent to the `Numeric character reference state` in the HTML spec.
64329
64333
  *
64330
- * @param str The string containing the entity (or a continuation of the entity).
64334
+ * @param input The string containing the entity (or a continuation of the entity).
64331
64335
  * @param offset The current offset.
64332
64336
  * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
64333
64337
  */
64334
- stateNumericStart(str, offset) {
64335
- if (offset >= str.length) {
64338
+ stateNumericStart(input, offset) {
64339
+ if (offset >= input.length) {
64336
64340
  return -1;
64337
64341
  }
64338
- if ((str.charCodeAt(offset) | TO_LOWER_BIT) === CharCodes.LOWER_X) {
64342
+ if ((input.charCodeAt(offset) | TO_LOWER_BIT) === CharCodes.LOWER_X) {
64339
64343
  this.state = EntityDecoderState.NumericHex;
64340
64344
  this.consumed += 1;
64341
- return this.stateNumericHex(str, offset + 1);
64345
+ return this.stateNumericHex(input, offset + 1);
64342
64346
  }
64343
64347
  this.state = EntityDecoderState.NumericDecimal;
64344
- return this.stateNumericDecimal(str, offset);
64348
+ return this.stateNumericDecimal(input, offset);
64345
64349
  }
64346
- addToNumericResult(str, start, end, base) {
64350
+ addToNumericResult(input, start, end, base) {
64347
64351
  if (start !== end) {
64348
64352
  const digitCount = end - start;
64349
64353
  this.result =
64350
64354
  this.result * Math.pow(base, digitCount) +
64351
- parseInt(str.substr(start, digitCount), base);
64355
+ Number.parseInt(input.substr(start, digitCount), base);
64352
64356
  this.consumed += digitCount;
64353
64357
  }
64354
64358
  }
@@ -64357,23 +64361,23 @@ class EntityDecoder {
64357
64361
  *
64358
64362
  * Equivalent to the `Hexademical character reference state` in the HTML spec.
64359
64363
  *
64360
- * @param str The string containing the entity (or a continuation of the entity).
64364
+ * @param input The string containing the entity (or a continuation of the entity).
64361
64365
  * @param offset The current offset.
64362
64366
  * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
64363
64367
  */
64364
- stateNumericHex(str, offset) {
64365
- const startIdx = offset;
64366
- while (offset < str.length) {
64367
- const char = str.charCodeAt(offset);
64368
+ stateNumericHex(input, offset) {
64369
+ const startIndex = offset;
64370
+ while (offset < input.length) {
64371
+ const char = input.charCodeAt(offset);
64368
64372
  if (isNumber(char) || isHexadecimalCharacter(char)) {
64369
64373
  offset += 1;
64370
64374
  }
64371
64375
  else {
64372
- this.addToNumericResult(str, startIdx, offset, 16);
64376
+ this.addToNumericResult(input, startIndex, offset, 16);
64373
64377
  return this.emitNumericEntity(char, 3);
64374
64378
  }
64375
64379
  }
64376
- this.addToNumericResult(str, startIdx, offset, 16);
64380
+ this.addToNumericResult(input, startIndex, offset, 16);
64377
64381
  return -1;
64378
64382
  }
64379
64383
  /**
@@ -64381,23 +64385,23 @@ class EntityDecoder {
64381
64385
  *
64382
64386
  * Equivalent to the `Decimal character reference state` in the HTML spec.
64383
64387
  *
64384
- * @param str The string containing the entity (or a continuation of the entity).
64388
+ * @param input The string containing the entity (or a continuation of the entity).
64385
64389
  * @param offset The current offset.
64386
64390
  * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
64387
64391
  */
64388
- stateNumericDecimal(str, offset) {
64389
- const startIdx = offset;
64390
- while (offset < str.length) {
64391
- const char = str.charCodeAt(offset);
64392
+ stateNumericDecimal(input, offset) {
64393
+ const startIndex = offset;
64394
+ while (offset < input.length) {
64395
+ const char = input.charCodeAt(offset);
64392
64396
  if (isNumber(char)) {
64393
64397
  offset += 1;
64394
64398
  }
64395
64399
  else {
64396
- this.addToNumericResult(str, startIdx, offset, 10);
64400
+ this.addToNumericResult(input, startIndex, offset, 10);
64397
64401
  return this.emitNumericEntity(char, 2);
64398
64402
  }
64399
64403
  }
64400
- this.addToNumericResult(str, startIdx, offset, 10);
64404
+ this.addToNumericResult(input, startIndex, offset, 10);
64401
64405
  return -1;
64402
64406
  }
64403
64407
  /**
@@ -64441,17 +64445,17 @@ class EntityDecoder {
64441
64445
  *
64442
64446
  * Equivalent to the `Named character reference state` in the HTML spec.
64443
64447
  *
64444
- * @param str The string containing the entity (or a continuation of the entity).
64448
+ * @param input The string containing the entity (or a continuation of the entity).
64445
64449
  * @param offset The current offset.
64446
64450
  * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
64447
64451
  */
64448
- stateNamedEntity(str, offset) {
64452
+ stateNamedEntity(input, offset) {
64449
64453
  const { decodeTree } = this;
64450
64454
  let current = decodeTree[this.treeIndex];
64451
64455
  // The mask is the number of bytes of the value, including the current byte.
64452
64456
  let valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;
64453
- for (; offset < str.length; offset++, this.excess++) {
64454
- const char = str.charCodeAt(offset);
64457
+ for (; offset < input.length; offset++, this.excess++) {
64458
+ const char = input.charCodeAt(offset);
64455
64459
  this.treeIndex = determineBranch(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char);
64456
64460
  if (this.treeIndex < 0) {
64457
64461
  return this.result === 0 ||
@@ -64558,28 +64562,28 @@ class EntityDecoder {
64558
64562
  * @returns A function that decodes entities in a string.
64559
64563
  */
64560
64564
  function getDecoder(decodeTree) {
64561
- let ret = "";
64562
- const decoder = new EntityDecoder(decodeTree, (str) => (ret += fromCodePoint(str)));
64563
- return function decodeWithTrie(str, decodeMode) {
64565
+ let returnValue = "";
64566
+ const decoder = new EntityDecoder(decodeTree, (data) => (returnValue += fromCodePoint(data)));
64567
+ return function decodeWithTrie(input, decodeMode) {
64564
64568
  let lastIndex = 0;
64565
64569
  let offset = 0;
64566
- while ((offset = str.indexOf("&", offset)) >= 0) {
64567
- ret += str.slice(lastIndex, offset);
64570
+ while ((offset = input.indexOf("&", offset)) >= 0) {
64571
+ returnValue += input.slice(lastIndex, offset);
64568
64572
  decoder.startEntity(decodeMode);
64569
- const len = decoder.write(str,
64573
+ const length = decoder.write(input,
64570
64574
  // Skip the "&"
64571
64575
  offset + 1);
64572
- if (len < 0) {
64576
+ if (length < 0) {
64573
64577
  lastIndex = offset + decoder.end();
64574
64578
  break;
64575
64579
  }
64576
- lastIndex = offset + len;
64577
- // If `len` is 0, skip the current `&` and continue.
64578
- offset = len === 0 ? lastIndex + 1 : lastIndex;
64580
+ lastIndex = offset + length;
64581
+ // If `length` is 0, skip the current `&` and continue.
64582
+ offset = length === 0 ? lastIndex + 1 : lastIndex;
64579
64583
  }
64580
- const result = ret + str.slice(lastIndex);
64584
+ const result = returnValue + input.slice(lastIndex);
64581
64585
  // Make sure we don't keep a reference to the final string.
64582
- ret = "";
64586
+ returnValue = "";
64583
64587
  return result;
64584
64588
  };
64585
64589
  }
@@ -64593,31 +64597,31 @@ function getDecoder(decodeTree) {
64593
64597
  * @param char The current character.
64594
64598
  * @returns The index of the next node, or -1 if no branch is taken.
64595
64599
  */
64596
- function determineBranch(decodeTree, current, nodeIdx, char) {
64600
+ function determineBranch(decodeTree, current, nodeIndex, char) {
64597
64601
  const branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7;
64598
64602
  const jumpOffset = current & BinTrieFlags.JUMP_TABLE;
64599
64603
  // Case 1: Single branch encoded in jump offset
64600
64604
  if (branchCount === 0) {
64601
- return jumpOffset !== 0 && char === jumpOffset ? nodeIdx : -1;
64605
+ return jumpOffset !== 0 && char === jumpOffset ? nodeIndex : -1;
64602
64606
  }
64603
64607
  // Case 2: Multiple branches encoded in jump table
64604
64608
  if (jumpOffset) {
64605
64609
  const value = char - jumpOffset;
64606
64610
  return value < 0 || value >= branchCount
64607
64611
  ? -1
64608
- : decodeTree[nodeIdx + value] - 1;
64612
+ : decodeTree[nodeIndex + value] - 1;
64609
64613
  }
64610
64614
  // Case 3: Multiple branches encoded in dictionary
64611
64615
  // Binary search for the character.
64612
- let lo = nodeIdx;
64616
+ let lo = nodeIndex;
64613
64617
  let hi = lo + branchCount - 1;
64614
64618
  while (lo <= hi) {
64615
64619
  const mid = (lo + hi) >>> 1;
64616
- const midVal = decodeTree[mid];
64617
- if (midVal < char) {
64620
+ const midValue = decodeTree[mid];
64621
+ if (midValue < char) {
64618
64622
  lo = mid + 1;
64619
64623
  }
64620
- else if (midVal > char) {
64624
+ else if (midValue > char) {
64621
64625
  hi = mid - 1;
64622
64626
  }
64623
64627
  else {
@@ -64626,45 +64630,49 @@ function determineBranch(decodeTree, current, nodeIdx, char) {
64626
64630
  }
64627
64631
  return -1;
64628
64632
  }
64629
- const htmlDecoder = getDecoder(decode_data_html);
64630
- const xmlDecoder = getDecoder(decode_data_xml);
64633
+ const htmlDecoder = /* #__PURE__ */ (/* unused pure expression or super */ null && (getDecoder(htmlDecodeTree)));
64634
+ const xmlDecoder = /* #__PURE__ */ (/* unused pure expression or super */ null && (getDecoder(xmlDecodeTree)));
64631
64635
  /**
64632
64636
  * Decodes an HTML string.
64633
64637
  *
64634
- * @param str The string to decode.
64638
+ * @param htmlString The string to decode.
64635
64639
  * @param mode The decoding mode.
64636
64640
  * @returns The decoded string.
64637
64641
  */
64638
- function decode_decodeHTML(str, mode = decode_DecodingMode.Legacy) {
64639
- return htmlDecoder(str, mode);
64642
+ function decode_decodeHTML(htmlString, mode = decode_DecodingMode.Legacy) {
64643
+ return htmlDecoder(htmlString, mode);
64640
64644
  }
64641
64645
  /**
64642
64646
  * Decodes an HTML string in an attribute.
64643
64647
  *
64644
- * @param str The string to decode.
64648
+ * @param htmlAttribute The string to decode.
64645
64649
  * @returns The decoded string.
64646
64650
  */
64647
- function decodeHTMLAttribute(str) {
64648
- return htmlDecoder(str, decode_DecodingMode.Attribute);
64651
+ function decodeHTMLAttribute(htmlAttribute) {
64652
+ return htmlDecoder(htmlAttribute, decode_DecodingMode.Attribute);
64649
64653
  }
64650
64654
  /**
64651
64655
  * Decodes an HTML string, requiring all entities to be terminated by a semicolon.
64652
64656
  *
64653
- * @param str The string to decode.
64657
+ * @param htmlString The string to decode.
64654
64658
  * @returns The decoded string.
64655
64659
  */
64656
- function decodeHTMLStrict(str) {
64657
- return htmlDecoder(str, decode_DecodingMode.Strict);
64660
+ function decodeHTMLStrict(htmlString) {
64661
+ return htmlDecoder(htmlString, decode_DecodingMode.Strict);
64658
64662
  }
64659
64663
  /**
64660
64664
  * Decodes an XML string, requiring all entities to be terminated by a semicolon.
64661
64665
  *
64662
- * @param str The string to decode.
64666
+ * @param xmlString The string to decode.
64663
64667
  * @returns The decoded string.
64664
64668
  */
64665
- function decode_decodeXML(str) {
64666
- return xmlDecoder(str, decode_DecodingMode.Strict);
64669
+ function decode_decodeXML(xmlString) {
64670
+ return xmlDecoder(xmlString, decode_DecodingMode.Strict);
64667
64671
  }
64672
+ // Re-export for use by eg. htmlparser2
64673
+
64674
+
64675
+
64668
64676
  //# sourceMappingURL=decode.js.map
64669
64677
  ;// ./node_modules/parse5/dist/common/html.js
64670
64678
  /** All valid namespaces in HTML. */
@@ -64676,7 +64684,7 @@ var html_NS;
64676
64684
  NS["XLINK"] = "http://www.w3.org/1999/xlink";
64677
64685
  NS["XML"] = "http://www.w3.org/XML/1998/namespace";
64678
64686
  NS["XMLNS"] = "http://www.w3.org/2000/xmlns/";
64679
- })(html_NS = html_NS || (html_NS = {}));
64687
+ })(html_NS || (html_NS = {}));
64680
64688
  var ATTRS;
64681
64689
  (function (ATTRS) {
64682
64690
  ATTRS["TYPE"] = "type";
@@ -64687,7 +64695,7 @@ var ATTRS;
64687
64695
  ATTRS["COLOR"] = "color";
64688
64696
  ATTRS["FACE"] = "face";
64689
64697
  ATTRS["SIZE"] = "size";
64690
- })(ATTRS = ATTRS || (ATTRS = {}));
64698
+ })(ATTRS || (ATTRS = {}));
64691
64699
  /**
64692
64700
  * The mode of the document.
64693
64701
  *
@@ -64698,7 +64706,7 @@ var DOCUMENT_MODE;
64698
64706
  DOCUMENT_MODE["NO_QUIRKS"] = "no-quirks";
64699
64707
  DOCUMENT_MODE["QUIRKS"] = "quirks";
64700
64708
  DOCUMENT_MODE["LIMITED_QUIRKS"] = "limited-quirks";
64701
- })(DOCUMENT_MODE = DOCUMENT_MODE || (DOCUMENT_MODE = {}));
64709
+ })(DOCUMENT_MODE || (DOCUMENT_MODE = {}));
64702
64710
  var TAG_NAMES;
64703
64711
  (function (TAG_NAMES) {
64704
64712
  TAG_NAMES["A"] = "a";
@@ -64794,6 +64802,7 @@ var TAG_NAMES;
64794
64802
  TAG_NAMES["RUBY"] = "ruby";
64795
64803
  TAG_NAMES["S"] = "s";
64796
64804
  TAG_NAMES["SCRIPT"] = "script";
64805
+ TAG_NAMES["SEARCH"] = "search";
64797
64806
  TAG_NAMES["SECTION"] = "section";
64798
64807
  TAG_NAMES["SELECT"] = "select";
64799
64808
  TAG_NAMES["SOURCE"] = "source";
@@ -64823,7 +64832,7 @@ var TAG_NAMES;
64823
64832
  TAG_NAMES["VAR"] = "var";
64824
64833
  TAG_NAMES["WBR"] = "wbr";
64825
64834
  TAG_NAMES["XMP"] = "xmp";
64826
- })(TAG_NAMES = TAG_NAMES || (TAG_NAMES = {}));
64835
+ })(TAG_NAMES || (TAG_NAMES = {}));
64827
64836
  /**
64828
64837
  * Tag IDs are numeric IDs for known tag names.
64829
64838
  *
@@ -64925,36 +64934,37 @@ var TAG_ID;
64925
64934
  TAG_ID[TAG_ID["RUBY"] = 91] = "RUBY";
64926
64935
  TAG_ID[TAG_ID["S"] = 92] = "S";
64927
64936
  TAG_ID[TAG_ID["SCRIPT"] = 93] = "SCRIPT";
64928
- TAG_ID[TAG_ID["SECTION"] = 94] = "SECTION";
64929
- TAG_ID[TAG_ID["SELECT"] = 95] = "SELECT";
64930
- TAG_ID[TAG_ID["SOURCE"] = 96] = "SOURCE";
64931
- TAG_ID[TAG_ID["SMALL"] = 97] = "SMALL";
64932
- TAG_ID[TAG_ID["SPAN"] = 98] = "SPAN";
64933
- TAG_ID[TAG_ID["STRIKE"] = 99] = "STRIKE";
64934
- TAG_ID[TAG_ID["STRONG"] = 100] = "STRONG";
64935
- TAG_ID[TAG_ID["STYLE"] = 101] = "STYLE";
64936
- TAG_ID[TAG_ID["SUB"] = 102] = "SUB";
64937
- TAG_ID[TAG_ID["SUMMARY"] = 103] = "SUMMARY";
64938
- TAG_ID[TAG_ID["SUP"] = 104] = "SUP";
64939
- TAG_ID[TAG_ID["TABLE"] = 105] = "TABLE";
64940
- TAG_ID[TAG_ID["TBODY"] = 106] = "TBODY";
64941
- TAG_ID[TAG_ID["TEMPLATE"] = 107] = "TEMPLATE";
64942
- TAG_ID[TAG_ID["TEXTAREA"] = 108] = "TEXTAREA";
64943
- TAG_ID[TAG_ID["TFOOT"] = 109] = "TFOOT";
64944
- TAG_ID[TAG_ID["TD"] = 110] = "TD";
64945
- TAG_ID[TAG_ID["TH"] = 111] = "TH";
64946
- TAG_ID[TAG_ID["THEAD"] = 112] = "THEAD";
64947
- TAG_ID[TAG_ID["TITLE"] = 113] = "TITLE";
64948
- TAG_ID[TAG_ID["TR"] = 114] = "TR";
64949
- TAG_ID[TAG_ID["TRACK"] = 115] = "TRACK";
64950
- TAG_ID[TAG_ID["TT"] = 116] = "TT";
64951
- TAG_ID[TAG_ID["U"] = 117] = "U";
64952
- TAG_ID[TAG_ID["UL"] = 118] = "UL";
64953
- TAG_ID[TAG_ID["SVG"] = 119] = "SVG";
64954
- TAG_ID[TAG_ID["VAR"] = 120] = "VAR";
64955
- TAG_ID[TAG_ID["WBR"] = 121] = "WBR";
64956
- TAG_ID[TAG_ID["XMP"] = 122] = "XMP";
64957
- })(TAG_ID = TAG_ID || (TAG_ID = {}));
64937
+ TAG_ID[TAG_ID["SEARCH"] = 94] = "SEARCH";
64938
+ TAG_ID[TAG_ID["SECTION"] = 95] = "SECTION";
64939
+ TAG_ID[TAG_ID["SELECT"] = 96] = "SELECT";
64940
+ TAG_ID[TAG_ID["SOURCE"] = 97] = "SOURCE";
64941
+ TAG_ID[TAG_ID["SMALL"] = 98] = "SMALL";
64942
+ TAG_ID[TAG_ID["SPAN"] = 99] = "SPAN";
64943
+ TAG_ID[TAG_ID["STRIKE"] = 100] = "STRIKE";
64944
+ TAG_ID[TAG_ID["STRONG"] = 101] = "STRONG";
64945
+ TAG_ID[TAG_ID["STYLE"] = 102] = "STYLE";
64946
+ TAG_ID[TAG_ID["SUB"] = 103] = "SUB";
64947
+ TAG_ID[TAG_ID["SUMMARY"] = 104] = "SUMMARY";
64948
+ TAG_ID[TAG_ID["SUP"] = 105] = "SUP";
64949
+ TAG_ID[TAG_ID["TABLE"] = 106] = "TABLE";
64950
+ TAG_ID[TAG_ID["TBODY"] = 107] = "TBODY";
64951
+ TAG_ID[TAG_ID["TEMPLATE"] = 108] = "TEMPLATE";
64952
+ TAG_ID[TAG_ID["TEXTAREA"] = 109] = "TEXTAREA";
64953
+ TAG_ID[TAG_ID["TFOOT"] = 110] = "TFOOT";
64954
+ TAG_ID[TAG_ID["TD"] = 111] = "TD";
64955
+ TAG_ID[TAG_ID["TH"] = 112] = "TH";
64956
+ TAG_ID[TAG_ID["THEAD"] = 113] = "THEAD";
64957
+ TAG_ID[TAG_ID["TITLE"] = 114] = "TITLE";
64958
+ TAG_ID[TAG_ID["TR"] = 115] = "TR";
64959
+ TAG_ID[TAG_ID["TRACK"] = 116] = "TRACK";
64960
+ TAG_ID[TAG_ID["TT"] = 117] = "TT";
64961
+ TAG_ID[TAG_ID["U"] = 118] = "U";
64962
+ TAG_ID[TAG_ID["UL"] = 119] = "UL";
64963
+ TAG_ID[TAG_ID["SVG"] = 120] = "SVG";
64964
+ TAG_ID[TAG_ID["VAR"] = 121] = "VAR";
64965
+ TAG_ID[TAG_ID["WBR"] = 122] = "WBR";
64966
+ TAG_ID[TAG_ID["XMP"] = 123] = "XMP";
64967
+ })(TAG_ID || (TAG_ID = {}));
64958
64968
  const TAG_NAME_TO_ID = new Map([
64959
64969
  [TAG_NAMES.A, TAG_ID.A],
64960
64970
  [TAG_NAMES.ADDRESS, TAG_ID.ADDRESS],
@@ -65049,6 +65059,7 @@ const TAG_NAME_TO_ID = new Map([
65049
65059
  [TAG_NAMES.RUBY, TAG_ID.RUBY],
65050
65060
  [TAG_NAMES.S, TAG_ID.S],
65051
65061
  [TAG_NAMES.SCRIPT, TAG_ID.SCRIPT],
65062
+ [TAG_NAMES.SEARCH, TAG_ID.SEARCH],
65052
65063
  [TAG_NAMES.SECTION, TAG_ID.SECTION],
65053
65064
  [TAG_NAMES.SELECT, TAG_ID.SELECT],
65054
65065
  [TAG_NAMES.SOURCE, TAG_ID.SOURCE],
@@ -65174,9 +65185,7 @@ const SPECIAL_ELEMENTS = {
65174
65185
  [html_NS.XML]: new Set(),
65175
65186
  [html_NS.XMLNS]: new Set(),
65176
65187
  };
65177
- function isNumberedHeader(tn) {
65178
- return tn === html_$.H1 || tn === html_$.H2 || tn === html_$.H3 || tn === html_$.H4 || tn === html_$.H5 || tn === html_$.H6;
65179
- }
65188
+ const NUMBERED_HEADERS = new Set([html_$.H1, html_$.H2, html_$.H3, html_$.H4, html_$.H5, html_$.H6]);
65180
65189
  const UNESCAPED_TEXT = new Set([
65181
65190
  TAG_NAMES.STYLE,
65182
65191
  TAG_NAMES.SCRIPT,
@@ -65189,7 +65198,7 @@ const UNESCAPED_TEXT = new Set([
65189
65198
  function html_hasUnescapedText(tn, scriptingEnabled) {
65190
65199
  return UNESCAPED_TEXT.has(tn) || (scriptingEnabled && tn === TAG_NAMES.NOSCRIPT);
65191
65200
  }
65192
- //# sourceMappingURL=html.js.map
65201
+
65193
65202
  ;// ./node_modules/parse5/dist/tokenizer/index.js
65194
65203
 
65195
65204
 
@@ -65197,36 +65206,6 @@ function html_hasUnescapedText(tn, scriptingEnabled) {
65197
65206
 
65198
65207
 
65199
65208
 
65200
- //C1 Unicode control character reference replacements
65201
- const C1_CONTROLS_REFERENCE_REPLACEMENTS = new Map([
65202
- [0x80, 8364],
65203
- [0x82, 8218],
65204
- [0x83, 402],
65205
- [0x84, 8222],
65206
- [0x85, 8230],
65207
- [0x86, 8224],
65208
- [0x87, 8225],
65209
- [0x88, 710],
65210
- [0x89, 8240],
65211
- [0x8a, 352],
65212
- [0x8b, 8249],
65213
- [0x8c, 338],
65214
- [0x8e, 381],
65215
- [0x91, 8216],
65216
- [0x92, 8217],
65217
- [0x93, 8220],
65218
- [0x94, 8221],
65219
- [0x95, 8226],
65220
- [0x96, 8211],
65221
- [0x97, 8212],
65222
- [0x98, 732],
65223
- [0x99, 8482],
65224
- [0x9a, 353],
65225
- [0x9b, 8250],
65226
- [0x9c, 339],
65227
- [0x9e, 382],
65228
- [0x9f, 376],
65229
- ]);
65230
65209
  //States
65231
65210
  var State;
65232
65211
  (function (State) {
@@ -65302,13 +65281,7 @@ var State;
65302
65281
  State[State["CDATA_SECTION_BRACKET"] = 69] = "CDATA_SECTION_BRACKET";
65303
65282
  State[State["CDATA_SECTION_END"] = 70] = "CDATA_SECTION_END";
65304
65283
  State[State["CHARACTER_REFERENCE"] = 71] = "CHARACTER_REFERENCE";
65305
- State[State["NAMED_CHARACTER_REFERENCE"] = 72] = "NAMED_CHARACTER_REFERENCE";
65306
- State[State["AMBIGUOUS_AMPERSAND"] = 73] = "AMBIGUOUS_AMPERSAND";
65307
- State[State["NUMERIC_CHARACTER_REFERENCE"] = 74] = "NUMERIC_CHARACTER_REFERENCE";
65308
- State[State["HEXADEMICAL_CHARACTER_REFERENCE_START"] = 75] = "HEXADEMICAL_CHARACTER_REFERENCE_START";
65309
- State[State["HEXADEMICAL_CHARACTER_REFERENCE"] = 76] = "HEXADEMICAL_CHARACTER_REFERENCE";
65310
- State[State["DECIMAL_CHARACTER_REFERENCE"] = 77] = "DECIMAL_CHARACTER_REFERENCE";
65311
- State[State["NUMERIC_CHARACTER_REFERENCE_END"] = 78] = "NUMERIC_CHARACTER_REFERENCE_END";
65284
+ State[State["AMBIGUOUS_AMPERSAND"] = 72] = "AMBIGUOUS_AMPERSAND";
65312
65285
  })(State || (State = {}));
65313
65286
  //Tokenizer initial states for different modes
65314
65287
  const TokenizerMode = {
@@ -65338,27 +65311,33 @@ function isAsciiLetter(cp) {
65338
65311
  function tokenizer_isAsciiAlphaNumeric(cp) {
65339
65312
  return isAsciiLetter(cp) || isAsciiDigit(cp);
65340
65313
  }
65341
- function isAsciiUpperHexDigit(cp) {
65342
- return cp >= CODE_POINTS.LATIN_CAPITAL_A && cp <= CODE_POINTS.LATIN_CAPITAL_F;
65343
- }
65344
- function isAsciiLowerHexDigit(cp) {
65345
- return cp >= CODE_POINTS.LATIN_SMALL_A && cp <= CODE_POINTS.LATIN_SMALL_F;
65346
- }
65347
- function isAsciiHexDigit(cp) {
65348
- return isAsciiDigit(cp) || isAsciiUpperHexDigit(cp) || isAsciiLowerHexDigit(cp);
65349
- }
65350
65314
  function toAsciiLower(cp) {
65351
65315
  return cp + 32;
65352
65316
  }
65353
65317
  function isWhitespace(cp) {
65354
65318
  return cp === CODE_POINTS.SPACE || cp === CODE_POINTS.LINE_FEED || cp === CODE_POINTS.TABULATION || cp === CODE_POINTS.FORM_FEED;
65355
65319
  }
65356
- function tokenizer_isEntityInAttributeInvalidEnd(nextCp) {
65357
- return nextCp === CODE_POINTS.EQUALS_SIGN || tokenizer_isAsciiAlphaNumeric(nextCp);
65358
- }
65359
65320
  function isScriptDataDoubleEscapeSequenceEnd(cp) {
65360
65321
  return isWhitespace(cp) || cp === CODE_POINTS.SOLIDUS || cp === CODE_POINTS.GREATER_THAN_SIGN;
65361
65322
  }
65323
+ function getErrorForNumericCharacterReference(code) {
65324
+ if (code === CODE_POINTS.NULL) {
65325
+ return ERR.nullCharacterReference;
65326
+ }
65327
+ else if (code > 1114111) {
65328
+ return ERR.characterReferenceOutsideUnicodeRange;
65329
+ }
65330
+ else if (isSurrogate(code)) {
65331
+ return ERR.surrogateCharacterReference;
65332
+ }
65333
+ else if (isUndefinedCodePoint(code)) {
65334
+ return ERR.noncharacterCharacterReference;
65335
+ }
65336
+ else if (isControlCodePoint(code) || code === CODE_POINTS.CARRIAGE_RETURN) {
65337
+ return ERR.controlCharacterReference;
65338
+ }
65339
+ return null;
65340
+ }
65362
65341
  //Tokenizer
65363
65342
  class Tokenizer {
65364
65343
  constructor(options, handler) {
@@ -65378,18 +65357,38 @@ class Tokenizer {
65378
65357
  this.active = false;
65379
65358
  this.state = State.DATA;
65380
65359
  this.returnState = State.DATA;
65381
- this.charRefCode = -1;
65360
+ this.entityStartPos = 0;
65382
65361
  this.consumedAfterSnapshot = -1;
65383
65362
  this.currentCharacterToken = null;
65384
65363
  this.currentToken = null;
65385
65364
  this.currentAttr = { name: '', value: '' };
65386
65365
  this.preprocessor = new Preprocessor(handler);
65387
65366
  this.currentLocation = this.getCurrentLocation(-1);
65367
+ this.entityDecoder = new EntityDecoder(decode_data_html_htmlDecodeTree, (cp, consumed) => {
65368
+ // Note: Set `pos` _before_ flushing, as flushing might drop
65369
+ // the current chunk and invalidate `entityStartPos`.
65370
+ this.preprocessor.pos = this.entityStartPos + consumed - 1;
65371
+ this._flushCodePointConsumedAsCharacterReference(cp);
65372
+ }, handler.onParseError
65373
+ ? {
65374
+ missingSemicolonAfterCharacterReference: () => {
65375
+ this._err(ERR.missingSemicolonAfterCharacterReference, 1);
65376
+ },
65377
+ absenceOfDigitsInNumericCharacterReference: (consumed) => {
65378
+ this._err(ERR.absenceOfDigitsInNumericCharacterReference, this.entityStartPos - this.preprocessor.pos + consumed);
65379
+ },
65380
+ validateNumericCharacterReference: (code) => {
65381
+ const error = getErrorForNumericCharacterReference(code);
65382
+ if (error)
65383
+ this._err(error, 1);
65384
+ },
65385
+ }
65386
+ : undefined);
65388
65387
  }
65389
65388
  //Errors
65390
- _err(code) {
65389
+ _err(code, cpOffset = 0) {
65391
65390
  var _a, _b;
65392
- (_b = (_a = this.handler).onParseError) === null || _b === void 0 ? void 0 : _b.call(_a, this.preprocessor.getError(code));
65391
+ (_b = (_a = this.handler).onParseError) === null || _b === void 0 ? void 0 : _b.call(_a, this.preprocessor.getError(code, cpOffset));
65393
65392
  }
65394
65393
  // NOTE: `offset` may never run across line boundaries.
65395
65394
  getCurrentLocation(offset) {
@@ -65451,7 +65450,8 @@ class Tokenizer {
65451
65450
  //Hibernation
65452
65451
  _ensureHibernation() {
65453
65452
  if (this.preprocessor.endOfChunkHit) {
65454
- this._unconsume(this.consumedAfterSnapshot);
65453
+ this.preprocessor.retreat(this.consumedAfterSnapshot);
65454
+ this.consumedAfterSnapshot = 0;
65455
65455
  this.active = false;
65456
65456
  return true;
65457
65457
  }
@@ -65462,14 +65462,6 @@ class Tokenizer {
65462
65462
  this.consumedAfterSnapshot++;
65463
65463
  return this.preprocessor.advance();
65464
65464
  }
65465
- _unconsume(count) {
65466
- this.consumedAfterSnapshot -= count;
65467
- this.preprocessor.retreat(count);
65468
- }
65469
- _reconsumeInState(state, cp) {
65470
- this.state = state;
65471
- this._callState(cp);
65472
- }
65473
65465
  _advanceBy(count) {
65474
65466
  this.consumedAfterSnapshot += count;
65475
65467
  for (let i = 0; i < count; i++) {
@@ -65641,7 +65633,7 @@ class Tokenizer {
65641
65633
  this.active = false;
65642
65634
  }
65643
65635
  //Characters emission
65644
- //OPTIMIZATION: specification uses only one type of character tokens (one token per character).
65636
+ //OPTIMIZATION: The specification uses only one type of character token (one token per character).
65645
65637
  //This causes a huge memory overhead and a lot of unnecessary parser loops. parse5 uses 3 groups of characters.
65646
65638
  //If we have a sequence of characters that belong to the same group, the parser can process it
65647
65639
  //as a single solid character token.
@@ -65651,15 +65643,15 @@ class Tokenizer {
65651
65643
  //3)TokenType.CHARACTER - any character sequence which don't belong to groups 1 and 2 (e.g. 'abcdef1234@@#$%^')
65652
65644
  _appendCharToCurrentCharacterToken(type, ch) {
65653
65645
  if (this.currentCharacterToken) {
65654
- if (this.currentCharacterToken.type !== type) {
65646
+ if (this.currentCharacterToken.type === type) {
65647
+ this.currentCharacterToken.chars += ch;
65648
+ return;
65649
+ }
65650
+ else {
65655
65651
  this.currentLocation = this.getCurrentLocation(0);
65656
65652
  this._emitCurrentCharacterToken(this.currentLocation);
65657
65653
  this.preprocessor.dropParsedChunk();
65658
65654
  }
65659
- else {
65660
- this.currentCharacterToken.chars += ch;
65661
- return;
65662
- }
65663
65655
  }
65664
65656
  this._createCharacterToken(type, ch);
65665
65657
  }
@@ -65677,59 +65669,11 @@ class Tokenizer {
65677
65669
  this._appendCharToCurrentCharacterToken(token_TokenType.CHARACTER, ch);
65678
65670
  }
65679
65671
  // Character reference helpers
65680
- _matchNamedCharacterReference(cp) {
65681
- let result = null;
65682
- let excess = 0;
65683
- let withoutSemicolon = false;
65684
- for (let i = 0, current = decode_data_html[0]; i >= 0; cp = this._consume()) {
65685
- i = determineBranch(decode_data_html, current, i + 1, cp);
65686
- if (i < 0)
65687
- break;
65688
- excess += 1;
65689
- current = decode_data_html[i];
65690
- const masked = current & BinTrieFlags.VALUE_LENGTH;
65691
- // If the branch is a value, store it and continue
65692
- if (masked) {
65693
- // The mask is the number of bytes of the value, including the current byte.
65694
- const valueLength = (masked >> 14) - 1;
65695
- // Attribute values that aren't terminated properly aren't parsed, and shouldn't lead to a parser error.
65696
- // See the example in https://html.spec.whatwg.org/multipage/parsing.html#named-character-reference-state
65697
- if (cp !== CODE_POINTS.SEMICOLON &&
65698
- this._isCharacterReferenceInAttribute() &&
65699
- tokenizer_isEntityInAttributeInvalidEnd(this.preprocessor.peek(1))) {
65700
- //NOTE: we don't flush all consumed code points here, and instead switch back to the original state after
65701
- //emitting an ampersand. This is fine, as alphanumeric characters won't be parsed differently in attributes.
65702
- result = [CODE_POINTS.AMPERSAND];
65703
- // Skip over the value.
65704
- i += valueLength;
65705
- }
65706
- else {
65707
- // If this is a surrogate pair, consume the next two bytes.
65708
- result =
65709
- valueLength === 0
65710
- ? [decode_data_html[i] & ~BinTrieFlags.VALUE_LENGTH]
65711
- : valueLength === 1
65712
- ? [decode_data_html[++i]]
65713
- : [decode_data_html[++i], decode_data_html[++i]];
65714
- excess = 0;
65715
- withoutSemicolon = cp !== CODE_POINTS.SEMICOLON;
65716
- }
65717
- if (valueLength === 0) {
65718
- // If the value is zero-length, we're done.
65719
- this._consume();
65720
- break;
65721
- }
65722
- }
65723
- }
65724
- this._unconsume(excess);
65725
- if (withoutSemicolon && !this.preprocessor.endOfChunkHit) {
65726
- this._err(ERR.missingSemicolonAfterCharacterReference);
65727
- }
65728
- // We want to emit the error above on the code point after the entity.
65729
- // We always consume one code point too many in the loop, and we wait to
65730
- // unconsume it until after the error is emitted.
65731
- this._unconsume(1);
65732
- return result;
65672
+ _startCharacterReference() {
65673
+ this.returnState = this.state;
65674
+ this.state = State.CHARACTER_REFERENCE;
65675
+ this.entityStartPos = this.preprocessor.pos;
65676
+ this.entityDecoder.startEntity(this._isCharacterReferenceInAttribute() ? decode_DecodingMode.Attribute : decode_DecodingMode.Legacy);
65733
65677
  }
65734
65678
  _isCharacterReferenceInAttribute() {
65735
65679
  return (this.returnState === State.ATTRIBUTE_VALUE_DOUBLE_QUOTED ||
@@ -66032,37 +65976,13 @@ class Tokenizer {
66032
65976
  break;
66033
65977
  }
66034
65978
  case State.CHARACTER_REFERENCE: {
66035
- this._stateCharacterReference(cp);
66036
- break;
66037
- }
66038
- case State.NAMED_CHARACTER_REFERENCE: {
66039
- this._stateNamedCharacterReference(cp);
65979
+ this._stateCharacterReference();
66040
65980
  break;
66041
65981
  }
66042
65982
  case State.AMBIGUOUS_AMPERSAND: {
66043
65983
  this._stateAmbiguousAmpersand(cp);
66044
65984
  break;
66045
65985
  }
66046
- case State.NUMERIC_CHARACTER_REFERENCE: {
66047
- this._stateNumericCharacterReference(cp);
66048
- break;
66049
- }
66050
- case State.HEXADEMICAL_CHARACTER_REFERENCE_START: {
66051
- this._stateHexademicalCharacterReferenceStart(cp);
66052
- break;
66053
- }
66054
- case State.HEXADEMICAL_CHARACTER_REFERENCE: {
66055
- this._stateHexademicalCharacterReference(cp);
66056
- break;
66057
- }
66058
- case State.DECIMAL_CHARACTER_REFERENCE: {
66059
- this._stateDecimalCharacterReference(cp);
66060
- break;
66061
- }
66062
- case State.NUMERIC_CHARACTER_REFERENCE_END: {
66063
- this._stateNumericCharacterReferenceEnd(cp);
66064
- break;
66065
- }
66066
65986
  default: {
66067
65987
  throw new Error('Unknown state');
66068
65988
  }
@@ -66078,8 +65998,7 @@ class Tokenizer {
66078
65998
  break;
66079
65999
  }
66080
66000
  case CODE_POINTS.AMPERSAND: {
66081
- this.returnState = State.DATA;
66082
- this.state = State.CHARACTER_REFERENCE;
66001
+ this._startCharacterReference();
66083
66002
  break;
66084
66003
  }
66085
66004
  case CODE_POINTS.NULL: {
@@ -66101,8 +66020,7 @@ class Tokenizer {
66101
66020
  _stateRcdata(cp) {
66102
66021
  switch (cp) {
66103
66022
  case CODE_POINTS.AMPERSAND: {
66104
- this.returnState = State.RCDATA;
66105
- this.state = State.CHARACTER_REFERENCE;
66023
+ this._startCharacterReference();
66106
66024
  break;
66107
66025
  }
66108
66026
  case CODE_POINTS.LESS_THAN_SIGN: {
@@ -66871,8 +66789,7 @@ class Tokenizer {
66871
66789
  break;
66872
66790
  }
66873
66791
  case CODE_POINTS.AMPERSAND: {
66874
- this.returnState = State.ATTRIBUTE_VALUE_DOUBLE_QUOTED;
66875
- this.state = State.CHARACTER_REFERENCE;
66792
+ this._startCharacterReference();
66876
66793
  break;
66877
66794
  }
66878
66795
  case CODE_POINTS.NULL: {
@@ -66899,8 +66816,7 @@ class Tokenizer {
66899
66816
  break;
66900
66817
  }
66901
66818
  case CODE_POINTS.AMPERSAND: {
66902
- this.returnState = State.ATTRIBUTE_VALUE_SINGLE_QUOTED;
66903
- this.state = State.CHARACTER_REFERENCE;
66819
+ this._startCharacterReference();
66904
66820
  break;
66905
66821
  }
66906
66822
  case CODE_POINTS.NULL: {
@@ -66931,8 +66847,7 @@ class Tokenizer {
66931
66847
  break;
66932
66848
  }
66933
66849
  case CODE_POINTS.AMPERSAND: {
66934
- this.returnState = State.ATTRIBUTE_VALUE_UNQUOTED;
66935
- this.state = State.CHARACTER_REFERENCE;
66850
+ this._startCharacterReference();
66936
66851
  break;
66937
66852
  }
66938
66853
  case CODE_POINTS.GREATER_THAN_SIGN: {
@@ -67949,37 +67864,35 @@ class Tokenizer {
67949
67864
  }
67950
67865
  // Character reference state
67951
67866
  //------------------------------------------------------------------
67952
- _stateCharacterReference(cp) {
67953
- if (cp === CODE_POINTS.NUMBER_SIGN) {
67954
- this.state = State.NUMERIC_CHARACTER_REFERENCE;
67955
- }
67956
- else if (tokenizer_isAsciiAlphaNumeric(cp)) {
67957
- this.state = State.NAMED_CHARACTER_REFERENCE;
67958
- this._stateNamedCharacterReference(cp);
67867
+ _stateCharacterReference() {
67868
+ let length = this.entityDecoder.write(this.preprocessor.html, this.preprocessor.pos);
67869
+ if (length < 0) {
67870
+ if (this.preprocessor.lastChunkWritten) {
67871
+ length = this.entityDecoder.end();
67872
+ }
67873
+ else {
67874
+ // Wait for the rest of the entity.
67875
+ this.active = false;
67876
+ // Mark the entire buffer as read.
67877
+ this.preprocessor.pos = this.preprocessor.html.length - 1;
67878
+ this.consumedAfterSnapshot = 0;
67879
+ this.preprocessor.endOfChunkHit = true;
67880
+ return;
67881
+ }
67959
67882
  }
67960
- else {
67883
+ if (length === 0) {
67884
+ // This was not a valid entity. Go back to the beginning, and
67885
+ // figure out what to do.
67886
+ this.preprocessor.pos = this.entityStartPos;
67961
67887
  this._flushCodePointConsumedAsCharacterReference(CODE_POINTS.AMPERSAND);
67962
- this._reconsumeInState(this.returnState, cp);
67963
- }
67964
- }
67965
- // Named character reference state
67966
- //------------------------------------------------------------------
67967
- _stateNamedCharacterReference(cp) {
67968
- const matchResult = this._matchNamedCharacterReference(cp);
67969
- //NOTE: Matching can be abrupted by hibernation. In that case, match
67970
- //results are no longer valid and we will need to start over.
67971
- if (this._ensureHibernation()) {
67972
- // Stay in the state, try again.
67973
- }
67974
- else if (matchResult) {
67975
- for (let i = 0; i < matchResult.length; i++) {
67976
- this._flushCodePointConsumedAsCharacterReference(matchResult[i]);
67977
- }
67978
- this.state = this.returnState;
67888
+ this.state =
67889
+ !this._isCharacterReferenceInAttribute() && tokenizer_isAsciiAlphaNumeric(this.preprocessor.peek(1))
67890
+ ? State.AMBIGUOUS_AMPERSAND
67891
+ : this.returnState;
67979
67892
  }
67980
67893
  else {
67981
- this._flushCodePointConsumedAsCharacterReference(CODE_POINTS.AMPERSAND);
67982
- this.state = State.AMBIGUOUS_AMPERSAND;
67894
+ // We successfully parsed an entity. Switch to the return state.
67895
+ this.state = this.returnState;
67983
67896
  }
67984
67897
  }
67985
67898
  // Ambiguos ampersand state
@@ -67992,109 +67905,12 @@ class Tokenizer {
67992
67905
  if (cp === CODE_POINTS.SEMICOLON) {
67993
67906
  this._err(ERR.unknownNamedCharacterReference);
67994
67907
  }
67995
- this._reconsumeInState(this.returnState, cp);
67996
- }
67997
- }
67998
- // Numeric character reference state
67999
- //------------------------------------------------------------------
68000
- _stateNumericCharacterReference(cp) {
68001
- this.charRefCode = 0;
68002
- if (cp === CODE_POINTS.LATIN_SMALL_X || cp === CODE_POINTS.LATIN_CAPITAL_X) {
68003
- this.state = State.HEXADEMICAL_CHARACTER_REFERENCE_START;
68004
- }
68005
- // Inlined decimal character reference start state
68006
- else if (isAsciiDigit(cp)) {
68007
- this.state = State.DECIMAL_CHARACTER_REFERENCE;
68008
- this._stateDecimalCharacterReference(cp);
68009
- }
68010
- else {
68011
- this._err(ERR.absenceOfDigitsInNumericCharacterReference);
68012
- this._flushCodePointConsumedAsCharacterReference(CODE_POINTS.AMPERSAND);
68013
- this._flushCodePointConsumedAsCharacterReference(CODE_POINTS.NUMBER_SIGN);
68014
- this._reconsumeInState(this.returnState, cp);
68015
- }
68016
- }
68017
- // Hexademical character reference start state
68018
- //------------------------------------------------------------------
68019
- _stateHexademicalCharacterReferenceStart(cp) {
68020
- if (isAsciiHexDigit(cp)) {
68021
- this.state = State.HEXADEMICAL_CHARACTER_REFERENCE;
68022
- this._stateHexademicalCharacterReference(cp);
68023
- }
68024
- else {
68025
- this._err(ERR.absenceOfDigitsInNumericCharacterReference);
68026
- this._flushCodePointConsumedAsCharacterReference(CODE_POINTS.AMPERSAND);
68027
- this._flushCodePointConsumedAsCharacterReference(CODE_POINTS.NUMBER_SIGN);
68028
- this._unconsume(2);
68029
67908
  this.state = this.returnState;
67909
+ this._callState(cp);
68030
67910
  }
68031
67911
  }
68032
- // Hexademical character reference state
68033
- //------------------------------------------------------------------
68034
- _stateHexademicalCharacterReference(cp) {
68035
- if (isAsciiUpperHexDigit(cp)) {
68036
- this.charRefCode = this.charRefCode * 16 + cp - 0x37;
68037
- }
68038
- else if (isAsciiLowerHexDigit(cp)) {
68039
- this.charRefCode = this.charRefCode * 16 + cp - 0x57;
68040
- }
68041
- else if (isAsciiDigit(cp)) {
68042
- this.charRefCode = this.charRefCode * 16 + cp - 0x30;
68043
- }
68044
- else if (cp === CODE_POINTS.SEMICOLON) {
68045
- this.state = State.NUMERIC_CHARACTER_REFERENCE_END;
68046
- }
68047
- else {
68048
- this._err(ERR.missingSemicolonAfterCharacterReference);
68049
- this.state = State.NUMERIC_CHARACTER_REFERENCE_END;
68050
- this._stateNumericCharacterReferenceEnd(cp);
68051
- }
68052
- }
68053
- // Decimal character reference state
68054
- //------------------------------------------------------------------
68055
- _stateDecimalCharacterReference(cp) {
68056
- if (isAsciiDigit(cp)) {
68057
- this.charRefCode = this.charRefCode * 10 + cp - 0x30;
68058
- }
68059
- else if (cp === CODE_POINTS.SEMICOLON) {
68060
- this.state = State.NUMERIC_CHARACTER_REFERENCE_END;
68061
- }
68062
- else {
68063
- this._err(ERR.missingSemicolonAfterCharacterReference);
68064
- this.state = State.NUMERIC_CHARACTER_REFERENCE_END;
68065
- this._stateNumericCharacterReferenceEnd(cp);
68066
- }
68067
- }
68068
- // Numeric character reference end state
68069
- //------------------------------------------------------------------
68070
- _stateNumericCharacterReferenceEnd(cp) {
68071
- if (this.charRefCode === CODE_POINTS.NULL) {
68072
- this._err(ERR.nullCharacterReference);
68073
- this.charRefCode = CODE_POINTS.REPLACEMENT_CHARACTER;
68074
- }
68075
- else if (this.charRefCode > 1114111) {
68076
- this._err(ERR.characterReferenceOutsideUnicodeRange);
68077
- this.charRefCode = CODE_POINTS.REPLACEMENT_CHARACTER;
68078
- }
68079
- else if (isSurrogate(this.charRefCode)) {
68080
- this._err(ERR.surrogateCharacterReference);
68081
- this.charRefCode = CODE_POINTS.REPLACEMENT_CHARACTER;
68082
- }
68083
- else if (isUndefinedCodePoint(this.charRefCode)) {
68084
- this._err(ERR.noncharacterCharacterReference);
68085
- }
68086
- else if (isControlCodePoint(this.charRefCode) || this.charRefCode === CODE_POINTS.CARRIAGE_RETURN) {
68087
- this._err(ERR.controlCharacterReference);
68088
- const replacement = C1_CONTROLS_REFERENCE_REPLACEMENTS.get(this.charRefCode);
68089
- if (replacement !== undefined) {
68090
- this.charRefCode = replacement;
68091
- }
68092
- }
68093
- this._flushCodePointConsumedAsCharacterReference(this.charRefCode);
68094
- this._reconsumeInState(this.returnState, cp);
68095
- }
68096
67912
  }
68097
- //# sourceMappingURL=index.js.map
67913
+
68098
67914
  ;// ./node_modules/parse5/dist/parser/open-element-stack.js
68099
67915
 
68100
67916
  //Element utils
@@ -68110,31 +67926,25 @@ const IMPLICIT_END_TAG_REQUIRED_THOROUGHLY = new Set([
68110
67926
  TAG_ID.THEAD,
68111
67927
  TAG_ID.TR,
68112
67928
  ]);
68113
- const SCOPING_ELEMENT_NS = new Map([
68114
- [TAG_ID.APPLET, html_NS.HTML],
68115
- [TAG_ID.CAPTION, html_NS.HTML],
68116
- [TAG_ID.HTML, html_NS.HTML],
68117
- [TAG_ID.MARQUEE, html_NS.HTML],
68118
- [TAG_ID.OBJECT, html_NS.HTML],
68119
- [TAG_ID.TABLE, html_NS.HTML],
68120
- [TAG_ID.TD, html_NS.HTML],
68121
- [TAG_ID.TEMPLATE, html_NS.HTML],
68122
- [TAG_ID.TH, html_NS.HTML],
68123
- [TAG_ID.ANNOTATION_XML, html_NS.MATHML],
68124
- [TAG_ID.MI, html_NS.MATHML],
68125
- [TAG_ID.MN, html_NS.MATHML],
68126
- [TAG_ID.MO, html_NS.MATHML],
68127
- [TAG_ID.MS, html_NS.MATHML],
68128
- [TAG_ID.MTEXT, html_NS.MATHML],
68129
- [TAG_ID.DESC, html_NS.SVG],
68130
- [TAG_ID.FOREIGN_OBJECT, html_NS.SVG],
68131
- [TAG_ID.TITLE, html_NS.SVG],
67929
+ const SCOPING_ELEMENTS_HTML = new Set([
67930
+ TAG_ID.APPLET,
67931
+ TAG_ID.CAPTION,
67932
+ TAG_ID.HTML,
67933
+ TAG_ID.MARQUEE,
67934
+ TAG_ID.OBJECT,
67935
+ TAG_ID.TABLE,
67936
+ TAG_ID.TD,
67937
+ TAG_ID.TEMPLATE,
67938
+ TAG_ID.TH,
68132
67939
  ]);
68133
- const NAMED_HEADERS = [TAG_ID.H1, TAG_ID.H2, TAG_ID.H3, TAG_ID.H4, TAG_ID.H5, TAG_ID.H6];
68134
- const TABLE_ROW_CONTEXT = [TAG_ID.TR, TAG_ID.TEMPLATE, TAG_ID.HTML];
68135
- const TABLE_BODY_CONTEXT = [TAG_ID.TBODY, TAG_ID.TFOOT, TAG_ID.THEAD, TAG_ID.TEMPLATE, TAG_ID.HTML];
68136
- const TABLE_CONTEXT = [TAG_ID.TABLE, TAG_ID.TEMPLATE, TAG_ID.HTML];
68137
- const TABLE_CELLS = [TAG_ID.TD, TAG_ID.TH];
67940
+ const SCOPING_ELEMENTS_HTML_LIST = new Set([...SCOPING_ELEMENTS_HTML, TAG_ID.OL, TAG_ID.UL]);
67941
+ const SCOPING_ELEMENTS_HTML_BUTTON = new Set([...SCOPING_ELEMENTS_HTML, TAG_ID.BUTTON]);
67942
+ const SCOPING_ELEMENTS_MATHML = new Set([TAG_ID.ANNOTATION_XML, TAG_ID.MI, TAG_ID.MN, TAG_ID.MO, TAG_ID.MS, TAG_ID.MTEXT]);
67943
+ const SCOPING_ELEMENTS_SVG = new Set([TAG_ID.DESC, TAG_ID.FOREIGN_OBJECT, TAG_ID.TITLE]);
67944
+ const TABLE_ROW_CONTEXT = new Set([TAG_ID.TR, TAG_ID.TEMPLATE, TAG_ID.HTML]);
67945
+ const TABLE_BODY_CONTEXT = new Set([TAG_ID.TBODY, TAG_ID.TFOOT, TAG_ID.THEAD, TAG_ID.TEMPLATE, TAG_ID.HTML]);
67946
+ const TABLE_CONTEXT = new Set([TAG_ID.TABLE, TAG_ID.TEMPLATE, TAG_ID.HTML]);
67947
+ const TABLE_CELLS = new Set([TAG_ID.TD, TAG_ID.TH]);
68138
67948
  //Stack of open elements
68139
67949
  class OpenElementStack {
68140
67950
  get currentTmplContentOrNode() {
@@ -68198,14 +68008,16 @@ class OpenElementStack {
68198
68008
  if (insertionIdx === this.stackTop) {
68199
68009
  this._updateCurrentElement();
68200
68010
  }
68201
- this.handler.onItemPush(this.current, this.currentTagId, insertionIdx === this.stackTop);
68011
+ if (this.current && this.currentTagId !== undefined) {
68012
+ this.handler.onItemPush(this.current, this.currentTagId, insertionIdx === this.stackTop);
68013
+ }
68202
68014
  }
68203
68015
  popUntilTagNamePopped(tagName) {
68204
68016
  let targetIdx = this.stackTop + 1;
68205
68017
  do {
68206
68018
  targetIdx = this.tagIDs.lastIndexOf(tagName, targetIdx - 1);
68207
68019
  } while (targetIdx > 0 && this.treeAdapter.getNamespaceURI(this.items[targetIdx]) !== html_NS.HTML);
68208
- this.shortenToLength(targetIdx < 0 ? 0 : targetIdx);
68020
+ this.shortenToLength(Math.max(targetIdx, 0));
68209
68021
  }
68210
68022
  shortenToLength(idx) {
68211
68023
  while (this.stackTop >= idx) {
@@ -68220,14 +68032,14 @@ class OpenElementStack {
68220
68032
  }
68221
68033
  popUntilElementPopped(element) {
68222
68034
  const idx = this._indexOf(element);
68223
- this.shortenToLength(idx < 0 ? 0 : idx);
68035
+ this.shortenToLength(Math.max(idx, 0));
68224
68036
  }
68225
68037
  popUntilPopped(tagNames, targetNS) {
68226
68038
  const idx = this._indexOfTagNames(tagNames, targetNS);
68227
- this.shortenToLength(idx < 0 ? 0 : idx);
68039
+ this.shortenToLength(Math.max(idx, 0));
68228
68040
  }
68229
68041
  popUntilNumberedHeaderPopped() {
68230
- this.popUntilPopped(NAMED_HEADERS, html_NS.HTML);
68042
+ this.popUntilPopped(NUMBERED_HEADERS, html_NS.HTML);
68231
68043
  }
68232
68044
  popUntilTableCellPopped() {
68233
68045
  this.popUntilPopped(TABLE_CELLS, html_NS.HTML);
@@ -68240,7 +68052,7 @@ class OpenElementStack {
68240
68052
  }
68241
68053
  _indexOfTagNames(tagNames, namespace) {
68242
68054
  for (let i = this.stackTop; i >= 0; i--) {
68243
- if (tagNames.includes(this.tagIDs[i]) && this.treeAdapter.getNamespaceURI(this.items[i]) === namespace) {
68055
+ if (tagNames.has(this.tagIDs[i]) && this.treeAdapter.getNamespaceURI(this.items[i]) === namespace) {
68244
68056
  return i;
68245
68057
  }
68246
68058
  }
@@ -68290,124 +68102,141 @@ class OpenElementStack {
68290
68102
  return this.stackTop === 0 && this.tagIDs[0] === TAG_ID.HTML;
68291
68103
  }
68292
68104
  //Element in scope
68293
- hasInScope(tagName) {
68105
+ hasInDynamicScope(tagName, htmlScope) {
68294
68106
  for (let i = this.stackTop; i >= 0; i--) {
68295
68107
  const tn = this.tagIDs[i];
68296
- const ns = this.treeAdapter.getNamespaceURI(this.items[i]);
68297
- if (tn === tagName && ns === html_NS.HTML) {
68298
- return true;
68299
- }
68300
- if (SCOPING_ELEMENT_NS.get(tn) === ns) {
68301
- return false;
68108
+ switch (this.treeAdapter.getNamespaceURI(this.items[i])) {
68109
+ case html_NS.HTML: {
68110
+ if (tn === tagName)
68111
+ return true;
68112
+ if (htmlScope.has(tn))
68113
+ return false;
68114
+ break;
68115
+ }
68116
+ case html_NS.SVG: {
68117
+ if (SCOPING_ELEMENTS_SVG.has(tn))
68118
+ return false;
68119
+ break;
68120
+ }
68121
+ case html_NS.MATHML: {
68122
+ if (SCOPING_ELEMENTS_MATHML.has(tn))
68123
+ return false;
68124
+ break;
68125
+ }
68302
68126
  }
68303
68127
  }
68304
68128
  return true;
68305
68129
  }
68306
- hasNumberedHeaderInScope() {
68307
- for (let i = this.stackTop; i >= 0; i--) {
68308
- const tn = this.tagIDs[i];
68309
- const ns = this.treeAdapter.getNamespaceURI(this.items[i]);
68310
- if (isNumberedHeader(tn) && ns === html_NS.HTML) {
68311
- return true;
68312
- }
68313
- if (SCOPING_ELEMENT_NS.get(tn) === ns) {
68314
- return false;
68315
- }
68316
- }
68317
- return true;
68130
+ hasInScope(tagName) {
68131
+ return this.hasInDynamicScope(tagName, SCOPING_ELEMENTS_HTML);
68318
68132
  }
68319
68133
  hasInListItemScope(tagName) {
68320
- for (let i = this.stackTop; i >= 0; i--) {
68321
- const tn = this.tagIDs[i];
68322
- const ns = this.treeAdapter.getNamespaceURI(this.items[i]);
68323
- if (tn === tagName && ns === html_NS.HTML) {
68324
- return true;
68325
- }
68326
- if (((tn === TAG_ID.UL || tn === TAG_ID.OL) && ns === html_NS.HTML) || SCOPING_ELEMENT_NS.get(tn) === ns) {
68327
- return false;
68328
- }
68329
- }
68330
- return true;
68134
+ return this.hasInDynamicScope(tagName, SCOPING_ELEMENTS_HTML_LIST);
68331
68135
  }
68332
68136
  hasInButtonScope(tagName) {
68137
+ return this.hasInDynamicScope(tagName, SCOPING_ELEMENTS_HTML_BUTTON);
68138
+ }
68139
+ hasNumberedHeaderInScope() {
68333
68140
  for (let i = this.stackTop; i >= 0; i--) {
68334
68141
  const tn = this.tagIDs[i];
68335
- const ns = this.treeAdapter.getNamespaceURI(this.items[i]);
68336
- if (tn === tagName && ns === html_NS.HTML) {
68337
- return true;
68338
- }
68339
- if ((tn === TAG_ID.BUTTON && ns === html_NS.HTML) || SCOPING_ELEMENT_NS.get(tn) === ns) {
68340
- return false;
68142
+ switch (this.treeAdapter.getNamespaceURI(this.items[i])) {
68143
+ case html_NS.HTML: {
68144
+ if (NUMBERED_HEADERS.has(tn))
68145
+ return true;
68146
+ if (SCOPING_ELEMENTS_HTML.has(tn))
68147
+ return false;
68148
+ break;
68149
+ }
68150
+ case html_NS.SVG: {
68151
+ if (SCOPING_ELEMENTS_SVG.has(tn))
68152
+ return false;
68153
+ break;
68154
+ }
68155
+ case html_NS.MATHML: {
68156
+ if (SCOPING_ELEMENTS_MATHML.has(tn))
68157
+ return false;
68158
+ break;
68159
+ }
68341
68160
  }
68342
68161
  }
68343
68162
  return true;
68344
68163
  }
68345
68164
  hasInTableScope(tagName) {
68346
68165
  for (let i = this.stackTop; i >= 0; i--) {
68347
- const tn = this.tagIDs[i];
68348
- const ns = this.treeAdapter.getNamespaceURI(this.items[i]);
68349
- if (ns !== html_NS.HTML) {
68166
+ if (this.treeAdapter.getNamespaceURI(this.items[i]) !== html_NS.HTML) {
68350
68167
  continue;
68351
68168
  }
68352
- if (tn === tagName) {
68353
- return true;
68354
- }
68355
- if (tn === TAG_ID.TABLE || tn === TAG_ID.TEMPLATE || tn === TAG_ID.HTML) {
68356
- return false;
68169
+ switch (this.tagIDs[i]) {
68170
+ case tagName: {
68171
+ return true;
68172
+ }
68173
+ case TAG_ID.TABLE:
68174
+ case TAG_ID.HTML: {
68175
+ return false;
68176
+ }
68357
68177
  }
68358
68178
  }
68359
68179
  return true;
68360
68180
  }
68361
68181
  hasTableBodyContextInTableScope() {
68362
68182
  for (let i = this.stackTop; i >= 0; i--) {
68363
- const tn = this.tagIDs[i];
68364
- const ns = this.treeAdapter.getNamespaceURI(this.items[i]);
68365
- if (ns !== html_NS.HTML) {
68183
+ if (this.treeAdapter.getNamespaceURI(this.items[i]) !== html_NS.HTML) {
68366
68184
  continue;
68367
68185
  }
68368
- if (tn === TAG_ID.TBODY || tn === TAG_ID.THEAD || tn === TAG_ID.TFOOT) {
68369
- return true;
68370
- }
68371
- if (tn === TAG_ID.TABLE || tn === TAG_ID.HTML) {
68372
- return false;
68186
+ switch (this.tagIDs[i]) {
68187
+ case TAG_ID.TBODY:
68188
+ case TAG_ID.THEAD:
68189
+ case TAG_ID.TFOOT: {
68190
+ return true;
68191
+ }
68192
+ case TAG_ID.TABLE:
68193
+ case TAG_ID.HTML: {
68194
+ return false;
68195
+ }
68373
68196
  }
68374
68197
  }
68375
68198
  return true;
68376
68199
  }
68377
68200
  hasInSelectScope(tagName) {
68378
68201
  for (let i = this.stackTop; i >= 0; i--) {
68379
- const tn = this.tagIDs[i];
68380
- const ns = this.treeAdapter.getNamespaceURI(this.items[i]);
68381
- if (ns !== html_NS.HTML) {
68202
+ if (this.treeAdapter.getNamespaceURI(this.items[i]) !== html_NS.HTML) {
68382
68203
  continue;
68383
68204
  }
68384
- if (tn === tagName) {
68385
- return true;
68386
- }
68387
- if (tn !== TAG_ID.OPTION && tn !== TAG_ID.OPTGROUP) {
68388
- return false;
68205
+ switch (this.tagIDs[i]) {
68206
+ case tagName: {
68207
+ return true;
68208
+ }
68209
+ case TAG_ID.OPTION:
68210
+ case TAG_ID.OPTGROUP: {
68211
+ break;
68212
+ }
68213
+ default: {
68214
+ return false;
68215
+ }
68389
68216
  }
68390
68217
  }
68391
68218
  return true;
68392
68219
  }
68393
68220
  //Implied end tags
68394
68221
  generateImpliedEndTags() {
68395
- while (IMPLICIT_END_TAG_REQUIRED.has(this.currentTagId)) {
68222
+ while (this.currentTagId !== undefined && IMPLICIT_END_TAG_REQUIRED.has(this.currentTagId)) {
68396
68223
  this.pop();
68397
68224
  }
68398
68225
  }
68399
68226
  generateImpliedEndTagsThoroughly() {
68400
- while (IMPLICIT_END_TAG_REQUIRED_THOROUGHLY.has(this.currentTagId)) {
68227
+ while (this.currentTagId !== undefined && IMPLICIT_END_TAG_REQUIRED_THOROUGHLY.has(this.currentTagId)) {
68401
68228
  this.pop();
68402
68229
  }
68403
68230
  }
68404
68231
  generateImpliedEndTagsWithExclusion(exclusionId) {
68405
- while (this.currentTagId !== exclusionId && IMPLICIT_END_TAG_REQUIRED_THOROUGHLY.has(this.currentTagId)) {
68232
+ while (this.currentTagId !== undefined &&
68233
+ this.currentTagId !== exclusionId &&
68234
+ IMPLICIT_END_TAG_REQUIRED_THOROUGHLY.has(this.currentTagId)) {
68406
68235
  this.pop();
68407
68236
  }
68408
68237
  }
68409
68238
  }
68410
- //# sourceMappingURL=open-element-stack.js.map
68239
+
68411
68240
  ;// ./node_modules/parse5/dist/parser/formatting-element-list.js
68412
68241
  //Const
68413
68242
  const NOAH_ARK_CAPACITY = 3;
@@ -68415,7 +68244,7 @@ var EntryType;
68415
68244
  (function (EntryType) {
68416
68245
  EntryType[EntryType["Marker"] = 0] = "Marker";
68417
68246
  EntryType[EntryType["Element"] = 1] = "Element";
68418
- })(EntryType = EntryType || (EntryType = {}));
68247
+ })(EntryType || (EntryType = {}));
68419
68248
  const MARKER = { type: EntryType.Marker };
68420
68249
  //List of formatting elements
68421
68250
  class FormattingElementList {
@@ -68492,7 +68321,7 @@ class FormattingElementList {
68492
68321
  }
68493
68322
  removeEntry(entry) {
68494
68323
  const entryIndex = this.entries.indexOf(entry);
68495
- if (entryIndex >= 0) {
68324
+ if (entryIndex !== -1) {
68496
68325
  this.entries.splice(entryIndex, 1);
68497
68326
  }
68498
68327
  }
@@ -68503,11 +68332,11 @@ class FormattingElementList {
68503
68332
  */
68504
68333
  clearToLastMarker() {
68505
68334
  const markerIdx = this.entries.indexOf(MARKER);
68506
- if (markerIdx >= 0) {
68507
- this.entries.splice(0, markerIdx + 1);
68335
+ if (markerIdx === -1) {
68336
+ this.entries.length = 0;
68508
68337
  }
68509
68338
  else {
68510
- this.entries.length = 0;
68339
+ this.entries.splice(0, markerIdx + 1);
68511
68340
  }
68512
68341
  }
68513
68342
  //Search
@@ -68519,16 +68348,9 @@ class FormattingElementList {
68519
68348
  return this.entries.find((entry) => entry.type === EntryType.Element && entry.element === element);
68520
68349
  }
68521
68350
  }
68522
- //# sourceMappingURL=formatting-element-list.js.map
68351
+
68523
68352
  ;// ./node_modules/parse5/dist/tree-adapters/default.js
68524
68353
 
68525
- function createTextNode(value) {
68526
- return {
68527
- nodeName: '#text',
68528
- value,
68529
- parentNode: null,
68530
- };
68531
- }
68532
68354
  const defaultTreeAdapter = {
68533
68355
  //Node construction
68534
68356
  createDocument() {
@@ -68561,6 +68383,13 @@ const defaultTreeAdapter = {
68561
68383
  parentNode: null,
68562
68384
  };
68563
68385
  },
68386
+ createTextNode(value) {
68387
+ return {
68388
+ nodeName: '#text',
68389
+ value,
68390
+ parentNode: null,
68391
+ };
68392
+ },
68564
68393
  //Tree mutation
68565
68394
  appendChild(parentNode, newNode) {
68566
68395
  parentNode.childNodes.push(newNode);
@@ -68616,7 +68445,7 @@ const defaultTreeAdapter = {
68616
68445
  return;
68617
68446
  }
68618
68447
  }
68619
- defaultTreeAdapter.appendChild(parentNode, createTextNode(text));
68448
+ defaultTreeAdapter.appendChild(parentNode, defaultTreeAdapter.createTextNode(text));
68620
68449
  },
68621
68450
  insertTextBefore(parentNode, text, referenceNode) {
68622
68451
  const prevNode = parentNode.childNodes[parentNode.childNodes.indexOf(referenceNode) - 1];
@@ -68624,7 +68453,7 @@ const defaultTreeAdapter = {
68624
68453
  prevNode.value += text;
68625
68454
  }
68626
68455
  else {
68627
- defaultTreeAdapter.insertBefore(parentNode, createTextNode(text), referenceNode);
68456
+ defaultTreeAdapter.insertBefore(parentNode, defaultTreeAdapter.createTextNode(text), referenceNode);
68628
68457
  }
68629
68458
  },
68630
68459
  adoptAttributes(recipient, attrs) {
@@ -68694,7 +68523,7 @@ const defaultTreeAdapter = {
68694
68523
  node.sourceCodeLocation = { ...node.sourceCodeLocation, ...endLocation };
68695
68524
  },
68696
68525
  };
68697
- //# sourceMappingURL=default.js.map
68526
+
68698
68527
  ;// ./node_modules/parse5/dist/common/doctype.js
68699
68528
 
68700
68529
  //Const
@@ -68810,7 +68639,7 @@ function getDocumentMode(token) {
68810
68639
  }
68811
68640
  return DOCUMENT_MODE.NO_QUIRKS;
68812
68641
  }
68813
- //# sourceMappingURL=doctype.js.map
68642
+
68814
68643
  ;// ./node_modules/parse5/dist/common/foreign-content.js
68815
68644
 
68816
68645
  //MIME types
@@ -68889,7 +68718,6 @@ const XML_ATTRS_ADJUSTMENT_MAP = new Map([
68889
68718
  ['xlink:show', { prefix: 'xlink', name: 'show', namespace: html_NS.XLINK }],
68890
68719
  ['xlink:title', { prefix: 'xlink', name: 'title', namespace: html_NS.XLINK }],
68891
68720
  ['xlink:type', { prefix: 'xlink', name: 'type', namespace: html_NS.XLINK }],
68892
- ['xml:base', { prefix: 'xml', name: 'base', namespace: html_NS.XML }],
68893
68721
  ['xml:lang', { prefix: 'xml', name: 'lang', namespace: html_NS.XML }],
68894
68722
  ['xml:space', { prefix: 'xml', name: 'space', namespace: html_NS.XML }],
68895
68723
  ['xmlns', { prefix: '', name: 'xmlns', namespace: html_NS.XMLNS }],
@@ -69041,7 +68869,7 @@ function isIntegrationPoint(tn, ns, attrs, foreignNS) {
69041
68869
  return (((!foreignNS || foreignNS === html_NS.HTML) && isHtmlIntegrationPoint(tn, ns, attrs)) ||
69042
68870
  ((!foreignNS || foreignNS === html_NS.MATHML) && isMathMLTextIntegrationPoint(tn, ns)));
69043
68871
  }
69044
- //# sourceMappingURL=foreign-content.js.map
68872
+
69045
68873
  ;// ./node_modules/parse5/dist/parser/index.js
69046
68874
 
69047
68875
 
@@ -69102,26 +68930,41 @@ const defaultParserOptions = {
69102
68930
  };
69103
68931
  //Parser
69104
68932
  class parser_Parser {
69105
- constructor(options, document, fragmentContext = null, scriptHandler = null) {
68933
+ constructor(options, document,
68934
+ /** @internal */
68935
+ fragmentContext = null,
68936
+ /** @internal */
68937
+ scriptHandler = null) {
69106
68938
  this.fragmentContext = fragmentContext;
69107
68939
  this.scriptHandler = scriptHandler;
69108
68940
  this.currentToken = null;
69109
68941
  this.stopped = false;
68942
+ /** @internal */
69110
68943
  this.insertionMode = InsertionMode.INITIAL;
68944
+ /** @internal */
69111
68945
  this.originalInsertionMode = InsertionMode.INITIAL;
68946
+ /** @internal */
69112
68947
  this.headElement = null;
68948
+ /** @internal */
69113
68949
  this.formElement = null;
69114
68950
  /** Indicates that the current node is not an element in the HTML namespace */
69115
68951
  this.currentNotInHTML = false;
69116
68952
  /**
69117
68953
  * The template insertion mode stack is maintained from the left.
69118
68954
  * Ie. the topmost element will always have index 0.
68955
+ *
68956
+ * @internal
69119
68957
  */
69120
68958
  this.tmplInsertionModeStack = [];
68959
+ /** @internal */
69121
68960
  this.pendingCharacterTokens = [];
68961
+ /** @internal */
69122
68962
  this.hasNonWhitespacePendingCharacterToken = false;
68963
+ /** @internal */
69123
68964
  this.framesetOk = true;
68965
+ /** @internal */
69124
68966
  this.skipNextNewLine = false;
68967
+ /** @internal */
69125
68968
  this.fosterParentingEnabled = false;
69126
68969
  this.options = {
69127
68970
  ...defaultParserOptions,
@@ -69175,6 +69018,7 @@ class parser_Parser {
69175
69018
  return fragment;
69176
69019
  }
69177
69020
  //Errors
69021
+ /** @internal */
69178
69022
  _err(token, code, beforeToken) {
69179
69023
  var _a;
69180
69024
  if (!this.onParseError)
@@ -69192,12 +69036,14 @@ class parser_Parser {
69192
69036
  this.onParseError(err);
69193
69037
  }
69194
69038
  //Stack events
69039
+ /** @internal */
69195
69040
  onItemPush(node, tid, isTop) {
69196
69041
  var _a, _b;
69197
69042
  (_b = (_a = this.treeAdapter).onItemPush) === null || _b === void 0 ? void 0 : _b.call(_a, node);
69198
69043
  if (isTop && this.openElements.stackTop > 0)
69199
69044
  this._setContextModes(node, tid);
69200
69045
  }
69046
+ /** @internal */
69201
69047
  onItemPop(node, isTop) {
69202
69048
  var _a, _b;
69203
69049
  if (this.options.sourceCodeLocationInfo) {
@@ -69218,10 +69064,12 @@ class parser_Parser {
69218
69064
  }
69219
69065
  }
69220
69066
  _setContextModes(current, tid) {
69221
- const isHTML = current === this.document || this.treeAdapter.getNamespaceURI(current) === html_NS.HTML;
69067
+ const isHTML = current === this.document || (current && this.treeAdapter.getNamespaceURI(current) === html_NS.HTML);
69222
69068
  this.currentNotInHTML = !isHTML;
69223
- this.tokenizer.inForeignNode = !isHTML && !this._isIntegrationPoint(tid, current);
69069
+ this.tokenizer.inForeignNode =
69070
+ !isHTML && current !== undefined && tid !== undefined && !this._isIntegrationPoint(tid, current);
69224
69071
  }
69072
+ /** @protected */
69225
69073
  _switchToTextParsing(currentToken, nextTokenizerState) {
69226
69074
  this._insertElement(currentToken, html_NS.HTML);
69227
69075
  this.tokenizer.state = nextTokenizerState;
@@ -69234,11 +69082,13 @@ class parser_Parser {
69234
69082
  this.tokenizer.state = TokenizerMode.PLAINTEXT;
69235
69083
  }
69236
69084
  //Fragment parsing
69085
+ /** @protected */
69237
69086
  _getAdjustedCurrentElement() {
69238
69087
  return this.openElements.stackTop === 0 && this.fragmentContext
69239
69088
  ? this.fragmentContext
69240
69089
  : this.openElements.current;
69241
69090
  }
69091
+ /** @protected */
69242
69092
  _findFormInFragmentContext() {
69243
69093
  let node = this.fragmentContext;
69244
69094
  while (node) {
@@ -69281,6 +69131,7 @@ class parser_Parser {
69281
69131
  }
69282
69132
  }
69283
69133
  //Tree mutation
69134
+ /** @protected */
69284
69135
  _setDocumentType(token) {
69285
69136
  const name = token.name || '';
69286
69137
  const publicId = token.publicId || '';
@@ -69294,6 +69145,7 @@ class parser_Parser {
69294
69145
  }
69295
69146
  }
69296
69147
  }
69148
+ /** @protected */
69297
69149
  _attachElementToTree(element, location) {
69298
69150
  if (this.options.sourceCodeLocationInfo) {
69299
69151
  const loc = location && {
@@ -69307,23 +69159,31 @@ class parser_Parser {
69307
69159
  }
69308
69160
  else {
69309
69161
  const parent = this.openElements.currentTmplContentOrNode;
69310
- this.treeAdapter.appendChild(parent, element);
69162
+ this.treeAdapter.appendChild(parent !== null && parent !== void 0 ? parent : this.document, element);
69311
69163
  }
69312
69164
  }
69165
+ /**
69166
+ * For self-closing tags. Add an element to the tree, but skip adding it
69167
+ * to the stack.
69168
+ */
69169
+ /** @protected */
69313
69170
  _appendElement(token, namespaceURI) {
69314
69171
  const element = this.treeAdapter.createElement(token.tagName, namespaceURI, token.attrs);
69315
69172
  this._attachElementToTree(element, token.location);
69316
69173
  }
69174
+ /** @protected */
69317
69175
  _insertElement(token, namespaceURI) {
69318
69176
  const element = this.treeAdapter.createElement(token.tagName, namespaceURI, token.attrs);
69319
69177
  this._attachElementToTree(element, token.location);
69320
69178
  this.openElements.push(element, token.tagID);
69321
69179
  }
69180
+ /** @protected */
69322
69181
  _insertFakeElement(tagName, tagID) {
69323
69182
  const element = this.treeAdapter.createElement(tagName, html_NS.HTML, []);
69324
69183
  this._attachElementToTree(element, null);
69325
69184
  this.openElements.push(element, tagID);
69326
69185
  }
69186
+ /** @protected */
69327
69187
  _insertTemplate(token) {
69328
69188
  const tmpl = this.treeAdapter.createElement(token.tagName, html_NS.HTML, token.attrs);
69329
69189
  const content = this.treeAdapter.createDocumentFragment();
@@ -69333,6 +69193,7 @@ class parser_Parser {
69333
69193
  if (this.options.sourceCodeLocationInfo)
69334
69194
  this.treeAdapter.setNodeSourceCodeLocation(content, null);
69335
69195
  }
69196
+ /** @protected */
69336
69197
  _insertFakeRootElement() {
69337
69198
  const element = this.treeAdapter.createElement(TAG_NAMES.HTML, html_NS.HTML, []);
69338
69199
  if (this.options.sourceCodeLocationInfo)
@@ -69340,6 +69201,7 @@ class parser_Parser {
69340
69201
  this.treeAdapter.appendChild(this.openElements.current, element);
69341
69202
  this.openElements.push(element, TAG_ID.HTML);
69342
69203
  }
69204
+ /** @protected */
69343
69205
  _appendCommentNode(token, parent) {
69344
69206
  const commentNode = this.treeAdapter.createCommentNode(token.data);
69345
69207
  this.treeAdapter.appendChild(parent, commentNode);
@@ -69347,6 +69209,7 @@ class parser_Parser {
69347
69209
  this.treeAdapter.setNodeSourceCodeLocation(commentNode, token.location);
69348
69210
  }
69349
69211
  }
69212
+ /** @protected */
69350
69213
  _insertCharacters(token) {
69351
69214
  let parent;
69352
69215
  let beforeElement;
@@ -69378,12 +69241,14 @@ class parser_Parser {
69378
69241
  this.treeAdapter.setNodeSourceCodeLocation(textNode, token.location);
69379
69242
  }
69380
69243
  }
69244
+ /** @protected */
69381
69245
  _adoptNodes(donor, recipient) {
69382
69246
  for (let child = this.treeAdapter.getFirstChild(donor); child; child = this.treeAdapter.getFirstChild(donor)) {
69383
69247
  this.treeAdapter.detachNode(child);
69384
69248
  this.treeAdapter.appendChild(recipient, child);
69385
69249
  }
69386
69250
  }
69251
+ /** @protected */
69387
69252
  _setEndLocation(element, closingToken) {
69388
69253
  if (this.treeAdapter.getNodeSourceCodeLocation(element) && closingToken.location) {
69389
69254
  const ctLoc = closingToken.location;
@@ -69431,8 +69296,10 @@ class parser_Parser {
69431
69296
  // If it _is_ an integration point, then we might have to check that it is not an HTML
69432
69297
  // integration point.
69433
69298
  ((token.tagID === TAG_ID.MGLYPH || token.tagID === TAG_ID.MALIGNMARK) &&
69299
+ currentTagId !== undefined &&
69434
69300
  !this._isIntegrationPoint(currentTagId, current, html_NS.HTML)));
69435
69301
  }
69302
+ /** @protected */
69436
69303
  _processToken(token) {
69437
69304
  switch (token.type) {
69438
69305
  case token_TokenType.CHARACTER: {
@@ -69470,17 +69337,19 @@ class parser_Parser {
69470
69337
  }
69471
69338
  }
69472
69339
  //Integration points
69340
+ /** @protected */
69473
69341
  _isIntegrationPoint(tid, element, foreignNS) {
69474
69342
  const ns = this.treeAdapter.getNamespaceURI(element);
69475
69343
  const attrs = this.treeAdapter.getAttrList(element);
69476
69344
  return isIntegrationPoint(tid, ns, attrs, foreignNS);
69477
69345
  }
69478
69346
  //Active formatting elements reconstruction
69347
+ /** @protected */
69479
69348
  _reconstructActiveFormattingElements() {
69480
69349
  const listLength = this.activeFormattingElements.entries.length;
69481
69350
  if (listLength) {
69482
69351
  const endIndex = this.activeFormattingElements.entries.findIndex((entry) => entry.type === EntryType.Marker || this.openElements.contains(entry.element));
69483
- const unopenIdx = endIndex < 0 ? listLength - 1 : endIndex - 1;
69352
+ const unopenIdx = endIndex === -1 ? listLength - 1 : endIndex - 1;
69484
69353
  for (let i = unopenIdx; i >= 0; i--) {
69485
69354
  const entry = this.activeFormattingElements.entries[i];
69486
69355
  this._insertElement(entry.token, this.treeAdapter.getNamespaceURI(entry.element));
@@ -69489,17 +69358,20 @@ class parser_Parser {
69489
69358
  }
69490
69359
  }
69491
69360
  //Close elements
69361
+ /** @protected */
69492
69362
  _closeTableCell() {
69493
69363
  this.openElements.generateImpliedEndTags();
69494
69364
  this.openElements.popUntilTableCellPopped();
69495
69365
  this.activeFormattingElements.clearToLastMarker();
69496
69366
  this.insertionMode = InsertionMode.IN_ROW;
69497
69367
  }
69368
+ /** @protected */
69498
69369
  _closePElement() {
69499
69370
  this.openElements.generateImpliedEndTagsWithExclusion(TAG_ID.P);
69500
69371
  this.openElements.popUntilTagNamePopped(TAG_ID.P);
69501
69372
  }
69502
69373
  //Insertion modes
69374
+ /** @protected */
69503
69375
  _resetInsertionMode() {
69504
69376
  for (let i = this.openElements.stackTop; i >= 0; i--) {
69505
69377
  //Insertion mode reset map
@@ -69565,6 +69437,7 @@ class parser_Parser {
69565
69437
  }
69566
69438
  this.insertionMode = InsertionMode.IN_BODY;
69567
69439
  }
69440
+ /** @protected */
69568
69441
  _resetInsertionModeForSelect(selectIdx) {
69569
69442
  if (selectIdx > 0) {
69570
69443
  for (let i = selectIdx - 1; i > 0; i--) {
@@ -69581,12 +69454,17 @@ class parser_Parser {
69581
69454
  this.insertionMode = InsertionMode.IN_SELECT;
69582
69455
  }
69583
69456
  //Foster parenting
69457
+ /** @protected */
69584
69458
  _isElementCausesFosterParenting(tn) {
69585
69459
  return TABLE_STRUCTURE_TAGS.has(tn);
69586
69460
  }
69461
+ /** @protected */
69587
69462
  _shouldFosterParentOnInsertion() {
69588
- return this.fosterParentingEnabled && this._isElementCausesFosterParenting(this.openElements.currentTagId);
69463
+ return (this.fosterParentingEnabled &&
69464
+ this.openElements.currentTagId !== undefined &&
69465
+ this._isElementCausesFosterParenting(this.openElements.currentTagId));
69589
69466
  }
69467
+ /** @protected */
69590
69468
  _findFosterParentingLocation() {
69591
69469
  for (let i = this.openElements.stackTop; i >= 0; i--) {
69592
69470
  const openElement = this.openElements.items[i];
@@ -69610,6 +69488,7 @@ class parser_Parser {
69610
69488
  }
69611
69489
  return { parent: this.openElements.items[0], beforeElement: null };
69612
69490
  }
69491
+ /** @protected */
69613
69492
  _fosterParentElement(element) {
69614
69493
  const location = this._findFosterParentingLocation();
69615
69494
  if (location.beforeElement) {
@@ -69620,10 +69499,12 @@ class parser_Parser {
69620
69499
  }
69621
69500
  }
69622
69501
  //Special elements
69502
+ /** @protected */
69623
69503
  _isSpecialElement(element, id) {
69624
69504
  const ns = this.treeAdapter.getNamespaceURI(element);
69625
69505
  return SPECIAL_ELEMENTS[ns].has(id);
69626
69506
  }
69507
+ /** @internal */
69627
69508
  onCharacter(token) {
69628
69509
  this.skipNextNewLine = false;
69629
69510
  if (this.tokenizer.inForeignNode) {
@@ -69694,6 +69575,7 @@ class parser_Parser {
69694
69575
  // Do nothing
69695
69576
  }
69696
69577
  }
69578
+ /** @internal */
69697
69579
  onNullCharacter(token) {
69698
69580
  this.skipNextNewLine = false;
69699
69581
  if (this.tokenizer.inForeignNode) {
@@ -69751,6 +69633,7 @@ class parser_Parser {
69751
69633
  // Do nothing
69752
69634
  }
69753
69635
  }
69636
+ /** @internal */
69754
69637
  onComment(token) {
69755
69638
  this.skipNextNewLine = false;
69756
69639
  if (this.currentNotInHTML) {
@@ -69796,6 +69679,7 @@ class parser_Parser {
69796
69679
  // Do nothing
69797
69680
  }
69798
69681
  }
69682
+ /** @internal */
69799
69683
  onDoctype(token) {
69800
69684
  this.skipNextNewLine = false;
69801
69685
  switch (this.insertionMode) {
@@ -69818,6 +69702,7 @@ class parser_Parser {
69818
69702
  // Do nothing
69819
69703
  }
69820
69704
  }
69705
+ /** @internal */
69821
69706
  onStartTag(token) {
69822
69707
  this.skipNextNewLine = false;
69823
69708
  this.currentToken = token;
@@ -69835,6 +69720,7 @@ class parser_Parser {
69835
69720
  * for nested calls.
69836
69721
  *
69837
69722
  * @param token The token to process.
69723
+ * @protected
69838
69724
  */
69839
69725
  _processStartTag(token) {
69840
69726
  if (this.shouldProcessStartTagTokenInForeignContent(token)) {
@@ -69844,6 +69730,7 @@ class parser_Parser {
69844
69730
  this._startTagOutsideForeignContent(token);
69845
69731
  }
69846
69732
  }
69733
+ /** @protected */
69847
69734
  _startTagOutsideForeignContent(token) {
69848
69735
  switch (this.insertionMode) {
69849
69736
  case InsertionMode.INITIAL: {
@@ -69938,6 +69825,7 @@ class parser_Parser {
69938
69825
  // Do nothing
69939
69826
  }
69940
69827
  }
69828
+ /** @internal */
69941
69829
  onEndTag(token) {
69942
69830
  this.skipNextNewLine = false;
69943
69831
  this.currentToken = token;
@@ -69948,6 +69836,7 @@ class parser_Parser {
69948
69836
  this._endTagOutsideForeignContent(token);
69949
69837
  }
69950
69838
  }
69839
+ /** @protected */
69951
69840
  _endTagOutsideForeignContent(token) {
69952
69841
  switch (this.insertionMode) {
69953
69842
  case InsertionMode.INITIAL: {
@@ -70042,6 +69931,7 @@ class parser_Parser {
70042
69931
  // Do nothing
70043
69932
  }
70044
69933
  }
69934
+ /** @internal */
70045
69935
  onEof(token) {
70046
69936
  switch (this.insertionMode) {
70047
69937
  case InsertionMode.INITIAL: {
@@ -70104,6 +69994,7 @@ class parser_Parser {
70104
69994
  // Do nothing
70105
69995
  }
70106
69996
  }
69997
+ /** @internal */
70107
69998
  onWhitespaceCharacter(token) {
70108
69999
  if (this.skipNextNewLine) {
70109
70000
  this.skipNextNewLine = false;
@@ -70190,7 +70081,7 @@ function aaObtainFurthestBlock(p, formattingElementEntry) {
70190
70081
  }
70191
70082
  }
70192
70083
  if (!furthestBlock) {
70193
- p.openElements.shortenToLength(idx < 0 ? 0 : idx);
70084
+ p.openElements.shortenToLength(Math.max(idx, 0));
70194
70085
  p.activeFormattingElements.removeEntry(formattingElementEntry);
70195
70086
  }
70196
70087
  return furthestBlock;
@@ -70676,7 +70567,7 @@ function numberedHeaderStartTagInBody(p, token) {
70676
70567
  if (p.openElements.hasInButtonScope(TAG_ID.P)) {
70677
70568
  p._closePElement();
70678
70569
  }
70679
- if (isNumberedHeader(p.openElements.currentTagId)) {
70570
+ if (p.openElements.currentTagId !== undefined && NUMBERED_HEADERS.has(p.openElements.currentTagId)) {
70680
70571
  p.openElements.pop();
70681
70572
  }
70682
70573
  p._insertElement(token, html_NS.HTML);
@@ -70838,9 +70729,9 @@ function iframeStartTagInBody(p, token) {
70838
70729
  p.framesetOk = false;
70839
70730
  p._switchToTextParsing(token, TokenizerMode.RAWTEXT);
70840
70731
  }
70841
- //NOTE: here we assume that we always act as an user agent with enabled plugins, so we parse
70842
- //<noembed> as rawtext.
70843
- function noembedStartTagInBody(p, token) {
70732
+ //NOTE: here we assume that we always act as a user agent with enabled plugins/frames, so we parse
70733
+ //<noembed>/<noframes> as rawtext.
70734
+ function rawTextStartTagInBody(p, token) {
70844
70735
  p._switchToTextParsing(token, TokenizerMode.RAWTEXT);
70845
70736
  }
70846
70737
  function selectStartTagInBody(p, token) {
@@ -70952,6 +70843,7 @@ function startTagInBody(p, token) {
70952
70843
  case TAG_ID.DETAILS:
70953
70844
  case TAG_ID.ADDRESS:
70954
70845
  case TAG_ID.ARTICLE:
70846
+ case TAG_ID.SEARCH:
70955
70847
  case TAG_ID.SECTION:
70956
70848
  case TAG_ID.SUMMARY:
70957
70849
  case TAG_ID.FIELDSET:
@@ -71075,8 +70967,9 @@ function startTagInBody(p, token) {
71075
70967
  optgroupStartTagInBody(p, token);
71076
70968
  break;
71077
70969
  }
71078
- case TAG_ID.NOEMBED: {
71079
- noembedStartTagInBody(p, token);
70970
+ case TAG_ID.NOEMBED:
70971
+ case TAG_ID.NOFRAMES: {
70972
+ rawTextStartTagInBody(p, token);
71080
70973
  break;
71081
70974
  }
71082
70975
  case TAG_ID.FRAMESET: {
@@ -71089,7 +70982,7 @@ function startTagInBody(p, token) {
71089
70982
  }
71090
70983
  case TAG_ID.NOSCRIPT: {
71091
70984
  if (p.options.scriptingEnabled) {
71092
- noembedStartTagInBody(p, token);
70985
+ rawTextStartTagInBody(p, token);
71093
70986
  }
71094
70987
  else {
71095
70988
  genericStartTagInBody(p, token);
@@ -71261,6 +71154,7 @@ function endTagInBody(p, token) {
71261
71154
  case TAG_ID.ADDRESS:
71262
71155
  case TAG_ID.ARTICLE:
71263
71156
  case TAG_ID.DETAILS:
71157
+ case TAG_ID.SEARCH:
71264
71158
  case TAG_ID.SECTION:
71265
71159
  case TAG_ID.SUMMARY:
71266
71160
  case TAG_ID.LISTING:
@@ -71346,7 +71240,7 @@ function eofInText(p, token) {
71346
71240
  // The "in table" insertion mode
71347
71241
  //------------------------------------------------------------------
71348
71242
  function characterInTable(p, token) {
71349
- if (TABLE_STRUCTURE_TAGS.has(p.openElements.currentTagId)) {
71243
+ if (p.openElements.currentTagId !== undefined && TABLE_STRUCTURE_TAGS.has(p.openElements.currentTagId)) {
71350
71244
  p.pendingCharacterTokens.length = 0;
71351
71245
  p.hasNonWhitespacePendingCharacterToken = false;
71352
71246
  p.originalInsertionMode = p.insertionMode;
@@ -71861,6 +71755,17 @@ function startTagInSelect(p, token) {
71861
71755
  p._insertElement(token, html_NS.HTML);
71862
71756
  break;
71863
71757
  }
71758
+ case TAG_ID.HR: {
71759
+ if (p.openElements.currentTagId === TAG_ID.OPTION) {
71760
+ p.openElements.pop();
71761
+ }
71762
+ if (p.openElements.currentTagId === TAG_ID.OPTGROUP) {
71763
+ p.openElements.pop();
71764
+ }
71765
+ p._appendElement(token, html_NS.HTML);
71766
+ token.ackSelfClosing = true;
71767
+ break;
71768
+ }
71864
71769
  case TAG_ID.INPUT:
71865
71770
  case TAG_ID.KEYGEN:
71866
71771
  case TAG_ID.TEXTAREA:
@@ -72160,6 +72065,7 @@ function characterInForeignContent(p, token) {
72160
72065
  }
72161
72066
  function popUntilHtmlOrIntegrationPoint(p) {
72162
72067
  while (p.treeAdapter.getNamespaceURI(p.openElements.current) !== html_NS.HTML &&
72068
+ p.openElements.currentTagId !== undefined &&
72163
72069
  !p._isIntegrationPoint(p.openElements.currentTagId, p.openElements.current)) {
72164
72070
  p.openElements.pop();
72165
72071
  }
@@ -72210,9 +72116,9 @@ function endTagInForeignContent(p, token) {
72210
72116
  }
72211
72117
  }
72212
72118
  }
72213
- //# sourceMappingURL=index.js.map
72214
- ;// ./node_modules/entities/lib/esm/escape.js
72215
- const escape_xmlReplacer = /["&'<>$\x80-\uFFFF]/g;
72119
+
72120
+ ;// ./node_modules/parse5/node_modules/entities/dist/esm/escape.js
72121
+ const escape_xmlReplacer = /["$&'<>\u0080-\uFFFF]/g;
72216
72122
  const xmlCodeMap = new Map([
72217
72123
  [34, "&quot;"],
72218
72124
  [38, "&amp;"],
@@ -72223,15 +72129,15 @@ const xmlCodeMap = new Map([
72223
72129
  // For compatibility with node < 4, we wrap `codePointAt`
72224
72130
  const escape_getCodePoint =
72225
72131
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
72226
- String.prototype.codePointAt != null
72227
- ? (str, index) => str.codePointAt(index)
72132
+ String.prototype.codePointAt == null
72133
+ ? (c, index) => (c.charCodeAt(index) & 64512) === 55296
72134
+ ? (c.charCodeAt(index) - 55296) * 1024 +
72135
+ c.charCodeAt(index + 1) -
72136
+ 56320 +
72137
+ 65536
72138
+ : c.charCodeAt(index)
72228
72139
  : // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
72229
- (c, index) => (c.charCodeAt(index) & 0xfc00) === 0xd800
72230
- ? (c.charCodeAt(index) - 0xd800) * 0x400 +
72231
- c.charCodeAt(index + 1) -
72232
- 0xdc00 +
72233
- 0x10000
72234
- : c.charCodeAt(index);
72140
+ (input, index) => input.codePointAt(index);
72235
72141
  /**
72236
72142
  * Encodes all non-ASCII characters, as well as characters not valid in XML
72237
72143
  * documents using XML entities.
@@ -72239,25 +72145,25 @@ String.prototype.codePointAt != null
72239
72145
  * If a character has no equivalent entity, a
72240
72146
  * numeric hexadecimal reference (eg. `&#xfc;`) will be used.
72241
72147
  */
72242
- function escape_encodeXML(str) {
72243
- let ret = "";
72244
- let lastIdx = 0;
72148
+ function escape_encodeXML(input) {
72149
+ let returnValue = "";
72150
+ let lastIndex = 0;
72245
72151
  let match;
72246
- while ((match = escape_xmlReplacer.exec(str)) !== null) {
72247
- const i = match.index;
72248
- const char = str.charCodeAt(i);
72152
+ while ((match = escape_xmlReplacer.exec(input)) !== null) {
72153
+ const { index } = match;
72154
+ const char = input.charCodeAt(index);
72249
72155
  const next = xmlCodeMap.get(char);
72250
- if (next !== undefined) {
72251
- ret += str.substring(lastIdx, i) + next;
72252
- lastIdx = i + 1;
72156
+ if (next === undefined) {
72157
+ returnValue += `${input.substring(lastIndex, index)}&#x${escape_getCodePoint(input, index).toString(16)};`;
72158
+ // Increase by 1 if we have a surrogate pair
72159
+ lastIndex = escape_xmlReplacer.lastIndex += Number((char & 64512) === 55296);
72253
72160
  }
72254
72161
  else {
72255
- ret += `${str.substring(lastIdx, i)}&#x${escape_getCodePoint(str, i).toString(16)};`;
72256
- // Increase by 1 if we have a surrogate pair
72257
- lastIdx = escape_xmlReplacer.lastIndex += Number((char & 0xfc00) === 0xd800);
72162
+ returnValue += input.substring(lastIndex, index) + next;
72163
+ lastIndex = index + 1;
72258
72164
  }
72259
72165
  }
72260
- return ret + str.substr(lastIdx);
72166
+ return returnValue + input.substr(lastIndex);
72261
72167
  }
72262
72168
  /**
72263
72169
  * Encodes all non-ASCII characters, as well as characters not valid in XML
@@ -72282,18 +72188,18 @@ const escape_escape = (/* unused pure expression or super */ null && (escape_enc
72282
72188
  function getEscaper(regex, map) {
72283
72189
  return function escape(data) {
72284
72190
  let match;
72285
- let lastIdx = 0;
72191
+ let lastIndex = 0;
72286
72192
  let result = "";
72287
72193
  while ((match = regex.exec(data))) {
72288
- if (lastIdx !== match.index) {
72289
- result += data.substring(lastIdx, match.index);
72194
+ if (lastIndex !== match.index) {
72195
+ result += data.substring(lastIndex, match.index);
72290
72196
  }
72291
72197
  // We know that this character will be in the map.
72292
72198
  result += map.get(match[0].charCodeAt(0));
72293
72199
  // Every match will be of length 1
72294
- lastIdx = match.index + 1;
72200
+ lastIndex = match.index + 1;
72295
72201
  }
72296
- return result + data.substring(lastIdx);
72202
+ return result + data.substring(lastIndex);
72297
72203
  };
72298
72204
  }
72299
72205
  /**
@@ -72303,14 +72209,15 @@ function getEscaper(regex, map) {
72303
72209
  *
72304
72210
  * @param data String to escape.
72305
72211
  */
72306
- const escape_escapeUTF8 = getEscaper(/[&<>'"]/g, xmlCodeMap);
72212
+ const escape_escapeUTF8 = /* #__PURE__ */ (/* unused pure expression or super */ null && (getEscaper(/["&'<>]/g, xmlCodeMap)));
72307
72213
  /**
72308
72214
  * Encodes all characters that have to be escaped in HTML attributes,
72309
72215
  * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.
72310
72216
  *
72311
72217
  * @param data String to escape.
72312
72218
  */
72313
- const escape_escapeAttribute = getEscaper(/["&\u00A0]/g, new Map([
72219
+ const escape_escapeAttribute =
72220
+ /* #__PURE__ */ getEscaper(/["&\u00A0]/g, new Map([
72314
72221
  [34, "&quot;"],
72315
72222
  [38, "&amp;"],
72316
72223
  [160, "&nbsp;"],
@@ -72321,7 +72228,7 @@ const escape_escapeAttribute = getEscaper(/["&\u00A0]/g, new Map([
72321
72228
  *
72322
72229
  * @param data String to escape.
72323
72230
  */
72324
- const escape_escapeText = getEscaper(/[&<>\u00A0]/g, new Map([
72231
+ const escape_escapeText = /* #__PURE__ */ getEscaper(/[&<>\u00A0]/g, new Map([
72325
72232
  [38, "&amp;"],
72326
72233
  [60, "&lt;"],
72327
72234
  [62, "&gt;"],
@@ -72399,7 +72306,7 @@ function serializer_serialize(node, options) {
72399
72306
  * const document = parse5.parseFragment('<div>Hello, <b>world</b>!</div>');
72400
72307
  *
72401
72308
  * // Serializes the <div> element.
72402
- * const html = parse5.serializeOuter(document.childNodes[0]);
72309
+ * const str = parse5.serializeOuter(document.childNodes[0]);
72403
72310
  *
72404
72311
  * console.log(str); //> '<div>Hello, <b>world</b>!</div>'
72405
72312
  * ```
@@ -72451,10 +72358,7 @@ function serializeAttributes(node, { treeAdapter }) {
72451
72358
  let html = '';
72452
72359
  for (const attr of treeAdapter.getAttrList(node)) {
72453
72360
  html += ' ';
72454
- if (!attr.namespace) {
72455
- html += attr.name;
72456
- }
72457
- else
72361
+ if (attr.namespace) {
72458
72362
  switch (attr.namespace) {
72459
72363
  case NS.XML: {
72460
72364
  html += `xml:${attr.name}`;
@@ -72475,6 +72379,10 @@ function serializeAttributes(node, { treeAdapter }) {
72475
72379
  html += `${attr.prefix}:${attr.name}`;
72476
72380
  }
72477
72381
  }
72382
+ }
72383
+ else {
72384
+ html += attr.name;
72385
+ }
72478
72386
  html += `="${escapeAttribute(attr.value)}"`;
72479
72387
  }
72480
72388
  return html;
@@ -72496,7 +72404,7 @@ function serializeCommentNode(node, { treeAdapter }) {
72496
72404
  function serializeDocumentTypeNode(node, { treeAdapter }) {
72497
72405
  return `<!DOCTYPE ${treeAdapter.getDocumentTypeNodeName(node)}>`;
72498
72406
  }
72499
- //# sourceMappingURL=index.js.map
72407
+
72500
72408
  ;// ./node_modules/parse5/dist/index.js
72501
72409
 
72502
72410
 
@@ -72505,9 +72413,7 @@ function serializeDocumentTypeNode(node, { treeAdapter }) {
72505
72413
 
72506
72414
  /** @internal */
72507
72415
 
72508
- /** @internal */
72509
72416
 
72510
- /** @internal */
72511
72417
 
72512
72418
  /** @internal */
72513
72419
 
@@ -72542,7 +72448,7 @@ function parseFragment(fragmentContext, html, options) {
72542
72448
  parser.tokenizer.write(html, true);
72543
72449
  return parser.getFragment();
72544
72450
  }
72545
- //# sourceMappingURL=index.js.map
72451
+
72546
72452
  ;// ./node_modules/hast-util-from-html/lib/errors.js
72547
72453
  /**
72548
72454
  * @typedef ErrorInfo
@@ -90707,9 +90613,416 @@ const mdast = (text, opts = {}) => {
90707
90613
  };
90708
90614
  /* harmony default export */ const lib_mdast = (mdast);
90709
90615
 
90616
+ ;// ./lib/utils/mdxish/protect-code-blocks.ts
90617
+ /**
90618
+ * Replaces code blocks and inline code with placeholders to protect them from preprocessing.
90619
+ *
90620
+ * @param content - The markdown content to process
90621
+ * @returns Object containing protected content and arrays of original code blocks
90622
+ * @example
90623
+ * ```typescript
90624
+ * const input = 'Text with `inline code` and ```fenced block```';
90625
+ * protectCodeBlocks(input)
90626
+ * // Returns: {
90627
+ * // protectedCode: {
90628
+ * // codeBlocks: ['```fenced block```'],
90629
+ * // inlineCode: ['`inline code`']
90630
+ * // },
90631
+ * // protectedContent: 'Text with ___INLINE_CODE_0___ and ___CODE_BLOCK_0___'
90632
+ * // }
90633
+ * ```
90634
+ */
90635
+ function protectCodeBlocks(content) {
90636
+ const codeBlocks = [];
90637
+ const inlineCode = [];
90638
+ let protectedContent = '';
90639
+ let remaining = content;
90640
+ let codeBlockStart = remaining.indexOf('```');
90641
+ while (codeBlockStart !== -1) {
90642
+ protectedContent += remaining.slice(0, codeBlockStart);
90643
+ remaining = remaining.slice(codeBlockStart);
90644
+ const codeBlockEnd = remaining.indexOf('```', 3);
90645
+ if (codeBlockEnd === -1) {
90646
+ break;
90647
+ }
90648
+ const match = remaining.slice(0, codeBlockEnd + 3);
90649
+ const index = codeBlocks.length;
90650
+ codeBlocks.push(match);
90651
+ protectedContent += `___CODE_BLOCK_${index}___`;
90652
+ remaining = remaining.slice(codeBlockEnd + 3);
90653
+ codeBlockStart = remaining.indexOf('```');
90654
+ }
90655
+ protectedContent += remaining;
90656
+ protectedContent = protectedContent.replace(/`([^`\n]+)`/g, match => {
90657
+ const index = inlineCode.length;
90658
+ inlineCode.push(match);
90659
+ return `___INLINE_CODE_${index}___`;
90660
+ });
90661
+ return { protectedCode: { codeBlocks, inlineCode }, protectedContent };
90662
+ }
90663
+ /**
90664
+ * Restores inline code by replacing placeholders with original content.
90665
+ *
90666
+ * @param content - Content with inline code placeholders
90667
+ * @param protectedCode - The protected code arrays
90668
+ * @returns Content with inline code restored
90669
+ */
90670
+ function restoreInlineCode(content, protectedCode) {
90671
+ return content.replace(/___INLINE_CODE_(\d+)___/g, (_m, idx) => {
90672
+ return protectedCode.inlineCode[parseInt(idx, 10)];
90673
+ });
90674
+ }
90675
+ /**
90676
+ * Restores fenced code blocks by replacing placeholders with original content.
90677
+ *
90678
+ * @param content - Content with code block placeholders
90679
+ * @param protectedCode - The protected code arrays
90680
+ * @returns Content with code blocks restored
90681
+ */
90682
+ function restoreFencedCodeBlocks(content, protectedCode) {
90683
+ return content.replace(/___CODE_BLOCK_(\d+)___/g, (_m, idx) => {
90684
+ return protectedCode.codeBlocks[parseInt(idx, 10)];
90685
+ });
90686
+ }
90687
+ /**
90688
+ * Restores all code blocks and inline code by replacing placeholders with original content.
90689
+ *
90690
+ * @param content - Content with code placeholders
90691
+ * @param protectedCode - The protected code arrays
90692
+ * @returns Content with all code blocks and inline code restored
90693
+ * @example
90694
+ * ```typescript
90695
+ * const content = 'Text with ___INLINE_CODE_0___ and ___CODE_BLOCK_0___';
90696
+ * const protectedCode = {
90697
+ * codeBlocks: ['```js\ncode\n```'],
90698
+ * inlineCode: ['`inline`']
90699
+ * };
90700
+ * restoreCodeBlocks(content, protectedCode)
90701
+ * // Returns: 'Text with `inline` and ```js\ncode\n```'
90702
+ * ```
90703
+ */
90704
+ function restoreCodeBlocks(content, protectedCode) {
90705
+ let restored = restoreFencedCodeBlocks(content, protectedCode);
90706
+ restored = restoreInlineCode(restored, protectedCode);
90707
+ return restored;
90708
+ }
90709
+
90710
+ ;// ./processor/transform/mdxish/preprocess-jsx-expressions.ts
90711
+
90712
+ // Base64 encode (Node.js + browser compatible)
90713
+ function base64Encode(str) {
90714
+ if (typeof Buffer !== 'undefined') {
90715
+ return Buffer.from(str, 'utf-8').toString('base64');
90716
+ }
90717
+ return btoa(unescape(encodeURIComponent(str)));
90718
+ }
90719
+ // Base64 decode (Node.js + browser compatible)
90720
+ function base64Decode(str) {
90721
+ if (typeof Buffer !== 'undefined') {
90722
+ return Buffer.from(str, 'base64').toString('utf-8');
90723
+ }
90724
+ return decodeURIComponent(escape(atob(str)));
90725
+ }
90726
+ function escapeHtmlAttribute(value) {
90727
+ return value
90728
+ .replace(/&/g, '&amp;')
90729
+ .replace(/"/g, '&quot;')
90730
+ .replace(/</g, '&lt;')
90731
+ .replace(/>/g, '&gt;')
90732
+ .replace(/\n/g, '&#10;');
90733
+ }
90734
+ // Marker prefix for JSON-serialized complex values (arrays/objects)
90735
+ // Using a prefix that won't conflict with regular string values
90736
+ const JSON_VALUE_MARKER = '__MDXISH_JSON__';
90737
+ // Markers for protected HTMLBlock content (HTML comments avoid markdown parsing issues)
90738
+ const HTML_BLOCK_CONTENT_START = '<!--RDMX_HTMLBLOCK:';
90739
+ const HTML_BLOCK_CONTENT_END = ':RDMX_HTMLBLOCK-->';
90740
+ /**
90741
+ * Evaluates a JavaScript expression using context variables.
90742
+ *
90743
+ * @param expression
90744
+ * @param context
90745
+ * @returns The evaluated result
90746
+ * @example
90747
+ * ```typescript
90748
+ * const context = { baseUrl: 'https://example.com', path: '/api' };
90749
+ * evaluateExpression('baseUrl + path', context)
90750
+ * // Returns: 'https://example.com/api'
90751
+ * ```
90752
+ */
90753
+ function evaluateExpression(expression, context) {
90754
+ const contextKeys = Object.keys(context);
90755
+ const contextValues = Object.values(context);
90756
+ // eslint-disable-next-line no-new-func
90757
+ const func = new Function(...contextKeys, `return ${expression}`);
90758
+ return func(...contextValues);
90759
+ }
90760
+ /**
90761
+ * Base64 encodes HTMLBlock template literal content to prevent markdown parser from consuming <script>/<style> tags.
90762
+ *
90763
+ * @param content
90764
+ * @returns Content with HTMLBlock template literals base64 encoded in HTML comments
90765
+ * @example
90766
+ * ```typescript
90767
+ * const input = '<HTMLBlock>{`<script>alert("xss")</script>`}</HTMLBlock>';
90768
+ * protectHTMLBlockContent(input)
90769
+ * // Returns: '<HTMLBlock><!--RDMX_HTMLBLOCK:PHNjcmlwdD5hbGVydCgieHNzIik8L3NjcmlwdD4=:RDMX_HTMLBLOCK--></HTMLBlock>'
90770
+ * ```
90771
+ */
90772
+ function protectHTMLBlockContent(content) {
90773
+ return content.replace(/(<HTMLBlock[^>]*>)\{\s*`((?:[^`\\]|\\.)*)`\s*\}(<\/HTMLBlock>)/g, (_match, openTag, templateContent, closeTag) => {
90774
+ const encoded = base64Encode(templateContent);
90775
+ return `${openTag}${HTML_BLOCK_CONTENT_START}${encoded}${HTML_BLOCK_CONTENT_END}${closeTag}`;
90776
+ });
90777
+ }
90778
+ /**
90779
+ * Removes JSX-style comments (e.g., { /* comment *\/ }) from content.
90780
+ *
90781
+ * @param content
90782
+ * @returns Content with JSX comments removed
90783
+ * @example
90784
+ * ```typescript
90785
+ * removeJSXComments('Text { /* comment *\/ } more text')
90786
+ * // Returns: 'Text more text'
90787
+ * ```
90788
+ */
90789
+ function removeJSXComments(content) {
90790
+ return content.replace(/\{\s*\/\*[^*]*(?:\*(?!\/)[^*]*)*\*\/\s*\}/g, '');
90791
+ }
90792
+ /**
90793
+ * Extracts content between balanced braces, handling nested braces.
90794
+ *
90795
+ * @param content
90796
+ * @param start
90797
+ * @returns Object with extracted content and end position, or null if braces are unbalanced
90798
+ * @example
90799
+ * ```typescript
90800
+ * const input = 'foo{bar{baz}qux}end';
90801
+ * extractBalancedBraces(input, 3) // start at position 3 (after '{')
90802
+ * // Returns: { content: 'bar{baz}qux', end: 16 }
90803
+ * ```
90804
+ */
90805
+ function extractBalancedBraces(content, start) {
90806
+ let depth = 1;
90807
+ let pos = start;
90808
+ while (pos < content.length && depth > 0) {
90809
+ const char = content[pos];
90810
+ if (char === '{')
90811
+ depth += 1;
90812
+ else if (char === '}')
90813
+ depth -= 1;
90814
+ pos += 1;
90815
+ }
90816
+ if (depth !== 0)
90817
+ return null;
90818
+ return { content: content.slice(start, pos - 1), end: pos };
90819
+ }
90820
+ /**
90821
+ * Escapes problematic braces in content to prevent MDX expression parsing errors.
90822
+ * Handles three cases:
90823
+ * 1. Unbalanced braces (e.g., `{foo` without closing `}`)
90824
+ * 2. Paragraph-spanning expressions (e.g., `{\n\n}` where blank line splits paragraphs)
90825
+ * 3. Skips HTML elements to prevent backslashes appearing in output
90826
+ *
90827
+ */
90828
+ function escapeProblematicBraces(content) {
90829
+ // Skip HTML elements — their content should never be escaped because
90830
+ // rehypeRaw parses them into hast elements, making `\` literal text in output
90831
+ const htmlElements = [];
90832
+ const safe = content.replace(/<([a-z][a-zA-Z0-9]*)(?:\s[^>]*)?>[\s\S]*?<\/\1>/g, match => {
90833
+ const idx = htmlElements.length;
90834
+ htmlElements.push(match);
90835
+ return `___HTML_ELEM_${idx}___`;
90836
+ });
90837
+ const toEscape = new Set();
90838
+ // Convert to array of Unicode code points to handle emojis and multi-byte characters correctly
90839
+ const chars = Array.from(safe);
90840
+ let strDelim = null;
90841
+ let strEscaped = false;
90842
+ // Stack of open braces with their state
90843
+ const openStack = [];
90844
+ // Track position of last newline (outside strings) to detect blank lines
90845
+ let lastNewlinePos = -2; // -2 means no recent newline
90846
+ for (let i = 0; i < chars.length; i += 1) {
90847
+ const ch = chars[i];
90848
+ // Track string delimiters inside expressions to ignore braces within them
90849
+ if (openStack.length > 0) {
90850
+ if (strDelim) {
90851
+ if (strEscaped)
90852
+ strEscaped = false;
90853
+ else if (ch === '\\')
90854
+ strEscaped = true;
90855
+ else if (ch === strDelim)
90856
+ strDelim = null;
90857
+ // eslint-disable-next-line no-continue
90858
+ continue;
90859
+ }
90860
+ if (ch === '"' || ch === "'" || ch === '`') {
90861
+ strDelim = ch;
90862
+ // eslint-disable-next-line no-continue
90863
+ continue;
90864
+ }
90865
+ // Track newlines to detect blank lines (paragraph boundaries)
90866
+ if (ch === '\n') {
90867
+ // Check if this newline creates a blank line (only whitespace since last newline)
90868
+ if (lastNewlinePos >= 0) {
90869
+ const between = chars.slice(lastNewlinePos + 1, i).join('');
90870
+ if (/^[ \t]*$/.test(between)) {
90871
+ // This is a blank line - mark all open expressions as paragraph-spanning
90872
+ openStack.forEach(entry => {
90873
+ entry.hasBlankLine = true;
90874
+ });
90875
+ }
90876
+ }
90877
+ lastNewlinePos = i;
90878
+ }
90879
+ }
90880
+ // Skip already-escaped braces (count preceding backslashes)
90881
+ if (ch === '{' || ch === '}') {
90882
+ let bs = 0;
90883
+ for (let j = i - 1; j >= 0 && chars[j] === '\\'; j -= 1)
90884
+ bs += 1;
90885
+ if (bs % 2 === 1) {
90886
+ // eslint-disable-next-line no-continue
90887
+ continue;
90888
+ }
90889
+ }
90890
+ if (ch === '{') {
90891
+ openStack.push({ pos: i, hasBlankLine: false });
90892
+ lastNewlinePos = -2; // Reset newline tracking for new expression
90893
+ }
90894
+ else if (ch === '}') {
90895
+ if (openStack.length > 0) {
90896
+ const entry = openStack.pop();
90897
+ // If expression spans paragraph boundary, escape both braces
90898
+ if (entry.hasBlankLine) {
90899
+ toEscape.add(entry.pos);
90900
+ toEscape.add(i);
90901
+ }
90902
+ }
90903
+ else {
90904
+ // Unbalanced closing brace (no matching open)
90905
+ toEscape.add(i);
90906
+ }
90907
+ }
90908
+ }
90909
+ // Any remaining open braces are unbalanced
90910
+ openStack.forEach(entry => toEscape.add(entry.pos));
90911
+ // If there are no problematic braces, return safe content as-is;
90912
+ // otherwise, escape each problematic `{` or `}` so MDX doesn't treat them as expressions.
90913
+ let result = toEscape.size === 0
90914
+ ? safe
90915
+ : chars.map((ch, i) => (toEscape.has(i) ? `\\${ch}` : ch)).join('');
90916
+ // Restore HTML elements
90917
+ if (htmlElements.length > 0) {
90918
+ result = result.replace(/___HTML_ELEM_(\d+)___/g, (_m, idx) => htmlElements[parseInt(idx, 10)]);
90919
+ }
90920
+ return result;
90921
+ }
90922
+ /**
90923
+ * Converts JSX attribute expressions (attribute={expression}) to HTML attributes (attribute="value").
90924
+ * Handles style objects (camelCase → kebab-case), className → class, and JSON stringifies objects.
90925
+ *
90926
+ * @param content
90927
+ * @param context
90928
+ * @returns Content with attribute expressions evaluated and converted to HTML attributes
90929
+ * @example
90930
+ * ```typescript
90931
+ * const context = { baseUrl: 'https://example.com' };
90932
+ * const input = '<a href={baseUrl}>Link</a>';
90933
+ * evaluateAttributeExpressions(input, context)
90934
+ * // Returns: '<a href="https://example.com">Link</a>'
90935
+ * ```
90936
+ */
90937
+ function evaluateAttributeExpressions(content, context, protectedCode) {
90938
+ const attrStartRegex = /(\w+)=\{/g;
90939
+ let result = '';
90940
+ let lastEnd = 0;
90941
+ let match = attrStartRegex.exec(content);
90942
+ while (match !== null) {
90943
+ const attributeName = match[1];
90944
+ const braceStart = match.index + match[0].length;
90945
+ const extracted = extractBalancedBraces(content, braceStart);
90946
+ if (extracted) {
90947
+ // The expression might contain template literals in MDX component tag props
90948
+ // E.g. <Component greeting={`Hello World!`} />
90949
+ // that is marked as inline code. So we need to restore the inline codes
90950
+ // in the expression to evaluate it
90951
+ let expression = extracted.content;
90952
+ if (protectedCode) {
90953
+ expression = restoreInlineCode(expression, protectedCode);
90954
+ }
90955
+ const fullMatchEnd = extracted.end;
90956
+ result += content.slice(lastEnd, match.index);
90957
+ try {
90958
+ const evalResult = evaluateExpression(expression, context);
90959
+ if (typeof evalResult === 'object' && evalResult !== null) {
90960
+ if (attributeName === 'style') {
90961
+ const cssString = Object.entries(evalResult)
90962
+ .map(([key, value]) => {
90963
+ const cssKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();
90964
+ return `${cssKey}: ${value}`;
90965
+ })
90966
+ .join('; ');
90967
+ result += `style="${cssString}"`;
90968
+ }
90969
+ else {
90970
+ // These are arrays / objects attribute values
90971
+ // Mark JSON-serialized values with a prefix so they can be parsed back correctly
90972
+ const jsonValue = escapeHtmlAttribute(JSON_VALUE_MARKER + JSON.stringify(evalResult));
90973
+ // Use double quotes so that multi-paragraph values are not split into multiple attributes by the processors
90974
+ result += `${attributeName}="${jsonValue}"`;
90975
+ }
90976
+ }
90977
+ else if (attributeName === 'className') {
90978
+ // Escape special characters so that it doesn't break and split the attribute value to nodes
90979
+ // This will be restored later in the pipeline
90980
+ result += `class="${escapeHtmlAttribute(String(evalResult))}"`;
90981
+ }
90982
+ else {
90983
+ result += `${attributeName}="${escapeHtmlAttribute(String(evalResult))}"`;
90984
+ }
90985
+ }
90986
+ catch (_error) {
90987
+ result += content.slice(match.index, fullMatchEnd);
90988
+ }
90989
+ lastEnd = fullMatchEnd;
90990
+ attrStartRegex.lastIndex = fullMatchEnd;
90991
+ }
90992
+ match = attrStartRegex.exec(content);
90993
+ }
90994
+ result += content.slice(lastEnd);
90995
+ return result;
90996
+ }
90997
+ /**
90998
+ * Preprocesses JSX-like expressions in markdown before parsing.
90999
+ * Inline expressions are handled separately; attribute expressions are processed here.
91000
+ *
91001
+ * @param content
91002
+ * @param context
91003
+ * @returns Preprocessed content ready for markdown parsing
91004
+ */
91005
+ function preprocessJSXExpressions(content, context = {}) {
91006
+ // Step 0: Base64 encode HTMLBlock content
91007
+ let processed = protectHTMLBlockContent(content);
91008
+ // Step 1: Protect code blocks and inline code
91009
+ const { protectedCode, protectedContent } = protectCodeBlocks(processed);
91010
+ // Step 2: Evaluate attribute expressions (JSX attribute syntax: href={baseUrl})
91011
+ // For inline expressions, we use a library to parse the expression & evaluate it later
91012
+ // For attribute expressions, it was difficult to use a library to parse them, so do it manually
91013
+ processed = evaluateAttributeExpressions(protectedContent, context, protectedCode);
91014
+ // Step 3: Escape problematic braces to prevent MDX expression parsing errors
91015
+ // This handles both unbalanced braces and paragraph-spanning expressions in one pass
91016
+ processed = escapeProblematicBraces(processed);
91017
+ // Step 4: Restore protected code blocks
91018
+ processed = restoreCodeBlocks(processed, protectedCode);
91019
+ return processed;
91020
+ }
91021
+
90710
91022
  ;// ./processor/utils.ts
90711
91023
 
90712
91024
 
91025
+
90713
91026
  /**
90714
91027
  * Formats the hProperties of a node as a string, so they can be compiled back into JSX/MDX.
90715
91028
  * This currently sets all the values to a string since we process/compile the MDX on the fly
@@ -90765,7 +91078,17 @@ const getHPropKeys = (node) => {
90765
91078
  const getAttrs = (jsx) => jsx.attributes.reduce((memo, attr) => {
90766
91079
  if ('name' in attr) {
90767
91080
  if (typeof attr.value === 'string') {
90768
- memo[attr.name] = attr.value;
91081
+ if (attr.value.startsWith(JSON_VALUE_MARKER)) {
91082
+ try {
91083
+ memo[attr.name] = JSON.parse(attr.value.slice(JSON_VALUE_MARKER.length));
91084
+ }
91085
+ catch {
91086
+ memo[attr.name] = attr.value;
91087
+ }
91088
+ }
91089
+ else {
91090
+ memo[attr.name] = attr.value;
91091
+ }
90769
91092
  }
90770
91093
  else if (attr.value === null) {
90771
91094
  memo[attr.name] = true;
@@ -91539,10 +91862,10 @@ const hasFlowContent = (nodes) => {
91539
91862
  * Process a Table node: re-parse text-only cell content, then output as
91540
91863
  * a markdown table (phrasing-only) or keep as JSX <Table> (has flow content).
91541
91864
  */
91542
- const processTableNode = (node, index, parent) => {
91865
+ const processTableNode = (node, index, parent, documentPosition) => {
91543
91866
  if (node.name !== 'Table')
91544
91867
  return;
91545
- const { position } = node;
91868
+ const position = documentPosition ?? node.position;
91546
91869
  const { align: alignAttr } = getAttrs(node);
91547
91870
  const align = Array.isArray(alignAttr) ? alignAttr : null;
91548
91871
  let tableHasFlowContent = false;
@@ -91665,7 +91988,7 @@ const mdxishTables = () => tree => {
91665
91988
  const parsed = tableNodeProcessor.runSync(tableNodeProcessor.parse(node.value));
91666
91989
  visit(parsed, isMDXElement, (tableNode) => {
91667
91990
  if (tableNode.name === 'Table') {
91668
- processTableNode(tableNode, index, parent);
91991
+ processTableNode(tableNode, index, parent, node.position);
91669
91992
  // Stop after the outermost Table so nested Tables don't overwrite parent.children[index]
91670
91993
  // we let it get handled naturally
91671
91994
  return EXIT;
@@ -97080,6 +97403,12 @@ const deserializer = ($, _) => {
97080
97403
  return as(BigInt(value), index);
97081
97404
  case 'BigInt':
97082
97405
  return as(Object(BigInt(value)), index);
97406
+ case 'ArrayBuffer':
97407
+ return as(new Uint8Array(value).buffer, value);
97408
+ case 'DataView': {
97409
+ const { buffer } = new Uint8Array(value);
97410
+ return as(new DataView(buffer), value);
97411
+ }
97083
97412
  }
97084
97413
  return as(new env[type](value), index);
97085
97414
  };
@@ -97125,6 +97454,8 @@ const typeOf = value => {
97125
97454
  return [MAP, EMPTY];
97126
97455
  case 'Set':
97127
97456
  return [SET, EMPTY];
97457
+ case 'DataView':
97458
+ return [ARRAY, asString];
97128
97459
  }
97129
97460
 
97130
97461
  if (asString.includes('Array'))
@@ -97174,9 +97505,17 @@ const serializer = (strict, json, $, _) => {
97174
97505
  return as([TYPE, entry], value);
97175
97506
  }
97176
97507
  case ARRAY: {
97177
- if (type)
97178
- return as([type, [...value]], value);
97179
-
97508
+ if (type) {
97509
+ let spread = value;
97510
+ if (type === 'DataView') {
97511
+ spread = new Uint8Array(value.buffer);
97512
+ }
97513
+ else if (type === 'ArrayBuffer') {
97514
+ spread = new Uint8Array(value);
97515
+ }
97516
+ return as([type, [...spread]], value);
97517
+ }
97518
+
97180
97519
  const arr = [];
97181
97520
  const index = as([TYPE, arr], value);
97182
97521
  for (const entry of value)
@@ -112004,6 +112343,27 @@ function rehypeRemark(destination, options) {
112004
112343
  }
112005
112344
  }
112006
112345
 
112346
+ ;// ./processor/compile/anchor.ts
112347
+
112348
+
112349
+ const anchor_anchor = (node) => {
112350
+ const { href, label, target, title } = getHProps(node);
112351
+ const attrs = {
112352
+ ...(label && { label }),
112353
+ ...(target && { target }),
112354
+ href: href ?? '',
112355
+ ...(title && { title }),
112356
+ };
112357
+ // Serialize children (phrasing content) back to markdown
112358
+ // Wrap in paragraph to satisfy RootContent type requirement
112359
+ const children = toMarkdown({
112360
+ type: 'paragraph',
112361
+ children: node.children,
112362
+ }).trim();
112363
+ return `<Anchor ${formatProps(attrs)}>${children}</Anchor>`;
112364
+ };
112365
+ /* harmony default export */ const compile_anchor = (anchor_anchor);
112366
+
112007
112367
  ;// ./processor/compile/callout.ts
112008
112368
 
112009
112369
  const callout = (node, _, state, info) => {
@@ -112186,10 +112546,12 @@ const plain_plain = (node) => node.value;
112186
112546
 
112187
112547
 
112188
112548
 
112549
+
112189
112550
  function compilers(mdxish = false) {
112190
112551
  const data = this.data();
112191
112552
  const toMarkdownExtensions = data.toMarkdownExtensions || (data.toMarkdownExtensions = []);
112192
112553
  const handlers = {
112554
+ ...(mdxish && { [NodeTypes.anchor]: compile_anchor }),
112193
112555
  [NodeTypes.callout]: compile_callout,
112194
112556
  [NodeTypes.codeTabs]: compile_code_tabs,
112195
112557
  [NodeTypes.embedBlock]: compile_embed,
@@ -114101,412 +114463,6 @@ const mdxComponentHandlers = {
114101
114463
  [NodeTypes.htmlBlock]: htmlBlockHandler,
114102
114464
  };
114103
114465
 
114104
- ;// ./lib/utils/mdxish/protect-code-blocks.ts
114105
- /**
114106
- * Replaces code blocks and inline code with placeholders to protect them from preprocessing.
114107
- *
114108
- * @param content - The markdown content to process
114109
- * @returns Object containing protected content and arrays of original code blocks
114110
- * @example
114111
- * ```typescript
114112
- * const input = 'Text with `inline code` and ```fenced block```';
114113
- * protectCodeBlocks(input)
114114
- * // Returns: {
114115
- * // protectedCode: {
114116
- * // codeBlocks: ['```fenced block```'],
114117
- * // inlineCode: ['`inline code`']
114118
- * // },
114119
- * // protectedContent: 'Text with ___INLINE_CODE_0___ and ___CODE_BLOCK_0___'
114120
- * // }
114121
- * ```
114122
- */
114123
- function protectCodeBlocks(content) {
114124
- const codeBlocks = [];
114125
- const inlineCode = [];
114126
- let protectedContent = '';
114127
- let remaining = content;
114128
- let codeBlockStart = remaining.indexOf('```');
114129
- while (codeBlockStart !== -1) {
114130
- protectedContent += remaining.slice(0, codeBlockStart);
114131
- remaining = remaining.slice(codeBlockStart);
114132
- const codeBlockEnd = remaining.indexOf('```', 3);
114133
- if (codeBlockEnd === -1) {
114134
- break;
114135
- }
114136
- const match = remaining.slice(0, codeBlockEnd + 3);
114137
- const index = codeBlocks.length;
114138
- codeBlocks.push(match);
114139
- protectedContent += `___CODE_BLOCK_${index}___`;
114140
- remaining = remaining.slice(codeBlockEnd + 3);
114141
- codeBlockStart = remaining.indexOf('```');
114142
- }
114143
- protectedContent += remaining;
114144
- protectedContent = protectedContent.replace(/`([^`\n]+)`/g, match => {
114145
- const index = inlineCode.length;
114146
- inlineCode.push(match);
114147
- return `___INLINE_CODE_${index}___`;
114148
- });
114149
- return { protectedCode: { codeBlocks, inlineCode }, protectedContent };
114150
- }
114151
- /**
114152
- * Restores inline code by replacing placeholders with original content.
114153
- *
114154
- * @param content - Content with inline code placeholders
114155
- * @param protectedCode - The protected code arrays
114156
- * @returns Content with inline code restored
114157
- */
114158
- function restoreInlineCode(content, protectedCode) {
114159
- return content.replace(/___INLINE_CODE_(\d+)___/g, (_m, idx) => {
114160
- return protectedCode.inlineCode[parseInt(idx, 10)];
114161
- });
114162
- }
114163
- /**
114164
- * Restores fenced code blocks by replacing placeholders with original content.
114165
- *
114166
- * @param content - Content with code block placeholders
114167
- * @param protectedCode - The protected code arrays
114168
- * @returns Content with code blocks restored
114169
- */
114170
- function restoreFencedCodeBlocks(content, protectedCode) {
114171
- return content.replace(/___CODE_BLOCK_(\d+)___/g, (_m, idx) => {
114172
- return protectedCode.codeBlocks[parseInt(idx, 10)];
114173
- });
114174
- }
114175
- /**
114176
- * Restores all code blocks and inline code by replacing placeholders with original content.
114177
- *
114178
- * @param content - Content with code placeholders
114179
- * @param protectedCode - The protected code arrays
114180
- * @returns Content with all code blocks and inline code restored
114181
- * @example
114182
- * ```typescript
114183
- * const content = 'Text with ___INLINE_CODE_0___ and ___CODE_BLOCK_0___';
114184
- * const protectedCode = {
114185
- * codeBlocks: ['```js\ncode\n```'],
114186
- * inlineCode: ['`inline`']
114187
- * };
114188
- * restoreCodeBlocks(content, protectedCode)
114189
- * // Returns: 'Text with `inline` and ```js\ncode\n```'
114190
- * ```
114191
- */
114192
- function restoreCodeBlocks(content, protectedCode) {
114193
- let restored = restoreFencedCodeBlocks(content, protectedCode);
114194
- restored = restoreInlineCode(restored, protectedCode);
114195
- return restored;
114196
- }
114197
-
114198
- ;// ./processor/transform/mdxish/preprocess-jsx-expressions.ts
114199
-
114200
- // Base64 encode (Node.js + browser compatible)
114201
- function base64Encode(str) {
114202
- if (typeof Buffer !== 'undefined') {
114203
- return Buffer.from(str, 'utf-8').toString('base64');
114204
- }
114205
- return btoa(unescape(encodeURIComponent(str)));
114206
- }
114207
- // Base64 decode (Node.js + browser compatible)
114208
- function base64Decode(str) {
114209
- if (typeof Buffer !== 'undefined') {
114210
- return Buffer.from(str, 'base64').toString('utf-8');
114211
- }
114212
- return decodeURIComponent(escape(atob(str)));
114213
- }
114214
- function escapeHtmlAttribute(value) {
114215
- return value
114216
- .replace(/&/g, '&amp;')
114217
- .replace(/"/g, '&quot;')
114218
- .replace(/</g, '&lt;')
114219
- .replace(/>/g, '&gt;')
114220
- .replace(/\n/g, '&#10;');
114221
- }
114222
- // Marker prefix for JSON-serialized complex values (arrays/objects)
114223
- // Using a prefix that won't conflict with regular string values
114224
- const JSON_VALUE_MARKER = '__MDXISH_JSON__';
114225
- // Markers for protected HTMLBlock content (HTML comments avoid markdown parsing issues)
114226
- const HTML_BLOCK_CONTENT_START = '<!--RDMX_HTMLBLOCK:';
114227
- const HTML_BLOCK_CONTENT_END = ':RDMX_HTMLBLOCK-->';
114228
- /**
114229
- * Evaluates a JavaScript expression using context variables.
114230
- *
114231
- * @param expression
114232
- * @param context
114233
- * @returns The evaluated result
114234
- * @example
114235
- * ```typescript
114236
- * const context = { baseUrl: 'https://example.com', path: '/api' };
114237
- * evaluateExpression('baseUrl + path', context)
114238
- * // Returns: 'https://example.com/api'
114239
- * ```
114240
- */
114241
- function evaluateExpression(expression, context) {
114242
- const contextKeys = Object.keys(context);
114243
- const contextValues = Object.values(context);
114244
- // eslint-disable-next-line no-new-func
114245
- const func = new Function(...contextKeys, `return ${expression}`);
114246
- return func(...contextValues);
114247
- }
114248
- /**
114249
- * Base64 encodes HTMLBlock template literal content to prevent markdown parser from consuming <script>/<style> tags.
114250
- *
114251
- * @param content
114252
- * @returns Content with HTMLBlock template literals base64 encoded in HTML comments
114253
- * @example
114254
- * ```typescript
114255
- * const input = '<HTMLBlock>{`<script>alert("xss")</script>`}</HTMLBlock>';
114256
- * protectHTMLBlockContent(input)
114257
- * // Returns: '<HTMLBlock><!--RDMX_HTMLBLOCK:PHNjcmlwdD5hbGVydCgieHNzIik8L3NjcmlwdD4=:RDMX_HTMLBLOCK--></HTMLBlock>'
114258
- * ```
114259
- */
114260
- function protectHTMLBlockContent(content) {
114261
- return content.replace(/(<HTMLBlock[^>]*>)\{\s*`((?:[^`\\]|\\.)*)`\s*\}(<\/HTMLBlock>)/g, (_match, openTag, templateContent, closeTag) => {
114262
- const encoded = base64Encode(templateContent);
114263
- return `${openTag}${HTML_BLOCK_CONTENT_START}${encoded}${HTML_BLOCK_CONTENT_END}${closeTag}`;
114264
- });
114265
- }
114266
- /**
114267
- * Removes JSX-style comments (e.g., { /* comment *\/ }) from content.
114268
- *
114269
- * @param content
114270
- * @returns Content with JSX comments removed
114271
- * @example
114272
- * ```typescript
114273
- * removeJSXComments('Text { /* comment *\/ } more text')
114274
- * // Returns: 'Text more text'
114275
- * ```
114276
- */
114277
- function removeJSXComments(content) {
114278
- return content.replace(/\{\s*\/\*[^*]*(?:\*(?!\/)[^*]*)*\*\/\s*\}/g, '');
114279
- }
114280
- /**
114281
- * Extracts content between balanced braces, handling nested braces.
114282
- *
114283
- * @param content
114284
- * @param start
114285
- * @returns Object with extracted content and end position, or null if braces are unbalanced
114286
- * @example
114287
- * ```typescript
114288
- * const input = 'foo{bar{baz}qux}end';
114289
- * extractBalancedBraces(input, 3) // start at position 3 (after '{')
114290
- * // Returns: { content: 'bar{baz}qux', end: 16 }
114291
- * ```
114292
- */
114293
- function extractBalancedBraces(content, start) {
114294
- let depth = 1;
114295
- let pos = start;
114296
- while (pos < content.length && depth > 0) {
114297
- const char = content[pos];
114298
- if (char === '{')
114299
- depth += 1;
114300
- else if (char === '}')
114301
- depth -= 1;
114302
- pos += 1;
114303
- }
114304
- if (depth !== 0)
114305
- return null;
114306
- return { content: content.slice(start, pos - 1), end: pos };
114307
- }
114308
- /**
114309
- * Escapes problematic braces in content to prevent MDX expression parsing errors.
114310
- * Handles three cases:
114311
- * 1. Unbalanced braces (e.g., `{foo` without closing `}`)
114312
- * 2. Paragraph-spanning expressions (e.g., `{\n\n}` where blank line splits paragraphs)
114313
- * 3. Skips HTML elements to prevent backslashes appearing in output
114314
- *
114315
- */
114316
- function escapeProblematicBraces(content) {
114317
- // Skip HTML elements — their content should never be escaped because
114318
- // rehypeRaw parses them into hast elements, making `\` literal text in output
114319
- const htmlElements = [];
114320
- const safe = content.replace(/<([a-z][a-zA-Z0-9]*)(?:\s[^>]*)?>[\s\S]*?<\/\1>/g, match => {
114321
- const idx = htmlElements.length;
114322
- htmlElements.push(match);
114323
- return `___HTML_ELEM_${idx}___`;
114324
- });
114325
- const toEscape = new Set();
114326
- // Convert to array of Unicode code points to handle emojis and multi-byte characters correctly
114327
- const chars = Array.from(safe);
114328
- let strDelim = null;
114329
- let strEscaped = false;
114330
- // Stack of open braces with their state
114331
- const openStack = [];
114332
- // Track position of last newline (outside strings) to detect blank lines
114333
- let lastNewlinePos = -2; // -2 means no recent newline
114334
- for (let i = 0; i < chars.length; i += 1) {
114335
- const ch = chars[i];
114336
- // Track string delimiters inside expressions to ignore braces within them
114337
- if (openStack.length > 0) {
114338
- if (strDelim) {
114339
- if (strEscaped)
114340
- strEscaped = false;
114341
- else if (ch === '\\')
114342
- strEscaped = true;
114343
- else if (ch === strDelim)
114344
- strDelim = null;
114345
- // eslint-disable-next-line no-continue
114346
- continue;
114347
- }
114348
- if (ch === '"' || ch === "'" || ch === '`') {
114349
- strDelim = ch;
114350
- // eslint-disable-next-line no-continue
114351
- continue;
114352
- }
114353
- // Track newlines to detect blank lines (paragraph boundaries)
114354
- if (ch === '\n') {
114355
- // Check if this newline creates a blank line (only whitespace since last newline)
114356
- if (lastNewlinePos >= 0) {
114357
- const between = chars.slice(lastNewlinePos + 1, i).join('');
114358
- if (/^[ \t]*$/.test(between)) {
114359
- // This is a blank line - mark all open expressions as paragraph-spanning
114360
- openStack.forEach(entry => {
114361
- entry.hasBlankLine = true;
114362
- });
114363
- }
114364
- }
114365
- lastNewlinePos = i;
114366
- }
114367
- }
114368
- // Skip already-escaped braces (count preceding backslashes)
114369
- if (ch === '{' || ch === '}') {
114370
- let bs = 0;
114371
- for (let j = i - 1; j >= 0 && chars[j] === '\\'; j -= 1)
114372
- bs += 1;
114373
- if (bs % 2 === 1) {
114374
- // eslint-disable-next-line no-continue
114375
- continue;
114376
- }
114377
- }
114378
- if (ch === '{') {
114379
- openStack.push({ pos: i, hasBlankLine: false });
114380
- lastNewlinePos = -2; // Reset newline tracking for new expression
114381
- }
114382
- else if (ch === '}') {
114383
- if (openStack.length > 0) {
114384
- const entry = openStack.pop();
114385
- // If expression spans paragraph boundary, escape both braces
114386
- if (entry.hasBlankLine) {
114387
- toEscape.add(entry.pos);
114388
- toEscape.add(i);
114389
- }
114390
- }
114391
- else {
114392
- // Unbalanced closing brace (no matching open)
114393
- toEscape.add(i);
114394
- }
114395
- }
114396
- }
114397
- // Any remaining open braces are unbalanced
114398
- openStack.forEach(entry => toEscape.add(entry.pos));
114399
- // If there are no problematic braces, return safe content as-is;
114400
- // otherwise, escape each problematic `{` or `}` so MDX doesn't treat them as expressions.
114401
- let result = toEscape.size === 0
114402
- ? safe
114403
- : chars.map((ch, i) => (toEscape.has(i) ? `\\${ch}` : ch)).join('');
114404
- // Restore HTML elements
114405
- if (htmlElements.length > 0) {
114406
- result = result.replace(/___HTML_ELEM_(\d+)___/g, (_m, idx) => htmlElements[parseInt(idx, 10)]);
114407
- }
114408
- return result;
114409
- }
114410
- /**
114411
- * Converts JSX attribute expressions (attribute={expression}) to HTML attributes (attribute="value").
114412
- * Handles style objects (camelCase → kebab-case), className → class, and JSON stringifies objects.
114413
- *
114414
- * @param content
114415
- * @param context
114416
- * @returns Content with attribute expressions evaluated and converted to HTML attributes
114417
- * @example
114418
- * ```typescript
114419
- * const context = { baseUrl: 'https://example.com' };
114420
- * const input = '<a href={baseUrl}>Link</a>';
114421
- * evaluateAttributeExpressions(input, context)
114422
- * // Returns: '<a href="https://example.com">Link</a>'
114423
- * ```
114424
- */
114425
- function evaluateAttributeExpressions(content, context, protectedCode) {
114426
- const attrStartRegex = /(\w+)=\{/g;
114427
- let result = '';
114428
- let lastEnd = 0;
114429
- let match = attrStartRegex.exec(content);
114430
- while (match !== null) {
114431
- const attributeName = match[1];
114432
- const braceStart = match.index + match[0].length;
114433
- const extracted = extractBalancedBraces(content, braceStart);
114434
- if (extracted) {
114435
- // The expression might contain template literals in MDX component tag props
114436
- // E.g. <Component greeting={`Hello World!`} />
114437
- // that is marked as inline code. So we need to restore the inline codes
114438
- // in the expression to evaluate it
114439
- let expression = extracted.content;
114440
- if (protectedCode) {
114441
- expression = restoreInlineCode(expression, protectedCode);
114442
- }
114443
- const fullMatchEnd = extracted.end;
114444
- result += content.slice(lastEnd, match.index);
114445
- try {
114446
- const evalResult = evaluateExpression(expression, context);
114447
- if (typeof evalResult === 'object' && evalResult !== null) {
114448
- if (attributeName === 'style') {
114449
- const cssString = Object.entries(evalResult)
114450
- .map(([key, value]) => {
114451
- const cssKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();
114452
- return `${cssKey}: ${value}`;
114453
- })
114454
- .join('; ');
114455
- result += `style="${cssString}"`;
114456
- }
114457
- else {
114458
- // These are arrays / objects attribute values
114459
- // Mark JSON-serialized values with a prefix so they can be parsed back correctly
114460
- const jsonValue = escapeHtmlAttribute(JSON_VALUE_MARKER + JSON.stringify(evalResult));
114461
- // Use double quotes so that multi-paragraph values are not split into multiple attributes by the processors
114462
- result += `${attributeName}="${jsonValue}"`;
114463
- }
114464
- }
114465
- else if (attributeName === 'className') {
114466
- // Escape special characters so that it doesn't break and split the attribute value to nodes
114467
- // This will be restored later in the pipeline
114468
- result += `class="${escapeHtmlAttribute(String(evalResult))}"`;
114469
- }
114470
- else {
114471
- result += `${attributeName}="${escapeHtmlAttribute(String(evalResult))}"`;
114472
- }
114473
- }
114474
- catch (_error) {
114475
- result += content.slice(match.index, fullMatchEnd);
114476
- }
114477
- lastEnd = fullMatchEnd;
114478
- attrStartRegex.lastIndex = fullMatchEnd;
114479
- }
114480
- match = attrStartRegex.exec(content);
114481
- }
114482
- result += content.slice(lastEnd);
114483
- return result;
114484
- }
114485
- /**
114486
- * Preprocesses JSX-like expressions in markdown before parsing.
114487
- * Inline expressions are handled separately; attribute expressions are processed here.
114488
- *
114489
- * @param content
114490
- * @param context
114491
- * @returns Preprocessed content ready for markdown parsing
114492
- */
114493
- function preprocessJSXExpressions(content, context = {}) {
114494
- // Step 0: Base64 encode HTMLBlock content
114495
- let processed = protectHTMLBlockContent(content);
114496
- // Step 1: Protect code blocks and inline code
114497
- const { protectedCode, protectedContent } = protectCodeBlocks(processed);
114498
- // Step 2: Evaluate attribute expressions (JSX attribute syntax: href={baseUrl})
114499
- // For inline expressions, we use a library to parse the expression & evaluate it later
114500
- // For attribute expressions, it was difficult to use a library to parse them, so do it manually
114501
- processed = evaluateAttributeExpressions(protectedContent, context, protectedCode);
114502
- // Step 3: Escape problematic braces to prevent MDX expression parsing errors
114503
- // This handles both unbalanced braces and paragraph-spanning expressions in one pass
114504
- processed = escapeProblematicBraces(processed);
114505
- // Step 4: Restore protected code blocks
114506
- processed = restoreCodeBlocks(processed, protectedCode);
114507
- return processed;
114508
- }
114509
-
114510
114466
  ;// ./processor/transform/mdxish/evaluate-expressions.ts
114511
114467
 
114512
114468
 
@@ -115024,6 +114980,591 @@ function legacyVariable() {
115024
114980
  */
115025
114981
 
115026
114982
 
114983
+ ;// ./node_modules/entities/lib/esm/generated/decode-data-html.js
114984
+ // Generated using scripts/write-decode-map.ts
114985
+ /* harmony default export */ const decode_data_html = (new Uint16Array(
114986
+ // prettier-ignore
114987
+ "\u1d41<\xd5\u0131\u028a\u049d\u057b\u05d0\u0675\u06de\u07a2\u07d6\u080f\u0a4a\u0a91\u0da1\u0e6d\u0f09\u0f26\u10ca\u1228\u12e1\u1415\u149d\u14c3\u14df\u1525\0\0\0\0\0\0\u156b\u16cd\u198d\u1c12\u1ddd\u1f7e\u2060\u21b0\u228d\u23c0\u23fb\u2442\u2824\u2912\u2d08\u2e48\u2fce\u3016\u32ba\u3639\u37ac\u38fe\u3a28\u3a71\u3ae0\u3b2e\u0800EMabcfglmnoprstu\\bfms\x7f\x84\x8b\x90\x95\x98\xa6\xb3\xb9\xc8\xcflig\u803b\xc6\u40c6P\u803b&\u4026cute\u803b\xc1\u40c1reve;\u4102\u0100iyx}rc\u803b\xc2\u40c2;\u4410r;\uc000\ud835\udd04rave\u803b\xc0\u40c0pha;\u4391acr;\u4100d;\u6a53\u0100gp\x9d\xa1on;\u4104f;\uc000\ud835\udd38plyFunction;\u6061ing\u803b\xc5\u40c5\u0100cs\xbe\xc3r;\uc000\ud835\udc9cign;\u6254ilde\u803b\xc3\u40c3ml\u803b\xc4\u40c4\u0400aceforsu\xe5\xfb\xfe\u0117\u011c\u0122\u0127\u012a\u0100cr\xea\xf2kslash;\u6216\u0176\xf6\xf8;\u6ae7ed;\u6306y;\u4411\u0180crt\u0105\u010b\u0114ause;\u6235noullis;\u612ca;\u4392r;\uc000\ud835\udd05pf;\uc000\ud835\udd39eve;\u42d8c\xf2\u0113mpeq;\u624e\u0700HOacdefhilorsu\u014d\u0151\u0156\u0180\u019e\u01a2\u01b5\u01b7\u01ba\u01dc\u0215\u0273\u0278\u027ecy;\u4427PY\u803b\xa9\u40a9\u0180cpy\u015d\u0162\u017aute;\u4106\u0100;i\u0167\u0168\u62d2talDifferentialD;\u6145leys;\u612d\u0200aeio\u0189\u018e\u0194\u0198ron;\u410cdil\u803b\xc7\u40c7rc;\u4108nint;\u6230ot;\u410a\u0100dn\u01a7\u01adilla;\u40b8terDot;\u40b7\xf2\u017fi;\u43a7rcle\u0200DMPT\u01c7\u01cb\u01d1\u01d6ot;\u6299inus;\u6296lus;\u6295imes;\u6297o\u0100cs\u01e2\u01f8kwiseContourIntegral;\u6232eCurly\u0100DQ\u0203\u020foubleQuote;\u601duote;\u6019\u0200lnpu\u021e\u0228\u0247\u0255on\u0100;e\u0225\u0226\u6237;\u6a74\u0180git\u022f\u0236\u023aruent;\u6261nt;\u622fourIntegral;\u622e\u0100fr\u024c\u024e;\u6102oduct;\u6210nterClockwiseContourIntegral;\u6233oss;\u6a2fcr;\uc000\ud835\udc9ep\u0100;C\u0284\u0285\u62d3ap;\u624d\u0580DJSZacefios\u02a0\u02ac\u02b0\u02b4\u02b8\u02cb\u02d7\u02e1\u02e6\u0333\u048d\u0100;o\u0179\u02a5trahd;\u6911cy;\u4402cy;\u4405cy;\u440f\u0180grs\u02bf\u02c4\u02c7ger;\u6021r;\u61a1hv;\u6ae4\u0100ay\u02d0\u02d5ron;\u410e;\u4414l\u0100;t\u02dd\u02de\u6207a;\u4394r;\uc000\ud835\udd07\u0100af\u02eb\u0327\u0100cm\u02f0\u0322ritical\u0200ADGT\u0300\u0306\u0316\u031ccute;\u40b4o\u0174\u030b\u030d;\u42d9bleAcute;\u42ddrave;\u4060ilde;\u42dcond;\u62c4ferentialD;\u6146\u0470\u033d\0\0\0\u0342\u0354\0\u0405f;\uc000\ud835\udd3b\u0180;DE\u0348\u0349\u034d\u40a8ot;\u60dcqual;\u6250ble\u0300CDLRUV\u0363\u0372\u0382\u03cf\u03e2\u03f8ontourIntegra\xec\u0239o\u0274\u0379\0\0\u037b\xbb\u0349nArrow;\u61d3\u0100eo\u0387\u03a4ft\u0180ART\u0390\u0396\u03a1rrow;\u61d0ightArrow;\u61d4e\xe5\u02cang\u0100LR\u03ab\u03c4eft\u0100AR\u03b3\u03b9rrow;\u67f8ightArrow;\u67faightArrow;\u67f9ight\u0100AT\u03d8\u03derrow;\u61d2ee;\u62a8p\u0241\u03e9\0\0\u03efrrow;\u61d1ownArrow;\u61d5erticalBar;\u6225n\u0300ABLRTa\u0412\u042a\u0430\u045e\u047f\u037crrow\u0180;BU\u041d\u041e\u0422\u6193ar;\u6913pArrow;\u61f5reve;\u4311eft\u02d2\u043a\0\u0446\0\u0450ightVector;\u6950eeVector;\u695eector\u0100;B\u0459\u045a\u61bdar;\u6956ight\u01d4\u0467\0\u0471eeVector;\u695fector\u0100;B\u047a\u047b\u61c1ar;\u6957ee\u0100;A\u0486\u0487\u62a4rrow;\u61a7\u0100ct\u0492\u0497r;\uc000\ud835\udc9frok;\u4110\u0800NTacdfglmopqstux\u04bd\u04c0\u04c4\u04cb\u04de\u04e2\u04e7\u04ee\u04f5\u0521\u052f\u0536\u0552\u055d\u0560\u0565G;\u414aH\u803b\xd0\u40d0cute\u803b\xc9\u40c9\u0180aiy\u04d2\u04d7\u04dcron;\u411arc\u803b\xca\u40ca;\u442dot;\u4116r;\uc000\ud835\udd08rave\u803b\xc8\u40c8ement;\u6208\u0100ap\u04fa\u04fecr;\u4112ty\u0253\u0506\0\0\u0512mallSquare;\u65fberySmallSquare;\u65ab\u0100gp\u0526\u052aon;\u4118f;\uc000\ud835\udd3csilon;\u4395u\u0100ai\u053c\u0549l\u0100;T\u0542\u0543\u6a75ilde;\u6242librium;\u61cc\u0100ci\u0557\u055ar;\u6130m;\u6a73a;\u4397ml\u803b\xcb\u40cb\u0100ip\u056a\u056fsts;\u6203onentialE;\u6147\u0280cfios\u0585\u0588\u058d\u05b2\u05ccy;\u4424r;\uc000\ud835\udd09lled\u0253\u0597\0\0\u05a3mallSquare;\u65fcerySmallSquare;\u65aa\u0370\u05ba\0\u05bf\0\0\u05c4f;\uc000\ud835\udd3dAll;\u6200riertrf;\u6131c\xf2\u05cb\u0600JTabcdfgorst\u05e8\u05ec\u05ef\u05fa\u0600\u0612\u0616\u061b\u061d\u0623\u066c\u0672cy;\u4403\u803b>\u403emma\u0100;d\u05f7\u05f8\u4393;\u43dcreve;\u411e\u0180eiy\u0607\u060c\u0610dil;\u4122rc;\u411c;\u4413ot;\u4120r;\uc000\ud835\udd0a;\u62d9pf;\uc000\ud835\udd3eeater\u0300EFGLST\u0635\u0644\u064e\u0656\u065b\u0666qual\u0100;L\u063e\u063f\u6265ess;\u62dbullEqual;\u6267reater;\u6aa2ess;\u6277lantEqual;\u6a7eilde;\u6273cr;\uc000\ud835\udca2;\u626b\u0400Aacfiosu\u0685\u068b\u0696\u069b\u069e\u06aa\u06be\u06caRDcy;\u442a\u0100ct\u0690\u0694ek;\u42c7;\u405eirc;\u4124r;\u610clbertSpace;\u610b\u01f0\u06af\0\u06b2f;\u610dizontalLine;\u6500\u0100ct\u06c3\u06c5\xf2\u06a9rok;\u4126mp\u0144\u06d0\u06d8ownHum\xf0\u012fqual;\u624f\u0700EJOacdfgmnostu\u06fa\u06fe\u0703\u0707\u070e\u071a\u071e\u0721\u0728\u0744\u0778\u078b\u078f\u0795cy;\u4415lig;\u4132cy;\u4401cute\u803b\xcd\u40cd\u0100iy\u0713\u0718rc\u803b\xce\u40ce;\u4418ot;\u4130r;\u6111rave\u803b\xcc\u40cc\u0180;ap\u0720\u072f\u073f\u0100cg\u0734\u0737r;\u412ainaryI;\u6148lie\xf3\u03dd\u01f4\u0749\0\u0762\u0100;e\u074d\u074e\u622c\u0100gr\u0753\u0758ral;\u622bsection;\u62c2isible\u0100CT\u076c\u0772omma;\u6063imes;\u6062\u0180gpt\u077f\u0783\u0788on;\u412ef;\uc000\ud835\udd40a;\u4399cr;\u6110ilde;\u4128\u01eb\u079a\0\u079ecy;\u4406l\u803b\xcf\u40cf\u0280cfosu\u07ac\u07b7\u07bc\u07c2\u07d0\u0100iy\u07b1\u07b5rc;\u4134;\u4419r;\uc000\ud835\udd0dpf;\uc000\ud835\udd41\u01e3\u07c7\0\u07ccr;\uc000\ud835\udca5rcy;\u4408kcy;\u4404\u0380HJacfos\u07e4\u07e8\u07ec\u07f1\u07fd\u0802\u0808cy;\u4425cy;\u440cppa;\u439a\u0100ey\u07f6\u07fbdil;\u4136;\u441ar;\uc000\ud835\udd0epf;\uc000\ud835\udd42cr;\uc000\ud835\udca6\u0580JTaceflmost\u0825\u0829\u082c\u0850\u0863\u09b3\u09b8\u09c7\u09cd\u0a37\u0a47cy;\u4409\u803b<\u403c\u0280cmnpr\u0837\u083c\u0841\u0844\u084dute;\u4139bda;\u439bg;\u67ealacetrf;\u6112r;\u619e\u0180aey\u0857\u085c\u0861ron;\u413ddil;\u413b;\u441b\u0100fs\u0868\u0970t\u0500ACDFRTUVar\u087e\u08a9\u08b1\u08e0\u08e6\u08fc\u092f\u095b\u0390\u096a\u0100nr\u0883\u088fgleBracket;\u67e8row\u0180;BR\u0899\u089a\u089e\u6190ar;\u61e4ightArrow;\u61c6eiling;\u6308o\u01f5\u08b7\0\u08c3bleBracket;\u67e6n\u01d4\u08c8\0\u08d2eeVector;\u6961ector\u0100;B\u08db\u08dc\u61c3ar;\u6959loor;\u630aight\u0100AV\u08ef\u08f5rrow;\u6194ector;\u694e\u0100er\u0901\u0917e\u0180;AV\u0909\u090a\u0910\u62a3rrow;\u61a4ector;\u695aiangle\u0180;BE\u0924\u0925\u0929\u62b2ar;\u69cfqual;\u62b4p\u0180DTV\u0937\u0942\u094cownVector;\u6951eeVector;\u6960ector\u0100;B\u0956\u0957\u61bfar;\u6958ector\u0100;B\u0965\u0966\u61bcar;\u6952ight\xe1\u039cs\u0300EFGLST\u097e\u098b\u0995\u099d\u09a2\u09adqualGreater;\u62daullEqual;\u6266reater;\u6276ess;\u6aa1lantEqual;\u6a7dilde;\u6272r;\uc000\ud835\udd0f\u0100;e\u09bd\u09be\u62d8ftarrow;\u61daidot;\u413f\u0180npw\u09d4\u0a16\u0a1bg\u0200LRlr\u09de\u09f7\u0a02\u0a10eft\u0100AR\u09e6\u09ecrrow;\u67f5ightArrow;\u67f7ightArrow;\u67f6eft\u0100ar\u03b3\u0a0aight\xe1\u03bfight\xe1\u03caf;\uc000\ud835\udd43er\u0100LR\u0a22\u0a2ceftArrow;\u6199ightArrow;\u6198\u0180cht\u0a3e\u0a40\u0a42\xf2\u084c;\u61b0rok;\u4141;\u626a\u0400acefiosu\u0a5a\u0a5d\u0a60\u0a77\u0a7c\u0a85\u0a8b\u0a8ep;\u6905y;\u441c\u0100dl\u0a65\u0a6fiumSpace;\u605flintrf;\u6133r;\uc000\ud835\udd10nusPlus;\u6213pf;\uc000\ud835\udd44c\xf2\u0a76;\u439c\u0480Jacefostu\u0aa3\u0aa7\u0aad\u0ac0\u0b14\u0b19\u0d91\u0d97\u0d9ecy;\u440acute;\u4143\u0180aey\u0ab4\u0ab9\u0aberon;\u4147dil;\u4145;\u441d\u0180gsw\u0ac7\u0af0\u0b0eative\u0180MTV\u0ad3\u0adf\u0ae8ediumSpace;\u600bhi\u0100cn\u0ae6\u0ad8\xeb\u0ad9eryThi\xee\u0ad9ted\u0100GL\u0af8\u0b06reaterGreate\xf2\u0673essLes\xf3\u0a48Line;\u400ar;\uc000\ud835\udd11\u0200Bnpt\u0b22\u0b28\u0b37\u0b3areak;\u6060BreakingSpace;\u40a0f;\u6115\u0680;CDEGHLNPRSTV\u0b55\u0b56\u0b6a\u0b7c\u0ba1\u0beb\u0c04\u0c5e\u0c84\u0ca6\u0cd8\u0d61\u0d85\u6aec\u0100ou\u0b5b\u0b64ngruent;\u6262pCap;\u626doubleVerticalBar;\u6226\u0180lqx\u0b83\u0b8a\u0b9bement;\u6209ual\u0100;T\u0b92\u0b93\u6260ilde;\uc000\u2242\u0338ists;\u6204reater\u0380;EFGLST\u0bb6\u0bb7\u0bbd\u0bc9\u0bd3\u0bd8\u0be5\u626fqual;\u6271ullEqual;\uc000\u2267\u0338reater;\uc000\u226b\u0338ess;\u6279lantEqual;\uc000\u2a7e\u0338ilde;\u6275ump\u0144\u0bf2\u0bfdownHump;\uc000\u224e\u0338qual;\uc000\u224f\u0338e\u0100fs\u0c0a\u0c27tTriangle\u0180;BE\u0c1a\u0c1b\u0c21\u62eaar;\uc000\u29cf\u0338qual;\u62ecs\u0300;EGLST\u0c35\u0c36\u0c3c\u0c44\u0c4b\u0c58\u626equal;\u6270reater;\u6278ess;\uc000\u226a\u0338lantEqual;\uc000\u2a7d\u0338ilde;\u6274ested\u0100GL\u0c68\u0c79reaterGreater;\uc000\u2aa2\u0338essLess;\uc000\u2aa1\u0338recedes\u0180;ES\u0c92\u0c93\u0c9b\u6280qual;\uc000\u2aaf\u0338lantEqual;\u62e0\u0100ei\u0cab\u0cb9verseElement;\u620cghtTriangle\u0180;BE\u0ccb\u0ccc\u0cd2\u62ebar;\uc000\u29d0\u0338qual;\u62ed\u0100qu\u0cdd\u0d0cuareSu\u0100bp\u0ce8\u0cf9set\u0100;E\u0cf0\u0cf3\uc000\u228f\u0338qual;\u62e2erset\u0100;E\u0d03\u0d06\uc000\u2290\u0338qual;\u62e3\u0180bcp\u0d13\u0d24\u0d4eset\u0100;E\u0d1b\u0d1e\uc000\u2282\u20d2qual;\u6288ceeds\u0200;EST\u0d32\u0d33\u0d3b\u0d46\u6281qual;\uc000\u2ab0\u0338lantEqual;\u62e1ilde;\uc000\u227f\u0338erset\u0100;E\u0d58\u0d5b\uc000\u2283\u20d2qual;\u6289ilde\u0200;EFT\u0d6e\u0d6f\u0d75\u0d7f\u6241qual;\u6244ullEqual;\u6247ilde;\u6249erticalBar;\u6224cr;\uc000\ud835\udca9ilde\u803b\xd1\u40d1;\u439d\u0700Eacdfgmoprstuv\u0dbd\u0dc2\u0dc9\u0dd5\u0ddb\u0de0\u0de7\u0dfc\u0e02\u0e20\u0e22\u0e32\u0e3f\u0e44lig;\u4152cute\u803b\xd3\u40d3\u0100iy\u0dce\u0dd3rc\u803b\xd4\u40d4;\u441eblac;\u4150r;\uc000\ud835\udd12rave\u803b\xd2\u40d2\u0180aei\u0dee\u0df2\u0df6cr;\u414cga;\u43a9cron;\u439fpf;\uc000\ud835\udd46enCurly\u0100DQ\u0e0e\u0e1aoubleQuote;\u601cuote;\u6018;\u6a54\u0100cl\u0e27\u0e2cr;\uc000\ud835\udcaaash\u803b\xd8\u40d8i\u016c\u0e37\u0e3cde\u803b\xd5\u40d5es;\u6a37ml\u803b\xd6\u40d6er\u0100BP\u0e4b\u0e60\u0100ar\u0e50\u0e53r;\u603eac\u0100ek\u0e5a\u0e5c;\u63deet;\u63b4arenthesis;\u63dc\u0480acfhilors\u0e7f\u0e87\u0e8a\u0e8f\u0e92\u0e94\u0e9d\u0eb0\u0efcrtialD;\u6202y;\u441fr;\uc000\ud835\udd13i;\u43a6;\u43a0usMinus;\u40b1\u0100ip\u0ea2\u0eadncareplan\xe5\u069df;\u6119\u0200;eio\u0eb9\u0eba\u0ee0\u0ee4\u6abbcedes\u0200;EST\u0ec8\u0ec9\u0ecf\u0eda\u627aqual;\u6aaflantEqual;\u627cilde;\u627eme;\u6033\u0100dp\u0ee9\u0eeeuct;\u620fortion\u0100;a\u0225\u0ef9l;\u621d\u0100ci\u0f01\u0f06r;\uc000\ud835\udcab;\u43a8\u0200Ufos\u0f11\u0f16\u0f1b\u0f1fOT\u803b\"\u4022r;\uc000\ud835\udd14pf;\u611acr;\uc000\ud835\udcac\u0600BEacefhiorsu\u0f3e\u0f43\u0f47\u0f60\u0f73\u0fa7\u0faa\u0fad\u1096\u10a9\u10b4\u10bearr;\u6910G\u803b\xae\u40ae\u0180cnr\u0f4e\u0f53\u0f56ute;\u4154g;\u67ebr\u0100;t\u0f5c\u0f5d\u61a0l;\u6916\u0180aey\u0f67\u0f6c\u0f71ron;\u4158dil;\u4156;\u4420\u0100;v\u0f78\u0f79\u611cerse\u0100EU\u0f82\u0f99\u0100lq\u0f87\u0f8eement;\u620builibrium;\u61cbpEquilibrium;\u696fr\xbb\u0f79o;\u43a1ght\u0400ACDFTUVa\u0fc1\u0feb\u0ff3\u1022\u1028\u105b\u1087\u03d8\u0100nr\u0fc6\u0fd2gleBracket;\u67e9row\u0180;BL\u0fdc\u0fdd\u0fe1\u6192ar;\u61e5eftArrow;\u61c4eiling;\u6309o\u01f5\u0ff9\0\u1005bleBracket;\u67e7n\u01d4\u100a\0\u1014eeVector;\u695dector\u0100;B\u101d\u101e\u61c2ar;\u6955loor;\u630b\u0100er\u102d\u1043e\u0180;AV\u1035\u1036\u103c\u62a2rrow;\u61a6ector;\u695biangle\u0180;BE\u1050\u1051\u1055\u62b3ar;\u69d0qual;\u62b5p\u0180DTV\u1063\u106e\u1078ownVector;\u694feeVector;\u695cector\u0100;B\u1082\u1083\u61bear;\u6954ector\u0100;B\u1091\u1092\u61c0ar;\u6953\u0100pu\u109b\u109ef;\u611dndImplies;\u6970ightarrow;\u61db\u0100ch\u10b9\u10bcr;\u611b;\u61b1leDelayed;\u69f4\u0680HOacfhimoqstu\u10e4\u10f1\u10f7\u10fd\u1119\u111e\u1151\u1156\u1161\u1167\u11b5\u11bb\u11bf\u0100Cc\u10e9\u10eeHcy;\u4429y;\u4428FTcy;\u442ccute;\u415a\u0280;aeiy\u1108\u1109\u110e\u1113\u1117\u6abcron;\u4160dil;\u415erc;\u415c;\u4421r;\uc000\ud835\udd16ort\u0200DLRU\u112a\u1134\u113e\u1149ownArrow\xbb\u041eeftArrow\xbb\u089aightArrow\xbb\u0fddpArrow;\u6191gma;\u43a3allCircle;\u6218pf;\uc000\ud835\udd4a\u0272\u116d\0\0\u1170t;\u621aare\u0200;ISU\u117b\u117c\u1189\u11af\u65a1ntersection;\u6293u\u0100bp\u118f\u119eset\u0100;E\u1197\u1198\u628fqual;\u6291erset\u0100;E\u11a8\u11a9\u6290qual;\u6292nion;\u6294cr;\uc000\ud835\udcaear;\u62c6\u0200bcmp\u11c8\u11db\u1209\u120b\u0100;s\u11cd\u11ce\u62d0et\u0100;E\u11cd\u11d5qual;\u6286\u0100ch\u11e0\u1205eeds\u0200;EST\u11ed\u11ee\u11f4\u11ff\u627bqual;\u6ab0lantEqual;\u627dilde;\u627fTh\xe1\u0f8c;\u6211\u0180;es\u1212\u1213\u1223\u62d1rset\u0100;E\u121c\u121d\u6283qual;\u6287et\xbb\u1213\u0580HRSacfhiors\u123e\u1244\u1249\u1255\u125e\u1271\u1276\u129f\u12c2\u12c8\u12d1ORN\u803b\xde\u40deADE;\u6122\u0100Hc\u124e\u1252cy;\u440by;\u4426\u0100bu\u125a\u125c;\u4009;\u43a4\u0180aey\u1265\u126a\u126fron;\u4164dil;\u4162;\u4422r;\uc000\ud835\udd17\u0100ei\u127b\u1289\u01f2\u1280\0\u1287efore;\u6234a;\u4398\u0100cn\u128e\u1298kSpace;\uc000\u205f\u200aSpace;\u6009lde\u0200;EFT\u12ab\u12ac\u12b2\u12bc\u623cqual;\u6243ullEqual;\u6245ilde;\u6248pf;\uc000\ud835\udd4bipleDot;\u60db\u0100ct\u12d6\u12dbr;\uc000\ud835\udcafrok;\u4166\u0ae1\u12f7\u130e\u131a\u1326\0\u132c\u1331\0\0\0\0\0\u1338\u133d\u1377\u1385\0\u13ff\u1404\u140a\u1410\u0100cr\u12fb\u1301ute\u803b\xda\u40dar\u0100;o\u1307\u1308\u619fcir;\u6949r\u01e3\u1313\0\u1316y;\u440eve;\u416c\u0100iy\u131e\u1323rc\u803b\xdb\u40db;\u4423blac;\u4170r;\uc000\ud835\udd18rave\u803b\xd9\u40d9acr;\u416a\u0100di\u1341\u1369er\u0100BP\u1348\u135d\u0100ar\u134d\u1350r;\u405fac\u0100ek\u1357\u1359;\u63dfet;\u63b5arenthesis;\u63ddon\u0100;P\u1370\u1371\u62c3lus;\u628e\u0100gp\u137b\u137fon;\u4172f;\uc000\ud835\udd4c\u0400ADETadps\u1395\u13ae\u13b8\u13c4\u03e8\u13d2\u13d7\u13f3rrow\u0180;BD\u1150\u13a0\u13a4ar;\u6912ownArrow;\u61c5ownArrow;\u6195quilibrium;\u696eee\u0100;A\u13cb\u13cc\u62a5rrow;\u61a5own\xe1\u03f3er\u0100LR\u13de\u13e8eftArrow;\u6196ightArrow;\u6197i\u0100;l\u13f9\u13fa\u43d2on;\u43a5ing;\u416ecr;\uc000\ud835\udcb0ilde;\u4168ml\u803b\xdc\u40dc\u0480Dbcdefosv\u1427\u142c\u1430\u1433\u143e\u1485\u148a\u1490\u1496ash;\u62abar;\u6aeby;\u4412ash\u0100;l\u143b\u143c\u62a9;\u6ae6\u0100er\u1443\u1445;\u62c1\u0180bty\u144c\u1450\u147aar;\u6016\u0100;i\u144f\u1455cal\u0200BLST\u1461\u1465\u146a\u1474ar;\u6223ine;\u407ceparator;\u6758ilde;\u6240ThinSpace;\u600ar;\uc000\ud835\udd19pf;\uc000\ud835\udd4dcr;\uc000\ud835\udcb1dash;\u62aa\u0280cefos\u14a7\u14ac\u14b1\u14b6\u14bcirc;\u4174dge;\u62c0r;\uc000\ud835\udd1apf;\uc000\ud835\udd4ecr;\uc000\ud835\udcb2\u0200fios\u14cb\u14d0\u14d2\u14d8r;\uc000\ud835\udd1b;\u439epf;\uc000\ud835\udd4fcr;\uc000\ud835\udcb3\u0480AIUacfosu\u14f1\u14f5\u14f9\u14fd\u1504\u150f\u1514\u151a\u1520cy;\u442fcy;\u4407cy;\u442ecute\u803b\xdd\u40dd\u0100iy\u1509\u150drc;\u4176;\u442br;\uc000\ud835\udd1cpf;\uc000\ud835\udd50cr;\uc000\ud835\udcb4ml;\u4178\u0400Hacdefos\u1535\u1539\u153f\u154b\u154f\u155d\u1560\u1564cy;\u4416cute;\u4179\u0100ay\u1544\u1549ron;\u417d;\u4417ot;\u417b\u01f2\u1554\0\u155boWidt\xe8\u0ad9a;\u4396r;\u6128pf;\u6124cr;\uc000\ud835\udcb5\u0be1\u1583\u158a\u1590\0\u15b0\u15b6\u15bf\0\0\0\0\u15c6\u15db\u15eb\u165f\u166d\0\u1695\u169b\u16b2\u16b9\0\u16becute\u803b\xe1\u40e1reve;\u4103\u0300;Ediuy\u159c\u159d\u15a1\u15a3\u15a8\u15ad\u623e;\uc000\u223e\u0333;\u623frc\u803b\xe2\u40e2te\u80bb\xb4\u0306;\u4430lig\u803b\xe6\u40e6\u0100;r\xb2\u15ba;\uc000\ud835\udd1erave\u803b\xe0\u40e0\u0100ep\u15ca\u15d6\u0100fp\u15cf\u15d4sym;\u6135\xe8\u15d3ha;\u43b1\u0100ap\u15dfc\u0100cl\u15e4\u15e7r;\u4101g;\u6a3f\u0264\u15f0\0\0\u160a\u0280;adsv\u15fa\u15fb\u15ff\u1601\u1607\u6227nd;\u6a55;\u6a5clope;\u6a58;\u6a5a\u0380;elmrsz\u1618\u1619\u161b\u161e\u163f\u164f\u1659\u6220;\u69a4e\xbb\u1619sd\u0100;a\u1625\u1626\u6221\u0461\u1630\u1632\u1634\u1636\u1638\u163a\u163c\u163e;\u69a8;\u69a9;\u69aa;\u69ab;\u69ac;\u69ad;\u69ae;\u69aft\u0100;v\u1645\u1646\u621fb\u0100;d\u164c\u164d\u62be;\u699d\u0100pt\u1654\u1657h;\u6222\xbb\xb9arr;\u637c\u0100gp\u1663\u1667on;\u4105f;\uc000\ud835\udd52\u0380;Eaeiop\u12c1\u167b\u167d\u1682\u1684\u1687\u168a;\u6a70cir;\u6a6f;\u624ad;\u624bs;\u4027rox\u0100;e\u12c1\u1692\xf1\u1683ing\u803b\xe5\u40e5\u0180cty\u16a1\u16a6\u16a8r;\uc000\ud835\udcb6;\u402amp\u0100;e\u12c1\u16af\xf1\u0288ilde\u803b\xe3\u40e3ml\u803b\xe4\u40e4\u0100ci\u16c2\u16c8onin\xf4\u0272nt;\u6a11\u0800Nabcdefiklnoprsu\u16ed\u16f1\u1730\u173c\u1743\u1748\u1778\u177d\u17e0\u17e6\u1839\u1850\u170d\u193d\u1948\u1970ot;\u6aed\u0100cr\u16f6\u171ek\u0200ceps\u1700\u1705\u170d\u1713ong;\u624cpsilon;\u43f6rime;\u6035im\u0100;e\u171a\u171b\u623dq;\u62cd\u0176\u1722\u1726ee;\u62bded\u0100;g\u172c\u172d\u6305e\xbb\u172drk\u0100;t\u135c\u1737brk;\u63b6\u0100oy\u1701\u1741;\u4431quo;\u601e\u0280cmprt\u1753\u175b\u1761\u1764\u1768aus\u0100;e\u010a\u0109ptyv;\u69b0s\xe9\u170cno\xf5\u0113\u0180ahw\u176f\u1771\u1773;\u43b2;\u6136een;\u626cr;\uc000\ud835\udd1fg\u0380costuvw\u178d\u179d\u17b3\u17c1\u17d5\u17db\u17de\u0180aiu\u1794\u1796\u179a\xf0\u0760rc;\u65efp\xbb\u1371\u0180dpt\u17a4\u17a8\u17adot;\u6a00lus;\u6a01imes;\u6a02\u0271\u17b9\0\0\u17becup;\u6a06ar;\u6605riangle\u0100du\u17cd\u17d2own;\u65bdp;\u65b3plus;\u6a04e\xe5\u1444\xe5\u14adarow;\u690d\u0180ako\u17ed\u1826\u1835\u0100cn\u17f2\u1823k\u0180lst\u17fa\u05ab\u1802ozenge;\u69ebriangle\u0200;dlr\u1812\u1813\u1818\u181d\u65b4own;\u65beeft;\u65c2ight;\u65b8k;\u6423\u01b1\u182b\0\u1833\u01b2\u182f\0\u1831;\u6592;\u65914;\u6593ck;\u6588\u0100eo\u183e\u184d\u0100;q\u1843\u1846\uc000=\u20e5uiv;\uc000\u2261\u20e5t;\u6310\u0200ptwx\u1859\u185e\u1867\u186cf;\uc000\ud835\udd53\u0100;t\u13cb\u1863om\xbb\u13cctie;\u62c8\u0600DHUVbdhmptuv\u1885\u1896\u18aa\u18bb\u18d7\u18db\u18ec\u18ff\u1905\u190a\u1910\u1921\u0200LRlr\u188e\u1890\u1892\u1894;\u6557;\u6554;\u6556;\u6553\u0280;DUdu\u18a1\u18a2\u18a4\u18a6\u18a8\u6550;\u6566;\u6569;\u6564;\u6567\u0200LRlr\u18b3\u18b5\u18b7\u18b9;\u655d;\u655a;\u655c;\u6559\u0380;HLRhlr\u18ca\u18cb\u18cd\u18cf\u18d1\u18d3\u18d5\u6551;\u656c;\u6563;\u6560;\u656b;\u6562;\u655fox;\u69c9\u0200LRlr\u18e4\u18e6\u18e8\u18ea;\u6555;\u6552;\u6510;\u650c\u0280;DUdu\u06bd\u18f7\u18f9\u18fb\u18fd;\u6565;\u6568;\u652c;\u6534inus;\u629flus;\u629eimes;\u62a0\u0200LRlr\u1919\u191b\u191d\u191f;\u655b;\u6558;\u6518;\u6514\u0380;HLRhlr\u1930\u1931\u1933\u1935\u1937\u1939\u193b\u6502;\u656a;\u6561;\u655e;\u653c;\u6524;\u651c\u0100ev\u0123\u1942bar\u803b\xa6\u40a6\u0200ceio\u1951\u1956\u195a\u1960r;\uc000\ud835\udcb7mi;\u604fm\u0100;e\u171a\u171cl\u0180;bh\u1968\u1969\u196b\u405c;\u69c5sub;\u67c8\u016c\u1974\u197el\u0100;e\u1979\u197a\u6022t\xbb\u197ap\u0180;Ee\u012f\u1985\u1987;\u6aae\u0100;q\u06dc\u06db\u0ce1\u19a7\0\u19e8\u1a11\u1a15\u1a32\0\u1a37\u1a50\0\0\u1ab4\0\0\u1ac1\0\0\u1b21\u1b2e\u1b4d\u1b52\0\u1bfd\0\u1c0c\u0180cpr\u19ad\u19b2\u19ddute;\u4107\u0300;abcds\u19bf\u19c0\u19c4\u19ca\u19d5\u19d9\u6229nd;\u6a44rcup;\u6a49\u0100au\u19cf\u19d2p;\u6a4bp;\u6a47ot;\u6a40;\uc000\u2229\ufe00\u0100eo\u19e2\u19e5t;\u6041\xee\u0693\u0200aeiu\u19f0\u19fb\u1a01\u1a05\u01f0\u19f5\0\u19f8s;\u6a4don;\u410ddil\u803b\xe7\u40e7rc;\u4109ps\u0100;s\u1a0c\u1a0d\u6a4cm;\u6a50ot;\u410b\u0180dmn\u1a1b\u1a20\u1a26il\u80bb\xb8\u01adptyv;\u69b2t\u8100\xa2;e\u1a2d\u1a2e\u40a2r\xe4\u01b2r;\uc000\ud835\udd20\u0180cei\u1a3d\u1a40\u1a4dy;\u4447ck\u0100;m\u1a47\u1a48\u6713ark\xbb\u1a48;\u43c7r\u0380;Ecefms\u1a5f\u1a60\u1a62\u1a6b\u1aa4\u1aaa\u1aae\u65cb;\u69c3\u0180;el\u1a69\u1a6a\u1a6d\u42c6q;\u6257e\u0261\u1a74\0\0\u1a88rrow\u0100lr\u1a7c\u1a81eft;\u61baight;\u61bb\u0280RSacd\u1a92\u1a94\u1a96\u1a9a\u1a9f\xbb\u0f47;\u64c8st;\u629birc;\u629aash;\u629dnint;\u6a10id;\u6aefcir;\u69c2ubs\u0100;u\u1abb\u1abc\u6663it\xbb\u1abc\u02ec\u1ac7\u1ad4\u1afa\0\u1b0aon\u0100;e\u1acd\u1ace\u403a\u0100;q\xc7\xc6\u026d\u1ad9\0\0\u1ae2a\u0100;t\u1ade\u1adf\u402c;\u4040\u0180;fl\u1ae8\u1ae9\u1aeb\u6201\xee\u1160e\u0100mx\u1af1\u1af6ent\xbb\u1ae9e\xf3\u024d\u01e7\u1afe\0\u1b07\u0100;d\u12bb\u1b02ot;\u6a6dn\xf4\u0246\u0180fry\u1b10\u1b14\u1b17;\uc000\ud835\udd54o\xe4\u0254\u8100\xa9;s\u0155\u1b1dr;\u6117\u0100ao\u1b25\u1b29rr;\u61b5ss;\u6717\u0100cu\u1b32\u1b37r;\uc000\ud835\udcb8\u0100bp\u1b3c\u1b44\u0100;e\u1b41\u1b42\u6acf;\u6ad1\u0100;e\u1b49\u1b4a\u6ad0;\u6ad2dot;\u62ef\u0380delprvw\u1b60\u1b6c\u1b77\u1b82\u1bac\u1bd4\u1bf9arr\u0100lr\u1b68\u1b6a;\u6938;\u6935\u0270\u1b72\0\0\u1b75r;\u62dec;\u62dfarr\u0100;p\u1b7f\u1b80\u61b6;\u693d\u0300;bcdos\u1b8f\u1b90\u1b96\u1ba1\u1ba5\u1ba8\u622arcap;\u6a48\u0100au\u1b9b\u1b9ep;\u6a46p;\u6a4aot;\u628dr;\u6a45;\uc000\u222a\ufe00\u0200alrv\u1bb5\u1bbf\u1bde\u1be3rr\u0100;m\u1bbc\u1bbd\u61b7;\u693cy\u0180evw\u1bc7\u1bd4\u1bd8q\u0270\u1bce\0\0\u1bd2re\xe3\u1b73u\xe3\u1b75ee;\u62ceedge;\u62cfen\u803b\xa4\u40a4earrow\u0100lr\u1bee\u1bf3eft\xbb\u1b80ight\xbb\u1bbde\xe4\u1bdd\u0100ci\u1c01\u1c07onin\xf4\u01f7nt;\u6231lcty;\u632d\u0980AHabcdefhijlorstuwz\u1c38\u1c3b\u1c3f\u1c5d\u1c69\u1c75\u1c8a\u1c9e\u1cac\u1cb7\u1cfb\u1cff\u1d0d\u1d7b\u1d91\u1dab\u1dbb\u1dc6\u1dcdr\xf2\u0381ar;\u6965\u0200glrs\u1c48\u1c4d\u1c52\u1c54ger;\u6020eth;\u6138\xf2\u1133h\u0100;v\u1c5a\u1c5b\u6010\xbb\u090a\u016b\u1c61\u1c67arow;\u690fa\xe3\u0315\u0100ay\u1c6e\u1c73ron;\u410f;\u4434\u0180;ao\u0332\u1c7c\u1c84\u0100gr\u02bf\u1c81r;\u61catseq;\u6a77\u0180glm\u1c91\u1c94\u1c98\u803b\xb0\u40b0ta;\u43b4ptyv;\u69b1\u0100ir\u1ca3\u1ca8sht;\u697f;\uc000\ud835\udd21ar\u0100lr\u1cb3\u1cb5\xbb\u08dc\xbb\u101e\u0280aegsv\u1cc2\u0378\u1cd6\u1cdc\u1ce0m\u0180;os\u0326\u1cca\u1cd4nd\u0100;s\u0326\u1cd1uit;\u6666amma;\u43ddin;\u62f2\u0180;io\u1ce7\u1ce8\u1cf8\u40f7de\u8100\xf7;o\u1ce7\u1cf0ntimes;\u62c7n\xf8\u1cf7cy;\u4452c\u026f\u1d06\0\0\u1d0arn;\u631eop;\u630d\u0280lptuw\u1d18\u1d1d\u1d22\u1d49\u1d55lar;\u4024f;\uc000\ud835\udd55\u0280;emps\u030b\u1d2d\u1d37\u1d3d\u1d42q\u0100;d\u0352\u1d33ot;\u6251inus;\u6238lus;\u6214quare;\u62a1blebarwedg\xe5\xfan\u0180adh\u112e\u1d5d\u1d67ownarrow\xf3\u1c83arpoon\u0100lr\u1d72\u1d76ef\xf4\u1cb4igh\xf4\u1cb6\u0162\u1d7f\u1d85karo\xf7\u0f42\u026f\u1d8a\0\0\u1d8ern;\u631fop;\u630c\u0180cot\u1d98\u1da3\u1da6\u0100ry\u1d9d\u1da1;\uc000\ud835\udcb9;\u4455l;\u69f6rok;\u4111\u0100dr\u1db0\u1db4ot;\u62f1i\u0100;f\u1dba\u1816\u65bf\u0100ah\u1dc0\u1dc3r\xf2\u0429a\xf2\u0fa6angle;\u69a6\u0100ci\u1dd2\u1dd5y;\u445fgrarr;\u67ff\u0900Dacdefglmnopqrstux\u1e01\u1e09\u1e19\u1e38\u0578\u1e3c\u1e49\u1e61\u1e7e\u1ea5\u1eaf\u1ebd\u1ee1\u1f2a\u1f37\u1f44\u1f4e\u1f5a\u0100Do\u1e06\u1d34o\xf4\u1c89\u0100cs\u1e0e\u1e14ute\u803b\xe9\u40e9ter;\u6a6e\u0200aioy\u1e22\u1e27\u1e31\u1e36ron;\u411br\u0100;c\u1e2d\u1e2e\u6256\u803b\xea\u40ealon;\u6255;\u444dot;\u4117\u0100Dr\u1e41\u1e45ot;\u6252;\uc000\ud835\udd22\u0180;rs\u1e50\u1e51\u1e57\u6a9aave\u803b\xe8\u40e8\u0100;d\u1e5c\u1e5d\u6a96ot;\u6a98\u0200;ils\u1e6a\u1e6b\u1e72\u1e74\u6a99nters;\u63e7;\u6113\u0100;d\u1e79\u1e7a\u6a95ot;\u6a97\u0180aps\u1e85\u1e89\u1e97cr;\u4113ty\u0180;sv\u1e92\u1e93\u1e95\u6205et\xbb\u1e93p\u01001;\u1e9d\u1ea4\u0133\u1ea1\u1ea3;\u6004;\u6005\u6003\u0100gs\u1eaa\u1eac;\u414bp;\u6002\u0100gp\u1eb4\u1eb8on;\u4119f;\uc000\ud835\udd56\u0180als\u1ec4\u1ece\u1ed2r\u0100;s\u1eca\u1ecb\u62d5l;\u69e3us;\u6a71i\u0180;lv\u1eda\u1edb\u1edf\u43b5on\xbb\u1edb;\u43f5\u0200csuv\u1eea\u1ef3\u1f0b\u1f23\u0100io\u1eef\u1e31rc\xbb\u1e2e\u0269\u1ef9\0\0\u1efb\xed\u0548ant\u0100gl\u1f02\u1f06tr\xbb\u1e5dess\xbb\u1e7a\u0180aei\u1f12\u1f16\u1f1als;\u403dst;\u625fv\u0100;D\u0235\u1f20D;\u6a78parsl;\u69e5\u0100Da\u1f2f\u1f33ot;\u6253rr;\u6971\u0180cdi\u1f3e\u1f41\u1ef8r;\u612fo\xf4\u0352\u0100ah\u1f49\u1f4b;\u43b7\u803b\xf0\u40f0\u0100mr\u1f53\u1f57l\u803b\xeb\u40ebo;\u60ac\u0180cip\u1f61\u1f64\u1f67l;\u4021s\xf4\u056e\u0100eo\u1f6c\u1f74ctatio\xee\u0559nential\xe5\u0579\u09e1\u1f92\0\u1f9e\0\u1fa1\u1fa7\0\0\u1fc6\u1fcc\0\u1fd3\0\u1fe6\u1fea\u2000\0\u2008\u205allingdotse\xf1\u1e44y;\u4444male;\u6640\u0180ilr\u1fad\u1fb3\u1fc1lig;\u8000\ufb03\u0269\u1fb9\0\0\u1fbdg;\u8000\ufb00ig;\u8000\ufb04;\uc000\ud835\udd23lig;\u8000\ufb01lig;\uc000fj\u0180alt\u1fd9\u1fdc\u1fe1t;\u666dig;\u8000\ufb02ns;\u65b1of;\u4192\u01f0\u1fee\0\u1ff3f;\uc000\ud835\udd57\u0100ak\u05bf\u1ff7\u0100;v\u1ffc\u1ffd\u62d4;\u6ad9artint;\u6a0d\u0100ao\u200c\u2055\u0100cs\u2011\u2052\u03b1\u201a\u2030\u2038\u2045\u2048\0\u2050\u03b2\u2022\u2025\u2027\u202a\u202c\0\u202e\u803b\xbd\u40bd;\u6153\u803b\xbc\u40bc;\u6155;\u6159;\u615b\u01b3\u2034\0\u2036;\u6154;\u6156\u02b4\u203e\u2041\0\0\u2043\u803b\xbe\u40be;\u6157;\u615c5;\u6158\u01b6\u204c\0\u204e;\u615a;\u615d8;\u615el;\u6044wn;\u6322cr;\uc000\ud835\udcbb\u0880Eabcdefgijlnorstv\u2082\u2089\u209f\u20a5\u20b0\u20b4\u20f0\u20f5\u20fa\u20ff\u2103\u2112\u2138\u0317\u213e\u2152\u219e\u0100;l\u064d\u2087;\u6a8c\u0180cmp\u2090\u2095\u209dute;\u41f5ma\u0100;d\u209c\u1cda\u43b3;\u6a86reve;\u411f\u0100iy\u20aa\u20aerc;\u411d;\u4433ot;\u4121\u0200;lqs\u063e\u0642\u20bd\u20c9\u0180;qs\u063e\u064c\u20c4lan\xf4\u0665\u0200;cdl\u0665\u20d2\u20d5\u20e5c;\u6aa9ot\u0100;o\u20dc\u20dd\u6a80\u0100;l\u20e2\u20e3\u6a82;\u6a84\u0100;e\u20ea\u20ed\uc000\u22db\ufe00s;\u6a94r;\uc000\ud835\udd24\u0100;g\u0673\u061bmel;\u6137cy;\u4453\u0200;Eaj\u065a\u210c\u210e\u2110;\u6a92;\u6aa5;\u6aa4\u0200Eaes\u211b\u211d\u2129\u2134;\u6269p\u0100;p\u2123\u2124\u6a8arox\xbb\u2124\u0100;q\u212e\u212f\u6a88\u0100;q\u212e\u211bim;\u62e7pf;\uc000\ud835\udd58\u0100ci\u2143\u2146r;\u610am\u0180;el\u066b\u214e\u2150;\u6a8e;\u6a90\u8300>;cdlqr\u05ee\u2160\u216a\u216e\u2173\u2179\u0100ci\u2165\u2167;\u6aa7r;\u6a7aot;\u62d7Par;\u6995uest;\u6a7c\u0280adels\u2184\u216a\u2190\u0656\u219b\u01f0\u2189\0\u218epro\xf8\u209er;\u6978q\u0100lq\u063f\u2196les\xf3\u2088i\xed\u066b\u0100en\u21a3\u21adrtneqq;\uc000\u2269\ufe00\xc5\u21aa\u0500Aabcefkosy\u21c4\u21c7\u21f1\u21f5\u21fa\u2218\u221d\u222f\u2268\u227dr\xf2\u03a0\u0200ilmr\u21d0\u21d4\u21d7\u21dbrs\xf0\u1484f\xbb\u2024il\xf4\u06a9\u0100dr\u21e0\u21e4cy;\u444a\u0180;cw\u08f4\u21eb\u21efir;\u6948;\u61adar;\u610firc;\u4125\u0180alr\u2201\u220e\u2213rts\u0100;u\u2209\u220a\u6665it\xbb\u220alip;\u6026con;\u62b9r;\uc000\ud835\udd25s\u0100ew\u2223\u2229arow;\u6925arow;\u6926\u0280amopr\u223a\u223e\u2243\u225e\u2263rr;\u61fftht;\u623bk\u0100lr\u2249\u2253eftarrow;\u61a9ightarrow;\u61aaf;\uc000\ud835\udd59bar;\u6015\u0180clt\u226f\u2274\u2278r;\uc000\ud835\udcbdas\xe8\u21f4rok;\u4127\u0100bp\u2282\u2287ull;\u6043hen\xbb\u1c5b\u0ae1\u22a3\0\u22aa\0\u22b8\u22c5\u22ce\0\u22d5\u22f3\0\0\u22f8\u2322\u2367\u2362\u237f\0\u2386\u23aa\u23b4cute\u803b\xed\u40ed\u0180;iy\u0771\u22b0\u22b5rc\u803b\xee\u40ee;\u4438\u0100cx\u22bc\u22bfy;\u4435cl\u803b\xa1\u40a1\u0100fr\u039f\u22c9;\uc000\ud835\udd26rave\u803b\xec\u40ec\u0200;ino\u073e\u22dd\u22e9\u22ee\u0100in\u22e2\u22e6nt;\u6a0ct;\u622dfin;\u69dcta;\u6129lig;\u4133\u0180aop\u22fe\u231a\u231d\u0180cgt\u2305\u2308\u2317r;\u412b\u0180elp\u071f\u230f\u2313in\xe5\u078ear\xf4\u0720h;\u4131f;\u62b7ed;\u41b5\u0280;cfot\u04f4\u232c\u2331\u233d\u2341are;\u6105in\u0100;t\u2338\u2339\u621eie;\u69dddo\xf4\u2319\u0280;celp\u0757\u234c\u2350\u235b\u2361al;\u62ba\u0100gr\u2355\u2359er\xf3\u1563\xe3\u234darhk;\u6a17rod;\u6a3c\u0200cgpt\u236f\u2372\u2376\u237by;\u4451on;\u412ff;\uc000\ud835\udd5aa;\u43b9uest\u803b\xbf\u40bf\u0100ci\u238a\u238fr;\uc000\ud835\udcben\u0280;Edsv\u04f4\u239b\u239d\u23a1\u04f3;\u62f9ot;\u62f5\u0100;v\u23a6\u23a7\u62f4;\u62f3\u0100;i\u0777\u23aelde;\u4129\u01eb\u23b8\0\u23bccy;\u4456l\u803b\xef\u40ef\u0300cfmosu\u23cc\u23d7\u23dc\u23e1\u23e7\u23f5\u0100iy\u23d1\u23d5rc;\u4135;\u4439r;\uc000\ud835\udd27ath;\u4237pf;\uc000\ud835\udd5b\u01e3\u23ec\0\u23f1r;\uc000\ud835\udcbfrcy;\u4458kcy;\u4454\u0400acfghjos\u240b\u2416\u2422\u2427\u242d\u2431\u2435\u243bppa\u0100;v\u2413\u2414\u43ba;\u43f0\u0100ey\u241b\u2420dil;\u4137;\u443ar;\uc000\ud835\udd28reen;\u4138cy;\u4445cy;\u445cpf;\uc000\ud835\udd5ccr;\uc000\ud835\udcc0\u0b80ABEHabcdefghjlmnoprstuv\u2470\u2481\u2486\u248d\u2491\u250e\u253d\u255a\u2580\u264e\u265e\u2665\u2679\u267d\u269a\u26b2\u26d8\u275d\u2768\u278b\u27c0\u2801\u2812\u0180art\u2477\u247a\u247cr\xf2\u09c6\xf2\u0395ail;\u691barr;\u690e\u0100;g\u0994\u248b;\u6a8bar;\u6962\u0963\u24a5\0\u24aa\0\u24b1\0\0\0\0\0\u24b5\u24ba\0\u24c6\u24c8\u24cd\0\u24f9ute;\u413amptyv;\u69b4ra\xee\u084cbda;\u43bbg\u0180;dl\u088e\u24c1\u24c3;\u6991\xe5\u088e;\u6a85uo\u803b\xab\u40abr\u0400;bfhlpst\u0899\u24de\u24e6\u24e9\u24eb\u24ee\u24f1\u24f5\u0100;f\u089d\u24e3s;\u691fs;\u691d\xeb\u2252p;\u61abl;\u6939im;\u6973l;\u61a2\u0180;ae\u24ff\u2500\u2504\u6aabil;\u6919\u0100;s\u2509\u250a\u6aad;\uc000\u2aad\ufe00\u0180abr\u2515\u2519\u251drr;\u690crk;\u6772\u0100ak\u2522\u252cc\u0100ek\u2528\u252a;\u407b;\u405b\u0100es\u2531\u2533;\u698bl\u0100du\u2539\u253b;\u698f;\u698d\u0200aeuy\u2546\u254b\u2556\u2558ron;\u413e\u0100di\u2550\u2554il;\u413c\xec\u08b0\xe2\u2529;\u443b\u0200cqrs\u2563\u2566\u256d\u257da;\u6936uo\u0100;r\u0e19\u1746\u0100du\u2572\u2577har;\u6967shar;\u694bh;\u61b2\u0280;fgqs\u258b\u258c\u0989\u25f3\u25ff\u6264t\u0280ahlrt\u2598\u25a4\u25b7\u25c2\u25e8rrow\u0100;t\u0899\u25a1a\xe9\u24f6arpoon\u0100du\u25af\u25b4own\xbb\u045ap\xbb\u0966eftarrows;\u61c7ight\u0180ahs\u25cd\u25d6\u25derrow\u0100;s\u08f4\u08a7arpoon\xf3\u0f98quigarro\xf7\u21f0hreetimes;\u62cb\u0180;qs\u258b\u0993\u25falan\xf4\u09ac\u0280;cdgs\u09ac\u260a\u260d\u261d\u2628c;\u6aa8ot\u0100;o\u2614\u2615\u6a7f\u0100;r\u261a\u261b\u6a81;\u6a83\u0100;e\u2622\u2625\uc000\u22da\ufe00s;\u6a93\u0280adegs\u2633\u2639\u263d\u2649\u264bppro\xf8\u24c6ot;\u62d6q\u0100gq\u2643\u2645\xf4\u0989gt\xf2\u248c\xf4\u099bi\xed\u09b2\u0180ilr\u2655\u08e1\u265asht;\u697c;\uc000\ud835\udd29\u0100;E\u099c\u2663;\u6a91\u0161\u2669\u2676r\u0100du\u25b2\u266e\u0100;l\u0965\u2673;\u696alk;\u6584cy;\u4459\u0280;acht\u0a48\u2688\u268b\u2691\u2696r\xf2\u25c1orne\xf2\u1d08ard;\u696bri;\u65fa\u0100io\u269f\u26a4dot;\u4140ust\u0100;a\u26ac\u26ad\u63b0che\xbb\u26ad\u0200Eaes\u26bb\u26bd\u26c9\u26d4;\u6268p\u0100;p\u26c3\u26c4\u6a89rox\xbb\u26c4\u0100;q\u26ce\u26cf\u6a87\u0100;q\u26ce\u26bbim;\u62e6\u0400abnoptwz\u26e9\u26f4\u26f7\u271a\u272f\u2741\u2747\u2750\u0100nr\u26ee\u26f1g;\u67ecr;\u61fdr\xeb\u08c1g\u0180lmr\u26ff\u270d\u2714eft\u0100ar\u09e6\u2707ight\xe1\u09f2apsto;\u67fcight\xe1\u09fdparrow\u0100lr\u2725\u2729ef\xf4\u24edight;\u61ac\u0180afl\u2736\u2739\u273dr;\u6985;\uc000\ud835\udd5dus;\u6a2dimes;\u6a34\u0161\u274b\u274fst;\u6217\xe1\u134e\u0180;ef\u2757\u2758\u1800\u65cange\xbb\u2758ar\u0100;l\u2764\u2765\u4028t;\u6993\u0280achmt\u2773\u2776\u277c\u2785\u2787r\xf2\u08a8orne\xf2\u1d8car\u0100;d\u0f98\u2783;\u696d;\u600eri;\u62bf\u0300achiqt\u2798\u279d\u0a40\u27a2\u27ae\u27bbquo;\u6039r;\uc000\ud835\udcc1m\u0180;eg\u09b2\u27aa\u27ac;\u6a8d;\u6a8f\u0100bu\u252a\u27b3o\u0100;r\u0e1f\u27b9;\u601arok;\u4142\u8400<;cdhilqr\u082b\u27d2\u2639\u27dc\u27e0\u27e5\u27ea\u27f0\u0100ci\u27d7\u27d9;\u6aa6r;\u6a79re\xe5\u25f2mes;\u62c9arr;\u6976uest;\u6a7b\u0100Pi\u27f5\u27f9ar;\u6996\u0180;ef\u2800\u092d\u181b\u65c3r\u0100du\u2807\u280dshar;\u694ahar;\u6966\u0100en\u2817\u2821rtneqq;\uc000\u2268\ufe00\xc5\u281e\u0700Dacdefhilnopsu\u2840\u2845\u2882\u288e\u2893\u28a0\u28a5\u28a8\u28da\u28e2\u28e4\u0a83\u28f3\u2902Dot;\u623a\u0200clpr\u284e\u2852\u2863\u287dr\u803b\xaf\u40af\u0100et\u2857\u2859;\u6642\u0100;e\u285e\u285f\u6720se\xbb\u285f\u0100;s\u103b\u2868to\u0200;dlu\u103b\u2873\u2877\u287bow\xee\u048cef\xf4\u090f\xf0\u13d1ker;\u65ae\u0100oy\u2887\u288cmma;\u6a29;\u443cash;\u6014asuredangle\xbb\u1626r;\uc000\ud835\udd2ao;\u6127\u0180cdn\u28af\u28b4\u28c9ro\u803b\xb5\u40b5\u0200;acd\u1464\u28bd\u28c0\u28c4s\xf4\u16a7ir;\u6af0ot\u80bb\xb7\u01b5us\u0180;bd\u28d2\u1903\u28d3\u6212\u0100;u\u1d3c\u28d8;\u6a2a\u0163\u28de\u28e1p;\u6adb\xf2\u2212\xf0\u0a81\u0100dp\u28e9\u28eeels;\u62a7f;\uc000\ud835\udd5e\u0100ct\u28f8\u28fdr;\uc000\ud835\udcc2pos\xbb\u159d\u0180;lm\u2909\u290a\u290d\u43bctimap;\u62b8\u0c00GLRVabcdefghijlmoprstuvw\u2942\u2953\u297e\u2989\u2998\u29da\u29e9\u2a15\u2a1a\u2a58\u2a5d\u2a83\u2a95\u2aa4\u2aa8\u2b04\u2b07\u2b44\u2b7f\u2bae\u2c34\u2c67\u2c7c\u2ce9\u0100gt\u2947\u294b;\uc000\u22d9\u0338\u0100;v\u2950\u0bcf\uc000\u226b\u20d2\u0180elt\u295a\u2972\u2976ft\u0100ar\u2961\u2967rrow;\u61cdightarrow;\u61ce;\uc000\u22d8\u0338\u0100;v\u297b\u0c47\uc000\u226a\u20d2ightarrow;\u61cf\u0100Dd\u298e\u2993ash;\u62afash;\u62ae\u0280bcnpt\u29a3\u29a7\u29ac\u29b1\u29ccla\xbb\u02deute;\u4144g;\uc000\u2220\u20d2\u0280;Eiop\u0d84\u29bc\u29c0\u29c5\u29c8;\uc000\u2a70\u0338d;\uc000\u224b\u0338s;\u4149ro\xf8\u0d84ur\u0100;a\u29d3\u29d4\u666el\u0100;s\u29d3\u0b38\u01f3\u29df\0\u29e3p\u80bb\xa0\u0b37mp\u0100;e\u0bf9\u0c00\u0280aeouy\u29f4\u29fe\u2a03\u2a10\u2a13\u01f0\u29f9\0\u29fb;\u6a43on;\u4148dil;\u4146ng\u0100;d\u0d7e\u2a0aot;\uc000\u2a6d\u0338p;\u6a42;\u443dash;\u6013\u0380;Aadqsx\u0b92\u2a29\u2a2d\u2a3b\u2a41\u2a45\u2a50rr;\u61d7r\u0100hr\u2a33\u2a36k;\u6924\u0100;o\u13f2\u13f0ot;\uc000\u2250\u0338ui\xf6\u0b63\u0100ei\u2a4a\u2a4ear;\u6928\xed\u0b98ist\u0100;s\u0ba0\u0b9fr;\uc000\ud835\udd2b\u0200Eest\u0bc5\u2a66\u2a79\u2a7c\u0180;qs\u0bbc\u2a6d\u0be1\u0180;qs\u0bbc\u0bc5\u2a74lan\xf4\u0be2i\xed\u0bea\u0100;r\u0bb6\u2a81\xbb\u0bb7\u0180Aap\u2a8a\u2a8d\u2a91r\xf2\u2971rr;\u61aear;\u6af2\u0180;sv\u0f8d\u2a9c\u0f8c\u0100;d\u2aa1\u2aa2\u62fc;\u62facy;\u445a\u0380AEadest\u2ab7\u2aba\u2abe\u2ac2\u2ac5\u2af6\u2af9r\xf2\u2966;\uc000\u2266\u0338rr;\u619ar;\u6025\u0200;fqs\u0c3b\u2ace\u2ae3\u2aeft\u0100ar\u2ad4\u2ad9rro\xf7\u2ac1ightarro\xf7\u2a90\u0180;qs\u0c3b\u2aba\u2aealan\xf4\u0c55\u0100;s\u0c55\u2af4\xbb\u0c36i\xed\u0c5d\u0100;r\u0c35\u2afei\u0100;e\u0c1a\u0c25i\xe4\u0d90\u0100pt\u2b0c\u2b11f;\uc000\ud835\udd5f\u8180\xac;in\u2b19\u2b1a\u2b36\u40acn\u0200;Edv\u0b89\u2b24\u2b28\u2b2e;\uc000\u22f9\u0338ot;\uc000\u22f5\u0338\u01e1\u0b89\u2b33\u2b35;\u62f7;\u62f6i\u0100;v\u0cb8\u2b3c\u01e1\u0cb8\u2b41\u2b43;\u62fe;\u62fd\u0180aor\u2b4b\u2b63\u2b69r\u0200;ast\u0b7b\u2b55\u2b5a\u2b5flle\xec\u0b7bl;\uc000\u2afd\u20e5;\uc000\u2202\u0338lint;\u6a14\u0180;ce\u0c92\u2b70\u2b73u\xe5\u0ca5\u0100;c\u0c98\u2b78\u0100;e\u0c92\u2b7d\xf1\u0c98\u0200Aait\u2b88\u2b8b\u2b9d\u2ba7r\xf2\u2988rr\u0180;cw\u2b94\u2b95\u2b99\u619b;\uc000\u2933\u0338;\uc000\u219d\u0338ghtarrow\xbb\u2b95ri\u0100;e\u0ccb\u0cd6\u0380chimpqu\u2bbd\u2bcd\u2bd9\u2b04\u0b78\u2be4\u2bef\u0200;cer\u0d32\u2bc6\u0d37\u2bc9u\xe5\u0d45;\uc000\ud835\udcc3ort\u026d\u2b05\0\0\u2bd6ar\xe1\u2b56m\u0100;e\u0d6e\u2bdf\u0100;q\u0d74\u0d73su\u0100bp\u2beb\u2bed\xe5\u0cf8\xe5\u0d0b\u0180bcp\u2bf6\u2c11\u2c19\u0200;Ees\u2bff\u2c00\u0d22\u2c04\u6284;\uc000\u2ac5\u0338et\u0100;e\u0d1b\u2c0bq\u0100;q\u0d23\u2c00c\u0100;e\u0d32\u2c17\xf1\u0d38\u0200;Ees\u2c22\u2c23\u0d5f\u2c27\u6285;\uc000\u2ac6\u0338et\u0100;e\u0d58\u2c2eq\u0100;q\u0d60\u2c23\u0200gilr\u2c3d\u2c3f\u2c45\u2c47\xec\u0bd7lde\u803b\xf1\u40f1\xe7\u0c43iangle\u0100lr\u2c52\u2c5ceft\u0100;e\u0c1a\u2c5a\xf1\u0c26ight\u0100;e\u0ccb\u2c65\xf1\u0cd7\u0100;m\u2c6c\u2c6d\u43bd\u0180;es\u2c74\u2c75\u2c79\u4023ro;\u6116p;\u6007\u0480DHadgilrs\u2c8f\u2c94\u2c99\u2c9e\u2ca3\u2cb0\u2cb6\u2cd3\u2ce3ash;\u62adarr;\u6904p;\uc000\u224d\u20d2ash;\u62ac\u0100et\u2ca8\u2cac;\uc000\u2265\u20d2;\uc000>\u20d2nfin;\u69de\u0180Aet\u2cbd\u2cc1\u2cc5rr;\u6902;\uc000\u2264\u20d2\u0100;r\u2cca\u2ccd\uc000<\u20d2ie;\uc000\u22b4\u20d2\u0100At\u2cd8\u2cdcrr;\u6903rie;\uc000\u22b5\u20d2im;\uc000\u223c\u20d2\u0180Aan\u2cf0\u2cf4\u2d02rr;\u61d6r\u0100hr\u2cfa\u2cfdk;\u6923\u0100;o\u13e7\u13e5ear;\u6927\u1253\u1a95\0\0\0\0\0\0\0\0\0\0\0\0\0\u2d2d\0\u2d38\u2d48\u2d60\u2d65\u2d72\u2d84\u1b07\0\0\u2d8d\u2dab\0\u2dc8\u2dce\0\u2ddc\u2e19\u2e2b\u2e3e\u2e43\u0100cs\u2d31\u1a97ute\u803b\xf3\u40f3\u0100iy\u2d3c\u2d45r\u0100;c\u1a9e\u2d42\u803b\xf4\u40f4;\u443e\u0280abios\u1aa0\u2d52\u2d57\u01c8\u2d5alac;\u4151v;\u6a38old;\u69bclig;\u4153\u0100cr\u2d69\u2d6dir;\u69bf;\uc000\ud835\udd2c\u036f\u2d79\0\0\u2d7c\0\u2d82n;\u42dbave\u803b\xf2\u40f2;\u69c1\u0100bm\u2d88\u0df4ar;\u69b5\u0200acit\u2d95\u2d98\u2da5\u2da8r\xf2\u1a80\u0100ir\u2d9d\u2da0r;\u69beoss;\u69bbn\xe5\u0e52;\u69c0\u0180aei\u2db1\u2db5\u2db9cr;\u414dga;\u43c9\u0180cdn\u2dc0\u2dc5\u01cdron;\u43bf;\u69b6pf;\uc000\ud835\udd60\u0180ael\u2dd4\u2dd7\u01d2r;\u69b7rp;\u69b9\u0380;adiosv\u2dea\u2deb\u2dee\u2e08\u2e0d\u2e10\u2e16\u6228r\xf2\u1a86\u0200;efm\u2df7\u2df8\u2e02\u2e05\u6a5dr\u0100;o\u2dfe\u2dff\u6134f\xbb\u2dff\u803b\xaa\u40aa\u803b\xba\u40bagof;\u62b6r;\u6a56lope;\u6a57;\u6a5b\u0180clo\u2e1f\u2e21\u2e27\xf2\u2e01ash\u803b\xf8\u40f8l;\u6298i\u016c\u2e2f\u2e34de\u803b\xf5\u40f5es\u0100;a\u01db\u2e3as;\u6a36ml\u803b\xf6\u40f6bar;\u633d\u0ae1\u2e5e\0\u2e7d\0\u2e80\u2e9d\0\u2ea2\u2eb9\0\0\u2ecb\u0e9c\0\u2f13\0\0\u2f2b\u2fbc\0\u2fc8r\u0200;ast\u0403\u2e67\u2e72\u0e85\u8100\xb6;l\u2e6d\u2e6e\u40b6le\xec\u0403\u0269\u2e78\0\0\u2e7bm;\u6af3;\u6afdy;\u443fr\u0280cimpt\u2e8b\u2e8f\u2e93\u1865\u2e97nt;\u4025od;\u402eil;\u6030enk;\u6031r;\uc000\ud835\udd2d\u0180imo\u2ea8\u2eb0\u2eb4\u0100;v\u2ead\u2eae\u43c6;\u43d5ma\xf4\u0a76ne;\u660e\u0180;tv\u2ebf\u2ec0\u2ec8\u43c0chfork\xbb\u1ffd;\u43d6\u0100au\u2ecf\u2edfn\u0100ck\u2ed5\u2eddk\u0100;h\u21f4\u2edb;\u610e\xf6\u21f4s\u0480;abcdemst\u2ef3\u2ef4\u1908\u2ef9\u2efd\u2f04\u2f06\u2f0a\u2f0e\u402bcir;\u6a23ir;\u6a22\u0100ou\u1d40\u2f02;\u6a25;\u6a72n\u80bb\xb1\u0e9dim;\u6a26wo;\u6a27\u0180ipu\u2f19\u2f20\u2f25ntint;\u6a15f;\uc000\ud835\udd61nd\u803b\xa3\u40a3\u0500;Eaceinosu\u0ec8\u2f3f\u2f41\u2f44\u2f47\u2f81\u2f89\u2f92\u2f7e\u2fb6;\u6ab3p;\u6ab7u\xe5\u0ed9\u0100;c\u0ece\u2f4c\u0300;acens\u0ec8\u2f59\u2f5f\u2f66\u2f68\u2f7eppro\xf8\u2f43urlye\xf1\u0ed9\xf1\u0ece\u0180aes\u2f6f\u2f76\u2f7approx;\u6ab9qq;\u6ab5im;\u62e8i\xed\u0edfme\u0100;s\u2f88\u0eae\u6032\u0180Eas\u2f78\u2f90\u2f7a\xf0\u2f75\u0180dfp\u0eec\u2f99\u2faf\u0180als\u2fa0\u2fa5\u2faalar;\u632eine;\u6312urf;\u6313\u0100;t\u0efb\u2fb4\xef\u0efbrel;\u62b0\u0100ci\u2fc0\u2fc5r;\uc000\ud835\udcc5;\u43c8ncsp;\u6008\u0300fiopsu\u2fda\u22e2\u2fdf\u2fe5\u2feb\u2ff1r;\uc000\ud835\udd2epf;\uc000\ud835\udd62rime;\u6057cr;\uc000\ud835\udcc6\u0180aeo\u2ff8\u3009\u3013t\u0100ei\u2ffe\u3005rnion\xf3\u06b0nt;\u6a16st\u0100;e\u3010\u3011\u403f\xf1\u1f19\xf4\u0f14\u0a80ABHabcdefhilmnoprstux\u3040\u3051\u3055\u3059\u30e0\u310e\u312b\u3147\u3162\u3172\u318e\u3206\u3215\u3224\u3229\u3258\u326e\u3272\u3290\u32b0\u32b7\u0180art\u3047\u304a\u304cr\xf2\u10b3\xf2\u03ddail;\u691car\xf2\u1c65ar;\u6964\u0380cdenqrt\u3068\u3075\u3078\u307f\u308f\u3094\u30cc\u0100eu\u306d\u3071;\uc000\u223d\u0331te;\u4155i\xe3\u116emptyv;\u69b3g\u0200;del\u0fd1\u3089\u308b\u308d;\u6992;\u69a5\xe5\u0fd1uo\u803b\xbb\u40bbr\u0580;abcfhlpstw\u0fdc\u30ac\u30af\u30b7\u30b9\u30bc\u30be\u30c0\u30c3\u30c7\u30cap;\u6975\u0100;f\u0fe0\u30b4s;\u6920;\u6933s;\u691e\xeb\u225d\xf0\u272el;\u6945im;\u6974l;\u61a3;\u619d\u0100ai\u30d1\u30d5il;\u691ao\u0100;n\u30db\u30dc\u6236al\xf3\u0f1e\u0180abr\u30e7\u30ea\u30eer\xf2\u17e5rk;\u6773\u0100ak\u30f3\u30fdc\u0100ek\u30f9\u30fb;\u407d;\u405d\u0100es\u3102\u3104;\u698cl\u0100du\u310a\u310c;\u698e;\u6990\u0200aeuy\u3117\u311c\u3127\u3129ron;\u4159\u0100di\u3121\u3125il;\u4157\xec\u0ff2\xe2\u30fa;\u4440\u0200clqs\u3134\u3137\u313d\u3144a;\u6937dhar;\u6969uo\u0100;r\u020e\u020dh;\u61b3\u0180acg\u314e\u315f\u0f44l\u0200;ips\u0f78\u3158\u315b\u109cn\xe5\u10bbar\xf4\u0fa9t;\u65ad\u0180ilr\u3169\u1023\u316esht;\u697d;\uc000\ud835\udd2f\u0100ao\u3177\u3186r\u0100du\u317d\u317f\xbb\u047b\u0100;l\u1091\u3184;\u696c\u0100;v\u318b\u318c\u43c1;\u43f1\u0180gns\u3195\u31f9\u31fcht\u0300ahlrst\u31a4\u31b0\u31c2\u31d8\u31e4\u31eerrow\u0100;t\u0fdc\u31ada\xe9\u30c8arpoon\u0100du\u31bb\u31bfow\xee\u317ep\xbb\u1092eft\u0100ah\u31ca\u31d0rrow\xf3\u0feaarpoon\xf3\u0551ightarrows;\u61c9quigarro\xf7\u30cbhreetimes;\u62ccg;\u42daingdotse\xf1\u1f32\u0180ahm\u320d\u3210\u3213r\xf2\u0feaa\xf2\u0551;\u600foust\u0100;a\u321e\u321f\u63b1che\xbb\u321fmid;\u6aee\u0200abpt\u3232\u323d\u3240\u3252\u0100nr\u3237\u323ag;\u67edr;\u61fer\xeb\u1003\u0180afl\u3247\u324a\u324er;\u6986;\uc000\ud835\udd63us;\u6a2eimes;\u6a35\u0100ap\u325d\u3267r\u0100;g\u3263\u3264\u4029t;\u6994olint;\u6a12ar\xf2\u31e3\u0200achq\u327b\u3280\u10bc\u3285quo;\u603ar;\uc000\ud835\udcc7\u0100bu\u30fb\u328ao\u0100;r\u0214\u0213\u0180hir\u3297\u329b\u32a0re\xe5\u31f8mes;\u62cai\u0200;efl\u32aa\u1059\u1821\u32ab\u65b9tri;\u69celuhar;\u6968;\u611e\u0d61\u32d5\u32db\u32df\u332c\u3338\u3371\0\u337a\u33a4\0\0\u33ec\u33f0\0\u3428\u3448\u345a\u34ad\u34b1\u34ca\u34f1\0\u3616\0\0\u3633cute;\u415bqu\xef\u27ba\u0500;Eaceinpsy\u11ed\u32f3\u32f5\u32ff\u3302\u330b\u330f\u331f\u3326\u3329;\u6ab4\u01f0\u32fa\0\u32fc;\u6ab8on;\u4161u\xe5\u11fe\u0100;d\u11f3\u3307il;\u415frc;\u415d\u0180Eas\u3316\u3318\u331b;\u6ab6p;\u6abaim;\u62e9olint;\u6a13i\xed\u1204;\u4441ot\u0180;be\u3334\u1d47\u3335\u62c5;\u6a66\u0380Aacmstx\u3346\u334a\u3357\u335b\u335e\u3363\u336drr;\u61d8r\u0100hr\u3350\u3352\xeb\u2228\u0100;o\u0a36\u0a34t\u803b\xa7\u40a7i;\u403bwar;\u6929m\u0100in\u3369\xf0nu\xf3\xf1t;\u6736r\u0100;o\u3376\u2055\uc000\ud835\udd30\u0200acoy\u3382\u3386\u3391\u33a0rp;\u666f\u0100hy\u338b\u338fcy;\u4449;\u4448rt\u026d\u3399\0\0\u339ci\xe4\u1464ara\xec\u2e6f\u803b\xad\u40ad\u0100gm\u33a8\u33b4ma\u0180;fv\u33b1\u33b2\u33b2\u43c3;\u43c2\u0400;deglnpr\u12ab\u33c5\u33c9\u33ce\u33d6\u33de\u33e1\u33e6ot;\u6a6a\u0100;q\u12b1\u12b0\u0100;E\u33d3\u33d4\u6a9e;\u6aa0\u0100;E\u33db\u33dc\u6a9d;\u6a9fe;\u6246lus;\u6a24arr;\u6972ar\xf2\u113d\u0200aeit\u33f8\u3408\u340f\u3417\u0100ls\u33fd\u3404lsetm\xe9\u336ahp;\u6a33parsl;\u69e4\u0100dl\u1463\u3414e;\u6323\u0100;e\u341c\u341d\u6aaa\u0100;s\u3422\u3423\u6aac;\uc000\u2aac\ufe00\u0180flp\u342e\u3433\u3442tcy;\u444c\u0100;b\u3438\u3439\u402f\u0100;a\u343e\u343f\u69c4r;\u633ff;\uc000\ud835\udd64a\u0100dr\u344d\u0402es\u0100;u\u3454\u3455\u6660it\xbb\u3455\u0180csu\u3460\u3479\u349f\u0100au\u3465\u346fp\u0100;s\u1188\u346b;\uc000\u2293\ufe00p\u0100;s\u11b4\u3475;\uc000\u2294\ufe00u\u0100bp\u347f\u348f\u0180;es\u1197\u119c\u3486et\u0100;e\u1197\u348d\xf1\u119d\u0180;es\u11a8\u11ad\u3496et\u0100;e\u11a8\u349d\xf1\u11ae\u0180;af\u117b\u34a6\u05b0r\u0165\u34ab\u05b1\xbb\u117car\xf2\u1148\u0200cemt\u34b9\u34be\u34c2\u34c5r;\uc000\ud835\udcc8tm\xee\xf1i\xec\u3415ar\xe6\u11be\u0100ar\u34ce\u34d5r\u0100;f\u34d4\u17bf\u6606\u0100an\u34da\u34edight\u0100ep\u34e3\u34eapsilo\xee\u1ee0h\xe9\u2eafs\xbb\u2852\u0280bcmnp\u34fb\u355e\u1209\u358b\u358e\u0480;Edemnprs\u350e\u350f\u3511\u3515\u351e\u3523\u352c\u3531\u3536\u6282;\u6ac5ot;\u6abd\u0100;d\u11da\u351aot;\u6ac3ult;\u6ac1\u0100Ee\u3528\u352a;\u6acb;\u628alus;\u6abfarr;\u6979\u0180eiu\u353d\u3552\u3555t\u0180;en\u350e\u3545\u354bq\u0100;q\u11da\u350feq\u0100;q\u352b\u3528m;\u6ac7\u0100bp\u355a\u355c;\u6ad5;\u6ad3c\u0300;acens\u11ed\u356c\u3572\u3579\u357b\u3326ppro\xf8\u32faurlye\xf1\u11fe\xf1\u11f3\u0180aes\u3582\u3588\u331bppro\xf8\u331aq\xf1\u3317g;\u666a\u0680123;Edehlmnps\u35a9\u35ac\u35af\u121c\u35b2\u35b4\u35c0\u35c9\u35d5\u35da\u35df\u35e8\u35ed\u803b\xb9\u40b9\u803b\xb2\u40b2\u803b\xb3\u40b3;\u6ac6\u0100os\u35b9\u35bct;\u6abeub;\u6ad8\u0100;d\u1222\u35c5ot;\u6ac4s\u0100ou\u35cf\u35d2l;\u67c9b;\u6ad7arr;\u697bult;\u6ac2\u0100Ee\u35e4\u35e6;\u6acc;\u628blus;\u6ac0\u0180eiu\u35f4\u3609\u360ct\u0180;en\u121c\u35fc\u3602q\u0100;q\u1222\u35b2eq\u0100;q\u35e7\u35e4m;\u6ac8\u0100bp\u3611\u3613;\u6ad4;\u6ad6\u0180Aan\u361c\u3620\u362drr;\u61d9r\u0100hr\u3626\u3628\xeb\u222e\u0100;o\u0a2b\u0a29war;\u692alig\u803b\xdf\u40df\u0be1\u3651\u365d\u3660\u12ce\u3673\u3679\0\u367e\u36c2\0\0\0\0\0\u36db\u3703\0\u3709\u376c\0\0\0\u3787\u0272\u3656\0\0\u365bget;\u6316;\u43c4r\xeb\u0e5f\u0180aey\u3666\u366b\u3670ron;\u4165dil;\u4163;\u4442lrec;\u6315r;\uc000\ud835\udd31\u0200eiko\u3686\u369d\u36b5\u36bc\u01f2\u368b\0\u3691e\u01004f\u1284\u1281a\u0180;sv\u3698\u3699\u369b\u43b8ym;\u43d1\u0100cn\u36a2\u36b2k\u0100as\u36a8\u36aeppro\xf8\u12c1im\xbb\u12acs\xf0\u129e\u0100as\u36ba\u36ae\xf0\u12c1rn\u803b\xfe\u40fe\u01ec\u031f\u36c6\u22e7es\u8180\xd7;bd\u36cf\u36d0\u36d8\u40d7\u0100;a\u190f\u36d5r;\u6a31;\u6a30\u0180eps\u36e1\u36e3\u3700\xe1\u2a4d\u0200;bcf\u0486\u36ec\u36f0\u36f4ot;\u6336ir;\u6af1\u0100;o\u36f9\u36fc\uc000\ud835\udd65rk;\u6ada\xe1\u3362rime;\u6034\u0180aip\u370f\u3712\u3764d\xe5\u1248\u0380adempst\u3721\u374d\u3740\u3751\u3757\u375c\u375fngle\u0280;dlqr\u3730\u3731\u3736\u3740\u3742\u65b5own\xbb\u1dbbeft\u0100;e\u2800\u373e\xf1\u092e;\u625cight\u0100;e\u32aa\u374b\xf1\u105aot;\u65ecinus;\u6a3alus;\u6a39b;\u69cdime;\u6a3bezium;\u63e2\u0180cht\u3772\u377d\u3781\u0100ry\u3777\u377b;\uc000\ud835\udcc9;\u4446cy;\u445brok;\u4167\u0100io\u378b\u378ex\xf4\u1777head\u0100lr\u3797\u37a0eftarro\xf7\u084fightarrow\xbb\u0f5d\u0900AHabcdfghlmoprstuw\u37d0\u37d3\u37d7\u37e4\u37f0\u37fc\u380e\u381c\u3823\u3834\u3851\u385d\u386b\u38a9\u38cc\u38d2\u38ea\u38f6r\xf2\u03edar;\u6963\u0100cr\u37dc\u37e2ute\u803b\xfa\u40fa\xf2\u1150r\u01e3\u37ea\0\u37edy;\u445eve;\u416d\u0100iy\u37f5\u37farc\u803b\xfb\u40fb;\u4443\u0180abh\u3803\u3806\u380br\xf2\u13adlac;\u4171a\xf2\u13c3\u0100ir\u3813\u3818sht;\u697e;\uc000\ud835\udd32rave\u803b\xf9\u40f9\u0161\u3827\u3831r\u0100lr\u382c\u382e\xbb\u0957\xbb\u1083lk;\u6580\u0100ct\u3839\u384d\u026f\u383f\0\0\u384arn\u0100;e\u3845\u3846\u631cr\xbb\u3846op;\u630fri;\u65f8\u0100al\u3856\u385acr;\u416b\u80bb\xa8\u0349\u0100gp\u3862\u3866on;\u4173f;\uc000\ud835\udd66\u0300adhlsu\u114b\u3878\u387d\u1372\u3891\u38a0own\xe1\u13b3arpoon\u0100lr\u3888\u388cef\xf4\u382digh\xf4\u382fi\u0180;hl\u3899\u389a\u389c\u43c5\xbb\u13faon\xbb\u389aparrows;\u61c8\u0180cit\u38b0\u38c4\u38c8\u026f\u38b6\0\0\u38c1rn\u0100;e\u38bc\u38bd\u631dr\xbb\u38bdop;\u630eng;\u416fri;\u65f9cr;\uc000\ud835\udcca\u0180dir\u38d9\u38dd\u38e2ot;\u62f0lde;\u4169i\u0100;f\u3730\u38e8\xbb\u1813\u0100am\u38ef\u38f2r\xf2\u38a8l\u803b\xfc\u40fcangle;\u69a7\u0780ABDacdeflnoprsz\u391c\u391f\u3929\u392d\u39b5\u39b8\u39bd\u39df\u39e4\u39e8\u39f3\u39f9\u39fd\u3a01\u3a20r\xf2\u03f7ar\u0100;v\u3926\u3927\u6ae8;\u6ae9as\xe8\u03e1\u0100nr\u3932\u3937grt;\u699c\u0380eknprst\u34e3\u3946\u394b\u3952\u395d\u3964\u3996app\xe1\u2415othin\xe7\u1e96\u0180hir\u34eb\u2ec8\u3959op\xf4\u2fb5\u0100;h\u13b7\u3962\xef\u318d\u0100iu\u3969\u396dgm\xe1\u33b3\u0100bp\u3972\u3984setneq\u0100;q\u397d\u3980\uc000\u228a\ufe00;\uc000\u2acb\ufe00setneq\u0100;q\u398f\u3992\uc000\u228b\ufe00;\uc000\u2acc\ufe00\u0100hr\u399b\u399fet\xe1\u369ciangle\u0100lr\u39aa\u39afeft\xbb\u0925ight\xbb\u1051y;\u4432ash\xbb\u1036\u0180elr\u39c4\u39d2\u39d7\u0180;be\u2dea\u39cb\u39cfar;\u62bbq;\u625alip;\u62ee\u0100bt\u39dc\u1468a\xf2\u1469r;\uc000\ud835\udd33tr\xe9\u39aesu\u0100bp\u39ef\u39f1\xbb\u0d1c\xbb\u0d59pf;\uc000\ud835\udd67ro\xf0\u0efbtr\xe9\u39b4\u0100cu\u3a06\u3a0br;\uc000\ud835\udccb\u0100bp\u3a10\u3a18n\u0100Ee\u3980\u3a16\xbb\u397en\u0100Ee\u3992\u3a1e\xbb\u3990igzag;\u699a\u0380cefoprs\u3a36\u3a3b\u3a56\u3a5b\u3a54\u3a61\u3a6airc;\u4175\u0100di\u3a40\u3a51\u0100bg\u3a45\u3a49ar;\u6a5fe\u0100;q\u15fa\u3a4f;\u6259erp;\u6118r;\uc000\ud835\udd34pf;\uc000\ud835\udd68\u0100;e\u1479\u3a66at\xe8\u1479cr;\uc000\ud835\udccc\u0ae3\u178e\u3a87\0\u3a8b\0\u3a90\u3a9b\0\0\u3a9d\u3aa8\u3aab\u3aaf\0\0\u3ac3\u3ace\0\u3ad8\u17dc\u17dftr\xe9\u17d1r;\uc000\ud835\udd35\u0100Aa\u3a94\u3a97r\xf2\u03c3r\xf2\u09f6;\u43be\u0100Aa\u3aa1\u3aa4r\xf2\u03b8r\xf2\u09eba\xf0\u2713is;\u62fb\u0180dpt\u17a4\u3ab5\u3abe\u0100fl\u3aba\u17a9;\uc000\ud835\udd69im\xe5\u17b2\u0100Aa\u3ac7\u3acar\xf2\u03cer\xf2\u0a01\u0100cq\u3ad2\u17b8r;\uc000\ud835\udccd\u0100pt\u17d6\u3adcr\xe9\u17d4\u0400acefiosu\u3af0\u3afd\u3b08\u3b0c\u3b11\u3b15\u3b1b\u3b21c\u0100uy\u3af6\u3afbte\u803b\xfd\u40fd;\u444f\u0100iy\u3b02\u3b06rc;\u4177;\u444bn\u803b\xa5\u40a5r;\uc000\ud835\udd36cy;\u4457pf;\uc000\ud835\udd6acr;\uc000\ud835\udcce\u0100cm\u3b26\u3b29y;\u444el\u803b\xff\u40ff\u0500acdefhiosw\u3b42\u3b48\u3b54\u3b58\u3b64\u3b69\u3b6d\u3b74\u3b7a\u3b80cute;\u417a\u0100ay\u3b4d\u3b52ron;\u417e;\u4437ot;\u417c\u0100et\u3b5d\u3b61tr\xe6\u155fa;\u43b6r;\uc000\ud835\udd37cy;\u4436grarr;\u61ddpf;\uc000\ud835\udd6bcr;\uc000\ud835\udccf\u0100jn\u3b85\u3b87;\u600dj;\u600c"
114988
+ .split("")
114989
+ .map((c) => c.charCodeAt(0))));
114990
+ //# sourceMappingURL=decode-data-html.js.map
114991
+ ;// ./node_modules/entities/lib/esm/generated/decode-data-xml.js
114992
+ // Generated using scripts/write-decode-map.ts
114993
+ /* harmony default export */ const decode_data_xml = (new Uint16Array(
114994
+ // prettier-ignore
114995
+ "\u0200aglq\t\x15\x18\x1b\u026d\x0f\0\0\x12p;\u4026os;\u4027t;\u403et;\u403cuot;\u4022"
114996
+ .split("")
114997
+ .map((c) => c.charCodeAt(0))));
114998
+ //# sourceMappingURL=decode-data-xml.js.map
114999
+ ;// ./node_modules/entities/lib/esm/decode_codepoint.js
115000
+ // Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134
115001
+ var esm_decode_codepoint_a;
115002
+ const decode_codepoint_decodeMap = new Map([
115003
+ [0, 65533],
115004
+ // C1 Unicode control character reference replacements
115005
+ [128, 8364],
115006
+ [130, 8218],
115007
+ [131, 402],
115008
+ [132, 8222],
115009
+ [133, 8230],
115010
+ [134, 8224],
115011
+ [135, 8225],
115012
+ [136, 710],
115013
+ [137, 8240],
115014
+ [138, 352],
115015
+ [139, 8249],
115016
+ [140, 338],
115017
+ [142, 381],
115018
+ [145, 8216],
115019
+ [146, 8217],
115020
+ [147, 8220],
115021
+ [148, 8221],
115022
+ [149, 8226],
115023
+ [150, 8211],
115024
+ [151, 8212],
115025
+ [152, 732],
115026
+ [153, 8482],
115027
+ [154, 353],
115028
+ [155, 8250],
115029
+ [156, 339],
115030
+ [158, 382],
115031
+ [159, 376],
115032
+ ]);
115033
+ /**
115034
+ * Polyfill for `String.fromCodePoint`. It is used to create a string from a Unicode code point.
115035
+ */
115036
+ const esm_decode_codepoint_fromCodePoint =
115037
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, node/no-unsupported-features/es-builtins
115038
+ (esm_decode_codepoint_a = String.fromCodePoint) !== null && esm_decode_codepoint_a !== void 0 ? esm_decode_codepoint_a : function (codePoint) {
115039
+ let output = "";
115040
+ if (codePoint > 0xffff) {
115041
+ codePoint -= 0x10000;
115042
+ output += String.fromCharCode(((codePoint >>> 10) & 0x3ff) | 0xd800);
115043
+ codePoint = 0xdc00 | (codePoint & 0x3ff);
115044
+ }
115045
+ output += String.fromCharCode(codePoint);
115046
+ return output;
115047
+ };
115048
+ /**
115049
+ * Replace the given code point with a replacement character if it is a
115050
+ * surrogate or is outside the valid range. Otherwise return the code
115051
+ * point unchanged.
115052
+ */
115053
+ function decode_codepoint_replaceCodePoint(codePoint) {
115054
+ var _a;
115055
+ if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) {
115056
+ return 0xfffd;
115057
+ }
115058
+ return (_a = decode_codepoint_decodeMap.get(codePoint)) !== null && _a !== void 0 ? _a : codePoint;
115059
+ }
115060
+ /**
115061
+ * Replace the code point if relevant, then convert it to a string.
115062
+ *
115063
+ * @deprecated Use `fromCodePoint(replaceCodePoint(codePoint))` instead.
115064
+ * @param codePoint The code point to decode.
115065
+ * @returns The decoded code point.
115066
+ */
115067
+ function decode_codepoint_decodeCodePoint(codePoint) {
115068
+ return esm_decode_codepoint_fromCodePoint(decode_codepoint_replaceCodePoint(codePoint));
115069
+ }
115070
+ //# sourceMappingURL=decode_codepoint.js.map
115071
+ ;// ./node_modules/entities/lib/esm/decode.js
115072
+
115073
+
115074
+
115075
+ // Re-export for use by eg. htmlparser2
115076
+
115077
+
115078
+ var decode_CharCodes;
115079
+ (function (CharCodes) {
115080
+ CharCodes[CharCodes["NUM"] = 35] = "NUM";
115081
+ CharCodes[CharCodes["SEMI"] = 59] = "SEMI";
115082
+ CharCodes[CharCodes["EQUALS"] = 61] = "EQUALS";
115083
+ CharCodes[CharCodes["ZERO"] = 48] = "ZERO";
115084
+ CharCodes[CharCodes["NINE"] = 57] = "NINE";
115085
+ CharCodes[CharCodes["LOWER_A"] = 97] = "LOWER_A";
115086
+ CharCodes[CharCodes["LOWER_F"] = 102] = "LOWER_F";
115087
+ CharCodes[CharCodes["LOWER_X"] = 120] = "LOWER_X";
115088
+ CharCodes[CharCodes["LOWER_Z"] = 122] = "LOWER_Z";
115089
+ CharCodes[CharCodes["UPPER_A"] = 65] = "UPPER_A";
115090
+ CharCodes[CharCodes["UPPER_F"] = 70] = "UPPER_F";
115091
+ CharCodes[CharCodes["UPPER_Z"] = 90] = "UPPER_Z";
115092
+ })(decode_CharCodes || (decode_CharCodes = {}));
115093
+ /** Bit that needs to be set to convert an upper case ASCII character to lower case */
115094
+ const decode_TO_LOWER_BIT = 0b100000;
115095
+ var decode_BinTrieFlags;
115096
+ (function (BinTrieFlags) {
115097
+ BinTrieFlags[BinTrieFlags["VALUE_LENGTH"] = 49152] = "VALUE_LENGTH";
115098
+ BinTrieFlags[BinTrieFlags["BRANCH_LENGTH"] = 16256] = "BRANCH_LENGTH";
115099
+ BinTrieFlags[BinTrieFlags["JUMP_TABLE"] = 127] = "JUMP_TABLE";
115100
+ })(decode_BinTrieFlags || (decode_BinTrieFlags = {}));
115101
+ function decode_isNumber(code) {
115102
+ return code >= decode_CharCodes.ZERO && code <= decode_CharCodes.NINE;
115103
+ }
115104
+ function decode_isHexadecimalCharacter(code) {
115105
+ return ((code >= decode_CharCodes.UPPER_A && code <= decode_CharCodes.UPPER_F) ||
115106
+ (code >= decode_CharCodes.LOWER_A && code <= decode_CharCodes.LOWER_F));
115107
+ }
115108
+ function decode_isAsciiAlphaNumeric(code) {
115109
+ return ((code >= decode_CharCodes.UPPER_A && code <= decode_CharCodes.UPPER_Z) ||
115110
+ (code >= decode_CharCodes.LOWER_A && code <= decode_CharCodes.LOWER_Z) ||
115111
+ decode_isNumber(code));
115112
+ }
115113
+ /**
115114
+ * Checks if the given character is a valid end character for an entity in an attribute.
115115
+ *
115116
+ * Attribute values that aren't terminated properly aren't parsed, and shouldn't lead to a parser error.
115117
+ * See the example in https://html.spec.whatwg.org/multipage/parsing.html#named-character-reference-state
115118
+ */
115119
+ function decode_isEntityInAttributeInvalidEnd(code) {
115120
+ return code === decode_CharCodes.EQUALS || decode_isAsciiAlphaNumeric(code);
115121
+ }
115122
+ var decode_EntityDecoderState;
115123
+ (function (EntityDecoderState) {
115124
+ EntityDecoderState[EntityDecoderState["EntityStart"] = 0] = "EntityStart";
115125
+ EntityDecoderState[EntityDecoderState["NumericStart"] = 1] = "NumericStart";
115126
+ EntityDecoderState[EntityDecoderState["NumericDecimal"] = 2] = "NumericDecimal";
115127
+ EntityDecoderState[EntityDecoderState["NumericHex"] = 3] = "NumericHex";
115128
+ EntityDecoderState[EntityDecoderState["NamedEntity"] = 4] = "NamedEntity";
115129
+ })(decode_EntityDecoderState || (decode_EntityDecoderState = {}));
115130
+ var esm_decode_DecodingMode;
115131
+ (function (DecodingMode) {
115132
+ /** Entities in text nodes that can end with any character. */
115133
+ DecodingMode[DecodingMode["Legacy"] = 0] = "Legacy";
115134
+ /** Only allow entities terminated with a semicolon. */
115135
+ DecodingMode[DecodingMode["Strict"] = 1] = "Strict";
115136
+ /** Entities in attributes have limitations on ending characters. */
115137
+ DecodingMode[DecodingMode["Attribute"] = 2] = "Attribute";
115138
+ })(esm_decode_DecodingMode || (esm_decode_DecodingMode = {}));
115139
+ /**
115140
+ * Token decoder with support of writing partial entities.
115141
+ */
115142
+ class decode_EntityDecoder {
115143
+ constructor(
115144
+ /** The tree used to decode entities. */
115145
+ decodeTree,
115146
+ /**
115147
+ * The function that is called when a codepoint is decoded.
115148
+ *
115149
+ * For multi-byte named entities, this will be called multiple times,
115150
+ * with the second codepoint, and the same `consumed` value.
115151
+ *
115152
+ * @param codepoint The decoded codepoint.
115153
+ * @param consumed The number of bytes consumed by the decoder.
115154
+ */
115155
+ emitCodePoint,
115156
+ /** An object that is used to produce errors. */
115157
+ errors) {
115158
+ this.decodeTree = decodeTree;
115159
+ this.emitCodePoint = emitCodePoint;
115160
+ this.errors = errors;
115161
+ /** The current state of the decoder. */
115162
+ this.state = decode_EntityDecoderState.EntityStart;
115163
+ /** Characters that were consumed while parsing an entity. */
115164
+ this.consumed = 1;
115165
+ /**
115166
+ * The result of the entity.
115167
+ *
115168
+ * Either the result index of a numeric entity, or the codepoint of a
115169
+ * numeric entity.
115170
+ */
115171
+ this.result = 0;
115172
+ /** The current index in the decode tree. */
115173
+ this.treeIndex = 0;
115174
+ /** The number of characters that were consumed in excess. */
115175
+ this.excess = 1;
115176
+ /** The mode in which the decoder is operating. */
115177
+ this.decodeMode = esm_decode_DecodingMode.Strict;
115178
+ }
115179
+ /** Resets the instance to make it reusable. */
115180
+ startEntity(decodeMode) {
115181
+ this.decodeMode = decodeMode;
115182
+ this.state = decode_EntityDecoderState.EntityStart;
115183
+ this.result = 0;
115184
+ this.treeIndex = 0;
115185
+ this.excess = 1;
115186
+ this.consumed = 1;
115187
+ }
115188
+ /**
115189
+ * Write an entity to the decoder. This can be called multiple times with partial entities.
115190
+ * If the entity is incomplete, the decoder will return -1.
115191
+ *
115192
+ * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the
115193
+ * entity is incomplete, and resume when the next string is written.
115194
+ *
115195
+ * @param string The string containing the entity (or a continuation of the entity).
115196
+ * @param offset The offset at which the entity begins. Should be 0 if this is not the first call.
115197
+ * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
115198
+ */
115199
+ write(str, offset) {
115200
+ switch (this.state) {
115201
+ case decode_EntityDecoderState.EntityStart: {
115202
+ if (str.charCodeAt(offset) === decode_CharCodes.NUM) {
115203
+ this.state = decode_EntityDecoderState.NumericStart;
115204
+ this.consumed += 1;
115205
+ return this.stateNumericStart(str, offset + 1);
115206
+ }
115207
+ this.state = decode_EntityDecoderState.NamedEntity;
115208
+ return this.stateNamedEntity(str, offset);
115209
+ }
115210
+ case decode_EntityDecoderState.NumericStart: {
115211
+ return this.stateNumericStart(str, offset);
115212
+ }
115213
+ case decode_EntityDecoderState.NumericDecimal: {
115214
+ return this.stateNumericDecimal(str, offset);
115215
+ }
115216
+ case decode_EntityDecoderState.NumericHex: {
115217
+ return this.stateNumericHex(str, offset);
115218
+ }
115219
+ case decode_EntityDecoderState.NamedEntity: {
115220
+ return this.stateNamedEntity(str, offset);
115221
+ }
115222
+ }
115223
+ }
115224
+ /**
115225
+ * Switches between the numeric decimal and hexadecimal states.
115226
+ *
115227
+ * Equivalent to the `Numeric character reference state` in the HTML spec.
115228
+ *
115229
+ * @param str The string containing the entity (or a continuation of the entity).
115230
+ * @param offset The current offset.
115231
+ * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
115232
+ */
115233
+ stateNumericStart(str, offset) {
115234
+ if (offset >= str.length) {
115235
+ return -1;
115236
+ }
115237
+ if ((str.charCodeAt(offset) | decode_TO_LOWER_BIT) === decode_CharCodes.LOWER_X) {
115238
+ this.state = decode_EntityDecoderState.NumericHex;
115239
+ this.consumed += 1;
115240
+ return this.stateNumericHex(str, offset + 1);
115241
+ }
115242
+ this.state = decode_EntityDecoderState.NumericDecimal;
115243
+ return this.stateNumericDecimal(str, offset);
115244
+ }
115245
+ addToNumericResult(str, start, end, base) {
115246
+ if (start !== end) {
115247
+ const digitCount = end - start;
115248
+ this.result =
115249
+ this.result * Math.pow(base, digitCount) +
115250
+ parseInt(str.substr(start, digitCount), base);
115251
+ this.consumed += digitCount;
115252
+ }
115253
+ }
115254
+ /**
115255
+ * Parses a hexadecimal numeric entity.
115256
+ *
115257
+ * Equivalent to the `Hexademical character reference state` in the HTML spec.
115258
+ *
115259
+ * @param str The string containing the entity (or a continuation of the entity).
115260
+ * @param offset The current offset.
115261
+ * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
115262
+ */
115263
+ stateNumericHex(str, offset) {
115264
+ const startIdx = offset;
115265
+ while (offset < str.length) {
115266
+ const char = str.charCodeAt(offset);
115267
+ if (decode_isNumber(char) || decode_isHexadecimalCharacter(char)) {
115268
+ offset += 1;
115269
+ }
115270
+ else {
115271
+ this.addToNumericResult(str, startIdx, offset, 16);
115272
+ return this.emitNumericEntity(char, 3);
115273
+ }
115274
+ }
115275
+ this.addToNumericResult(str, startIdx, offset, 16);
115276
+ return -1;
115277
+ }
115278
+ /**
115279
+ * Parses a decimal numeric entity.
115280
+ *
115281
+ * Equivalent to the `Decimal character reference state` in the HTML spec.
115282
+ *
115283
+ * @param str The string containing the entity (or a continuation of the entity).
115284
+ * @param offset The current offset.
115285
+ * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
115286
+ */
115287
+ stateNumericDecimal(str, offset) {
115288
+ const startIdx = offset;
115289
+ while (offset < str.length) {
115290
+ const char = str.charCodeAt(offset);
115291
+ if (decode_isNumber(char)) {
115292
+ offset += 1;
115293
+ }
115294
+ else {
115295
+ this.addToNumericResult(str, startIdx, offset, 10);
115296
+ return this.emitNumericEntity(char, 2);
115297
+ }
115298
+ }
115299
+ this.addToNumericResult(str, startIdx, offset, 10);
115300
+ return -1;
115301
+ }
115302
+ /**
115303
+ * Validate and emit a numeric entity.
115304
+ *
115305
+ * Implements the logic from the `Hexademical character reference start
115306
+ * state` and `Numeric character reference end state` in the HTML spec.
115307
+ *
115308
+ * @param lastCp The last code point of the entity. Used to see if the
115309
+ * entity was terminated with a semicolon.
115310
+ * @param expectedLength The minimum number of characters that should be
115311
+ * consumed. Used to validate that at least one digit
115312
+ * was consumed.
115313
+ * @returns The number of characters that were consumed.
115314
+ */
115315
+ emitNumericEntity(lastCp, expectedLength) {
115316
+ var _a;
115317
+ // Ensure we consumed at least one digit.
115318
+ if (this.consumed <= expectedLength) {
115319
+ (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);
115320
+ return 0;
115321
+ }
115322
+ // Figure out if this is a legit end of the entity
115323
+ if (lastCp === decode_CharCodes.SEMI) {
115324
+ this.consumed += 1;
115325
+ }
115326
+ else if (this.decodeMode === esm_decode_DecodingMode.Strict) {
115327
+ return 0;
115328
+ }
115329
+ this.emitCodePoint(decode_codepoint_replaceCodePoint(this.result), this.consumed);
115330
+ if (this.errors) {
115331
+ if (lastCp !== decode_CharCodes.SEMI) {
115332
+ this.errors.missingSemicolonAfterCharacterReference();
115333
+ }
115334
+ this.errors.validateNumericCharacterReference(this.result);
115335
+ }
115336
+ return this.consumed;
115337
+ }
115338
+ /**
115339
+ * Parses a named entity.
115340
+ *
115341
+ * Equivalent to the `Named character reference state` in the HTML spec.
115342
+ *
115343
+ * @param str The string containing the entity (or a continuation of the entity).
115344
+ * @param offset The current offset.
115345
+ * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
115346
+ */
115347
+ stateNamedEntity(str, offset) {
115348
+ const { decodeTree } = this;
115349
+ let current = decodeTree[this.treeIndex];
115350
+ // The mask is the number of bytes of the value, including the current byte.
115351
+ let valueLength = (current & decode_BinTrieFlags.VALUE_LENGTH) >> 14;
115352
+ for (; offset < str.length; offset++, this.excess++) {
115353
+ const char = str.charCodeAt(offset);
115354
+ this.treeIndex = decode_determineBranch(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char);
115355
+ if (this.treeIndex < 0) {
115356
+ return this.result === 0 ||
115357
+ // If we are parsing an attribute
115358
+ (this.decodeMode === esm_decode_DecodingMode.Attribute &&
115359
+ // We shouldn't have consumed any characters after the entity,
115360
+ (valueLength === 0 ||
115361
+ // And there should be no invalid characters.
115362
+ decode_isEntityInAttributeInvalidEnd(char)))
115363
+ ? 0
115364
+ : this.emitNotTerminatedNamedEntity();
115365
+ }
115366
+ current = decodeTree[this.treeIndex];
115367
+ valueLength = (current & decode_BinTrieFlags.VALUE_LENGTH) >> 14;
115368
+ // If the branch is a value, store it and continue
115369
+ if (valueLength !== 0) {
115370
+ // If the entity is terminated by a semicolon, we are done.
115371
+ if (char === decode_CharCodes.SEMI) {
115372
+ return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);
115373
+ }
115374
+ // If we encounter a non-terminated (legacy) entity while parsing strictly, then ignore it.
115375
+ if (this.decodeMode !== esm_decode_DecodingMode.Strict) {
115376
+ this.result = this.treeIndex;
115377
+ this.consumed += this.excess;
115378
+ this.excess = 0;
115379
+ }
115380
+ }
115381
+ }
115382
+ return -1;
115383
+ }
115384
+ /**
115385
+ * Emit a named entity that was not terminated with a semicolon.
115386
+ *
115387
+ * @returns The number of characters consumed.
115388
+ */
115389
+ emitNotTerminatedNamedEntity() {
115390
+ var _a;
115391
+ const { result, decodeTree } = this;
115392
+ const valueLength = (decodeTree[result] & decode_BinTrieFlags.VALUE_LENGTH) >> 14;
115393
+ this.emitNamedEntityData(result, valueLength, this.consumed);
115394
+ (_a = this.errors) === null || _a === void 0 ? void 0 : _a.missingSemicolonAfterCharacterReference();
115395
+ return this.consumed;
115396
+ }
115397
+ /**
115398
+ * Emit a named entity.
115399
+ *
115400
+ * @param result The index of the entity in the decode tree.
115401
+ * @param valueLength The number of bytes in the entity.
115402
+ * @param consumed The number of characters consumed.
115403
+ *
115404
+ * @returns The number of characters consumed.
115405
+ */
115406
+ emitNamedEntityData(result, valueLength, consumed) {
115407
+ const { decodeTree } = this;
115408
+ this.emitCodePoint(valueLength === 1
115409
+ ? decodeTree[result] & ~decode_BinTrieFlags.VALUE_LENGTH
115410
+ : decodeTree[result + 1], consumed);
115411
+ if (valueLength === 3) {
115412
+ // For multi-byte values, we need to emit the second byte.
115413
+ this.emitCodePoint(decodeTree[result + 2], consumed);
115414
+ }
115415
+ return consumed;
115416
+ }
115417
+ /**
115418
+ * Signal to the parser that the end of the input was reached.
115419
+ *
115420
+ * Remaining data will be emitted and relevant errors will be produced.
115421
+ *
115422
+ * @returns The number of characters consumed.
115423
+ */
115424
+ end() {
115425
+ var _a;
115426
+ switch (this.state) {
115427
+ case decode_EntityDecoderState.NamedEntity: {
115428
+ // Emit a named entity if we have one.
115429
+ return this.result !== 0 &&
115430
+ (this.decodeMode !== esm_decode_DecodingMode.Attribute ||
115431
+ this.result === this.treeIndex)
115432
+ ? this.emitNotTerminatedNamedEntity()
115433
+ : 0;
115434
+ }
115435
+ // Otherwise, emit a numeric entity if we have one.
115436
+ case decode_EntityDecoderState.NumericDecimal: {
115437
+ return this.emitNumericEntity(0, 2);
115438
+ }
115439
+ case decode_EntityDecoderState.NumericHex: {
115440
+ return this.emitNumericEntity(0, 3);
115441
+ }
115442
+ case decode_EntityDecoderState.NumericStart: {
115443
+ (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);
115444
+ return 0;
115445
+ }
115446
+ case decode_EntityDecoderState.EntityStart: {
115447
+ // Return 0 if we have no entity.
115448
+ return 0;
115449
+ }
115450
+ }
115451
+ }
115452
+ }
115453
+ /**
115454
+ * Creates a function that decodes entities in a string.
115455
+ *
115456
+ * @param decodeTree The decode tree.
115457
+ * @returns A function that decodes entities in a string.
115458
+ */
115459
+ function decode_getDecoder(decodeTree) {
115460
+ let ret = "";
115461
+ const decoder = new decode_EntityDecoder(decodeTree, (str) => (ret += esm_decode_codepoint_fromCodePoint(str)));
115462
+ return function decodeWithTrie(str, decodeMode) {
115463
+ let lastIndex = 0;
115464
+ let offset = 0;
115465
+ while ((offset = str.indexOf("&", offset)) >= 0) {
115466
+ ret += str.slice(lastIndex, offset);
115467
+ decoder.startEntity(decodeMode);
115468
+ const len = decoder.write(str,
115469
+ // Skip the "&"
115470
+ offset + 1);
115471
+ if (len < 0) {
115472
+ lastIndex = offset + decoder.end();
115473
+ break;
115474
+ }
115475
+ lastIndex = offset + len;
115476
+ // If `len` is 0, skip the current `&` and continue.
115477
+ offset = len === 0 ? lastIndex + 1 : lastIndex;
115478
+ }
115479
+ const result = ret + str.slice(lastIndex);
115480
+ // Make sure we don't keep a reference to the final string.
115481
+ ret = "";
115482
+ return result;
115483
+ };
115484
+ }
115485
+ /**
115486
+ * Determines the branch of the current node that is taken given the current
115487
+ * character. This function is used to traverse the trie.
115488
+ *
115489
+ * @param decodeTree The trie.
115490
+ * @param current The current node.
115491
+ * @param nodeIdx The index right after the current node and its value.
115492
+ * @param char The current character.
115493
+ * @returns The index of the next node, or -1 if no branch is taken.
115494
+ */
115495
+ function decode_determineBranch(decodeTree, current, nodeIdx, char) {
115496
+ const branchCount = (current & decode_BinTrieFlags.BRANCH_LENGTH) >> 7;
115497
+ const jumpOffset = current & decode_BinTrieFlags.JUMP_TABLE;
115498
+ // Case 1: Single branch encoded in jump offset
115499
+ if (branchCount === 0) {
115500
+ return jumpOffset !== 0 && char === jumpOffset ? nodeIdx : -1;
115501
+ }
115502
+ // Case 2: Multiple branches encoded in jump table
115503
+ if (jumpOffset) {
115504
+ const value = char - jumpOffset;
115505
+ return value < 0 || value >= branchCount
115506
+ ? -1
115507
+ : decodeTree[nodeIdx + value] - 1;
115508
+ }
115509
+ // Case 3: Multiple branches encoded in dictionary
115510
+ // Binary search for the character.
115511
+ let lo = nodeIdx;
115512
+ let hi = lo + branchCount - 1;
115513
+ while (lo <= hi) {
115514
+ const mid = (lo + hi) >>> 1;
115515
+ const midVal = decodeTree[mid];
115516
+ if (midVal < char) {
115517
+ lo = mid + 1;
115518
+ }
115519
+ else if (midVal > char) {
115520
+ hi = mid - 1;
115521
+ }
115522
+ else {
115523
+ return decodeTree[mid + branchCount];
115524
+ }
115525
+ }
115526
+ return -1;
115527
+ }
115528
+ const decode_htmlDecoder = decode_getDecoder(decode_data_html);
115529
+ const decode_xmlDecoder = decode_getDecoder(decode_data_xml);
115530
+ /**
115531
+ * Decodes an HTML string.
115532
+ *
115533
+ * @param str The string to decode.
115534
+ * @param mode The decoding mode.
115535
+ * @returns The decoded string.
115536
+ */
115537
+ function esm_decode_decodeHTML(str, mode = esm_decode_DecodingMode.Legacy) {
115538
+ return decode_htmlDecoder(str, mode);
115539
+ }
115540
+ /**
115541
+ * Decodes an HTML string in an attribute.
115542
+ *
115543
+ * @param str The string to decode.
115544
+ * @returns The decoded string.
115545
+ */
115546
+ function decode_decodeHTMLAttribute(str) {
115547
+ return decode_htmlDecoder(str, esm_decode_DecodingMode.Attribute);
115548
+ }
115549
+ /**
115550
+ * Decodes an HTML string, requiring all entities to be terminated by a semicolon.
115551
+ *
115552
+ * @param str The string to decode.
115553
+ * @returns The decoded string.
115554
+ */
115555
+ function decode_decodeHTMLStrict(str) {
115556
+ return decode_htmlDecoder(str, esm_decode_DecodingMode.Strict);
115557
+ }
115558
+ /**
115559
+ * Decodes an XML string, requiring all entities to be terminated by a semicolon.
115560
+ *
115561
+ * @param str The string to decode.
115562
+ * @returns The decoded string.
115563
+ */
115564
+ function esm_decode_decodeXML(str) {
115565
+ return decode_xmlDecoder(str, esm_decode_DecodingMode.Strict);
115566
+ }
115567
+ //# sourceMappingURL=decode.js.map
115027
115568
  ;// ./node_modules/entities/lib/esm/generated/encode-html.js
115028
115569
  // Generated using scripts/write-encode-map.ts
115029
115570
  function restoreDiff(arr) {
@@ -115035,6 +115576,123 @@ function restoreDiff(arr) {
115035
115576
  // prettier-ignore
115036
115577
  /* harmony default export */ const encode_html = (new Map(/* #__PURE__ */ restoreDiff([[9, "&Tab;"], [0, "&NewLine;"], [22, "&excl;"], [0, "&quot;"], [0, "&num;"], [0, "&dollar;"], [0, "&percnt;"], [0, "&amp;"], [0, "&apos;"], [0, "&lpar;"], [0, "&rpar;"], [0, "&ast;"], [0, "&plus;"], [0, "&comma;"], [1, "&period;"], [0, "&sol;"], [10, "&colon;"], [0, "&semi;"], [0, { v: "&lt;", n: 8402, o: "&nvlt;" }], [0, { v: "&equals;", n: 8421, o: "&bne;" }], [0, { v: "&gt;", n: 8402, o: "&nvgt;" }], [0, "&quest;"], [0, "&commat;"], [26, "&lbrack;"], [0, "&bsol;"], [0, "&rbrack;"], [0, "&Hat;"], [0, "&lowbar;"], [0, "&DiacriticalGrave;"], [5, { n: 106, o: "&fjlig;" }], [20, "&lbrace;"], [0, "&verbar;"], [0, "&rbrace;"], [34, "&nbsp;"], [0, "&iexcl;"], [0, "&cent;"], [0, "&pound;"], [0, "&curren;"], [0, "&yen;"], [0, "&brvbar;"], [0, "&sect;"], [0, "&die;"], [0, "&copy;"], [0, "&ordf;"], [0, "&laquo;"], [0, "&not;"], [0, "&shy;"], [0, "&circledR;"], [0, "&macr;"], [0, "&deg;"], [0, "&PlusMinus;"], [0, "&sup2;"], [0, "&sup3;"], [0, "&acute;"], [0, "&micro;"], [0, "&para;"], [0, "&centerdot;"], [0, "&cedil;"], [0, "&sup1;"], [0, "&ordm;"], [0, "&raquo;"], [0, "&frac14;"], [0, "&frac12;"], [0, "&frac34;"], [0, "&iquest;"], [0, "&Agrave;"], [0, "&Aacute;"], [0, "&Acirc;"], [0, "&Atilde;"], [0, "&Auml;"], [0, "&angst;"], [0, "&AElig;"], [0, "&Ccedil;"], [0, "&Egrave;"], [0, "&Eacute;"], [0, "&Ecirc;"], [0, "&Euml;"], [0, "&Igrave;"], [0, "&Iacute;"], [0, "&Icirc;"], [0, "&Iuml;"], [0, "&ETH;"], [0, "&Ntilde;"], [0, "&Ograve;"], [0, "&Oacute;"], [0, "&Ocirc;"], [0, "&Otilde;"], [0, "&Ouml;"], [0, "&times;"], [0, "&Oslash;"], [0, "&Ugrave;"], [0, "&Uacute;"], [0, "&Ucirc;"], [0, "&Uuml;"], [0, "&Yacute;"], [0, "&THORN;"], [0, "&szlig;"], [0, "&agrave;"], [0, "&aacute;"], [0, "&acirc;"], [0, "&atilde;"], [0, "&auml;"], [0, "&aring;"], [0, "&aelig;"], [0, "&ccedil;"], [0, "&egrave;"], [0, "&eacute;"], [0, "&ecirc;"], [0, "&euml;"], [0, "&igrave;"], [0, "&iacute;"], [0, "&icirc;"], [0, "&iuml;"], [0, "&eth;"], [0, "&ntilde;"], [0, "&ograve;"], [0, "&oacute;"], [0, "&ocirc;"], [0, "&otilde;"], [0, "&ouml;"], [0, "&div;"], [0, "&oslash;"], [0, "&ugrave;"], [0, "&uacute;"], [0, "&ucirc;"], [0, "&uuml;"], [0, "&yacute;"], [0, "&thorn;"], [0, "&yuml;"], [0, "&Amacr;"], [0, "&amacr;"], [0, "&Abreve;"], [0, "&abreve;"], [0, "&Aogon;"], [0, "&aogon;"], [0, "&Cacute;"], [0, "&cacute;"], [0, "&Ccirc;"], [0, "&ccirc;"], [0, "&Cdot;"], [0, "&cdot;"], [0, "&Ccaron;"], [0, "&ccaron;"], [0, "&Dcaron;"], [0, "&dcaron;"], [0, "&Dstrok;"], [0, "&dstrok;"], [0, "&Emacr;"], [0, "&emacr;"], [2, "&Edot;"], [0, "&edot;"], [0, "&Eogon;"], [0, "&eogon;"], [0, "&Ecaron;"], [0, "&ecaron;"], [0, "&Gcirc;"], [0, "&gcirc;"], [0, "&Gbreve;"], [0, "&gbreve;"], [0, "&Gdot;"], [0, "&gdot;"], [0, "&Gcedil;"], [1, "&Hcirc;"], [0, "&hcirc;"], [0, "&Hstrok;"], [0, "&hstrok;"], [0, "&Itilde;"], [0, "&itilde;"], [0, "&Imacr;"], [0, "&imacr;"], [2, "&Iogon;"], [0, "&iogon;"], [0, "&Idot;"], [0, "&imath;"], [0, "&IJlig;"], [0, "&ijlig;"], [0, "&Jcirc;"], [0, "&jcirc;"], [0, "&Kcedil;"], [0, "&kcedil;"], [0, "&kgreen;"], [0, "&Lacute;"], [0, "&lacute;"], [0, "&Lcedil;"], [0, "&lcedil;"], [0, "&Lcaron;"], [0, "&lcaron;"], [0, "&Lmidot;"], [0, "&lmidot;"], [0, "&Lstrok;"], [0, "&lstrok;"], [0, "&Nacute;"], [0, "&nacute;"], [0, "&Ncedil;"], [0, "&ncedil;"], [0, "&Ncaron;"], [0, "&ncaron;"], [0, "&napos;"], [0, "&ENG;"], [0, "&eng;"], [0, "&Omacr;"], [0, "&omacr;"], [2, "&Odblac;"], [0, "&odblac;"], [0, "&OElig;"], [0, "&oelig;"], [0, "&Racute;"], [0, "&racute;"], [0, "&Rcedil;"], [0, "&rcedil;"], [0, "&Rcaron;"], [0, "&rcaron;"], [0, "&Sacute;"], [0, "&sacute;"], [0, "&Scirc;"], [0, "&scirc;"], [0, "&Scedil;"], [0, "&scedil;"], [0, "&Scaron;"], [0, "&scaron;"], [0, "&Tcedil;"], [0, "&tcedil;"], [0, "&Tcaron;"], [0, "&tcaron;"], [0, "&Tstrok;"], [0, "&tstrok;"], [0, "&Utilde;"], [0, "&utilde;"], [0, "&Umacr;"], [0, "&umacr;"], [0, "&Ubreve;"], [0, "&ubreve;"], [0, "&Uring;"], [0, "&uring;"], [0, "&Udblac;"], [0, "&udblac;"], [0, "&Uogon;"], [0, "&uogon;"], [0, "&Wcirc;"], [0, "&wcirc;"], [0, "&Ycirc;"], [0, "&ycirc;"], [0, "&Yuml;"], [0, "&Zacute;"], [0, "&zacute;"], [0, "&Zdot;"], [0, "&zdot;"], [0, "&Zcaron;"], [0, "&zcaron;"], [19, "&fnof;"], [34, "&imped;"], [63, "&gacute;"], [65, "&jmath;"], [142, "&circ;"], [0, "&caron;"], [16, "&breve;"], [0, "&DiacriticalDot;"], [0, "&ring;"], [0, "&ogon;"], [0, "&DiacriticalTilde;"], [0, "&dblac;"], [51, "&DownBreve;"], [127, "&Alpha;"], [0, "&Beta;"], [0, "&Gamma;"], [0, "&Delta;"], [0, "&Epsilon;"], [0, "&Zeta;"], [0, "&Eta;"], [0, "&Theta;"], [0, "&Iota;"], [0, "&Kappa;"], [0, "&Lambda;"], [0, "&Mu;"], [0, "&Nu;"], [0, "&Xi;"], [0, "&Omicron;"], [0, "&Pi;"], [0, "&Rho;"], [1, "&Sigma;"], [0, "&Tau;"], [0, "&Upsilon;"], [0, "&Phi;"], [0, "&Chi;"], [0, "&Psi;"], [0, "&ohm;"], [7, "&alpha;"], [0, "&beta;"], [0, "&gamma;"], [0, "&delta;"], [0, "&epsi;"], [0, "&zeta;"], [0, "&eta;"], [0, "&theta;"], [0, "&iota;"], [0, "&kappa;"], [0, "&lambda;"], [0, "&mu;"], [0, "&nu;"], [0, "&xi;"], [0, "&omicron;"], [0, "&pi;"], [0, "&rho;"], [0, "&sigmaf;"], [0, "&sigma;"], [0, "&tau;"], [0, "&upsi;"], [0, "&phi;"], [0, "&chi;"], [0, "&psi;"], [0, "&omega;"], [7, "&thetasym;"], [0, "&Upsi;"], [2, "&phiv;"], [0, "&piv;"], [5, "&Gammad;"], [0, "&digamma;"], [18, "&kappav;"], [0, "&rhov;"], [3, "&epsiv;"], [0, "&backepsilon;"], [10, "&IOcy;"], [0, "&DJcy;"], [0, "&GJcy;"], [0, "&Jukcy;"], [0, "&DScy;"], [0, "&Iukcy;"], [0, "&YIcy;"], [0, "&Jsercy;"], [0, "&LJcy;"], [0, "&NJcy;"], [0, "&TSHcy;"], [0, "&KJcy;"], [1, "&Ubrcy;"], [0, "&DZcy;"], [0, "&Acy;"], [0, "&Bcy;"], [0, "&Vcy;"], [0, "&Gcy;"], [0, "&Dcy;"], [0, "&IEcy;"], [0, "&ZHcy;"], [0, "&Zcy;"], [0, "&Icy;"], [0, "&Jcy;"], [0, "&Kcy;"], [0, "&Lcy;"], [0, "&Mcy;"], [0, "&Ncy;"], [0, "&Ocy;"], [0, "&Pcy;"], [0, "&Rcy;"], [0, "&Scy;"], [0, "&Tcy;"], [0, "&Ucy;"], [0, "&Fcy;"], [0, "&KHcy;"], [0, "&TScy;"], [0, "&CHcy;"], [0, "&SHcy;"], [0, "&SHCHcy;"], [0, "&HARDcy;"], [0, "&Ycy;"], [0, "&SOFTcy;"], [0, "&Ecy;"], [0, "&YUcy;"], [0, "&YAcy;"], [0, "&acy;"], [0, "&bcy;"], [0, "&vcy;"], [0, "&gcy;"], [0, "&dcy;"], [0, "&iecy;"], [0, "&zhcy;"], [0, "&zcy;"], [0, "&icy;"], [0, "&jcy;"], [0, "&kcy;"], [0, "&lcy;"], [0, "&mcy;"], [0, "&ncy;"], [0, "&ocy;"], [0, "&pcy;"], [0, "&rcy;"], [0, "&scy;"], [0, "&tcy;"], [0, "&ucy;"], [0, "&fcy;"], [0, "&khcy;"], [0, "&tscy;"], [0, "&chcy;"], [0, "&shcy;"], [0, "&shchcy;"], [0, "&hardcy;"], [0, "&ycy;"], [0, "&softcy;"], [0, "&ecy;"], [0, "&yucy;"], [0, "&yacy;"], [1, "&iocy;"], [0, "&djcy;"], [0, "&gjcy;"], [0, "&jukcy;"], [0, "&dscy;"], [0, "&iukcy;"], [0, "&yicy;"], [0, "&jsercy;"], [0, "&ljcy;"], [0, "&njcy;"], [0, "&tshcy;"], [0, "&kjcy;"], [1, "&ubrcy;"], [0, "&dzcy;"], [7074, "&ensp;"], [0, "&emsp;"], [0, "&emsp13;"], [0, "&emsp14;"], [1, "&numsp;"], [0, "&puncsp;"], [0, "&ThinSpace;"], [0, "&hairsp;"], [0, "&NegativeMediumSpace;"], [0, "&zwnj;"], [0, "&zwj;"], [0, "&lrm;"], [0, "&rlm;"], [0, "&dash;"], [2, "&ndash;"], [0, "&mdash;"], [0, "&horbar;"], [0, "&Verbar;"], [1, "&lsquo;"], [0, "&CloseCurlyQuote;"], [0, "&lsquor;"], [1, "&ldquo;"], [0, "&CloseCurlyDoubleQuote;"], [0, "&bdquo;"], [1, "&dagger;"], [0, "&Dagger;"], [0, "&bull;"], [2, "&nldr;"], [0, "&hellip;"], [9, "&permil;"], [0, "&pertenk;"], [0, "&prime;"], [0, "&Prime;"], [0, "&tprime;"], [0, "&backprime;"], [3, "&lsaquo;"], [0, "&rsaquo;"], [3, "&oline;"], [2, "&caret;"], [1, "&hybull;"], [0, "&frasl;"], [10, "&bsemi;"], [7, "&qprime;"], [7, { v: "&MediumSpace;", n: 8202, o: "&ThickSpace;" }], [0, "&NoBreak;"], [0, "&af;"], [0, "&InvisibleTimes;"], [0, "&ic;"], [72, "&euro;"], [46, "&tdot;"], [0, "&DotDot;"], [37, "&complexes;"], [2, "&incare;"], [4, "&gscr;"], [0, "&hamilt;"], [0, "&Hfr;"], [0, "&Hopf;"], [0, "&planckh;"], [0, "&hbar;"], [0, "&imagline;"], [0, "&Ifr;"], [0, "&lagran;"], [0, "&ell;"], [1, "&naturals;"], [0, "&numero;"], [0, "&copysr;"], [0, "&weierp;"], [0, "&Popf;"], [0, "&Qopf;"], [0, "&realine;"], [0, "&real;"], [0, "&reals;"], [0, "&rx;"], [3, "&trade;"], [1, "&integers;"], [2, "&mho;"], [0, "&zeetrf;"], [0, "&iiota;"], [2, "&bernou;"], [0, "&Cayleys;"], [1, "&escr;"], [0, "&Escr;"], [0, "&Fouriertrf;"], [1, "&Mellintrf;"], [0, "&order;"], [0, "&alefsym;"], [0, "&beth;"], [0, "&gimel;"], [0, "&daleth;"], [12, "&CapitalDifferentialD;"], [0, "&dd;"], [0, "&ee;"], [0, "&ii;"], [10, "&frac13;"], [0, "&frac23;"], [0, "&frac15;"], [0, "&frac25;"], [0, "&frac35;"], [0, "&frac45;"], [0, "&frac16;"], [0, "&frac56;"], [0, "&frac18;"], [0, "&frac38;"], [0, "&frac58;"], [0, "&frac78;"], [49, "&larr;"], [0, "&ShortUpArrow;"], [0, "&rarr;"], [0, "&darr;"], [0, "&harr;"], [0, "&updownarrow;"], [0, "&nwarr;"], [0, "&nearr;"], [0, "&LowerRightArrow;"], [0, "&LowerLeftArrow;"], [0, "&nlarr;"], [0, "&nrarr;"], [1, { v: "&rarrw;", n: 824, o: "&nrarrw;" }], [0, "&Larr;"], [0, "&Uarr;"], [0, "&Rarr;"], [0, "&Darr;"], [0, "&larrtl;"], [0, "&rarrtl;"], [0, "&LeftTeeArrow;"], [0, "&mapstoup;"], [0, "&map;"], [0, "&DownTeeArrow;"], [1, "&hookleftarrow;"], [0, "&hookrightarrow;"], [0, "&larrlp;"], [0, "&looparrowright;"], [0, "&harrw;"], [0, "&nharr;"], [1, "&lsh;"], [0, "&rsh;"], [0, "&ldsh;"], [0, "&rdsh;"], [1, "&crarr;"], [0, "&cularr;"], [0, "&curarr;"], [2, "&circlearrowleft;"], [0, "&circlearrowright;"], [0, "&leftharpoonup;"], [0, "&DownLeftVector;"], [0, "&RightUpVector;"], [0, "&LeftUpVector;"], [0, "&rharu;"], [0, "&DownRightVector;"], [0, "&dharr;"], [0, "&dharl;"], [0, "&RightArrowLeftArrow;"], [0, "&udarr;"], [0, "&LeftArrowRightArrow;"], [0, "&leftleftarrows;"], [0, "&upuparrows;"], [0, "&rightrightarrows;"], [0, "&ddarr;"], [0, "&leftrightharpoons;"], [0, "&Equilibrium;"], [0, "&nlArr;"], [0, "&nhArr;"], [0, "&nrArr;"], [0, "&DoubleLeftArrow;"], [0, "&DoubleUpArrow;"], [0, "&DoubleRightArrow;"], [0, "&dArr;"], [0, "&DoubleLeftRightArrow;"], [0, "&DoubleUpDownArrow;"], [0, "&nwArr;"], [0, "&neArr;"], [0, "&seArr;"], [0, "&swArr;"], [0, "&lAarr;"], [0, "&rAarr;"], [1, "&zigrarr;"], [6, "&larrb;"], [0, "&rarrb;"], [15, "&DownArrowUpArrow;"], [7, "&loarr;"], [0, "&roarr;"], [0, "&hoarr;"], [0, "&forall;"], [0, "&comp;"], [0, { v: "&part;", n: 824, o: "&npart;" }], [0, "&exist;"], [0, "&nexist;"], [0, "&empty;"], [1, "&Del;"], [0, "&Element;"], [0, "&NotElement;"], [1, "&ni;"], [0, "&notni;"], [2, "&prod;"], [0, "&coprod;"], [0, "&sum;"], [0, "&minus;"], [0, "&MinusPlus;"], [0, "&dotplus;"], [1, "&Backslash;"], [0, "&lowast;"], [0, "&compfn;"], [1, "&radic;"], [2, "&prop;"], [0, "&infin;"], [0, "&angrt;"], [0, { v: "&ang;", n: 8402, o: "&nang;" }], [0, "&angmsd;"], [0, "&angsph;"], [0, "&mid;"], [0, "&nmid;"], [0, "&DoubleVerticalBar;"], [0, "&NotDoubleVerticalBar;"], [0, "&and;"], [0, "&or;"], [0, { v: "&cap;", n: 65024, o: "&caps;" }], [0, { v: "&cup;", n: 65024, o: "&cups;" }], [0, "&int;"], [0, "&Int;"], [0, "&iiint;"], [0, "&conint;"], [0, "&Conint;"], [0, "&Cconint;"], [0, "&cwint;"], [0, "&ClockwiseContourIntegral;"], [0, "&awconint;"], [0, "&there4;"], [0, "&becaus;"], [0, "&ratio;"], [0, "&Colon;"], [0, "&dotminus;"], [1, "&mDDot;"], [0, "&homtht;"], [0, { v: "&sim;", n: 8402, o: "&nvsim;" }], [0, { v: "&backsim;", n: 817, o: "&race;" }], [0, { v: "&ac;", n: 819, o: "&acE;" }], [0, "&acd;"], [0, "&VerticalTilde;"], [0, "&NotTilde;"], [0, { v: "&eqsim;", n: 824, o: "&nesim;" }], [0, "&sime;"], [0, "&NotTildeEqual;"], [0, "&cong;"], [0, "&simne;"], [0, "&ncong;"], [0, "&ap;"], [0, "&nap;"], [0, "&ape;"], [0, { v: "&apid;", n: 824, o: "&napid;" }], [0, "&backcong;"], [0, { v: "&asympeq;", n: 8402, o: "&nvap;" }], [0, { v: "&bump;", n: 824, o: "&nbump;" }], [0, { v: "&bumpe;", n: 824, o: "&nbumpe;" }], [0, { v: "&doteq;", n: 824, o: "&nedot;" }], [0, "&doteqdot;"], [0, "&efDot;"], [0, "&erDot;"], [0, "&Assign;"], [0, "&ecolon;"], [0, "&ecir;"], [0, "&circeq;"], [1, "&wedgeq;"], [0, "&veeeq;"], [1, "&triangleq;"], [2, "&equest;"], [0, "&ne;"], [0, { v: "&Congruent;", n: 8421, o: "&bnequiv;" }], [0, "&nequiv;"], [1, { v: "&le;", n: 8402, o: "&nvle;" }], [0, { v: "&ge;", n: 8402, o: "&nvge;" }], [0, { v: "&lE;", n: 824, o: "&nlE;" }], [0, { v: "&gE;", n: 824, o: "&ngE;" }], [0, { v: "&lnE;", n: 65024, o: "&lvertneqq;" }], [0, { v: "&gnE;", n: 65024, o: "&gvertneqq;" }], [0, { v: "&ll;", n: new Map(/* #__PURE__ */ restoreDiff([[824, "&nLtv;"], [7577, "&nLt;"]])) }], [0, { v: "&gg;", n: new Map(/* #__PURE__ */ restoreDiff([[824, "&nGtv;"], [7577, "&nGt;"]])) }], [0, "&between;"], [0, "&NotCupCap;"], [0, "&nless;"], [0, "&ngt;"], [0, "&nle;"], [0, "&nge;"], [0, "&lesssim;"], [0, "&GreaterTilde;"], [0, "&nlsim;"], [0, "&ngsim;"], [0, "&LessGreater;"], [0, "&gl;"], [0, "&NotLessGreater;"], [0, "&NotGreaterLess;"], [0, "&pr;"], [0, "&sc;"], [0, "&prcue;"], [0, "&sccue;"], [0, "&PrecedesTilde;"], [0, { v: "&scsim;", n: 824, o: "&NotSucceedsTilde;" }], [0, "&NotPrecedes;"], [0, "&NotSucceeds;"], [0, { v: "&sub;", n: 8402, o: "&NotSubset;" }], [0, { v: "&sup;", n: 8402, o: "&NotSuperset;" }], [0, "&nsub;"], [0, "&nsup;"], [0, "&sube;"], [0, "&supe;"], [0, "&NotSubsetEqual;"], [0, "&NotSupersetEqual;"], [0, { v: "&subne;", n: 65024, o: "&varsubsetneq;" }], [0, { v: "&supne;", n: 65024, o: "&varsupsetneq;" }], [1, "&cupdot;"], [0, "&UnionPlus;"], [0, { v: "&sqsub;", n: 824, o: "&NotSquareSubset;" }], [0, { v: "&sqsup;", n: 824, o: "&NotSquareSuperset;" }], [0, "&sqsube;"], [0, "&sqsupe;"], [0, { v: "&sqcap;", n: 65024, o: "&sqcaps;" }], [0, { v: "&sqcup;", n: 65024, o: "&sqcups;" }], [0, "&CirclePlus;"], [0, "&CircleMinus;"], [0, "&CircleTimes;"], [0, "&osol;"], [0, "&CircleDot;"], [0, "&circledcirc;"], [0, "&circledast;"], [1, "&circleddash;"], [0, "&boxplus;"], [0, "&boxminus;"], [0, "&boxtimes;"], [0, "&dotsquare;"], [0, "&RightTee;"], [0, "&dashv;"], [0, "&DownTee;"], [0, "&bot;"], [1, "&models;"], [0, "&DoubleRightTee;"], [0, "&Vdash;"], [0, "&Vvdash;"], [0, "&VDash;"], [0, "&nvdash;"], [0, "&nvDash;"], [0, "&nVdash;"], [0, "&nVDash;"], [0, "&prurel;"], [1, "&LeftTriangle;"], [0, "&RightTriangle;"], [0, { v: "&LeftTriangleEqual;", n: 8402, o: "&nvltrie;" }], [0, { v: "&RightTriangleEqual;", n: 8402, o: "&nvrtrie;" }], [0, "&origof;"], [0, "&imof;"], [0, "&multimap;"], [0, "&hercon;"], [0, "&intcal;"], [0, "&veebar;"], [1, "&barvee;"], [0, "&angrtvb;"], [0, "&lrtri;"], [0, "&bigwedge;"], [0, "&bigvee;"], [0, "&bigcap;"], [0, "&bigcup;"], [0, "&diam;"], [0, "&sdot;"], [0, "&sstarf;"], [0, "&divideontimes;"], [0, "&bowtie;"], [0, "&ltimes;"], [0, "&rtimes;"], [0, "&leftthreetimes;"], [0, "&rightthreetimes;"], [0, "&backsimeq;"], [0, "&curlyvee;"], [0, "&curlywedge;"], [0, "&Sub;"], [0, "&Sup;"], [0, "&Cap;"], [0, "&Cup;"], [0, "&fork;"], [0, "&epar;"], [0, "&lessdot;"], [0, "&gtdot;"], [0, { v: "&Ll;", n: 824, o: "&nLl;" }], [0, { v: "&Gg;", n: 824, o: "&nGg;" }], [0, { v: "&leg;", n: 65024, o: "&lesg;" }], [0, { v: "&gel;", n: 65024, o: "&gesl;" }], [2, "&cuepr;"], [0, "&cuesc;"], [0, "&NotPrecedesSlantEqual;"], [0, "&NotSucceedsSlantEqual;"], [0, "&NotSquareSubsetEqual;"], [0, "&NotSquareSupersetEqual;"], [2, "&lnsim;"], [0, "&gnsim;"], [0, "&precnsim;"], [0, "&scnsim;"], [0, "&nltri;"], [0, "&NotRightTriangle;"], [0, "&nltrie;"], [0, "&NotRightTriangleEqual;"], [0, "&vellip;"], [0, "&ctdot;"], [0, "&utdot;"], [0, "&dtdot;"], [0, "&disin;"], [0, "&isinsv;"], [0, "&isins;"], [0, { v: "&isindot;", n: 824, o: "&notindot;" }], [0, "&notinvc;"], [0, "&notinvb;"], [1, { v: "&isinE;", n: 824, o: "&notinE;" }], [0, "&nisd;"], [0, "&xnis;"], [0, "&nis;"], [0, "&notnivc;"], [0, "&notnivb;"], [6, "&barwed;"], [0, "&Barwed;"], [1, "&lceil;"], [0, "&rceil;"], [0, "&LeftFloor;"], [0, "&rfloor;"], [0, "&drcrop;"], [0, "&dlcrop;"], [0, "&urcrop;"], [0, "&ulcrop;"], [0, "&bnot;"], [1, "&profline;"], [0, "&profsurf;"], [1, "&telrec;"], [0, "&target;"], [5, "&ulcorn;"], [0, "&urcorn;"], [0, "&dlcorn;"], [0, "&drcorn;"], [2, "&frown;"], [0, "&smile;"], [9, "&cylcty;"], [0, "&profalar;"], [7, "&topbot;"], [6, "&ovbar;"], [1, "&solbar;"], [60, "&angzarr;"], [51, "&lmoustache;"], [0, "&rmoustache;"], [2, "&OverBracket;"], [0, "&bbrk;"], [0, "&bbrktbrk;"], [37, "&OverParenthesis;"], [0, "&UnderParenthesis;"], [0, "&OverBrace;"], [0, "&UnderBrace;"], [2, "&trpezium;"], [4, "&elinters;"], [59, "&blank;"], [164, "&circledS;"], [55, "&boxh;"], [1, "&boxv;"], [9, "&boxdr;"], [3, "&boxdl;"], [3, "&boxur;"], [3, "&boxul;"], [3, "&boxvr;"], [7, "&boxvl;"], [7, "&boxhd;"], [7, "&boxhu;"], [7, "&boxvh;"], [19, "&boxH;"], [0, "&boxV;"], [0, "&boxdR;"], [0, "&boxDr;"], [0, "&boxDR;"], [0, "&boxdL;"], [0, "&boxDl;"], [0, "&boxDL;"], [0, "&boxuR;"], [0, "&boxUr;"], [0, "&boxUR;"], [0, "&boxuL;"], [0, "&boxUl;"], [0, "&boxUL;"], [0, "&boxvR;"], [0, "&boxVr;"], [0, "&boxVR;"], [0, "&boxvL;"], [0, "&boxVl;"], [0, "&boxVL;"], [0, "&boxHd;"], [0, "&boxhD;"], [0, "&boxHD;"], [0, "&boxHu;"], [0, "&boxhU;"], [0, "&boxHU;"], [0, "&boxvH;"], [0, "&boxVh;"], [0, "&boxVH;"], [19, "&uhblk;"], [3, "&lhblk;"], [3, "&block;"], [8, "&blk14;"], [0, "&blk12;"], [0, "&blk34;"], [13, "&square;"], [8, "&blacksquare;"], [0, "&EmptyVerySmallSquare;"], [1, "&rect;"], [0, "&marker;"], [2, "&fltns;"], [1, "&bigtriangleup;"], [0, "&blacktriangle;"], [0, "&triangle;"], [2, "&blacktriangleright;"], [0, "&rtri;"], [3, "&bigtriangledown;"], [0, "&blacktriangledown;"], [0, "&dtri;"], [2, "&blacktriangleleft;"], [0, "&ltri;"], [6, "&loz;"], [0, "&cir;"], [32, "&tridot;"], [2, "&bigcirc;"], [8, "&ultri;"], [0, "&urtri;"], [0, "&lltri;"], [0, "&EmptySmallSquare;"], [0, "&FilledSmallSquare;"], [8, "&bigstar;"], [0, "&star;"], [7, "&phone;"], [49, "&female;"], [1, "&male;"], [29, "&spades;"], [2, "&clubs;"], [1, "&hearts;"], [0, "&diamondsuit;"], [3, "&sung;"], [2, "&flat;"], [0, "&natural;"], [0, "&sharp;"], [163, "&check;"], [3, "&cross;"], [8, "&malt;"], [21, "&sext;"], [33, "&VerticalSeparator;"], [25, "&lbbrk;"], [0, "&rbbrk;"], [84, "&bsolhsub;"], [0, "&suphsol;"], [28, "&LeftDoubleBracket;"], [0, "&RightDoubleBracket;"], [0, "&lang;"], [0, "&rang;"], [0, "&Lang;"], [0, "&Rang;"], [0, "&loang;"], [0, "&roang;"], [7, "&longleftarrow;"], [0, "&longrightarrow;"], [0, "&longleftrightarrow;"], [0, "&DoubleLongLeftArrow;"], [0, "&DoubleLongRightArrow;"], [0, "&DoubleLongLeftRightArrow;"], [1, "&longmapsto;"], [2, "&dzigrarr;"], [258, "&nvlArr;"], [0, "&nvrArr;"], [0, "&nvHarr;"], [0, "&Map;"], [6, "&lbarr;"], [0, "&bkarow;"], [0, "&lBarr;"], [0, "&dbkarow;"], [0, "&drbkarow;"], [0, "&DDotrahd;"], [0, "&UpArrowBar;"], [0, "&DownArrowBar;"], [2, "&Rarrtl;"], [2, "&latail;"], [0, "&ratail;"], [0, "&lAtail;"], [0, "&rAtail;"], [0, "&larrfs;"], [0, "&rarrfs;"], [0, "&larrbfs;"], [0, "&rarrbfs;"], [2, "&nwarhk;"], [0, "&nearhk;"], [0, "&hksearow;"], [0, "&hkswarow;"], [0, "&nwnear;"], [0, "&nesear;"], [0, "&seswar;"], [0, "&swnwar;"], [8, { v: "&rarrc;", n: 824, o: "&nrarrc;" }], [1, "&cudarrr;"], [0, "&ldca;"], [0, "&rdca;"], [0, "&cudarrl;"], [0, "&larrpl;"], [2, "&curarrm;"], [0, "&cularrp;"], [7, "&rarrpl;"], [2, "&harrcir;"], [0, "&Uarrocir;"], [0, "&lurdshar;"], [0, "&ldrushar;"], [2, "&LeftRightVector;"], [0, "&RightUpDownVector;"], [0, "&DownLeftRightVector;"], [0, "&LeftUpDownVector;"], [0, "&LeftVectorBar;"], [0, "&RightVectorBar;"], [0, "&RightUpVectorBar;"], [0, "&RightDownVectorBar;"], [0, "&DownLeftVectorBar;"], [0, "&DownRightVectorBar;"], [0, "&LeftUpVectorBar;"], [0, "&LeftDownVectorBar;"], [0, "&LeftTeeVector;"], [0, "&RightTeeVector;"], [0, "&RightUpTeeVector;"], [0, "&RightDownTeeVector;"], [0, "&DownLeftTeeVector;"], [0, "&DownRightTeeVector;"], [0, "&LeftUpTeeVector;"], [0, "&LeftDownTeeVector;"], [0, "&lHar;"], [0, "&uHar;"], [0, "&rHar;"], [0, "&dHar;"], [0, "&luruhar;"], [0, "&ldrdhar;"], [0, "&ruluhar;"], [0, "&rdldhar;"], [0, "&lharul;"], [0, "&llhard;"], [0, "&rharul;"], [0, "&lrhard;"], [0, "&udhar;"], [0, "&duhar;"], [0, "&RoundImplies;"], [0, "&erarr;"], [0, "&simrarr;"], [0, "&larrsim;"], [0, "&rarrsim;"], [0, "&rarrap;"], [0, "&ltlarr;"], [1, "&gtrarr;"], [0, "&subrarr;"], [1, "&suplarr;"], [0, "&lfisht;"], [0, "&rfisht;"], [0, "&ufisht;"], [0, "&dfisht;"], [5, "&lopar;"], [0, "&ropar;"], [4, "&lbrke;"], [0, "&rbrke;"], [0, "&lbrkslu;"], [0, "&rbrksld;"], [0, "&lbrksld;"], [0, "&rbrkslu;"], [0, "&langd;"], [0, "&rangd;"], [0, "&lparlt;"], [0, "&rpargt;"], [0, "&gtlPar;"], [0, "&ltrPar;"], [3, "&vzigzag;"], [1, "&vangrt;"], [0, "&angrtvbd;"], [6, "&ange;"], [0, "&range;"], [0, "&dwangle;"], [0, "&uwangle;"], [0, "&angmsdaa;"], [0, "&angmsdab;"], [0, "&angmsdac;"], [0, "&angmsdad;"], [0, "&angmsdae;"], [0, "&angmsdaf;"], [0, "&angmsdag;"], [0, "&angmsdah;"], [0, "&bemptyv;"], [0, "&demptyv;"], [0, "&cemptyv;"], [0, "&raemptyv;"], [0, "&laemptyv;"], [0, "&ohbar;"], [0, "&omid;"], [0, "&opar;"], [1, "&operp;"], [1, "&olcross;"], [0, "&odsold;"], [1, "&olcir;"], [0, "&ofcir;"], [0, "&olt;"], [0, "&ogt;"], [0, "&cirscir;"], [0, "&cirE;"], [0, "&solb;"], [0, "&bsolb;"], [3, "&boxbox;"], [3, "&trisb;"], [0, "&rtriltri;"], [0, { v: "&LeftTriangleBar;", n: 824, o: "&NotLeftTriangleBar;" }], [0, { v: "&RightTriangleBar;", n: 824, o: "&NotRightTriangleBar;" }], [11, "&iinfin;"], [0, "&infintie;"], [0, "&nvinfin;"], [4, "&eparsl;"], [0, "&smeparsl;"], [0, "&eqvparsl;"], [5, "&blacklozenge;"], [8, "&RuleDelayed;"], [1, "&dsol;"], [9, "&bigodot;"], [0, "&bigoplus;"], [0, "&bigotimes;"], [1, "&biguplus;"], [1, "&bigsqcup;"], [5, "&iiiint;"], [0, "&fpartint;"], [2, "&cirfnint;"], [0, "&awint;"], [0, "&rppolint;"], [0, "&scpolint;"], [0, "&npolint;"], [0, "&pointint;"], [0, "&quatint;"], [0, "&intlarhk;"], [10, "&pluscir;"], [0, "&plusacir;"], [0, "&simplus;"], [0, "&plusdu;"], [0, "&plussim;"], [0, "&plustwo;"], [1, "&mcomma;"], [0, "&minusdu;"], [2, "&loplus;"], [0, "&roplus;"], [0, "&Cross;"], [0, "&timesd;"], [0, "&timesbar;"], [1, "&smashp;"], [0, "&lotimes;"], [0, "&rotimes;"], [0, "&otimesas;"], [0, "&Otimes;"], [0, "&odiv;"], [0, "&triplus;"], [0, "&triminus;"], [0, "&tritime;"], [0, "&intprod;"], [2, "&amalg;"], [0, "&capdot;"], [1, "&ncup;"], [0, "&ncap;"], [0, "&capand;"], [0, "&cupor;"], [0, "&cupcap;"], [0, "&capcup;"], [0, "&cupbrcap;"], [0, "&capbrcup;"], [0, "&cupcup;"], [0, "&capcap;"], [0, "&ccups;"], [0, "&ccaps;"], [2, "&ccupssm;"], [2, "&And;"], [0, "&Or;"], [0, "&andand;"], [0, "&oror;"], [0, "&orslope;"], [0, "&andslope;"], [1, "&andv;"], [0, "&orv;"], [0, "&andd;"], [0, "&ord;"], [1, "&wedbar;"], [6, "&sdote;"], [3, "&simdot;"], [2, { v: "&congdot;", n: 824, o: "&ncongdot;" }], [0, "&easter;"], [0, "&apacir;"], [0, { v: "&apE;", n: 824, o: "&napE;" }], [0, "&eplus;"], [0, "&pluse;"], [0, "&Esim;"], [0, "&Colone;"], [0, "&Equal;"], [1, "&ddotseq;"], [0, "&equivDD;"], [0, "&ltcir;"], [0, "&gtcir;"], [0, "&ltquest;"], [0, "&gtquest;"], [0, { v: "&leqslant;", n: 824, o: "&nleqslant;" }], [0, { v: "&geqslant;", n: 824, o: "&ngeqslant;" }], [0, "&lesdot;"], [0, "&gesdot;"], [0, "&lesdoto;"], [0, "&gesdoto;"], [0, "&lesdotor;"], [0, "&gesdotol;"], [0, "&lap;"], [0, "&gap;"], [0, "&lne;"], [0, "&gne;"], [0, "&lnap;"], [0, "&gnap;"], [0, "&lEg;"], [0, "&gEl;"], [0, "&lsime;"], [0, "&gsime;"], [0, "&lsimg;"], [0, "&gsiml;"], [0, "&lgE;"], [0, "&glE;"], [0, "&lesges;"], [0, "&gesles;"], [0, "&els;"], [0, "&egs;"], [0, "&elsdot;"], [0, "&egsdot;"], [0, "&el;"], [0, "&eg;"], [2, "&siml;"], [0, "&simg;"], [0, "&simlE;"], [0, "&simgE;"], [0, { v: "&LessLess;", n: 824, o: "&NotNestedLessLess;" }], [0, { v: "&GreaterGreater;", n: 824, o: "&NotNestedGreaterGreater;" }], [1, "&glj;"], [0, "&gla;"], [0, "&ltcc;"], [0, "&gtcc;"], [0, "&lescc;"], [0, "&gescc;"], [0, "&smt;"], [0, "&lat;"], [0, { v: "&smte;", n: 65024, o: "&smtes;" }], [0, { v: "&late;", n: 65024, o: "&lates;" }], [0, "&bumpE;"], [0, { v: "&PrecedesEqual;", n: 824, o: "&NotPrecedesEqual;" }], [0, { v: "&sce;", n: 824, o: "&NotSucceedsEqual;" }], [2, "&prE;"], [0, "&scE;"], [0, "&precneqq;"], [0, "&scnE;"], [0, "&prap;"], [0, "&scap;"], [0, "&precnapprox;"], [0, "&scnap;"], [0, "&Pr;"], [0, "&Sc;"], [0, "&subdot;"], [0, "&supdot;"], [0, "&subplus;"], [0, "&supplus;"], [0, "&submult;"], [0, "&supmult;"], [0, "&subedot;"], [0, "&supedot;"], [0, { v: "&subE;", n: 824, o: "&nsubE;" }], [0, { v: "&supE;", n: 824, o: "&nsupE;" }], [0, "&subsim;"], [0, "&supsim;"], [2, { v: "&subnE;", n: 65024, o: "&varsubsetneqq;" }], [0, { v: "&supnE;", n: 65024, o: "&varsupsetneqq;" }], [2, "&csub;"], [0, "&csup;"], [0, "&csube;"], [0, "&csupe;"], [0, "&subsup;"], [0, "&supsub;"], [0, "&subsub;"], [0, "&supsup;"], [0, "&suphsub;"], [0, "&supdsub;"], [0, "&forkv;"], [0, "&topfork;"], [0, "&mlcp;"], [8, "&Dashv;"], [1, "&Vdashl;"], [0, "&Barv;"], [0, "&vBar;"], [0, "&vBarv;"], [1, "&Vbar;"], [0, "&Not;"], [0, "&bNot;"], [0, "&rnmid;"], [0, "&cirmid;"], [0, "&midcir;"], [0, "&topcir;"], [0, "&nhpar;"], [0, "&parsim;"], [9, { v: "&parsl;", n: 8421, o: "&nparsl;" }], [44343, { n: new Map(/* #__PURE__ */ restoreDiff([[56476, "&Ascr;"], [1, "&Cscr;"], [0, "&Dscr;"], [2, "&Gscr;"], [2, "&Jscr;"], [0, "&Kscr;"], [2, "&Nscr;"], [0, "&Oscr;"], [0, "&Pscr;"], [0, "&Qscr;"], [1, "&Sscr;"], [0, "&Tscr;"], [0, "&Uscr;"], [0, "&Vscr;"], [0, "&Wscr;"], [0, "&Xscr;"], [0, "&Yscr;"], [0, "&Zscr;"], [0, "&ascr;"], [0, "&bscr;"], [0, "&cscr;"], [0, "&dscr;"], [1, "&fscr;"], [1, "&hscr;"], [0, "&iscr;"], [0, "&jscr;"], [0, "&kscr;"], [0, "&lscr;"], [0, "&mscr;"], [0, "&nscr;"], [1, "&pscr;"], [0, "&qscr;"], [0, "&rscr;"], [0, "&sscr;"], [0, "&tscr;"], [0, "&uscr;"], [0, "&vscr;"], [0, "&wscr;"], [0, "&xscr;"], [0, "&yscr;"], [0, "&zscr;"], [52, "&Afr;"], [0, "&Bfr;"], [1, "&Dfr;"], [0, "&Efr;"], [0, "&Ffr;"], [0, "&Gfr;"], [2, "&Jfr;"], [0, "&Kfr;"], [0, "&Lfr;"], [0, "&Mfr;"], [0, "&Nfr;"], [0, "&Ofr;"], [0, "&Pfr;"], [0, "&Qfr;"], [1, "&Sfr;"], [0, "&Tfr;"], [0, "&Ufr;"], [0, "&Vfr;"], [0, "&Wfr;"], [0, "&Xfr;"], [0, "&Yfr;"], [1, "&afr;"], [0, "&bfr;"], [0, "&cfr;"], [0, "&dfr;"], [0, "&efr;"], [0, "&ffr;"], [0, "&gfr;"], [0, "&hfr;"], [0, "&ifr;"], [0, "&jfr;"], [0, "&kfr;"], [0, "&lfr;"], [0, "&mfr;"], [0, "&nfr;"], [0, "&ofr;"], [0, "&pfr;"], [0, "&qfr;"], [0, "&rfr;"], [0, "&sfr;"], [0, "&tfr;"], [0, "&ufr;"], [0, "&vfr;"], [0, "&wfr;"], [0, "&xfr;"], [0, "&yfr;"], [0, "&zfr;"], [0, "&Aopf;"], [0, "&Bopf;"], [1, "&Dopf;"], [0, "&Eopf;"], [0, "&Fopf;"], [0, "&Gopf;"], [1, "&Iopf;"], [0, "&Jopf;"], [0, "&Kopf;"], [0, "&Lopf;"], [0, "&Mopf;"], [1, "&Oopf;"], [3, "&Sopf;"], [0, "&Topf;"], [0, "&Uopf;"], [0, "&Vopf;"], [0, "&Wopf;"], [0, "&Xopf;"], [0, "&Yopf;"], [1, "&aopf;"], [0, "&bopf;"], [0, "&copf;"], [0, "&dopf;"], [0, "&eopf;"], [0, "&fopf;"], [0, "&gopf;"], [0, "&hopf;"], [0, "&iopf;"], [0, "&jopf;"], [0, "&kopf;"], [0, "&lopf;"], [0, "&mopf;"], [0, "&nopf;"], [0, "&oopf;"], [0, "&popf;"], [0, "&qopf;"], [0, "&ropf;"], [0, "&sopf;"], [0, "&topf;"], [0, "&uopf;"], [0, "&vopf;"], [0, "&wopf;"], [0, "&xopf;"], [0, "&yopf;"], [0, "&zopf;"]])) }], [8906, "&fflig;"], [0, "&filig;"], [0, "&fllig;"], [0, "&ffilig;"], [0, "&ffllig;"]])));
115037
115578
  //# sourceMappingURL=encode-html.js.map
115579
+ ;// ./node_modules/entities/lib/esm/escape.js
115580
+ const esm_escape_xmlReplacer = /["&'<>$\x80-\uFFFF]/g;
115581
+ const escape_xmlCodeMap = new Map([
115582
+ [34, "&quot;"],
115583
+ [38, "&amp;"],
115584
+ [39, "&apos;"],
115585
+ [60, "&lt;"],
115586
+ [62, "&gt;"],
115587
+ ]);
115588
+ // For compatibility with node < 4, we wrap `codePointAt`
115589
+ const esm_escape_getCodePoint =
115590
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
115591
+ String.prototype.codePointAt != null
115592
+ ? (str, index) => str.codePointAt(index)
115593
+ : // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
115594
+ (c, index) => (c.charCodeAt(index) & 0xfc00) === 0xd800
115595
+ ? (c.charCodeAt(index) - 0xd800) * 0x400 +
115596
+ c.charCodeAt(index + 1) -
115597
+ 0xdc00 +
115598
+ 0x10000
115599
+ : c.charCodeAt(index);
115600
+ /**
115601
+ * Encodes all non-ASCII characters, as well as characters not valid in XML
115602
+ * documents using XML entities.
115603
+ *
115604
+ * If a character has no equivalent entity, a
115605
+ * numeric hexadecimal reference (eg. `&#xfc;`) will be used.
115606
+ */
115607
+ function esm_escape_encodeXML(str) {
115608
+ let ret = "";
115609
+ let lastIdx = 0;
115610
+ let match;
115611
+ while ((match = esm_escape_xmlReplacer.exec(str)) !== null) {
115612
+ const i = match.index;
115613
+ const char = str.charCodeAt(i);
115614
+ const next = escape_xmlCodeMap.get(char);
115615
+ if (next !== undefined) {
115616
+ ret += str.substring(lastIdx, i) + next;
115617
+ lastIdx = i + 1;
115618
+ }
115619
+ else {
115620
+ ret += `${str.substring(lastIdx, i)}&#x${esm_escape_getCodePoint(str, i).toString(16)};`;
115621
+ // Increase by 1 if we have a surrogate pair
115622
+ lastIdx = esm_escape_xmlReplacer.lastIndex += Number((char & 0xfc00) === 0xd800);
115623
+ }
115624
+ }
115625
+ return ret + str.substr(lastIdx);
115626
+ }
115627
+ /**
115628
+ * Encodes all non-ASCII characters, as well as characters not valid in XML
115629
+ * documents using numeric hexadecimal reference (eg. `&#xfc;`).
115630
+ *
115631
+ * Have a look at `escapeUTF8` if you want a more concise output at the expense
115632
+ * of reduced transportability.
115633
+ *
115634
+ * @param data String to escape.
115635
+ */
115636
+ const esm_escape_escape = (/* unused pure expression or super */ null && (esm_escape_encodeXML));
115637
+ /**
115638
+ * Creates a function that escapes all characters matched by the given regular
115639
+ * expression using the given map of characters to escape to their entities.
115640
+ *
115641
+ * @param regex Regular expression to match characters to escape.
115642
+ * @param map Map of characters to escape to their entities.
115643
+ *
115644
+ * @returns Function that escapes all characters matched by the given regular
115645
+ * expression using the given map of characters to escape to their entities.
115646
+ */
115647
+ function escape_getEscaper(regex, map) {
115648
+ return function escape(data) {
115649
+ let match;
115650
+ let lastIdx = 0;
115651
+ let result = "";
115652
+ while ((match = regex.exec(data))) {
115653
+ if (lastIdx !== match.index) {
115654
+ result += data.substring(lastIdx, match.index);
115655
+ }
115656
+ // We know that this character will be in the map.
115657
+ result += map.get(match[0].charCodeAt(0));
115658
+ // Every match will be of length 1
115659
+ lastIdx = match.index + 1;
115660
+ }
115661
+ return result + data.substring(lastIdx);
115662
+ };
115663
+ }
115664
+ /**
115665
+ * Encodes all characters not valid in XML documents using XML entities.
115666
+ *
115667
+ * Note that the output will be character-set dependent.
115668
+ *
115669
+ * @param data String to escape.
115670
+ */
115671
+ const esm_escape_escapeUTF8 = escape_getEscaper(/[&<>'"]/g, escape_xmlCodeMap);
115672
+ /**
115673
+ * Encodes all characters that have to be escaped in HTML attributes,
115674
+ * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.
115675
+ *
115676
+ * @param data String to escape.
115677
+ */
115678
+ const esm_escape_escapeAttribute = escape_getEscaper(/["&\u00A0]/g, new Map([
115679
+ [34, "&quot;"],
115680
+ [38, "&amp;"],
115681
+ [160, "&nbsp;"],
115682
+ ]));
115683
+ /**
115684
+ * Encodes all characters that have to be escaped in HTML text,
115685
+ * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.
115686
+ *
115687
+ * @param data String to escape.
115688
+ */
115689
+ const esm_escape_escapeText = escape_getEscaper(/[&<>\u00A0]/g, new Map([
115690
+ [38, "&amp;"],
115691
+ [60, "&lt;"],
115692
+ [62, "&gt;"],
115693
+ [160, "&nbsp;"],
115694
+ ]));
115695
+ //# sourceMappingURL=escape.js.map
115038
115696
  ;// ./node_modules/entities/lib/esm/encode.js
115039
115697
 
115040
115698
 
@@ -115212,7 +115870,7 @@ const looseHtmlEntityConstruct = {
115212
115870
  };
115213
115871
  function resolveEntity(name) {
115214
115872
  const input = `&${name};`;
115215
- const decoded = decodeHTMLStrict(input);
115873
+ const decoded = decode_decodeHTMLStrict(input);
115216
115874
  return decoded !== input ? decoded : undefined;
115217
115875
  }
115218
115876
  function tokenizeLooseHtmlEntity(effects, ok, nok) {
@@ -116785,7 +117443,7 @@ const transformCallout = (jsx) => {
116785
117443
  };
116786
117444
  const transformEmbed = (jsx) => {
116787
117445
  const attrs = getAttrs(jsx);
116788
- const { favicon, height, html, iframe, image, providerName, providerUrl, title = '', typeOfEmbed, url = '', width, } = attrs;
117446
+ const { favicon, height, href, html, iframe, image, providerName, providerUrl, provider, title = '', typeOfEmbed, url = '', width, } = attrs;
116789
117447
  return {
116790
117448
  type: NodeTypes.embedBlock,
116791
117449
  title,
@@ -116797,11 +117455,13 @@ const transformEmbed = (jsx) => {
116797
117455
  url,
116798
117456
  ...(favicon && { favicon }),
116799
117457
  ...(height && { height }),
117458
+ ...(href && { href }),
116800
117459
  ...(html && { html }),
116801
117460
  ...(iframe !== undefined && { iframe }),
116802
117461
  ...(image && { image }),
116803
117462
  ...(providerName && { providerName }),
116804
117463
  ...(providerUrl && { providerUrl }),
117464
+ ...(provider && { provider }),
116805
117465
  ...(typeOfEmbed && { typeOfEmbed }),
116806
117466
  ...(width && { width }),
116807
117467
  },
@@ -116865,7 +117525,7 @@ const transformMagicBlockImage = (node) => {
116865
117525
  const transformMagicBlockEmbed = (node) => {
116866
117526
  const { data, position } = node;
116867
117527
  const hProps = data?.hProperties || {};
116868
- const { favicon, html, image, providerName, providerUrl, title = '', url = '' } = hProps;
117528
+ const { favicon, height, href, html, iframe, image, provider, providerName, providerUrl, title = '', typeOfEmbed, url = '', width, } = hProps;
116869
117529
  return {
116870
117530
  type: NodeTypes.embedBlock,
116871
117531
  title,
@@ -116876,20 +117536,81 @@ const transformMagicBlockEmbed = (node) => {
116876
117536
  title,
116877
117537
  url,
116878
117538
  ...(favicon && { favicon }),
117539
+ ...(height && { height }),
117540
+ ...(href && { href }),
116879
117541
  ...(html && { html }),
117542
+ ...(iframe !== undefined && { iframe }),
116880
117543
  ...(image && { image }),
117544
+ ...(typeOfEmbed && { typeOfEmbed }),
116881
117545
  ...(providerName && { providerName }),
116882
117546
  ...(providerUrl && { providerUrl }),
117547
+ ...(provider && { provider }),
117548
+ ...(width && { width }),
116883
117549
  },
116884
117550
  },
116885
117551
  position,
116886
117552
  };
116887
117553
  };
117554
+ const mdxish_jsx_to_mdast_isTableCell = (node) => isMDXElement(node) && ['th', 'td'].includes(node.name);
117555
+ /**
117556
+ * Converts a JSX <Table> element to an MDAST table node with alignment.
117557
+ * Returns null for header-less tables since MDAST always promotes the first row to <thead>.
117558
+ */
117559
+ const transformTable = (jsx) => {
117560
+ let hasThead = false;
117561
+ visit(jsx, isMDXElement, (child) => {
117562
+ if (child.name === 'thead')
117563
+ hasThead = true;
117564
+ });
117565
+ if (!hasThead)
117566
+ return null;
117567
+ const { align: alignAttr } = getAttrs(jsx);
117568
+ const align = Array.isArray(alignAttr) ? alignAttr : null;
117569
+ const rows = [];
117570
+ visit(jsx, isMDXElement, (child) => {
117571
+ if (child.name !== 'thead' && child.name !== 'tbody')
117572
+ return;
117573
+ visit(child, isMDXElement, (row) => {
117574
+ if (row.name !== 'tr')
117575
+ return;
117576
+ const cells = [];
117577
+ visit(row, mdxish_jsx_to_mdast_isTableCell, (cell) => {
117578
+ const parsedChildren = cell.children.flatMap(parsedNode => {
117579
+ if (parsedNode.type === 'paragraph' && 'children' in parsedNode && parsedNode.children) {
117580
+ return parsedNode.children;
117581
+ }
117582
+ return [parsedNode];
117583
+ });
117584
+ cells.push({
117585
+ type: 'tableCell',
117586
+ children: parsedChildren,
117587
+ position: cell.position,
117588
+ });
117589
+ });
117590
+ rows.push({
117591
+ type: 'tableRow',
117592
+ children: cells,
117593
+ position: row.position,
117594
+ });
117595
+ });
117596
+ });
117597
+ const columnCount = rows[0]?.children?.length || 0;
117598
+ const alignArray = align && columnCount > 0
117599
+ ? align.slice(0, columnCount).concat(Array.from({ length: Math.max(0, columnCount - align.length) }, () => null))
117600
+ : Array.from({ length: columnCount }, () => null);
117601
+ return {
117602
+ type: 'table',
117603
+ align: alignArray,
117604
+ position: jsx.position,
117605
+ children: rows,
117606
+ };
117607
+ };
116888
117608
  const COMPONENT_MAP = {
116889
117609
  Callout: transformCallout,
116890
117610
  Embed: transformEmbed,
116891
117611
  Image: transformImage,
116892
117612
  Recipe: transformRecipe,
117613
+ Table: transformTable,
116893
117614
  };
116894
117615
  /**
116895
117616
  * Transform mdxJsxFlowElement nodes and magic block nodes into proper MDAST node types.
@@ -116912,6 +117633,8 @@ const mdxishJsxToMdast = () => tree => {
116912
117633
  if (!transformer)
116913
117634
  return;
116914
117635
  const newNode = transformer(node);
117636
+ if (!newNode)
117637
+ return;
116915
117638
  // Replace the JSX node with the MDAST node
116916
117639
  parent.children[index] = newNode;
116917
117640
  });
@@ -117048,6 +117771,74 @@ const mdxishMermaidTransformer = () => (tree) => {
117048
117771
  };
117049
117772
  /* harmony default export */ const mdxish_mermaid = (mdxishMermaidTransformer);
117050
117773
 
117774
+ ;// ./processor/transform/mdxish/mdxish-self-closing-blocks.ts
117775
+
117776
+
117777
+ /**
117778
+ * Tags to process as self-closing blocks.
117779
+ * These components use simple string attributes (no JSX expressions like `data={[...]}`).
117780
+ * Components with JSX expression attributes should NOT be added here as parseAttributes
117781
+ * cannot handle them correctly.
117782
+ */
117783
+ const SELF_CLOSING_BLOCK_TAGS = new Set(['Embed', 'Recipe']);
117784
+ // Regex to match self-closing PascalCase tags (handles multi-line)
117785
+ const selfClosingTagPattern = /^<([A-Z][A-Za-z0-9_]*)([\s\S]*?)\/>$/;
117786
+ /**
117787
+ * Try to convert a paragraph node containing a self-closing JSX component into an mdxJsxFlowElement.
117788
+ * Returns the new node if conversion succeeded, or null if the node doesn't match.
117789
+ */
117790
+ const tryConvertToMdxNode = (node) => {
117791
+ if (node.children.length !== 1)
117792
+ return null;
117793
+ const child = node.children[0];
117794
+ if (child.type !== 'html')
117795
+ return null;
117796
+ const value = child.value?.trim();
117797
+ if (!value)
117798
+ return null;
117799
+ const match = value.match(selfClosingTagPattern);
117800
+ if (!match)
117801
+ return null;
117802
+ const [, tag, attrString] = match;
117803
+ if (!SELF_CLOSING_BLOCK_TAGS.has(tag))
117804
+ return null;
117805
+ return {
117806
+ type: 'mdxJsxFlowElement',
117807
+ name: tag,
117808
+ attributes: parseAttributes(attrString),
117809
+ children: [],
117810
+ position: node.position,
117811
+ };
117812
+ };
117813
+ /**
117814
+ * Transform paragraph-wrapped self-closing JSX components into mdxJsxFlowElement nodes.
117815
+ *
117816
+ * CommonMark wraps multi-line JSX in paragraphs when the opening tag isn't complete
117817
+ * on one line. This plugin detects these structures and unwraps them for components
117818
+ * in the SELF_CLOSING_BLOCK_TAGS allowlist.
117819
+ *
117820
+ * Input structure:
117821
+ * ```
117822
+ * paragraph > html: "<Embed\n typeOfEmbed=\"youtube\"\n/>"
117823
+ * ```
117824
+ *
117825
+ * Output structure:
117826
+ * ```
117827
+ * mdxJsxFlowElement: { name: "Embed", attributes: [...], children: [] }
117828
+ * ```
117829
+ */
117830
+ const mdxishSelfClosingBlocks = () => tree => {
117831
+ visit(tree, 'paragraph', (node, index, parent) => {
117832
+ if (index === undefined || !parent)
117833
+ return;
117834
+ const mdxNode = tryConvertToMdxNode(node);
117835
+ if (mdxNode) {
117836
+ parent.children.splice(index, 1, mdxNode);
117837
+ }
117838
+ });
117839
+ };
117840
+ /* harmony default export */ const mdxish_self_closing_blocks = (mdxishSelfClosingBlocks);
117841
+
117051
117842
  ;// ./processor/transform/mdxish/mdxish-snake-case-components.ts
117052
117843
 
117053
117844
 
@@ -117124,6 +117915,126 @@ function restoreSnakeCase(placeholderName, mapping) {
117124
117915
  return matchingKey ? mapping[matchingKey] : placeholderName;
117125
117916
  }
117126
117917
 
117918
+ ;// ./processor/transform/mdxish/mdxish-tables-to-jsx.ts
117919
+
117920
+
117921
+ const mdxish_tables_to_jsx_alignToStyle = (align) => {
117922
+ if (!align || align === 'left')
117923
+ return null;
117924
+ return {
117925
+ type: 'mdxJsxAttribute',
117926
+ name: 'style',
117927
+ value: {
117928
+ type: 'mdxJsxAttributeValueExpression',
117929
+ value: `{ textAlign: "${align}" }`,
117930
+ },
117931
+ };
117932
+ };
117933
+ const mdxish_tables_to_jsx_isTableCell = (node) => ['tableHead', 'tableCell'].includes(node.type);
117934
+ const mdxish_tables_to_jsx_isLiteral = (node) => 'value' in node;
117935
+ /**
117936
+ * Mdxish-specific version of `tablesToJsx`. Differs from the shared MDX version:
117937
+ *
117938
+ * - Excludes `html` nodes from triggering JSX conversion because raw HTML
117939
+ * inside JSX `<Table>` breaks remarkMdx parsing on the deserialization roundtrip.
117940
+ * - Skips empty cells instead of aborting the entire visit so that flow content
117941
+ * in later cells is still detected.
117942
+ */
117943
+ const mdxishTablesToJsx = () => tree => {
117944
+ visit(tree, (node) => ['table', 'tableau'].includes(node.type), (table, index, parent) => {
117945
+ let hasFlowContent = false;
117946
+ visit(table, mdxish_tables_to_jsx_isTableCell, (cell) => {
117947
+ if (cell.children.length === 0)
117948
+ return;
117949
+ const content = cell.children.length === 1 && cell.children[0].type === 'paragraph'
117950
+ ? cell.children[0].children[0]
117951
+ : cell.children[0];
117952
+ if (!content)
117953
+ return;
117954
+ visit(cell, 'break', (_, breakIndex, breakParent) => {
117955
+ breakParent.children.splice(breakIndex, 1, { type: 'text', value: '\n' });
117956
+ });
117957
+ if (!(phrasing(content) || content.type === 'plain') && content.type !== 'escape') {
117958
+ if (content.type === 'html')
117959
+ return;
117960
+ hasFlowContent = true;
117961
+ return EXIT;
117962
+ }
117963
+ visit(cell, mdxish_tables_to_jsx_isLiteral, (node) => {
117964
+ if (node.value.match(/\n/)) {
117965
+ hasFlowContent = true;
117966
+ return EXIT;
117967
+ }
117968
+ });
117969
+ });
117970
+ if (!hasFlowContent) {
117971
+ table.type = 'table';
117972
+ return;
117973
+ }
117974
+ const styles = table.align.map(mdxish_tables_to_jsx_alignToStyle);
117975
+ const head = {
117976
+ attributes: [],
117977
+ type: 'mdxJsxFlowElement',
117978
+ name: 'thead',
117979
+ children: [
117980
+ {
117981
+ attributes: [],
117982
+ type: 'mdxJsxFlowElement',
117983
+ name: 'tr',
117984
+ children: table.children[0].children.map((cell, cellIndex) => {
117985
+ return {
117986
+ attributes: [],
117987
+ type: 'mdxJsxFlowElement',
117988
+ name: 'th',
117989
+ children: cell.children,
117990
+ ...(styles[cellIndex] && { attributes: [styles[cellIndex]] }),
117991
+ };
117992
+ }),
117993
+ },
117994
+ ],
117995
+ };
117996
+ const body = {
117997
+ attributes: [],
117998
+ type: 'mdxJsxFlowElement',
117999
+ name: 'tbody',
118000
+ children: table.children.splice(1).map(row => {
118001
+ return {
118002
+ attributes: [],
118003
+ type: 'mdxJsxFlowElement',
118004
+ name: 'tr',
118005
+ children: row.children.map((cell, cellIndex) => {
118006
+ return {
118007
+ type: 'mdxJsxFlowElement',
118008
+ name: 'td',
118009
+ children: cell.children,
118010
+ ...(styles[cellIndex] && { attributes: [styles[cellIndex]] }),
118011
+ };
118012
+ }),
118013
+ };
118014
+ }),
118015
+ };
118016
+ const attributes = [
118017
+ {
118018
+ type: 'mdxJsxAttribute',
118019
+ name: 'align',
118020
+ value: {
118021
+ type: 'mdxJsxAttributeValueExpression',
118022
+ value: JSON.stringify(table.align),
118023
+ },
118024
+ },
118025
+ ];
118026
+ const jsx = {
118027
+ type: 'mdxJsxFlowElement',
118028
+ name: 'Table',
118029
+ attributes: table.align.find(a => a) ? attributes : [],
118030
+ children: [head, body],
118031
+ };
118032
+ parent.children[index] = jsx;
118033
+ });
118034
+ return tree;
118035
+ };
118036
+ /* harmony default export */ const mdxish_tables_to_jsx = (mdxishTablesToJsx);
118037
+
117127
118038
  ;// ./processor/transform/mdxish/normalize-table-separator.ts
117128
118039
  /**
117129
118040
  * Preprocessor to normalize malformed GFM table separator syntax.
@@ -119290,6 +120201,9 @@ function loadComponents() {
119290
120201
 
119291
120202
 
119292
120203
 
120204
+
120205
+
120206
+
119293
120207
 
119294
120208
 
119295
120209
 
@@ -119367,6 +120281,7 @@ function mdxishAstProcessor(mdContent, opts = {}) {
119367
120281
  .use(magic_block_transformer)
119368
120282
  .use(transform_images, { isMdxish: true })
119369
120283
  .use(defaultTransformers)
120284
+ .use(mdxish_self_closing_blocks)
119370
120285
  .use(mdxish_component_blocks)
119371
120286
  .use(restore_snake_case_component_name, { mapping: snakeCaseMapping })
119372
120287
  .use(mdxish_tables)
@@ -119387,18 +120302,28 @@ function mdxishAstProcessor(mdContent, opts = {}) {
119387
120302
  };
119388
120303
  }
119389
120304
  /**
119390
- * Converts an Mdast to a Markdown string.
120305
+ * Registers the mdx-jsx serialization extension so remark-stringify
120306
+ * can convert JSX nodes (e.g. `<Table>`) to markdown.
120307
+ */
120308
+ function mdxJsxStringify() {
120309
+ const data = this.data();
120310
+ const extensions = data.toMarkdownExtensions || (data.toMarkdownExtensions = []);
120311
+ extensions.push({ extensions: [mdxJsxToMarkdown()] });
120312
+ }
120313
+ /**
120314
+ * Serializes an Mdast back into a markdown string.
119391
120315
  */
119392
120316
  function mdxishMdastToMd(mdast) {
119393
- const md = unified()
120317
+ const processor = unified()
119394
120318
  .use(remarkGfm)
120319
+ .use(mdxish_tables_to_jsx)
119395
120320
  .use(mdxishCompilers)
120321
+ .use(mdxJsxStringify)
119396
120322
  .use(remarkStringify, {
119397
120323
  bullet: '-',
119398
120324
  emphasis: '_',
119399
- })
119400
- .stringify(mdast);
119401
- return md;
120325
+ });
120326
+ return processor.stringify(processor.runSync(mdast));
119402
120327
  }
119403
120328
  /**
119404
120329
  * Processes markdown content with MDX syntax support and returns a HAST.
@@ -120072,6 +120997,7 @@ const utils = {
120072
120997
 
120073
120998
 
120074
120999
 
121000
+
120075
121001
  })();
120076
121002
 
120077
121003
  module.exports = __webpack_exports__;