@ckeditor/ckeditor5-source-editing 41.3.0-alpha.1 → 41.3.0-alpha.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (98) hide show
  1. package/dist/translations/ar.d.ts +8 -0
  2. package/dist/translations/ar.js +5 -0
  3. package/dist/translations/bg.d.ts +8 -0
  4. package/dist/translations/bg.js +5 -0
  5. package/dist/translations/bn.d.ts +8 -0
  6. package/dist/translations/bn.js +5 -0
  7. package/dist/translations/ca.d.ts +8 -0
  8. package/dist/translations/ca.js +5 -0
  9. package/dist/translations/cs.d.ts +8 -0
  10. package/dist/translations/cs.js +5 -0
  11. package/dist/translations/da.d.ts +8 -0
  12. package/dist/translations/da.js +5 -0
  13. package/dist/translations/de.d.ts +8 -0
  14. package/dist/translations/de.js +5 -0
  15. package/dist/translations/el.d.ts +8 -0
  16. package/dist/translations/el.js +5 -0
  17. package/dist/translations/en-au.d.ts +8 -0
  18. package/dist/translations/en-au.js +5 -0
  19. package/dist/translations/en.d.ts +8 -0
  20. package/dist/translations/en.js +5 -0
  21. package/dist/translations/es.d.ts +8 -0
  22. package/dist/translations/es.js +5 -0
  23. package/dist/translations/et.d.ts +8 -0
  24. package/dist/translations/et.js +5 -0
  25. package/dist/translations/fi.d.ts +8 -0
  26. package/dist/translations/fi.js +5 -0
  27. package/dist/translations/fr.d.ts +8 -0
  28. package/dist/translations/fr.js +5 -0
  29. package/dist/translations/gl.d.ts +8 -0
  30. package/dist/translations/gl.js +5 -0
  31. package/dist/translations/he.d.ts +8 -0
  32. package/dist/translations/he.js +5 -0
  33. package/dist/translations/hi.d.ts +8 -0
  34. package/dist/translations/hi.js +5 -0
  35. package/dist/translations/hr.d.ts +8 -0
  36. package/dist/translations/hr.js +5 -0
  37. package/dist/translations/hu.d.ts +8 -0
  38. package/dist/translations/hu.js +5 -0
  39. package/dist/translations/id.d.ts +8 -0
  40. package/dist/translations/id.js +5 -0
  41. package/dist/translations/it.d.ts +8 -0
  42. package/dist/translations/it.js +5 -0
  43. package/dist/translations/ja.d.ts +8 -0
  44. package/dist/translations/ja.js +5 -0
  45. package/dist/translations/ko.d.ts +8 -0
  46. package/dist/translations/ko.js +5 -0
  47. package/dist/translations/lt.d.ts +8 -0
  48. package/dist/translations/lt.js +5 -0
  49. package/dist/translations/lv.d.ts +8 -0
  50. package/dist/translations/lv.js +5 -0
  51. package/dist/translations/ms.d.ts +8 -0
  52. package/dist/translations/ms.js +5 -0
  53. package/dist/translations/nl.d.ts +8 -0
  54. package/dist/translations/nl.js +5 -0
  55. package/dist/translations/no.d.ts +8 -0
  56. package/dist/translations/no.js +5 -0
  57. package/dist/translations/pl.d.ts +8 -0
  58. package/dist/translations/pl.js +5 -0
  59. package/dist/translations/pt-br.d.ts +8 -0
  60. package/dist/translations/pt-br.js +5 -0
  61. package/dist/translations/pt.d.ts +8 -0
  62. package/dist/translations/pt.js +5 -0
  63. package/dist/translations/ro.d.ts +8 -0
  64. package/dist/translations/ro.js +5 -0
  65. package/dist/translations/ru.d.ts +8 -0
  66. package/dist/translations/ru.js +5 -0
  67. package/dist/translations/sk.d.ts +8 -0
  68. package/dist/translations/sk.js +5 -0
  69. package/dist/translations/sr-latn.d.ts +8 -0
  70. package/dist/translations/sr-latn.js +5 -0
  71. package/dist/translations/sr.d.ts +8 -0
  72. package/dist/translations/sr.js +5 -0
  73. package/dist/translations/sv.d.ts +8 -0
  74. package/dist/translations/sv.js +5 -0
  75. package/dist/translations/th.d.ts +8 -0
  76. package/dist/translations/th.js +5 -0
  77. package/dist/translations/tr.d.ts +8 -0
  78. package/dist/translations/tr.js +5 -0
  79. package/dist/translations/ug.d.ts +8 -0
  80. package/dist/translations/ug.js +5 -0
  81. package/dist/translations/uk.d.ts +8 -0
  82. package/dist/translations/uk.js +5 -0
  83. package/dist/translations/ur.d.ts +8 -0
  84. package/dist/translations/ur.js +5 -0
  85. package/dist/translations/vi.d.ts +8 -0
  86. package/dist/translations/vi.js +5 -0
  87. package/dist/translations/zh-cn.d.ts +8 -0
  88. package/dist/translations/zh-cn.js +5 -0
  89. package/dist/translations/zh.d.ts +8 -0
  90. package/dist/translations/zh.js +5 -0
  91. package/dist/types/augmentation.d.ts +4 -0
  92. package/dist/types/index.d.ts +4 -0
  93. package/dist/types/sourceediting.d.ts +4 -0
  94. package/dist/types/sourceeditingconfig.d.ts +4 -0
  95. package/dist/types/utils/formathtml.d.ts +4 -0
  96. package/package.json +3 -3
  97. package/dist/index.js +0 -490
  98. package/dist/index.js.map +0 -1
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["index.js","../src/utils/formathtml.ts","../src/sourceediting.ts"],"names":[],"mappings":"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AC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACptB;AE/JA,CAAA,CAAA,CAAA;AFiKA,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;AACrF,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO;AE/JhF,CAAA,CAAA,CAAA;AAEH,CAAA,CAAA,CAAA;AFgKA,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa;AE9JpC,CAAA,CAAA,CAAA;AAEH,CAAA,CAAA,CAAA,MAAA,CAAA,OAAA,CAAA,CAAA,CAAA;AAUA,KAAM,CAAA,wBAAwB,CAAG,CAAA,CAAA,CAAA,iBAAA,CAAmB,CAAC;AAErD,CAAA,CAAA,CAAA;AFqJA,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;AAC9B,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC3E,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,GAAG;AACnH,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AEnJzC,CAAA,CAAA,CAAA;AACkB,KAAA,CAAA,aAAc,CAAQ,OAAA,CAAA,MAAM,CAAA,CAAA;AAChD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AFqJD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU;AEnJd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACI,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,GAAA,CAAW,UAAU,CAAA,CAAA,CAAA,CAAA;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAO,CAAA,aAAA,CAAwB,CAAC;AFqJlC,CEpJE,CAAA,CAAA,CAAA,CAAA;AAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AFoJD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU;AElJd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACI,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,GAAA,CAAW,QAAQ,CAAA,CAAA,CAAA,CAAA;AFoJ3B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CEnJL,MAAO,CAAA,CAAE,cAAc,CAAW,CAAC;AFoJrC,CEnJE,CAAA,CAAA,CAAA,CAAA;AAwBD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AF6HD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU;AE3Hd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACH,CAAA,CAAA,CAAA,CAAA,WAAA,CAAa,MAAc,CAAA,CAAA,CAAA;AF6H5B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CE5HL,KAAK,CAAE,MAAM,CAAE,CAAC;AAEhB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC,GAAG,CAAE,CAAA,mBAAA,CAAqB,CAAE,CAAA,KAAK,CAAE,CAAC;AACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC,gBAAgB,CAAA,CAAA,CAAG,GAAI,CAAA,eAAe,CAAA,CAAE,CAAC;AAC9C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC,cAAc,CAAA,CAAA,CAAG,GAAI,CAAA,GAAG,CAAA,CAAE,CAAC;AAChC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC,cAAc,CAAA,CAAA,CAAG,GAAI,CAAA,GAAG,CAAA,CAAE,CAAC;AF4HlC,CE1HE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAM,CAAC,MAAM,CAAC,MAAM,CAAE,CAA0C,aAAA,CAAA,0BAAA,CAAA,CAAA,CAAE,KAAK,CAAE,CAAC;AF2H5E,CE1HE,CAAA,CAAA,CAAA,CAAA;AAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AF0HD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU;AExHd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AF0HJ,CAAC,CAAC,CAAC,CEzHK,IAAI,CAAA,CAAA,CAAA,CAAA;AF0HZ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CEzHL,IAAI,CAAC,mBAAmB,CAAA,CAAE,CAAC;AAE3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM,MAAM,CAAA,CAAA,CAAG,IAAI,CAAC,MAAM,CAAC;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM,CAAC,CAAA,CAAA,CAAG,MAAM,CAAC,CAAC,CAAC;AFyHrB,CEvHE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAM,CAAC,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAE,CAAA,aAAA,CAAe,CAAE,CAAA,MAAM,CAAG,CAAA,CAAA,CAAA,CAAA;AACzD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM,UAAU,CAAG,CAAA,CAAA,GAAA,CAAI,UAAU,CAAE,MAAM,CAAE,CAAC;AFwH/C,CEtHG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAU,CAAC,GAAG,CAAE,CAAA;AACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAK,CAAA,CAAE,CAAC,CAAE,CAAA,MAAA,CAAQ,CAAE,CAAA;AACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAA,CAAE,iBAAiB,CAAA;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAO,CAAA,CAAE,IAAI,CAAA;AACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAQ,CAAA,CAAE,IAAI,CAAA;AACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAK,CAAA,CAAE,CAA0B,EAAA,CAAA,MAAA,CAAA,OAAA,CAAA,MAAA,CAAA;AACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAC;AAEJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAU,CAAC,IAAI,CAAE,CAAM,IAAA,CAAA,CAAE,CAAC,EAAE,CAAE,IAAI,CAAE,CAAA,CAAA,mBAAA,CAAqB,CAAE,CAAC;AFsH/D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC;AEnHpF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAU,CAAC,IAAI,CAAE,CAAA,SAAA,CAAW,CAAE,CAAC,EAAE,CAChC,IAAI,CAAE,CAAA,CAAA,SAAA,CAAW,CACjB,CAAA,MAAM,CAAA,CAAE,CAAY,UAAA,CAAA,CAAA,CACpB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAE,cAAc,CAAE,CAAA,CAAE,CAAQ,MAAA,CAAA,CAAA,CAC9C,CAAE,SAAS,CAAA,CAAE,gBAAgB,CAAA,CAAE,oBAAoB,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;AFiH5D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC;AACrD,CEhHK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,CAAC,SAAS,CAAG,CAAA,CAAA;AACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAO,KAAK,CAAC;AACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AFiHN,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AE9GlD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,gBAAgB,CAAG,CAAA,CAAA;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAO,KAAK,CAAC;AACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AFgHN,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS;AACrI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;AE7G7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,oBAAoB,CAAG,CAAA,CAAA;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAO,KAAK,CAAC;AACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAO,IAAI,CAAC;AACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CACD,CAAC;AF6GL,CE3GG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC,QAAQ,CAAE,UAAU,CAAE,CAAA,CAAA,OAAA,CAAS,CAAA,CAAE,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC,mBAAmB,CAAA,CAAA,CAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC;AACtD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAE,CAAC;AAEJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAO,UAAU,CAAC;AACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAE,CAAC;AF2GN,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK;AACrI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC;AExG5F,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAK,CAAA,CAAA,IAAI,CAAC,mCAAmC,CAAA,CAAE,CAAG,CAAA,CAAA;AACjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC,EAAE,CAAE,CAA4B,MAAA,CAAA,mBAAA,CAAA,CAAA,CAAE,CAAE,GAAG,CAAE,CAAA,IAAI,CAAE,CAAA,mBAAmB,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA;AAC3E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,mBAAmB,CAAG,CAAA,CAAA;AF0G/B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CEzGd,IAAI,CAAC,kBAAkB,CAAA,CAAE,CAAC;AF0G/B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CEzGd,IAAI,CAAC,kBAAkB,CAAA,CAAE,CAAC;AF0G/B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CEzGd,IAAI,CAAC,gBAAgB,CAAA,CAAE,CAAC;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA;AF2GX,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CE1Gd,IAAI,CAAC,kBAAkB,CAAA,CAAE,CAAC;AF2G/B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CE1Gd,IAAI,CAAC,eAAe,CAAA,CAAE,CAAC;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAE,CAAC;AF2GP,CEzGG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC,EAAE,CAAE,CAAA,MAAA,CAAA,SAAA,CAAkB,CAAE,CAAA,CAAE,GAAG,CAAE,CAAA,IAAI,CAAA,CAAE,SAAS,CAAA,CAAA,CAAA,CAAA,CAAM,IAAI,CAAC,mBAAmB,CAAE,CAAC,SAAS,CAAE,CAAE,CAAC;AF0GrG,CExGG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC,QAAQ,CAAE,MAAM,CAAE,CAAA,CAAA,MAAA,CAAA,UAAA,CAAmB,CAAE,CAAA,CAAE,GAAG,CAAA,CAAE,IAAI,CAAE,CAAA,UAAU,CAAA,CAAA,CAAA,CAAA,CAAM,IAAI,CAAC,mBAAmB,CAAE,UAAU,CAAE,CAAE,CAAC;AAClH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AFyGH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;AAC5F,CEvGE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAM,CAAC,IAAI,CAAC,EAAE,CAAE,CAAA,GAAA,CAAK,CAAA,CAAE,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AFwG9B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CEvGR,EAAK,CAAA,CAAA,IAAI,CAAC,mBAAmB,CAAG,CAAA,CAAA;AFwGnC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CEvGX,IAAI,CAAC,gBAAgB,CAAA,CAAE,CAAC;AACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,CAAE,CAAE,CAAA,QAAQ,CAAA,CAAE,CAAM,IAAA,CAAA,CAAA,CAAE,CAAE,CAAC;AFwG5B,CEvGE,CAAA,CAAA,CAAA,CAAA;AAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AFuGD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;AErGvD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AFuGJ,CAAC,CAAC,CAAC,CEtGK,gBAAgB,CAAA,CAAA,CAAA,CAAA;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM,MAAM,CAAA,CAAA,CAAG,IAAI,CAAC,MAAM,CAAC;AFuG7B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CEtGL,KAAM,CAAA,IAAI,CAA2B,CAAA,CAAA,CAAA,CAAE,CAAC;AFuG1C,CErGE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAM,KAAM,CAAA,CAAE,QAAQ,CAAA,CAAE,8BAA8B,CAAE,CAAI,EAAA,CAAA,IAAI,CAAC,cAAc,CAAG,CAAA,CAAA;AFsGpF,CErGG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM,OAAO,CAAA,CAAA,CAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAE,QAAQ,CAAE,CAAC;AACpD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM,OAAO,CAAG,CAAA,CAAA,8BAA8B,CAAC,OAAO,CAAC,KAAM,CAAC;AFsGjE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC;AACtF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;AACnF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CEpGR,EAAK,CAAA,CAAA,OAAO,CAAK,CAAA,CAAA,CAAA,CAAA,OAAO,CAAG,CAAA,CAAA;AAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAE,QAAQ,CAAE,CAAA,CAAA,CAAG,OAAO,CAAC;AFqG/B,CEpGI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAE,QAAQ,CAAA,CAAE,OAAO,CAAE,CAAC;AAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AFqGH,CEnGE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,MAAM,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC,MAAM,CAAG,CAAA,CAAA;AFoGpC,CEnGG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAM,CAAC,IAAI,CAAC,GAAG,CAAE,IAAI,CAAE,CAAA,CAAA,CAAE,SAAS,CAAA,CAAE,CAAA,CAAE,UAAU,CAAA,CAAE,IAAI,CAAE,CAAA,CAAA,CAAE,4BAA4B,CAAE,CAAA,IAAI,CAAE,CAAA,CAAE,CAAC;AACjG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AFoGH,CEnGE,CAAA,CAAA,CAAA,CAAA;AFoGF,CAAC,CAAC,CAAC,CElGM,mBAAmB,CAAA,CAAA,CAAA,CAAA;AAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM,MAAM,CAAA,CAAA,CAAG,IAAI,CAAC,MAAM,CAAC;AFmG7B,CElGE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM,kBAAkB,CAAA,CAAA,CAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAE,CAA0C,aAAA,CAAA,0BAAA,CAAA,CAAE,CAAC;AFmG7F,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CEjGL,EAAK,CAAA,CAAA,CAAC,kBAAkB,CAAA,CAAA,CAAA,CAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAE,CAA8B,4BAAA,CAAA,CAAE,CAAG,CAAA,CAAA;AAClF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AFkGH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;AAC3F,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI;AAC9D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;AAC7H,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACd,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO;AAClG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG;AAC7B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,0BAA0B,CAAC;AAC/G,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACd,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa;AEhGxE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM,GAAA,CAAI,aAAa,CAAE,CAAA,MAAA,CAAA,OAAA,CAAA,YAAA,CAAA,IAAA,CAAA,IAAA,CAAA,IAAA,CAAA,aAAA,CAA0D,CAAE,CAAA,IAAI,CAAE,CAAC;AAC5F,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM,8BAA8B,CAAG,CAAA,CAAA,CAAA;AFiGzC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CEhGR,CAAiB,eAAA,CAAA,CAAA;AFiGpB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CEhGR,CAAqB,mBAAA,CAAA,CAAA;AFiGxB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CEhGR,CAAiB,eAAA,CAAA;AFiGpB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CEhGL,CAAC;AFiGJ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC;AAC/G,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACV,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI;AAClI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;AAChG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACV,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CE/FL,EAAA,CAAA,CAAK,CAAC,kBAAkB,CAAA,CAAA,CAAA,CAAI,8BAA8B,CAAC,IAAI,CAAE,UAAU,CAAA,CAAA,CAAA,CAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAE,UAAU,CAAE,CAAE,CAAG,CAAA,CAAA;AFgGtH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CE/FR,OAAO,CAAC,IAAI,CACX,CAA6G,GAAA,CAAA,WAAA,CAAA,GAAA,CAAA,MAAA,CAAA,IAAA,CAAA,GAAA,CAAA,MAAA,CAAA,OAAA,CAAA,OAAA,CAAA,GAAA,CAAA,EAAA,CAAA,KAAA,CAAA,GAAA,CAAA,EAAA,CAAA,GAAA,CAAA,aAAA,CAAA,QAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AF+FjH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CE9FX,CAA8G,MAAA,CAAA,EAAA,CAAA,OAAA,CAAA,IAAA,CAAA,GAAA,CAAA,MAAA,CAAA,OAAA,CAAA,OAAA,CAAA,GAAA,CAAA,GAAA,CAAA,IAAA,CAAA,CAAA,GAAA,CAAA,EAAA,CAAA,OAAA,CAAA,IAAA,CAAA,OAAA,CAAA,QAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;AAC9G,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,QAAA,CAAA,OAAA,CAAA,OAAA,CAAA,EAAA,CAAA,GAAA,CAAA,aAAA,CAAA,QAAA,CAAA,CAA8D,CAC9D,CAAC;AACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AF8FH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;AAC/F,CE5FE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,MAAM,CAAC,OAAO,CAAC,GAAG,CAAE,CAA8B,4BAAA,CAAA,CAAE,CAAG,CAAA,CAAA;AF6F9D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CE5FR,OAAO,CAAC,IAAI,CACX,CAA6F,GAAA,CAAA,WAAA,CAAA,GAAA,CAAA,MAAA,CAAA,IAAA,CAAA,GAAA,CAAA,MAAA,CAAA,OAAA,CAAA,OAAA,CAAA,GAAA,CAAA,UAAA,CAAA,OAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AF4FjG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CE3FX,CAA8G,MAAA,CAAA,EAAA,CAAA,OAAA,CAAA,IAAA,CAAA,GAAA,CAAA,MAAA,CAAA,OAAA,CAAA,OAAA,CAAA,GAAA,CAAA,GAAA,CAAA,IAAA,CAAA,CAAA,GAAA,CAAA,EAAA,CAAA,OAAA,CAAA,IAAA,CAAA,OAAA,CAAA,QAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;AAC9G,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,QAAA,CAAA,OAAA,CAAA,OAAA,CAAA,EAAA,CAAA,GAAA,CAAA,UAAA,CAAA,OAAA,CAAA,OAAA,CAAA,CAAkE,CAClE,CAAC;AACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AF2FH,CE1FE,CAAA,CAAA,CAAA,CAAA;AAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AF0FD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa;AACvI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACZ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACN,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AAC1I,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;AACzI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG;AAC1I,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC;AAC3I,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI;AAC5I,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG;AACzI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC3I,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;AExFnF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AF0FJ,CAAC,CAAC,CAAC,CEzFM,kBAAkB,CAAA,CAAA,CAAA,CAAA;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM,MAAM,CAAA,CAAA,CAAG,IAAI,CAAC,MAAM,CAAC;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM,WAAW,CAAG,CAAA,CAAA,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;AACxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM,KAAK,CAAA,CAAA,CAAG,MAAM,CAAC,KAAK,CAAC;AAE3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAK,CAAC,MAAM,CAAE,MAAM,CAAG,CAAA,CAAA,CAAA,CAAA;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAM,CAAC,YAAY,CAAE,IAAI,CAAE,CAAC;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAM,CAAC,wBAAwB,CAAE,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAA,CAAE,CAAE,CAAC;AAChF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAE,CAAC;AFyFN,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM;AACxI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;AACtG,CEvFE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAM,KAAM,CAAA,CAAE,QAAQ,CAAA,CAAE,cAAc,CAAE,CAAI,EAAA,CAAA,WAAW,CAAC,QAAQ,CAAG,CAAA,CAAA;AAClE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM,IAAI,CAAA,CAAA,CAAG,YAAY,CAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAE,CAAE,CAAA,QAAQ,CAAE,CAAA,CAAE,CAAE,CAAC;AFwFhE,CEtFG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM,+BAA+B,CAAA,CAAA,CAAG,aAAa,CAAE,cAAc,CAAC,aAAa,CAAE,CAAA,CAAA,QAAA,CAAU,CAAE,CAAA,CAAA;AAChG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAA,CAAE,CAAG,CAAA,CAAA,CAAA;AACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,KAAA,CAAY,CAAA,CAAE,CAA0B,MAAA,CAAA,IAAA,CAAA,OAAA,CAAA,IAAA,CAAA;AACxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAC;AFuFP,CErFG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM,8BAA8B,CAAA,CAAA,CAAG,aAAa,CAAE,cAAc,CAAC,aAAa,CAAE,CAAA,CAAA,GAAA,CAAK,CAAE,CAAA,CAAA;AAC1F,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAK,CAAA,CAAE,CAAwB,EAAA,CAAA,MAAA,CAAA,OAAA,CAAA,IAAA,CAAA,CAAA;AAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,KAAA,CAAY,CAAA,CAAE,IAAI;AAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAA,CAAE,+BAA+B,CAAE,CAAE,CAAC;AAEzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,+BAA+B,CAAC,KAAK,CAAA,CAAA,CAAG,IAAI,CAAC;AFqFhD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC;AElFlH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,+BAA+B,CAAC,iBAAiB,CAAE,CAAC,CAAE,CAAA,CAAC,CAAE,CAAC;AFoF7D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG;AAChI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC;AEjF5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,+BAA+B,CAAC,gBAAgB,CAAE,CAAA,KAAA,CAAO,CAAA,CAAE,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AFmFnE,CElFI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,8BAA8B,CAAC,OAAO,CAAC,KAAK,CAAG,CAAA,CAAA,+BAA+B,CAAC,KAAK,CAAC;AAErF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAM,CAAC,EAAE,CAAC,MAAM,CAAA,CAAE,CAAC;AACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAE,CAAC;AAEJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,WAAW,CAAC,MAAM,CAAE,MAAM,CAAG,CAAA,CAAA,CAAA,CAAA;AFiFhC,CEhFI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM,QAAQ,CAAA,CAAA,CAAG,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAE,QAAQ,CAAG,CAAC;AAE3D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAM,CAAC,QAAQ,CAAE,CAAA,EAAA,CAAA,MAAA,CAAW,CAAE,CAAA,QAAQ,CAAE,CAAC;AAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAE,CAAC;AFgFP,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC;AAC3F,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CE9ER,MAAM,CAAC,EAAE,CAAC,kBAAkB,CAAE,CAAgB,aAAA,CAAA,CAAA,CAAA,CAAA,CAAG,QAAQ,CAAA,CAAE,+BAA+B,CAAE,CAAC;AF+EhG,CE7EG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAE,QAAQ,CAAA,CAAE,8BAA8B,CAAE,CAAC;AF8EvE,CE5EG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAE,cAAc,CAAA,CAAE,8BAA8B,CAAE,CAAC;AF6EnF,CE3EG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAE,QAAQ,CAAA,CAAE,IAAI,CAAE,CAAC;AAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AF4EH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CE1EL,IAAI,CAAC,mBAAmB,CAAA,CAAE,CAAC;AF2E7B,CE1EE,CAAA,CAAA,CAAA,CAAA;AAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AF0ED,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;AExEtE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AF0EJ,CAAC,CAAC,CAAC,CEzEM,kBAAkB,CAAA,CAAA,CAAA,CAAA;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM,MAAM,CAAA,CAAA,CAAG,IAAI,CAAC,MAAM,CAAC;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM,WAAW,CAAG,CAAA,CAAA,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;AF0E1C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CExEL,IAAI,CAAC,gBAAgB,CAAA,CAAE,CAAC;AAExB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,WAAW,CAAC,MAAM,CAAE,MAAM,CAAG,CAAA,CAAA,CAAA,CAAA;AFwE/B,CEvEG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAM,KAAA,CAAM,CAAE,QAAQ,CAAE,CAAI,EAAA,CAAA,IAAI,CAAC,cAAc,CAAG,CAAA,CAAA;AACjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAM,CAAC,WAAW,CAAE,CAAA,EAAA,CAAA,MAAA,CAAW,CAAE,CAAA,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAE,QAAQ,CAAG,CAAE,CAAC;AAC7E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAE,CAAC;AAEJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAA,CAAE,CAAC;AAEhC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAA,CAAE,CAAC;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAA,CAAE,CAAC;AFsE9B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CEpEL,WAAW,CAAC,KAAK,CAAA,CAAE,CAAC;AFqEtB,CEpEE,CAAA,CAAA,CAAA,CAAA;AAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AFoED,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;AElE/E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AFoEJ,CAAC,CAAC,CAAC,CEnEM,mBAAmB,CAAA,CAAA,CAAA,CAAA;AAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM,MAAM,CAAA,CAAA,CAAG,IAAI,CAAC,MAAM,CAAC;AFoE7B,CEnEE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM,CAAE,8BAA8B,CAAE,CAAA,CAAA,CAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAA,CAAE,CAAC;AFoE1E,CEnEE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM,QAAQ,CAAG,CAAA,CAAA,8BAA8B,CAAC,aAAa,CAAE,CAAU,QAAA,CAAA,CAAG,CAAC;AFoE/E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ;AACjH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC;AACrG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS;AAC1G,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;AACpC,CElEE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAG,CAAA,CAAA,KAAK,CAAC;AFmEjD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CEjEL,QAAQ,CAAC,KAAK,CAAA,CAAE,CAAC;AFkEnB,CEjEE,CAAA,CAAA,CAAA,CAAA;AAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AFiED,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;AE/DzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AFiEJ,CAAC,CAAC,CAAC,CEhEM,gBAAgB,CAAA,CAAA,CAAA,CAAA;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM,MAAM,CAAA,CAAA,CAAG,IAAI,CAAC,MAAM,CAAC;AFiE7B,CE/DE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAM,KAAM,CAAA,OAAO,CAAI,EAAA,CAAA,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAA,CAAE,CAAG,CAAA,CAAA;AACnD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAO,CAAC,aAAa,CAAE,wBAAwB,CAAE,CAAC;AAClD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AFgEH,CE/DE,CAAA,CAAA,CAAA,CAAA;AAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AF+DD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,CAAC;AE7DrG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AF+DJ,CAAC,CAAC,CAAC,CE9DM,eAAe,CAAA,CAAA,CAAA,CAAA;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM,MAAM,CAAA,CAAA,CAAG,IAAI,CAAC,MAAM,CAAC;AF+D7B,CE7DE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAM,KAAM,CAAA,OAAO,CAAI,EAAA,CAAA,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAA,CAAE,CAAG,CAAA,CAAA;AACnD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAO,CAAC,kBAAkB,CAAE,wBAAwB,CAAE,CAAC;AACvD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AF8DH,CE7DE,CAAA,CAAA,CAAA,CAAA;AAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AF6DD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;AACpH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACN,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;AE3DjF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACK,CAAA,CAAA,CAAA,CAAA,mBAAmB,CAAE,UAAmB,CAAA,CAAA,CAAA;AAC/C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAK,CAAA,CAAA,CAAC,IAAI,CAAC,mBAAmB,CAAG,CAAA,CAAA;AF6DnC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CE5DR,MAAO,CAAA;AACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AF6DH,CE3DE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAM,KAAA,CAAM,CAAI,CAAA,CAAA,8BAA8B,CAAE,CAAI,EAAA,CAAA,IAAI,CAAC,cAAc,CAAG,CAAA,CAAA;AF4D5E,CE3DG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,8BAA8B,CAAC,aAAa,CAAE,CAAA,QAAA,CAAU,CAAG,CAAC,QAAQ,CAAG,CAAA,CAAA,UAAU,CAAC;AAClF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AF4DH,CE3DE,CAAA,CAAA,CAAA,CAAA;AAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AF2DD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI;AACzI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AEzDpF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AF2DJ,CAAC,CAAC,CAAC,CE1DM,mCAAmC,CAAA,CAAA,CAAA,CAAA;AAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM,MAAM,CAAA,CAAA,CAAG,IAAI,CAAC,MAAM,CAAC;AF2D7B,CE1DE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM,QAAQ,CAAA,CAAA,CAAG,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;AF2D3C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;AExD3E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAO,QAAQ,CAAA,CAAA,CAAA,CAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC;AF0DlD,CEzDE,CAAA,CAAA,CAAA,CAAA;AAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AFyDD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AEvDrG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AFyDJ,CAAC,CAAC,CAAC,CExDM,kBAAkB,CAAA,CAAA,CAAA,CAAA;AFyD3B,CExDE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAE,CAAQ,MAAA,CAAA,CAAE,CAAG,CAAA,CAAA;AAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAM,CAAA,YAAY,CAAW,CAAA,CAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAE,CAAA,MAAA,CAAQ,CAAE,CAAC;AFyDpE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CEvDR,EAAK,CAAA,CAAA,YAAY,CAAC,MAAM,CAAG,CAAA,CAAA;AFwD9B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CEvDX,YAAY,CAAC,IAAI,CAAA,CAAE,CAAC;AACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AFwDH,CEvDE,CAAA,CAAA,CAAA,CAAA;AACD,CAAA;AAED,CAAA,CAAA,CAAA;AFuDA,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;AAChD,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC;AAChE,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC;AErDnC,CAAA,CAAA,CAAA;AACH,QAAS,CAAA,YAAY,CAAE,KAAa,CAAA,CAAA,CAAA;AACnC,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,CAAC,MAAM,CAAE,KAAK,CAAE,CAAG,CAAA,CAAA;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAO,KAAK,CAAC;AACb,CAAA,CAAA,CAAA,CAAA,CAAA;AAED,CAAA,CAAA,CAAA,CAAA,MAAO,CAAA,UAAU,CAAE,KAAK,CAAE,CAAC;AAC5B,CAAC;AAED,CAAA,CAAA,CAAA;AFqDA,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;AACrH,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC;AEnDnC,CAAA,CAAA,CAAA;AACH,QAAS,CAAA,MAAM,CAAE,KAAa,CAAA,CAAA,CAAA;AAC7B,CAAA,CAAA,CAAA,CAAA,MAAA,CAAO,KAAK,CAAC,UAAU,CAAE,CAAA,CAAA,CAAG,CAAE,CAAC;AAChC,CAAA;AFqDA;AACA,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;AACzB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG","file":"index.js.map","sourcesContent":["import { Plugin, PendingActions } from '@ckeditor/ckeditor5-core/dist/index.js';\nimport { ButtonView } from '@ckeditor/ckeditor5-ui/dist/index.js';\nimport { ElementReplacer, CKEditorError, createElement } from '@ckeditor/ckeditor5-utils/dist/index.js';\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module source-editing/utils/formathtml\n */\n/**\n * A simple (and naive) HTML code formatter that returns a formatted HTML markup that can be easily\n * parsed by human eyes. It beautifies the HTML code by adding new lines between elements that behave like block elements\n * (https://developer.mozilla.org/en-US/docs/Web/HTML/Block-level_elements\n * and a few more like `tr`, `td`, and similar ones) and inserting indents for nested content.\n *\n * WARNING: This function works only on a text that does not contain any indentations or new lines.\n * Calling this function on the already formatted text will damage the formatting.\n *\n * @param input An HTML string to format.\n */\nfunction formatHtml(input) {\n // A list of block-like elements around which the new lines should be inserted, and within which\n // the indentation of their children should be increased.\n // The list is partially based on https://developer.mozilla.org/en-US/docs/Web/HTML/Block-level_elements that contains\n // a full list of HTML block-level elements.\n // A void element is an element that cannot have any child - https://html.spec.whatwg.org/multipage/syntax.html#void-elements.\n // Note that <pre> element is not listed on this list to avoid breaking whitespace formatting.\n // Note that <br> element is not listed and handled separately so no additional white spaces are injected.\n const elementsToFormat = [\n { name: 'address', isVoid: false },\n { name: 'article', isVoid: false },\n { name: 'aside', isVoid: false },\n { name: 'blockquote', isVoid: false },\n { name: 'details', isVoid: false },\n { name: 'dialog', isVoid: false },\n { name: 'dd', isVoid: false },\n { name: 'div', isVoid: false },\n { name: 'dl', isVoid: false },\n { name: 'dt', isVoid: false },\n { name: 'fieldset', isVoid: false },\n { name: 'figcaption', isVoid: false },\n { name: 'figure', isVoid: false },\n { name: 'footer', isVoid: false },\n { name: 'form', isVoid: false },\n { name: 'h1', isVoid: false },\n { name: 'h2', isVoid: false },\n { name: 'h3', isVoid: false },\n { name: 'h4', isVoid: false },\n { name: 'h5', isVoid: false },\n { name: 'h6', isVoid: false },\n { name: 'header', isVoid: false },\n { name: 'hgroup', isVoid: false },\n { name: 'hr', isVoid: true },\n { name: 'li', isVoid: false },\n { name: 'main', isVoid: false },\n { name: 'nav', isVoid: false },\n { name: 'ol', isVoid: false },\n { name: 'p', isVoid: false },\n { name: 'section', isVoid: false },\n { name: 'table', isVoid: false },\n { name: 'tbody', isVoid: false },\n { name: 'td', isVoid: false },\n { name: 'th', isVoid: false },\n { name: 'thead', isVoid: false },\n { name: 'tr', isVoid: false },\n { name: 'ul', isVoid: false }\n ];\n const elementNamesToFormat = elementsToFormat.map(element => element.name).join('|');\n // It is not the fastest way to format the HTML markup but the performance should be good enough.\n const lines = input\n // Add new line before and after `<tag>` and `</tag>`.\n // It may separate individual elements with two new lines, but this will be fixed below.\n .replace(new RegExp(`</?(${elementNamesToFormat})( .*?)?>`, 'g'), '\\n$&\\n')\n // Keep `<br>`s at the end of line to avoid adding additional whitespaces before `<br>`.\n .replace(/<br[^>]*>/g, '$&\\n')\n // Divide input string into lines, which start with either an opening tag, a closing tag, or just a text.\n .split('\\n');\n let indentCount = 0;\n let isPreformattedLine = false;\n return lines\n .filter(line => line.length)\n .map(line => {\n isPreformattedLine = isPreformattedBlockLine(line, isPreformattedLine);\n if (isNonVoidOpeningTag(line, elementsToFormat)) {\n return indentLine(line, indentCount++);\n }\n if (isClosingTag(line, elementsToFormat)) {\n return indentLine(line, --indentCount);\n }\n if (isPreformattedLine === 'middle' || isPreformattedLine === 'last') {\n return line;\n }\n return indentLine(line, indentCount);\n })\n .join('\\n');\n}\n/**\n * Checks, if an argument is an opening tag of a non-void element to be formatted.\n *\n * @param line String to check.\n * @param elementsToFormat Elements to be formatted.\n */\nfunction isNonVoidOpeningTag(line, elementsToFormat) {\n return elementsToFormat.some(element => {\n if (element.isVoid) {\n return false;\n }\n if (!new RegExp(`<${element.name}( .*?)?>`).test(line)) {\n return false;\n }\n return true;\n });\n}\n/**\n * Checks, if an argument is a closing tag.\n *\n * @param line String to check.\n * @param elementsToFormat Elements to be formatted.\n */\nfunction isClosingTag(line, elementsToFormat) {\n return elementsToFormat.some(element => {\n return new RegExp(`</${element.name}>`).test(line);\n });\n}\n/**\n * Indents a line by a specified number of characters.\n *\n * @param line Line to indent.\n * @param indentCount Number of characters to use for indentation.\n * @param indentChar Indentation character(s). 4 spaces by default.\n */\nfunction indentLine(line, indentCount, indentChar = ' ') {\n // More about Math.max() here in https://github.com/ckeditor/ckeditor5/issues/10698.\n return `${indentChar.repeat(Math.max(0, indentCount))}${line}`;\n}\n/**\n * Checks whether a line belongs to a preformatted (`<pre>`) block.\n *\n * @param line Line to check.\n * @param isPreviousLinePreFormatted Information on whether the previous line was preformatted (and how).\n */\nfunction isPreformattedBlockLine(line, isPreviousLinePreFormatted) {\n if (new RegExp('<pre( .*?)?>').test(line)) {\n return 'first';\n }\n else if (new RegExp('</pre>').test(line)) {\n return 'last';\n }\n else if (isPreviousLinePreFormatted === 'first' || isPreviousLinePreFormatted === 'middle') {\n return 'middle';\n }\n else {\n return false;\n }\n}\n\nvar sourceEditingIcon = \"<svg viewBox=\\\"0 0 20 20\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"m12.5 0 5 4.5v15.003h-16V0h11zM3 1.5v3.25l-1.497 1-.003 8 1.5 1v3.254L7.685 18l-.001 1.504H17.5V8.002L16 9.428l-.004-4.22-4.222-3.692L3 1.5z\\\"/><path d=\\\"M4.06 6.64a.75.75 0 0 1 .958 1.15l-.085.07L2.29 9.75l2.646 1.89c.302.216.4.62.232.951l-.058.095a.75.75 0 0 1-.951.232l-.095-.058-3.5-2.5V9.14l3.496-2.5zm4.194 6.22a.75.75 0 0 1-.958-1.149l.085-.07 2.643-1.89-2.646-1.89a.75.75 0 0 1-.232-.952l.058-.095a.75.75 0 0 1 .95-.232l.096.058 3.5 2.5v1.22l-3.496 2.5zm7.644-.836 2.122 2.122-5.825 5.809-2.125-.005.003-2.116zm2.539-1.847 1.414 1.414a.5.5 0 0 1 0 .707l-1.06 1.06-2.122-2.12 1.061-1.061a.5.5 0 0 1 .707 0z\\\"/></svg>\";\n\n/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module source-editing/sourceediting\n */\n/* global console */\nconst COMMAND_FORCE_DISABLE_ID = 'SourceEditingMode';\n/**\n * The source editing feature.\n *\n * It provides the possibility to view and edit the source of the document.\n *\n * For a detailed overview, check the {@glink features/source-editing source editing feature documentation} and the\n * {@glink api/source-editing package page}.\n */\nclass SourceEditing extends Plugin {\n /**\n * @inheritDoc\n */\n static get pluginName() {\n return 'SourceEditing';\n }\n /**\n * @inheritDoc\n */\n static get requires() {\n return [PendingActions];\n }\n /**\n * @inheritDoc\n */\n constructor(editor) {\n super(editor);\n this.set('isSourceEditingMode', false);\n this._elementReplacer = new ElementReplacer();\n this._replacedRoots = new Map();\n this._dataFromRoots = new Map();\n editor.config.define('sourceEditing.allowCollaborationFeatures', false);\n }\n /**\n * @inheritDoc\n */\n init() {\n this._checkCompatibility();\n const editor = this.editor;\n const t = editor.t;\n editor.ui.componentFactory.add('sourceEditing', locale => {\n const buttonView = new ButtonView(locale);\n buttonView.set({\n label: t('Source'),\n icon: sourceEditingIcon,\n tooltip: true,\n withText: true,\n class: 'ck-source-editing-button'\n });\n buttonView.bind('isOn').to(this, 'isSourceEditingMode');\n // The button should be disabled if one of the following conditions is met:\n buttonView.bind('isEnabled').to(this, 'isEnabled', editor, 'isReadOnly', editor.plugins.get(PendingActions), 'hasAny', (isEnabled, isEditorReadOnly, hasAnyPendingActions) => {\n // (1) The plugin itself is disabled.\n if (!isEnabled) {\n return false;\n }\n // (2) The editor is in read-only mode.\n if (isEditorReadOnly) {\n return false;\n }\n // (3) Any pending action is scheduled. It may change the model, so modifying the document source should be prevented\n // until the model is finally set.\n if (hasAnyPendingActions) {\n return false;\n }\n return true;\n });\n this.listenTo(buttonView, 'execute', () => {\n this.isSourceEditingMode = !this.isSourceEditingMode;\n });\n return buttonView;\n });\n // Currently, the plugin handles the source editing mode by itself only for the classic editor. To use this plugin with other\n // integrations, listen to the `change:isSourceEditingMode` event and act accordingly.\n if (this._isAllowedToHandleSourceEditingMode()) {\n this.on('change:isSourceEditingMode', (evt, name, isSourceEditingMode) => {\n if (isSourceEditingMode) {\n this._hideVisibleDialog();\n this._showSourceEditing();\n this._disableCommands();\n }\n else {\n this._hideSourceEditing();\n this._enableCommands();\n }\n });\n this.on('change:isEnabled', (evt, name, isEnabled) => this._handleReadOnlyMode(!isEnabled));\n this.listenTo(editor, 'change:isReadOnly', (evt, name, isReadOnly) => this._handleReadOnlyMode(isReadOnly));\n }\n // Update the editor data while calling editor.getData() in the source editing mode.\n editor.data.on('get', () => {\n if (this.isSourceEditingMode) {\n this.updateEditorData();\n }\n }, { priority: 'high' });\n }\n /**\n * Updates the source data in all hidden editing roots.\n */\n updateEditorData() {\n const editor = this.editor;\n const data = {};\n for (const [rootName, domSourceEditingElementWrapper] of this._replacedRoots) {\n const oldData = this._dataFromRoots.get(rootName);\n const newData = domSourceEditingElementWrapper.dataset.value;\n // Do not set the data unless some changes have been made in the meantime.\n // This prevents empty undo steps after switching to the normal editor.\n if (oldData !== newData) {\n data[rootName] = newData;\n this._dataFromRoots.set(rootName, newData);\n }\n }\n if (Object.keys(data).length) {\n editor.data.set(data, { batchType: { isUndoable: true }, suppressErrorInCollaboration: true });\n }\n }\n _checkCompatibility() {\n const editor = this.editor;\n const allowCollaboration = editor.config.get('sourceEditing.allowCollaborationFeatures');\n if (!allowCollaboration && editor.plugins.has('RealTimeCollaborativeEditing')) {\n /**\n * Source editing feature is not fully compatible with real-time collaboration,\n * and using it may lead to data loss. Please read\n * {@glink features/source-editing#limitations-and-incompatibilities source editing feature guide} to learn more.\n *\n * If you understand the possible risk of data loss, you can enable the source editing\n * by setting the\n * {@link module:source-editing/sourceeditingconfig~SourceEditingConfig#allowCollaborationFeatures}\n * configuration flag to `true`.\n *\n * @error source-editing-incompatible-with-real-time-collaboration\n */\n throw new CKEditorError('source-editing-incompatible-with-real-time-collaboration', null);\n }\n const collaborationPluginNamesToWarn = [\n 'CommentsEditing',\n 'TrackChangesEditing',\n 'RevisionHistory'\n ];\n // Currently, the basic integration with Collaboration Features is to display a warning in the console.\n //\n // If `allowCollaboration` flag is set, do not show these warnings. If the flag is set, we assume that the integrator read\n // appropriate section of the guide so there's no use to spam the console with warnings.\n //\n if (!allowCollaboration && collaborationPluginNamesToWarn.some(pluginName => editor.plugins.has(pluginName))) {\n console.warn('You initialized the editor with the source editing feature and at least one of the collaboration features. ' +\n 'Please be advised that the source editing feature may not work, and be careful when editing document source ' +\n 'that contains markers created by the collaboration features.');\n }\n // Restricted Editing integration can also lead to problems. Warn the user accordingly.\n if (editor.plugins.has('RestrictedEditingModeEditing')) {\n console.warn('You initialized the editor with the source editing feature and restricted editing feature. ' +\n 'Please be advised that the source editing feature may not work, and be careful when editing document source ' +\n 'that contains markers created by the restricted editing feature.');\n }\n }\n /**\n * Creates source editing wrappers that replace each editing root. Each wrapper contains the document source from the corresponding\n * root.\n *\n * The wrapper element contains a textarea and it solves the problem, that the textarea element cannot auto expand its height based on\n * the content it contains. The solution is to make the textarea more like a plain div element, which expands in height as much as it\n * needs to, in order to display the whole document source without scrolling. The wrapper element is a parent for the textarea and for\n * the pseudo-element `::after`, that replicates the look, content, and position of the textarea. The pseudo-element replica is hidden,\n * but it is styled to be an identical visual copy of the textarea with the same content. Then, the wrapper is a grid container and both\n * of its children (the textarea and the `::after` pseudo-element) are positioned within a CSS grid to occupy the same grid cell. The\n * content in the pseudo-element `::after` is set in CSS and it stretches the grid to the appropriate size based on the textarea value.\n * Since both children occupy the same grid cell, both have always the same height.\n */\n _showSourceEditing() {\n const editor = this.editor;\n const editingView = editor.editing.view;\n const model = editor.model;\n model.change(writer => {\n writer.setSelection(null);\n writer.removeSelectionAttribute(model.document.selection.getAttributeKeys());\n });\n // It is not needed to iterate through all editing roots, as currently the plugin supports only the Classic Editor with a single\n // main root, but this code may help understand and use this feature in external integrations.\n for (const [rootName, domRootElement] of editingView.domRoots) {\n const data = formatSource(editor.data.get({ rootName }));\n const domSourceEditingElementTextarea = createElement(domRootElement.ownerDocument, 'textarea', {\n rows: '1',\n 'aria-label': 'Source code editing area'\n });\n const domSourceEditingElementWrapper = createElement(domRootElement.ownerDocument, 'div', {\n class: 'ck-source-editing-area',\n 'data-value': data\n }, [domSourceEditingElementTextarea]);\n domSourceEditingElementTextarea.value = data;\n // Setting a value to textarea moves the input cursor to the end. We want the selection at the beginning.\n domSourceEditingElementTextarea.setSelectionRange(0, 0);\n // Bind the textarea's value to the wrapper's `data-value` property. Each change of the textarea's value updates the\n // wrapper's `data-value` property.\n domSourceEditingElementTextarea.addEventListener('input', () => {\n domSourceEditingElementWrapper.dataset.value = domSourceEditingElementTextarea.value;\n editor.ui.update();\n });\n editingView.change(writer => {\n const viewRoot = editingView.document.getRoot(rootName);\n writer.addClass('ck-hidden', viewRoot);\n });\n // Register the element so it becomes available for Alt+F10 and Esc navigation.\n editor.ui.setEditableElement('sourceEditing:' + rootName, domSourceEditingElementTextarea);\n this._replacedRoots.set(rootName, domSourceEditingElementWrapper);\n this._elementReplacer.replace(domRootElement, domSourceEditingElementWrapper);\n this._dataFromRoots.set(rootName, data);\n }\n this._focusSourceEditing();\n }\n /**\n * Restores all hidden editing roots and sets the source data in them.\n */\n _hideSourceEditing() {\n const editor = this.editor;\n const editingView = editor.editing.view;\n this.updateEditorData();\n editingView.change(writer => {\n for (const [rootName] of this._replacedRoots) {\n writer.removeClass('ck-hidden', editingView.document.getRoot(rootName));\n }\n });\n this._elementReplacer.restore();\n this._replacedRoots.clear();\n this._dataFromRoots.clear();\n editingView.focus();\n }\n /**\n * Focuses the textarea containing document source from the first editing root.\n */\n _focusSourceEditing() {\n const editor = this.editor;\n const [domSourceEditingElementWrapper] = this._replacedRoots.values();\n const textarea = domSourceEditingElementWrapper.querySelector('textarea');\n // The FocusObserver was disabled by View.render() while the DOM root was getting hidden and the replacer\n // revealed the textarea. So it couldn't notice that the DOM root got blurred in the process.\n // Let's sync this state manually here because otherwise Renderer will attempt to render selection\n // in an invisible DOM root.\n editor.editing.view.document.isFocused = false;\n textarea.focus();\n }\n /**\n * Disables all commands.\n */\n _disableCommands() {\n const editor = this.editor;\n for (const command of editor.commands.commands()) {\n command.forceDisabled(COMMAND_FORCE_DISABLE_ID);\n }\n }\n /**\n * Clears forced disable for all commands, that was previously set through {@link #_disableCommands}.\n */\n _enableCommands() {\n const editor = this.editor;\n for (const command of editor.commands.commands()) {\n command.clearForceDisabled(COMMAND_FORCE_DISABLE_ID);\n }\n }\n /**\n * Adds or removes the `readonly` attribute from the textarea from all roots, if document source mode is active.\n *\n * @param isReadOnly Indicates whether all textarea elements should be read-only.\n */\n _handleReadOnlyMode(isReadOnly) {\n if (!this.isSourceEditingMode) {\n return;\n }\n for (const [, domSourceEditingElementWrapper] of this._replacedRoots) {\n domSourceEditingElementWrapper.querySelector('textarea').readOnly = isReadOnly;\n }\n }\n /**\n * Checks, if the plugin is allowed to handle the source editing mode by itself. Currently, the source editing mode is supported only\n * for the {@link module:editor-classic/classiceditor~ClassicEditor classic editor}.\n */\n _isAllowedToHandleSourceEditingMode() {\n const editor = this.editor;\n const editable = editor.ui.view.editable;\n // Checks, if the editor's editable belongs to the editor's DOM tree.\n return editable && !editable.hasExternalElement;\n }\n /**\n * If any {@link module:ui/dialog/dialogview~DialogView editor dialog} is currently visible, hide it.\n */\n _hideVisibleDialog() {\n if (this.editor.plugins.has('Dialog')) {\n const dialogPlugin = this.editor.plugins.get('Dialog');\n if (dialogPlugin.isOpen) {\n dialogPlugin.hide();\n }\n }\n }\n}\n/**\n * Formats the content for a better readability.\n *\n * For a non-HTML source the unchanged input string is returned.\n *\n * @param input Input string to check.\n */\nfunction formatSource(input) {\n if (!isHtml(input)) {\n return input;\n }\n return formatHtml(input);\n}\n/**\n * Checks, if the document source is HTML. It is sufficient to just check the first character from the document data.\n *\n * @param input Input string to check.\n */\nfunction isHtml(input) {\n return input.startsWith('<');\n}\n\nexport { SourceEditing };\n//# sourceMappingURL=index.js.map\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module source-editing/utils/formathtml\n */\n\n/**\n * A simple (and naive) HTML code formatter that returns a formatted HTML markup that can be easily\n * parsed by human eyes. It beautifies the HTML code by adding new lines between elements that behave like block elements\n * (https://developer.mozilla.org/en-US/docs/Web/HTML/Block-level_elements\n * and a few more like `tr`, `td`, and similar ones) and inserting indents for nested content.\n *\n * WARNING: This function works only on a text that does not contain any indentations or new lines.\n * Calling this function on the already formatted text will damage the formatting.\n *\n * @param input An HTML string to format.\n */\nexport function formatHtml( input: string ): string {\n\t// A list of block-like elements around which the new lines should be inserted, and within which\n\t// the indentation of their children should be increased.\n\t// The list is partially based on https://developer.mozilla.org/en-US/docs/Web/HTML/Block-level_elements that contains\n\t// a full list of HTML block-level elements.\n\t// A void element is an element that cannot have any child - https://html.spec.whatwg.org/multipage/syntax.html#void-elements.\n\t// Note that <pre> element is not listed on this list to avoid breaking whitespace formatting.\n\t// Note that <br> element is not listed and handled separately so no additional white spaces are injected.\n\tconst elementsToFormat: Array<ElementToFormat> = [\n\t\t{ name: 'address', isVoid: false },\n\t\t{ name: 'article', isVoid: false },\n\t\t{ name: 'aside', isVoid: false },\n\t\t{ name: 'blockquote', isVoid: false },\n\t\t{ name: 'details', isVoid: false },\n\t\t{ name: 'dialog', isVoid: false },\n\t\t{ name: 'dd', isVoid: false },\n\t\t{ name: 'div', isVoid: false },\n\t\t{ name: 'dl', isVoid: false },\n\t\t{ name: 'dt', isVoid: false },\n\t\t{ name: 'fieldset', isVoid: false },\n\t\t{ name: 'figcaption', isVoid: false },\n\t\t{ name: 'figure', isVoid: false },\n\t\t{ name: 'footer', isVoid: false },\n\t\t{ name: 'form', isVoid: false },\n\t\t{ name: 'h1', isVoid: false },\n\t\t{ name: 'h2', isVoid: false },\n\t\t{ name: 'h3', isVoid: false },\n\t\t{ name: 'h4', isVoid: false },\n\t\t{ name: 'h5', isVoid: false },\n\t\t{ name: 'h6', isVoid: false },\n\t\t{ name: 'header', isVoid: false },\n\t\t{ name: 'hgroup', isVoid: false },\n\t\t{ name: 'hr', isVoid: true },\n\t\t{ name: 'li', isVoid: false },\n\t\t{ name: 'main', isVoid: false },\n\t\t{ name: 'nav', isVoid: false },\n\t\t{ name: 'ol', isVoid: false },\n\t\t{ name: 'p', isVoid: false },\n\t\t{ name: 'section', isVoid: false },\n\t\t{ name: 'table', isVoid: false },\n\t\t{ name: 'tbody', isVoid: false },\n\t\t{ name: 'td', isVoid: false },\n\t\t{ name: 'th', isVoid: false },\n\t\t{ name: 'thead', isVoid: false },\n\t\t{ name: 'tr', isVoid: false },\n\t\t{ name: 'ul', isVoid: false }\n\t];\n\n\tconst elementNamesToFormat = elementsToFormat.map( element => element.name ).join( '|' );\n\n\t// It is not the fastest way to format the HTML markup but the performance should be good enough.\n\tconst lines = input\n\t\t// Add new line before and after `<tag>` and `</tag>`.\n\t\t// It may separate individual elements with two new lines, but this will be fixed below.\n\t\t.replace( new RegExp( `</?(${ elementNamesToFormat })( .*?)?>`, 'g' ), '\\n$&\\n' )\n\t\t// Keep `<br>`s at the end of line to avoid adding additional whitespaces before `<br>`.\n\t\t.replace( /<br[^>]*>/g, '$&\\n' )\n\t\t// Divide input string into lines, which start with either an opening tag, a closing tag, or just a text.\n\t\t.split( '\\n' );\n\n\tlet indentCount = 0;\n\tlet isPreformattedLine: ReturnType<typeof isPreformattedBlockLine> = false;\n\n\treturn lines\n\t\t.filter( line => line.length )\n\t\t.map( line => {\n\t\t\tisPreformattedLine = isPreformattedBlockLine( line, isPreformattedLine );\n\n\t\t\tif ( isNonVoidOpeningTag( line, elementsToFormat ) ) {\n\t\t\t\treturn indentLine( line, indentCount++ );\n\t\t\t}\n\n\t\t\tif ( isClosingTag( line, elementsToFormat ) ) {\n\t\t\t\treturn indentLine( line, --indentCount );\n\t\t\t}\n\n\t\t\tif ( isPreformattedLine === 'middle' || isPreformattedLine === 'last' ) {\n\t\t\t\treturn line;\n\t\t\t}\n\n\t\t\treturn indentLine( line, indentCount );\n\t\t} )\n\t\t.join( '\\n' );\n}\n\n/**\n * Checks, if an argument is an opening tag of a non-void element to be formatted.\n *\n * @param line String to check.\n * @param elementsToFormat Elements to be formatted.\n */\nfunction isNonVoidOpeningTag( line: string, elementsToFormat: Array<ElementToFormat> ): boolean {\n\treturn elementsToFormat.some( element => {\n\t\tif ( element.isVoid ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif ( !new RegExp( `<${ element.name }( .*?)?>` ).test( line ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} );\n}\n\n/**\n * Checks, if an argument is a closing tag.\n *\n * @param line String to check.\n * @param elementsToFormat Elements to be formatted.\n */\nfunction isClosingTag( line: string, elementsToFormat: Array<ElementToFormat> ): boolean {\n\treturn elementsToFormat.some( element => {\n\t\treturn new RegExp( `</${ element.name }>` ).test( line );\n\t} );\n}\n\n/**\n * Indents a line by a specified number of characters.\n *\n * @param line Line to indent.\n * @param indentCount Number of characters to use for indentation.\n * @param indentChar Indentation character(s). 4 spaces by default.\n */\nfunction indentLine( line: string, indentCount: number, indentChar: string = ' ' ): string {\n\t// More about Math.max() here in https://github.com/ckeditor/ckeditor5/issues/10698.\n\treturn `${ indentChar.repeat( Math.max( 0, indentCount ) ) }${ line }`;\n}\n\n/**\n * Checks whether a line belongs to a preformatted (`<pre>`) block.\n *\n * @param line Line to check.\n * @param isPreviousLinePreFormatted Information on whether the previous line was preformatted (and how).\n */\nfunction isPreformattedBlockLine( line: string, isPreviousLinePreFormatted: 'first' | 'last' | 'middle' | false ) {\n\tif ( new RegExp( '<pre( .*?)?>' ).test( line ) ) {\n\t\treturn 'first';\n\t} else if ( new RegExp( '</pre>' ).test( line ) ) {\n\t\treturn 'last';\n\t} else if ( isPreviousLinePreFormatted === 'first' || isPreviousLinePreFormatted === 'middle' ) {\n\t\treturn 'middle';\n\t} else {\n\t\treturn false;\n\t}\n}\n\n/**\n * Element to be formatted.\n */\ninterface ElementToFormat {\n\n\t/**\n\t * Element name.\n\t */\n\tname: string;\n\n\t/**\n\t * Flag indicating whether element is a void one.\n\t */\n\tisVoid: boolean;\n}\n","/**\n * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module source-editing/sourceediting\n */\n\n/* global console */\n\nimport { type Editor, Plugin, PendingActions } from 'ckeditor5/src/core.js';\nimport { ButtonView, type Dialog } from 'ckeditor5/src/ui.js';\nimport { CKEditorError, createElement, ElementReplacer } from 'ckeditor5/src/utils.js';\nimport { formatHtml } from './utils/formathtml.js';\n\nimport '../theme/sourceediting.css';\nimport sourceEditingIcon from '../theme/icons/source-editing.svg';\n\nconst COMMAND_FORCE_DISABLE_ID = 'SourceEditingMode';\n\n/**\n * The source editing feature.\n *\n * It provides the possibility to view and edit the source of the document.\n *\n * For a detailed overview, check the {@glink features/source-editing source editing feature documentation} and the\n * {@glink api/source-editing package page}.\n */\nexport default class SourceEditing extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'SourceEditing' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ PendingActions ] as const;\n\t}\n\n\t/**\n\t * Flag indicating whether the document source mode is active.\n\t *\n\t * @observable\n\t */\n\tdeclare public isSourceEditingMode: boolean;\n\n\t/**\n\t * The element replacer instance used to replace the editing roots with the wrapper elements containing the document source.\n\t */\n\tprivate _elementReplacer: ElementReplacer;\n\n\t/**\n\t * Maps all root names to wrapper elements containing the document source.\n\t */\n\tprivate _replacedRoots: Map<string, HTMLElement>;\n\n\t/**\n\t * Maps all root names to their document data.\n\t */\n\tprivate _dataFromRoots: Map<string, string>;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\tthis.set( 'isSourceEditingMode', false );\n\t\tthis._elementReplacer = new ElementReplacer();\n\t\tthis._replacedRoots = new Map();\n\t\tthis._dataFromRoots = new Map();\n\n\t\teditor.config.define( 'sourceEditing.allowCollaborationFeatures', false );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tthis._checkCompatibility();\n\n\t\tconst editor = this.editor;\n\t\tconst t = editor.t;\n\n\t\teditor.ui.componentFactory.add( 'sourceEditing', locale => {\n\t\t\tconst buttonView = new ButtonView( locale );\n\n\t\t\tbuttonView.set( {\n\t\t\t\tlabel: t( 'Source' ),\n\t\t\t\ticon: sourceEditingIcon,\n\t\t\t\ttooltip: true,\n\t\t\t\twithText: true,\n\t\t\t\tclass: 'ck-source-editing-button'\n\t\t\t} );\n\n\t\t\tbuttonView.bind( 'isOn' ).to( this, 'isSourceEditingMode' );\n\n\t\t\t// The button should be disabled if one of the following conditions is met:\n\t\t\tbuttonView.bind( 'isEnabled' ).to(\n\t\t\t\tthis, 'isEnabled',\n\t\t\t\teditor, 'isReadOnly',\n\t\t\t\teditor.plugins.get( PendingActions ), 'hasAny',\n\t\t\t\t( isEnabled, isEditorReadOnly, hasAnyPendingActions ) => {\n\t\t\t\t\t// (1) The plugin itself is disabled.\n\t\t\t\t\tif ( !isEnabled ) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\t// (2) The editor is in read-only mode.\n\t\t\t\t\tif ( isEditorReadOnly ) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\t// (3) Any pending action is scheduled. It may change the model, so modifying the document source should be prevented\n\t\t\t\t\t// until the model is finally set.\n\t\t\t\t\tif ( hasAnyPendingActions ) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tthis.listenTo( buttonView, 'execute', () => {\n\t\t\t\tthis.isSourceEditingMode = !this.isSourceEditingMode;\n\t\t\t} );\n\n\t\t\treturn buttonView;\n\t\t} );\n\n\t\t// Currently, the plugin handles the source editing mode by itself only for the classic editor. To use this plugin with other\n\t\t// integrations, listen to the `change:isSourceEditingMode` event and act accordingly.\n\t\tif ( this._isAllowedToHandleSourceEditingMode() ) {\n\t\t\tthis.on( 'change:isSourceEditingMode', ( evt, name, isSourceEditingMode ) => {\n\t\t\t\tif ( isSourceEditingMode ) {\n\t\t\t\t\tthis._hideVisibleDialog();\n\t\t\t\t\tthis._showSourceEditing();\n\t\t\t\t\tthis._disableCommands();\n\t\t\t\t} else {\n\t\t\t\t\tthis._hideSourceEditing();\n\t\t\t\t\tthis._enableCommands();\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tthis.on( 'change:isEnabled', ( evt, name, isEnabled ) => this._handleReadOnlyMode( !isEnabled ) );\n\n\t\t\tthis.listenTo( editor, 'change:isReadOnly', ( evt, name, isReadOnly ) => this._handleReadOnlyMode( isReadOnly ) );\n\t\t}\n\n\t\t// Update the editor data while calling editor.getData() in the source editing mode.\n\t\teditor.data.on( 'get', () => {\n\t\t\tif ( this.isSourceEditingMode ) {\n\t\t\t\tthis.updateEditorData();\n\t\t\t}\n\t\t}, { priority: 'high' } );\n\t}\n\n\t/**\n\t * Updates the source data in all hidden editing roots.\n\t */\n\tpublic updateEditorData(): void {\n\t\tconst editor = this.editor;\n\t\tconst data: Record<string, string> = {};\n\n\t\tfor ( const [ rootName, domSourceEditingElementWrapper ] of this._replacedRoots ) {\n\t\t\tconst oldData = this._dataFromRoots.get( rootName );\n\t\t\tconst newData = domSourceEditingElementWrapper.dataset.value!;\n\n\t\t\t// Do not set the data unless some changes have been made in the meantime.\n\t\t\t// This prevents empty undo steps after switching to the normal editor.\n\t\t\tif ( oldData !== newData ) {\n\t\t\t\tdata[ rootName ] = newData;\n\t\t\t\tthis._dataFromRoots.set( rootName, newData );\n\t\t\t}\n\t\t}\n\n\t\tif ( Object.keys( data ).length ) {\n\t\t\teditor.data.set( data, { batchType: { isUndoable: true }, suppressErrorInCollaboration: true } );\n\t\t}\n\t}\n\n\tprivate _checkCompatibility() {\n\t\tconst editor = this.editor;\n\t\tconst allowCollaboration = editor.config.get( 'sourceEditing.allowCollaborationFeatures' );\n\n\t\tif ( !allowCollaboration && editor.plugins.has( 'RealTimeCollaborativeEditing' ) ) {\n\t\t\t/**\n\t\t\t * Source editing feature is not fully compatible with real-time collaboration,\n\t\t\t * and using it may lead to data loss. Please read\n\t\t\t * {@glink features/source-editing#limitations-and-incompatibilities source editing feature guide} to learn more.\n\t\t\t *\n\t\t\t * If you understand the possible risk of data loss, you can enable the source editing\n\t\t\t * by setting the\n\t\t\t * {@link module:source-editing/sourceeditingconfig~SourceEditingConfig#allowCollaborationFeatures}\n\t\t\t * configuration flag to `true`.\n\t\t\t *\n\t\t\t * @error source-editing-incompatible-with-real-time-collaboration\n\t\t\t */\n\t\t\tthrow new CKEditorError( 'source-editing-incompatible-with-real-time-collaboration', null );\n\t\t}\n\n\t\tconst collaborationPluginNamesToWarn = [\n\t\t\t'CommentsEditing',\n\t\t\t'TrackChangesEditing',\n\t\t\t'RevisionHistory'\n\t\t];\n\n\t\t// Currently, the basic integration with Collaboration Features is to display a warning in the console.\n\t\t//\n\t\t// If `allowCollaboration` flag is set, do not show these warnings. If the flag is set, we assume that the integrator read\n\t\t// appropriate section of the guide so there's no use to spam the console with warnings.\n\t\t//\n\t\tif ( !allowCollaboration && collaborationPluginNamesToWarn.some( pluginName => editor.plugins.has( pluginName ) ) ) {\n\t\t\tconsole.warn(\n\t\t\t\t'You initialized the editor with the source editing feature and at least one of the collaboration features. ' +\n\t\t\t\t'Please be advised that the source editing feature may not work, and be careful when editing document source ' +\n\t\t\t\t'that contains markers created by the collaboration features.'\n\t\t\t);\n\t\t}\n\n\t\t// Restricted Editing integration can also lead to problems. Warn the user accordingly.\n\t\tif ( editor.plugins.has( 'RestrictedEditingModeEditing' ) ) {\n\t\t\tconsole.warn(\n\t\t\t\t'You initialized the editor with the source editing feature and restricted editing feature. ' +\n\t\t\t\t'Please be advised that the source editing feature may not work, and be careful when editing document source ' +\n\t\t\t\t'that contains markers created by the restricted editing feature.'\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * Creates source editing wrappers that replace each editing root. Each wrapper contains the document source from the corresponding\n\t * root.\n\t *\n\t * The wrapper element contains a textarea and it solves the problem, that the textarea element cannot auto expand its height based on\n\t * the content it contains. The solution is to make the textarea more like a plain div element, which expands in height as much as it\n\t * needs to, in order to display the whole document source without scrolling. The wrapper element is a parent for the textarea and for\n\t * the pseudo-element `::after`, that replicates the look, content, and position of the textarea. The pseudo-element replica is hidden,\n\t * but it is styled to be an identical visual copy of the textarea with the same content. Then, the wrapper is a grid container and both\n\t * of its children (the textarea and the `::after` pseudo-element) are positioned within a CSS grid to occupy the same grid cell. The\n\t * content in the pseudo-element `::after` is set in CSS and it stretches the grid to the appropriate size based on the textarea value.\n\t * Since both children occupy the same grid cell, both have always the same height.\n\t */\n\tprivate _showSourceEditing(): void {\n\t\tconst editor = this.editor;\n\t\tconst editingView = editor.editing.view;\n\t\tconst model = editor.model;\n\n\t\tmodel.change( writer => {\n\t\t\twriter.setSelection( null );\n\t\t\twriter.removeSelectionAttribute( model.document.selection.getAttributeKeys() );\n\t\t} );\n\n\t\t// It is not needed to iterate through all editing roots, as currently the plugin supports only the Classic Editor with a single\n\t\t// main root, but this code may help understand and use this feature in external integrations.\n\t\tfor ( const [ rootName, domRootElement ] of editingView.domRoots ) {\n\t\t\tconst data = formatSource( editor.data.get( { rootName } ) );\n\n\t\t\tconst domSourceEditingElementTextarea = createElement( domRootElement.ownerDocument, 'textarea', {\n\t\t\t\trows: '1',\n\t\t\t\t'aria-label': 'Source code editing area'\n\t\t\t} );\n\n\t\t\tconst domSourceEditingElementWrapper = createElement( domRootElement.ownerDocument, 'div', {\n\t\t\t\tclass: 'ck-source-editing-area',\n\t\t\t\t'data-value': data\n\t\t\t}, [ domSourceEditingElementTextarea ] );\n\n\t\t\tdomSourceEditingElementTextarea.value = data;\n\n\t\t\t// Setting a value to textarea moves the input cursor to the end. We want the selection at the beginning.\n\t\t\tdomSourceEditingElementTextarea.setSelectionRange( 0, 0 );\n\n\t\t\t// Bind the textarea's value to the wrapper's `data-value` property. Each change of the textarea's value updates the\n\t\t\t// wrapper's `data-value` property.\n\t\t\tdomSourceEditingElementTextarea.addEventListener( 'input', () => {\n\t\t\t\tdomSourceEditingElementWrapper.dataset.value = domSourceEditingElementTextarea.value;\n\n\t\t\t\teditor.ui.update();\n\t\t\t} );\n\n\t\t\teditingView.change( writer => {\n\t\t\t\tconst viewRoot = editingView.document.getRoot( rootName )!;\n\n\t\t\t\twriter.addClass( 'ck-hidden', viewRoot );\n\t\t\t} );\n\n\t\t\t// Register the element so it becomes available for Alt+F10 and Esc navigation.\n\t\t\teditor.ui.setEditableElement( 'sourceEditing:' + rootName, domSourceEditingElementTextarea );\n\n\t\t\tthis._replacedRoots.set( rootName, domSourceEditingElementWrapper );\n\n\t\t\tthis._elementReplacer.replace( domRootElement, domSourceEditingElementWrapper );\n\n\t\t\tthis._dataFromRoots.set( rootName, data );\n\t\t}\n\n\t\tthis._focusSourceEditing();\n\t}\n\n\t/**\n\t * Restores all hidden editing roots and sets the source data in them.\n\t */\n\tprivate _hideSourceEditing(): void {\n\t\tconst editor = this.editor;\n\t\tconst editingView = editor.editing.view;\n\n\t\tthis.updateEditorData();\n\n\t\teditingView.change( writer => {\n\t\t\tfor ( const [ rootName ] of this._replacedRoots ) {\n\t\t\t\twriter.removeClass( 'ck-hidden', editingView.document.getRoot( rootName )! );\n\t\t\t}\n\t\t} );\n\n\t\tthis._elementReplacer.restore();\n\n\t\tthis._replacedRoots.clear();\n\t\tthis._dataFromRoots.clear();\n\n\t\teditingView.focus();\n\t}\n\n\t/**\n\t * Focuses the textarea containing document source from the first editing root.\n\t */\n\tprivate _focusSourceEditing(): void {\n\t\tconst editor = this.editor;\n\t\tconst [ domSourceEditingElementWrapper ] = this._replacedRoots.values();\n\t\tconst textarea = domSourceEditingElementWrapper.querySelector( 'textarea' )!;\n\n\t\t// The FocusObserver was disabled by View.render() while the DOM root was getting hidden and the replacer\n\t\t// revealed the textarea. So it couldn't notice that the DOM root got blurred in the process.\n\t\t// Let's sync this state manually here because otherwise Renderer will attempt to render selection\n\t\t// in an invisible DOM root.\n\t\teditor.editing.view.document.isFocused = false;\n\n\t\ttextarea.focus();\n\t}\n\n\t/**\n\t * Disables all commands.\n\t */\n\tprivate _disableCommands(): void {\n\t\tconst editor = this.editor;\n\n\t\tfor ( const command of editor.commands.commands() ) {\n\t\t\tcommand.forceDisabled( COMMAND_FORCE_DISABLE_ID );\n\t\t}\n\t}\n\n\t/**\n\t * Clears forced disable for all commands, that was previously set through {@link #_disableCommands}.\n\t */\n\tprivate _enableCommands(): void {\n\t\tconst editor = this.editor;\n\n\t\tfor ( const command of editor.commands.commands() ) {\n\t\t\tcommand.clearForceDisabled( COMMAND_FORCE_DISABLE_ID );\n\t\t}\n\t}\n\n\t/**\n\t * Adds or removes the `readonly` attribute from the textarea from all roots, if document source mode is active.\n\t *\n\t * @param isReadOnly Indicates whether all textarea elements should be read-only.\n\t */\n\tprivate _handleReadOnlyMode( isReadOnly: boolean ): void {\n\t\tif ( !this.isSourceEditingMode ) {\n\t\t\treturn;\n\t\t}\n\n\t\tfor ( const [ , domSourceEditingElementWrapper ] of this._replacedRoots ) {\n\t\t\tdomSourceEditingElementWrapper.querySelector( 'textarea' )!.readOnly = isReadOnly;\n\t\t}\n\t}\n\n\t/**\n\t * Checks, if the plugin is allowed to handle the source editing mode by itself. Currently, the source editing mode is supported only\n\t * for the {@link module:editor-classic/classiceditor~ClassicEditor classic editor}.\n\t */\n\tprivate _isAllowedToHandleSourceEditingMode(): boolean {\n\t\tconst editor = this.editor;\n\t\tconst editable = editor.ui.view.editable;\n\n\t\t// Checks, if the editor's editable belongs to the editor's DOM tree.\n\t\treturn editable && !editable.hasExternalElement;\n\t}\n\n\t/**\n\t * If any {@link module:ui/dialog/dialogview~DialogView editor dialog} is currently visible, hide it.\n\t */\n\tprivate _hideVisibleDialog(): void {\n\t\tif ( this.editor.plugins.has( 'Dialog' ) ) {\n\t\t\tconst dialogPlugin: Dialog = this.editor.plugins.get( 'Dialog' );\n\n\t\t\tif ( dialogPlugin.isOpen ) {\n\t\t\t\tdialogPlugin.hide();\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * Formats the content for a better readability.\n *\n * For a non-HTML source the unchanged input string is returned.\n *\n * @param input Input string to check.\n */\nfunction formatSource( input: string ): string {\n\tif ( !isHtml( input ) ) {\n\t\treturn input;\n\t}\n\n\treturn formatHtml( input );\n}\n\n/**\n * Checks, if the document source is HTML. It is sufficient to just check the first character from the document data.\n *\n * @param input Input string to check.\n */\nfunction isHtml( input: string ): boolean {\n\treturn input.startsWith( '<' );\n}\n"]}