@rohal12/twee-ts 1.13.1 → 1.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1253,8 +1253,7 @@ function parseTwee(source, options = {}) {
1253
1253
  return { passages, diagnostics };
1254
1254
  }
1255
1255
 
1256
- // node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/decode-codepoint.js
1257
- var _a;
1256
+ // node_modules/.pnpm/entities@8.0.0/node_modules/entities/dist/decode-codepoint.js
1258
1257
  var decodeMap = /* @__PURE__ */ new Map([
1259
1258
  [0, 65533],
1260
1259
  // C1 Unicode control character reference replacements
@@ -1286,47 +1285,16 @@ var decodeMap = /* @__PURE__ */ new Map([
1286
1285
  [158, 382],
1287
1286
  [159, 376]
1288
1287
  ]);
1289
- var fromCodePoint = (
1290
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, n/no-unsupported-features/es-builtins
1291
- (_a = String.fromCodePoint) !== null && _a !== void 0 ? _a : ((codePoint) => {
1292
- let output = "";
1293
- if (codePoint > 65535) {
1294
- codePoint -= 65536;
1295
- output += String.fromCharCode(codePoint >>> 10 & 1023 | 55296);
1296
- codePoint = 56320 | codePoint & 1023;
1297
- }
1298
- output += String.fromCharCode(codePoint);
1299
- return output;
1300
- })
1301
- );
1302
1288
  function replaceCodePoint(codePoint) {
1303
- var _a3;
1304
1289
  if (codePoint >= 55296 && codePoint <= 57343 || codePoint > 1114111) {
1305
1290
  return 65533;
1306
1291
  }
1307
- return (_a3 = decodeMap.get(codePoint)) !== null && _a3 !== void 0 ? _a3 : codePoint;
1292
+ return decodeMap.get(codePoint) ?? codePoint;
1308
1293
  }
1309
1294
 
1310
- // node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/internal/decode-shared.js
1295
+ // node_modules/.pnpm/entities@8.0.0/node_modules/entities/dist/internal/decode-shared.js
1311
1296
  function decodeBase64(input) {
1312
- const binary = (
1313
- // eslint-disable-next-line n/no-unsupported-features/node-builtins
1314
- typeof atob === "function" ? (
1315
- // Browser (and Node >=16)
1316
- // eslint-disable-next-line n/no-unsupported-features/node-builtins
1317
- atob(input)
1318
- ) : (
1319
- // Older Node versions (<16)
1320
- // eslint-disable-next-line n/no-unsupported-features/node-builtins
1321
- typeof Buffer.from === "function" ? (
1322
- // eslint-disable-next-line n/no-unsupported-features/node-builtins
1323
- Buffer.from(input, "base64").toString("binary")
1324
- ) : (
1325
- // eslint-disable-next-line unicorn/no-new-buffer, n/no-deprecated-api
1326
- new Buffer(input, "base64").toString("binary")
1327
- )
1328
- )
1329
- );
1297
+ const binary = atob(input);
1330
1298
  const evenLength = binary.length & ~1;
1331
1299
  const out = new Uint16Array(evenLength / 2);
1332
1300
  for (let index = 0, outIndex = 0; index < evenLength; index += 2) {
@@ -1337,36 +1305,36 @@ function decodeBase64(input) {
1337
1305
  return out;
1338
1306
  }
1339
1307
 
1340
- // node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/generated/decode-data-html.js
1308
+ // node_modules/.pnpm/entities@8.0.0/node_modules/entities/dist/generated/decode-data-html.js
1341
1309
  var htmlDecodeTree = /* @__PURE__ */ decodeBase64("QR08ALkAAgH6AYsDNQR2BO0EPgXZBQEGLAbdBxMISQrvCmQLfQurDKQNLw4fD4YPpA+6D/IPAAAAAAAAAAAAAAAAKhBMEY8TmxUWF2EYLBkxGuAa3RsJHDscWR8YIC8jSCSIJcMl6ie3Ku8rEC0CLjoupS7kLgAIRU1hYmNmZ2xtbm9wcnN0dVQAWgBeAGUAaQBzAHcAfgCBAIQAhwCSAJoAoACsALMAbABpAGcAO4DGAMZAUAA7gCYAJkBjAHUAdABlADuAwQDBQHIiZXZlAAJhAAFpeW0AcgByAGMAO4DCAMJAEGRyAADgNdgE3XIAYQB2AGUAO4DAAMBA8CFoYZFj4SFjcgBhZAAAoFMqAAFncIsAjgBvAG4ABGFmAADgNdg43fAlbHlGdW5jdGlvbgCgYSBpAG4AZwA7gMUAxUAAAWNzpACoAHIAAOA12Jzc6SFnbgCgVCJpAGwAZABlADuAwwDDQG0AbAA7gMQAxEAABGFjZWZvcnN1xQDYANoA7QDxAPYA+QD8AAABY3LJAM8AayNzbGFzaAAAoBYidgHTANUAAKDnKmUAZAAAoAYjeQARZIABY3J0AOAA5QDrAGEidXNlAACgNSLuI291bGxpcwCgLCFhAJJjcgAA4DXYBd1wAGYAAOA12Dnd5SF2ZdhiYwDyAOoAbSJwZXEAAKBOIgAHSE9hY2RlZmhpbG9yc3UXARoBHwE6AVIBVQFiAWQBZgGCAakB6QHtAfIBYwB5ACdkUABZADuAqQCpQIABY3B5ACUBKAE1AfUhdGUGYWmg0iJ0KGFsRGlmZmVyZW50aWFsRAAAoEUhbCJleXMAAKAtIQACYWVpb0EBRAFKAU0B8iFvbgxhZABpAGwAO4DHAMdAcgBjAAhhbiJpbnQAAKAwIm8AdAAKYQABZG5ZAV0BaSJsbGEAuGB0I2VyRG90ALdg8gA5AWkAp2NyImNsZQAAAkRNUFRwAXQBeQF9AW8AdAAAoJkiaSJudXMAAKCWIuwhdXMAoJUiaSJtZXMAAKCXIm8AAAFjc4cBlAFrKndpc2VDb250b3VySW50ZWdyYWwAAKAyImUjQ3VybHkAAAFEUZwBpAFvJXVibGVRdW90ZQAAoB0gdSJvdGUAAKAZIAACbG5wdbABtgHNAdgBbwBuAGWgNyIAoHQqgAFnaXQAvAHBAcUB8iJ1ZW50AKBhIm4AdAAAoC8i7yV1ckludGVncmFsAKAuIgABZnLRAdMBAKACIe8iZHVjdACgECJuLnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbAAAoDMi7yFzcwCgLypjAHIAAOA12J7ccABDoNMiYQBwAACgTSKABURKU1phY2VmaW9zAAsCEgIVAhgCGwIsAjQCOQI9AnMCfwNvoEUh9CJyYWhkAKARKWMAeQACZGMAeQAFZGMAeQAPZIABZ3JzACECJQIoAuchZXIAoCEgcgAAoKEhaAB2AACg5CoAAWF5MAIzAvIhb24OYRRkbAB0oAciYQCUY3IAAOA12AfdAAFhZkECawIAAWNtRQJnAvIjaXRpY2FsAAJBREdUUAJUAl8CYwJjInV0ZQC0YG8AdAFZAloC2WJiJGxlQWN1dGUA3WJyImF2ZQBgYGkibGRlANxi7yFuZACgxCJmJWVyZW50aWFsRAAAoEYhcAR9AgAAAAAAAIECjgIAABoDZgAA4DXYO91EoagAhQKJAm8AdAAAoNwgcSJ1YWwAAKBQIuIhbGUAA0NETFJVVpkCqAK1Au8C/wIRA28AbgB0AG8AdQByAEkAbgB0AGUAZwByAGEA7ADEAW8AdAKvAgAAAACwAqhgbiNBcnJvdwAAoNMhAAFlb7kC0AJmAHQAgAFBUlQAwQLGAs0CciJyb3cAAKDQIekkZ2h0QXJyb3cAoNQhZQDlACsCbgBnAAABTFLWAugC5SFmdAABQVLcAuECciJyb3cAAKD4J+kkZ2h0QXJyb3cAoPon6SRnaHRBcnJvdwCg+SdpImdodAAAAUFU9gL7AnIicm93AACg0iFlAGUAAKCoInAAQQIGAwAAAAALA3Iicm93AACg0SFvJHduQXJyb3cAAKDVIWUlcnRpY2FsQmFyAACgJSJuAAADQUJMUlRhJAM2AzoDWgNxA3oDciJyb3cAAKGTIUJVLAMwA2EAcgAAoBMpcCNBcnJvdwAAoPUhciJldmUAEWPlIWZ00gJDAwAASwMAAFIDaSVnaHRWZWN0b3IAAKBQKWUkZVZlY3RvcgAAoF4p5SJjdG9yQqC9IWEAcgAAoFYpaSJnaHQA1AFiAwAAaQNlJGVWZWN0b3IAAKBfKeUiY3RvckKgwSFhAHIAAKBXKWUAZQBBoKQiciJyb3cAAKCnIXIAcgBvAPcAtAIAAWN0gwOHA3IA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YwAAoN8i4SFycnCgtiEAoD0pgKIqImJjZG9zACsVMBU6FT4VQRVyImNhcAAAoEgqAAFhdTQVNxVwAACgRipwAACgSipvAHQAAKCNInIAAKBFKgDgKiIA/gACYWxydksVURVuFXMVcgByAG2gtyEAoDwpeQCAAWV2dwBYFWUVaRVxAHACXxUAAAAAYxVyAGUA4wAXFXUA4wAZFWUAZQAAoM4iZSJkZ2UAAKDPImUAbgA7gKQApEBlI2Fycm93AAABbHJ7FX8V5SFmdACgtiFpImdodAAAoLchZQDkAG0VAAFjaYsVkRVvAG4AaQBuAPQAkwFuAHQAAKAxImwiY3R5AACgLSOACUFIYWJjZGVmaGlqbG9yc3R1d3oAuBW7Fb8V1RXgFegV+RUKFhUWHxZUFlcWZRbFFtsW7xb7FgUXChdyAPIAtAJhAHIAAKBlKQACZ2xyc8YVyhXOFdAV5yFlcgCgICDlIXRoAKA4IfIA9QxoAHagECAAoKMiawHZFd4VYSJyb3cAAKAPKWEA4wBfAgABYXnkFecV8iFvbg9hNGQAoUYhYW/tFfQVAAFnciEC8RVyAACgyiF0InNlcQAAoHcqgAFnbG0A/xUCFgUWO4CwALBAdABhALRjcCJ0eXYAAKCxKQABaXIOFhIW8yFodACgfykA4DXYId1hAHIAAAFschsWHRYAoMMhAKDCIYACYWVnc3YAKBauAjYWOhY+Fm0AAKHEIm9zLhY0Fm4AZABzoMQi9SFpdACgZiZhIm1tYQDdY2kAbgAAoPIiAKH3AGlvQxZRFmQAZQAAgfcAO29KFksW90BuI3RpbWVzAACgxyJuAPgAUBZjAHkAUmRjAG8CXhYAAAAAYhZyAG4AAKAeI28AcAAAoA0jgAJscHR1dwBuFnEWdRaSFp4W7CFhciRgZgAA4DXYVd0AotkCZW1wc30WhBaJFo0WcQBkoFAibwB0AACgUSJpIm51cwAAoDgi7CF1cwCgFCLxInVhcmUAoKEiYgBsAGUAYgBhAHIAdwBlAGQAZwDlANcAbgCAAWFkaAClFqoWtBZyAHIAbwD3APUMbwB3AG4AYQByAHIAbwB3APMA8xVhI3Jwb29uAAABbHK8FsAWZQBmAPQAHBZpAGcAaAD0AB4WYgHJFs8WawBhAHIAbwD3AJILbwLUFgAAAADYFnIAbgAAoB8jbwBwAACgDCOAAWNvdADhFukW7BYAAXJ55RboFgDgNdi53FVkbAAAoPYp8iFvaxFhAAFkcvMW9xZvAHQAAKDxImkA5qC/JVsSAAFhaP8WAhdyAPIANQNhAPIA1wvhIm5nbGUAoKYpAAFjaQ4XEBd5AF9k5yJyYXJyAKD/JwAJRGFjZGVmZ2xtbm9wcXJzdHV4MRc4F0YXWxcyBF4XaRd5F40XrBe0F78X2RcVGCEYLRg1GEAYAAFEbzUXgRZvAPQA+BUAAWNzPBdCF3UAdABlADuA6QDpQPQhZXIAoG4qAAJhaW95TRdQF1YXWhfyIW9uG2FyAGOgViI7gOoA6kDsIW9uAKBVIk1kbwB0ABdhAAFEcmIXZhdvAHQAAKBSIgDgNdgi3XKhmipuF3QXYQB2AGUAO4DoAOhAZKCWKm8AdAAAoJgqgKGZKmlscwCAF4UXhxfuInRlcnMAoOcjAKATIWSglSpvAHQAAKCXKoABYXBzAJMXlheiF2MAcgATYXQAeQBzogUinxcAAAAAoRdlAHQAAKAFInAAMaADIDMBqRerFwCgBCAAoAUgAAFnc7AXsRdLYXAAAKACIAABZ3C4F7sXbwBuABlhZgAA4DXYVt2AAWFscwDFF8sXzxdyAHOg1SJsAACg4yl1AHMAAKBxKmkAAKG1A2x21RfYF28AbgC1Y/VjAAJjc3V24BfoF/0XEBgAAWlv5BdWF3IAYwAAoFYiaQLuFwAAAADwF+0ADQThIW50AAFnbPUX+Rd0AHIAAKCWKuUhc3MAoJUqgAFhZWkAAxgGGAoYbABzAD1gcwB0AACgXyJ2AESgYSJEAACgeCrwImFyc2wAoOUpAAFEYRkYHRhvAHQAAKBTInIAcgAAoHEpgAFjZGkAJxgqGO0XcgAAoC8hbwD0AIwCAAFhaDEYMhi3YzuA8ADwQAABbXI5GD0YbAA7gOsA60BvAACgrCCAAWNpcABGGEgYSxhsACFgcwD0ACwEAAFlb08YVxhjAHQAYQB0AGkAbwDuABoEbgBlAG4AdABpAGEAbADlADME4Ql1GAAAgRgAAIMYiBgAAAAAoRilGAAAqhgAALsYvhjRGAAA1xgnGWwAbABpAG4AZwBkAG8AdABzAGUA8QBlF3kARGRtImFsZQAAoEAmgAFpbHIAjRiRGJ0Y7CFpZwCgA/tpApcYAAAAAJoYZwAAoAD7aQBnAACgBPsA4DXYI93sIWlnAKAB++whaWcA4GYAagCAAWFsdACvGLIYthh0AACgbSZpAGcAAKAC+24AcwAAoLElbwBmAJJh8AHCGAAAxhhmAADgNdhX3QABYWvJGMwYbADsAGsEdqDUIgCg2SphI3J0aW50AACgDSoAAWFv2hgiGQABY3PeGB8ZsQPnGP0YBRkSGRUZAAAdGbID7xjyGPQY9xj5GAAA+xg7gL0AvUAAoFMhO4C8ALxAAKBVIQCgWSEAoFshswEBGQAAAxkAoFQhAKBWIbQCCxkOGQAAAAAQGTuAvgC+QACgVyEAoFwhNQAAoFghtgEZGQAAGxkAoFohAKBdITgAAKBeIWwAAKBEIHcAbgAAoCIjYwByAADgNdi73IAIRWFiY2RlZmdpamxub3JzdHYARhlKGVoZXhlmGWkZkhmWGZkZnRmgGa0ZxhnLGc8Z4BkjGmygZyIAoIwqgAFjbXAAUBlTGVgZ9SF0ZfVhbQBhAOSgswM6FgCghipyImV2ZQAfYQABaXliGWUZcgBjAB1hM2RvAHQAIWGAoWUibHFzAMYEcBl6GfGhZSLOBAAAdhlsAGEAbgD0AN8EgKF+KmNkbACBGYQZjBljAACgqSpvAHQAb6CAKmyggioAoIQqZeDbIgD+cwAAoJQqcgAA4DXYJN3noGsirATtIWVsAKA3IWMAeQBTZIChdyJFYWoApxmpGasZAKCSKgCgpSoAoKQqAAJFYWVztBm2Gb0ZwhkAoGkicABwoIoq8iFveACgiipxoIgq8aCIKrUZaQBtAACg5yJwAGYAAOA12FjdYQB2AOUAYwIAAWNp0xnWGXIAAKAKIW0AAKFzImVs3BneGQCgjioAoJAqAIM+ADtjZGxxco0E6xn0GfgZ/BkBGgABY2nvGfEZAKCnKnIAAKB6Km8AdAAAoNci0CFhcgCglSl1ImVzdAAAoHwqgAJhZGVscwAKGvQZFhrVBCAa8AEPGgAAFBpwAHIAbwD4AFkZcgAAoHgpcQAAAWxxxAQbGmwAZQBzAPMASRlpAO0A5AQAAWVuJxouGnIjdG5lcXEAAOBpIgD+xQAsGgAFQWFiY2Vma29zeUAaQxpmGmoabRqDGocalhrCGtMacgDyAMwCAAJpbG1yShpOGlAaVBpyAHMA8ABxD2YAvWBpAGwA9AASBQABZHJYGlsaYwB5AEpkAKGUIWN3YBpkGmkAcgAAoEgpAKCtIWEAcgAAoA8h6SFyYyVhgAFhbHIAcxp7Gn8a8iF0c3WgZSZpAHQAAKBlJuwhaXAAoCYg4yFvbgCguSJyAADgNdgl3XMAAAFld4wakRphInJvdwAAoCUpYSJyb3cAAKAmKYACYW1vcHIAnxqjGqcauhq+GnIAcgAAoP8h9CFodACgOyJrAAABbHKsGrMaZSRmdGFycm93AACgqSHpJGdodGFycm93AKCqIWYAAOA12Fnd4iFhcgCgFSCAAWNsdADIGswa0BpyAADgNdi93GEAcwDoAGka8iFvaydhAAFicNca2xr1IWxsAKBDIOghZW4AoBAg4Qr2GgAA/RoAAAgbExsaGwAAIRs7GwAAAAA+G2IbmRuVG6sbAACyG80b0htjAHUAdABlADuA7QDtQAChYyBpeQEbBhtyAGMAO4DuAO5AOGQAAWN4CxsNG3kANWRjAGwAO4ChAKFAAAFmcssCFhsA4DXYJt1yAGEAdgBlADuA7ADsQIChSCFpbm8AJxsyGzYbAAFpbisbLxtuAHQAAKAMKnQAAKAtIuYhaW4AoNwpdABhAACgKSHsIWlnM2GAAWFvcABDG1sbXhuAAWNndABJG0sbWRtyACthgAFlbHAAcQVRG1UbaQBuAOUAyAVhAHIA9AByBWgAMWFmAACgtyJlAGQAtWEAoggiY2ZvdGkbbRt1G3kb4SFyZQCgBSFpAG4AdKAeImkAZQAAoN0pZABvAPQAWxsAoisiY2VscIEbhRuPG5QbYQBsAACguiIAAWdyiRuNG2UAcgDzACMQ4wCCG2EicmhrAACgFyryIW9kAKA8KgACY2dwdJ8boRukG6gbeQBRZG8AbgAvYWYAAOA12FrdYQC5Y3UAZQBzAHQAO4C/AL9AAAFjabUbuRtyAADgNdi+3G4AAKIIIkVkc3bCG8QbyBvQAwCg+SJvAHQAAKD1Inag9CIAoPMiaaBiIOwhZGUpYesB1hsAANkbYwB5AFZkbAA7gO8A70AAA2NmbW9zdeYb7hvyG/Ub+hsFHAABaXnqG+0bcgBjADVhOWRyAADgNdgn3eEhdGg3YnAAZgAA4DXYW93jAf8bAAADHHIAAOA12L/c8iFjeVhk6yFjeVRkAARhY2ZnaGpvcxUcGhwiHCYcKhwtHDAcNRzwIXBhdqC6A/BjAAFleR4cIRzkIWlsN2E6ZHIAAOA12CjdciJlZW4AOGFjAHkARWRjAHkAXGRwAGYAAOA12FzdYwByAADgNdjA3IALQUJFSGFiY2RlZmdoamxtbm9wcnN0dXYAXhxtHHEcdRx5HN8cBx0dHTwd3B3tHfEdAR4EHh0eLB5FHrwewx7hHgkfPR9LH4ABYXJ0AGQcZxxpHHIA8gBvB/IAxQLhIWlsAKAbKeEhcnIAoA4pZ6BmIgCgiyphAHIAAKBiKWMJjRwAAJAcAACVHAAAAAAAAAAAAACZHJwcAACmHKgcrRwAANIc9SF0ZTph7SJwdHl2AKC0KXIAYQDuAFoG4iFkYbtjZwAAoegnZGyhHKMcAKCRKeUAiwYAoIUqdQBvADuAqwCrQHIAgKOQIWJmaGxwc3QAuhy/HMIcxBzHHMoczhxmoOQhcwAAoB8pcwAAoB0p6wCyGnAAAKCrIWwAAKA5KWkAbQAAoHMpbAAAoKIhAKGrKmFl1hzaHGkAbAAAoBkpc6CtKgDgrSoA/oABYWJyAOUc6RztHHIAcgAAoAwpcgBrAACgcicAAWFr8Rz4HGMAAAFla/Yc9xx7YFtgAAFlc/wc/hwAoIspbAAAAWR1Ax0FHQCgjykAoI0pAAJhZXV5Dh0RHRodHB3yIW9uPmEAAWRpFR0YHWkAbAA8YewAowbiAPccO2QAAmNxcnMkHScdLB05HWEAAKA2KXUAbwDyoBwgqhEAAWR1MB00HeghYXIAoGcpcyJoYXIAAKBLKWgAAKCyIQCiZCJmZ3FzRB1FB5Qdnh10AIACYWhscnQATh1WHWUdbB2NHXIicm93AHSgkCFhAOkAzxxhI3Jwb29uAAABZHVeHWId7yF3bgCgvSFwAACgvCHlJGZ0YXJyb3dzAKDHIWkiZ2h0AIABYWhzAHUdex2DHXIicm93APOglCGdBmEAcgBwAG8AbwBuAPMAzgtxAHUAaQBnAGEAcgByAG8A9wBlGugkcmVldGltZXMAoMsi8aFkIk0HAACaHWwAYQBuAPQAXgcAon0qY2Rnc6YdqR2xHbcdYwAAoKgqbwB0AG+gfypyoIEqAKCDKmXg2iIA/nMAAKCTKoACYWRlZ3MAwB3GHcod1h3ZHXAAcAByAG8A+ACmHG8AdAAAoNYicQAAAWdxzx3SHXQA8gBGB2cAdADyAHQcdADyAFMHaQDtAGMHgAFpbHIA4h3mHeod8yFodACgfClvAG8A8gDKBgDgNdgp3UWgdiIAoJEqYQH1Hf4dcgAAAWR1YB35HWygvCEAoGopbABrAACghCVjAHkAWWQAomoiYWNodAweDx4VHhkecgDyAGsdbwByAG4AZQDyAGAW4SFyZACgaylyAGkAAKD6JQABaW8hHiQe5CFvdEBh9SFzdGGgsCPjIWhlAKCwIwACRWFlczMeNR48HkEeAKBoInAAcKCJKvIhb3gAoIkqcaCHKvGghyo0HmkAbQAAoOYiAARhYm5vcHR3elIeXB5fHoUelh6mHqsetB4AAW5yVh5ZHmcAAKDsJ3IAAKD9IXIA6wCwBmcAgAFsbXIAZh52Hnse5SFmdAABYXKIB2weaQBnAGgAdABhAHIAcgBvAPcAkwfhInBzdG8AoPwnaQBnAGgAdABhAHIAcgBvAPcAmgdwI2Fycm93AAABbHKNHpEeZQBmAPQAxhxpImdodAAAoKwhgAFhZmwAnB6fHqIecgAAoIUpAOA12F3ddQBzAACgLSppIm1lcwAAoDQqYQGvHrMecwB0AACgFyLhAIoOZaHKJbkeRhLuIWdlAKDKJWEAcgBsoCgAdAAAoJMpgAJhY2htdADMHs8e1R7bHt0ecgDyAJ0GbwByAG4AZQDyANYWYQByAGSgyyEAoG0pAKAOIHIAaQAAoL8iAANhY2hpcXTrHu8e1QfzHv0eBh/xIXVvAKA5IHIAAOA12MHcbQDloXIi+h4AAPweAKCNKgCgjyoAAWJ19xwBH28AcqAYIACgGiDyIW9rQmEAhDwAO2NkaGlscXJCBhcfxh0gHyQfKB8sHzEfAAFjaRsfHR8AoKYqcgAAoHkqcgBlAOUAkx3tIWVzAKDJIuEhcnIAoHYpdSJlc3QAAKB7KgABUGk1HzkfYQByAACglillocMlAgdfEnIAAAFkdUIfRx9zImhhcgAAoEop6CFhcgCgZikAAWVuTx9WH3IjdG5lcXEAAOBoIgD+xQBUHwAHRGFjZGVmaGlsbm9wc3VuH3Ifoh+rH68ftx+7H74f5h/uH/MfBwj/HwsgxCFvdACgOiIAAmNscHJ5H30fiR+eH3IAO4CvAK9AAAFldIEfgx8AoEImZaAgJ3MAZQAAoCAnc6CmIXQAbwCAoaYhZGx1AJQfmB+cH28AdwDuAHkDZQBmAPQA6gbwAOkO6yFlcgCgriUAAW95ph+qH+0hbWEAoCkqPGThIXNoAKAUIOElc3VyZWRhbmdsZQCgISJyAADgNdgq3W8AAKAnIYABY2RuAMQfyR/bH3IAbwA7gLUAtUBhoiMi0B8AANMf1x9zAPQAKxFpAHIAAKDwKm8AdAA7gLcAt0B1AHMA4qESIh4TAADjH3WgOCIAoCoqYwHqH+0fcAAAoNsq8gB+GnAAbAB1APMACAgAAWRw9x/7H+UhbHMAoKciZgAA4DXYXt0AAWN0AyAHIHIAAOA12MLc8CFvcwCgPiJsobwDECAVIPQiaW1hcACguCJhAPAAEyAADEdMUlZhYmNkZWZnaGlqbG1vcHJzdHV2dzwgRyBmIG0geSCqILgg2iDeIBEhFSEyIUMhTSFQIZwhnyHSIQAiIyKLIrEivyIUIwABZ3RAIEMgAODZIjgD9uBrItIgBwmAAWVsdABNIF8gYiBmAHQAAAFhclMgWCByInJvdwAAoM0h6SRnaHRhcnJvdwCgziEA4NgiOAP24Goi0iBfCekkZ2h0YXJyb3cAoM8hAAFEZHEgdSDhIXNoAKCvIuEhc2gAoK4igAJiY25wdACCIIYgiSCNIKIgbABhAACgByL1IXRlRGFnAADgICLSIACiSSJFaW9wlSCYIJwgniAA4HAqOANkAADgSyI4A3MASWFyAG8A+AAyCnUAcgBhoG4mbADzoG4mmwjzAa8gAACzIHAAO4CgAKBAbQBwAOXgTiI4AyoJgAJhZW91eQDBIMogzSDWINkg8AHGIAAAyCAAoEMqbwBuAEhh5CFpbEZhbgBnAGSgRyJvAHQAAOBtKjgDcAAAoEIqPWThIXNoAKATIACjYCJBYWRxc3jpIO0g+SD+IAIhDCFyAHIAAKDXIXIAAAFocvIg9SBrAACgJClvoJch9wAGD28AdAAA4FAiOAN1AGkA9gC7CAABZWkGIQohYQByAACgKCntAN8I6SFzdPOgBCLlCHIAAOA12CvdAAJFZXN0/wgcISshLiHxoXEiIiEAABMJ8aFxIgAJAAAnIWwAYQBuAPQAEwlpAO0AGQlyoG8iAKBvIoABQWFwADghOyE/IXIA8gBeIHIAcgAAoK4hYQByAACg8ipzogsiSiEAAAAAxwtkoPwiAKD6ImMAeQBaZIADQUVhZGVzdABcIV8hYiFmIWkhkyGWIXIA8gBXIADgZiI4A3IAcgAAoJohcgAAoCUggKFwImZxcwBwIYQhjiF0AAABYXJ1IXohcgByAG8A9wBlIWkAZwBoAHQAYQByAHIAbwD3AD4h8aFwImAhAACKIWwAYQBuAPQAZwlz4H0qOAMAoG4iaQDtAG0JcqBuImkA5aDqIkUJaQDkADoKAAFwdKMhpyFmAADgNdhf3YCBrAA7aW4AriGvIcchrEBuAIChCSJFZHYAtyG6Ib8hAOD5IjgDbwB0AADg9SI4A+EB1gjEIcYhAKD3IgCg9iJpAHagDCLhAagJzyHRIQCg/iIAoP0igAFhb3IA2CHsIfEhcgCAoSYiYXN0AOAh5SHpIWwAbABlAOwAywhsAADg/SrlIADgAiI4A2wiaW50AACgFCrjoYAi9yEAAPohdQDlAJsJY+CvKjgDZaCAIvEAkwkAAkFhaXQHIgoiFyIeInIA8gBsIHIAcgAAoZshY3cRIhQiAOAzKTgDAOCdITgDZyRodGFycm93AACgmyFyAGkA5aDrIr4JgANjaGltcHF1AC8iPCJHIpwhTSJQIloigKGBImNlcgA2Iv0JOSJ1AOUABgoA4DXYw9zvIXJ0bQKdIQAAAABEImEAcgDhAOEhbQBloEEi8aBEIiYKYQDyAMsIcwB1AAABYnBWIlgi5QDUCeUA3wmAAWJjcABgInMieCKAoYQiRWVzAGci7glqIgDgxSo4A2UAdABl4IIi0iBxAPGgiCJoImMAZaCBIvEA/gmAoYUiRWVzAH8iFgqCIgDgxio4A2UAdABl4IMi0iBxAPGgiSKAIgACZ2lscpIilCKaIpwi7AAMCWwAZABlADuA8QDxQOcAWwlpI2FuZ2xlAAABbHKkIqoi5SFmdGWg6iLxAEUJaSJnaHQAZaDrIvEAvgltoL0DAKEjAGVzuCK8InIAbwAAoBYhcAAAoAcggARESGFkZ2lscnMAziLSItYi2iLeIugi7SICIw8j4SFzaACgrSLhIXJyAKAEKXAAAOBNItIg4SFzaACgrCIAAWV04iLlIgDgZSLSIADgPgDSIG4iZmluAACg3imAAUFldADzIvci+iJyAHIAAKACKQDgZCLSIHLgPADSIGkAZQAA4LQi0iAAAUF0BiMKI3IAcgAAoAMp8iFpZQDgtSLSIGkAbQAA4Dwi0iCAAUFhbgAaIx4jKiNyAHIAAKDWIXIAAAFociMjJiNrAACgIylvoJYh9wD/DuUhYXIAoCcpUxJqFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVCMAAF4jaSN/I4IjjSOeI8AUAAAAAKYjwCMAANoj3yMAAO8jHiQvJD8kRCQAAWNzVyNsFHUAdABlADuA8wDzQAABaXlhI2cjcgBjoJoiO4D0APRAPmSAAmFiaW9zAHEjdCN3I3EBeiNzAOgAdhTsIWFjUWF2AACgOCrvIWxkAKC8KewhaWdTYQABY3KFI4kjaQByAACgvykA4DXYLN1vA5QjAAAAAJYjAACcI24A22JhAHYAZQA7gPIA8kAAoMEpAAFibaEjjAphAHIAAKC1KQACYWNpdKwjryO6I70jcgDyAFkUAAFpcrMjtiNyAACgvinvIXNzAKC7KW4A5QDZCgCgwCmAAWFlaQDFI8gjyyNjAHIATWFnAGEAyWOAAWNkbgDRI9Qj1iPyIW9uv2MAoLYpdQDzAHgBcABmAADgNdhg3YABYWVsAOQj5yPrI3IAAKC3KXIAcAAAoLkpdQDzAHwBAKMoImFkaW9zdvkj/CMPJBMkFiQbJHIA8gBeFIChXSplZm0AAyQJJAwkcgBvoDQhZgAAoDQhO4CqAKpAO4C6ALpA5yFvZgCgtiJyAACgVipsIm9wZQAAoFcqAKBbKoABY2xvACMkJSQrJPIACCRhAHMAaAA7gPgA+EBsAACgmCJpAGwBMyQ4JGQAZQA7gPUA9UBlAHMAYaCXInMAAKA2Km0AbAA7gPYA9kDiIWFyAKA9I+EKXiQAAHokAAB8JJQkAACYJKkkAAAAALUkEQsAAPAkAAAAAAQleiUAAIMlcgCAoSUiYXN0AGUkbyQBCwCBtgA7bGokayS2QGwAZQDsABgDaQJ1JAAAAAB4JG0AAKDzKgCg/Sp5AD9kcgCAAmNpbXB0AIUkiCSLJJkSjyRuAHQAJWBvAGQALmBpAGwAAKAwIOUhbmsAoDEgcgAA4DXYLd2AAWltbwCdJKAkpCR2oMYD1WNtAGEA9AD+B24AZQAAoA4m9KHAA64kAAC0JGMjaGZvcmsAAKDUItZjAAFhdbgkxCRuAAABY2u9JMIkawBooA8hAKAOIfYAaRpzAACkKwBhYmNkZW1zdNMkIRPXJNsk4STjJOck6yTjIWlyAKAjKmkAcgAAoCIqAAFvdYsW3yQAoCUqAKByKm4AO4CxALFAaQBtAACgJip3AG8AAKAnKoABaXB1APUk+iT+JO4idGludACgFSpmAADgNdhh3W4AZAA7gKMAo0CApHoiRWFjZWlub3N1ABMlFSUYJRslTCVRJVklSSV1JQCgsypwAACgtyp1AOUAPwtjoK8qgKJ6ImFjZW5zACclLSU0JTYlSSVwAHAAcgBvAPgAFyV1AHIAbAB5AGUA8QA/C/EAOAuAAWFlcwA8JUElRSXwInByb3gAoLkqcQBxAACgtSppAG0AAKDoImkA7QBEC20AZQDzoDIgIguAAUVhcwBDJVclRSXwAEAlgAFkZnAATwtfJXElgAFhbHMAZSVpJW0l7CFhcgCgLiPpIW5lAKASI/UhcmYAoBMjdKAdIu8AWQvyIWVsAKCwIgABY2l9JYElcgAA4DXYxdzIY24iY3NwAACgCCAAA2Zpb3BzdZElKxuVJZolnyWkJXIAAOA12C7dcABmAADgNdhi3XIiaW1lAACgVyBjAHIAAOA12MbcgAFhZW8AqiW6JcAldAAAAWVpryW2JXIAbgBpAG8AbgDzABkFbgB0AACgFipzAHQAZaA/APEACRj0AG0LgApBQkhhYmNkZWZoaWxtbm9wcnN0dXgA4yXyJfYl+iVpJpAmpia9JtUm5ib4JlonaCdxJ3UnnietJ7EnyCfiJ+cngAFhcnQA6SXsJe4lcgDyAJkM8gD6AuEhaWwAoBwpYQByAPIA3BVhAHIAAKBkKYADY2RlbnFydAAGJhAmEyYYJiYmKyZaJgABZXUKJg0mAOA9IjEDdABlAFVhaQDjACAN7SJwdHl2AKCzKWcAgKHpJ2RlbAAgJiImJCYAoJIpAKClKeUA9wt1AG8AO4C7ALtAcgAApZIhYWJjZmhscHN0dz0mQCZFJkcmSiZMJk4mUSZVJlgmcAAAoHUpZqDlIXMAAKAgKQCgMylzAACgHinrALka8ACVHmwAAKBFKWkAbQAAoHQpbAAAoKMhAKCdIQABYWleJmImaQBsAACgGilvAG6gNiJhAGwA8wB2C4ABYWJyAG8mciZ2JnIA8gAvEnIAawAAoHMnAAFha3omgSZjAAABZWt/JoAmfWBdYAABZXOFJocmAKCMKWwAAAFkdYwmjiYAoI4pAKCQKQACYWV1eZcmmiajJqUm8iFvbllhAAFkaZ4moSZpAGwAV2HsAA8M4gCAJkBkAAJjbHFzrSawJrUmuiZhAACgNylkImhhcgAAoGkpdQBvAPKgHSCjAWgAAKCzIYABYWNnAMMm0iaUC2wAgKEcIWlwcwDLJs4migxuAOUAoAxhAHIA9ADaC3QAAKCtJYABaWxyANsm3ybjJvMhaHQAoH0pbwBvAPIANgwA4DXYL90AAWFv6ib1JnIAAAFkde8m8SYAoMEhbKDAIQCgbCl2oMED8WOAAWducwD+Jk4nUCdoAHQAAANhaGxyc3QKJxInISc1Jz0nRydyInJvdwB0oJIhYQDpAFYmYSNycG9vbgAAAWR1GiceJ28AdwDuAPAmcAAAoMAh5SFmdAABYWgnJy0ncgByAG8AdwDzAAkMYQByAHAAbwBvAG4A8wATBGklZ2h0YXJyb3dzAACgySFxAHUAaQBnAGEAcgByAG8A9wBZJugkcmVldGltZXMAoMwiZwDaYmkAbgBnAGQAbwB0AHMAZQDxABwYgAFhaG0AYCdjJ2YncgDyAAkMYQDyABMEAKAPIG8idXN0AGGgsSPjIWhlAKCxI+0haWQAoO4qAAJhYnB0fCeGJ4knmScAAW5ygCeDJ2cAAKDtJ3IAAKD+IXIA6wAcDIABYWZsAI8nkieVJ3IAAKCGKQDgNdhj3XUAcwAAoC4qaSJtZXMAAKA1KgABYXCiJ6gncgBnoCkAdAAAoJQp7yJsaW50AKASKmEAcgDyADwnAAJhY2hxuCe8J6EMwCfxIXVvAKA6IHIAAOA12MfcAAFidYAmxCdvAPKgGSCoAYABaGlyAM4n0ifWJ3IAZQDlAE0n7SFlcwCgyiJpAIChuSVlZmwAXAxjEt4n9CFyaQCgzinsInVoYXIAoGgpAKAeIWENBSgJKA0oSyhVKIYoAACLKLAoAAAAAOMo5ygAABApJCkxKW0pcSmHKaYpAACYKgAAAACxKmMidXRlAFthcQB1AO8ABR+ApHsiRWFjZWlucHN5ABwoHignKCooLygyKEEoRihJKACgtCrwASMoAAAlKACguCpvAG4AYWF1AOUAgw1koLAqaQBsAF9hcgBjAF1hgAFFYXMAOCg6KD0oAKC2KnAAAKC6KmkAbQAAoOki7yJsaW50AKATKmkA7QCIDUFkbwB0AGKixSKRFgAAAABTKACgZiqAA0FhY21zdHgAYChkKG8ocyh1KHkogihyAHIAAKDYIXIAAAFocmkoayjrAJAab6CYIfcAzAd0ADuApwCnQGkAO2D3IWFyAKApKW0AAAFpbn4ozQBuAHUA8wDOAHQAAKA2J3IA7+A12DDdIxkAAmFjb3mRKJUonSisKHIAcAAAoG8mAAFoeZkonChjAHkASWRIZHIAdABtAqUoAAAAAKgoaQDkAFsPYQByAGEA7ABsJDuArQCtQAABZ22zKLsobQBhAAChwwNmdroouijCY4CjPCJkZWdsbnByAMgozCjPKNMo1yjaKN4obwB0AACgairxoEMiCw5FoJ4qAKCgKkWgnSoAoJ8qZQAAoEYi7CF1cwCgJCrhIXJyAKByKWEAcgDyAPwMAAJhZWl07Sj8KAEpCCkAAWxz8Sj4KGwAcwBlAHQAbQDpAH8oaABwAACgMyrwImFyc2wAoOQpAAFkbFoPBSllAACgIyNloKoqc6CsKgDgrCoA/oABZmxwABUpGCkfKfQhY3lMZGKgLwBhoMQpcgAAoD8jZgAA4DXYZN1hAAABZHIoKRcDZQBzAHWgYCZpAHQAAKBgJoABY3N1ADYpRilhKQABYXU6KUApcABzoJMiAOCTIgD+cABzoJQiAOCUIgD+dQAAAWJwSylWKQChjyJlcz4NUCllAHQAZaCPIvEAPw0AoZAiZXNIDVspZQB0AGWgkCLxAEkNAKGhJWFmZilbBHIAZQFrKVwEAKChJWEAcgDyAAMNAAJjZW10dyl7KX8pgilyAADgNdjI3HQAbQDuAM4AaQDsAAYpYQByAOYAVw0AAWFyiimOKXIA5qAGJhESAAFhbpIpoylpImdodAAAAWVwmSmgKXAAcwBpAGwAbwDuANkXaADpAKAkcwCvYIACYmNtbnAArin8KY4NJSooKgCkgiJFZGVtbnByc7wpvinCKcgpzCnUKdgp3CkAoMUqbwB0AACgvSpkoIYibwB0AACgwyr1IWx0AKDBKgABRWXQKdIpAKDLKgCgiiLsIXVzAKC/KuEhcnIAoHkpgAFlaXUA4inxKfQpdAAAoYIiZW7oKewpcQDxoIYivSllAHEA8aCKItEpbQAAoMcqAAFicPgp+ikAoNUqAKDTKmMAgKJ7ImFjZW5zAAcqDSoUKhYqRihwAHAAcgBvAPgAIyh1AHIAbAB5AGUA8QCDDfEAfA2AAWFlcwAcKiIqPShwAHAAcgBvAPgAPChxAPEAOShnAACgaiYApoMiMTIzRWRlaGxtbnBzPCo/KkIqRSpHKlIqWCpjKmcqaypzKncqO4C5ALlAO4CyALJAO4CzALNAAKDGKgABb3NLKk4qdAAAoL4qdQBiAACg2CpkoIcibwB0AACgxCpzAAABb3VdKmAqbAAAoMknYgAAoNcq4SFycgCgeyn1IWx0AKDCKgABRWVvKnEqAKDMKgCgiyLsIXVzAKDAKoABZWl1AH0qjCqPKnQAAKGDImVugyqHKnEA8aCHIkYqZQBxAPGgiyJwKm0AAKDIKgABYnCTKpUqAKDUKgCg1iqAAUFhbgCdKqEqrCpyAHIAAKDZIXIAAAFocqYqqCrrAJUab6CZIfcAxQf3IWFyAKAqKWwAaQBnADuA3wDfQOELzyrZKtwq6SrsKvEqAAD1KjQrAAAAAAAAAAAAAEwrbCsAAHErvSsAAAAAAADRK3IC1CoAAAAA2CrnIWV0AKAWI8RjcgDrAOUKgAFhZXkA4SrkKucq8iFvbmVh5CFpbGNhQmRvAPQAIg5sInJlYwAAoBUjcgAA4DXYMd0AAmVpa2/7KhIrKCsuK/IBACsAAAkrZQAAATRm6g0EK28AcgDlAOsNYQBzorgDECsAAAAAEit5AG0A0WMAAWNuFislK2sAAAFhcxsrIStwAHAAcgBvAPgAFw5pAG0AAKA8InMA8AD9DQABYXMsKyEr8AAXDnIAbgA7gP4A/kDsATgrOyswG2QA5QBnAmUAcwCAgdcAO2JkAEMrRCtJK9dAYaCgInIAAKAxKgCgMCqAAWVwcwBRK1MraSvhAAkh4qKkIlsrXysAAAAAYytvAHQAAKA2I2kAcgAAoPEqb+A12GXdcgBrAACg2irhAHgociJpbWUAAKA0IIABYWlwAHYreSu3K2QA5QC+DYADYWRlbXBzdACFK6MrmiunK6wrsCuzK24iZ2xlAACitSVkbHFykCuUK5ornCvvIXduAKC/JeUhZnRloMMl8QACBwCgXCJpImdodABloLkl8QBdDG8AdAAAoOwlaSJudXMAAKA6KuwhdXMAoDkqYgAAoM0p6SFtZQCgOyrlInppdW0AoOIjgAFjaHQAwivKK80rAAFyecYrySsA4DXYydxGZGMAeQBbZPIhb2tnYQABaW/UK9creAD0ANERaCJlYWQAAAFsct4r5ytlAGYAdABhAHIAcgBvAPcAXQbpJGdodGFycm93AKCgIQAJQUhhYmNkZmdobG1vcHJzdHV3CiwNLBEsHSwnLDEsQCxLLFIsYix6LIQsjyzLLOgs7Sz/LAotcgDyAAkDYQByAACgYykAAWNyFSwbLHUAdABlADuA+gD6QPIACQ1yAOMBIywAACUseQBeZHYAZQBtYQABaXkrLDAscgBjADuA+wD7QENkgAFhYmgANyw6LD0scgDyANEO7CFhY3FhYQDyAOAOAAFpckQsSCzzIWh0AKB+KQDgNdgy3XIAYQB2AGUAO4D5APlAYQFWLF8scgAAAWxyWixcLACgvyEAoL4hbABrAACggCUAAWN0Zix2LG8CbCwAAAAAcyxyAG4AZaAcI3IAAKAcI28AcAAAoA8jcgBpAACg+CUAAWFsfiyBLGMAcgBrYTuAqACoQAABZ3CILIssbwBuAHNhZgAA4DXYZt0AA2FkaGxzdZksniynLLgsuyzFLHIAcgBvAPcACQ1vAHcAbgBhAHIAcgBvAPcA2A5hI3Jwb29uAAABbHKvLLMsZQBmAPQAWyxpAGcAaAD0AF0sdQDzAKYOaQAAocUDaGzBLMIs0mNvAG4AxWPwI2Fycm93cwCgyCGAAWNpdADRLOEs5CxvAtcsAAAAAN4scgBuAGWgHSNyAACgHSNvAHAAAKAOI24AZwBvYXIAaQAAoPklYwByAADgNdjK3IABZGlyAPMs9yz6LG8AdAAAoPAi7CFkZWlhaQBmoLUlAKC0JQABYW0DLQYtcgDyAMosbAA7gPwA/EDhIm5nbGUAoKcpgAdBQkRhY2RlZmxub3Byc3oAJy0qLTAtNC2bLZ0toS2/LcMtxy3TLdgt3C3gLfwtcgDyABADYQByAHag6CoAoOkqYQBzAOgA/gIAAW5yOC08LechcnQAoJwpgANla25wcnN0AJkpSC1NLVQtXi1iLYItYQBwAHAA4QAaHG8AdABoAGkAbgDnAKEXgAFoaXIAoSmzJFotbwBwAPQAdCVooJUh7wD4JgABaXVmLWotZwBtAOEAuygAAWJwbi14LXMjZXRuZXEAceCKIgD+AODLKgD+cyNldG5lcQBx4IsiAP4A4MwqAP4AAWhyhi2KLWUAdADhABIraSNhbmdsZQAAAWxyki2WLeUhZnQAoLIiaSJnaHQAAKCzInkAMmThIXNoAKCiIoABZWxyAKcttC24LWKiKCKuLQAAAACyLWEAcgAAoLsicQAAoFoi7CFpcACg7iIAAWJ0vC1eD2EA8gBfD3IAAOA12DPddAByAOkAlS1zAHUAAAFicM0t0C0A4IIi0iAA4IMi0iBwAGYAAOA12GfdcgBvAPAAWQt0AHIA6QCaLQABY3XkLegtcgAA4DXYy9wAAWJw7C30LW4AAAFFZXUt8S0A4IoiAP5uAAABRWV/LfktAOCLIgD+6SJnemFnAKCaKYADY2Vmb3BycwANLhAuJS4pLiMuLi40LukhcmN1YQABZGkULiEuAAFiZxguHC5hAHIAAKBfKmUAcaAnIgCgWSLlIXJwAKAYIXIAAOA12DTdcABmAADgNdho3WWgQCJhAHQA6ABqD2MAcgAA4DXYzNzjCuQRUC4AAFQuAABYLmIuAAAAAGMubS5wLnQuAAAAAIguki4AAJouJxIqEnQAcgDpAB0ScgAA4DXYNd0AAUFhWy5eLnIA8gDnAnIA8gCTB75jAAFBYWYuaS5yAPIA4AJyAPIAjAdhAPAAeh5pAHMAAKD7IoABZHB0APgReS6DLgABZmx9LoAuAOA12GnddQDzAP8RaQBtAOUABBIAAUFhiy6OLnIA8gDuAnIA8gCaBwABY3GVLgoScgAA4DXYzdwAAXB0nS6hLmwAdQDzACUScgDpACASAARhY2VmaW9zdbEuvC7ELsguzC7PLtQu2S5jAAABdXm2LrsudABlADuA/QD9QE9kAAFpecAuwy5yAGMAd2FLZG4AO4ClAKVAcgAA4DXYNt1jAHkAV2RwAGYAAOA12GrdYwByAADgNdjO3AABY23dLt8ueQBOZGwAO4D/AP9AAAVhY2RlZmhpb3N38y73Lv8uAi8MLxAvEy8YLx0vIi9jInV0ZQB6YQABYXn7Lv4u8iFvbn5hN2RvAHQAfGEAAWV0Bi8KL3QAcgDmAB8QYQC2Y3IAAOA12DfdYwB5ADZk5yJyYXJyAKDdIXAAZgAA4DXYa91jAHIAAOA12M/cAAFqbiYvKC8AoA0gagAAoAwg");
1342
1310
 
1343
- // node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/generated/decode-data-xml.js
1311
+ // node_modules/.pnpm/entities@8.0.0/node_modules/entities/dist/generated/decode-data-xml.js
1344
1312
  var xmlDecodeTree = /* @__PURE__ */ decodeBase64("AAJhZ2xxBwARABMAFQBtAg0AAAAAAA8AcAAmYG8AcwAnYHQAPmB0ADxg9SFvdCJg");
1345
1313
 
1346
- // node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/internal/bin-trie-flags.js
1314
+ // node_modules/.pnpm/entities@8.0.0/node_modules/entities/dist/internal/bin-trie-flags.js
1347
1315
  var BinTrieFlags;
1348
- (function(BinTrieFlags3) {
1349
- BinTrieFlags3[BinTrieFlags3["VALUE_LENGTH"] = 49152] = "VALUE_LENGTH";
1350
- BinTrieFlags3[BinTrieFlags3["FLAG13"] = 8192] = "FLAG13";
1351
- BinTrieFlags3[BinTrieFlags3["BRANCH_LENGTH"] = 8064] = "BRANCH_LENGTH";
1352
- BinTrieFlags3[BinTrieFlags3["JUMP_TABLE"] = 127] = "JUMP_TABLE";
1316
+ (function(BinTrieFlags2) {
1317
+ BinTrieFlags2[BinTrieFlags2["VALUE_LENGTH"] = 49152] = "VALUE_LENGTH";
1318
+ BinTrieFlags2[BinTrieFlags2["FLAG13"] = 8192] = "FLAG13";
1319
+ BinTrieFlags2[BinTrieFlags2["BRANCH_LENGTH"] = 8064] = "BRANCH_LENGTH";
1320
+ BinTrieFlags2[BinTrieFlags2["JUMP_TABLE"] = 127] = "JUMP_TABLE";
1353
1321
  })(BinTrieFlags || (BinTrieFlags = {}));
1354
1322
 
1355
- // node_modules/.pnpm/entities@7.0.1/node_modules/entities/dist/esm/decode.js
1323
+ // node_modules/.pnpm/entities@8.0.0/node_modules/entities/dist/decode.js
1356
1324
  var CharCodes;
1357
- (function(CharCodes4) {
1358
- CharCodes4[CharCodes4["NUM"] = 35] = "NUM";
1359
- CharCodes4[CharCodes4["SEMI"] = 59] = "SEMI";
1360
- CharCodes4[CharCodes4["EQUALS"] = 61] = "EQUALS";
1361
- CharCodes4[CharCodes4["ZERO"] = 48] = "ZERO";
1362
- CharCodes4[CharCodes4["NINE"] = 57] = "NINE";
1363
- CharCodes4[CharCodes4["LOWER_A"] = 97] = "LOWER_A";
1364
- CharCodes4[CharCodes4["LOWER_F"] = 102] = "LOWER_F";
1365
- CharCodes4[CharCodes4["LOWER_X"] = 120] = "LOWER_X";
1366
- CharCodes4[CharCodes4["LOWER_Z"] = 122] = "LOWER_Z";
1367
- CharCodes4[CharCodes4["UPPER_A"] = 65] = "UPPER_A";
1368
- CharCodes4[CharCodes4["UPPER_F"] = 70] = "UPPER_F";
1369
- CharCodes4[CharCodes4["UPPER_Z"] = 90] = "UPPER_Z";
1325
+ (function(CharCodes3) {
1326
+ CharCodes3[CharCodes3["NUM"] = 35] = "NUM";
1327
+ CharCodes3[CharCodes3["SEMI"] = 59] = "SEMI";
1328
+ CharCodes3[CharCodes3["EQUALS"] = 61] = "EQUALS";
1329
+ CharCodes3[CharCodes3["ZERO"] = 48] = "ZERO";
1330
+ CharCodes3[CharCodes3["NINE"] = 57] = "NINE";
1331
+ CharCodes3[CharCodes3["LOWER_A"] = 97] = "LOWER_A";
1332
+ CharCodes3[CharCodes3["LOWER_F"] = 102] = "LOWER_F";
1333
+ CharCodes3[CharCodes3["LOWER_X"] = 120] = "LOWER_X";
1334
+ CharCodes3[CharCodes3["LOWER_Z"] = 122] = "LOWER_Z";
1335
+ CharCodes3[CharCodes3["UPPER_A"] = 65] = "UPPER_A";
1336
+ CharCodes3[CharCodes3["UPPER_F"] = 70] = "UPPER_F";
1337
+ CharCodes3[CharCodes3["UPPER_Z"] = 90] = "UPPER_Z";
1370
1338
  })(CharCodes || (CharCodes = {}));
1371
1339
  var TO_LOWER_BIT = 32;
1372
1340
  function isNumber(code) {
@@ -1382,33 +1350,51 @@ function isEntityInAttributeInvalidEnd(code) {
1382
1350
  return code === CharCodes.EQUALS || isAsciiAlphaNumeric(code);
1383
1351
  }
1384
1352
  var EntityDecoderState;
1385
- (function(EntityDecoderState3) {
1386
- EntityDecoderState3[EntityDecoderState3["EntityStart"] = 0] = "EntityStart";
1387
- EntityDecoderState3[EntityDecoderState3["NumericStart"] = 1] = "NumericStart";
1388
- EntityDecoderState3[EntityDecoderState3["NumericDecimal"] = 2] = "NumericDecimal";
1389
- EntityDecoderState3[EntityDecoderState3["NumericHex"] = 3] = "NumericHex";
1390
- EntityDecoderState3[EntityDecoderState3["NamedEntity"] = 4] = "NamedEntity";
1353
+ (function(EntityDecoderState2) {
1354
+ EntityDecoderState2[EntityDecoderState2["EntityStart"] = 0] = "EntityStart";
1355
+ EntityDecoderState2[EntityDecoderState2["NumericStart"] = 1] = "NumericStart";
1356
+ EntityDecoderState2[EntityDecoderState2["NumericDecimal"] = 2] = "NumericDecimal";
1357
+ EntityDecoderState2[EntityDecoderState2["NumericHex"] = 3] = "NumericHex";
1358
+ EntityDecoderState2[EntityDecoderState2["NamedEntity"] = 4] = "NamedEntity";
1391
1359
  })(EntityDecoderState || (EntityDecoderState = {}));
1392
1360
  var DecodingMode;
1393
- (function(DecodingMode3) {
1394
- DecodingMode3[DecodingMode3["Legacy"] = 0] = "Legacy";
1395
- DecodingMode3[DecodingMode3["Strict"] = 1] = "Strict";
1396
- DecodingMode3[DecodingMode3["Attribute"] = 2] = "Attribute";
1361
+ (function(DecodingMode2) {
1362
+ DecodingMode2[DecodingMode2["Legacy"] = 0] = "Legacy";
1363
+ DecodingMode2[DecodingMode2["Strict"] = 1] = "Strict";
1364
+ DecodingMode2[DecodingMode2["Attribute"] = 2] = "Attribute";
1397
1365
  })(DecodingMode || (DecodingMode = {}));
1398
1366
  var EntityDecoder = class {
1367
+ decodeTree;
1368
+ emitCodePoint;
1369
+ errors;
1399
1370
  constructor(decodeTree, emitCodePoint, errors) {
1400
1371
  this.decodeTree = decodeTree;
1401
1372
  this.emitCodePoint = emitCodePoint;
1402
1373
  this.errors = errors;
1403
- this.state = EntityDecoderState.EntityStart;
1404
- this.consumed = 1;
1405
- this.result = 0;
1406
- this.treeIndex = 0;
1407
- this.excess = 1;
1408
- this.decodeMode = DecodingMode.Strict;
1409
- this.runConsumed = 0;
1410
1374
  }
1411
- /** Resets the instance to make it reusable. */
1375
+ /** The current state of the decoder. */
1376
+ state = EntityDecoderState.EntityStart;
1377
+ /** Characters that were consumed while parsing an entity. */
1378
+ consumed = 1;
1379
+ /**
1380
+ * The result of the entity.
1381
+ *
1382
+ * Either the result index of a numeric entity, or the codepoint of a
1383
+ * numeric entity.
1384
+ */
1385
+ result = 0;
1386
+ /** The current index in the decode tree. */
1387
+ treeIndex = 0;
1388
+ /** The number of characters that were consumed in excess. */
1389
+ excess = 1;
1390
+ /** The mode in which the decoder is operating. */
1391
+ decodeMode = DecodingMode.Strict;
1392
+ /** The number of characters that have been consumed in the current run. */
1393
+ runConsumed = 0;
1394
+ /**
1395
+ * Resets the instance to make it reusable.
1396
+ * @param decodeMode Entity decoding mode to use.
1397
+ */
1412
1398
  startEntity(decodeMode) {
1413
1399
  this.decodeMode = decodeMode;
1414
1400
  this.state = EntityDecoderState.EntityStart;
@@ -1424,7 +1410,6 @@ var EntityDecoder = class {
1424
1410
  *
1425
1411
  * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the
1426
1412
  * entity is incomplete, and resume when the next string is written.
1427
- *
1428
1413
  * @param input The string containing the entity (or a continuation of the entity).
1429
1414
  * @param offset The offset at which the entity begins. Should be 0 if this is not the first call.
1430
1415
  * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
@@ -1458,7 +1443,6 @@ var EntityDecoder = class {
1458
1443
  * Switches between the numeric decimal and hexadecimal states.
1459
1444
  *
1460
1445
  * Equivalent to the `Numeric character reference state` in the HTML spec.
1461
- *
1462
1446
  * @param input The string containing the entity (or a continuation of the entity).
1463
1447
  * @param offset The current offset.
1464
1448
  * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
@@ -1479,7 +1463,6 @@ var EntityDecoder = class {
1479
1463
  * Parses a hexadecimal numeric entity.
1480
1464
  *
1481
1465
  * Equivalent to the `Hexademical character reference state` in the HTML spec.
1482
- *
1483
1466
  * @param input The string containing the entity (or a continuation of the entity).
1484
1467
  * @param offset The current offset.
1485
1468
  * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
@@ -1502,7 +1485,6 @@ var EntityDecoder = class {
1502
1485
  * Parses a decimal numeric entity.
1503
1486
  *
1504
1487
  * Equivalent to the `Decimal character reference state` in the HTML spec.
1505
- *
1506
1488
  * @param input The string containing the entity (or a continuation of the entity).
1507
1489
  * @param offset The current offset.
1508
1490
  * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
@@ -1525,7 +1507,6 @@ var EntityDecoder = class {
1525
1507
  *
1526
1508
  * Implements the logic from the `Hexademical character reference start
1527
1509
  * state` and `Numeric character reference end state` in the HTML spec.
1528
- *
1529
1510
  * @param lastCp The last code point of the entity. Used to see if the
1530
1511
  * entity was terminated with a semicolon.
1531
1512
  * @param expectedLength The minimum number of characters that should be
@@ -1534,9 +1515,8 @@ var EntityDecoder = class {
1534
1515
  * @returns The number of characters that were consumed.
1535
1516
  */
1536
1517
  emitNumericEntity(lastCp, expectedLength) {
1537
- var _a3;
1538
1518
  if (this.consumed <= expectedLength) {
1539
- (_a3 = this.errors) === null || _a3 === void 0 ? void 0 : _a3.absenceOfDigitsInNumericCharacterReference(this.consumed);
1519
+ this.errors?.absenceOfDigitsInNumericCharacterReference(this.consumed);
1540
1520
  return 0;
1541
1521
  }
1542
1522
  if (lastCp === CharCodes.SEMI) {
@@ -1557,7 +1537,6 @@ var EntityDecoder = class {
1557
1537
  * Parses a named entity.
1558
1538
  *
1559
1539
  * Equivalent to the `Named character reference state` in the HTML spec.
1560
- *
1561
1540
  * @param input The string containing the entity (or a continuation of the entity).
1562
1541
  * @param offset The current offset.
1563
1542
  * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
@@ -1630,24 +1609,20 @@ var EntityDecoder = class {
1630
1609
  }
1631
1610
  /**
1632
1611
  * Emit a named entity that was not terminated with a semicolon.
1633
- *
1634
1612
  * @returns The number of characters consumed.
1635
1613
  */
1636
1614
  emitNotTerminatedNamedEntity() {
1637
- var _a3;
1638
1615
  const { result, decodeTree } = this;
1639
1616
  const valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14;
1640
1617
  this.emitNamedEntityData(result, valueLength, this.consumed);
1641
- (_a3 = this.errors) === null || _a3 === void 0 ? void 0 : _a3.missingSemicolonAfterCharacterReference();
1618
+ this.errors?.missingSemicolonAfterCharacterReference();
1642
1619
  return this.consumed;
1643
1620
  }
1644
1621
  /**
1645
1622
  * Emit a named entity.
1646
- *
1647
1623
  * @param result The index of the entity in the decode tree.
1648
1624
  * @param valueLength The number of bytes in the entity.
1649
1625
  * @param consumed The number of characters consumed.
1650
- *
1651
1626
  * @returns The number of characters consumed.
1652
1627
  */
1653
1628
  emitNamedEntityData(result, valueLength, consumed) {
@@ -1662,11 +1637,9 @@ var EntityDecoder = class {
1662
1637
  * Signal to the parser that the end of the input was reached.
1663
1638
  *
1664
1639
  * Remaining data will be emitted and relevant errors will be produced.
1665
- *
1666
1640
  * @returns The number of characters consumed.
1667
1641
  */
1668
1642
  end() {
1669
- var _a3;
1670
1643
  switch (this.state) {
1671
1644
  case EntityDecoderState.NamedEntity: {
1672
1645
  return this.result !== 0 && (this.decodeMode !== DecodingMode.Attribute || this.result === this.treeIndex) ? this.emitNotTerminatedNamedEntity() : 0;
@@ -1679,7 +1652,7 @@ var EntityDecoder = class {
1679
1652
  return this.emitNumericEntity(0, 3);
1680
1653
  }
1681
1654
  case EntityDecoderState.NumericStart: {
1682
- (_a3 = this.errors) === null || _a3 === void 0 ? void 0 : _a3.absenceOfDigitsInNumericCharacterReference(this.consumed);
1655
+ this.errors?.absenceOfDigitsInNumericCharacterReference(this.consumed);
1683
1656
  return 0;
1684
1657
  }
1685
1658
  case EntityDecoderState.EntityStart: {
@@ -1717,36 +1690,36 @@ function determineBranch(decodeTree, current, nodeIndex, char) {
1717
1690
  return -1;
1718
1691
  }
1719
1692
 
1720
- // node_modules/.pnpm/htmlparser2@10.1.0/node_modules/htmlparser2/dist/esm/Tokenizer.js
1693
+ // node_modules/.pnpm/htmlparser2@12.0.0/node_modules/htmlparser2/dist/Tokenizer.js
1721
1694
  var CharCodes2;
1722
- (function(CharCodes4) {
1723
- CharCodes4[CharCodes4["Tab"] = 9] = "Tab";
1724
- CharCodes4[CharCodes4["NewLine"] = 10] = "NewLine";
1725
- CharCodes4[CharCodes4["FormFeed"] = 12] = "FormFeed";
1726
- CharCodes4[CharCodes4["CarriageReturn"] = 13] = "CarriageReturn";
1727
- CharCodes4[CharCodes4["Space"] = 32] = "Space";
1728
- CharCodes4[CharCodes4["ExclamationMark"] = 33] = "ExclamationMark";
1729
- CharCodes4[CharCodes4["Number"] = 35] = "Number";
1730
- CharCodes4[CharCodes4["Amp"] = 38] = "Amp";
1731
- CharCodes4[CharCodes4["SingleQuote"] = 39] = "SingleQuote";
1732
- CharCodes4[CharCodes4["DoubleQuote"] = 34] = "DoubleQuote";
1733
- CharCodes4[CharCodes4["Dash"] = 45] = "Dash";
1734
- CharCodes4[CharCodes4["Slash"] = 47] = "Slash";
1735
- CharCodes4[CharCodes4["Zero"] = 48] = "Zero";
1736
- CharCodes4[CharCodes4["Nine"] = 57] = "Nine";
1737
- CharCodes4[CharCodes4["Semi"] = 59] = "Semi";
1738
- CharCodes4[CharCodes4["Lt"] = 60] = "Lt";
1739
- CharCodes4[CharCodes4["Eq"] = 61] = "Eq";
1740
- CharCodes4[CharCodes4["Gt"] = 62] = "Gt";
1741
- CharCodes4[CharCodes4["Questionmark"] = 63] = "Questionmark";
1742
- CharCodes4[CharCodes4["UpperA"] = 65] = "UpperA";
1743
- CharCodes4[CharCodes4["LowerA"] = 97] = "LowerA";
1744
- CharCodes4[CharCodes4["UpperF"] = 70] = "UpperF";
1745
- CharCodes4[CharCodes4["LowerF"] = 102] = "LowerF";
1746
- CharCodes4[CharCodes4["UpperZ"] = 90] = "UpperZ";
1747
- CharCodes4[CharCodes4["LowerZ"] = 122] = "LowerZ";
1748
- CharCodes4[CharCodes4["LowerX"] = 120] = "LowerX";
1749
- CharCodes4[CharCodes4["OpeningSquareBracket"] = 91] = "OpeningSquareBracket";
1695
+ (function(CharCodes3) {
1696
+ CharCodes3[CharCodes3["Tab"] = 9] = "Tab";
1697
+ CharCodes3[CharCodes3["NewLine"] = 10] = "NewLine";
1698
+ CharCodes3[CharCodes3["FormFeed"] = 12] = "FormFeed";
1699
+ CharCodes3[CharCodes3["CarriageReturn"] = 13] = "CarriageReturn";
1700
+ CharCodes3[CharCodes3["Space"] = 32] = "Space";
1701
+ CharCodes3[CharCodes3["ExclamationMark"] = 33] = "ExclamationMark";
1702
+ CharCodes3[CharCodes3["Number"] = 35] = "Number";
1703
+ CharCodes3[CharCodes3["Amp"] = 38] = "Amp";
1704
+ CharCodes3[CharCodes3["SingleQuote"] = 39] = "SingleQuote";
1705
+ CharCodes3[CharCodes3["DoubleQuote"] = 34] = "DoubleQuote";
1706
+ CharCodes3[CharCodes3["Dash"] = 45] = "Dash";
1707
+ CharCodes3[CharCodes3["Slash"] = 47] = "Slash";
1708
+ CharCodes3[CharCodes3["Zero"] = 48] = "Zero";
1709
+ CharCodes3[CharCodes3["Nine"] = 57] = "Nine";
1710
+ CharCodes3[CharCodes3["Semi"] = 59] = "Semi";
1711
+ CharCodes3[CharCodes3["Lt"] = 60] = "Lt";
1712
+ CharCodes3[CharCodes3["Eq"] = 61] = "Eq";
1713
+ CharCodes3[CharCodes3["Gt"] = 62] = "Gt";
1714
+ CharCodes3[CharCodes3["Questionmark"] = 63] = "Questionmark";
1715
+ CharCodes3[CharCodes3["UpperA"] = 65] = "UpperA";
1716
+ CharCodes3[CharCodes3["LowerA"] = 97] = "LowerA";
1717
+ CharCodes3[CharCodes3["UpperF"] = 70] = "UpperF";
1718
+ CharCodes3[CharCodes3["LowerF"] = 102] = "LowerF";
1719
+ CharCodes3[CharCodes3["UpperZ"] = 90] = "UpperZ";
1720
+ CharCodes3[CharCodes3["LowerZ"] = 122] = "LowerZ";
1721
+ CharCodes3[CharCodes3["LowerX"] = 120] = "LowerX";
1722
+ CharCodes3[CharCodes3["OpeningSquareBracket"] = 91] = "OpeningSquareBracket";
1750
1723
  })(CharCodes2 || (CharCodes2 = {}));
1751
1724
  var State;
1752
1725
  (function(State2) {
@@ -1769,12 +1742,12 @@ var State;
1769
1742
  State2[State2["InProcessingInstruction"] = 17] = "InProcessingInstruction";
1770
1743
  State2[State2["BeforeComment"] = 18] = "BeforeComment";
1771
1744
  State2[State2["CDATASequence"] = 19] = "CDATASequence";
1772
- State2[State2["InSpecialComment"] = 20] = "InSpecialComment";
1773
- State2[State2["InCommentLike"] = 21] = "InCommentLike";
1774
- State2[State2["BeforeSpecialS"] = 22] = "BeforeSpecialS";
1775
- State2[State2["BeforeSpecialT"] = 23] = "BeforeSpecialT";
1776
- State2[State2["SpecialStartSequence"] = 24] = "SpecialStartSequence";
1777
- State2[State2["InSpecialTag"] = 25] = "InSpecialTag";
1745
+ State2[State2["DeclarationSequence"] = 20] = "DeclarationSequence";
1746
+ State2[State2["InSpecialComment"] = 21] = "InSpecialComment";
1747
+ State2[State2["InCommentLike"] = 22] = "InCommentLike";
1748
+ State2[State2["SpecialStartSequence"] = 23] = "SpecialStartSequence";
1749
+ State2[State2["InSpecialTag"] = 24] = "InSpecialTag";
1750
+ State2[State2["InPlainText"] = 25] = "InPlainText";
1778
1751
  State2[State2["InEntity"] = 26] = "InEntity";
1779
1752
  })(State || (State = {}));
1780
1753
  function isWhitespace(c) {
@@ -1794,12 +1767,56 @@ var QuoteType;
1794
1767
  QuoteType2[QuoteType2["Double"] = 3] = "Double";
1795
1768
  })(QuoteType || (QuoteType = {}));
1796
1769
  var Sequences = {
1770
+ Empty: new Uint8Array(0),
1797
1771
  Cdata: new Uint8Array([67, 68, 65, 84, 65, 91]),
1798
1772
  // CDATA[
1799
1773
  CdataEnd: new Uint8Array([93, 93, 62]),
1800
1774
  // ]]>
1801
- CommentEnd: new Uint8Array([45, 45, 62]),
1802
- // `-->`
1775
+ CommentEnd: new Uint8Array([45, 45, 33, 62]),
1776
+ // `--!>`
1777
+ Doctype: new Uint8Array([100, 111, 99, 116, 121, 112, 101]),
1778
+ // `doctype`
1779
+ IframeEnd: new Uint8Array([60, 47, 105, 102, 114, 97, 109, 101]),
1780
+ // `</iframe`
1781
+ NoembedEnd: new Uint8Array([
1782
+ 60,
1783
+ 47,
1784
+ 110,
1785
+ 111,
1786
+ 101,
1787
+ 109,
1788
+ 98,
1789
+ 101,
1790
+ 100
1791
+ ]),
1792
+ // `</noembed`
1793
+ NoframesEnd: new Uint8Array([
1794
+ 60,
1795
+ 47,
1796
+ 110,
1797
+ 111,
1798
+ 102,
1799
+ 114,
1800
+ 97,
1801
+ 109,
1802
+ 101,
1803
+ 115
1804
+ ]),
1805
+ // `</noframes`
1806
+ Plaintext: new Uint8Array([
1807
+ 60,
1808
+ 47,
1809
+ 112,
1810
+ 108,
1811
+ 97,
1812
+ 105,
1813
+ 110,
1814
+ 116,
1815
+ 101,
1816
+ 120,
1817
+ 116
1818
+ ]),
1819
+ // `</plaintext`
1803
1820
  ScriptEnd: new Uint8Array([60, 47, 115, 99, 114, 105, 112, 116]),
1804
1821
  // `</script`
1805
1822
  StyleEnd: new Uint8Array([60, 47, 115, 116, 121, 108, 101]),
@@ -1822,22 +1839,43 @@ var Sequences = {
1822
1839
  XmpEnd: new Uint8Array([60, 47, 120, 109, 112])
1823
1840
  // `</xmp`
1824
1841
  };
1842
+ var specialStartSequences = /* @__PURE__ */ new Map([
1843
+ [Sequences.IframeEnd[2], Sequences.IframeEnd],
1844
+ [Sequences.NoembedEnd[2], Sequences.NoembedEnd],
1845
+ [Sequences.Plaintext[2], Sequences.Plaintext],
1846
+ [Sequences.ScriptEnd[2], Sequences.ScriptEnd],
1847
+ [Sequences.TitleEnd[2], Sequences.TitleEnd],
1848
+ [Sequences.XmpEnd[2], Sequences.XmpEnd]
1849
+ ]);
1825
1850
  var Tokenizer = class {
1826
- constructor({ xmlMode = false, decodeEntities = true }, cbs) {
1851
+ cbs;
1852
+ /** The current state the tokenizer is in. */
1853
+ state = State.Text;
1854
+ /** The read buffer. */
1855
+ buffer = "";
1856
+ /** The beginning of the section that is currently being read. */
1857
+ sectionStart = 0;
1858
+ /** The index within the buffer that we are currently looking at. */
1859
+ index = 0;
1860
+ /** The start of the last entity. */
1861
+ entityStart = 0;
1862
+ /** Some behavior, eg. when decoding entities, is done while we are in another state. This keeps track of the other state type. */
1863
+ baseState = State.Text;
1864
+ /** For special parsing behavior inside of script and style tags. */
1865
+ isSpecial = false;
1866
+ /** Indicates whether the tokenizer has been paused. */
1867
+ running = true;
1868
+ /** The offset of the current buffer. */
1869
+ offset = 0;
1870
+ xmlMode;
1871
+ decodeEntities;
1872
+ recognizeSelfClosing;
1873
+ entityDecoder;
1874
+ constructor({ xmlMode = false, decodeEntities = true, recognizeSelfClosing = xmlMode }, cbs) {
1827
1875
  this.cbs = cbs;
1828
- this.state = State.Text;
1829
- this.buffer = "";
1830
- this.sectionStart = 0;
1831
- this.index = 0;
1832
- this.entityStart = 0;
1833
- this.baseState = State.Text;
1834
- this.isSpecial = false;
1835
- this.running = true;
1836
- this.offset = 0;
1837
- this.currentSequence = void 0;
1838
- this.sequenceIndex = 0;
1839
1876
  this.xmlMode = xmlMode;
1840
1877
  this.decodeEntities = decodeEntities;
1878
+ this.recognizeSelfClosing = recognizeSelfClosing;
1841
1879
  this.entityDecoder = new EntityDecoder(xmlMode ? xmlDecodeTree : htmlDecodeTree, (cp, consumed) => this.emitCodePoint(cp, consumed));
1842
1880
  }
1843
1881
  reset() {
@@ -1846,7 +1884,9 @@ var Tokenizer = class {
1846
1884
  this.sectionStart = 0;
1847
1885
  this.index = 0;
1848
1886
  this.baseState = State.Text;
1849
- this.currentSequence = void 0;
1887
+ this.isSpecial = false;
1888
+ this.currentSequence = Sequences.Empty;
1889
+ this.sequenceIndex = 0;
1850
1890
  this.running = true;
1851
1891
  this.offset = 0;
1852
1892
  }
@@ -1879,56 +1919,63 @@ var Tokenizer = class {
1879
1919
  this.startEntity();
1880
1920
  }
1881
1921
  }
1882
- stateSpecialStartSequence(c) {
1883
- const isEnd = this.sequenceIndex === this.currentSequence.length;
1884
- const isMatch = isEnd ? (
1885
- // If we are at the end of the sequence, make sure the tag name has ended
1886
- isEndOfTagSection(c)
1887
- ) : (
1888
- // Otherwise, do a case-insensitive comparison
1889
- (c | 32) === this.currentSequence[this.sequenceIndex]
1890
- );
1891
- if (!isMatch) {
1892
- this.isSpecial = false;
1893
- } else if (!isEnd) {
1894
- this.sequenceIndex++;
1895
- return;
1922
+ currentSequence = Sequences.Empty;
1923
+ sequenceIndex = 0;
1924
+ enterTagBody() {
1925
+ if (this.currentSequence === Sequences.Plaintext) {
1926
+ this.currentSequence = Sequences.Empty;
1927
+ this.state = State.InPlainText;
1928
+ } else if (this.isSpecial) {
1929
+ this.state = State.InSpecialTag;
1930
+ this.sequenceIndex = 0;
1931
+ } else {
1932
+ this.state = State.Text;
1896
1933
  }
1897
- this.sequenceIndex = 0;
1898
- this.state = State.InTagName;
1899
- this.stateInTagName(c);
1900
1934
  }
1901
- /** Look for an end tag. For <title> tags, also decode entities. */
1902
- stateInSpecialTag(c) {
1903
- if (this.sequenceIndex === this.currentSequence.length) {
1904
- if (c === CharCodes2.Gt || isWhitespace(c)) {
1905
- const endOfText = this.index - this.currentSequence.length;
1906
- if (this.sectionStart < endOfText) {
1907
- const actualIndex = this.index;
1908
- this.index = endOfText;
1909
- this.cbs.ontext(this.sectionStart, endOfText);
1910
- this.index = actualIndex;
1911
- }
1912
- this.isSpecial = false;
1913
- this.sectionStart = endOfText + 2;
1914
- this.stateInClosingTagName(c);
1935
+ /**
1936
+ * Match the opening tag name against an HTML text-only tag sequence.
1937
+ *
1938
+ * Some tags share an initial prefix (`script`/`style`, `title`/`textarea`,
1939
+ * `noembed`/`noframes`), so we may switch to an alternate sequence at the
1940
+ * first distinguishing byte. On a successful full match we fall back to
1941
+ * the normal tag-name state; a later `>` will enter raw-text, RCDATA, or
1942
+ * plaintext mode based on `currentSequence` / `isSpecial`.
1943
+ * @param c Current character code point.
1944
+ */
1945
+ stateSpecialStartSequence(c) {
1946
+ const lower = c | 32;
1947
+ if (this.sequenceIndex < this.currentSequence.length) {
1948
+ if (lower === this.currentSequence[this.sequenceIndex]) {
1949
+ this.sequenceIndex++;
1915
1950
  return;
1916
1951
  }
1917
- this.sequenceIndex = 0;
1918
- }
1919
- if ((c | 32) === this.currentSequence[this.sequenceIndex]) {
1920
- this.sequenceIndex += 1;
1921
- } else if (this.sequenceIndex === 0) {
1922
- if (this.currentSequence === Sequences.TitleEnd) {
1923
- if (this.decodeEntities && c === CharCodes2.Amp) {
1924
- this.startEntity();
1952
+ if (this.sequenceIndex === 3) {
1953
+ if (this.currentSequence === Sequences.ScriptEnd && lower === Sequences.StyleEnd[3]) {
1954
+ this.currentSequence = Sequences.StyleEnd;
1955
+ this.sequenceIndex = 4;
1956
+ return;
1925
1957
  }
1926
- } else if (this.fastForwardTo(CharCodes2.Lt)) {
1927
- this.sequenceIndex = 1;
1958
+ if (this.currentSequence === Sequences.TitleEnd && lower === Sequences.TextareaEnd[3]) {
1959
+ this.currentSequence = Sequences.TextareaEnd;
1960
+ this.sequenceIndex = 4;
1961
+ return;
1962
+ }
1963
+ } else if (this.sequenceIndex === 4 && this.currentSequence === Sequences.NoembedEnd && lower === Sequences.NoframesEnd[4]) {
1964
+ this.currentSequence = Sequences.NoframesEnd;
1965
+ this.sequenceIndex = 5;
1966
+ return;
1928
1967
  }
1929
- } else {
1930
- this.sequenceIndex = Number(c === CharCodes2.Lt);
1968
+ } else if (isEndOfTagSection(c)) {
1969
+ this.sequenceIndex = 0;
1970
+ this.state = State.InTagName;
1971
+ this.stateInTagName(c);
1972
+ return;
1931
1973
  }
1974
+ this.isSpecial = false;
1975
+ this.currentSequence = Sequences.Empty;
1976
+ this.sequenceIndex = 0;
1977
+ this.state = State.InTagName;
1978
+ this.stateInTagName(c);
1932
1979
  }
1933
1980
  stateCDATASequence(c) {
1934
1981
  if (c === Sequences.Cdata[this.sequenceIndex]) {
@@ -1940,14 +1987,19 @@ var Tokenizer = class {
1940
1987
  }
1941
1988
  } else {
1942
1989
  this.sequenceIndex = 0;
1943
- this.state = State.InDeclaration;
1944
- this.stateInDeclaration(c);
1990
+ if (this.xmlMode) {
1991
+ this.state = State.InDeclaration;
1992
+ this.stateInDeclaration(c);
1993
+ } else {
1994
+ this.state = State.InSpecialComment;
1995
+ this.stateInSpecialComment(c);
1996
+ }
1945
1997
  }
1946
1998
  }
1947
1999
  /**
1948
2000
  * When we wait for one specific character, we can speed things up
1949
2001
  * by skipping through the buffer until we find it.
1950
- *
2002
+ * @param c Current character code point.
1951
2003
  * @returns Whether the character was found.
1952
2004
  */
1953
2005
  fastForwardTo(c) {
@@ -1959,6 +2011,16 @@ var Tokenizer = class {
1959
2011
  this.index = this.buffer.length + this.offset - 1;
1960
2012
  return false;
1961
2013
  }
2014
+ /**
2015
+ * Emit a comment token and return to the text state.
2016
+ * @param offset Number of characters in the end sequence that have already been matched.
2017
+ */
2018
+ emitComment(offset) {
2019
+ this.cbs.oncomment(this.sectionStart, this.index, offset);
2020
+ this.sequenceIndex = 0;
2021
+ this.sectionStart = this.index + 1;
2022
+ this.state = State.Text;
2023
+ }
1962
2024
  /**
1963
2025
  * Comments and CDATA end with `-->` and `]]>`.
1964
2026
  *
@@ -1966,14 +2028,26 @@ var Tokenizer = class {
1966
2028
  * - Their end sequences have a distinct character they start with.
1967
2029
  * - That character is then repeated, so we have to check multiple repeats.
1968
2030
  * - All characters but the start character of the sequence can be skipped.
2031
+ * @param c Current character code point.
1969
2032
  */
1970
2033
  stateInCommentLike(c) {
1971
- if (c === this.currentSequence[this.sequenceIndex]) {
2034
+ if (!this.xmlMode && this.currentSequence === Sequences.CommentEnd && this.sequenceIndex <= 1 && /*
2035
+ * We're still at the very start of the comment: the only
2036
+ * characters consumed since `<!--` are the dashes that
2037
+ * advanced sequenceIndex (0 for `<!-->`, 1 for `<!--->`).
2038
+ */
2039
+ this.index === this.sectionStart + this.sequenceIndex && c === CharCodes2.Gt) {
2040
+ this.emitComment(this.sequenceIndex);
2041
+ } else if (this.currentSequence === Sequences.CommentEnd && this.sequenceIndex === 2 && c === CharCodes2.Gt) {
2042
+ this.emitComment(2);
2043
+ } else if (this.currentSequence === Sequences.CommentEnd && this.sequenceIndex === this.currentSequence.length - 1 && c !== CharCodes2.Gt) {
2044
+ this.sequenceIndex = Number(c === CharCodes2.Dash);
2045
+ } else if (c === this.currentSequence[this.sequenceIndex]) {
1972
2046
  if (++this.sequenceIndex === this.currentSequence.length) {
1973
2047
  if (this.currentSequence === Sequences.CdataEnd) {
1974
2048
  this.cbs.oncdata(this.sectionStart, this.index, 2);
1975
2049
  } else {
1976
- this.cbs.oncomment(this.sectionStart, this.index, 2);
2050
+ this.cbs.oncomment(this.sectionStart, this.index, 3);
1977
2051
  }
1978
2052
  this.sequenceIndex = 0;
1979
2053
  this.sectionStart = this.index + 1;
@@ -1992,34 +2066,72 @@ var Tokenizer = class {
1992
2066
  *
1993
2067
  * XML allows a lot more characters here (@see https://www.w3.org/TR/REC-xml/#NT-NameStartChar).
1994
2068
  * We allow anything that wouldn't end the tag.
2069
+ * @param c Current character code point.
1995
2070
  */
1996
2071
  isTagStartChar(c) {
1997
2072
  return this.xmlMode ? !isEndOfTagSection(c) : isASCIIAlpha(c);
1998
2073
  }
1999
- startSpecial(sequence, offset) {
2000
- this.isSpecial = true;
2001
- this.currentSequence = sequence;
2002
- this.sequenceIndex = offset;
2003
- this.state = State.SpecialStartSequence;
2074
+ /**
2075
+ * Scan raw-text / RCDATA content for the matching end tag.
2076
+ *
2077
+ * For RCDATA tags (`<title>`, `<textarea>`) entities are decoded inline.
2078
+ * For raw-text tags (`<script>`, `<style>`, etc.) we fast-forward to `<`.
2079
+ * @param c Current character code point.
2080
+ */
2081
+ stateInSpecialTag(c) {
2082
+ if (this.sequenceIndex === this.currentSequence.length) {
2083
+ if (isEndOfTagSection(c)) {
2084
+ const endOfText = this.index - this.currentSequence.length;
2085
+ if (this.sectionStart < endOfText) {
2086
+ const actualIndex = this.index;
2087
+ this.index = endOfText;
2088
+ this.cbs.ontext(this.sectionStart, endOfText);
2089
+ this.index = actualIndex;
2090
+ }
2091
+ this.isSpecial = false;
2092
+ this.sectionStart = endOfText + 2;
2093
+ this.stateInClosingTagName(c);
2094
+ return;
2095
+ }
2096
+ this.sequenceIndex = 0;
2097
+ }
2098
+ if ((c | 32) === this.currentSequence[this.sequenceIndex]) {
2099
+ this.sequenceIndex += 1;
2100
+ } else if (this.sequenceIndex === 0) {
2101
+ if (this.currentSequence === Sequences.TitleEnd || this.currentSequence === Sequences.TextareaEnd) {
2102
+ if (this.decodeEntities && c === CharCodes2.Amp) {
2103
+ this.startEntity();
2104
+ }
2105
+ } else if (this.fastForwardTo(CharCodes2.Lt)) {
2106
+ this.sequenceIndex = 1;
2107
+ }
2108
+ } else {
2109
+ this.sequenceIndex = Number(c === CharCodes2.Lt);
2110
+ }
2004
2111
  }
2005
2112
  stateBeforeTagName(c) {
2006
2113
  if (c === CharCodes2.ExclamationMark) {
2007
2114
  this.state = State.BeforeDeclaration;
2008
2115
  this.sectionStart = this.index + 1;
2009
2116
  } else if (c === CharCodes2.Questionmark) {
2010
- this.state = State.InProcessingInstruction;
2011
- this.sectionStart = this.index + 1;
2117
+ if (this.xmlMode) {
2118
+ this.state = State.InProcessingInstruction;
2119
+ this.sequenceIndex = 0;
2120
+ this.sectionStart = this.index + 1;
2121
+ } else {
2122
+ this.state = State.InSpecialComment;
2123
+ this.sectionStart = this.index;
2124
+ }
2012
2125
  } else if (this.isTagStartChar(c)) {
2013
- const lower = c | 32;
2014
2126
  this.sectionStart = this.index;
2015
- if (this.xmlMode) {
2127
+ const special = this.xmlMode || this.cbs.isInForeignContext?.() ? void 0 : specialStartSequences.get(c | 32);
2128
+ if (special === void 0) {
2016
2129
  this.state = State.InTagName;
2017
- } else if (lower === Sequences.ScriptEnd[2]) {
2018
- this.state = State.BeforeSpecialS;
2019
- } else if (lower === Sequences.TitleEnd[2] || lower === Sequences.XmpEnd[2]) {
2020
- this.state = State.BeforeSpecialT;
2021
2130
  } else {
2022
- this.state = State.InTagName;
2131
+ this.isSpecial = true;
2132
+ this.currentSequence = special;
2133
+ this.sequenceIndex = 3;
2134
+ this.state = State.SpecialStartSequence;
2023
2135
  }
2024
2136
  } else if (c === CharCodes2.Slash) {
2025
2137
  this.state = State.BeforeClosingTagName;
@@ -2038,15 +2150,23 @@ var Tokenizer = class {
2038
2150
  }
2039
2151
  stateBeforeClosingTagName(c) {
2040
2152
  if (isWhitespace(c)) {
2153
+ if (this.xmlMode) {
2154
+ } else {
2155
+ this.state = State.InSpecialComment;
2156
+ this.sectionStart = this.index;
2157
+ }
2041
2158
  } else if (c === CharCodes2.Gt) {
2042
2159
  this.state = State.Text;
2160
+ if (!this.xmlMode) {
2161
+ this.sectionStart = this.index + 1;
2162
+ }
2043
2163
  } else {
2044
2164
  this.state = this.isTagStartChar(c) ? State.InClosingTagName : State.InSpecialComment;
2045
2165
  this.sectionStart = this.index;
2046
2166
  }
2047
2167
  }
2048
2168
  stateInClosingTagName(c) {
2049
- if (c === CharCodes2.Gt || isWhitespace(c)) {
2169
+ if (isEndOfTagSection(c)) {
2050
2170
  this.cbs.onclosetag(this.sectionStart, this.index);
2051
2171
  this.sectionStart = -1;
2052
2172
  this.state = State.AfterClosingTagName;
@@ -2062,12 +2182,7 @@ var Tokenizer = class {
2062
2182
  stateBeforeAttributeName(c) {
2063
2183
  if (c === CharCodes2.Gt) {
2064
2184
  this.cbs.onopentagend(this.index);
2065
- if (this.isSpecial) {
2066
- this.state = State.InSpecialTag;
2067
- this.sequenceIndex = 0;
2068
- } else {
2069
- this.state = State.Text;
2070
- }
2185
+ this.enterTagBody();
2071
2186
  this.sectionStart = this.index + 1;
2072
2187
  } else if (c === CharCodes2.Slash) {
2073
2188
  this.state = State.InSelfClosingTag;
@@ -2076,12 +2191,26 @@ var Tokenizer = class {
2076
2191
  this.sectionStart = this.index;
2077
2192
  }
2078
2193
  }
2194
+ /**
2195
+ * Handle `/` before `>` in an opening tag.
2196
+ *
2197
+ * In HTML mode, text-only tags ignore the self-closing flag and still enter
2198
+ * their raw-text/RCDATA/plaintext state unless self-closing tags are being
2199
+ * recognized. In XML mode, or for ordinary tags, the tokenizer returns to
2200
+ * regular text parsing after emitting the self-closing callback.
2201
+ * @param c Current character code point.
2202
+ */
2079
2203
  stateInSelfClosingTag(c) {
2080
2204
  if (c === CharCodes2.Gt) {
2081
2205
  this.cbs.onselfclosingtag(this.index);
2082
- this.state = State.Text;
2083
2206
  this.sectionStart = this.index + 1;
2207
+ if (!this.recognizeSelfClosing) {
2208
+ this.enterTagBody();
2209
+ return;
2210
+ }
2211
+ this.state = State.Text;
2084
2212
  this.isSpecial = false;
2213
+ this.currentSequence = Sequences.Empty;
2085
2214
  } else if (!isWhitespace(c)) {
2086
2215
  this.state = State.BeforeAttributeName;
2087
2216
  this.stateBeforeAttributeName(c);
@@ -2149,12 +2278,54 @@ var Tokenizer = class {
2149
2278
  this.startEntity();
2150
2279
  }
2151
2280
  }
2281
+ /**
2282
+ * Distinguish between CDATA, declarations, HTML comments, and HTML bogus
2283
+ * comments after `<!`.
2284
+ *
2285
+ * In HTML mode, only real comments and doctypes stay on declaration paths;
2286
+ * everything else becomes a bogus comment terminated by the next `>`.
2287
+ * @param c Current character code point.
2288
+ */
2152
2289
  stateBeforeDeclaration(c) {
2153
2290
  if (c === CharCodes2.OpeningSquareBracket) {
2154
2291
  this.state = State.CDATASequence;
2155
2292
  this.sequenceIndex = 0;
2156
- } else {
2293
+ } else if (this.xmlMode) {
2157
2294
  this.state = c === CharCodes2.Dash ? State.BeforeComment : State.InDeclaration;
2295
+ } else if ((c | 32) === Sequences.Doctype[0]) {
2296
+ this.state = State.DeclarationSequence;
2297
+ this.currentSequence = Sequences.Doctype;
2298
+ this.sequenceIndex = 1;
2299
+ } else if (c === CharCodes2.Gt) {
2300
+ this.cbs.oncomment(this.sectionStart, this.index, 0);
2301
+ this.state = State.Text;
2302
+ this.sectionStart = this.index + 1;
2303
+ } else if (c === CharCodes2.Dash) {
2304
+ this.state = State.BeforeComment;
2305
+ } else {
2306
+ this.state = State.InSpecialComment;
2307
+ }
2308
+ }
2309
+ /**
2310
+ * Continue matching `doctype` after `<!d`.
2311
+ *
2312
+ * A full `doctype` match stays on the declaration path; any other name falls
2313
+ * back to an HTML bogus comment, which matches browser behavior for
2314
+ * non-doctype `<!...>` constructs.
2315
+ * @param c Current character code point.
2316
+ */
2317
+ stateDeclarationSequence(c) {
2318
+ if (this.sequenceIndex === this.currentSequence.length) {
2319
+ this.state = State.InDeclaration;
2320
+ this.stateInDeclaration(c);
2321
+ } else if ((c | 32) === this.currentSequence[this.sequenceIndex]) {
2322
+ this.sequenceIndex += 1;
2323
+ } else if (c === CharCodes2.Gt) {
2324
+ this.cbs.oncomment(this.sectionStart, this.index, 0);
2325
+ this.state = State.Text;
2326
+ this.sectionStart = this.index + 1;
2327
+ } else {
2328
+ this.state = State.InSpecialComment;
2158
2329
  }
2159
2330
  }
2160
2331
  stateInDeclaration(c) {
@@ -2164,21 +2335,39 @@ var Tokenizer = class {
2164
2335
  this.sectionStart = this.index + 1;
2165
2336
  }
2166
2337
  }
2338
+ /**
2339
+ * XML processing instructions (`<?...?>`).
2340
+ *
2341
+ * In HTML mode `<?` is routed to `InSpecialComment` instead, so this
2342
+ * state is only reachable in XML mode.
2343
+ * @param c Current character code point.
2344
+ */
2167
2345
  stateInProcessingInstruction(c) {
2168
- if (c === CharCodes2.Gt || this.fastForwardTo(CharCodes2.Gt)) {
2169
- this.cbs.onprocessinginstruction(this.sectionStart, this.index);
2346
+ if (c === CharCodes2.Questionmark) {
2347
+ this.sequenceIndex = 1;
2348
+ } else if (c === CharCodes2.Gt && this.sequenceIndex === 1) {
2349
+ this.cbs.onprocessinginstruction(this.sectionStart, this.index - 1);
2350
+ this.sequenceIndex = 0;
2170
2351
  this.state = State.Text;
2171
2352
  this.sectionStart = this.index + 1;
2353
+ } else {
2354
+ this.sequenceIndex = Number(this.fastForwardTo(CharCodes2.Questionmark));
2172
2355
  }
2173
2356
  }
2174
2357
  stateBeforeComment(c) {
2175
2358
  if (c === CharCodes2.Dash) {
2176
2359
  this.state = State.InCommentLike;
2177
2360
  this.currentSequence = Sequences.CommentEnd;
2178
- this.sequenceIndex = 2;
2361
+ this.sequenceIndex = 0;
2179
2362
  this.sectionStart = this.index + 1;
2180
- } else {
2363
+ } else if (this.xmlMode) {
2181
2364
  this.state = State.InDeclaration;
2365
+ } else if (c === CharCodes2.Gt) {
2366
+ this.cbs.oncomment(this.sectionStart, this.index, 0);
2367
+ this.state = State.Text;
2368
+ this.sectionStart = this.index + 1;
2369
+ } else {
2370
+ this.state = State.InSpecialComment;
2182
2371
  }
2183
2372
  }
2184
2373
  stateInSpecialComment(c) {
@@ -2188,38 +2377,6 @@ var Tokenizer = class {
2188
2377
  this.sectionStart = this.index + 1;
2189
2378
  }
2190
2379
  }
2191
- stateBeforeSpecialS(c) {
2192
- const lower = c | 32;
2193
- if (lower === Sequences.ScriptEnd[3]) {
2194
- this.startSpecial(Sequences.ScriptEnd, 4);
2195
- } else if (lower === Sequences.StyleEnd[3]) {
2196
- this.startSpecial(Sequences.StyleEnd, 4);
2197
- } else {
2198
- this.state = State.InTagName;
2199
- this.stateInTagName(c);
2200
- }
2201
- }
2202
- stateBeforeSpecialT(c) {
2203
- const lower = c | 32;
2204
- switch (lower) {
2205
- case Sequences.TitleEnd[3]: {
2206
- this.startSpecial(Sequences.TitleEnd, 4);
2207
- break;
2208
- }
2209
- case Sequences.TextareaEnd[3]: {
2210
- this.startSpecial(Sequences.TextareaEnd, 4);
2211
- break;
2212
- }
2213
- case Sequences.XmpEnd[3]: {
2214
- this.startSpecial(Sequences.XmpEnd, 4);
2215
- break;
2216
- }
2217
- default: {
2218
- this.state = State.InTagName;
2219
- this.stateInTagName(c);
2220
- }
2221
- }
2222
- }
2223
2380
  startEntity() {
2224
2381
  this.baseState = this.state;
2225
2382
  this.state = State.InEntity;
@@ -2248,7 +2405,7 @@ var Tokenizer = class {
2248
2405
  */
2249
2406
  cleanup() {
2250
2407
  if (this.running && this.sectionStart !== this.index) {
2251
- if (this.state === State.Text || this.state === State.InSpecialTag && this.sequenceIndex === 0) {
2408
+ if (this.state === State.Text || this.state === State.InPlainText || this.state === State.InSpecialTag && this.sequenceIndex === 0) {
2252
2409
  this.cbs.ontext(this.sectionStart, this.index);
2253
2410
  this.sectionStart = this.index;
2254
2411
  } else if (this.state === State.InAttributeValueDq || this.state === State.InAttributeValueSq || this.state === State.InAttributeValueNq) {
@@ -2273,6 +2430,10 @@ var Tokenizer = class {
2273
2430
  this.stateText(c);
2274
2431
  break;
2275
2432
  }
2433
+ case State.InPlainText: {
2434
+ this.index = this.buffer.length + this.offset - 1;
2435
+ break;
2436
+ }
2276
2437
  case State.SpecialStartSequence: {
2277
2438
  this.stateSpecialStartSequence(c);
2278
2439
  break;
@@ -2285,6 +2446,10 @@ var Tokenizer = class {
2285
2446
  this.stateCDATASequence(c);
2286
2447
  break;
2287
2448
  }
2449
+ case State.DeclarationSequence: {
2450
+ this.stateDeclarationSequence(c);
2451
+ break;
2452
+ }
2288
2453
  case State.InAttributeValueDq: {
2289
2454
  this.stateInAttributeValueDoubleQuotes(c);
2290
2455
  break;
@@ -2337,14 +2502,6 @@ var Tokenizer = class {
2337
2502
  this.stateAfterClosingTagName(c);
2338
2503
  break;
2339
2504
  }
2340
- case State.BeforeSpecialS: {
2341
- this.stateBeforeSpecialS(c);
2342
- break;
2343
- }
2344
- case State.BeforeSpecialT: {
2345
- this.stateBeforeSpecialT(c);
2346
- break;
2347
- }
2348
2505
  case State.InAttributeValueNq: {
2349
2506
  this.stateInAttributeValueNoQuotes(c);
2350
2507
  break;
@@ -2386,43 +2543,110 @@ var Tokenizer = class {
2386
2543
  this.handleTrailingData();
2387
2544
  this.cbs.onend();
2388
2545
  }
2389
- /** Handle any trailing data. */
2390
- handleTrailingData() {
2391
- const endIndex = this.buffer.length + this.offset;
2392
- if (this.sectionStart >= endIndex) {
2393
- return;
2546
+ handleTrailingCommentLikeData(endIndex) {
2547
+ if (this.state !== State.InCommentLike) {
2548
+ return false;
2394
2549
  }
2395
- if (this.state === State.InCommentLike) {
2396
- if (this.currentSequence === Sequences.CdataEnd) {
2397
- this.cbs.oncdata(this.sectionStart, endIndex, 0);
2550
+ if (this.currentSequence === Sequences.CdataEnd) {
2551
+ if (this.xmlMode) {
2552
+ if (this.sectionStart < endIndex) {
2553
+ this.cbs.oncdata(this.sectionStart, endIndex, 0);
2554
+ }
2398
2555
  } else {
2399
- this.cbs.oncomment(this.sectionStart, endIndex, 0);
2556
+ const cdataStart = this.sectionStart - Sequences.Cdata.length - 1;
2557
+ this.cbs.oncomment(cdataStart, endIndex, 0);
2400
2558
  }
2401
- } else if (this.state === State.InTagName || this.state === State.BeforeAttributeName || this.state === State.BeforeAttributeValue || this.state === State.AfterAttributeName || this.state === State.InAttributeName || this.state === State.InAttributeValueSq || this.state === State.InAttributeValueDq || this.state === State.InAttributeValueNq || this.state === State.InClosingTagName) {
2402
2559
  } else {
2403
- this.cbs.ontext(this.sectionStart, endIndex);
2560
+ const offset = this.xmlMode ? 0 : Math.min(this.sequenceIndex, Sequences.CommentEnd.length - 1);
2561
+ this.cbs.oncomment(this.sectionStart, endIndex, offset);
2404
2562
  }
2563
+ return true;
2405
2564
  }
2406
- emitCodePoint(cp, consumed) {
2407
- if (this.baseState !== State.Text && this.baseState !== State.InSpecialTag) {
2408
- if (this.sectionStart < this.entityStart) {
2409
- this.cbs.onattribdata(this.sectionStart, this.entityStart);
2410
- }
2411
- this.sectionStart = this.entityStart + consumed;
2412
- this.index = this.sectionStart - 1;
2413
- this.cbs.onattribentity(cp);
2414
- } else {
2415
- if (this.sectionStart < this.entityStart) {
2416
- this.cbs.ontext(this.sectionStart, this.entityStart);
2565
+ handleTrailingMarkupDeclaration(endIndex) {
2566
+ if (this.xmlMode) {
2567
+ switch (this.state) {
2568
+ case State.InSpecialComment:
2569
+ case State.BeforeComment:
2570
+ case State.CDATASequence:
2571
+ case State.DeclarationSequence:
2572
+ case State.InDeclaration: {
2573
+ this.cbs.ontext(this.sectionStart, endIndex);
2574
+ return true;
2575
+ }
2576
+ default: {
2577
+ return false;
2578
+ }
2417
2579
  }
2418
- this.sectionStart = this.entityStart + consumed;
2419
- this.index = this.sectionStart - 1;
2420
- this.cbs.ontextentity(cp, this.sectionStart);
2421
2580
  }
2422
- }
2581
+ switch (this.state) {
2582
+ case State.BeforeDeclaration:
2583
+ case State.InSpecialComment:
2584
+ case State.BeforeComment:
2585
+ case State.CDATASequence: {
2586
+ this.cbs.oncomment(this.sectionStart, endIndex, 0);
2587
+ return true;
2588
+ }
2589
+ case State.DeclarationSequence: {
2590
+ if (this.sequenceIndex !== Sequences.Doctype.length) {
2591
+ this.cbs.oncomment(this.sectionStart, endIndex, 0);
2592
+ }
2593
+ return true;
2594
+ }
2595
+ case State.InDeclaration: {
2596
+ return true;
2597
+ }
2598
+ default: {
2599
+ return false;
2600
+ }
2601
+ }
2602
+ }
2603
+ /** Handle any trailing data. */
2604
+ handleTrailingData() {
2605
+ const endIndex = this.buffer.length + this.offset;
2606
+ if (this.handleTrailingCommentLikeData(endIndex) || this.handleTrailingMarkupDeclaration(endIndex)) {
2607
+ return;
2608
+ }
2609
+ if (this.sectionStart >= endIndex) {
2610
+ return;
2611
+ }
2612
+ switch (this.state) {
2613
+ case State.InTagName:
2614
+ case State.BeforeAttributeName:
2615
+ case State.BeforeAttributeValue:
2616
+ case State.AfterAttributeName:
2617
+ case State.InAttributeName:
2618
+ case State.InAttributeValueSq:
2619
+ case State.InAttributeValueDq:
2620
+ case State.InAttributeValueNq:
2621
+ case State.InClosingTagName: {
2622
+ break;
2623
+ }
2624
+ default: {
2625
+ this.cbs.ontext(this.sectionStart, endIndex);
2626
+ }
2627
+ }
2628
+ }
2629
+ emitCodePoint(cp, consumed) {
2630
+ if (this.baseState !== State.Text && this.baseState !== State.InSpecialTag) {
2631
+ if (this.sectionStart < this.entityStart) {
2632
+ this.cbs.onattribdata(this.sectionStart, this.entityStart);
2633
+ }
2634
+ this.sectionStart = this.entityStart + consumed;
2635
+ this.index = this.sectionStart - 1;
2636
+ this.cbs.onattribentity(cp);
2637
+ } else {
2638
+ if (this.sectionStart < this.entityStart) {
2639
+ this.cbs.ontext(this.sectionStart, this.entityStart);
2640
+ }
2641
+ this.sectionStart = this.entityStart + consumed;
2642
+ this.index = this.sectionStart - 1;
2643
+ this.cbs.ontextentity(cp, this.sectionStart);
2644
+ }
2645
+ }
2423
2646
  };
2424
2647
 
2425
- // node_modules/.pnpm/htmlparser2@10.1.0/node_modules/htmlparser2/dist/esm/Parser.js
2648
+ // node_modules/.pnpm/htmlparser2@12.0.0/node_modules/htmlparser2/dist/Parser.js
2649
+ var { fromCodePoint } = String;
2426
2650
  var formTags = /* @__PURE__ */ new Set([
2427
2651
  "input",
2428
2652
  "option",
@@ -2433,6 +2657,7 @@ var formTags = /* @__PURE__ */ new Set([
2433
2657
  "textarea"
2434
2658
  ]);
2435
2659
  var pTag = /* @__PURE__ */ new Set(["p"]);
2660
+ var headingTags = /* @__PURE__ */ new Set(["h1", "h2", "h3", "h4", "h5", "h6", "p"]);
2436
2661
  var tableSectionTags = /* @__PURE__ */ new Set(["thead", "tbody"]);
2437
2662
  var ddtTags = /* @__PURE__ */ new Set(["dd", "dt"]);
2438
2663
  var rtpTags = /* @__PURE__ */ new Set(["rt", "rp"]);
@@ -2441,14 +2666,15 @@ var openImpliesClose = /* @__PURE__ */ new Map([
2441
2666
  ["th", /* @__PURE__ */ new Set(["th"])],
2442
2667
  ["td", /* @__PURE__ */ new Set(["thead", "th", "td"])],
2443
2668
  ["body", /* @__PURE__ */ new Set(["head", "link", "script"])],
2669
+ ["a", /* @__PURE__ */ new Set(["a"])],
2444
2670
  ["li", /* @__PURE__ */ new Set(["li"])],
2445
2671
  ["p", pTag],
2446
- ["h1", pTag],
2447
- ["h2", pTag],
2448
- ["h3", pTag],
2449
- ["h4", pTag],
2450
- ["h5", pTag],
2451
- ["h6", pTag],
2672
+ ["h1", headingTags],
2673
+ ["h2", headingTags],
2674
+ ["h3", headingTags],
2675
+ ["h4", headingTags],
2676
+ ["h5", headingTags],
2677
+ ["h6", headingTags],
2452
2678
  ["select", formTags],
2453
2679
  ["input", formTags],
2454
2680
  ["output", formTags],
@@ -2485,6 +2711,7 @@ var openImpliesClose = /* @__PURE__ */ new Map([
2485
2711
  ["tbody", tableSectionTags],
2486
2712
  ["tfoot", tableSectionTags]
2487
2713
  ]);
2714
+ var DOCUMENT_TYPE = "doctype";
2488
2715
  var voidElements = /* @__PURE__ */ new Set([
2489
2716
  "area",
2490
2717
  "base",
@@ -2514,98 +2741,201 @@ var htmlIntegrationElements = /* @__PURE__ */ new Set([
2514
2741
  "ms",
2515
2742
  "mtext",
2516
2743
  "annotation-xml",
2517
- "foreignobject",
2744
+ "foreignObject",
2518
2745
  "desc",
2519
2746
  "title"
2520
2747
  ]);
2748
+ var svgTagNameAdjustments = /* @__PURE__ */ new Map([
2749
+ ["altglyph", "altGlyph"],
2750
+ ["altglyphdef", "altGlyphDef"],
2751
+ ["altglyphitem", "altGlyphItem"],
2752
+ ["animatecolor", "animateColor"],
2753
+ ["animatemotion", "animateMotion"],
2754
+ ["animatetransform", "animateTransform"],
2755
+ ["clippath", "clipPath"],
2756
+ ["feblend", "feBlend"],
2757
+ ["fecolormatrix", "feColorMatrix"],
2758
+ ["fecomponenttransfer", "feComponentTransfer"],
2759
+ ["fecomposite", "feComposite"],
2760
+ ["feconvolvematrix", "feConvolveMatrix"],
2761
+ ["fediffuselighting", "feDiffuseLighting"],
2762
+ ["fedisplacementmap", "feDisplacementMap"],
2763
+ ["fedistantlight", "feDistantLight"],
2764
+ ["fedropshadow", "feDropShadow"],
2765
+ ["feflood", "feFlood"],
2766
+ ["fefunca", "feFuncA"],
2767
+ ["fefuncb", "feFuncB"],
2768
+ ["fefuncg", "feFuncG"],
2769
+ ["fefuncr", "feFuncR"],
2770
+ ["fegaussianblur", "feGaussianBlur"],
2771
+ ["feimage", "feImage"],
2772
+ ["femerge", "feMerge"],
2773
+ ["femergenode", "feMergeNode"],
2774
+ ["femorphology", "feMorphology"],
2775
+ ["feoffset", "feOffset"],
2776
+ ["fepointlight", "fePointLight"],
2777
+ ["fespecularlighting", "feSpecularLighting"],
2778
+ ["fespotlight", "feSpotLight"],
2779
+ ["fetile", "feTile"],
2780
+ ["feturbulence", "feTurbulence"],
2781
+ ["foreignobject", "foreignObject"],
2782
+ ["glyphref", "glyphRef"],
2783
+ ["lineargradient", "linearGradient"],
2784
+ ["radialgradient", "radialGradient"],
2785
+ ["textpath", "textPath"]
2786
+ ]);
2787
+ var ForeignContext;
2788
+ (function(ForeignContext2) {
2789
+ ForeignContext2[ForeignContext2["None"] = 0] = "None";
2790
+ ForeignContext2[ForeignContext2["Svg"] = 1] = "Svg";
2791
+ ForeignContext2[ForeignContext2["MathML"] = 2] = "MathML";
2792
+ })(ForeignContext || (ForeignContext = {}));
2521
2793
  var reNameEnd = /\s|\//;
2522
2794
  var Parser = class {
2795
+ options;
2796
+ /** The start index of the last event. */
2797
+ startIndex = 0;
2798
+ /** The end index of the last event. */
2799
+ endIndex = 0;
2800
+ /**
2801
+ * Store the start index of the current open tag,
2802
+ * so we can update the start index for attributes.
2803
+ */
2804
+ openTagStart = 0;
2805
+ tagname = "";
2806
+ attribname = "";
2807
+ attribvalue = "";
2808
+ attribs = null;
2809
+ stack = [];
2810
+ foreignContext;
2811
+ cbs;
2812
+ lowerCaseTagNames;
2813
+ lowerCaseAttributeNames;
2814
+ recognizeSelfClosing;
2815
+ /** We are parsing HTML. Inverse of the `xmlMode` option. */
2816
+ htmlMode;
2817
+ tokenizer;
2818
+ buffers = [];
2819
+ bufferOffset = 0;
2820
+ /** The index of the last written buffer. Used when resuming after a `pause()`. */
2821
+ writeIndex = 0;
2822
+ /** Indicates whether the parser has finished running / `.end` has been called. */
2823
+ ended = false;
2523
2824
  constructor(cbs, options = {}) {
2524
- var _a3, _b, _c, _d, _e, _f;
2525
2825
  this.options = options;
2526
- this.startIndex = 0;
2527
- this.endIndex = 0;
2528
- this.openTagStart = 0;
2529
- this.tagname = "";
2530
- this.attribname = "";
2531
- this.attribvalue = "";
2532
- this.attribs = null;
2533
- this.stack = [];
2534
- this.buffers = [];
2535
- this.bufferOffset = 0;
2536
- this.writeIndex = 0;
2537
- this.ended = false;
2538
- this.cbs = cbs !== null && cbs !== void 0 ? cbs : {};
2826
+ this.cbs = cbs ?? {};
2539
2827
  this.htmlMode = !this.options.xmlMode;
2540
- this.lowerCaseTagNames = (_a3 = options.lowerCaseTags) !== null && _a3 !== void 0 ? _a3 : this.htmlMode;
2541
- this.lowerCaseAttributeNames = (_b = options.lowerCaseAttributeNames) !== null && _b !== void 0 ? _b : this.htmlMode;
2542
- this.recognizeSelfClosing = (_c = options.recognizeSelfClosing) !== null && _c !== void 0 ? _c : !this.htmlMode;
2543
- this.tokenizer = new ((_d = options.Tokenizer) !== null && _d !== void 0 ? _d : Tokenizer)(this.options, this);
2544
- this.foreignContext = [!this.htmlMode];
2545
- (_f = (_e = this.cbs).onparserinit) === null || _f === void 0 ? void 0 : _f.call(_e, this);
2828
+ this.lowerCaseTagNames = options.lowerCaseTags ?? this.htmlMode;
2829
+ this.lowerCaseAttributeNames = options.lowerCaseAttributeNames ?? this.htmlMode;
2830
+ this.recognizeSelfClosing = options.recognizeSelfClosing ?? !this.htmlMode;
2831
+ this.tokenizer = new (options.Tokenizer ?? Tokenizer)(this.options, this);
2832
+ this.foreignContext = [ForeignContext.None];
2833
+ this.cbs.onparserinit?.(this);
2546
2834
  }
2547
2835
  // Tokenizer event handlers
2548
- /** @internal */
2836
+ /**
2837
+ * @param start Start index for the current parser event.
2838
+ * @param endIndex End index for the current parser event.
2839
+ * @internal
2840
+ */
2549
2841
  ontext(start, endIndex) {
2550
- var _a3, _b;
2551
2842
  const data = this.getSlice(start, endIndex);
2552
2843
  this.endIndex = endIndex - 1;
2553
- (_b = (_a3 = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a3, data);
2844
+ this.cbs.ontext?.(data);
2554
2845
  this.startIndex = endIndex;
2555
2846
  }
2556
- /** @internal */
2847
+ /**
2848
+ * @param cp Current Unicode code point.
2849
+ * @param endIndex End index for the current parser event.
2850
+ * @internal
2851
+ */
2557
2852
  ontextentity(cp, endIndex) {
2558
- var _a3, _b;
2559
2853
  this.endIndex = endIndex - 1;
2560
- (_b = (_a3 = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a3, fromCodePoint(cp));
2854
+ this.cbs.ontext?.(fromCodePoint(cp));
2561
2855
  this.startIndex = endIndex;
2562
2856
  }
2857
+ /** @internal */
2858
+ isInForeignContext() {
2859
+ return this.foreignContext[0] !== ForeignContext.None;
2860
+ }
2563
2861
  /**
2564
2862
  * Checks if the current tag is a void element. Override this if you want
2565
2863
  * to specify your own additional void elements.
2864
+ * @param name Name of the pseudo selector.
2566
2865
  */
2567
2866
  isVoidElement(name) {
2568
2867
  return this.htmlMode && voidElements.has(name);
2569
2868
  }
2570
- /** @internal */
2869
+ /**
2870
+ * Read a tag name from the buffer.
2871
+ *
2872
+ * When `lowerCaseTagNames` is enabled (the default in HTML mode), the name
2873
+ * is lowercased and may be adjusted for SVG casing or the `image` → `img`
2874
+ * alias.
2875
+ * @param start Start index of the tag name in the buffer.
2876
+ * @param endIndex End index of the tag name in the buffer.
2877
+ */
2878
+ readTagName(start, endIndex) {
2879
+ const name = this.lowerCaseTagNames ? this.getSlice(start, endIndex).toLowerCase() : this.getSlice(start, endIndex);
2880
+ if (!(this.lowerCaseTagNames && this.htmlMode)) {
2881
+ return name;
2882
+ }
2883
+ if (this.foreignContext[0] === ForeignContext.Svg) {
2884
+ return svgTagNameAdjustments.get(name) ?? name;
2885
+ }
2886
+ if (this.foreignContext.length > 1) {
2887
+ const adjusted = svgTagNameAdjustments.get(name);
2888
+ if (adjusted !== void 0 && this.stack.includes(adjusted)) {
2889
+ return adjusted;
2890
+ }
2891
+ }
2892
+ if (!this.isInForeignContext()) {
2893
+ return name === "image" ? "img" : name;
2894
+ }
2895
+ return name;
2896
+ }
2897
+ /**
2898
+ * @param start Start index for the current parser event.
2899
+ * @param endIndex End index for the current parser event.
2900
+ * @internal
2901
+ */
2571
2902
  onopentagname(start, endIndex) {
2572
2903
  this.endIndex = endIndex;
2573
- let name = this.getSlice(start, endIndex);
2574
- if (this.lowerCaseTagNames) {
2575
- name = name.toLowerCase();
2576
- }
2577
- this.emitOpenTag(name);
2904
+ this.emitOpenTag(this.readTagName(start, endIndex));
2578
2905
  }
2579
2906
  emitOpenTag(name) {
2580
- var _a3, _b, _c, _d;
2581
2907
  this.openTagStart = this.startIndex;
2582
2908
  this.tagname = name;
2909
+ if (this.htmlMode && name === "form" && this.stack.includes("form")) {
2910
+ this.tagname = "";
2911
+ return;
2912
+ }
2583
2913
  const impliesClose = this.htmlMode && openImpliesClose.get(name);
2584
2914
  if (impliesClose) {
2585
2915
  while (this.stack.length > 0 && impliesClose.has(this.stack[0])) {
2586
- const element = this.stack.shift();
2587
- (_b = (_a3 = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a3, element, true);
2916
+ this.popElement(true);
2588
2917
  }
2589
2918
  }
2590
2919
  if (!this.isVoidElement(name)) {
2591
2920
  this.stack.unshift(name);
2592
2921
  if (this.htmlMode) {
2593
- if (foreignContextElements.has(name)) {
2594
- this.foreignContext.unshift(true);
2922
+ if (name === "svg") {
2923
+ this.foreignContext.unshift(ForeignContext.Svg);
2924
+ } else if (name === "math") {
2925
+ this.foreignContext.unshift(ForeignContext.MathML);
2595
2926
  } else if (htmlIntegrationElements.has(name)) {
2596
- this.foreignContext.unshift(false);
2927
+ this.foreignContext.unshift(ForeignContext.None);
2597
2928
  }
2598
2929
  }
2599
2930
  }
2600
- (_d = (_c = this.cbs).onopentagname) === null || _d === void 0 ? void 0 : _d.call(_c, name);
2931
+ this.cbs.onopentagname?.(name);
2601
2932
  if (this.cbs.onopentag)
2602
2933
  this.attribs = {};
2603
2934
  }
2604
2935
  endOpenTag(isImplied) {
2605
- var _a3, _b;
2606
2936
  this.startIndex = this.openTagStart;
2607
2937
  if (this.attribs) {
2608
- (_b = (_a3 = this.cbs).onopentag) === null || _b === void 0 ? void 0 : _b.call(_a3, this.tagname, this.attribs, isImplied);
2938
+ this.cbs.onopentag?.(this.tagname, this.attribs, isImplied);
2609
2939
  this.attribs = null;
2610
2940
  }
2611
2941
  if (this.cbs.onclosetag && this.isVoidElement(this.tagname)) {
@@ -2613,80 +2943,107 @@ var Parser = class {
2613
2943
  }
2614
2944
  this.tagname = "";
2615
2945
  }
2616
- /** @internal */
2946
+ /**
2947
+ * @param endIndex End index for the current parser event.
2948
+ * @internal
2949
+ */
2617
2950
  onopentagend(endIndex) {
2618
2951
  this.endIndex = endIndex;
2619
2952
  this.endOpenTag(false);
2620
2953
  this.startIndex = endIndex + 1;
2621
2954
  }
2622
- /** @internal */
2955
+ /**
2956
+ * @param start Start index for the current parser event.
2957
+ * @param endIndex End index for the current parser event.
2958
+ * @internal
2959
+ */
2623
2960
  onclosetag(start, endIndex) {
2624
- var _a3, _b, _c, _d, _e, _f, _g, _h;
2625
2961
  this.endIndex = endIndex;
2626
- let name = this.getSlice(start, endIndex);
2627
- if (this.lowerCaseTagNames) {
2628
- name = name.toLowerCase();
2629
- }
2630
- if (this.htmlMode && (foreignContextElements.has(name) || htmlIntegrationElements.has(name))) {
2631
- this.foreignContext.shift();
2632
- }
2962
+ const name = this.readTagName(start, endIndex);
2633
2963
  if (!this.isVoidElement(name)) {
2634
2964
  const pos = this.stack.indexOf(name);
2635
2965
  if (pos !== -1) {
2636
- for (let index = 0; index <= pos; index++) {
2637
- const element = this.stack.shift();
2638
- (_b = (_a3 = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a3, element, index !== pos);
2966
+ for (let index = 0; index < pos; index++) {
2967
+ this.popElement(true);
2639
2968
  }
2969
+ this.popElement(false);
2640
2970
  } else if (this.htmlMode && name === "p") {
2641
2971
  this.emitOpenTag("p");
2642
2972
  this.closeCurrentTag(true);
2643
2973
  }
2644
2974
  } else if (this.htmlMode && name === "br") {
2645
- (_d = (_c = this.cbs).onopentagname) === null || _d === void 0 ? void 0 : _d.call(_c, "br");
2646
- (_f = (_e = this.cbs).onopentag) === null || _f === void 0 ? void 0 : _f.call(_e, "br", {}, true);
2647
- (_h = (_g = this.cbs).onclosetag) === null || _h === void 0 ? void 0 : _h.call(_g, "br", false);
2975
+ this.cbs.onopentagname?.("br");
2976
+ this.cbs.onopentag?.("br", {}, true);
2977
+ this.cbs.onclosetag?.("br", false);
2648
2978
  }
2649
2979
  this.startIndex = endIndex + 1;
2650
2980
  }
2651
- /** @internal */
2981
+ /**
2982
+ * @param endIndex End index for the current parser event.
2983
+ * @internal
2984
+ */
2652
2985
  onselfclosingtag(endIndex) {
2653
2986
  this.endIndex = endIndex;
2654
- if (this.recognizeSelfClosing || this.foreignContext[0]) {
2987
+ if (this.recognizeSelfClosing || this.isInForeignContext()) {
2655
2988
  this.closeCurrentTag(false);
2656
2989
  this.startIndex = endIndex + 1;
2657
2990
  } else {
2658
2991
  this.onopentagend(endIndex);
2659
2992
  }
2660
2993
  }
2994
+ /**
2995
+ * Pop the top element off the stack, emit a close event, and maintain
2996
+ * the foreign context stack.
2997
+ * @param implied Whether this close is implied (not from an explicit end tag).
2998
+ */
2999
+ popElement(implied) {
3000
+ const element = this.stack.shift();
3001
+ if (this.htmlMode && (foreignContextElements.has(element) || htmlIntegrationElements.has(element))) {
3002
+ this.foreignContext.shift();
3003
+ }
3004
+ this.cbs.onclosetag?.(element, implied);
3005
+ }
2661
3006
  closeCurrentTag(isOpenImplied) {
2662
- var _a3, _b;
2663
3007
  const name = this.tagname;
2664
3008
  this.endOpenTag(isOpenImplied);
2665
3009
  if (this.stack[0] === name) {
2666
- (_b = (_a3 = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a3, name, !isOpenImplied);
2667
- this.stack.shift();
3010
+ this.popElement(!isOpenImplied);
2668
3011
  }
2669
3012
  }
2670
- /** @internal */
3013
+ /**
3014
+ * @param start Start index for the current parser event.
3015
+ * @param endIndex End index for the current parser event.
3016
+ * @internal
3017
+ */
2671
3018
  onattribname(start, endIndex) {
2672
3019
  this.startIndex = start;
2673
3020
  const name = this.getSlice(start, endIndex);
2674
3021
  this.attribname = this.lowerCaseAttributeNames ? name.toLowerCase() : name;
2675
3022
  }
2676
- /** @internal */
3023
+ /**
3024
+ * @param start Start index for the current parser event.
3025
+ * @param endIndex End index for the current parser event.
3026
+ * @internal
3027
+ */
2677
3028
  onattribdata(start, endIndex) {
2678
3029
  this.attribvalue += this.getSlice(start, endIndex);
2679
3030
  }
2680
- /** @internal */
3031
+ /**
3032
+ * @param cp Current Unicode code point.
3033
+ * @internal
3034
+ */
2681
3035
  onattribentity(cp) {
2682
3036
  this.attribvalue += fromCodePoint(cp);
2683
3037
  }
2684
- /** @internal */
3038
+ /**
3039
+ * @param quote Quote type used for the current attribute.
3040
+ * @param endIndex End index for the current parser event.
3041
+ * @internal
3042
+ */
2685
3043
  onattribend(quote2, endIndex) {
2686
- var _a3, _b;
2687
3044
  this.endIndex = endIndex;
2688
- (_b = (_a3 = this.cbs).onattribute) === null || _b === void 0 ? void 0 : _b.call(_a3, this.attribname, this.attribvalue, quote2 === QuoteType.Double ? '"' : quote2 === QuoteType.Single ? "'" : quote2 === QuoteType.NoValue ? void 0 : null);
2689
- if (this.attribs && !Object.prototype.hasOwnProperty.call(this.attribs, this.attribname)) {
3045
+ this.cbs.onattribute?.(this.attribname, this.attribvalue, quote2 === QuoteType.Double ? '"' : quote2 === QuoteType.Single ? "'" : quote2 === QuoteType.NoValue ? void 0 : null);
3046
+ if (this.attribs && !Object.hasOwn(this.attribs, this.attribname)) {
2690
3047
  this.attribs[this.attribname] = this.attribvalue;
2691
3048
  }
2692
3049
  this.attribvalue = "";
@@ -2699,17 +3056,25 @@ var Parser = class {
2699
3056
  }
2700
3057
  return name;
2701
3058
  }
2702
- /** @internal */
3059
+ /**
3060
+ * @param start Start index for the current parser event.
3061
+ * @param endIndex End index for the current parser event.
3062
+ * @internal
3063
+ */
2703
3064
  ondeclaration(start, endIndex) {
2704
3065
  this.endIndex = endIndex;
2705
3066
  const value = this.getSlice(start, endIndex);
2706
3067
  if (this.cbs.onprocessinginstruction) {
2707
- const name = this.getInstructionName(value);
3068
+ const name = this.htmlMode ? this.lowerCaseTagNames ? DOCUMENT_TYPE : value.slice(0, DOCUMENT_TYPE.length) : this.getInstructionName(value);
2708
3069
  this.cbs.onprocessinginstruction(`!${name}`, `!${value}`);
2709
3070
  }
2710
3071
  this.startIndex = endIndex + 1;
2711
3072
  }
2712
- /** @internal */
3073
+ /**
3074
+ * @param start Start index for the current parser event.
3075
+ * @param endIndex End index for the current parser event.
3076
+ * @internal
3077
+ */
2713
3078
  onprocessinginstruction(start, endIndex) {
2714
3079
  this.endIndex = endIndex;
2715
3080
  const value = this.getSlice(start, endIndex);
@@ -2719,57 +3084,66 @@ var Parser = class {
2719
3084
  }
2720
3085
  this.startIndex = endIndex + 1;
2721
3086
  }
2722
- /** @internal */
3087
+ /**
3088
+ * @param start Start index for the current parser event.
3089
+ * @param endIndex End index for the current parser event.
3090
+ * @param offset Offset applied when computing parser indices.
3091
+ * @internal
3092
+ */
2723
3093
  oncomment(start, endIndex, offset) {
2724
- var _a3, _b, _c, _d;
2725
3094
  this.endIndex = endIndex;
2726
- (_b = (_a3 = this.cbs).oncomment) === null || _b === void 0 ? void 0 : _b.call(_a3, this.getSlice(start, endIndex - offset));
2727
- (_d = (_c = this.cbs).oncommentend) === null || _d === void 0 ? void 0 : _d.call(_c);
3095
+ this.cbs.oncomment?.(this.getSlice(start, endIndex - offset));
3096
+ this.cbs.oncommentend?.();
2728
3097
  this.startIndex = endIndex + 1;
2729
3098
  }
2730
- /** @internal */
3099
+ /**
3100
+ * @param start Start index for the current parser event.
3101
+ * @param endIndex End index for the current parser event.
3102
+ * @param offset Offset applied when computing parser indices.
3103
+ * @internal
3104
+ */
2731
3105
  oncdata(start, endIndex, offset) {
2732
- var _a3, _b, _c, _d, _e, _f, _g, _h, _j, _k;
2733
3106
  this.endIndex = endIndex;
2734
3107
  const value = this.getSlice(start, endIndex - offset);
2735
3108
  if (!this.htmlMode || this.options.recognizeCDATA) {
2736
- (_b = (_a3 = this.cbs).oncdatastart) === null || _b === void 0 ? void 0 : _b.call(_a3);
2737
- (_d = (_c = this.cbs).ontext) === null || _d === void 0 ? void 0 : _d.call(_c, value);
2738
- (_f = (_e = this.cbs).oncdataend) === null || _f === void 0 ? void 0 : _f.call(_e);
3109
+ this.cbs.oncdatastart?.();
3110
+ this.cbs.ontext?.(value);
3111
+ this.cbs.oncdataend?.();
3112
+ } else if (this.isInForeignContext()) {
3113
+ this.cbs.ontext?.(value);
2739
3114
  } else {
2740
- (_h = (_g = this.cbs).oncomment) === null || _h === void 0 ? void 0 : _h.call(_g, `[CDATA[${value}]]`);
2741
- (_k = (_j = this.cbs).oncommentend) === null || _k === void 0 ? void 0 : _k.call(_j);
3115
+ this.cbs.oncomment?.(`[CDATA[${value}]]`);
3116
+ this.cbs.oncommentend?.();
2742
3117
  }
2743
3118
  this.startIndex = endIndex + 1;
2744
3119
  }
2745
3120
  /** @internal */
2746
3121
  onend() {
2747
- var _a3, _b;
2748
3122
  if (this.cbs.onclosetag) {
2749
3123
  this.endIndex = this.startIndex;
2750
3124
  for (let index = 0; index < this.stack.length; index++) {
2751
3125
  this.cbs.onclosetag(this.stack[index], true);
2752
3126
  }
2753
3127
  }
2754
- (_b = (_a3 = this.cbs).onend) === null || _b === void 0 ? void 0 : _b.call(_a3);
3128
+ this.cbs.onend?.();
2755
3129
  }
2756
3130
  /**
2757
3131
  * Resets the parser to a blank state, ready to parse a new HTML document
2758
3132
  */
2759
3133
  reset() {
2760
- var _a3, _b, _c, _d;
2761
- (_b = (_a3 = this.cbs).onreset) === null || _b === void 0 ? void 0 : _b.call(_a3);
3134
+ this.cbs.onreset?.();
2762
3135
  this.tokenizer.reset();
2763
3136
  this.tagname = "";
2764
3137
  this.attribname = "";
3138
+ this.attribvalue = "";
2765
3139
  this.attribs = null;
2766
3140
  this.stack.length = 0;
2767
3141
  this.startIndex = 0;
2768
3142
  this.endIndex = 0;
2769
- (_d = (_c = this.cbs).onparserinit) === null || _d === void 0 ? void 0 : _d.call(_c, this);
3143
+ this.cbs.onparserinit?.(this);
2770
3144
  this.buffers.length = 0;
2771
3145
  this.foreignContext.length = 0;
2772
- this.foreignContext.unshift(!this.htmlMode);
3146
+ this.foreignContext.unshift(ForeignContext.None);
2773
3147
  this.bufferOffset = 0;
2774
3148
  this.writeIndex = 0;
2775
3149
  this.ended = false;
@@ -2777,7 +3151,6 @@ var Parser = class {
2777
3151
  /**
2778
3152
  * Resets the parser, then parses a complete document and
2779
3153
  * pushes it to the handler.
2780
- *
2781
3154
  * @param data Document to parse.
2782
3155
  */
2783
3156
  parseComplete(data) {
@@ -2785,6 +3158,9 @@ var Parser = class {
2785
3158
  this.end(data);
2786
3159
  }
2787
3160
  getSlice(start, end) {
3161
+ if (start === end) {
3162
+ return "";
3163
+ }
2788
3164
  while (start - this.bufferOffset >= this.buffers[0].length) {
2789
3165
  this.shiftBuffer();
2790
3166
  }
@@ -2802,13 +3178,11 @@ var Parser = class {
2802
3178
  }
2803
3179
  /**
2804
3180
  * Parses a chunk of data and calls the corresponding callbacks.
2805
- *
2806
3181
  * @param chunk Chunk to parse.
2807
3182
  */
2808
3183
  write(chunk) {
2809
- var _a3, _b;
2810
3184
  if (this.ended) {
2811
- (_b = (_a3 = this.cbs).onerror) === null || _b === void 0 ? void 0 : _b.call(_a3, new Error(".write() after done!"));
3185
+ this.cbs.onerror?.(new Error(".write() after done!"));
2812
3186
  return;
2813
3187
  }
2814
3188
  this.buffers.push(chunk);
@@ -2819,13 +3193,11 @@ var Parser = class {
2819
3193
  }
2820
3194
  /**
2821
3195
  * Parses the end of the buffer and clears the stack, calls onend.
2822
- *
2823
3196
  * @param chunk Optional final chunk to parse.
2824
3197
  */
2825
3198
  end(chunk) {
2826
- var _a3, _b;
2827
3199
  if (this.ended) {
2828
- (_b = (_a3 = this.cbs).onerror) === null || _b === void 0 ? void 0 : _b.call(_a3, new Error(".end() after done!"));
3200
+ this.cbs.onerror?.(new Error(".end() after done!"));
2829
3201
  return;
2830
3202
  }
2831
3203
  if (chunk)
@@ -2850,27 +3222,9 @@ var Parser = class {
2850
3222
  if (this.ended)
2851
3223
  this.tokenizer.end();
2852
3224
  }
2853
- /**
2854
- * Alias of `write`, for backwards compatibility.
2855
- *
2856
- * @param chunk Chunk to parse.
2857
- * @deprecated
2858
- */
2859
- parseChunk(chunk) {
2860
- this.write(chunk);
2861
- }
2862
- /**
2863
- * Alias of `end`, for backwards compatibility.
2864
- *
2865
- * @param chunk Optional final chunk to parse.
2866
- * @deprecated
2867
- */
2868
- done(chunk) {
2869
- this.end(chunk);
2870
- }
2871
3225
  };
2872
3226
 
2873
- // node_modules/.pnpm/domelementtype@2.3.0/node_modules/domelementtype/lib/esm/index.js
3227
+ // node_modules/.pnpm/domelementtype@3.0.0/node_modules/domelementtype/dist/index.js
2874
3228
  var ElementType;
2875
3229
  (function(ElementType2) {
2876
3230
  ElementType2["Root"] = "root";
@@ -2883,8 +3237,8 @@ var ElementType;
2883
3237
  ElementType2["CDATA"] = "cdata";
2884
3238
  ElementType2["Doctype"] = "doctype";
2885
3239
  })(ElementType || (ElementType = {}));
2886
- function isTag(elem) {
2887
- return elem.type === ElementType.Tag || elem.type === ElementType.Script || elem.type === ElementType.Style;
3240
+ function isTag(element) {
3241
+ return element.type === ElementType.Tag || element.type === ElementType.Script || element.type === ElementType.Style;
2888
3242
  }
2889
3243
  var Root = ElementType.Root;
2890
3244
  var Text = ElementType.Text;
@@ -2896,15 +3250,18 @@ var Tag = ElementType.Tag;
2896
3250
  var CDATA = ElementType.CDATA;
2897
3251
  var Doctype = ElementType.Doctype;
2898
3252
 
2899
- // node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/esm/node.js
3253
+ // node_modules/.pnpm/domhandler@6.0.1/node_modules/domhandler/dist/node.js
2900
3254
  var Node = class {
2901
- constructor() {
2902
- this.parent = null;
2903
- this.prev = null;
2904
- this.next = null;
2905
- this.startIndex = null;
2906
- this.endIndex = null;
2907
- }
3255
+ /** Parent of the node */
3256
+ parent = null;
3257
+ /** Previous sibling */
3258
+ prev = null;
3259
+ /** Next sibling */
3260
+ next = null;
3261
+ /** The start index of the node. Requires `withStartIndices` on the handler to be `true. */
3262
+ startIndex = null;
3263
+ /** The end index of the node. Requires `withEndIndices` on the handler to be `true. */
3264
+ endIndex = null;
2908
3265
  // Read-write aliases for properties
2909
3266
  /**
2910
3267
  * Same as {@link parent}.
@@ -2923,8 +3280,8 @@ var Node = class {
2923
3280
  get previousSibling() {
2924
3281
  return this.prev;
2925
3282
  }
2926
- set previousSibling(prev) {
2927
- this.prev = prev;
3283
+ set previousSibling(previous) {
3284
+ this.prev = previous;
2928
3285
  }
2929
3286
  /**
2930
3287
  * Same as {@link next}.
@@ -2938,7 +3295,6 @@ var Node = class {
2938
3295
  }
2939
3296
  /**
2940
3297
  * Clone this node, and optionally its children.
2941
- *
2942
3298
  * @param recursive Clone child nodes as well.
2943
3299
  * @returns A clone of the node.
2944
3300
  */
@@ -2947,6 +3303,7 @@ var Node = class {
2947
3303
  }
2948
3304
  };
2949
3305
  var DataNode = class extends Node {
3306
+ data;
2950
3307
  /**
2951
3308
  * @param data The content of the data node
2952
3309
  */
@@ -2966,34 +3323,36 @@ var DataNode = class extends Node {
2966
3323
  }
2967
3324
  };
2968
3325
  var Text2 = class extends DataNode {
2969
- constructor() {
2970
- super(...arguments);
2971
- this.type = ElementType.Text;
2972
- }
3326
+ type = ElementType.Text;
2973
3327
  get nodeType() {
2974
3328
  return 3;
2975
3329
  }
2976
3330
  };
2977
3331
  var Comment2 = class extends DataNode {
2978
- constructor() {
2979
- super(...arguments);
2980
- this.type = ElementType.Comment;
2981
- }
3332
+ type = ElementType.Comment;
2982
3333
  get nodeType() {
2983
3334
  return 8;
2984
3335
  }
2985
3336
  };
2986
3337
  var ProcessingInstruction = class extends DataNode {
3338
+ type = ElementType.Directive;
3339
+ name;
2987
3340
  constructor(name, data) {
2988
3341
  super(data);
2989
3342
  this.name = name;
2990
- this.type = ElementType.Directive;
2991
3343
  }
2992
3344
  get nodeType() {
2993
3345
  return 1;
2994
3346
  }
3347
+ /** If this is a doctype, the document type name (parse5 only). */
3348
+ "x-name";
3349
+ /** If this is a doctype, the document type public identifier (parse5 only). */
3350
+ "x-publicId";
3351
+ /** If this is a doctype, the document type system identifier (parse5 only). */
3352
+ "x-systemId";
2995
3353
  };
2996
3354
  var NodeWithChildren = class extends Node {
3355
+ children;
2997
3356
  /**
2998
3357
  * @param children Children of the node. Only certain node types can have children.
2999
3358
  */
@@ -3004,8 +3363,7 @@ var NodeWithChildren = class extends Node {
3004
3363
  // Aliases
3005
3364
  /** First child of the node. */
3006
3365
  get firstChild() {
3007
- var _a3;
3008
- return (_a3 = this.children[0]) !== null && _a3 !== void 0 ? _a3 : null;
3366
+ return this.children[0] ?? null;
3009
3367
  }
3010
3368
  /** Last child of the node. */
3011
3369
  get lastChild() {
@@ -3023,28 +3381,26 @@ var NodeWithChildren = class extends Node {
3023
3381
  }
3024
3382
  };
3025
3383
  var CDATA2 = class extends NodeWithChildren {
3026
- constructor() {
3027
- super(...arguments);
3028
- this.type = ElementType.CDATA;
3029
- }
3384
+ type = ElementType.CDATA;
3030
3385
  get nodeType() {
3031
3386
  return 4;
3032
3387
  }
3033
3388
  };
3034
3389
  var Document = class extends NodeWithChildren {
3035
- constructor() {
3036
- super(...arguments);
3037
- this.type = ElementType.Root;
3038
- }
3390
+ type = ElementType.Root;
3039
3391
  get nodeType() {
3040
3392
  return 9;
3041
3393
  }
3042
3394
  };
3043
3395
  var Element = class extends NodeWithChildren {
3396
+ name;
3397
+ attribs;
3398
+ type;
3044
3399
  /**
3045
3400
  * @param name Name of the tag, eg. `div`, `span`.
3046
3401
  * @param attribs Object mapping attribute names to attribute values.
3047
3402
  * @param children Children of the node.
3403
+ * @param type Node type used for the new node instance.
3048
3404
  */
3049
3405
  constructor(name, attribs, children = [], type = name === "script" ? ElementType.Script : name === "style" ? ElementType.Style : ElementType.Tag) {
3050
3406
  super(children);
@@ -3067,16 +3423,19 @@ var Element = class extends NodeWithChildren {
3067
3423
  this.name = name;
3068
3424
  }
3069
3425
  get attributes() {
3070
- return Object.keys(this.attribs).map((name) => {
3071
- var _a3, _b;
3072
- return {
3073
- name,
3074
- value: this.attribs[name],
3075
- namespace: (_a3 = this["x-attribsNamespace"]) === null || _a3 === void 0 ? void 0 : _a3[name],
3076
- prefix: (_b = this["x-attribsPrefix"]) === null || _b === void 0 ? void 0 : _b[name]
3077
- };
3078
- });
3079
- }
3426
+ return Object.keys(this.attribs).map((name) => ({
3427
+ name,
3428
+ value: this.attribs[name],
3429
+ namespace: this["x-attribsNamespace"]?.[name],
3430
+ prefix: this["x-attribsPrefix"]?.[name]
3431
+ }));
3432
+ }
3433
+ /** Element namespace (parse5 only). */
3434
+ namespace;
3435
+ /** Element attribute namespaces (parse5 only). */
3436
+ "x-attribsNamespace";
3437
+ /** Element attribute namespace-related prefixes (parse5 only). */
3438
+ "x-attribsPrefix";
3080
3439
  };
3081
3440
  function isTag2(node) {
3082
3441
  return isTag(node);
@@ -3105,7 +3464,9 @@ function cloneNode(node, recursive = false) {
3105
3464
  } else if (isTag2(node)) {
3106
3465
  const children = recursive ? cloneChildren(node.children) : [];
3107
3466
  const clone = new Element(node.name, { ...node.attribs }, children);
3108
- children.forEach((child) => child.parent = clone);
3467
+ for (const child of children) {
3468
+ child.parent = clone;
3469
+ }
3109
3470
  if (node.namespace != null) {
3110
3471
  clone.namespace = node.namespace;
3111
3472
  }
@@ -3119,12 +3480,16 @@ function cloneNode(node, recursive = false) {
3119
3480
  } else if (isCDATA(node)) {
3120
3481
  const children = recursive ? cloneChildren(node.children) : [];
3121
3482
  const clone = new CDATA2(children);
3122
- children.forEach((child) => child.parent = clone);
3483
+ for (const child of children) {
3484
+ child.parent = clone;
3485
+ }
3123
3486
  result = clone;
3124
3487
  } else if (isDocument(node)) {
3125
3488
  const children = recursive ? cloneChildren(node.children) : [];
3126
3489
  const clone = new Document(children);
3127
- children.forEach((child) => child.parent = clone);
3490
+ for (const child of children) {
3491
+ child.parent = clone;
3492
+ }
3128
3493
  if (node["x-mode"]) {
3129
3494
  clone["x-mode"] = node["x-mode"];
3130
3495
  }
@@ -3149,43 +3514,55 @@ function cloneNode(node, recursive = false) {
3149
3514
  }
3150
3515
  function cloneChildren(childs) {
3151
3516
  const children = childs.map((child) => cloneNode(child, true));
3152
- for (let i = 1; i < children.length; i++) {
3153
- children[i].prev = children[i - 1];
3154
- children[i - 1].next = children[i];
3517
+ for (let index = 1; index < children.length; index++) {
3518
+ children[index].prev = children[index - 1];
3519
+ children[index - 1].next = children[index];
3155
3520
  }
3156
3521
  return children;
3157
3522
  }
3158
3523
 
3159
- // node_modules/.pnpm/domhandler@5.0.3/node_modules/domhandler/lib/esm/index.js
3160
- var defaultOpts = {
3524
+ // node_modules/.pnpm/domhandler@6.0.1/node_modules/domhandler/dist/index.js
3525
+ var defaultOptions = {
3161
3526
  withStartIndices: false,
3162
3527
  withEndIndices: false,
3163
3528
  xmlMode: false
3164
3529
  };
3165
3530
  var DomHandler = class {
3531
+ /** The elements of the DOM */
3532
+ dom = [];
3533
+ /** The root element for the DOM */
3534
+ root = new Document(this.dom);
3535
+ /** Called once parsing has completed. */
3536
+ callback;
3537
+ /** Settings for the handler. */
3538
+ options;
3539
+ /** Callback whenever a tag is closed. */
3540
+ elementCB;
3541
+ /** Indicated whether parsing has been completed. */
3542
+ done = false;
3543
+ /** Stack of open tags. */
3544
+ tagStack = [this.root];
3545
+ /** A data node that is still being written to. */
3546
+ lastNode = null;
3547
+ /** Reference to the parser instance. Used for location information. */
3548
+ parser = null;
3166
3549
  /**
3167
3550
  * @param callback Called once parsing has completed.
3168
3551
  * @param options Settings for the handler.
3169
3552
  * @param elementCB Callback whenever a tag is closed.
3170
3553
  */
3171
3554
  constructor(callback, options, elementCB) {
3172
- this.dom = [];
3173
- this.root = new Document(this.dom);
3174
- this.done = false;
3175
- this.tagStack = [this.root];
3176
- this.lastNode = null;
3177
- this.parser = null;
3178
3555
  if (typeof options === "function") {
3179
3556
  elementCB = options;
3180
- options = defaultOpts;
3557
+ options = defaultOptions;
3181
3558
  }
3182
3559
  if (typeof callback === "object") {
3183
3560
  options = callback;
3184
3561
  callback = void 0;
3185
3562
  }
3186
- this.callback = callback !== null && callback !== void 0 ? callback : null;
3187
- this.options = options !== null && options !== void 0 ? options : defaultOpts;
3188
- this.elementCB = elementCB !== null && elementCB !== void 0 ? elementCB : null;
3563
+ this.callback = callback ?? null;
3564
+ this.options = options ?? defaultOptions;
3565
+ this.elementCB = elementCB ?? null;
3189
3566
  }
3190
3567
  onparserinit(parser) {
3191
3568
  this.parser = parser;
@@ -3212,12 +3589,12 @@ var DomHandler = class {
3212
3589
  }
3213
3590
  onclosetag() {
3214
3591
  this.lastNode = null;
3215
- const elem = this.tagStack.pop();
3216
- if (this.options.withEndIndices) {
3217
- elem.endIndex = this.parser.endIndex;
3592
+ const element = this.tagStack.pop();
3593
+ if (this.options.withEndIndices && this.parser) {
3594
+ element.endIndex = this.parser.endIndex;
3218
3595
  }
3219
3596
  if (this.elementCB)
3220
- this.elementCB(elem);
3597
+ this.elementCB(element);
3221
3598
  }
3222
3599
  onopentag(name, attribs) {
3223
3600
  const type = this.options.xmlMode ? ElementType.Tag : void 0;
@@ -3229,7 +3606,7 @@ var DomHandler = class {
3229
3606
  const { lastNode } = this;
3230
3607
  if (lastNode && lastNode.type === ElementType.Text) {
3231
3608
  lastNode.data += data;
3232
- if (this.options.withEndIndices) {
3609
+ if (this.options.withEndIndices && this.parser) {
3233
3610
  lastNode.endIndex = this.parser.endIndex;
3234
3611
  }
3235
3612
  } else {
@@ -3274,10 +3651,10 @@ var DomHandler = class {
3274
3651
  addNode(node) {
3275
3652
  const parent = this.tagStack[this.tagStack.length - 1];
3276
3653
  const previousSibling = parent.children[parent.children.length - 1];
3277
- if (this.options.withStartIndices) {
3654
+ if (this.options.withStartIndices && this.parser) {
3278
3655
  node.startIndex = this.parser.startIndex;
3279
3656
  }
3280
- if (this.options.withEndIndices) {
3657
+ if (this.options.withEndIndices && this.parser) {
3281
3658
  node.endIndex = this.parser.endIndex;
3282
3659
  }
3283
3660
  parent.children.push(node);
@@ -3290,616 +3667,7 @@ var DomHandler = class {
3290
3667
  }
3291
3668
  };
3292
3669
 
3293
- // node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/generated/decode-data-html.js
3294
- var decode_data_html_default = new Uint16Array(
3295
- // prettier-ignore
3296
- '\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\u{1D504}rave\u803B\xC0\u40C0pha;\u4391acr;\u4100d;\u6A53\u0100gp\x9D\xA1on;\u4104f;\uC000\u{1D538}plyFunction;\u6061ing\u803B\xC5\u40C5\u0100cs\xBE\xC3r;\uC000\u{1D49C}ign;\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\u{1D505}pf;\uC000\u{1D539}eve;\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\u{1D49E}p\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\u{1D507}\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\u{1D53B}\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\u{1D49F}rok;\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\u{1D508}rave\u803B\xC8\u40C8ement;\u6208\u0100ap\u04FA\u04FEcr;\u4112ty\u0253\u0506\0\0\u0512mallSquare;\u65FBerySmallSquare;\u65AB\u0100gp\u0526\u052Aon;\u4118f;\uC000\u{1D53C}silon;\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\u{1D509}lled\u0253\u0597\0\0\u05A3mallSquare;\u65FCerySmallSquare;\u65AA\u0370\u05BA\0\u05BF\0\0\u05C4f;\uC000\u{1D53D}All;\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\u{1D50A};\u62D9pf;\uC000\u{1D53E}eater\u0300EFGLST\u0635\u0644\u064E\u0656\u065B\u0666qual\u0100;L\u063E\u063F\u6265ess;\u62DBullEqual;\u6267reater;\u6AA2ess;\u6277lantEqual;\u6A7Eilde;\u6273cr;\uC000\u{1D4A2};\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\u{1D540}a;\u4399cr;\u6110ilde;\u4128\u01EB\u079A\0\u079Ecy;\u4406l\u803B\xCF\u40CF\u0280cfosu\u07AC\u07B7\u07BC\u07C2\u07D0\u0100iy\u07B1\u07B5rc;\u4134;\u4419r;\uC000\u{1D50D}pf;\uC000\u{1D541}\u01E3\u07C7\0\u07CCr;\uC000\u{1D4A5}rcy;\u4408kcy;\u4404\u0380HJacfos\u07E4\u07E8\u07EC\u07F1\u07FD\u0802\u0808cy;\u4425cy;\u440Cppa;\u439A\u0100ey\u07F6\u07FBdil;\u4136;\u441Ar;\uC000\u{1D50E}pf;\uC000\u{1D542}cr;\uC000\u{1D4A6}\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\u{1D50F}\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\u{1D543}er\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\u{1D510}nusPlus;\u6213pf;\uC000\u{1D544}c\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\u{1D511}\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\u{1D4A9}ilde\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\u{1D512}rave\u803B\xD2\u40D2\u0180aei\u0DEE\u0DF2\u0DF6cr;\u414Cga;\u43A9cron;\u439Fpf;\uC000\u{1D546}enCurly\u0100DQ\u0E0E\u0E1AoubleQuote;\u601Cuote;\u6018;\u6A54\u0100cl\u0E27\u0E2Cr;\uC000\u{1D4AA}ash\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\u{1D513}i;\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\u{1D4AB};\u43A8\u0200Ufos\u0F11\u0F16\u0F1B\u0F1FOT\u803B"\u4022r;\uC000\u{1D514}pf;\u611Acr;\uC000\u{1D4AC}\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\u{1D516}ort\u0200DLRU\u112A\u1134\u113E\u1149ownArrow\xBB\u041EeftArrow\xBB\u089AightArrow\xBB\u0FDDpArrow;\u6191gma;\u43A3allCircle;\u6218pf;\uC000\u{1D54A}\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\u{1D4AE}ar;\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\u{1D517}\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\u{1D54B}ipleDot;\u60DB\u0100ct\u12D6\u12DBr;\uC000\u{1D4AF}rok;\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\u{1D518}rave\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\u{1D54C}\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\u{1D4B0}ilde;\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\u{1D519}pf;\uC000\u{1D54D}cr;\uC000\u{1D4B1}dash;\u62AA\u0280cefos\u14A7\u14AC\u14B1\u14B6\u14BCirc;\u4174dge;\u62C0r;\uC000\u{1D51A}pf;\uC000\u{1D54E}cr;\uC000\u{1D4B2}\u0200fios\u14CB\u14D0\u14D2\u14D8r;\uC000\u{1D51B};\u439Epf;\uC000\u{1D54F}cr;\uC000\u{1D4B3}\u0480AIUacfosu\u14F1\u14F5\u14F9\u14FD\u1504\u150F\u1514\u151A\u1520cy;\u442Fcy;\u4407cy;\u442Ecute\u803B\xDD\u40DD\u0100iy\u1509\u150Drc;\u4176;\u442Br;\uC000\u{1D51C}pf;\uC000\u{1D550}cr;\uC000\u{1D4B4}ml;\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\u{1D4B5}\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\u{1D51E}rave\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\u{1D552}\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\u{1D4B6};\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\u{1D51F}g\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\u{1D553}\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\u{1D4B7}mi;\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\u{1D520}\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\u{1D554}o\xE4\u0254\u8100\xA9;s\u0155\u1B1Dr;\u6117\u0100ao\u1B25\u1B29rr;\u61B5ss;\u6717\u0100cu\u1B32\u1B37r;\uC000\u{1D4B8}\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\u{1D521}ar\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\u{1D555}\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\u{1D4B9};\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\u{1D522}\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\u{1D556}\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\u{1D523}lig;\u8000\uFB01lig;\uC000fj\u0180alt\u1FD9\u1FDC\u1FE1t;\u666Dig;\u8000\uFB02ns;\u65B1of;\u4192\u01F0\u1FEE\0\u1FF3f;\uC000\u{1D557}\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\u{1D4BB}\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\u{1D524}\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\u{1D558}\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\u{1D525}s\u0100ew\u2223\u2229arow;\u6925arow;\u6926\u0280amopr\u223A\u223E\u2243\u225E\u2263rr;\u61FFtht;\u623Bk\u0100lr\u2249\u2253eftarrow;\u61A9ightarrow;\u61AAf;\uC000\u{1D559}bar;\u6015\u0180clt\u226F\u2274\u2278r;\uC000\u{1D4BD}as\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\u{1D526}rave\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\u{1D55A}a;\u43B9uest\u803B\xBF\u40BF\u0100ci\u238A\u238Fr;\uC000\u{1D4BE}n\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\u{1D527}ath;\u4237pf;\uC000\u{1D55B}\u01E3\u23EC\0\u23F1r;\uC000\u{1D4BF}rcy;\u4458kcy;\u4454\u0400acfghjos\u240B\u2416\u2422\u2427\u242D\u2431\u2435\u243Bppa\u0100;v\u2413\u2414\u43BA;\u43F0\u0100ey\u241B\u2420dil;\u4137;\u443Ar;\uC000\u{1D528}reen;\u4138cy;\u4445cy;\u445Cpf;\uC000\u{1D55C}cr;\uC000\u{1D4C0}\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\u{1D529}\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\u{1D55D}us;\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\u{1D4C1}m\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\u{1D52A}o;\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\u{1D55E}\u0100ct\u28F8\u28FDr;\uC000\u{1D4C2}pos\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\u{1D52B}\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\u{1D55F}\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\u{1D4C3}ort\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\u{1D52C}\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\u{1D560}\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\u{1D52D}\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\u{1D561}nd\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\u{1D4C5};\u43C8ncsp;\u6008\u0300fiopsu\u2FDA\u22E2\u2FDF\u2FE5\u2FEB\u2FF1r;\uC000\u{1D52E}pf;\uC000\u{1D562}rime;\u6057cr;\uC000\u{1D4C6}\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\u{1D52F}\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\u{1D563}us;\u6A2Eimes;\u6A35\u0100ap\u325D\u3267r\u0100;g\u3263\u3264\u4029t;\u6994olint;\u6A12ar\xF2\u31E3\u0200achq\u327B\u3280\u10BC\u3285quo;\u603Ar;\uC000\u{1D4C7}\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\u{1D530}\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\u{1D564}a\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\u{1D4C8}tm\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\u{1D531}\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\u{1D565}rk;\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\u{1D4C9};\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\u{1D532}rave\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\u{1D566}\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\u{1D4CA}\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\u{1D533}tr\xE9\u39AEsu\u0100bp\u39EF\u39F1\xBB\u0D1C\xBB\u0D59pf;\uC000\u{1D567}ro\xF0\u0EFBtr\xE9\u39B4\u0100cu\u3A06\u3A0Br;\uC000\u{1D4CB}\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\u{1D534}pf;\uC000\u{1D568}\u0100;e\u1479\u3A66at\xE8\u1479cr;\uC000\u{1D4CC}\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\u{1D535}\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\u{1D569}im\xE5\u17B2\u0100Aa\u3AC7\u3ACAr\xF2\u03CEr\xF2\u0A01\u0100cq\u3AD2\u17B8r;\uC000\u{1D4CD}\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\u{1D536}cy;\u4457pf;\uC000\u{1D56A}cr;\uC000\u{1D4CE}\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\u{1D537}cy;\u4436grarr;\u61DDpf;\uC000\u{1D56B}cr;\uC000\u{1D4CF}\u0100jn\u3B85\u3B87;\u600Dj;\u600C'.split("").map((c) => c.charCodeAt(0))
3297
- );
3298
-
3299
- // node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/generated/decode-data-xml.js
3300
- var decode_data_xml_default = new Uint16Array(
3301
- // prettier-ignore
3302
- "\u0200aglq \x1B\u026D\0\0p;\u4026os;\u4027t;\u403Et;\u403Cuot;\u4022".split("").map((c) => c.charCodeAt(0))
3303
- );
3304
-
3305
- // node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/decode_codepoint.js
3306
- var _a2;
3307
- var decodeMap2 = /* @__PURE__ */ new Map([
3308
- [0, 65533],
3309
- // C1 Unicode control character reference replacements
3310
- [128, 8364],
3311
- [130, 8218],
3312
- [131, 402],
3313
- [132, 8222],
3314
- [133, 8230],
3315
- [134, 8224],
3316
- [135, 8225],
3317
- [136, 710],
3318
- [137, 8240],
3319
- [138, 352],
3320
- [139, 8249],
3321
- [140, 338],
3322
- [142, 381],
3323
- [145, 8216],
3324
- [146, 8217],
3325
- [147, 8220],
3326
- [148, 8221],
3327
- [149, 8226],
3328
- [150, 8211],
3329
- [151, 8212],
3330
- [152, 732],
3331
- [153, 8482],
3332
- [154, 353],
3333
- [155, 8250],
3334
- [156, 339],
3335
- [158, 382],
3336
- [159, 376]
3337
- ]);
3338
- var fromCodePoint2 = (
3339
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, node/no-unsupported-features/es-builtins
3340
- (_a2 = String.fromCodePoint) !== null && _a2 !== void 0 ? _a2 : function(codePoint) {
3341
- let output = "";
3342
- if (codePoint > 65535) {
3343
- codePoint -= 65536;
3344
- output += String.fromCharCode(codePoint >>> 10 & 1023 | 55296);
3345
- codePoint = 56320 | codePoint & 1023;
3346
- }
3347
- output += String.fromCharCode(codePoint);
3348
- return output;
3349
- }
3350
- );
3351
- function replaceCodePoint2(codePoint) {
3352
- var _a3;
3353
- if (codePoint >= 55296 && codePoint <= 57343 || codePoint > 1114111) {
3354
- return 65533;
3355
- }
3356
- return (_a3 = decodeMap2.get(codePoint)) !== null && _a3 !== void 0 ? _a3 : codePoint;
3357
- }
3358
-
3359
- // node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/decode.js
3360
- var CharCodes3;
3361
- (function(CharCodes4) {
3362
- CharCodes4[CharCodes4["NUM"] = 35] = "NUM";
3363
- CharCodes4[CharCodes4["SEMI"] = 59] = "SEMI";
3364
- CharCodes4[CharCodes4["EQUALS"] = 61] = "EQUALS";
3365
- CharCodes4[CharCodes4["ZERO"] = 48] = "ZERO";
3366
- CharCodes4[CharCodes4["NINE"] = 57] = "NINE";
3367
- CharCodes4[CharCodes4["LOWER_A"] = 97] = "LOWER_A";
3368
- CharCodes4[CharCodes4["LOWER_F"] = 102] = "LOWER_F";
3369
- CharCodes4[CharCodes4["LOWER_X"] = 120] = "LOWER_X";
3370
- CharCodes4[CharCodes4["LOWER_Z"] = 122] = "LOWER_Z";
3371
- CharCodes4[CharCodes4["UPPER_A"] = 65] = "UPPER_A";
3372
- CharCodes4[CharCodes4["UPPER_F"] = 70] = "UPPER_F";
3373
- CharCodes4[CharCodes4["UPPER_Z"] = 90] = "UPPER_Z";
3374
- })(CharCodes3 || (CharCodes3 = {}));
3375
- var TO_LOWER_BIT2 = 32;
3376
- var BinTrieFlags2;
3377
- (function(BinTrieFlags3) {
3378
- BinTrieFlags3[BinTrieFlags3["VALUE_LENGTH"] = 49152] = "VALUE_LENGTH";
3379
- BinTrieFlags3[BinTrieFlags3["BRANCH_LENGTH"] = 16256] = "BRANCH_LENGTH";
3380
- BinTrieFlags3[BinTrieFlags3["JUMP_TABLE"] = 127] = "JUMP_TABLE";
3381
- })(BinTrieFlags2 || (BinTrieFlags2 = {}));
3382
- function isNumber2(code) {
3383
- return code >= CharCodes3.ZERO && code <= CharCodes3.NINE;
3384
- }
3385
- function isHexadecimalCharacter2(code) {
3386
- return code >= CharCodes3.UPPER_A && code <= CharCodes3.UPPER_F || code >= CharCodes3.LOWER_A && code <= CharCodes3.LOWER_F;
3387
- }
3388
- function isAsciiAlphaNumeric2(code) {
3389
- return code >= CharCodes3.UPPER_A && code <= CharCodes3.UPPER_Z || code >= CharCodes3.LOWER_A && code <= CharCodes3.LOWER_Z || isNumber2(code);
3390
- }
3391
- function isEntityInAttributeInvalidEnd2(code) {
3392
- return code === CharCodes3.EQUALS || isAsciiAlphaNumeric2(code);
3393
- }
3394
- var EntityDecoderState2;
3395
- (function(EntityDecoderState3) {
3396
- EntityDecoderState3[EntityDecoderState3["EntityStart"] = 0] = "EntityStart";
3397
- EntityDecoderState3[EntityDecoderState3["NumericStart"] = 1] = "NumericStart";
3398
- EntityDecoderState3[EntityDecoderState3["NumericDecimal"] = 2] = "NumericDecimal";
3399
- EntityDecoderState3[EntityDecoderState3["NumericHex"] = 3] = "NumericHex";
3400
- EntityDecoderState3[EntityDecoderState3["NamedEntity"] = 4] = "NamedEntity";
3401
- })(EntityDecoderState2 || (EntityDecoderState2 = {}));
3402
- var DecodingMode2;
3403
- (function(DecodingMode3) {
3404
- DecodingMode3[DecodingMode3["Legacy"] = 0] = "Legacy";
3405
- DecodingMode3[DecodingMode3["Strict"] = 1] = "Strict";
3406
- DecodingMode3[DecodingMode3["Attribute"] = 2] = "Attribute";
3407
- })(DecodingMode2 || (DecodingMode2 = {}));
3408
- var EntityDecoder2 = class {
3409
- constructor(decodeTree, emitCodePoint, errors) {
3410
- this.decodeTree = decodeTree;
3411
- this.emitCodePoint = emitCodePoint;
3412
- this.errors = errors;
3413
- this.state = EntityDecoderState2.EntityStart;
3414
- this.consumed = 1;
3415
- this.result = 0;
3416
- this.treeIndex = 0;
3417
- this.excess = 1;
3418
- this.decodeMode = DecodingMode2.Strict;
3419
- }
3420
- /** Resets the instance to make it reusable. */
3421
- startEntity(decodeMode) {
3422
- this.decodeMode = decodeMode;
3423
- this.state = EntityDecoderState2.EntityStart;
3424
- this.result = 0;
3425
- this.treeIndex = 0;
3426
- this.excess = 1;
3427
- this.consumed = 1;
3428
- }
3429
- /**
3430
- * Write an entity to the decoder. This can be called multiple times with partial entities.
3431
- * If the entity is incomplete, the decoder will return -1.
3432
- *
3433
- * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the
3434
- * entity is incomplete, and resume when the next string is written.
3435
- *
3436
- * @param string The string containing the entity (or a continuation of the entity).
3437
- * @param offset The offset at which the entity begins. Should be 0 if this is not the first call.
3438
- * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
3439
- */
3440
- write(str, offset) {
3441
- switch (this.state) {
3442
- case EntityDecoderState2.EntityStart: {
3443
- if (str.charCodeAt(offset) === CharCodes3.NUM) {
3444
- this.state = EntityDecoderState2.NumericStart;
3445
- this.consumed += 1;
3446
- return this.stateNumericStart(str, offset + 1);
3447
- }
3448
- this.state = EntityDecoderState2.NamedEntity;
3449
- return this.stateNamedEntity(str, offset);
3450
- }
3451
- case EntityDecoderState2.NumericStart: {
3452
- return this.stateNumericStart(str, offset);
3453
- }
3454
- case EntityDecoderState2.NumericDecimal: {
3455
- return this.stateNumericDecimal(str, offset);
3456
- }
3457
- case EntityDecoderState2.NumericHex: {
3458
- return this.stateNumericHex(str, offset);
3459
- }
3460
- case EntityDecoderState2.NamedEntity: {
3461
- return this.stateNamedEntity(str, offset);
3462
- }
3463
- }
3464
- }
3465
- /**
3466
- * Switches between the numeric decimal and hexadecimal states.
3467
- *
3468
- * Equivalent to the `Numeric character reference state` in the HTML spec.
3469
- *
3470
- * @param str The string containing the entity (or a continuation of the entity).
3471
- * @param offset The current offset.
3472
- * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
3473
- */
3474
- stateNumericStart(str, offset) {
3475
- if (offset >= str.length) {
3476
- return -1;
3477
- }
3478
- if ((str.charCodeAt(offset) | TO_LOWER_BIT2) === CharCodes3.LOWER_X) {
3479
- this.state = EntityDecoderState2.NumericHex;
3480
- this.consumed += 1;
3481
- return this.stateNumericHex(str, offset + 1);
3482
- }
3483
- this.state = EntityDecoderState2.NumericDecimal;
3484
- return this.stateNumericDecimal(str, offset);
3485
- }
3486
- addToNumericResult(str, start, end, base) {
3487
- if (start !== end) {
3488
- const digitCount = end - start;
3489
- this.result = this.result * Math.pow(base, digitCount) + parseInt(str.substr(start, digitCount), base);
3490
- this.consumed += digitCount;
3491
- }
3492
- }
3493
- /**
3494
- * Parses a hexadecimal numeric entity.
3495
- *
3496
- * Equivalent to the `Hexademical character reference state` in the HTML spec.
3497
- *
3498
- * @param str The string containing the entity (or a continuation of the entity).
3499
- * @param offset The current offset.
3500
- * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
3501
- */
3502
- stateNumericHex(str, offset) {
3503
- const startIdx = offset;
3504
- while (offset < str.length) {
3505
- const char = str.charCodeAt(offset);
3506
- if (isNumber2(char) || isHexadecimalCharacter2(char)) {
3507
- offset += 1;
3508
- } else {
3509
- this.addToNumericResult(str, startIdx, offset, 16);
3510
- return this.emitNumericEntity(char, 3);
3511
- }
3512
- }
3513
- this.addToNumericResult(str, startIdx, offset, 16);
3514
- return -1;
3515
- }
3516
- /**
3517
- * Parses a decimal numeric entity.
3518
- *
3519
- * Equivalent to the `Decimal character reference state` in the HTML spec.
3520
- *
3521
- * @param str The string containing the entity (or a continuation of the entity).
3522
- * @param offset The current offset.
3523
- * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
3524
- */
3525
- stateNumericDecimal(str, offset) {
3526
- const startIdx = offset;
3527
- while (offset < str.length) {
3528
- const char = str.charCodeAt(offset);
3529
- if (isNumber2(char)) {
3530
- offset += 1;
3531
- } else {
3532
- this.addToNumericResult(str, startIdx, offset, 10);
3533
- return this.emitNumericEntity(char, 2);
3534
- }
3535
- }
3536
- this.addToNumericResult(str, startIdx, offset, 10);
3537
- return -1;
3538
- }
3539
- /**
3540
- * Validate and emit a numeric entity.
3541
- *
3542
- * Implements the logic from the `Hexademical character reference start
3543
- * state` and `Numeric character reference end state` in the HTML spec.
3544
- *
3545
- * @param lastCp The last code point of the entity. Used to see if the
3546
- * entity was terminated with a semicolon.
3547
- * @param expectedLength The minimum number of characters that should be
3548
- * consumed. Used to validate that at least one digit
3549
- * was consumed.
3550
- * @returns The number of characters that were consumed.
3551
- */
3552
- emitNumericEntity(lastCp, expectedLength) {
3553
- var _a3;
3554
- if (this.consumed <= expectedLength) {
3555
- (_a3 = this.errors) === null || _a3 === void 0 ? void 0 : _a3.absenceOfDigitsInNumericCharacterReference(this.consumed);
3556
- return 0;
3557
- }
3558
- if (lastCp === CharCodes3.SEMI) {
3559
- this.consumed += 1;
3560
- } else if (this.decodeMode === DecodingMode2.Strict) {
3561
- return 0;
3562
- }
3563
- this.emitCodePoint(replaceCodePoint2(this.result), this.consumed);
3564
- if (this.errors) {
3565
- if (lastCp !== CharCodes3.SEMI) {
3566
- this.errors.missingSemicolonAfterCharacterReference();
3567
- }
3568
- this.errors.validateNumericCharacterReference(this.result);
3569
- }
3570
- return this.consumed;
3571
- }
3572
- /**
3573
- * Parses a named entity.
3574
- *
3575
- * Equivalent to the `Named character reference state` in the HTML spec.
3576
- *
3577
- * @param str The string containing the entity (or a continuation of the entity).
3578
- * @param offset The current offset.
3579
- * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
3580
- */
3581
- stateNamedEntity(str, offset) {
3582
- const { decodeTree } = this;
3583
- let current = decodeTree[this.treeIndex];
3584
- let valueLength = (current & BinTrieFlags2.VALUE_LENGTH) >> 14;
3585
- for (; offset < str.length; offset++, this.excess++) {
3586
- const char = str.charCodeAt(offset);
3587
- this.treeIndex = determineBranch2(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char);
3588
- if (this.treeIndex < 0) {
3589
- return this.result === 0 || // If we are parsing an attribute
3590
- this.decodeMode === DecodingMode2.Attribute && // We shouldn't have consumed any characters after the entity,
3591
- (valueLength === 0 || // And there should be no invalid characters.
3592
- isEntityInAttributeInvalidEnd2(char)) ? 0 : this.emitNotTerminatedNamedEntity();
3593
- }
3594
- current = decodeTree[this.treeIndex];
3595
- valueLength = (current & BinTrieFlags2.VALUE_LENGTH) >> 14;
3596
- if (valueLength !== 0) {
3597
- if (char === CharCodes3.SEMI) {
3598
- return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);
3599
- }
3600
- if (this.decodeMode !== DecodingMode2.Strict) {
3601
- this.result = this.treeIndex;
3602
- this.consumed += this.excess;
3603
- this.excess = 0;
3604
- }
3605
- }
3606
- }
3607
- return -1;
3608
- }
3609
- /**
3610
- * Emit a named entity that was not terminated with a semicolon.
3611
- *
3612
- * @returns The number of characters consumed.
3613
- */
3614
- emitNotTerminatedNamedEntity() {
3615
- var _a3;
3616
- const { result, decodeTree } = this;
3617
- const valueLength = (decodeTree[result] & BinTrieFlags2.VALUE_LENGTH) >> 14;
3618
- this.emitNamedEntityData(result, valueLength, this.consumed);
3619
- (_a3 = this.errors) === null || _a3 === void 0 ? void 0 : _a3.missingSemicolonAfterCharacterReference();
3620
- return this.consumed;
3621
- }
3622
- /**
3623
- * Emit a named entity.
3624
- *
3625
- * @param result The index of the entity in the decode tree.
3626
- * @param valueLength The number of bytes in the entity.
3627
- * @param consumed The number of characters consumed.
3628
- *
3629
- * @returns The number of characters consumed.
3630
- */
3631
- emitNamedEntityData(result, valueLength, consumed) {
3632
- const { decodeTree } = this;
3633
- this.emitCodePoint(valueLength === 1 ? decodeTree[result] & ~BinTrieFlags2.VALUE_LENGTH : decodeTree[result + 1], consumed);
3634
- if (valueLength === 3) {
3635
- this.emitCodePoint(decodeTree[result + 2], consumed);
3636
- }
3637
- return consumed;
3638
- }
3639
- /**
3640
- * Signal to the parser that the end of the input was reached.
3641
- *
3642
- * Remaining data will be emitted and relevant errors will be produced.
3643
- *
3644
- * @returns The number of characters consumed.
3645
- */
3646
- end() {
3647
- var _a3;
3648
- switch (this.state) {
3649
- case EntityDecoderState2.NamedEntity: {
3650
- return this.result !== 0 && (this.decodeMode !== DecodingMode2.Attribute || this.result === this.treeIndex) ? this.emitNotTerminatedNamedEntity() : 0;
3651
- }
3652
- // Otherwise, emit a numeric entity if we have one.
3653
- case EntityDecoderState2.NumericDecimal: {
3654
- return this.emitNumericEntity(0, 2);
3655
- }
3656
- case EntityDecoderState2.NumericHex: {
3657
- return this.emitNumericEntity(0, 3);
3658
- }
3659
- case EntityDecoderState2.NumericStart: {
3660
- (_a3 = this.errors) === null || _a3 === void 0 ? void 0 : _a3.absenceOfDigitsInNumericCharacterReference(this.consumed);
3661
- return 0;
3662
- }
3663
- case EntityDecoderState2.EntityStart: {
3664
- return 0;
3665
- }
3666
- }
3667
- }
3668
- };
3669
- function getDecoder(decodeTree) {
3670
- let ret = "";
3671
- const decoder = new EntityDecoder2(decodeTree, (str) => ret += fromCodePoint2(str));
3672
- return function decodeWithTrie(str, decodeMode) {
3673
- let lastIndex = 0;
3674
- let offset = 0;
3675
- while ((offset = str.indexOf("&", offset)) >= 0) {
3676
- ret += str.slice(lastIndex, offset);
3677
- decoder.startEntity(decodeMode);
3678
- const len = decoder.write(
3679
- str,
3680
- // Skip the "&"
3681
- offset + 1
3682
- );
3683
- if (len < 0) {
3684
- lastIndex = offset + decoder.end();
3685
- break;
3686
- }
3687
- lastIndex = offset + len;
3688
- offset = len === 0 ? lastIndex + 1 : lastIndex;
3689
- }
3690
- const result = ret + str.slice(lastIndex);
3691
- ret = "";
3692
- return result;
3693
- };
3694
- }
3695
- function determineBranch2(decodeTree, current, nodeIdx, char) {
3696
- const branchCount = (current & BinTrieFlags2.BRANCH_LENGTH) >> 7;
3697
- const jumpOffset = current & BinTrieFlags2.JUMP_TABLE;
3698
- if (branchCount === 0) {
3699
- return jumpOffset !== 0 && char === jumpOffset ? nodeIdx : -1;
3700
- }
3701
- if (jumpOffset) {
3702
- const value = char - jumpOffset;
3703
- return value < 0 || value >= branchCount ? -1 : decodeTree[nodeIdx + value] - 1;
3704
- }
3705
- let lo = nodeIdx;
3706
- let hi = lo + branchCount - 1;
3707
- while (lo <= hi) {
3708
- const mid = lo + hi >>> 1;
3709
- const midVal = decodeTree[mid];
3710
- if (midVal < char) {
3711
- lo = mid + 1;
3712
- } else if (midVal > char) {
3713
- hi = mid - 1;
3714
- } else {
3715
- return decodeTree[mid + branchCount];
3716
- }
3717
- }
3718
- return -1;
3719
- }
3720
- var htmlDecoder = getDecoder(decode_data_html_default);
3721
- var xmlDecoder = getDecoder(decode_data_xml_default);
3722
-
3723
- // node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/generated/encode-html.js
3724
- function restoreDiff(arr) {
3725
- for (let i = 1; i < arr.length; i++) {
3726
- arr[i][0] += arr[i - 1][0] + 1;
3727
- }
3728
- return arr;
3729
- }
3730
- var encode_html_default = 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;"]]));
3731
-
3732
- // node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/escape.js
3733
- var xmlCodeMap = /* @__PURE__ */ new Map([
3734
- [34, "&quot;"],
3735
- [38, "&amp;"],
3736
- [39, "&apos;"],
3737
- [60, "&lt;"],
3738
- [62, "&gt;"]
3739
- ]);
3740
- var getCodePoint = (
3741
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
3742
- String.prototype.codePointAt != null ? (str, index) => str.codePointAt(index) : (
3743
- // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
3744
- (c, index) => (c.charCodeAt(index) & 64512) === 55296 ? (c.charCodeAt(index) - 55296) * 1024 + c.charCodeAt(index + 1) - 56320 + 65536 : c.charCodeAt(index)
3745
- )
3746
- );
3747
- function getEscaper(regex, map) {
3748
- return function escape2(data) {
3749
- let match;
3750
- let lastIdx = 0;
3751
- let result = "";
3752
- while (match = regex.exec(data)) {
3753
- if (lastIdx !== match.index) {
3754
- result += data.substring(lastIdx, match.index);
3755
- }
3756
- result += map.get(match[0].charCodeAt(0));
3757
- lastIdx = match.index + 1;
3758
- }
3759
- return result + data.substring(lastIdx);
3760
- };
3761
- }
3762
- var escapeUTF8 = getEscaper(/[&<>'"]/g, xmlCodeMap);
3763
- var escapeAttribute = getEscaper(/["&\u00A0]/g, /* @__PURE__ */ new Map([
3764
- [34, "&quot;"],
3765
- [38, "&amp;"],
3766
- [160, "&nbsp;"]
3767
- ]));
3768
- var escapeText = getEscaper(/[&<>\u00A0]/g, /* @__PURE__ */ new Map([
3769
- [38, "&amp;"],
3770
- [60, "&lt;"],
3771
- [62, "&gt;"],
3772
- [160, "&nbsp;"]
3773
- ]));
3774
-
3775
- // node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/index.js
3776
- var EntityLevel;
3777
- (function(EntityLevel2) {
3778
- EntityLevel2[EntityLevel2["XML"] = 0] = "XML";
3779
- EntityLevel2[EntityLevel2["HTML"] = 1] = "HTML";
3780
- })(EntityLevel || (EntityLevel = {}));
3781
- var EncodingMode;
3782
- (function(EncodingMode2) {
3783
- EncodingMode2[EncodingMode2["UTF8"] = 0] = "UTF8";
3784
- EncodingMode2[EncodingMode2["ASCII"] = 1] = "ASCII";
3785
- EncodingMode2[EncodingMode2["Extensive"] = 2] = "Extensive";
3786
- EncodingMode2[EncodingMode2["Attribute"] = 3] = "Attribute";
3787
- EncodingMode2[EncodingMode2["Text"] = 4] = "Text";
3788
- })(EncodingMode || (EncodingMode = {}));
3789
-
3790
- // node_modules/.pnpm/dom-serializer@2.0.0/node_modules/dom-serializer/lib/esm/foreignNames.js
3791
- var elementNames = new Map([
3792
- "altGlyph",
3793
- "altGlyphDef",
3794
- "altGlyphItem",
3795
- "animateColor",
3796
- "animateMotion",
3797
- "animateTransform",
3798
- "clipPath",
3799
- "feBlend",
3800
- "feColorMatrix",
3801
- "feComponentTransfer",
3802
- "feComposite",
3803
- "feConvolveMatrix",
3804
- "feDiffuseLighting",
3805
- "feDisplacementMap",
3806
- "feDistantLight",
3807
- "feDropShadow",
3808
- "feFlood",
3809
- "feFuncA",
3810
- "feFuncB",
3811
- "feFuncG",
3812
- "feFuncR",
3813
- "feGaussianBlur",
3814
- "feImage",
3815
- "feMerge",
3816
- "feMergeNode",
3817
- "feMorphology",
3818
- "feOffset",
3819
- "fePointLight",
3820
- "feSpecularLighting",
3821
- "feSpotLight",
3822
- "feTile",
3823
- "feTurbulence",
3824
- "foreignObject",
3825
- "glyphRef",
3826
- "linearGradient",
3827
- "radialGradient",
3828
- "textPath"
3829
- ].map((val) => [val.toLowerCase(), val]));
3830
- var attributeNames = new Map([
3831
- "definitionURL",
3832
- "attributeName",
3833
- "attributeType",
3834
- "baseFrequency",
3835
- "baseProfile",
3836
- "calcMode",
3837
- "clipPathUnits",
3838
- "diffuseConstant",
3839
- "edgeMode",
3840
- "filterUnits",
3841
- "glyphRef",
3842
- "gradientTransform",
3843
- "gradientUnits",
3844
- "kernelMatrix",
3845
- "kernelUnitLength",
3846
- "keyPoints",
3847
- "keySplines",
3848
- "keyTimes",
3849
- "lengthAdjust",
3850
- "limitingConeAngle",
3851
- "markerHeight",
3852
- "markerUnits",
3853
- "markerWidth",
3854
- "maskContentUnits",
3855
- "maskUnits",
3856
- "numOctaves",
3857
- "pathLength",
3858
- "patternContentUnits",
3859
- "patternTransform",
3860
- "patternUnits",
3861
- "pointsAtX",
3862
- "pointsAtY",
3863
- "pointsAtZ",
3864
- "preserveAlpha",
3865
- "preserveAspectRatio",
3866
- "primitiveUnits",
3867
- "refX",
3868
- "refY",
3869
- "repeatCount",
3870
- "repeatDur",
3871
- "requiredExtensions",
3872
- "requiredFeatures",
3873
- "specularConstant",
3874
- "specularExponent",
3875
- "spreadMethod",
3876
- "startOffset",
3877
- "stdDeviation",
3878
- "stitchTiles",
3879
- "surfaceScale",
3880
- "systemLanguage",
3881
- "tableValues",
3882
- "targetX",
3883
- "targetY",
3884
- "textLength",
3885
- "viewBox",
3886
- "viewTarget",
3887
- "xChannelSelector",
3888
- "yChannelSelector",
3889
- "zoomAndPan"
3890
- ].map((val) => [val.toLowerCase(), val]));
3891
-
3892
- // node_modules/.pnpm/domutils@3.2.2/node_modules/domutils/lib/esm/helpers.js
3893
- var DocumentPosition;
3894
- (function(DocumentPosition2) {
3895
- DocumentPosition2[DocumentPosition2["DISCONNECTED"] = 1] = "DISCONNECTED";
3896
- DocumentPosition2[DocumentPosition2["PRECEDING"] = 2] = "PRECEDING";
3897
- DocumentPosition2[DocumentPosition2["FOLLOWING"] = 4] = "FOLLOWING";
3898
- DocumentPosition2[DocumentPosition2["CONTAINS"] = 8] = "CONTAINS";
3899
- DocumentPosition2[DocumentPosition2["CONTAINED_BY"] = 16] = "CONTAINED_BY";
3900
- })(DocumentPosition || (DocumentPosition = {}));
3901
-
3902
- // node_modules/.pnpm/htmlparser2@10.1.0/node_modules/htmlparser2/dist/esm/index.js
3670
+ // node_modules/.pnpm/htmlparser2@12.0.0/node_modules/htmlparser2/dist/index.js
3903
3671
  function parseDocument(data, options) {
3904
3672
  const handler = new DomHandler(void 0, options);
3905
3673
  new Parser(handler, options).end(data);
@@ -5000,4 +4768,4 @@ export {
5000
4768
  compile,
5001
4769
  compileIncremental
5002
4770
  };
5003
- //# sourceMappingURL=chunk-EQAUFATA.js.map
4771
+ //# sourceMappingURL=chunk-Z2CNKPVJ.js.map