swh.web 0.14.2__py3-none-any.whl → 0.15.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. swh/web/alter/forms.py +16 -16
  2. swh/web/alter/templates/admin_alteration.html +5 -5
  3. swh/web/alter/templates/alteration_details.html +2 -2
  4. swh/web/alter/templates/assistant_category.html +21 -19
  5. swh/web/alter/templates/assistant_email.html +3 -4
  6. swh/web/alter/templates/assistant_origins.html +1 -2
  7. swh/web/alter/templates/assistant_reasons.html +1 -2
  8. swh/web/alter/templates/assistant_summary.html +3 -4
  9. swh/web/alter/templates/content_policies.html +8 -15
  10. swh/web/alter/templates/includes/swh_legal.html +1 -1
  11. swh/web/alter/tests/test_views.py +2 -2
  12. swh/web/alter/urls.py +1 -1
  13. swh/web/alter/views.py +2 -2
  14. swh/web/browse/assets/browse/browse.css +10 -0
  15. swh/web/browse/assets/browse/sidetabs.js +22 -2
  16. swh/web/browse/templates/includes/sidetabs.html +20 -16
  17. swh/web/browse/templates/includes/snapshot-context.html +3 -1
  18. swh/web/save_code_now/templates/includes/take-new-snapshot.html +1 -1
  19. swh/web/static/css/browse.0a250d3b07ce628588a5.css +2 -0
  20. swh/web/static/css/browse.0a250d3b07ce628588a5.css.map +1 -0
  21. swh/web/static/js/add_forge_now.f8fa8235350a7875b4b2.js.map +1 -1
  22. swh/web/static/js/archive_coverage.71f6961fbdc0d76c313b.js +3 -0
  23. swh/web/static/js/{archive_coverage.b37e2158e800bc69180b.js.LICENSE.txt → archive_coverage.71f6961fbdc0d76c313b.js.LICENSE.txt} +1 -1
  24. swh/web/static/js/archive_coverage.71f6961fbdc0d76c313b.js.map +1 -0
  25. swh/web/static/js/auth.971392ebe3f22c222189.js.map +1 -1
  26. swh/web/static/js/{browse.b150f8992236375f2e9b.js → browse.d5014e5cae44a2cd3e6e.js} +3 -3
  27. swh/web/static/js/browse.d5014e5cae44a2cd3e6e.js.map +1 -0
  28. swh/web/static/js/deposit.060ba94288f399dfe89e.js.map +1 -1
  29. swh/web/static/js/guided_tour.3a7a41181c43663f866b.js.map +1 -1
  30. swh/web/static/js/highlightjs.19cb5fa8879fdc8357d7.js.map +1 -1
  31. swh/web/static/js/mailmap.5dc62b52b8eb18e2e8b0.js.map +1 -1
  32. swh/web/static/js/origin_visits.679992a2a951f67a08bc.js.map +1 -1
  33. swh/web/static/js/pdf.worker.min.js +1 -1
  34. swh/web/static/js/pdfjs.97ecbde9d93314dba75a.js +3 -0
  35. swh/web/static/js/pdfjs.97ecbde9d93314dba75a.js.map +1 -0
  36. swh/web/static/js/revision.c5f4750ef7caee355fd9.js.map +1 -1
  37. swh/web/static/js/save_code_now.3db9c75765eb44fe774a.js.map +1 -1
  38. swh/web/static/js/showdown.8be01722fe56f5a7c2db.js.map +1 -1
  39. swh/web/static/js/vault.8c6e8e445d128eb30488.js.map +1 -1
  40. swh/web/static/js/{vendors.076b42bbe0326fc632ae.js → vendors.532425b092b95d43a1d6.js} +3 -3
  41. swh/web/static/js/vendors.532425b092b95d43a1d6.js.map +1 -0
  42. swh/web/static/js/webapp.5427bd8b32cec7de0951.js +3 -0
  43. swh/web/static/js/{webapp.ec7025df24c9f358f1cc.js.LICENSE.txt → webapp.5427bd8b32cec7de0951.js.LICENSE.txt} +1 -1
  44. swh/web/static/js/webapp.5427bd8b32cec7de0951.js.map +1 -0
  45. swh/web/static/jssources/@iframe-resizer/child/index.umd.js +2 -2
  46. swh/web/static/jssources/@iframe-resizer/parent/index.umd.js +2 -2
  47. swh/web/static/jssources/core-js/internals/array-to-reversed.js +2 -2
  48. swh/web/static/jssources/core-js/internals/array-with.js +2 -2
  49. swh/web/static/jssources/core-js/internals/async-iterator-iteration.js +6 -1
  50. swh/web/static/jssources/core-js/internals/flatten-into-array.js +1 -1
  51. swh/web/static/jssources/core-js/internals/get-iterator-direct.js +1 -1
  52. swh/web/static/jssources/core-js/internals/install-error-cause.js +1 -1
  53. swh/web/static/jssources/core-js/internals/iterator-create-proxy.js +1 -1
  54. swh/web/static/jssources/core-js/internals/set-difference.js +1 -1
  55. swh/web/static/jssources/core-js/internals/set-intersection.js +1 -1
  56. swh/web/static/jssources/core-js/internals/set-is-disjoint-from.js +1 -1
  57. swh/web/static/jssources/core-js/internals/set-is-subset-of.js +1 -1
  58. swh/web/static/jssources/core-js/internals/set-is-superset-of.js +1 -1
  59. swh/web/static/jssources/core-js/internals/set-method-get-keys-before-cloning-detection.js +1 -1
  60. swh/web/static/jssources/core-js/internals/set-symmetric-difference.js +1 -1
  61. swh/web/static/jssources/core-js/internals/set-union.js +1 -1
  62. swh/web/static/jssources/core-js/internals/shared-store.js +2 -2
  63. swh/web/static/jssources/core-js/internals/string-pad.js +0 -1
  64. swh/web/static/jssources/core-js/modules/es.array-buffer.transfer-to-fixed-length.js +1 -1
  65. swh/web/static/jssources/core-js/modules/es.array-buffer.transfer.js +1 -1
  66. swh/web/static/jssources/core-js/modules/es.error.is-error.js +1 -1
  67. swh/web/static/jssources/core-js/modules/es.symbol.constructor.js +1 -1
  68. swh/web/static/jssources/jslicenses.json +1 -1
  69. swh/web/static/jssources/pdfjs-dist/build/pdf.worker.mjs +299 -13
  70. swh/web/static/jssources/pdfjs-dist/legacy/build/pdf.mjs +492 -113
  71. swh/web/static/jssources/swh/web/browse/assets/browse/sidetabs.js +22 -2
  72. swh/web/static/jssources/swh/web/webapp/assets/webapp/webapp-utils.js +10 -0
  73. swh/web/static/webpack-stats.json +73 -73
  74. swh/web/utils/archive.py +12 -0
  75. swh/web/utils/tests/test_archive.py +32 -15
  76. swh/web/vault/templates/includes/vault-common.html +1 -1
  77. swh/web/vault/templates/includes/vault-create-tasks.html +5 -5
  78. swh/web/webapp/assets/webapp/webapp-utils.js +10 -0
  79. swh/web/webapp/templates/includes/footer.html +1 -1
  80. swh/web/webapp/templates/includes/global-modals.html +3 -3
  81. {swh_web-0.14.2.dist-info → swh_web-0.15.0.dist-info}/METADATA +1 -1
  82. {swh_web-0.14.2.dist-info → swh_web-0.15.0.dist-info}/RECORD +89 -89
  83. swh/web/static/css/browse.5775e0a313f4ccb8aef5.css +0 -2
  84. swh/web/static/css/browse.5775e0a313f4ccb8aef5.css.map +0 -1
  85. swh/web/static/js/archive_coverage.b37e2158e800bc69180b.js +0 -3
  86. swh/web/static/js/archive_coverage.b37e2158e800bc69180b.js.map +0 -1
  87. swh/web/static/js/browse.b150f8992236375f2e9b.js.map +0 -1
  88. swh/web/static/js/pdfjs.ca88359f90430972e38c.js +0 -3
  89. swh/web/static/js/pdfjs.ca88359f90430972e38c.js.map +0 -1
  90. swh/web/static/js/vendors.076b42bbe0326fc632ae.js.map +0 -1
  91. swh/web/static/js/webapp.ec7025df24c9f358f1cc.js +0 -3
  92. swh/web/static/js/webapp.ec7025df24c9f358f1cc.js.map +0 -1
  93. /swh/web/static/js/{browse.b150f8992236375f2e9b.js.LICENSE.txt → browse.d5014e5cae44a2cd3e6e.js.LICENSE.txt} +0 -0
  94. /swh/web/static/js/{pdfjs.ca88359f90430972e38c.js.LICENSE.txt → pdfjs.97ecbde9d93314dba75a.js.LICENSE.txt} +0 -0
  95. /swh/web/static/js/{vendors.076b42bbe0326fc632ae.js.LICENSE.txt → vendors.532425b092b95d43a1d6.js.LICENSE.txt} +0 -0
  96. {swh_web-0.14.2.dist-info → swh_web-0.15.0.dist-info}/WHEEL +0 -0
  97. {swh_web-0.14.2.dist-info → swh_web-0.15.0.dist-info}/licenses/AUTHORS +0 -0
  98. {swh_web-0.14.2.dist-info → swh_web-0.15.0.dist-info}/licenses/LICENSE +0 -0
  99. {swh_web-0.14.2.dist-info → swh_web-0.15.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"js/webapp.5427bd8b32cec7de0951.js","mappings":"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AS,QAAQ,IAAS,QAAQ,IAAO,SAAS,IAAO,OAAO,EAAI,SAAS,IAAO,QAAQ,IAAO,MAAM,IAAS,OAAO,IAAO,OAAO,IAAO,OAAO,IAAS,SAAS,IAAO,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAO,OAAO,IAAS,SAAS,IAAS,SAAS,IAAO,OAAO,IAAO,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAO,OAAO,IAAO,SAAS,IAAO,SAAS,IAAO,SAAS,IAAO,SAAS,IAAS,SAAS,IAAS,SAAS,IAAO,QAAQ,IAAO,QAAQ,IAAO,QAAQ,IAAO,QAAQ,IAAO,OAAO,IAAO,OAAO,IAAO,SAAS,IAAO,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAO,QAAQ,IAAO,QAAQ,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAS,OAAO,KAAe,MAAM,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,IAAS,MAAM,KAAe,OAAO,IAAS,OAAO,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,OAAO,IAAS,OAAO,IAAO,SAAS,IAAO,SAAS,IAAS,SAAS,KAAe,MAAM,IAAS,KAAK,KAAe,OAAO,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,IAAS,KAAK,KAAe,OAAO,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAO,MAAM,IAAO,MAAM,IAAS,KAAK,IAAS,OAAO,KAAe,MAAM,KAAe,OAAO,IAAS,OAAO,KAAe,MAAM,KAAe,OAAO,IAAO,SAAS,IAAO,SAAS,IAAO,SAAS,IAAO,SAAS,IAAO,QAAQ,IAAO,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAO,OAAO,IAAO,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,GAAK,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAS,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAS,OAAO,IAAS,SAAS,KAAe,MAAM,IAAS,UAAU,KAAe,OAAO,KAAe,OAAO,IAAS,OAAO,IAAS,MAAM,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAS,SAAS,IAAS,SAAS,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAS,KAAK,KAAe,OAAO,IAAS,OAAO,IAAS,KAAK,IAAO,SAAS,IAAO,SAAS,IAAO,SAAS,IAAO,SAAS,IAAO,QAAQ,IAAO,QAAQ,IAAO,OAAO,IAAO,OAAO,IAAS,SAAS,IAAS,SAAS,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,IAAS,SAAS,IAAS,SAAS,KAAe,MAAM,KAAe,OAAO,IAAS,MAAM,KAAe,OAAO,IAAS,OAAO,KAAe,MAAM,KAAe,OAAO,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAS,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,IAAS,OAAO,KAAe,OAAO,KAAe,MAAM,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAO,SAAS,IAAO,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,MAAM,IAAS,MAAM,KAAe,OAAO,KAAe,MAAM,IAAS,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAO,OAAO,IAAO,SAAS,IAAO,SAAS,IAAO,SAAS,IAAO,SAAS,IAAO,QAAQ,IAAO,QAAQ,IAAO,OAAO,IAAO,OAAO,IAAS,SAAS,IAAS,SAAS,IAAO,SAAS,IAAO,SAAS,IAAO,SAAS,IAAO,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,IAAS,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,IAAS,OAAO,IAAS,SAAS,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,IAAS,OAAO,IAAS,KAAK,IAAS,OAAO,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAS,KAAK,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAO,QAAQ,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAO,SAAS,IAAO,SAAS,IAAO,SAAS,IAAO,SAAS,IAAS,SAAS,IAAS,SAAS,IAAO,QAAQ,IAAO,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAO,OAAO,IAAO,OAAO,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,IAAS,QAAQ,IAAS,QAAQ,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,KAAe,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAO,SAAS,IAAO,SAAS,IAAS,QAAQ,IAAS,QAAQ,IAAO,OAAO,IAAS,OAAO,KAAe,OAAO,KAAe,MAAM,KAAe,OAAO,IAAS,MAAM,IAAS,OAAO,KAAe,OAAO,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,SAAS,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAO,QAAQ,IAAO,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAS,QAAQ,IAAS,UAAU,IAAS,SAAS,IAAS,SAAS,IAAS,OAAO,IAAS,OAAO,IAAS,MAAM,IAAS,MAAM,IAAS,QAAQ,IAAS,SAAS,IAAS,QAAQ,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,SAAS,IAAS,QAAQ,IAAS,SAAS,IAAS,SAAS,IAAS,KAAK,IAAO,QAAQ,IAAS,KAAK,IAAS,KAAK,IAAS,KAAK,IAAS,KAAK,IAAS,KAAK,IAAS,UAAU,IAAS,UAAU,IAAS,KAAK,IAAS,MAAM,IAAS,KAAK,IAAS,MAAM,IAAS,OAAO,IAAS,MAAM,IAAS,QAAQ,IAAS,QAAQ,IAAS,SAAS,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,IAAS,UAAU,IAAS,OAAO,IAAS,MAAM,IAAS,OAAO,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,QAAQ,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,IAAS,OAAO,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,OAAO,IAAS,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAS,OAAO,IAAS,MAAM,IAAS,MAAM,IAAS,OAAO,IAAS,OAAO,IAAS,MAAM,IAAS,MAAM,IAAS,QAAQ,IAAS,QAAQ,IAAS,OAAO,IAAS,OAAO,IAAS,MAAM,IAAS,MAAM,IA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","sources":["webpack://swh/webpack/universalModuleDefinition","webpack://swh/webpack/runtime/load script","webpack://swh/./node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js","webpack://swh/./swh/web/webapp/assets/webapp/readme-rendering.js","webpack://swh/./swh/web/webapp/assets/webapp/webapp-utils.js","webpack://swh/./node_modules/@babel/runtime/helpers/regeneratorKeys.js","webpack://swh/./node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack://swh/./node_modules/pathifist/index.js","webpack://swh/./assets/src/utils/functions.js","webpack://swh/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://swh/./node_modules/object-fit-images/dist/ofi.common-js.js","webpack://swh/./node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js","webpack://swh/./node_modules/notebookjs/notebook.js","webpack://swh/./node_modules/@babel/runtime/helpers/regenerator.js","webpack://swh/./node_modules/html-encoder-decoder/lib/index.js","webpack://swh/./swh/web/webapp/assets/webapp/notebook-rendering.js","webpack://swh/./node_modules/js-cookie/dist/js.cookie.mjs","webpack://swh/./node_modules/@babel/runtime/helpers/OverloadYield.js","webpack://swh/./node_modules/@babel/runtime/helpers/regeneratorValues.js","webpack://swh/./swh/web/webapp/assets/webapp/code-highlighting.js","webpack://swh/./node_modules/email-validator/index.js","webpack://swh/./swh/web/webapp/assets/webapp/heading-anchors.js","webpack://swh/./node_modules/regex-escape/lib/index.js","webpack://swh/./node_modules/@babel/runtime/regenerator/index.js","webpack://swh/./node_modules/@iframe-resizer/parent/index.umd.js","webpack://swh/./node_modules/@babel/runtime/helpers/regeneratorAsync.js","webpack://swh/./swh/web/webapp/assets/webapp/pdf-rendering.js","webpack://swh/./node_modules/notebookjs/notebook.js?2bc4","webpack://swh/./node_modules/anchor-js/anchor.js","webpack://swh/./swh/web/webapp/assets/webapp/math-typesetting.js","webpack://swh/./node_modules/he/he.js","webpack://swh/./node_modules/@babel/runtime/helpers/typeof.js","webpack://swh/./node_modules/@babel/runtime/helpers/regeneratorDefine.js","webpack://swh/./swh/web/webapp/assets/webapp/history-counters.js","webpack://swh/./node_modules/iterate-object/lib/index.js","webpack://swh/./node_modules/ansi_up/ansi_up.js","webpack://swh/./node_modules/script-loader/addScript.js","webpack://swh/./swh/web/webapp/assets/webapp/status-widget.js","webpack://swh/./swh/web/webapp/assets/webapp/xss-filtering.js","webpack://swh/./node_modules/dompurify/dist/purify.es.mjs","webpack://swh/webpack/bootstrap","webpack://swh/webpack/runtime/compat get default export","webpack://swh/webpack/runtime/define property getters","webpack://swh/webpack/runtime/ensure chunk","webpack://swh/webpack/runtime/get javascript chunk filename","webpack://swh/webpack/runtime/get mini-css chunk filename","webpack://swh/webpack/runtime/global","webpack://swh/webpack/runtime/hasOwnProperty shorthand","webpack://swh/webpack/runtime/make namespace object","webpack://swh/webpack/runtime/node module decorator","webpack://swh/webpack/runtime/publicPath","webpack://swh/webpack/runtime/css loading","webpack://swh/webpack/runtime/jsonp chunk loading"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"swh\"] = factory();\n\telse\n\t\troot[\"swh\"] = root[\"swh\"] || {}, root[\"swh\"][\"webapp\"] = factory();\n})(self, function() {\nreturn ","var inProgress = {};\nvar dataWebpackPrefix = \"swh:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","var regenerator = require(\"./regenerator.js\");\nvar regeneratorAsyncIterator = require(\"./regeneratorAsyncIterator.js\");\nfunction _regeneratorAsyncGen(r, e, t, o, n) {\n return new regeneratorAsyncIterator(regenerator().w(r, e, t, o), n || Promise);\n}\nmodule.exports = _regeneratorAsyncGen, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (C) 2018-2024 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport {handleFetchError} from 'utils/functions';\nimport * as EmailValidator from 'email-validator';\nimport {decode} from 'html-encoder-decoder';\nimport {resolve} from 'pathifist';\n\nexport function addReadmeHeadingAnchors() {\n swh.webapp.addHeadingAnchors('.swh-readme');\n}\n\n// replace showdown generated relative links to archived objects in readme HTML:\n// from /browse.*/directory/<path>/.* to /browse.*/directory/?path=<path>.*\nfunction fixSwhRelativeLinksInReadme(readmeHtml) {\n // parse readme HTML\n const parser = new DOMParser();\n const document = parser.parseFromString(readmeHtml, 'text/html');\n // iterate on all links\n const links = document.querySelectorAll('a');\n for (const link of links) {\n if (!link.href.startsWith(window.origin)) {\n // not a link to the archive, nothing to do\n continue;\n }\n // get raw href node value as link.href was already processed by showdown\n const hrefVal = decodeURIComponent(link.attributes.href.nodeValue);\n try {\n // check if href value is a relative link, URL parsing will fail\n new URL(hrefVal);\n } catch (TypeError) {\n if (hrefVal.startsWith('#')) {\n // anchor link, nothing to do\n continue;\n }\n let replacement;\n if (EmailValidator.validate(hrefVal)) {\n // generate mail link\n replacement = `mailto:${hrefVal}`;\n } else {\n // resolve relative path\n const url = new URL(window.location.href);\n const currentPath = url.searchParams.get('path') || '';\n const path = resolve(currentPath, hrefVal);\n if (path.startsWith('..')) {\n // such path is not resolvable by the archive webapp\n continue;\n }\n // generate replacement URL\n if (path) {\n url.searchParams.set('path', path);\n } else {\n url.searchParams.delete('path');\n }\n replacement = url.href.replace(window.location.origin, '');\n }\n link.href = replacement;\n }\n }\n return document.documentElement.innerHTML;\n}\n\nexport async function renderMarkdown(domElt, markdownDocUrl) {\n\n const showdown = await import(/* webpackChunkName: \"showdown\" */ 'utils/showdown');\n await import(/* webpackChunkName: \"highlightjs\" */ 'utils/highlightjs');\n\n // Adapted from https://github.com/Bloggify/showdown-highlight\n // MIT License\n // Copyright (c) 2016-22 Bloggify <support@bloggify.org> (https://bloggify.org)\n function showdownHighlight() {\n return [{\n type: 'output',\n filter: function(text, converter, options) {\n const params = {\n left: '<pre><code\\\\b[^>]*>',\n right: '</code></pre>',\n flags: 'g'\n };\n\n const replacement = (wholeMatch, match, left, right) => {\n match = decode(match);\n\n let lang = (left.match(/class=\"([^ \"]+)/) || [])[1];\n\n if (!lang) {\n return wholeMatch;\n } else if (lang && lang.indexOf(',') > 0) {\n // ensure to strip any code block annotation after language\n const langNoAnnotation = lang.slice(0, lang.indexOf(','));\n left = left.replace(new RegExp(lang, 'g'), langNoAnnotation);\n lang = langNoAnnotation;\n }\n\n const classAttr = 'class=\"';\n\n if (left.includes(classAttr)) {\n const attrIndex = left.indexOf(classAttr) + classAttr.length;\n left = left.slice(0, attrIndex) + 'hljs ' + left.slice(attrIndex);\n } else {\n left = left.slice(0, -1) + ' class=\"hljs\">';\n }\n\n if (lang && hljs.getLanguage(lang)) {\n return left + hljs.highlight(match, {language: lang}).value + right;\n }\n\n return left + hljs.highlightAuto(match).value + right;\n };\n\n return showdown.helper.replaceRecursiveRegExp(\n text,\n replacement,\n params.left,\n params.right,\n params.flags\n );\n }\n }];\n }\n\n $(document).ready(async() => {\n const converter = new showdown.Converter({\n tables: true,\n extensions: [showdownHighlight]\n });\n const url = new URL(window.location.href);\n if (url.searchParams.has('origin_url')) {\n try {\n const originUrl = new URL(url.searchParams.get('origin_url'));\n if (originUrl.hostname === 'github.com') {\n converter.setFlavor('github');\n }\n } catch (TypeError) {}\n }\n\n try {\n const response = await fetch(markdownDocUrl);\n handleFetchError(response);\n const data = await response.text();\n $(domElt).addClass('swh-showdown');\n let html = converter.makeHtml(data);\n const url = new URL(window.location.href);\n if (url.pathname.indexOf('/directory/') !== -1) {\n html = fixSwhRelativeLinksInReadme(html);\n }\n $(domElt).html(swh.webapp.filterXSS(html));\n addReadmeHeadingAnchors();\n } catch (_) {\n $(domElt).text('Readme bytes are not available');\n }\n });\n\n}\n\nexport async function renderOrgData(domElt, orgDocData) {\n\n const org = await import(/* webpackChunkName: \"org\" */ 'utils/org');\n\n const parser = new org.Parser();\n const orgDocument = parser.parse(orgDocData, {toc: false});\n const orgHTMLDocument = orgDocument.convert(org.ConverterHTML, {});\n $(domElt).addClass('swh-org');\n $(domElt).html(swh.webapp.filterXSS(orgHTMLDocument.toString()));\n // remove toc and section numbers to get consistent\n // with other readme renderings\n $('.swh-org ul').first().remove();\n $('.section-number').remove();\n}\n\nexport function renderOrg(domElt, orgDocUrl) {\n $(document).ready(async() => {\n try {\n const response = await fetch(orgDocUrl);\n handleFetchError(response);\n const data = await response.text();\n renderOrgData(domElt, data);\n addReadmeHeadingAnchors();\n } catch (_) {\n $(domElt).text('Readme bytes are not available');\n }\n });\n}\n\nexport function renderTxt(domElt, txtDocUrl) {\n $(document).ready(async() => {\n try {\n const response = await fetch(txtDocUrl);\n handleFetchError(response);\n const data = await response.text();\n\n const orgMode = '-*- mode: org -*-';\n if (data.indexOf(orgMode) !== -1) {\n renderOrgData(domElt, data.replace(orgMode, ''));\n } else {\n $(domElt).addClass('swh-readme-txt');\n $(domElt)\n .html('')\n .append($('<pre></pre>').text(data));\n }\n } catch (_) {\n $(domElt).text('Readme bytes are not available');\n }\n });\n}\n","/**\n * Copyright (C) 2018-2024 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport objectFitImages from 'object-fit-images';\nimport {selectText} from 'utils/functions';\nimport Cookies from 'js-cookie';\nimport iframeResize from '@iframe-resizer/parent';\n\n$(document).ready(() => {\n // redirect to last browse page if any when clicking on the 'Browse' entry\n // in the sidebar\n $(`.swh-browse-link`).click(event => {\n const lastBrowsePage = sessionStorage.getItem('last-browse-page');\n if (lastBrowsePage) {\n event.preventDefault();\n window.location = lastBrowsePage;\n }\n });\n\n const mainSideBar = $('.app-sidebar');\n const body = $('body');\n\n function updateSidebarState() {\n if (body.hasClass('sidebar-collapse') &&\n !mainSideBar.hasClass('swh-sidebar-collapsed')) {\n mainSideBar.addClass('swh-sidebar-collapsed');\n Cookies.set('sidebar-state', 'collapsed');\n $('.swh-push-menu').attr('aria-expanded', 'false');\n $('.swh-push-menu').attr('aria-label', 'Expand sidebar');\n } else if (!body.hasClass('sidebar-collapse')) {\n mainSideBar.removeClass('swh-sidebar-collapsed');\n Cookies.set('sidebar-state', 'expanded');\n $('.swh-push-menu').attr('aria-expanded', 'true');\n $('.swh-push-menu').attr('aria-label', 'Collapse sidebar');\n }\n }\n\n $('.swh-push-menu').on('collapse.lte.push-menu', event => {\n if (body.attr('class').indexOf('sidebar-closed') !== -1) {\n // do not display sidebar when closed but no longer visible,\n // typically when browser zoom level is >= 200%,\n // in order to make it non keyboard focusable\n mainSideBar.css('display', 'none');\n }\n });\n\n // set sidebar state after collapse / expand animation\n mainSideBar.on('transitionend', evt => {\n updateSidebarState();\n });\n\n // ensure correct sidebar state when loading a page\n setTimeout(() => {\n updateSidebarState();\n });\n\n // activate css polyfill 'object-fit: contain' in old browsers\n objectFitImages();\n\n // reparent the modals to the top navigation div in order to be able\n // to display them\n $('.swh-browse-top-navigation').append($('.modal'));\n\n let selectedCode = null;\n\n function getCodeOrPreEltUnderPointer(e) {\n if (e.clientX && e.clientY) {\n const elts = document.elementsFromPoint(e.clientX, e.clientY);\n for (const elt of elts) {\n if (elt.nodeName === 'CODE' || elt.nodeName === 'PRE') {\n return elt;\n }\n }\n }\n return null;\n }\n\n // click handler to set focus on code block for copy\n $(document).click(e => {\n selectedCode = getCodeOrPreEltUnderPointer(e);\n });\n\n function selectCode(event, selectedCode) {\n if (selectedCode) {\n const hljsLnCodeElts = $(selectedCode).find('.hljs-ln-code');\n if (hljsLnCodeElts.length) {\n selectText(hljsLnCodeElts[0], hljsLnCodeElts[hljsLnCodeElts.length - 1]);\n } else {\n selectText(selectedCode.firstChild, selectedCode.lastChild);\n }\n event.preventDefault();\n }\n }\n\n // select the whole text of focused code block when user\n // double clicks or hits Ctrl+A\n $(document).dblclick(e => {\n if ((e.ctrlKey || e.metaKey)) {\n selectCode(e, getCodeOrPreEltUnderPointer(e));\n }\n });\n\n $(document).keydown(e => {\n if ((e.ctrlKey || e.metaKey) && e.key === 'a') {\n selectCode(e, selectedCode);\n }\n });\n\n // show/hide back-to-top button\n let scrollThreshold = 0;\n scrollThreshold += $('.swh-top-bar').height() || 0;\n scrollThreshold += $('.navbar').height() || 0;\n $(window).scroll(() => {\n if ($(window).scrollTop() > scrollThreshold) {\n $('#back-to-top').css('display', 'block');\n } else {\n $('#back-to-top').css('display', 'none');\n }\n });\n\n // navbar search form submission callback\n $('#swh-origins-search-top').submit(event => {\n event.preventDefault();\n if (event.target.checkValidity()) {\n $(event.target).removeClass('was-validated');\n const searchQueryText = $('#swh-origins-search-top-input').val().trim();\n const queryParameters = new URLSearchParams();\n queryParameters.append('q', searchQueryText);\n queryParameters.append('with_visit', true);\n queryParameters.append('with_content', true);\n window.location = `${Urls.browse_search()}?${queryParameters.toString()}`;\n } else {\n $(event.target).addClass('was-validated');\n }\n });\n\n // modals in DOM are forced to not be displayed by default to avoid\n // issues when animations are disabled, we need to set some event\n // handlers forcing their display/hiding to restore expected behavior\n $('.modal.fade').on('show.bs.modal', event => {\n $(event.target).removeClass('d-none');\n });\n $('.modal.fade').on('hidden.bs.modal', event => {\n $(event.target).addClass('d-none');\n });\n\n});\n\nexport function initPage(page) {\n\n $(document).ready(() => {\n // set relevant sidebar link to page active\n $(`.swh-${page}-item`).addClass('active');\n $(`.swh-${page}-link`).addClass('active');\n\n // triggered when unloading the current page\n $(window).on('unload', () => {\n // backup current browse page\n if (page === 'browse') {\n sessionStorage.setItem('last-browse-page', window.location);\n }\n });\n });\n}\n\nexport function initHomePage() {\n $(document).ready(async() => {\n // mirror version of swh-web does not have coverage widget and counters\n // in the homepage\n if (Object.keys(swh.webapp.mirrorConfig()).length === 0) {\n iframeResize({license: 'GPLv3', heightCalculationMethod: 'taggedElement'}, '.swh-coverage-iframe');\n const response = await fetch(Urls.stat_counters());\n const data = await response.json();\n\n if (data.stat_counters && !$.isEmptyObject(data.stat_counters)) {\n for (const objectType of ['content', 'revision', 'origin', 'directory', 'person', 'release']) {\n const count = data.stat_counters[objectType];\n if (count !== undefined) {\n $(`#swh-${objectType}-count`).html(count.toLocaleString());\n } else {\n $(`#swh-${objectType}-count`).closest('.swh-counter-container').hide();\n }\n }\n } else {\n $('.swh-counter').html('0');\n }\n if (data.stat_counters_history && !$.isEmptyObject(data.stat_counters_history)) {\n for (const objectType of ['content', 'revision', 'origin']) {\n const history = data.stat_counters_history[objectType];\n if (history) {\n swh.webapp.drawHistoryCounterGraph(`#swh-${objectType}-count-history`, history);\n } else {\n $(`#swh-${objectType}-count-history`).hide();\n }\n\n }\n } else {\n $('.swh-counter-history').hide();\n }\n }\n swh.webapp.addHeadingAnchors();\n });\n initPage('home');\n}\n\nexport function showModalMessage(title, message) {\n $('#swh-web-modal-message .modal-title').text(title);\n $('#swh-web-modal-message .modal-content p').text(message);\n $('#swh-web-modal-message').modal('show');\n}\n\nexport function showModalConfirm(title, message, callback) {\n $('#swh-web-modal-confirm .modal-title').text(title);\n $('#swh-web-modal-confirm .modal-content p').text(message);\n $('#swh-web-modal-confirm #swh-web-modal-confirm-ok-btn').bind('click', () => {\n callback();\n $('#swh-web-modal-confirm').modal('hide');\n $('#swh-web-modal-confirm #swh-web-modal-confirm-ok-btn').unbind('click');\n });\n $('#swh-web-modal-confirm').modal('show');\n}\n\nexport function showModalHtml(title, html, width = '500px') {\n $('#swh-web-modal-html .modal-title').text(title);\n $('#swh-web-modal-html .modal-body').html(html);\n $('#swh-web-modal-html .modal-dialog').css('max-width', width);\n $('#swh-web-modal-html .modal-dialog').css('width', width);\n $('#swh-web-modal-html').modal('show');\n}\n\nexport function addJumpToPagePopoverToDataTable(dataTableElt) {\n const ellipsisButtonSelector = '.dt-paging-button.page-item:contains(\"…\")';\n dataTableElt.on('draw.dt', function() {\n setTimeout(() => {\n $(ellipsisButtonSelector).removeClass('disabled');\n $(ellipsisButtonSelector).css('cursor', 'pointer');\n $(ellipsisButtonSelector).attr('title', 'Jump to page');\n $(ellipsisButtonSelector).on('click', event => {\n $('.popover').remove();\n const pageInfo = dataTableElt.page.info();\n let content = '<select class=\"jump-to-page\">';\n for (let i = 1; i <= pageInfo.pages; ++i) {\n let selected = '';\n if (i === pageInfo.page + 1) {\n selected = 'selected';\n }\n content += `<option value=\"${i}\" ${selected}>${i}</option>`;\n }\n content += `</select><span> / ${pageInfo.pages}</span>`;\n $(event.target).popover({\n 'title': 'Jump to page',\n 'content': content,\n 'html': true,\n 'placement': 'top',\n 'sanitizeFn': swh.webapp.filterXSS\n });\n $(event.target).popover('show');\n $('.jump-to-page').on('change', function() {\n $(ellipsisButtonSelector).popover('hide');\n const pageNumber = parseInt($(this).val()) - 1;\n dataTableElt.page(pageNumber).draw('page');\n });\n });\n }, 10);\n });\n dataTableElt.on('preXhr.dt', () => {\n $('.popover').remove();\n });\n $('body').on('click', e => {\n if ($(e.target).text() !== '…' && $(e.target).parents('.popover').length === 0) {\n $('.popover').remove();\n }\n });\n}\n\nlet swhObjectIcons;\n\nexport function setSwhObjectIcons(icons) {\n swhObjectIcons = icons;\n}\n\nexport function getSwhObjectIcon(swhObjectType) {\n return swhObjectIcons[swhObjectType];\n}\n\nlet browsedSwhObjectMetadata = {};\n\nexport function setBrowsedSwhObjectMetadata(metadata) {\n browsedSwhObjectMetadata = metadata;\n}\n\nexport function getBrowsedSwhObjectMetadata() {\n return browsedSwhObjectMetadata;\n}\n\n// This will contain a mapping between an archived object type\n// and its related SWHID metadata for each object reachable from\n// the current browse view.\n// SWHID metadata contain the following keys:\n// * object_type: type of archived object\n// * object_id: sha1 object identifier\n// * swhid: SWHID without contextual info\n// * swhid_url: URL to resolve SWHID without contextual info\n// * context: object describing SWHID context\n// * swhid_with_context: SWHID with contextual info\n// * swhid_with_context_url: URL to resolve SWHID with contextual info\nlet swhidsContext_ = {};\n\nexport function setSwhIdsContext(swhidsContext) {\n swhidsContext_ = {};\n for (const swhidContext of swhidsContext) {\n swhidsContext_[swhidContext.object_type] = swhidContext;\n }\n}\n\nexport function getSwhIdsContext() {\n return swhidsContext_;\n}\n\nfunction setFullWidth(fullWidth) {\n if (fullWidth) {\n $('#swh-web-content').removeClass('container');\n $('#swh-web-content').addClass('container-fluid');\n } else {\n $('#swh-web-content').removeClass('container-fluid');\n $('#swh-web-content').addClass('container');\n }\n localStorage.setItem('swh-web-full-width', JSON.stringify(fullWidth));\n $('#swh-full-width-switch').prop('checked', fullWidth);\n}\n\nexport function fullWidthToggled(event) {\n setFullWidth($(event.target).prop('checked'));\n}\n\nexport function setContainerFullWidth() {\n const previousFullWidthState = JSON.parse(localStorage.getItem('swh-web-full-width'));\n if (previousFullWidthState !== null) {\n setFullWidth(previousFullWidthState);\n }\n}\n\nfunction coreSWHIDIsLowerCase(swhid) {\n const qualifiersPos = swhid.indexOf(';');\n let coreSWHID = swhid;\n if (qualifiersPos !== -1) {\n coreSWHID = swhid.slice(0, qualifiersPos);\n }\n return coreSWHID.toLowerCase() === coreSWHID;\n}\n\nexport async function validateSWHIDInput(swhidInputElt) {\n const swhidInput = swhidInputElt.value.trim();\n let customValidity = '';\n if (swhidInput.toLowerCase().startsWith('swh:')) {\n if (coreSWHIDIsLowerCase(swhidInput)) {\n const resolveSWHIDUrl = Urls.api_1_resolve_swhid(swhidInput);\n const response = await fetch(resolveSWHIDUrl);\n const responseData = await response.json();\n if (responseData.hasOwnProperty('exception')) {\n customValidity = responseData.reason;\n }\n } else {\n const qualifiersPos = swhidInput.indexOf(';');\n if (qualifiersPos === -1) {\n customValidity = 'Invalid SWHID: all characters must be in lowercase. ';\n customValidity += `Valid SWHID is ${swhidInput.toLowerCase()}`;\n } else {\n customValidity = 'Invalid SWHID: the core part must be in lowercase. ';\n const coreSWHID = swhidInput.slice(0, qualifiersPos);\n customValidity += `Valid SWHID is ${swhidInput.replace(coreSWHID, coreSWHID.toLowerCase())}`;\n }\n }\n }\n swhidInputElt.setCustomValidity(customValidity);\n $(swhidInputElt).siblings('.invalid-feedback').text(customValidity);\n}\n\nexport function isUserLoggedIn() {\n return JSON.parse($('#swh_user_logged_in').text());\n}\n\nexport function isStaffUser() {\n return JSON.parse($('#swh_user_is_staff').text());\n}\n\nexport function isAmbassadorUser() {\n return JSON.parse($('#swh_user_is_ambassador').text());\n}\n\nexport function mirrorConfig() {\n return JSON.parse($('#swh_mirror_config').text());\n}\n","function _regeneratorKeys(e) {\n var n = Object(e),\n r = [];\n for (var t in n) r.unshift(t);\n return function e() {\n for (; r.length;) if ((t = r.pop()) in n) return e.value = t, e.done = !1, e;\n return e.done = !0, e;\n };\n}\nmodule.exports = _regeneratorKeys, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var OverloadYield = require(\"./OverloadYield.js\");\nvar regenerator = require(\"./regenerator.js\");\nvar regeneratorAsync = require(\"./regeneratorAsync.js\");\nvar regeneratorAsyncGen = require(\"./regeneratorAsyncGen.js\");\nvar regeneratorAsyncIterator = require(\"./regeneratorAsyncIterator.js\");\nvar regeneratorKeys = require(\"./regeneratorKeys.js\");\nvar regeneratorValues = require(\"./regeneratorValues.js\");\nfunction _regeneratorRuntime() {\n \"use strict\";\n\n var r = regenerator(),\n e = r.m(_regeneratorRuntime),\n t = (Object.getPrototypeOf ? Object.getPrototypeOf(e) : e.__proto__).constructor;\n function n(r) {\n var e = \"function\" == typeof r && r.constructor;\n return !!e && (e === t || \"GeneratorFunction\" === (e.displayName || e.name));\n }\n var o = {\n \"throw\": 1,\n \"return\": 2,\n \"break\": 3,\n \"continue\": 3\n };\n function a(r) {\n var e, t;\n return function (n) {\n e || (e = {\n stop: function stop() {\n return t(n.a, 2);\n },\n \"catch\": function _catch() {\n return n.v;\n },\n abrupt: function abrupt(r, e) {\n return t(n.a, o[r], e);\n },\n delegateYield: function delegateYield(r, o, a) {\n return e.resultName = o, t(n.d, regeneratorValues(r), a);\n },\n finish: function finish(r) {\n return t(n.f, r);\n }\n }, t = function t(r, _t, o) {\n n.p = e.prev, n.n = e.next;\n try {\n return r(_t, o);\n } finally {\n e.next = n.n;\n }\n }), e.resultName && (e[e.resultName] = n.v, e.resultName = void 0), e.sent = n.v, e.next = n.n;\n try {\n return r.call(this, e);\n } finally {\n n.p = e.prev, n.n = e.next;\n }\n };\n }\n return (module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return {\n wrap: function wrap(e, t, n, o) {\n return r.w(a(e), t, n, o && o.reverse());\n },\n isGeneratorFunction: n,\n mark: r.m,\n awrap: function awrap(r, e) {\n return new OverloadYield(r, e);\n },\n AsyncIterator: regeneratorAsyncIterator,\n async: function async(r, e, t, o, u) {\n return (n(e) ? regeneratorAsyncGen : regeneratorAsync)(a(r), e, t, o, u);\n },\n keys: regeneratorKeys,\n values: regeneratorValues\n };\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports)();\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n\nexports.resolve = function resolve() {\n return Array.prototype.slice\n .apply(arguments)\n .reduce(function(acc, curr) {\n if (curr.charAt(0) === '/') acc = [''];\n return curr.split('/').reduce(function(acc, curr) {\n if (curr === '') return acc;\n if (curr === '.' && acc.length) return acc;\n if (curr === '..' && acc.length) {\n if (acc.length === 1 && !acc[0]) return acc;\n if (acc[acc.length - 1] !== '..') {\n return acc.slice(0, acc.length - 1);\n }\n }\n return acc.concat(curr);\n }, acc);\n }, [])\n .join('/');\n};\n\nexports.join = function join() {\n return Array.prototype.join.call(arguments, '/').replace(/\\/+/g, '/');\n};\n\nexports.dedupeSlashes = function dedupeSlashes(path) {\n return path.replace(/\\/+/g, '/');\n};\n\nexports.trimSlashes = function trimSlashes(path) {\n return path.replace(/^\\/*(.*?)\\/*$/, '$1');\n};\n\nexports.ensureSlashes = function ensureSlashes(path) {\n return path.replace(/^\\/*(.*?)\\/*$/, '/$1/');\n};\n\nexports.trimLeadingSlash = function trimLeadingSlash(path) {\n return path.replace(/^\\/+/, '');\n};\n\nexports.trimTrailingSlash = function trimTrailingSlash(path) {\n return path.replace(/\\/+$/, '');\n};\n\nexports.ensureLeadingSlash = function ensureLeadingSlash(path) {\n return path.replace(/^\\/*/, '/');\n};\n\nexports.ensureTrailingSlash = function ensureTrailingSlash(path) {\n return path.replace(/\\/*$/, '/');\n};\n","/**\n * Copyright (C) 2018-2025 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n// utility functions\n\nimport Cookies from 'js-cookie';\n\nexport function handleFetchError(response) {\n if (!response.ok) {\n throw response;\n }\n return response;\n}\n\nexport function handleFetchErrors(responses) {\n for (let i = 0; i < responses.length; ++i) {\n if (!responses[i].ok) {\n throw responses[i];\n }\n }\n return responses;\n}\n\nexport function errorMessageFromResponse(errorData, defaultMessage) {\n let errorMessage = '';\n try {\n const reason = JSON.parse(errorData['reason']);\n Object.entries(reason).forEach((keys, _) => {\n const key = keys[0];\n const message = keys[1][0]; // take only the first issue\n errorMessage += `\\n${key}: ${message}`;\n });\n } catch (_) {\n errorMessage = errorData['reason']; // can't parse it, leave it raw\n }\n return errorMessage ? `Error: ${errorMessage}` : defaultMessage;\n}\n\nexport function staticAsset(asset) {\n return `${__STATIC__}${asset}`;\n}\n\nexport function csrfPost(url, headers = {}, body = null) {\n headers['X-CSRFToken'] = Cookies.get('csrftoken');\n return fetch(url, {\n credentials: 'include',\n headers: headers,\n method: 'POST',\n body: body\n });\n}\n\nexport function isGitRepoUrl(url, pathPrefix = '/') {\n const allowedProtocols = ['http:', 'https:', 'git:'];\n if (allowedProtocols.find(protocol => protocol === url.protocol) === undefined) {\n return false;\n }\n if (!url.pathname.startsWith(pathPrefix)) {\n return false;\n }\n const re = new RegExp('[\\\\w\\\\.-]+\\\\/?(?!=.git)(?:\\\\.git\\\\/?)?$');\n return re.test(url.pathname.slice(pathPrefix.length));\n};\n\nexport function removeUrlFragment() {\n history.replaceState('', document.title, window.location.pathname + window.location.search);\n}\n\nexport function selectText(startNode, endNode) {\n const selection = window.getSelection();\n selection.removeAllRanges();\n const range = document.createRange();\n range.setStart(startNode, 0);\n if (endNode.nodeName !== '#text') {\n range.setEnd(endNode, endNode.childNodes.length);\n } else {\n range.setEnd(endNode, endNode.textContent.length);\n }\n selection.addRange(range);\n}\n\nexport function textToHTML(text) {\n const textArea = document.createElement('textarea');\n textArea.innerText = text;\n return textArea.innerHTML;\n}\n\nexport function htmlAlert(type, message, closable = false) {\n let closeButton = '';\n let extraClasses = '';\n if (closable) {\n closeButton =\n `<button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"alert\" aria-label=\"Close\"></button>`;\n extraClasses = 'alert-dismissible';\n }\n return `<div class=\"alert alert-${type} ${extraClasses}\" role=\"alert\">${message}${closeButton}</div>`;\n}\n\nexport function validateUrl(url, allowedProtocols = []) {\n let originUrl = null;\n let validUrl = true;\n\n try {\n originUrl = new URL(url);\n } catch (TypeError) {\n validUrl = false;\n }\n\n if (validUrl && allowedProtocols.length) {\n validUrl = (\n allowedProtocols.find(protocol => protocol === originUrl.protocol) !== undefined\n );\n }\n\n return validUrl ? originUrl : null;\n}\n\nexport async function isArchivedOrigin(originPath, visitType) {\n if (!validateUrl(originPath)) {\n // Not a valid URL, return immediately\n return false;\n } else {\n let url = `${Urls.api_1_origin_visit_latest(originPath)}?require_snapshot=true`;\n if (visitType && visitType !== 'any') {\n url += `&visit_type=${visitType}`;\n }\n const response = await fetch(url);\n return response.ok;\n }\n}\n\nasync function getCanonicalGithubOriginURL(ownerRepo) {\n const ghApiResponse = await fetch(`https://api.github.com/repos/${ownerRepo}`);\n if (ghApiResponse.ok && ghApiResponse.status === 200) {\n const ghApiResponseData = await ghApiResponse.json();\n return ghApiResponseData.html_url;\n }\n}\n\nexport async function getCanonicalOriginURL(originUrl) {\n let originUrlLower = originUrl.toLowerCase();\n // github.com URL processing\n const ghUrlRegex = /^http[s]*:\\/\\/github.com\\//;\n if (originUrlLower.match(ghUrlRegex)) {\n // remove trailing .git\n if (originUrlLower.endsWith('.git')) {\n originUrlLower = originUrlLower.slice(0, -4);\n }\n // remove trailing slash\n if (originUrlLower.endsWith('/')) {\n originUrlLower = originUrlLower.slice(0, -1);\n }\n // extract {owner}/{repo}\n const ownerRepo = originUrlLower.replace(ghUrlRegex, '');\n // fetch canonical URL from github Web API\n const url = await getCanonicalGithubOriginURL(ownerRepo);\n if (url) {\n return url;\n }\n }\n\n const ghpagesUrlRegex = /^http[s]*:\\/\\/(?<owner>[^/]+).github.io\\/(?<repo>[^/]+)\\/?.*/;\n const parsedUrl = originUrlLower.match(ghpagesUrlRegex);\n if (parsedUrl) {\n const ownerRepo = `${parsedUrl.groups.owner}/${parsedUrl.groups.repo}`;\n // fetch canonical URL from github Web API\n const url = await getCanonicalGithubOriginURL(ownerRepo);\n if (url) {\n return url;\n }\n }\n\n return originUrl;\n}\n\nexport function getHumanReadableDate(data) {\n // Display iso format date string into a human readable date\n // This is expected to be used by date field in datatable listing views\n // Example: 3/24/2022, 10:31:08 AM\n const date = new Date(data);\n return date.toLocaleString();\n}\n\nexport function genLink(sanitizedUrl, type, openInNewTab = false, linkText = '') {\n // Display link. It's up to the caller to sanitize sanitizedUrl first.\n if (type === 'display' && sanitizedUrl) {\n const encodedSanitizedUrl = encodeURI(sanitizedUrl);\n if (!linkText) {\n linkText = encodedSanitizedUrl;\n }\n let attrs = '';\n if (openInNewTab) {\n attrs = 'target=\"_blank\" rel=\"noopener noreferrer\"';\n }\n return `<a href=\"${encodedSanitizedUrl}\" ${attrs}>${linkText}</a>`;\n }\n return sanitizedUrl;\n}\n","function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nexport { _asyncToGenerator as default };","/*! npm.im/object-fit-images 3.2.4 */\n'use strict';\n\nvar OFI = 'bfred-it:object-fit-images';\nvar propRegex = /(object-fit|object-position)\\s*:\\s*([-.\\w\\s%]+)/g;\nvar testImg = typeof Image === 'undefined' ? {style: {'object-position': 1}} : new Image();\nvar supportsObjectFit = 'object-fit' in testImg.style;\nvar supportsObjectPosition = 'object-position' in testImg.style;\nvar supportsOFI = 'background-size' in testImg.style;\nvar supportsCurrentSrc = typeof testImg.currentSrc === 'string';\nvar nativeGetAttribute = testImg.getAttribute;\nvar nativeSetAttribute = testImg.setAttribute;\nvar autoModeEnabled = false;\n\nfunction createPlaceholder(w, h) {\n\treturn (\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='\" + w + \"' height='\" + h + \"'%3E%3C/svg%3E\");\n}\n\nfunction polyfillCurrentSrc(el) {\n\tif (el.srcset && !supportsCurrentSrc && window.picturefill) {\n\t\tvar pf = window.picturefill._;\n\t\t// parse srcset with picturefill where currentSrc isn't available\n\t\tif (!el[pf.ns] || !el[pf.ns].evaled) {\n\t\t\t// force synchronous srcset parsing\n\t\t\tpf.fillImg(el, {reselect: true});\n\t\t}\n\n\t\tif (!el[pf.ns].curSrc) {\n\t\t\t// force picturefill to parse srcset\n\t\t\tel[pf.ns].supported = false;\n\t\t\tpf.fillImg(el, {reselect: true});\n\t\t}\n\n\t\t// retrieve parsed currentSrc, if any\n\t\tel.currentSrc = el[pf.ns].curSrc || el.src;\n\t}\n}\n\nfunction getStyle(el) {\n\tvar style = getComputedStyle(el).fontFamily;\n\tvar parsed;\n\tvar props = {};\n\twhile ((parsed = propRegex.exec(style)) !== null) {\n\t\tprops[parsed[1]] = parsed[2];\n\t}\n\treturn props;\n}\n\nfunction setPlaceholder(img, width, height) {\n\t// Default: fill width, no height\n\tvar placeholder = createPlaceholder(width || 1, height || 0);\n\n\t// Only set placeholder if it's different\n\tif (nativeGetAttribute.call(img, 'src') !== placeholder) {\n\t\tnativeSetAttribute.call(img, 'src', placeholder);\n\t}\n}\n\nfunction onImageReady(img, callback) {\n\t// naturalWidth is only available when the image headers are loaded,\n\t// this loop will poll it every 100ms.\n\tif (img.naturalWidth) {\n\t\tcallback(img);\n\t} else {\n\t\tsetTimeout(onImageReady, 100, img, callback);\n\t}\n}\n\nfunction fixOne(el) {\n\tvar style = getStyle(el);\n\tvar ofi = el[OFI];\n\tstyle['object-fit'] = style['object-fit'] || 'fill'; // default value\n\n\t// Avoid running where unnecessary, unless OFI had already done its deed\n\tif (!ofi.img) {\n\t\t// fill is the default behavior so no action is necessary\n\t\tif (style['object-fit'] === 'fill') {\n\t\t\treturn;\n\t\t}\n\n\t\t// Where object-fit is supported and object-position isn't (Safari < 10)\n\t\tif (\n\t\t\t!ofi.skipTest && // unless user wants to apply regardless of browser support\n\t\t\tsupportsObjectFit && // if browser already supports object-fit\n\t\t\t!style['object-position'] // unless object-position is used\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t}\n\n\t// keep a clone in memory while resetting the original to a blank\n\tif (!ofi.img) {\n\t\tofi.img = new Image(el.width, el.height);\n\t\tofi.img.srcset = nativeGetAttribute.call(el, \"data-ofi-srcset\") || el.srcset;\n\t\tofi.img.src = nativeGetAttribute.call(el, \"data-ofi-src\") || el.src;\n\n\t\t// preserve for any future cloneNode calls\n\t\t// https://github.com/bfred-it/object-fit-images/issues/53\n\t\tnativeSetAttribute.call(el, \"data-ofi-src\", el.src);\n\t\tif (el.srcset) {\n\t\t\tnativeSetAttribute.call(el, \"data-ofi-srcset\", el.srcset);\n\t\t}\n\n\t\tsetPlaceholder(el, el.naturalWidth || el.width, el.naturalHeight || el.height);\n\n\t\t// remove srcset because it overrides src\n\t\tif (el.srcset) {\n\t\t\tel.srcset = '';\n\t\t}\n\t\ttry {\n\t\t\tkeepSrcUsable(el);\n\t\t} catch (err) {\n\t\t\tif (window.console) {\n\t\t\t\tconsole.warn('https://bit.ly/ofi-old-browser');\n\t\t\t}\n\t\t}\n\t}\n\n\tpolyfillCurrentSrc(ofi.img);\n\n\tel.style.backgroundImage = \"url(\\\"\" + ((ofi.img.currentSrc || ofi.img.src).replace(/\"/g, '\\\\\"')) + \"\\\")\";\n\tel.style.backgroundPosition = style['object-position'] || 'center';\n\tel.style.backgroundRepeat = 'no-repeat';\n\tel.style.backgroundOrigin = 'content-box';\n\n\tif (/scale-down/.test(style['object-fit'])) {\n\t\tonImageReady(ofi.img, function () {\n\t\t\tif (ofi.img.naturalWidth > el.width || ofi.img.naturalHeight > el.height) {\n\t\t\t\tel.style.backgroundSize = 'contain';\n\t\t\t} else {\n\t\t\t\tel.style.backgroundSize = 'auto';\n\t\t\t}\n\t\t});\n\t} else {\n\t\tel.style.backgroundSize = style['object-fit'].replace('none', 'auto').replace('fill', '100% 100%');\n\t}\n\n\tonImageReady(ofi.img, function (img) {\n\t\tsetPlaceholder(el, img.naturalWidth, img.naturalHeight);\n\t});\n}\n\nfunction keepSrcUsable(el) {\n\tvar descriptors = {\n\t\tget: function get(prop) {\n\t\t\treturn el[OFI].img[prop ? prop : 'src'];\n\t\t},\n\t\tset: function set(value, prop) {\n\t\t\tel[OFI].img[prop ? prop : 'src'] = value;\n\t\t\tnativeSetAttribute.call(el, (\"data-ofi-\" + prop), value); // preserve for any future cloneNode\n\t\t\tfixOne(el);\n\t\t\treturn value;\n\t\t}\n\t};\n\tObject.defineProperty(el, 'src', descriptors);\n\tObject.defineProperty(el, 'currentSrc', {\n\t\tget: function () { return descriptors.get('currentSrc'); }\n\t});\n\tObject.defineProperty(el, 'srcset', {\n\t\tget: function () { return descriptors.get('srcset'); },\n\t\tset: function (ss) { return descriptors.set(ss, 'srcset'); }\n\t});\n}\n\nfunction hijackAttributes() {\n\tfunction getOfiImageMaybe(el, name) {\n\t\treturn el[OFI] && el[OFI].img && (name === 'src' || name === 'srcset') ? el[OFI].img : el;\n\t}\n\tif (!supportsObjectPosition) {\n\t\tHTMLImageElement.prototype.getAttribute = function (name) {\n\t\t\treturn nativeGetAttribute.call(getOfiImageMaybe(this, name), name);\n\t\t};\n\n\t\tHTMLImageElement.prototype.setAttribute = function (name, value) {\n\t\t\treturn nativeSetAttribute.call(getOfiImageMaybe(this, name), name, String(value));\n\t\t};\n\t}\n}\n\nfunction fix(imgs, opts) {\n\tvar startAutoMode = !autoModeEnabled && !imgs;\n\topts = opts || {};\n\timgs = imgs || 'img';\n\n\tif ((supportsObjectPosition && !opts.skipTest) || !supportsOFI) {\n\t\treturn false;\n\t}\n\n\t// use imgs as a selector or just select all images\n\tif (imgs === 'img') {\n\t\timgs = document.getElementsByTagName('img');\n\t} else if (typeof imgs === 'string') {\n\t\timgs = document.querySelectorAll(imgs);\n\t} else if (!('length' in imgs)) {\n\t\timgs = [imgs];\n\t}\n\n\t// apply fix to all\n\tfor (var i = 0; i < imgs.length; i++) {\n\t\timgs[i][OFI] = imgs[i][OFI] || {\n\t\t\tskipTest: opts.skipTest\n\t\t};\n\t\tfixOne(imgs[i]);\n\t}\n\n\tif (startAutoMode) {\n\t\tdocument.body.addEventListener('load', function (e) {\n\t\t\tif (e.target.tagName === 'IMG') {\n\t\t\t\tfix(e.target, {\n\t\t\t\t\tskipTest: opts.skipTest\n\t\t\t\t});\n\t\t\t}\n\t\t}, true);\n\t\tautoModeEnabled = true;\n\t\timgs = 'img'; // reset to a generic selector for watchMQ\n\t}\n\n\t// if requested, watch media queries for object-fit change\n\tif (opts.watchMQ) {\n\t\twindow.addEventListener('resize', fix.bind(null, imgs, {\n\t\t\tskipTest: opts.skipTest\n\t\t}));\n\t}\n}\n\nfix.supportsObjectFit = supportsObjectFit;\nfix.supportsObjectPosition = supportsObjectPosition;\n\nhijackAttributes();\n\nmodule.exports = fix;\n","var OverloadYield = require(\"./OverloadYield.js\");\nvar regeneratorDefine = require(\"./regeneratorDefine.js\");\nfunction AsyncIterator(t, e) {\n function n(r, o, i, f) {\n try {\n var c = t[r](o),\n u = c.value;\n return u instanceof OverloadYield ? e.resolve(u.v).then(function (t) {\n n(\"next\", t, i, f);\n }, function (t) {\n n(\"throw\", t, i, f);\n }) : e.resolve(u).then(function (t) {\n c.value = t, i(c);\n }, function (t) {\n return n(\"throw\", t, i, f);\n });\n } catch (t) {\n f(t);\n }\n }\n var r;\n this.next || (regeneratorDefine(AsyncIterator.prototype), regeneratorDefine(AsyncIterator.prototype, \"function\" == typeof Symbol && Symbol.asyncIterator || \"@asyncIterator\", function () {\n return this;\n })), regeneratorDefine(this, \"_invoke\", function (t, o, i) {\n function f() {\n return new e(function (e, r) {\n n(t, i, e, r);\n });\n }\n return r = r ? r.then(f, f) : f();\n }, !0);\n}\nmodule.exports = AsyncIterator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","module.exports = \"// http://github.com/jsvine/notebookjs\\n// notebook.js may be freely distributed under the MIT license.\\n(function () {\\n var VERSION = \\\"0.8.3\\\";\\n var root = this || globalThis;\\n var isBrowser = root.window !== undefined;\\n var doc;\\n\\n // Get browser or JSDOM document\\n if (isBrowser) {\\n doc = root.document;\\n } else {\\n var jsdom = require(\\\"jsdom\\\");\\n var dom = new jsdom.JSDOM();\\n doc = dom.window.document;\\n }\\n\\n // Helper functions\\n var ident = function (x) { return x; };\\n\\n var makeElement = function (tag, classNames) {\\n var el = doc.createElement(tag);\\n el.className = (classNames || []).map(function (cn) {\\n return nb.prefix + cn;\\n }).join(\\\" \\\");\\n return el;\\n };\\n\\n var escapeHTML = function (raw) {\\n var replaced = raw\\n .replace(/</g, \\\"&lt;\\\")\\n .replace(/>/g, \\\"&gt;\\\");\\n return replaced;\\n };\\n\\n var joinText = function (text) {\\n if (text.join) {\\n return text.map(joinText).join(\\\"\\\");\\n } else {\\n return text;\\n }\\n };\\n\\n // Get supporting libraries\\n var getMarkdown = function () {\\n var lib = root.marked || (typeof require === \\\"function\\\" && require(\\\"marked\\\"));\\n return lib && lib.parse;\\n };\\n\\n var getAnsi = function () {\\n var lib = root.ansi_up || (typeof require === \\\"function\\\" && require(\\\"ansi_up\\\"));\\n return lib && lib.ansi_to_html;\\n };\\n\\n var getSanitizer = function () {\\n var lib = root.DOMPurify || (typeof require === \\\"function\\\" && require(\\\"dompurify\\\"));\\n if (isBrowser) {\\n return lib && lib.sanitize;\\n } else {\\n return lib(dom.window).sanitize;\\n }\\n };\\n\\n // Set up `nb` namespace\\n var nb = {\\n prefix: \\\"nb-\\\",\\n markdown: getMarkdown() || ident,\\n ansi: getAnsi() || ident,\\n sanitizer: getSanitizer() || ident,\\n executeJavaScript: false,\\n highlighter: ident,\\n VERSION: VERSION\\n };\\n\\n // Inputs\\n nb.Input = function (raw, cell) {\\n this.raw = raw;\\n this.cell = cell;\\n };\\n\\n nb.Input.prototype.render = function () {\\n if (!this.raw.length) { return makeElement(\\\"div\\\"); }\\n var holder = makeElement(\\\"div\\\", [ \\\"input\\\" ]);\\n var cell = this.cell;\\n if (typeof cell.number === \\\"number\\\") {\\n holder.setAttribute(\\\"data-prompt-number\\\", this.cell.number);\\n }\\n var pre_el = makeElement(\\\"pre\\\");\\n var code_el = makeElement(\\\"code\\\");\\n var notebook = cell.worksheet.notebook;\\n var m = notebook.metadata;\\n var lang = this.cell.raw.language || m.language || (m.kernelspec && m.kernelspec.language) || (m.language_info && m.language_info.name);\\n code_el.setAttribute(\\\"data-language\\\", lang);\\n code_el.className = \\\"lang-\\\" + lang;\\n code_el.innerHTML = nb.highlighter(escapeHTML(joinText(this.raw)), pre_el, code_el, lang);\\n pre_el.appendChild(code_el);\\n holder.appendChild(pre_el);\\n this.el = holder;\\n return holder;\\n };\\n\\n // Outputs and output-renderers\\n var imageCreator = function (format) {\\n return function (data) {\\n var el = makeElement(\\\"img\\\", [ \\\"image-output\\\" ]);\\n el.src = \\\"data:image/\\\" + format + \\\";base64,\\\" + joinText(data).replace(/\\\\n/g, \\\"\\\");\\n return el;\\n };\\n };\\n\\n nb.display = {};\\n nb.display.text = function (text) {\\n var el = makeElement(\\\"pre\\\", [ \\\"text-output\\\" ]);\\n el.innerHTML = nb.highlighter(nb.ansi(escapeHTML(joinText(text))), el);\\n return el;\\n };\\n nb.display[\\\"text/plain\\\"] = nb.display.text;\\n\\n nb.display.html = function (html) {\\n var el = makeElement(\\\"div\\\", [ \\\"html-output\\\" ]);\\n el.innerHTML = nb.sanitizer(joinText(html));\\n return el;\\n };\\n nb.display[\\\"text/html\\\"] = nb.display.html;\\n\\n nb.display.marked = function(md) {\\n return nb.display.html(nb.markdown(joinText(md)));\\n };\\n nb.display[\\\"text/markdown\\\"] = nb.display.marked;\\n\\n nb.display.svg = function (svg) {\\n var el = makeElement(\\\"div\\\", [ \\\"svg-output\\\" ]);\\n el.innerHTML = nb.sanitizer(joinText(svg));\\n return el;\\n };\\n nb.display[\\\"text/svg+xml\\\"] = nb.display.svg;\\n nb.display[\\\"image/svg+xml\\\"] = nb.display.svg;\\n\\n nb.display.latex = function (latex) {\\n var el = makeElement(\\\"div\\\", [ \\\"latex-output\\\" ]);\\n if (root.renderMathInElement != null) {\\n el.innerText = joinText(latex);\\n root.renderMathInElement(el, { delimiters: math_delimiters });\\n } else {\\n el.innerText = joinText(latex);\\n }\\n return el;\\n };\\n nb.display[\\\"text/latex\\\"] = nb.display.latex;\\n\\n nb.display.javascript = function (js) {\\n if(nb.executeJavaScript){\\n var el = makeElement(\\\"script\\\");\\n el.innerHTML = joinText(js);\\n return el;\\n } else {\\n var el = document.createElement(\\\"pre\\\");\\n el.innerText = \\\"JavaScript execution is disabled for this notebook\\\";\\n return el;\\n }\\n };\\n nb.display[\\\"application/javascript\\\"] = nb.display.javascript;\\n\\n nb.display.png = imageCreator(\\\"png\\\");\\n nb.display[\\\"image/png\\\"] = nb.display.png;\\n nb.display.jpeg = imageCreator(\\\"jpeg\\\");\\n nb.display[\\\"image/jpeg\\\"] = nb.display.jpeg;\\n\\n nb.display_priority = [\\n \\\"png\\\", \\\"image/png\\\", \\\"jpeg\\\", \\\"image/jpeg\\\",\\n \\\"svg\\\", \\\"image/svg+xml\\\", \\\"text/svg+xml\\\", \\\"html\\\", \\\"text/html\\\",\\n \\\"text/markdown\\\", \\\"latex\\\", \\\"text/latex\\\",\\n \\\"javascript\\\", \\\"application/javascript\\\",\\n \\\"text\\\", \\\"text/plain\\\"\\n ];\\n\\n var render_display_data = function () {\\n var o = this;\\n var formats = nb.display_priority.filter(function (d) {\\n return o.raw.data ? o.raw.data[d] : o.raw[d];\\n });\\n var format = formats[0];\\n if (format) {\\n if (nb.display[format]) {\\n return nb.display[format](o.raw[format] || o.raw.data[format]);\\n }\\n }\\n return makeElement(\\\"div\\\", [ \\\"empty-output\\\" ]);\\n };\\n\\n var render_error = function () {\\n var el = makeElement(\\\"pre\\\", [ \\\"pyerr\\\" ]);\\n var raw = this.raw.traceback.join(\\\"\\\\n\\\");\\n el.innerHTML = nb.highlighter(nb.ansi(escapeHTML(raw)), el);\\n return el;\\n };\\n\\n nb.Output = function (raw, cell) {\\n this.raw = raw;\\n this.cell = cell;\\n this.type = raw.output_type;\\n };\\n\\n nb.Output.prototype.renderers = {\\n \\\"display_data\\\": render_display_data,\\n \\\"execute_result\\\": render_display_data,\\n \\\"pyout\\\": render_display_data,\\n \\\"pyerr\\\": render_error,\\n \\\"error\\\": render_error,\\n \\\"stream\\\": function () {\\n var el = makeElement(\\\"pre\\\", [ (this.raw.stream || this.raw.name) ]);\\n var raw = joinText(this.raw.text);\\n el.innerHTML = nb.highlighter(nb.ansi(escapeHTML(raw)), el);\\n return el;\\n }\\n };\\n\\n nb.Output.prototype.render = function () {\\n var outer = makeElement(\\\"div\\\", [ \\\"output\\\" ]);\\n if (typeof this.cell.number === \\\"number\\\") {\\n outer.setAttribute(\\\"data-prompt-number\\\", this.cell.number);\\n }\\n var inner = this.renderers[this.type].call(this);\\n outer.appendChild(inner);\\n this.el = outer;\\n return outer;\\n };\\n\\n // Post-processing\\n nb.coalesceStreams = function (outputs) {\\n if (!outputs.length) { return outputs; }\\n var last = outputs[0];\\n var new_outputs = [ last ];\\n outputs.slice(1).forEach(function (o) {\\n if (o.raw.output_type === \\\"stream\\\" &&\\n last.raw.output_type === \\\"stream\\\" &&\\n o.raw.stream === last.raw.stream &&\\n o.raw.name === last.raw.name) {\\n last.raw.text = last.raw.text.concat(o.raw.text);\\n } else {\\n new_outputs.push(o);\\n last = o;\\n }\\n });\\n return new_outputs;\\n };\\n\\n // Cells\\n nb.Cell = function (raw, worksheet) {\\n var cell = this;\\n cell.raw = raw;\\n cell.worksheet = worksheet;\\n cell.type = raw.cell_type;\\n if (cell.type === \\\"code\\\") {\\n cell.number = raw.prompt_number > -1 ? raw.prompt_number : raw.execution_count;\\n var source = raw.input || [ raw.source ];\\n cell.input = new nb.Input(source, cell);\\n var raw_outputs = (cell.raw.outputs || []).map(function (o) {\\n return new nb.Output(o, cell);\\n });\\n cell.outputs = nb.coalesceStreams(raw_outputs);\\n }\\n };\\n\\n var math_delimiters = [\\n {left: \\\"$$\\\", right: \\\"$$\\\", display: true},\\n {left: \\\"\\\\\\\\[\\\", right: \\\"\\\\\\\\]\\\", display: true},\\n {left: \\\"\\\\\\\\(\\\", right: \\\"\\\\\\\\)\\\", display: false},\\n {left: \\\"$\\\", right: \\\"$\\\", display: false}\\n ];\\n\\n nb.Cell.prototype.renderers = {\\n markdown: function () {\\n var el = makeElement(\\\"div\\\", [ \\\"cell\\\", \\\"markdown-cell\\\" ]);\\n\\n var joined = joinText(this.raw.source);\\n\\n // Pre-render math via KaTeX's auto-render extension, if available\\n if (root.renderMathInElement != null) {\\n el.innerHTML = nb.sanitizer(joined);\\n root.renderMathInElement(el, { delimiters: math_delimiters });\\n el.innerHTML = nb.sanitizer(nb.markdown(\\n el.innerHTML\\n .replace(/&gt;/g, \\\">\\\") // Necessary to enable blockquote syntax\\n ));\\n } else {\\n el.innerHTML = nb.sanitizer(nb.markdown(joined));\\n }\\n\\n return el;\\n },\\n heading: function () {\\n var el = makeElement(\\\"h\\\" + this.raw.level, [ \\\"cell\\\", \\\"heading-cell\\\" ]);\\n el.innerHTML = nb.sanitizer(joinText(this.raw.source));\\n return el;\\n },\\n raw: function () {\\n var el = makeElement(\\\"div\\\", [ \\\"cell\\\", \\\"raw-cell\\\" ]);\\n el.innerHTML = escapeHTML(joinText(this.raw.source));\\n return el;\\n },\\n code: function () {\\n var cell_el = makeElement(\\\"div\\\", [ \\\"cell\\\", \\\"code-cell\\\" ]);\\n cell_el.appendChild(this.input.render());\\n var output_els = this.outputs.forEach(function (o) {\\n cell_el.appendChild(o.render());\\n });\\n return cell_el;\\n }\\n };\\n\\n nb.Cell.prototype.render = function () {\\n var el = this.renderers[this.type].call(this);\\n this.el = el;\\n return el;\\n };\\n\\n // Worksheets\\n nb.Worksheet = function (raw, notebook) {\\n var worksheet = this;\\n this.raw = raw;\\n this.notebook = notebook;\\n this.cells = raw.cells.map(function (c) {\\n return new nb.Cell(c, worksheet);\\n });\\n this.render = function () {\\n var worksheet_el = makeElement(\\\"div\\\", [ \\\"worksheet\\\" ]);\\n worksheet.cells.forEach(function (c) {\\n worksheet_el.appendChild(c.render());\\n });\\n this.el = worksheet_el;\\n return worksheet_el;\\n };\\n };\\n\\n // Notebooks\\n nb.Notebook = function (raw, config) {\\n var notebook = this;\\n this.raw = raw;\\n this.config = config;\\n var meta = this.metadata = raw.metadata || {};\\n this.title = meta.title || meta.name;\\n var _worksheets = raw.worksheets || [ { cells: raw.cells } ];\\n this.worksheets = _worksheets.map(function (ws) {\\n return new nb.Worksheet(ws, notebook);\\n });\\n this.sheet = this.worksheets[0];\\n };\\n\\n nb.Notebook.prototype.render = function () {\\n var notebook_el = makeElement(\\\"div\\\", [ \\\"notebook\\\" ]);\\n this.worksheets.forEach(function (w) {\\n notebook_el.appendChild(w.render());\\n });\\n this.el = notebook_el;\\n return notebook_el;\\n };\\n\\n nb.parse = function (nbjson, config) {\\n return new nb.Notebook(nbjson, config);\\n };\\n\\n // Exports\\n if (typeof define === 'function' && define.amd) {\\n define(function() {\\n return nb;\\n });\\n }\\n if (typeof exports !== 'undefined') {\\n if (typeof module !== 'undefined' && module.exports) {\\n exports = module.exports = nb;\\n }\\n exports.nb = nb;\\n } else {\\n root.nb = nb;\\n }\\n\\n}).call(this);\\n\"","var regeneratorDefine = require(\"./regeneratorDefine.js\");\nfunction _regenerator() {\n /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */\n var e,\n t,\n r = \"function\" == typeof Symbol ? Symbol : {},\n n = r.iterator || \"@@iterator\",\n o = r.toStringTag || \"@@toStringTag\";\n function i(r, n, o, i) {\n var c = n && n.prototype instanceof Generator ? n : Generator,\n u = Object.create(c.prototype);\n return regeneratorDefine(u, \"_invoke\", function (r, n, o) {\n var i,\n c,\n u,\n f = 0,\n p = o || [],\n y = !1,\n G = {\n p: 0,\n n: 0,\n v: e,\n a: d,\n f: d.bind(e, 4),\n d: function d(t, r) {\n return i = t, c = 0, u = e, G.n = r, a;\n }\n };\n function d(r, n) {\n for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) {\n var o,\n i = p[t],\n d = G.p,\n l = i[2];\n r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0));\n }\n if (o || r > 1) return a;\n throw y = !0, n;\n }\n return function (o, p, l) {\n if (f > 1) throw TypeError(\"Generator is already running\");\n for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) {\n i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u);\n try {\n if (f = 2, i) {\n if (c || (o = \"next\"), t = i[o]) {\n if (!(t = t.call(i, u))) throw TypeError(\"iterator result is not an object\");\n if (!t.done) return t;\n u = t.value, c < 2 && (c = 0);\n } else 1 === c && (t = i[\"return\"]) && t.call(i), c < 2 && (u = TypeError(\"The iterator does not provide a '\" + o + \"' method\"), c = 1);\n i = e;\n } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break;\n } catch (t) {\n i = e, c = 1, u = t;\n } finally {\n f = 1;\n }\n }\n return {\n value: t,\n done: y\n };\n };\n }(r, o, i), !0), u;\n }\n var a = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n t = Object.getPrototypeOf;\n var c = [][n] ? t(t([][n]())) : (regeneratorDefine(t = {}, n, function () {\n return this;\n }), t),\n u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c);\n function f(e) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, regeneratorDefine(e, o, \"GeneratorFunction\")), e.prototype = Object.create(u), e;\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, regeneratorDefine(u, \"constructor\", GeneratorFunctionPrototype), regeneratorDefine(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction), GeneratorFunction.displayName = \"GeneratorFunction\", regeneratorDefine(GeneratorFunctionPrototype, o, \"GeneratorFunction\"), regeneratorDefine(u), regeneratorDefine(u, o, \"Generator\"), regeneratorDefine(u, n, function () {\n return this;\n }), regeneratorDefine(u, \"toString\", function () {\n return \"[object Generator]\";\n }), (module.exports = _regenerator = function _regenerator() {\n return {\n w: i,\n m: f\n };\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports)();\n}\nmodule.exports = _regenerator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\"use strict\";\n\nvar iterateObject = require(\"iterate-object\"),\n regexEscape = require(\"regex-escape\"),\n he = require(\"he\");\n\nmodule.exports = {\n /**\n * decode\n * Decodes an encoded string.\n *\n * @name decode\n * @function\n * @param {String} input The encoded string.\n * @returns {String} The decoded string.\n */\n decode: function decode(input) {\n return he.decode(input);\n }\n\n /**\n * encode\n * Encodes a string.\n *\n * @name encode\n * @function\n * @param {String} input The string that must be encoded.\n * @returns {String} The encoded string.\n */\n ,\n encode: function encode(input) {\n return he.encode(input);\n }\n};","/**\n * Copyright (C) 2019-2020 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport 'script-loader!notebookjs';\nimport {AnsiUp} from 'ansi_up';\nimport './notebook.css';\n\nconst ansiup = new AnsiUp();\nansiup.escape_for_html = false;\n\nfunction escapeHTML(text) {\n text = text.replace(/</g, '&lt;');\n text = text.replace(/>/g, '&gt;');\n return text;\n}\n\nfunction unescapeHTML(text) {\n text = text.replace(/&lt;/g, '<');\n text = text.replace(/&gt;/g, '>');\n return text;\n}\n\nfunction escapeLaTeX(text) {\n\n const blockMath = /\\$\\$(.+?)\\$\\$|\\\\\\\\\\[(.+?)\\\\\\\\\\]/msg;\n const inlineMath = /\\$(.+?)\\$|\\\\\\\\\\((.+?)\\\\\\\\\\)/g;\n const latexEnvironment = /\\\\begin\\{([a-z]*\\*?)\\}(.+?)\\\\end\\{\\1\\}/msg;\n\n const mathTextFound = [];\n let bm;\n while ((bm = blockMath.exec(text)) !== null) {\n mathTextFound.push(bm[1]);\n }\n\n let im;\n while ((im = inlineMath.exec(text)) !== null) {\n mathTextFound.push(im[1]);\n }\n\n let le;\n while ((le = latexEnvironment.exec(text)) !== null) {\n mathTextFound.push(le[1]);\n }\n\n for (const mathText of mathTextFound) {\n // showdown will remove line breaks in LaTex array and\n // some escaping sequences when converting md to html.\n // So we use the following escaping hacks to keep them in the html\n // output and avoid MathJax typesetting errors.\n let escapedText = mathText.replace('\\\\\\\\', '\\\\\\\\\\\\\\\\');\n for (const specialLaTexChar of ['{', '}', '#', '%', '&', '_']) {\n escapedText = escapedText.replace(new RegExp(`\\\\\\\\${specialLaTexChar}`, 'g'),\n `\\\\\\\\${specialLaTexChar}`);\n }\n\n // some html escaping is also needed\n escapedText = escapeHTML(escapedText);\n\n // hack to prevent showdown to replace _ characters\n // by html em tags as it will break some math typesetting\n // (setting the literalMidWordUnderscores option is not\n // enough as iy only works for _ characters contained in words)\n escapedText = escapedText.replace(/_/g, '{@}underscore{@}');\n\n if (mathText !== escapedText) {\n text = text.replace(mathText, escapedText);\n }\n }\n\n return text;\n}\n\nexport async function renderNotebook(nbJsonUrl, domElt) {\n\n const showdown = await import(/* webpackChunkName: \"showdown\" */ 'utils/showdown');\n\n await import(/* webpackChunkName: \"highlightjs\" */ 'utils/highlightjs');\n\n function renderMarkdown(text) {\n const converter = new showdown.Converter({\n tables: true,\n simplifiedAutoLink: true,\n rawHeaderId: true,\n literalMidWordUnderscores: true\n });\n\n // some LaTeX escaping is required to get correct math typesetting\n text = escapeLaTeX(text);\n\n // render markdown\n let rendered = converter.makeHtml(text);\n\n // restore underscores in rendered HTML (see escapeLaTeX function)\n rendered = rendered.replace(/{@}underscore{@}/g, '_');\n\n return rendered;\n }\n\n function highlightCode(text, preElt, codeElt, lang) {\n // no need to unescape text processed by ansiup\n if (text.indexOf('<span style=\"color:rgb(') === -1) {\n text = unescapeHTML(text);\n }\n if (lang && hljs.getLanguage(lang)) {\n return hljs.highlight(text, {language: lang}).value;\n } else {\n return text;\n }\n }\n\n function renderAnsi(text) {\n return ansiup.ansi_to_html(text);\n }\n\n nb.markdown = renderMarkdown;\n nb.highlighter = highlightCode;\n nb.ansi = renderAnsi;\n\n const response = await fetch(nbJsonUrl);\n const nbJson = await response.json();\n\n // parse the notebook\n const notebook = nb.parse(nbJson);\n // render it to HTML and apply XSS filtering\n const rendered = swh.webapp.filterXSS(notebook.render());\n // insert rendered notebook in the DOM\n $(domElt).append(rendered);\n // set light red background color for stderr output cells\n $('pre.nb-stderr').parent().css('background', '#fdd');\n // load MathJax library for math typesetting\n swh.webapp.typesetMath();\n}\n","/*! js-cookie v3.0.5 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (name, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n name = encodeURIComponent(name)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n name + '=' + converter.write(value, name) + stringifiedAttributes)\n }\n\n function get (name) {\n if (typeof document === 'undefined' || (arguments.length && !name)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var found = decodeURIComponent(parts[0]);\n jar[found] = converter.read(value, found);\n\n if (name === found) {\n break\n }\n } catch (e) {}\n }\n\n return name ? jar[name] : jar\n }\n\n return Object.create(\n {\n set,\n get,\n remove: function (name, attributes) {\n set(\n name,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport { api as default };\n","function _OverloadYield(e, d) {\n this.v = e, this.k = d;\n}\nmodule.exports = _OverloadYield, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorValues(e) {\n if (null != e) {\n var t = e[\"function\" == typeof Symbol && Symbol.iterator || \"@@iterator\"],\n r = 0;\n if (t) return t.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) return {\n next: function next() {\n return e && r >= e.length && (e = void 0), {\n value: e && e[r++],\n done: !e\n };\n }\n };\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n}\nmodule.exports = _regeneratorValues, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (C) 2018-2021 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport {removeUrlFragment} from 'utils/functions';\n\n// keep track of the first highlighted line\nlet firstHighlightedLine = null;\n// highlighting color\nconst lineHighlightColor = 'rgb(193, 255, 193)';\n\n// function to highlight a line\nexport function highlightLine(i, firstHighlighted = false) {\n const lineTd = $(`.hljs-ln-line[data-line-number=\"${i}\"]`);\n lineTd.css('background-color', lineHighlightColor);\n if (firstHighlighted) {\n firstHighlightedLine = i;\n }\n return lineTd;\n}\n\n// function to highlight a range of lines\nexport function highlightLines(first, last) {\n if (!first) {\n return;\n }\n if (!last) {\n last = first;\n }\n for (let i = first; i <= last; ++i) {\n highlightLine(i);\n }\n}\n\n// function to reset highlighting\nexport function resetHighlightedLines() {\n firstHighlightedLine = null;\n $('.hljs-ln-line[data-line-number]').css('background-color', 'inherit');\n}\n\nexport function scrollToLine(lineDomElt, offset = 70) {\n if ($(lineDomElt).closest('.swh-content').length > 0) {\n $('html, body').animate({\n scrollTop: $(lineDomElt).offset().top - offset\n }, 500);\n }\n}\n\nexport async function highlightCode(showLineNumbers = true, selector = 'code',\n enableLinesSelection = true) {\n\n await import(/* webpackChunkName: \"highlightjs\" */ 'utils/highlightjs');\n\n // function to highlight lines based on a url fragment\n // in the form '#Lx' or '#Lx-Ly'\n function parseUrlFragmentForLinesToHighlight() {\n const lines = [];\n const linesRegexp = new RegExp(/L(\\d+)/g);\n let line = linesRegexp.exec(window.location.hash);\n if (line === null) {\n return;\n }\n while (line) {\n lines.push(parseInt(line[1]));\n line = linesRegexp.exec(window.location.hash);\n }\n resetHighlightedLines();\n if (lines.length === 1) {\n firstHighlightedLine = parseInt(lines[0]);\n scrollToLine(highlightLine(lines[0]));\n } else if (lines[0] < lines[lines.length - 1]) {\n firstHighlightedLine = parseInt(lines[0]);\n scrollToLine(highlightLine(lines[0]));\n highlightLines(lines[0] + 1, lines[lines.length - 1]);\n }\n }\n\n $(document).ready(() => {\n // highlight code and add line numbers\n $(selector).each((i, elt) => {\n $(elt).removeAttr('data-highlighted');\n hljs.highlightElement(elt);\n if (showLineNumbers) {\n hljs.lineNumbersElement(elt, {singleLine: true});\n setTimeout(() => {\n $('.hljs-ln').attr('role', 'presentation');\n });\n }\n });\n\n if (!showLineNumbers || !enableLinesSelection) {\n return;\n }\n\n // click handler to dynamically highlight line(s)\n // when the user clicks on a line number (lines range\n // can also be highlighted while holding the shift key)\n $('.swh-content').click(evt => {\n if (evt.target.classList.contains('hljs-ln-n')) {\n const line = parseInt($(evt.target).data('line-number'));\n if (evt.shiftKey && firstHighlightedLine && line > firstHighlightedLine) {\n const firstLine = firstHighlightedLine;\n resetHighlightedLines();\n highlightLines(firstLine, line);\n firstHighlightedLine = firstLine;\n window.location.hash = `#L${firstLine}-L${line}`;\n } else {\n resetHighlightedLines();\n highlightLine(line);\n window.location.hash = `#L${line}`;\n scrollToLine(evt.target);\n }\n } else if ($(evt.target).closest('.hljs-ln').length) {\n resetHighlightedLines();\n removeUrlFragment();\n }\n });\n\n // update lines highlighting when the url fragment changes\n $(window).on('hashchange', () => parseUrlFragmentForLinesToHighlight());\n\n // schedule lines highlighting if any as hljs.lineNumbersElement() is async\n setTimeout(() => {\n parseUrlFragmentForLinesToHighlight();\n });\n\n });\n}\n","\"use strict\";\r\n\r\nvar tester = /^[-!#$%&'*+\\/0-9=?A-Z^_a-z{|}~](\\.?[-!#$%&'*+\\/0-9=?A-Z^_a-z`{|}~])*@[a-zA-Z0-9](-*\\.?[a-zA-Z0-9])*\\.[a-zA-Z](-?[a-zA-Z0-9])+$/;\r\n// Thanks to:\r\n// http://fightingforalostcause.net/misc/2006/compare-email-regex.php\r\n// http://thedailywtf.com/Articles/Validating_Email_Addresses.aspx\r\n// http://stackoverflow.com/questions/201323/what-is-the-best-regular-expression-for-validating-email-addresses/201378#201378\r\nexports.validate = function(email)\r\n{\r\n\tif (!email)\r\n\t\treturn false;\r\n\t\t\r\n\tif(email.length>254)\r\n\t\treturn false;\r\n\r\n\tvar valid = tester.test(email);\r\n\tif(!valid)\r\n\t\treturn false;\r\n\r\n\t// Further checking of some things regex can't handle\r\n\tvar parts = email.split(\"@\");\r\n\tif(parts[0].length>64)\r\n\t\treturn false;\r\n\r\n\tvar domainParts = parts[1].split(\".\");\r\n\tif(domainParts.some(function(part) { return part.length>63; }))\r\n\t\treturn false;\r\n\r\n\treturn true;\r\n}","/**\n * Copyright (C) 2024 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport AnchorJS from 'anchor-js';\nimport './heading-anchors.css';\n\nexport function addHeadingAnchors(parentSelector = '.app-content') {\n $(function() {\n const anchors = new AnchorJS({\n class: 'swh-heading-anchor',\n ariaLabel: 'anchor to heading'\n });\n anchors.add(`${parentSelector} :is(h2, h3, h4, h5, h6)`);\n });\n}\n","\"use strict\";\n\n/**\n * RegexEscape\n * Escapes a string for using it in a regular expression.\n *\n * @name RegexEscape\n * @function\n * @param {String} input The string that must be escaped.\n * @return {String} The escaped string.\n */\nfunction RegexEscape(input) {\n return input.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, \"\\\\$&\");\n}\n\n/**\n * proto\n * Adds the `RegexEscape` function to `RegExp` class.\n *\n * @name proto\n * @function\n * @return {Function} The `RegexEscape` function.\n */\nRegexEscape.proto = function () {\n RegExp.escape = RegexEscape;\n return RegexEscape;\n};\n\nmodule.exports = RegexEscape;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","/*!\n * @preserve\n * \n * @module iframe-resizer/parent 5.4.7 (umd) - 2025-07-08\n *\n * @license GPL-3.0 for non-commercial use only.\n * For commercial use, you must purchase a license from\n * https://iframe-resizer.com/pricing\n * \n * @description Keep same and cross domain iFrames sized to their content \n *\n * @author David J. Bradshaw <info@iframe-resizer.com>\n * \n * @see {@link https://iframe-resizer.com}\n * \n * @copyright (c) 2013 - 2025, David J. Bradshaw. All rights reserved.\n */\n\n\n!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).iframeResize=t()}(this,(function(){\"use strict\";const e=\"font-weight: normal;\",t=e+\"font-style: italic;\",n=\"default\",o=Object.freeze({assert:!0,error:!0,warn:!0}),i={expand:!0,defaultEvent:void 0,event:void 0,label:\"AutoConsoleGroup\",showTime:!0},r={profile:0,profileEnd:0,timeStamp:0,trace:0},a=Object.assign(console);const{fromEntries:s,keys:l}=Object,c=e=>[e,a[e]],u=e=>t=>[t,function(n){e[t]=n}],d=(e,t)=>s(l(e).map(t));const f=!(typeof window>\"u\"||\"function\"!=typeof window.matchMedia)&&window.matchMedia(\"(prefers-color-scheme: dark)\").matches,p=f?\"color: #A9C7FB;\":\"color: #135CD2;\",h=f?\"color: #E3E3E3;\":\"color: #1F1F1F;\",m=\"5.4.7\",g=\"iframeResizer\",y=\"none\",w=\"vertical\",b=\"horizontal\",v=\"[iFrameSizer]\",z=Object.freeze({max:1,scroll:1,bodyScroll:1,documentElementScroll:1}),$=\"onload\",j=\"init\",k=Object.freeze({[$]:1,[j]:1}),x=\"expanded\",T=\"collapsed\",M=Object.freeze({[x]:1,[T]:1}),E=e=>t=>window.chrome?e(t.replaceAll(\"<br>\",\"\\n\").replaceAll(\"<rb>\",\"\u001b[31;1m\").replaceAll(\"</>\",\"\u001b[m\").replaceAll(\"<b>\",\"\u001b[1m\").replaceAll(\"<i>\",\"\u001b[3m\").replaceAll(\"<u>\",\"\u001b[4m\")):e((e=>e.replaceAll(\"<br>\",\"\\n\").replaceAll(/<[/a-z]+>/gi,\"\"))(t)),O=e=>e,R=(S=function(s={}){const l={},f={},p=[],h={...i,expand:!s.collapsed||i.expanded,...s};let m=\"\";function g(){p.length=0,m=\"\"}function y(){delete h.event,g()}const w=()=>!!p.some((([e])=>e in o))||!!h.expand;function b(){if(0!==p.length){a[w()?\"group\":\"groupCollapsed\"](`%c${h.label}%c ${(e=>{const t=e.event||e.defaultEvent;return t?`${t}`:\"\"})(h)} %c${h.showTime?m:\"\"}`,e,\"font-weight: bold;\",t);for(const[e,...t]of p)a.assert(e in a,`Unknown console method: ${e}`),e in a&&a[e](...t);a.groupEnd(),y()}else y()}function v(){\"\"===m&&(m=function(){const e=new Date,t=(t,n)=>e[t]().toString().padStart(n,\"0\");return`@ ${t(\"getHours\",2)}:${t(\"getMinutes\",2)}:${t(\"getSeconds\",2)}.${t(\"getMilliseconds\",3)}`}())}function z(e,...t){0===p.length&&(v(),queueMicrotask((()=>queueMicrotask(b)))),p.push([e,...t])}function $(e=n,...t){l[e]?z(\"log\",`${e}: ${performance.now()-l[e]} ms`,...t):z(\"timeLog\",e,...t)}return{...d(h,u(h)),...d(console,(e=>[e,(...t)=>z(e,...t)])),...d(r,c),assert:function(e,...t){e||z(\"assert\",e,...t)},count:function(e=n){f[e]?f[e]+=1:f[e]=1,z(\"log\",`${e}: ${f[e]}`)},countReset:function(e=n){delete f[e]},endAutoGroup:b,errorBoundary:e=>(...t)=>{let n;try{n=e(...t)}catch(e){if(!Error.prototype.isPrototypeOf(e))throw e;z(\"error\",e)}return n},event:function(e){v(),h.event=e},purge:g,time:function(e=n){v(),l[e]=performance.now()},timeEnd:function(e=n){$(e),delete l[e]},timeLog:$,touch:v}},S?.__esModule?S.default:S);var S;let I={},W=!1;const A=e=>window.top===window.self?`parent(${e})`:`nested parent(${e})`;const C=e=>(t,...n)=>I[t]?.console[e](...n);var L;const F=(L=\"log\",(e,...t)=>!0===(e=>I[e]?I[e].log:W)(e)?C(L)(e,...t):null),N=C(\"warn\"),H=C(\"error\"),B=C(\"event\"),P=C(\"purge\"),q=C(\"errorBoundary\");const D=(e,...t)=>I[e]?I[e].console.warn(E(O)(...t)):queueMicrotask((()=>console?.warn(E((e=>(...t)=>[`${g}(${e})`,...t].join(\" \"))(e))(...t)))),U=(e=>(t,n=\"renamed to\")=>(o,i,r=\"\",a=\"\")=>e(a,`<rb>Deprecated ${t}(${o.replace(\"()\",\"\")})</>\\n\\nThe <b>${o}</> ${t.toLowerCase()} has been ${n} <b>${i}</>. ${r}Use of the old ${t.toLowerCase()} will be removed in a future version of <i>iframe-resizer</>.`))(D),J=U(\"Function\"),Z=U(\"Option\"),V=(e,t,n,o)=>e.addEventListener(t,n,o||!1),X=(e,t,n)=>e.removeEventListener(t,n,!1),Y=e=>{if(!e)return\"\";let t=-559038744,n=1103547984;for(let o,i=0;i<e.length;i++)o=e.codePointAt(i),t=Math.imul(t^o,2246822519),n=Math.imul(n^o,3266489917);return t^=Math.imul(t^n>>>15,1935289751),n^=Math.imul(n^t>>>15,3405138345),t^=n>>>16,n^=t>>>16,(2097152*(n>>>0)+(t>>>11)).toString(36)},G=e=>e.replace(/[A-Za-z]/g,(e=>String.fromCodePoint((e<=\"Z\"?90:122)>=(e=e.codePointAt(0)+19)?e:e-26))),_=[\"<iy><yi>Puchspk Spjluzl Rlf</><iy><iy>\",\"<iy><yi>Tpzzpun Spjluzl Rlf</><iy><iy>\",\"Aopz spiyhyf pz hchpshisl dpao ivao Jvttlyjphs huk Vwlu-Zvbyjl spjluzlz.<iy><iy><i>Jvttlyjphs Spjluzl</><iy>Mvy jvttlyjphs bzl, <p>pmyhtl-ylzpgly</> ylxbpylz h svd jvza vul aptl spjluzl mll. Mvy tvyl pumvythapvu cpzpa <b>oaawz://pmyhtl-ylzpgly.jvt/wypjpun</>.<iy><iy><i>Vwlu Zvbyjl Spjluzl</><iy>Pm fvb hyl bzpun aopz spiyhyf pu h uvu-jvttlyjphs vwlu zvbyjl wyvqlja aolu fvb jhu bzl pa mvy myll bukly aol alytz vm aol NWS C3 Spjluzl. Av jvumpyt fvb hjjlwa aolzl alytz, wslhzl zla aol <i>spjluzl</> rlf pu <p>pmyhtl-ylzpgly</> vwapvuz av <i>NWSc3</>.<iy><iy>Mvy tvyl pumvythapvu wslhzl zll: <b>oaawz://pmyhtl-ylzpgly.jvt/nws</>\",\"<i>NWSc3 Spjluzl Clyzpvu</><iy><iy>Aopz clyzpvu vm <p>pmyhtl-ylzpgly</> pz ilpun bzlk bukly aol alytz vm aol <i>NWS C3</> spjluzl. Aopz spjluzl hssvdz fvb av bzl <p>pmyhtl-ylzpgly</> pu Vwlu Zvbyjl wyvqljaz, iba pa ylxbpylz fvby wyvqlja av il wbispj, wyvcpkl haaypibapvu huk il spjluzlk bukly clyzpvu 3 vy shaly vm aol NUB Nlulyhs Wbispj Spjluzl.<iy><iy>Pm fvb hyl bzpun aopz spiyhyf pu h uvu-vwlu zvbyjl wyvqlja vy dlizpal, fvb dpss ullk av wbyjohzl h svd jvza vul aptl jvttlyjphs spjluzl.<iy><iy>Mvy tvyl pumvythapvu cpzpa <b>oaawz://pmyhtl-ylzpgly.jvt/wypjpun</>.\",\"<iy><yi>Zvsv spjluzl kvlz uva zbwwvya jyvzz-kvthpu</><iy><iy>Av bzl <p>pmyhtl-ylzpgly</> dpao jyvzz kvthpu pmyhtlz fvb ullk lpaoly aol Wyvmlzzpvuhs vy Ibzpulzz spjluzlz. Mvy klahpsz vu bwnyhkl wypjpun wslhzl jvuahja pumv@pmyhtl-ylzpgly.jvt.\"],K=[\"NWSc3\",\"zvsv\",\"wyv\",\"ibzpulzz\",\"vlt\"],Q=Object.fromEntries([\"2cgs7fdf4xb\",\"1c9ctcccr4z\",\"1q2pc4eebgb\",\"ueokt0969w\",\"w2zxchhgqz\",\"1umuxblj2e5\"].map(((e,t)=>[e,Math.max(0,t-1)]))),ee=e=>G(_[e]),te=e=>{const t=e[G(\"spjluzl\")];if(!t)return-1;const n=t.split(\"-\");let o=function(e=\"\"){let t=-2;const n=Y(G(e));return n in Q&&(t=Q[n]),t}(n[0]);return 0===o||(e=>e[2]===Y(e[0]+e[1]))(n)||(o=-2),o},ne={},oe=Object.freeze({autoResize:!0,bodyBackground:null,bodyMargin:null,bodyPadding:null,checkOrigin:!0,direction:w,inPageLinks:!1,heightCalculationMethod:\"auto\",id:\"iFrameResizer\",log:!1,logExpand:!1,license:void 0,mouseEvents:!0,offsetHeight:null,offsetWidth:null,postMessageTarget:null,sameDomain:!1,scrolling:!1,sizeHeight:!0,sizeWidth:!1,tolerance:0,waitForLoad:!1,warningTimeout:5e3,widthCalculationMethod:\"auto\",onClose:()=>!0,onClosed(){},onInit:!1,onMessage:null,onMouseEnter(){},onMouseLeave(){},onReady:e=>{\"function\"==typeof ne[e.id].onInit&&(Z(\"init()\",\"onReady()\",\"\",e.id),ne[e.id].onInit(e))},onResized(){},onScroll:()=>!0}),ie={position:null,version:m};function re(e){function t(){pe(x),de(T),$(\"onResized\",x)}function n(e){if(\"border-box\"!==e.boxSizing)return 0;return(e.paddingTop?parseInt(e.paddingTop,10):0)+(e.paddingBottom?parseInt(e.paddingBottom,10):0)}function o(e){if(\"border-box\"!==e.boxSizing)return 0;return(e.borderTopWidth?parseInt(e.borderTopWidth,10):0)+(e.borderBottomWidth?parseInt(e.borderBottomWidth,10):0)}const i=e=>k.slice(k.indexOf(\":\")+7+e);const r=(e,t)=>(n,o)=>{const i={};var r,a;r=function(){me(`${n} (${e})`,`${e}:${t()}`,o)},i[a=o]||(r(),i[a]=requestAnimationFrame((()=>{i[a]=null})))},a=(e,t)=>()=>{let n=!1;const o=t=>()=>{ne[l]?n&&n!==t||(e(t,l),n=t,requestAnimationFrame((()=>{n=!1}))):s()},i=o(\"scroll\"),r=o(\"resize window\");function a(e,t){t(window,\"scroll\",i),t(window,\"resize\",r)}function s(){B(l,`stop${t}`),a(0,X),c.disconnect(),u.disconnect(),X(ne[l].iframe,\"load\",s)}const l=T,c=new ResizeObserver(o(\"pageObserver\")),u=new ResizeObserver(o(\"iframeObserver\"));ne[l]&&(ne[l][`stop${t}`]=s,V(ne[l].iframe,\"load\",s),a(0,V),c.observe(document.body,{attributes:!0,childList:!0,subtree:!0}),u.observe(ne[l].iframe,{attributes:!0,childList:!1,subtree:!1}))},s=e=>()=>{e in ne[T]&&(ne[T][e](),delete ne[T][e])},l=r(\"pageInfo\",(function(){const e=document.body.getBoundingClientRect(),t=x.iframe.getBoundingClientRect(),{scrollY:n,scrollX:o,innerHeight:i,innerWidth:r}=window,{clientHeight:a,clientWidth:s}=document.documentElement;return JSON.stringify({iframeHeight:t.height,iframeWidth:t.width,clientHeight:Math.max(a,i||0),clientWidth:Math.max(s,r||0),offsetTop:parseInt(t.top-e.top,10),offsetLeft:parseInt(t.left-e.left,10),scrollTop:n,scrollLeft:o,documentHeight:a,documentWidth:s,windowHeight:i,windowWidth:r})})),c=r(\"parentInfo\",(function(){const{iframe:e}=x,{scrollWidth:t,scrollHeight:n}=document.documentElement,{width:o,height:i,offsetLeft:r,offsetTop:a,pageLeft:s,pageTop:l,scale:c}=window.visualViewport;return JSON.stringify({iframe:e.getBoundingClientRect(),document:{scrollWidth:t,scrollHeight:n},viewport:{width:o,height:i,offsetLeft:r,offsetTop:a,pageLeft:s,pageTop:l,scale:c}})})),u=a(l,\"PageInfo\"),d=a(c,\"ParentInfo\"),f=s(\"stopPageInfo\"),g=s(\"stopParentInfo\");function y(e){const t=e.getBoundingClientRect();return ce(),{x:Number(t.left)+Number(ie.position.x),y:Number(t.top)+Number(ie.position.y)}}function w(e){const t=e?y(x.iframe):{x:0,y:0};F(T,`Reposition requested (offset x:%c${t.x}%c y:%c${t.y})`,p,h,p);const n=((e,t)=>({x:e.width+t.x,y:e.height+t.y}))(x,t),o=window.parentIframe||window.parentIFrame;o?function(t,n){t[\"scrollTo\"+(e?\"Offset\":\"\")](n.x,n.y)}(o,n):function(e){ie.position=e,b(T)}(n)}function b(e){const{x:t,y:n}=ie.position,o=ne[e]?.iframe;!1!==$(\"onScroll\",{iframe:o,top:n,left:t,x:t,y:n})?de(e):ue()}function z(e){let t={};if(0===x.width&&0===x.height){const e=i(9).split(\":\");t={x:e[1],y:e[0]}}else t={x:x.width,y:x.height};$(e,{iframe:x.iframe,screenX:Number(t.x),screenY:Number(t.y),type:x.type})}const $=(e,t)=>ae(T,e,t);function j(){const{height:e,iframe:n,msg:o,type:r,width:a}=x;switch(ne[T]?.firstRun&&ne[T]&&(ne[T].firstRun=!1),r){case\"close\":le(n);break;case\"message\":l=i(6),$(\"onMessage\",{iframe:x.iframe,message:JSON.parse(l)});break;case\"mouseenter\":z(\"onMouseEnter\");break;case\"mouseleave\":z(\"onMouseLeave\");break;case\"autoResize\":ne[T].autoResize=JSON.parse(i(9));break;case\"scrollBy\":!function(){const e=x.width,t=x.height,n=window.parentIframe||window.parentIFrame||window;F(T,`scrollBy: x: %c${e}%c y: %c${t}`,p,h,p),n.scrollBy(e,t)}();break;case\"scrollTo\":w(!1);break;case\"scrollToOffset\":w(!0);break;case\"pageInfo\":u();break;case\"parentInfo\":d();break;case\"pageInfoStop\":f();break;case\"parentInfoStop\":g();break;case\"inPageLink\":!function(e){const t=e.split(\"#\")[1]||\"\",n=decodeURIComponent(t);let o=document.getElementById(n)||document.getElementsByName(n)[0];o?function(){const e=y(o);F(T,`Moving to in page link: %c#${t}`,p),ie.position={x:e.x,y:e.y},b(T),window.location.hash=t}():window.top!==window.self&&function(){const e=window.parentIframe||window.parentIFrame;e&&e.moveToAnchor(t)}()}(i(9));break;case\"title\":!function(e,t){ne[t]?.syncTitle&&(ne[t].iframe.title=e,F(t,`Set iframe title attribute: %c${e}`,p))}(o,T);break;case\"reset\":fe(x);break;case\"init\":t(),function(e){try{ne[e].sameOrigin=!!ne[e]?.iframe?.contentWindow?.iframeChildListener}catch(t){ne[e].sameOrigin=!1}}(T),(s=o)!==m&&(void 0!==s||D(T,\"<rb>Legacy version detected in iframe</>\\n\\nDetected legacy version of child page script. It is recommended to update the page in the iframe to use <b>@iframe-resizer/child</>.\\n\\nSee <u>https://iframe-resizer.com/setup/#child-page-setup</> for more details.\\n\")),we=!0,$(\"onReady\",n);break;default:if(0===a&&0===e)return void N(T,`Unsupported message received (${r}), this is likely due to the iframe containing a later version of iframe-resizer than the parent page`);if(0===a||0===e)return;if(document.hidden)return;t()}var s,l}let k=e.data,x={},T=null;\"[iFrameResizerChild]Ready\"!==k?v===`${k}`.slice(0,13)&&k.slice(13).split(\":\")[0]in ne&&(x=function(){const e=k.slice(13).split(\":\"),t=e[1]?Number(e[1]):0,i=ne[e[0]]?.iframe,r=getComputedStyle(i);return{iframe:i,id:e[0],height:t+n(r)+o(r),width:Number(e[2]),type:e[3],msg:e[4]}}(),T=x.id,T?(B(T,x.type),q(T,(function(){!function(e){if(!ne[e])throw new Error(`${x.type} No settings for ${e}. Message was: ${k}`)}(T),x.type in{true:1,false:1,undefined:1}||(ne[T].loaded=!0,(null!==x.iframe||(N(T,`The iframe (${x.id}) was not found.`),0))&&function(){const{origin:t,sameOrigin:n}=e;if(n)return!0;let o=ne[T]?.checkOrigin;if(o&&\"null\"!=`${t}`&&!(o.constructor===Array?function(){let e=0,n=!1;for(;e<o.length;e++)if(o[e]===t){n=!0;break}return n}():function(){const e=ne[T]?.remoteHost;return t===e}()))throw new Error(`Unexpected message received from: ${t} for ${x.iframe.id}. Message was: ${e.data}. This error can be disabled by setting the checkOrigin: false option or by providing of array of trusted domains.`);return!0}()&&j())}))()):N(\"\",\"iframeResizer received messageData without id, message was: \",k)):Object.keys(ne).forEach((e=>{ne[e].mode>=0&&me(\"iFrame requested init\",ge(e),e)}))}function ae(e,t,n){let o=null,i=null;if(ne[e]){if(o=ne[e][t],\"function\"!=typeof o)throw new TypeError(`${t} on iFrame[${e}] is not a function`);if(\"onClose\"===t||\"onScroll\"===t)try{i=o(n)}catch(n){console.error(n),N(e,`Error in ${t} callback`)}else((e,...t)=>{setTimeout((()=>e(...t)),0)})(o,n)}return i}function se(e){const{id:t}=e;delete ne[t],delete e.iframeResizer}function le(e){const{id:t}=e;if(!1!==ae(t,\"onClose\",t)){try{e.parentNode&&e.remove()}catch(e){N(t,e)}ae(t,\"onClosed\",t),se(e)}}function ce(e){null===ie.position&&(ie.position={x:window.scrollX,y:window.scrollY})}function ue(){ie.position=null}function de(e){null!==ie.position&&(window.scrollTo(ie.position.x,ie.position.y),F(e,`Set page position: %c${ie.position.x}%c, %c${ie.position.y}`,p,h,p),ue())}function fe(e){ce(e.id),pe(e),me(\"reset\",\"reset\",e.id)}function pe(e){function t(t){const o=`${e[t]}px`;e.iframe.style[t]=o,F(n,`Set ${t}: %c${o}`,p)}const{id:n}=e,{sizeHeight:o,sizeWidth:i}=ne[n];o&&t(\"height\"),i&&t(\"width\")}I=ne;const he=e=>e.split(\":\").filter(((e,t)=>19!==t)).join(\":\");function me(e,t,n,o){function i(o){const i=e in k?he(t):t;F(n,o,p,h,p),F(n,`Message data: %c${i}`,p)}B(n,e),ne[n]&&(ne[n]?.postMessageTarget?function(){const{iframe:e,postMessageTarget:o,sameOrigin:r,targetOrigin:a}=ne[n];if(r)try{return e.contentWindow.iframeChildListener(v+t),void i(`Sending message to iframe %c${n}%c via sameOrigin`)}catch(e){}i(`Sending message to iframe: %c${n}%c targetOrigin: %c${a}`),o.postMessage(v+t,a)}():N(n,`Iframe(${n}) not found`),o&&ne[n]?.warningTimeout&&(ne[n].msgTimeout=setTimeout((function(){if(void 0===ne[n])return;const{iframe:e,loaded:t,loadErrorShown:o,waitForLoad:i}=ne[n],{sandbox:r}=e,a=\"object\"==typeof r&&r.length>0;t||o||(ne[n].loadErrorShown=!0,D(n,`<rb>No response from iFrame</>\\n \\nThe iframe (<i>${n}</>) has not responded within ${ne[n].warningTimeout/1e3} seconds. Check <b>@iframe-resizer/child</> package has been loaded in the iframe.\\n${i?\"\\nThe <b>waitForLoad</> option is currently set to <i>'true'</>. If the iframe loads before the JavaScript runs, this option will prevent <i>iframe-resizer</> from initialising. To disable this, set the <b>waitForLoad</> option to <i>'false'</>. \\n\":\"\"}${!a||r.contains(\"allow-scripts\")&&r.contains(\"allow-same-origin\")?\"\":\"\\nThe iframe has the <b>sandbox</> attribute, please ensure it contains both the <i>'allow-same-origin'</> and <i>'allow-scripts'</> values.\\n\"} \\n${!a||r.contains(\"allow-scripts\")&&r.contains(\"allow-same-origin\")?\"\":\"The iframe has the <b>sandbox</> attribute, please ensure it contains both the <i>'allow-same-origin'</> and <i>'allow-scripts'</> values.\\n\"}This message can be ignored if everything is working, or you can set the <b>warningTimeout</> option to a higher value or zero to suppress this warning.\\n`))}),ne[n].warningTimeout)))}function ge(e){const t=ne[e];return[e,\"8\",t.sizeWidth,t.log,\"32\",!0,t.autoResize,t.bodyMargin,t.heightCalculationMethod,t.bodyBackground,t.bodyPadding,t.tolerance,t.inPageLinks,\"child\",t.widthCalculationMethod,t.mouseEvents,t.offsetHeight,t.offsetWidth,t.sizeHeight,t.license,ie.version,t.mode,\"\",t.logExpand].join(\":\")}let ye=0,we=!1,be=!1;const ve=t=>n=>{function o(){if(ne[d]){const{iframe:e}=ne[d],t={close:le.bind(null,e),disconnect:se.bind(null,e),removeListeners(){D(d,\"<rb>Deprecated Method Name</>\\n\\nThe \u001b[removeListeners()</> method has been renamed to \u001b[disconnect()</>.\\n\"),this.disconnect()},resize(){D(d,\"<rb>Deprecated Method</>\\n \\nUse of the <b>resize()</> method from the parent page is deprecated and will be removed in a future version of <i>iframe-resizer</>. As their are no longer any edge cases that require triggering a resize from the parent page, it is recommended to remove this method from your code.\"),me.bind(null,\"Window resize\",\"resize\",d)},moveToAnchor(e){((e,t,n)=>{if(typeof e!==t)throw new TypeError(`${n} is not a ${o=t,o.charAt(0).toUpperCase()+o.slice(1)}`);var o})(e,\"string\",\"moveToAnchor(anchor) anchor\"),me(\"Move to anchor\",`moveToAnchor:${e}`,d)},sendMessage(e){me(\"message\",`message:${e=JSON.stringify(e)}`,d)}};e.iframeResizer=t,e.iFrameResizer=t}}function i(e){const{id:t}=n,{mode:o,waitForLoad:i}=ne[t];-1!==o&&-2!==o&&(V(n,\"load\",(function(){me($,`${e}:${we}`,t,!0),function(){const e=ne[d]?.firstRun,t=ne[d]?.heightCalculationMethod in z;!e&&t&&fe({iframe:n,height:0,width:0,type:\"init\"})}()})),!1===i&&me(j,`${e}:${we}`,t,!0))}function r(e){return e?((\"sizeWidth\"in e||\"sizeHeight\"in e||\"autoResize\"in e)&&D(d,`<rb>Deprecated Option</>\\n\\nThe <b>sizeWidth</>, <b>sizeHeight</> and <b>autoResize</> options have been replaced with new <b>direction</> option which expects values of <i>\"${w}\"</>, <i>\"${b}\"</> or <i>\"${y}\"</>.\\n`),e):{}}function a(){const{mode:n}=ne[d];if(n<0)throw D(\"Parent\",`${ee(n+2)}${ee(2)}`),P(d),ee(n+2).replace(/<\\/?[a-z][^>]*>|<\\/>/gi,\"\");be||n>0&&t.vInfoDisable||function(t,n){queueMicrotask((()=>console.info(`%ciframe-resizer ${t}`,W||n<1?\"font-weight: bold;\":e)))}(`v${m} (${(e=>G(K[e]))(n)})`,n),!be&&n<1&&D(\"Parent\",ee(3)),be=!0}function s(e){const t=ne[e]?.iframe?.title;return\"\"===t||void 0===t}const l=e=>Object.hasOwn(e,\"onMouseEnter\")||Object.hasOwn(e,\"onMouseLeave\");function c(e){var t,o;ne[d]={...ne[d],iframe:n,firstRun:!0,remoteHost:n?.src.split(\"/\").slice(0,3).join(\"/\"),...oe,...r(e),mouseEvents:l(e),mode:te(e),syncTitle:s(d)},B(d,\"setup\"),function(){const{direction:e}=ne[d];switch(e){case w:break;case b:ne[d].sizeHeight=!1;case\"both\":ne[d].sizeWidth=!0;break;case y:ne[d].sizeWidth=!1,ne[d].sizeHeight=!1,ne[d].autoResize=!1;break;default:throw new TypeError(d,`Direction value of \"${e}\" is not valid`)}}(),(t=e?.offsetSize||e?.offset)&&(ne[d].direction===w?ne[d].offsetHeight=t:ne[d].offsetWidth=t),e?.offset&&D(d,\"<rb>Deprecated option</>\\n\\n The <b>offset</> option has been renamed to <b>offsetSize</>. Use of the old name will be removed in a future version of <i>iframe-resizer</>.\"),null===ne[d].postMessageTarget&&(ne[d].postMessageTarget=n.contentWindow),ne[d].targetOrigin=!0===ne[d].checkOrigin?\"\"===(o=ne[d].remoteHost)||null!==o.match(/^(about:blank|javascript:|file:\\/\\/)/)?\"*\":o:\"*\"}const u=()=>\"iframeResizer\"in n,d=function(e){if(e&&\"string\"!=typeof e)throw new TypeError(\"Invalid id for iFrame. Expected String\");return\"\"!==e&&e||(e=function(){let e=t?.id||oe.id+ye++;return null!==document.getElementById(e)&&(e+=ye++),e}(),n.id=e),e}(n.id);if(\"object\"!=typeof t)throw new TypeError(\"Options is not an object\");return function(e){const{search:t}=window.location;t.includes(\"ifrlog\")&&(e.log=x,e.logExpand=!t.includes(\"ifrlog=collapsed\"))}(t),function(e,t){const n=Object.hasOwn(t,\"log\"),o=\"string\"==typeof t.log,i=n?!!o||t.log:oe.log;Object.hasOwn(t,\"logExpand\")||(t.logExpand=n&&o?t.log===x:oe.logExpand),function(e){-1===e?.log&&(e.log=!1,e.vInfoDisable=!0)}(t),function({enabled:e,expand:t,iframeId:n}){const o=R({expand:t,label:A(n)});W=e,I[n]||(I[n]={console:o})}({enabled:i,expand:t.logExpand,iframeId:e}),o&&!(t.log in M)&&H(e,'Invalid value for options.log: Accepted values are \"expanded\" and \"collapsed\"'),t.log=i}(d,t),q(d,(function(e){u()?N(d,`Ignored iframe (${d}), already setup.`):(c(e),a(),$e(),function(){switch(n.style.overflow=!1===ne[d]?.scrolling?\"hidden\":\"auto\",ne[d]?.scrolling){case\"omit\":break;case!0:n.scrolling=\"yes\";break;case!1:n.scrolling=\"no\";break;default:n.scrolling=ne[d]?ne[d].scrolling:\"no\"}}(),function(){const{bodyMargin:e}=ne[d];\"number\"!=typeof e&&\"0\"!==e||(ne[d].bodyMargin=`${e}px`)}(),i(ge(d)),o())}))(t),n?.iFrameResizer};function ze(){!1===document.hidden&&function(e,t){const n=e=>ne[e]?.autoResize&&!ne[e]?.firstRun;Object.keys(ne).forEach((function(o){n(o)&&me(e,t,o)}))}(\"Tab Visible\",\"resize\")}const $e=(e=>{let t=!1;return function(){return t?void 0:(t=!0,Reflect.apply(e,this,arguments))}})((()=>{V(window,\"message\",re),V(document,\"visibilitychange\",ze),window.iframeParentListener=e=>setTimeout((()=>re({data:e,sameOrigin:!0})))})),je=`[${g}] `;const ke=function(){function e(e){switch(!0){case!e:throw new TypeError(`${je}iframe is not defined`);case!e.tagName:throw new TypeError(`${je}Not a valid DOM element`);case\"IFRAME\"!==e.tagName.toUpperCase():throw new TypeError(`${je}Expected <IFRAME> tag, found <${e.tagName}>`);default:t(e),n.push(e)}}let t,n;return function(o,i){if(\"undefined\"==typeof window)return[];switch(t=ve(o),n=[],typeof i){case\"undefined\":case\"string\":document.querySelectorAll(i||\"iframe\").forEach(e);break;case\"object\":e(i);break;default:throw new TypeError(`${je}Unexpected data type (${typeof i})`)}return Object.freeze(n)}}();return\"undefined\"!=typeof window&&(window.iFrameResize=window.iFrameResize||function(...e){J(\"iFrameResize()\",\"iframeResize()\",\"\",\"parent\"),ke(...e)}),ke}));\n","var regeneratorAsyncGen = require(\"./regeneratorAsyncGen.js\");\nfunction _regeneratorAsync(n, e, r, t, o) {\n var a = regeneratorAsyncGen(n, e, r, t, o);\n return a.next().then(function (n) {\n return n.done ? n.value : a.next();\n });\n}\nmodule.exports = _regeneratorAsync, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (C) 2018-2024 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\n// adapted from pdf.js examples located at http://mozilla.github.io/pdf.js/examples/\n\nimport {staticAsset} from 'utils/functions';\n\nexport async function renderPdf(pdfUrl) {\n\n let pdfDoc = null;\n let pageNum = 1;\n let pageRendering = false;\n let pageNumPending = null;\n const defaultScale = 1.5;\n const canvas = $('#pdf-canvas')[0];\n const ctx = canvas.getContext('2d');\n\n // Get page info from document, resize canvas accordingly, and render page.\n async function renderPage(num) {\n pageRendering = true;\n // Using promise to fetch the page\n const page = await pdfDoc.getPage(num);\n\n const divWidth = $('.swh-content').width();\n const scale = Math.min(defaultScale, divWidth / page.getViewport({scale: 1.0}).width);\n\n const viewport = page.getViewport({scale: scale});\n canvas.width = viewport.width;\n canvas.height = viewport.height;\n\n // Render PDF page into canvas context\n const renderContext = {\n canvasContext: ctx,\n viewport: viewport\n };\n\n // Wait for rendering to finish\n await page.render(renderContext);\n\n pageRendering = false;\n if (pageNumPending !== null) {\n // New page rendering is pending\n renderPage(pageNumPending);\n pageNumPending = null;\n }\n\n // Update page counters\n $('#pdf-page-num').text(num);\n }\n\n // If another page rendering in progress, waits until the rendering is\n // finished. Otherwise, executes rendering immediately.\n function queueRenderPage(num) {\n if (pageRendering) {\n pageNumPending = num;\n } else {\n renderPage(num);\n }\n }\n\n // Displays previous page.\n function onPrevPage() {\n if (pageNum <= 1) {\n return;\n }\n pageNum--;\n queueRenderPage(pageNum);\n }\n\n // Displays next page.\n function onNextPage() {\n if (pageNum >= pdfDoc.numPages) {\n return;\n }\n pageNum++;\n queueRenderPage(pageNum);\n }\n\n const pdfjs = await import(/* webpackChunkName: \"pdfjs\" */ 'pdfjs-dist/legacy/build/pdf.mjs');\n\n pdfjs.GlobalWorkerOptions.workerSrc = staticAsset('js/pdf.worker.min.js');\n\n $(document).ready(async() => {\n $('#pdf-prev').click(onPrevPage);\n $('#pdf-next').click(onNextPage);\n try {\n const pdf = await pdfjs.getDocument(pdfUrl).promise;\n pdfDoc = pdf;\n $('#pdf-page-count').text(pdfDoc.numPages);\n // Initial/first page rendering\n renderPage(pageNum);\n } catch (reason) {\n // PDF loading error\n console.error(reason);\n }\n\n // Render PDF on resize\n $(window).on('resize', function() {\n queueRenderPage(pageNum);\n });\n });\n\n}\n","require(\"!!/var/lib/jenkins/agent-workdir/workspace/DWAPPS/pypi-upload/node_modules/script-loader/addScript.js\")(require(\"!!/var/lib/jenkins/agent-workdir/workspace/DWAPPS/pypi-upload/node_modules/raw-loader/index.js!/var/lib/jenkins/agent-workdir/workspace/DWAPPS/pypi-upload/node_modules/notebookjs/notebook.js\"))","/* eslint-env amd */\n/* globals module:false */\n\n// https://github.com/umdjs/umd/blob/master/templates/returnExports.js\n(function(root, factory) {\n 'use strict';\n\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define([], factory);\n } else if (typeof module === 'object' && module.exports) {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory();\n } else {\n // Browser globals (root is window)\n root.AnchorJS = factory();\n root.anchors = new root.AnchorJS();\n }\n}(globalThis, function() {\n 'use strict';\n\n function AnchorJS(options) {\n this.options = options || {};\n this.elements = [];\n\n /**\n * Assigns options to the internal options object, and provides defaults.\n * @param {Object} opts - Options object\n */\n function _applyRemainingDefaultOptions(opts) {\n opts.icon = Object.prototype.hasOwnProperty.call(opts, 'icon') ? opts.icon : '\\uE9CB'; // Accepts characters (and also URLs?), like '#', '¶', '❡', or '§'.\n opts.visible = Object.prototype.hasOwnProperty.call(opts, 'visible') ? opts.visible : 'hover'; // Also accepts 'always'\n opts.placement = Object.prototype.hasOwnProperty.call(opts, 'placement') ? opts.placement : 'right'; // Also accepts 'left'\n opts.ariaLabel = Object.prototype.hasOwnProperty.call(opts, 'ariaLabel') ? opts.ariaLabel : 'Anchor'; // Accepts any text.\n opts.class = Object.prototype.hasOwnProperty.call(opts, 'class') ? opts.class : ''; // Accepts any class name.\n opts.base = Object.prototype.hasOwnProperty.call(opts, 'base') ? opts.base : ''; // Accepts any base URI.\n // Using Math.floor here will ensure the value is Number-cast and an integer.\n opts.truncate = Object.prototype.hasOwnProperty.call(opts, 'truncate') ? Math.floor(opts.truncate) : 64; // Accepts any value that can be typecast to a number.\n opts.titleText = Object.prototype.hasOwnProperty.call(opts, 'titleText') ? opts.titleText : ''; // Accepts any text.\n }\n\n _applyRemainingDefaultOptions(this.options);\n\n /**\n * Add anchor links to page elements.\n * @param {String|Array|Nodelist} selector - A CSS selector for targeting the elements you wish to add anchor links\n * to. Also accepts an array or nodeList containing the relavant elements.\n * @return {this} - The AnchorJS object\n */\n this.add = function(selector) {\n var elements,\n elsWithIds,\n idList,\n elementID,\n i,\n index,\n count,\n tidyText,\n newTidyText,\n anchor,\n hrefBase,\n indexesToDrop = [];\n\n // We reapply options here because somebody may have overwritten the default options object when setting options.\n // For example, this overwrites all options but visible:\n //\n // anchors.options = { visible: 'always'; }\n _applyRemainingDefaultOptions(this.options);\n\n // Provide a sensible default selector, if none is given.\n if (!selector) {\n selector = 'h2, h3, h4, h5, h6';\n }\n\n elements = _getElements(selector);\n\n if (elements.length === 0) {\n return this;\n }\n\n _addBaselineStyles();\n\n // We produce a list of existing IDs so we don't generate a duplicate.\n elsWithIds = document.querySelectorAll('[id]');\n idList = [].map.call(elsWithIds, function(el) {\n return el.id;\n });\n\n for (i = 0; i < elements.length; i++) {\n if (this.hasAnchorJSLink(elements[i])) {\n indexesToDrop.push(i);\n continue;\n }\n\n if (elements[i].hasAttribute('id')) {\n elementID = elements[i].getAttribute('id');\n } else if (elements[i].hasAttribute('data-anchor-id')) {\n elementID = elements[i].getAttribute('data-anchor-id');\n } else {\n tidyText = this.urlify(elements[i].textContent);\n\n // Compare our generated ID to existing IDs (and increment it if needed)\n // before we add it to the page.\n newTidyText = tidyText;\n count = 0;\n do {\n if (index !== undefined) {\n newTidyText = tidyText + '-' + count;\n }\n\n index = idList.indexOf(newTidyText);\n count += 1;\n } while (index !== -1);\n\n index = undefined;\n idList.push(newTidyText);\n\n elements[i].setAttribute('id', newTidyText);\n elementID = newTidyText;\n }\n\n // The following code efficiently builds this DOM structure:\n // `<a class=\"anchorjs-link ${this.options.class}\"\n // aria-label=\"${this.options.ariaLabel}\"\n // data-anchorjs-icon=\"${this.options.icon}\"\n // title=\"${this.options.titleText}\"\n // href=\"this.options.base#${elementID}\">\n // </a>;`\n anchor = document.createElement('a');\n anchor.className = 'anchorjs-link ' + this.options.class;\n anchor.setAttribute('aria-label', this.options.ariaLabel);\n anchor.setAttribute('data-anchorjs-icon', this.options.icon);\n if (this.options.titleText) {\n anchor.title = this.options.titleText;\n }\n\n // Adjust the href if there's a <base> tag. See https://github.com/bryanbraun/anchorjs/issues/98\n hrefBase = document.querySelector('base') ? window.location.pathname + window.location.search : '';\n hrefBase = this.options.base || hrefBase;\n anchor.href = hrefBase + '#' + elementID;\n\n if (this.options.visible === 'always') {\n anchor.style.opacity = '1';\n }\n\n if (this.options.icon === '\\uE9CB') {\n anchor.style.font = '1em/1 anchorjs-icons';\n\n // We set lineHeight = 1 here because the `anchorjs-icons` font family could otherwise affect the\n // height of the heading. This isn't the case for icons with `placement: left`, so we restore\n // line-height: inherit in that case, ensuring they remain positioned correctly. For more info,\n // see https://github.com/bryanbraun/anchorjs/issues/39.\n if (this.options.placement === 'left') {\n anchor.style.lineHeight = 'inherit';\n }\n }\n\n if (this.options.placement === 'left') {\n anchor.style.position = 'absolute';\n anchor.style.marginLeft = '-1.25em';\n anchor.style.paddingRight = '.25em';\n anchor.style.paddingLeft = '.25em';\n elements[i].insertBefore(anchor, elements[i].firstChild);\n } else { // if the option provided is `right` (or anything else).\n anchor.style.marginLeft = '.1875em';\n anchor.style.paddingRight = '.1875em';\n anchor.style.paddingLeft = '.1875em';\n elements[i].appendChild(anchor);\n }\n }\n\n for (i = 0; i < indexesToDrop.length; i++) {\n elements.splice(indexesToDrop[i] - i, 1);\n }\n\n this.elements = this.elements.concat(elements);\n\n return this;\n };\n\n /**\n * Removes all anchorjs-links from elements targeted by the selector.\n * @param {String|Array|Nodelist} selector - A CSS selector string targeting elements with anchor links,\n * OR a nodeList / array containing the DOM elements.\n * @return {this} - The AnchorJS object\n */\n this.remove = function(selector) {\n var index,\n domAnchor,\n elements = _getElements(selector);\n\n for (var i = 0; i < elements.length; i++) {\n domAnchor = elements[i].querySelector('.anchorjs-link');\n if (domAnchor) {\n // Drop the element from our main list, if it's in there.\n index = this.elements.indexOf(elements[i]);\n if (index !== -1) {\n this.elements.splice(index, 1);\n }\n\n // Remove the anchor from the DOM.\n elements[i].removeChild(domAnchor);\n }\n }\n\n return this;\n };\n\n /**\n * Removes all anchorjs links. Mostly used for tests.\n */\n this.removeAll = function() {\n this.remove(this.elements);\n };\n\n /**\n * Urlify - Refine text so it makes a good ID.\n *\n * To do this, we remove apostrophes, replace non-safe characters with hyphens,\n * remove extra hyphens, truncate, trim hyphens, and make lowercase.\n *\n * @param {String} text - Any text. Usually pulled from the webpage element we are linking to.\n * @return {String} - hyphen-delimited text for use in IDs and URLs.\n */\n this.urlify = function(text) {\n // Decode HTML characters such as '&nbsp;' first.\n var textareaElement = document.createElement('textarea');\n textareaElement.innerHTML = text;\n text = textareaElement.value;\n\n // Regex for finding the non-safe URL characters (many need escaping):\n // & +$,:;=?@\"#{}|^~[`%!'<>]./()*\\ (newlines, tabs, backspace, vertical tabs, and non-breaking space)\n var nonsafeChars = /[& +$,:;=?@\"#{}|^~[`%!'<>\\]./()*\\\\\\n\\t\\b\\v\\u00A0]/g;\n\n // The reason we include this _applyRemainingDefaultOptions is so urlify can be called independently,\n // even after setting options. This can be useful for tests or other applications.\n if (!this.options.truncate) {\n _applyRemainingDefaultOptions(this.options);\n }\n\n // Note: we trim hyphens after truncating because truncating can cause dangling hyphens.\n // Example string: // \" ⚡⚡ Don't forget: URL fragments should be i18n-friendly, hyphenated, short, and clean.\"\n return text.trim() // \"⚡⚡ Don't forget: URL fragments should be i18n-friendly, hyphenated, short, and clean.\"\n .replace(/'/gi, '') // \"⚡⚡ Dont forget: URL fragments should be i18n-friendly, hyphenated, short, and clean.\"\n .replace(nonsafeChars, '-') // \"⚡⚡-Dont-forget--URL-fragments-should-be-i18n-friendly--hyphenated--short--and-clean-\"\n .replace(/-{2,}/g, '-') // \"⚡⚡-Dont-forget-URL-fragments-should-be-i18n-friendly-hyphenated-short-and-clean-\"\n .substring(0, this.options.truncate) // \"⚡⚡-Dont-forget-URL-fragments-should-be-i18n-friendly-hyphenated-\"\n .replace(/^-+|-+$/gm, '') // \"⚡⚡-Dont-forget-URL-fragments-should-be-i18n-friendly-hyphenated\"\n .toLowerCase(); // \"⚡⚡-dont-forget-url-fragments-should-be-i18n-friendly-hyphenated\"\n };\n\n /**\n * Determines if this element already has an AnchorJS link on it.\n * Uses this technique: https://stackoverflow.com/a/5898748/1154642\n * @param {HTMLElement} el - a DOM node\n * @return {Boolean} true/false\n */\n this.hasAnchorJSLink = function(el) {\n var hasLeftAnchor = el.firstChild && (' ' + el.firstChild.className + ' ').indexOf(' anchorjs-link ') > -1,\n hasRightAnchor = el.lastChild && (' ' + el.lastChild.className + ' ').indexOf(' anchorjs-link ') > -1;\n\n return hasLeftAnchor || hasRightAnchor || false;\n };\n\n /**\n * Turns a selector, nodeList, or array of elements into an array of elements (so we can use array methods).\n * It also throws errors on any other inputs. Used to handle inputs to .add and .remove.\n * @param {String|Array|Nodelist} input - A CSS selector string targeting elements with anchor links,\n * OR a nodeList / array containing the DOM elements.\n * @return {Array} - An array containing the elements we want.\n */\n function _getElements(input) {\n var elements;\n if (typeof input === 'string' || input instanceof String) {\n // See https://davidwalsh.name/nodelist-array for the technique transforming nodeList -> Array.\n elements = [].slice.call(document.querySelectorAll(input));\n } else if (Array.isArray(input) || input instanceof NodeList) {\n elements = [].slice.call(input);\n } else {\n throw new TypeError('The selector provided to AnchorJS was invalid.');\n }\n\n return elements;\n }\n\n /**\n * _addBaselineStyles\n * Adds baseline styles to the page, used by all AnchorJS links irregardless of configuration.\n */\n function _addBaselineStyles() {\n // We don't want to add global baseline styles if they've been added before.\n if (document.head.querySelector('style.anchorjs') !== null) {\n return;\n }\n\n var style = document.createElement('style'),\n linkRule =\n '.anchorjs-link{' +\n 'opacity:0;' +\n 'text-decoration:none;' +\n '-webkit-font-smoothing:antialiased;' +\n '-moz-osx-font-smoothing:grayscale' +\n '}',\n hoverRule =\n ':hover>.anchorjs-link,' +\n '.anchorjs-link:focus{' +\n 'opacity:1' +\n '}',\n anchorjsLinkFontFace =\n '@font-face{' +\n 'font-family:anchorjs-icons;' + // Icon from icomoon; 10px wide & 10px tall; 2 empty below & 4 above\n 'src:url(data:n/a;base64,AAEAAAALAIAAAwAwT1MvMg8yG2cAAAE4AAAAYGNtYXDp3gC3AAABpAAAAExnYXNwAAAAEAAAA9wAAAAIZ2x5ZlQCcfwAAAH4AAABCGhlYWQHFvHyAAAAvAAAADZoaGVhBnACFwAAAPQAAAAkaG10eASAADEAAAGYAAAADGxvY2EACACEAAAB8AAAAAhtYXhwAAYAVwAAARgAAAAgbmFtZQGOH9cAAAMAAAAAunBvc3QAAwAAAAADvAAAACAAAQAAAAEAAHzE2p9fDzz1AAkEAAAAAADRecUWAAAAANQA6R8AAAAAAoACwAAAAAgAAgAAAAAAAAABAAADwP/AAAACgAAA/9MCrQABAAAAAAAAAAAAAAAAAAAAAwABAAAAAwBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMCQAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAg//0DwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAAIAAAACgAAxAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADAAAAAIAAgAAgAAACDpy//9//8AAAAg6cv//f///+EWNwADAAEAAAAAAAAAAAAAAAAACACEAAEAAAAAAAAAAAAAAAAxAAACAAQARAKAAsAAKwBUAAABIiYnJjQ3NzY2MzIWFxYUBwcGIicmNDc3NjQnJiYjIgYHBwYUFxYUBwYGIwciJicmNDc3NjIXFhQHBwYUFxYWMzI2Nzc2NCcmNDc2MhcWFAcHBgYjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAAADACWAAEAAAAAAAEACAAAAAEAAAAAAAIAAwAIAAEAAAAAAAMACAAAAAEAAAAAAAQACAAAAAEAAAAAAAUAAQALAAEAAAAAAAYACAAAAAMAAQQJAAEAEAAMAAMAAQQJAAIABgAcAAMAAQQJAAMAEAAMAAMAAQQJAAQAEAAMAAMAAQQJAAUAAgAiAAMAAQQJAAYAEAAMYW5jaG9yanM0MDBAAGEAbgBjAGgAbwByAGoAcwA0ADAAMABAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAH//wAP) format(\"truetype\")' +\n '}',\n pseudoElContent =\n '[data-anchorjs-icon]::after{' +\n 'content:attr(data-anchorjs-icon)' +\n '}',\n firstStyleEl;\n\n style.className = 'anchorjs';\n style.appendChild(document.createTextNode('')); // Necessary for Webkit.\n\n // We place it in the head with the other style tags, if possible, so as to\n // not look out of place. We insert before the others so these styles can be\n // overridden if necessary.\n firstStyleEl = document.head.querySelector('[rel=\"stylesheet\"],style');\n if (firstStyleEl === undefined) {\n document.head.appendChild(style);\n } else {\n document.head.insertBefore(style, firstStyleEl);\n }\n\n style.sheet.insertRule(linkRule, style.sheet.cssRules.length);\n style.sheet.insertRule(hoverRule, style.sheet.cssRules.length);\n style.sheet.insertRule(pseudoElContent, style.sheet.cssRules.length);\n style.sheet.insertRule(anchorjsLinkFontFace, style.sheet.cssRules.length);\n }\n }\n\n return AnchorJS;\n}));\n","/**\n * Copyright (C) 2020 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport {staticAsset} from 'utils/functions';\n\nexport async function typesetMath() {\n\n window.MathJax = {\n chtml: {\n fontURL: staticAsset('fonts/')\n },\n tex: {\n tags: 'ams',\n useLabelIds: true,\n inlineMath: [ ['$', '$'], ['\\\\(', '\\\\)'] ],\n displayMath: [ ['$$', '$$'], ['\\\\[', '\\\\]'] ],\n processEscapes: true,\n processEnvironments: true\n },\n loader: {\n paths: {\n mathjax: staticAsset('js/mathjax')\n }\n }\n };\n\n await import(/* webpackChunkName: \"mathjax\" */ 'utils/mathjax');\n}\n","/*! https://mths.be/he v1.2.0 by @mathias | MIT license */\n;(function(root) {\n\n\t// Detect free variables `exports`.\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`.\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code,\n\t// and use it as `root`.\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t// All astral symbols.\n\tvar regexAstralSymbols = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n\t// All ASCII symbols (not just printable ASCII) except those listed in the\n\t// first column of the overrides table.\n\t// https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides\n\tvar regexAsciiWhitelist = /[\\x01-\\x7F]/g;\n\t// All BMP symbols that are not ASCII newlines, printable ASCII symbols, or\n\t// code points listed in the first column of the overrides table on\n\t// https://html.spec.whatwg.org/multipage/syntax.html#table-charref-overrides.\n\tvar regexBmpWhitelist = /[\\x01-\\t\\x0B\\f\\x0E-\\x1F\\x7F\\x81\\x8D\\x8F\\x90\\x9D\\xA0-\\uFFFF]/g;\n\n\tvar regexEncodeNonAscii = /<\\u20D2|=\\u20E5|>\\u20D2|\\u205F\\u200A|\\u219D\\u0338|\\u2202\\u0338|\\u2220\\u20D2|\\u2229\\uFE00|\\u222A\\uFE00|\\u223C\\u20D2|\\u223D\\u0331|\\u223E\\u0333|\\u2242\\u0338|\\u224B\\u0338|\\u224D\\u20D2|\\u224E\\u0338|\\u224F\\u0338|\\u2250\\u0338|\\u2261\\u20E5|\\u2264\\u20D2|\\u2265\\u20D2|\\u2266\\u0338|\\u2267\\u0338|\\u2268\\uFE00|\\u2269\\uFE00|\\u226A\\u0338|\\u226A\\u20D2|\\u226B\\u0338|\\u226B\\u20D2|\\u227F\\u0338|\\u2282\\u20D2|\\u2283\\u20D2|\\u228A\\uFE00|\\u228B\\uFE00|\\u228F\\u0338|\\u2290\\u0338|\\u2293\\uFE00|\\u2294\\uFE00|\\u22B4\\u20D2|\\u22B5\\u20D2|\\u22D8\\u0338|\\u22D9\\u0338|\\u22DA\\uFE00|\\u22DB\\uFE00|\\u22F5\\u0338|\\u22F9\\u0338|\\u2933\\u0338|\\u29CF\\u0338|\\u29D0\\u0338|\\u2A6D\\u0338|\\u2A70\\u0338|\\u2A7D\\u0338|\\u2A7E\\u0338|\\u2AA1\\u0338|\\u2AA2\\u0338|\\u2AAC\\uFE00|\\u2AAD\\uFE00|\\u2AAF\\u0338|\\u2AB0\\u0338|\\u2AC5\\u0338|\\u2AC6\\u0338|\\u2ACB\\uFE00|\\u2ACC\\uFE00|\\u2AFD\\u20E5|[\\xA0-\\u0113\\u0116-\\u0122\\u0124-\\u012B\\u012E-\\u014D\\u0150-\\u017E\\u0192\\u01B5\\u01F5\\u0237\\u02C6\\u02C7\\u02D8-\\u02DD\\u0311\\u0391-\\u03A1\\u03A3-\\u03A9\\u03B1-\\u03C9\\u03D1\\u03D2\\u03D5\\u03D6\\u03DC\\u03DD\\u03F0\\u03F1\\u03F5\\u03F6\\u0401-\\u040C\\u040E-\\u044F\\u0451-\\u045C\\u045E\\u045F\\u2002-\\u2005\\u2007-\\u2010\\u2013-\\u2016\\u2018-\\u201A\\u201C-\\u201E\\u2020-\\u2022\\u2025\\u2026\\u2030-\\u2035\\u2039\\u203A\\u203E\\u2041\\u2043\\u2044\\u204F\\u2057\\u205F-\\u2063\\u20AC\\u20DB\\u20DC\\u2102\\u2105\\u210A-\\u2113\\u2115-\\u211E\\u2122\\u2124\\u2127-\\u2129\\u212C\\u212D\\u212F-\\u2131\\u2133-\\u2138\\u2145-\\u2148\\u2153-\\u215E\\u2190-\\u219B\\u219D-\\u21A7\\u21A9-\\u21AE\\u21B0-\\u21B3\\u21B5-\\u21B7\\u21BA-\\u21DB\\u21DD\\u21E4\\u21E5\\u21F5\\u21FD-\\u2205\\u2207-\\u2209\\u220B\\u220C\\u220F-\\u2214\\u2216-\\u2218\\u221A\\u221D-\\u2238\\u223A-\\u2257\\u2259\\u225A\\u225C\\u225F-\\u2262\\u2264-\\u228B\\u228D-\\u229B\\u229D-\\u22A5\\u22A7-\\u22B0\\u22B2-\\u22BB\\u22BD-\\u22DB\\u22DE-\\u22E3\\u22E6-\\u22F7\\u22F9-\\u22FE\\u2305\\u2306\\u2308-\\u2310\\u2312\\u2313\\u2315\\u2316\\u231C-\\u231F\\u2322\\u2323\\u232D\\u232E\\u2336\\u233D\\u233F\\u237C\\u23B0\\u23B1\\u23B4-\\u23B6\\u23DC-\\u23DF\\u23E2\\u23E7\\u2423\\u24C8\\u2500\\u2502\\u250C\\u2510\\u2514\\u2518\\u251C\\u2524\\u252C\\u2534\\u253C\\u2550-\\u256C\\u2580\\u2584\\u2588\\u2591-\\u2593\\u25A1\\u25AA\\u25AB\\u25AD\\u25AE\\u25B1\\u25B3-\\u25B5\\u25B8\\u25B9\\u25BD-\\u25BF\\u25C2\\u25C3\\u25CA\\u25CB\\u25EC\\u25EF\\u25F8-\\u25FC\\u2605\\u2606\\u260E\\u2640\\u2642\\u2660\\u2663\\u2665\\u2666\\u266A\\u266D-\\u266F\\u2713\\u2717\\u2720\\u2736\\u2758\\u2772\\u2773\\u27C8\\u27C9\\u27E6-\\u27ED\\u27F5-\\u27FA\\u27FC\\u27FF\\u2902-\\u2905\\u290C-\\u2913\\u2916\\u2919-\\u2920\\u2923-\\u292A\\u2933\\u2935-\\u2939\\u293C\\u293D\\u2945\\u2948-\\u294B\\u294E-\\u2976\\u2978\\u2979\\u297B-\\u297F\\u2985\\u2986\\u298B-\\u2996\\u299A\\u299C\\u299D\\u29A4-\\u29B7\\u29B9\\u29BB\\u29BC\\u29BE-\\u29C5\\u29C9\\u29CD-\\u29D0\\u29DC-\\u29DE\\u29E3-\\u29E5\\u29EB\\u29F4\\u29F6\\u2A00-\\u2A02\\u2A04\\u2A06\\u2A0C\\u2A0D\\u2A10-\\u2A17\\u2A22-\\u2A27\\u2A29\\u2A2A\\u2A2D-\\u2A31\\u2A33-\\u2A3C\\u2A3F\\u2A40\\u2A42-\\u2A4D\\u2A50\\u2A53-\\u2A58\\u2A5A-\\u2A5D\\u2A5F\\u2A66\\u2A6A\\u2A6D-\\u2A75\\u2A77-\\u2A9A\\u2A9D-\\u2AA2\\u2AA4-\\u2AB0\\u2AB3-\\u2AC8\\u2ACB\\u2ACC\\u2ACF-\\u2ADB\\u2AE4\\u2AE6-\\u2AE9\\u2AEB-\\u2AF3\\u2AFD\\uFB00-\\uFB04]|\\uD835[\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDCCF\\uDD04\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDD6B]/g;\n\tvar encodeMap = {'\\xAD':'shy','\\u200C':'zwnj','\\u200D':'zwj','\\u200E':'lrm','\\u2063':'ic','\\u2062':'it','\\u2061':'af','\\u200F':'rlm','\\u200B':'ZeroWidthSpace','\\u2060':'NoBreak','\\u0311':'DownBreve','\\u20DB':'tdot','\\u20DC':'DotDot','\\t':'Tab','\\n':'NewLine','\\u2008':'puncsp','\\u205F':'MediumSpace','\\u2009':'thinsp','\\u200A':'hairsp','\\u2004':'emsp13','\\u2002':'ensp','\\u2005':'emsp14','\\u2003':'emsp','\\u2007':'numsp','\\xA0':'nbsp','\\u205F\\u200A':'ThickSpace','\\u203E':'oline','_':'lowbar','\\u2010':'dash','\\u2013':'ndash','\\u2014':'mdash','\\u2015':'horbar',',':'comma',';':'semi','\\u204F':'bsemi',':':'colon','\\u2A74':'Colone','!':'excl','\\xA1':'iexcl','?':'quest','\\xBF':'iquest','.':'period','\\u2025':'nldr','\\u2026':'mldr','\\xB7':'middot','\\'':'apos','\\u2018':'lsquo','\\u2019':'rsquo','\\u201A':'sbquo','\\u2039':'lsaquo','\\u203A':'rsaquo','\"':'quot','\\u201C':'ldquo','\\u201D':'rdquo','\\u201E':'bdquo','\\xAB':'laquo','\\xBB':'raquo','(':'lpar',')':'rpar','[':'lsqb',']':'rsqb','{':'lcub','}':'rcub','\\u2308':'lceil','\\u2309':'rceil','\\u230A':'lfloor','\\u230B':'rfloor','\\u2985':'lopar','\\u2986':'ropar','\\u298B':'lbrke','\\u298C':'rbrke','\\u298D':'lbrkslu','\\u298E':'rbrksld','\\u298F':'lbrksld','\\u2990':'rbrkslu','\\u2991':'langd','\\u2992':'rangd','\\u2993':'lparlt','\\u2994':'rpargt','\\u2995':'gtlPar','\\u2996':'ltrPar','\\u27E6':'lobrk','\\u27E7':'robrk','\\u27E8':'lang','\\u27E9':'rang','\\u27EA':'Lang','\\u27EB':'Rang','\\u27EC':'loang','\\u27ED':'roang','\\u2772':'lbbrk','\\u2773':'rbbrk','\\u2016':'Vert','\\xA7':'sect','\\xB6':'para','@':'commat','*':'ast','/':'sol','undefined':null,'&':'amp','#':'num','%':'percnt','\\u2030':'permil','\\u2031':'pertenk','\\u2020':'dagger','\\u2021':'Dagger','\\u2022':'bull','\\u2043':'hybull','\\u2032':'prime','\\u2033':'Prime','\\u2034':'tprime','\\u2057':'qprime','\\u2035':'bprime','\\u2041':'caret','`':'grave','\\xB4':'acute','\\u02DC':'tilde','^':'Hat','\\xAF':'macr','\\u02D8':'breve','\\u02D9':'dot','\\xA8':'die','\\u02DA':'ring','\\u02DD':'dblac','\\xB8':'cedil','\\u02DB':'ogon','\\u02C6':'circ','\\u02C7':'caron','\\xB0':'deg','\\xA9':'copy','\\xAE':'reg','\\u2117':'copysr','\\u2118':'wp','\\u211E':'rx','\\u2127':'mho','\\u2129':'iiota','\\u2190':'larr','\\u219A':'nlarr','\\u2192':'rarr','\\u219B':'nrarr','\\u2191':'uarr','\\u2193':'darr','\\u2194':'harr','\\u21AE':'nharr','\\u2195':'varr','\\u2196':'nwarr','\\u2197':'nearr','\\u2198':'searr','\\u2199':'swarr','\\u219D':'rarrw','\\u219D\\u0338':'nrarrw','\\u219E':'Larr','\\u219F':'Uarr','\\u21A0':'Rarr','\\u21A1':'Darr','\\u21A2':'larrtl','\\u21A3':'rarrtl','\\u21A4':'mapstoleft','\\u21A5':'mapstoup','\\u21A6':'map','\\u21A7':'mapstodown','\\u21A9':'larrhk','\\u21AA':'rarrhk','\\u21AB':'larrlp','\\u21AC':'rarrlp','\\u21AD':'harrw','\\u21B0':'lsh','\\u21B1':'rsh','\\u21B2':'ldsh','\\u21B3':'rdsh','\\u21B5':'crarr','\\u21B6':'cularr','\\u21B7':'curarr','\\u21BA':'olarr','\\u21BB':'orarr','\\u21BC':'lharu','\\u21BD':'lhard','\\u21BE':'uharr','\\u21BF':'uharl','\\u21C0':'rharu','\\u21C1':'rhard','\\u21C2':'dharr','\\u21C3':'dharl','\\u21C4':'rlarr','\\u21C5':'udarr','\\u21C6':'lrarr','\\u21C7':'llarr','\\u21C8':'uuarr','\\u21C9':'rrarr','\\u21CA':'ddarr','\\u21CB':'lrhar','\\u21CC':'rlhar','\\u21D0':'lArr','\\u21CD':'nlArr','\\u21D1':'uArr','\\u21D2':'rArr','\\u21CF':'nrArr','\\u21D3':'dArr','\\u21D4':'iff','\\u21CE':'nhArr','\\u21D5':'vArr','\\u21D6':'nwArr','\\u21D7':'neArr','\\u21D8':'seArr','\\u21D9':'swArr','\\u21DA':'lAarr','\\u21DB':'rAarr','\\u21DD':'zigrarr','\\u21E4':'larrb','\\u21E5':'rarrb','\\u21F5':'duarr','\\u21FD':'loarr','\\u21FE':'roarr','\\u21FF':'hoarr','\\u2200':'forall','\\u2201':'comp','\\u2202':'part','\\u2202\\u0338':'npart','\\u2203':'exist','\\u2204':'nexist','\\u2205':'empty','\\u2207':'Del','\\u2208':'in','\\u2209':'notin','\\u220B':'ni','\\u220C':'notni','\\u03F6':'bepsi','\\u220F':'prod','\\u2210':'coprod','\\u2211':'sum','+':'plus','\\xB1':'pm','\\xF7':'div','\\xD7':'times','<':'lt','\\u226E':'nlt','<\\u20D2':'nvlt','=':'equals','\\u2260':'ne','=\\u20E5':'bne','\\u2A75':'Equal','>':'gt','\\u226F':'ngt','>\\u20D2':'nvgt','\\xAC':'not','|':'vert','\\xA6':'brvbar','\\u2212':'minus','\\u2213':'mp','\\u2214':'plusdo','\\u2044':'frasl','\\u2216':'setmn','\\u2217':'lowast','\\u2218':'compfn','\\u221A':'Sqrt','\\u221D':'prop','\\u221E':'infin','\\u221F':'angrt','\\u2220':'ang','\\u2220\\u20D2':'nang','\\u2221':'angmsd','\\u2222':'angsph','\\u2223':'mid','\\u2224':'nmid','\\u2225':'par','\\u2226':'npar','\\u2227':'and','\\u2228':'or','\\u2229':'cap','\\u2229\\uFE00':'caps','\\u222A':'cup','\\u222A\\uFE00':'cups','\\u222B':'int','\\u222C':'Int','\\u222D':'tint','\\u2A0C':'qint','\\u222E':'oint','\\u222F':'Conint','\\u2230':'Cconint','\\u2231':'cwint','\\u2232':'cwconint','\\u2233':'awconint','\\u2234':'there4','\\u2235':'becaus','\\u2236':'ratio','\\u2237':'Colon','\\u2238':'minusd','\\u223A':'mDDot','\\u223B':'homtht','\\u223C':'sim','\\u2241':'nsim','\\u223C\\u20D2':'nvsim','\\u223D':'bsim','\\u223D\\u0331':'race','\\u223E':'ac','\\u223E\\u0333':'acE','\\u223F':'acd','\\u2240':'wr','\\u2242':'esim','\\u2242\\u0338':'nesim','\\u2243':'sime','\\u2244':'nsime','\\u2245':'cong','\\u2247':'ncong','\\u2246':'simne','\\u2248':'ap','\\u2249':'nap','\\u224A':'ape','\\u224B':'apid','\\u224B\\u0338':'napid','\\u224C':'bcong','\\u224D':'CupCap','\\u226D':'NotCupCap','\\u224D\\u20D2':'nvap','\\u224E':'bump','\\u224E\\u0338':'nbump','\\u224F':'bumpe','\\u224F\\u0338':'nbumpe','\\u2250':'doteq','\\u2250\\u0338':'nedot','\\u2251':'eDot','\\u2252':'efDot','\\u2253':'erDot','\\u2254':'colone','\\u2255':'ecolon','\\u2256':'ecir','\\u2257':'cire','\\u2259':'wedgeq','\\u225A':'veeeq','\\u225C':'trie','\\u225F':'equest','\\u2261':'equiv','\\u2262':'nequiv','\\u2261\\u20E5':'bnequiv','\\u2264':'le','\\u2270':'nle','\\u2264\\u20D2':'nvle','\\u2265':'ge','\\u2271':'nge','\\u2265\\u20D2':'nvge','\\u2266':'lE','\\u2266\\u0338':'nlE','\\u2267':'gE','\\u2267\\u0338':'ngE','\\u2268\\uFE00':'lvnE','\\u2268':'lnE','\\u2269':'gnE','\\u2269\\uFE00':'gvnE','\\u226A':'ll','\\u226A\\u0338':'nLtv','\\u226A\\u20D2':'nLt','\\u226B':'gg','\\u226B\\u0338':'nGtv','\\u226B\\u20D2':'nGt','\\u226C':'twixt','\\u2272':'lsim','\\u2274':'nlsim','\\u2273':'gsim','\\u2275':'ngsim','\\u2276':'lg','\\u2278':'ntlg','\\u2277':'gl','\\u2279':'ntgl','\\u227A':'pr','\\u2280':'npr','\\u227B':'sc','\\u2281':'nsc','\\u227C':'prcue','\\u22E0':'nprcue','\\u227D':'sccue','\\u22E1':'nsccue','\\u227E':'prsim','\\u227F':'scsim','\\u227F\\u0338':'NotSucceedsTilde','\\u2282':'sub','\\u2284':'nsub','\\u2282\\u20D2':'vnsub','\\u2283':'sup','\\u2285':'nsup','\\u2283\\u20D2':'vnsup','\\u2286':'sube','\\u2288':'nsube','\\u2287':'supe','\\u2289':'nsupe','\\u228A\\uFE00':'vsubne','\\u228A':'subne','\\u228B\\uFE00':'vsupne','\\u228B':'supne','\\u228D':'cupdot','\\u228E':'uplus','\\u228F':'sqsub','\\u228F\\u0338':'NotSquareSubset','\\u2290':'sqsup','\\u2290\\u0338':'NotSquareSuperset','\\u2291':'sqsube','\\u22E2':'nsqsube','\\u2292':'sqsupe','\\u22E3':'nsqsupe','\\u2293':'sqcap','\\u2293\\uFE00':'sqcaps','\\u2294':'sqcup','\\u2294\\uFE00':'sqcups','\\u2295':'oplus','\\u2296':'ominus','\\u2297':'otimes','\\u2298':'osol','\\u2299':'odot','\\u229A':'ocir','\\u229B':'oast','\\u229D':'odash','\\u229E':'plusb','\\u229F':'minusb','\\u22A0':'timesb','\\u22A1':'sdotb','\\u22A2':'vdash','\\u22AC':'nvdash','\\u22A3':'dashv','\\u22A4':'top','\\u22A5':'bot','\\u22A7':'models','\\u22A8':'vDash','\\u22AD':'nvDash','\\u22A9':'Vdash','\\u22AE':'nVdash','\\u22AA':'Vvdash','\\u22AB':'VDash','\\u22AF':'nVDash','\\u22B0':'prurel','\\u22B2':'vltri','\\u22EA':'nltri','\\u22B3':'vrtri','\\u22EB':'nrtri','\\u22B4':'ltrie','\\u22EC':'nltrie','\\u22B4\\u20D2':'nvltrie','\\u22B5':'rtrie','\\u22ED':'nrtrie','\\u22B5\\u20D2':'nvrtrie','\\u22B6':'origof','\\u22B7':'imof','\\u22B8':'mumap','\\u22B9':'hercon','\\u22BA':'intcal','\\u22BB':'veebar','\\u22BD':'barvee','\\u22BE':'angrtvb','\\u22BF':'lrtri','\\u22C0':'Wedge','\\u22C1':'Vee','\\u22C2':'xcap','\\u22C3':'xcup','\\u22C4':'diam','\\u22C5':'sdot','\\u22C6':'Star','\\u22C7':'divonx','\\u22C8':'bowtie','\\u22C9':'ltimes','\\u22CA':'rtimes','\\u22CB':'lthree','\\u22CC':'rthree','\\u22CD':'bsime','\\u22CE':'cuvee','\\u22CF':'cuwed','\\u22D0':'Sub','\\u22D1':'Sup','\\u22D2':'Cap','\\u22D3':'Cup','\\u22D4':'fork','\\u22D5':'epar','\\u22D6':'ltdot','\\u22D7':'gtdot','\\u22D8':'Ll','\\u22D8\\u0338':'nLl','\\u22D9':'Gg','\\u22D9\\u0338':'nGg','\\u22DA\\uFE00':'lesg','\\u22DA':'leg','\\u22DB':'gel','\\u22DB\\uFE00':'gesl','\\u22DE':'cuepr','\\u22DF':'cuesc','\\u22E6':'lnsim','\\u22E7':'gnsim','\\u22E8':'prnsim','\\u22E9':'scnsim','\\u22EE':'vellip','\\u22EF':'ctdot','\\u22F0':'utdot','\\u22F1':'dtdot','\\u22F2':'disin','\\u22F3':'isinsv','\\u22F4':'isins','\\u22F5':'isindot','\\u22F5\\u0338':'notindot','\\u22F6':'notinvc','\\u22F7':'notinvb','\\u22F9':'isinE','\\u22F9\\u0338':'notinE','\\u22FA':'nisd','\\u22FB':'xnis','\\u22FC':'nis','\\u22FD':'notnivc','\\u22FE':'notnivb','\\u2305':'barwed','\\u2306':'Barwed','\\u230C':'drcrop','\\u230D':'dlcrop','\\u230E':'urcrop','\\u230F':'ulcrop','\\u2310':'bnot','\\u2312':'profline','\\u2313':'profsurf','\\u2315':'telrec','\\u2316':'target','\\u231C':'ulcorn','\\u231D':'urcorn','\\u231E':'dlcorn','\\u231F':'drcorn','\\u2322':'frown','\\u2323':'smile','\\u232D':'cylcty','\\u232E':'profalar','\\u2336':'topbot','\\u233D':'ovbar','\\u233F':'solbar','\\u237C':'angzarr','\\u23B0':'lmoust','\\u23B1':'rmoust','\\u23B4':'tbrk','\\u23B5':'bbrk','\\u23B6':'bbrktbrk','\\u23DC':'OverParenthesis','\\u23DD':'UnderParenthesis','\\u23DE':'OverBrace','\\u23DF':'UnderBrace','\\u23E2':'trpezium','\\u23E7':'elinters','\\u2423':'blank','\\u2500':'boxh','\\u2502':'boxv','\\u250C':'boxdr','\\u2510':'boxdl','\\u2514':'boxur','\\u2518':'boxul','\\u251C':'boxvr','\\u2524':'boxvl','\\u252C':'boxhd','\\u2534':'boxhu','\\u253C':'boxvh','\\u2550':'boxH','\\u2551':'boxV','\\u2552':'boxdR','\\u2553':'boxDr','\\u2554':'boxDR','\\u2555':'boxdL','\\u2556':'boxDl','\\u2557':'boxDL','\\u2558':'boxuR','\\u2559':'boxUr','\\u255A':'boxUR','\\u255B':'boxuL','\\u255C':'boxUl','\\u255D':'boxUL','\\u255E':'boxvR','\\u255F':'boxVr','\\u2560':'boxVR','\\u2561':'boxvL','\\u2562':'boxVl','\\u2563':'boxVL','\\u2564':'boxHd','\\u2565':'boxhD','\\u2566':'boxHD','\\u2567':'boxHu','\\u2568':'boxhU','\\u2569':'boxHU','\\u256A':'boxvH','\\u256B':'boxVh','\\u256C':'boxVH','\\u2580':'uhblk','\\u2584':'lhblk','\\u2588':'block','\\u2591':'blk14','\\u2592':'blk12','\\u2593':'blk34','\\u25A1':'squ','\\u25AA':'squf','\\u25AB':'EmptyVerySmallSquare','\\u25AD':'rect','\\u25AE':'marker','\\u25B1':'fltns','\\u25B3':'xutri','\\u25B4':'utrif','\\u25B5':'utri','\\u25B8':'rtrif','\\u25B9':'rtri','\\u25BD':'xdtri','\\u25BE':'dtrif','\\u25BF':'dtri','\\u25C2':'ltrif','\\u25C3':'ltri','\\u25CA':'loz','\\u25CB':'cir','\\u25EC':'tridot','\\u25EF':'xcirc','\\u25F8':'ultri','\\u25F9':'urtri','\\u25FA':'lltri','\\u25FB':'EmptySmallSquare','\\u25FC':'FilledSmallSquare','\\u2605':'starf','\\u2606':'star','\\u260E':'phone','\\u2640':'female','\\u2642':'male','\\u2660':'spades','\\u2663':'clubs','\\u2665':'hearts','\\u2666':'diams','\\u266A':'sung','\\u2713':'check','\\u2717':'cross','\\u2720':'malt','\\u2736':'sext','\\u2758':'VerticalSeparator','\\u27C8':'bsolhsub','\\u27C9':'suphsol','\\u27F5':'xlarr','\\u27F6':'xrarr','\\u27F7':'xharr','\\u27F8':'xlArr','\\u27F9':'xrArr','\\u27FA':'xhArr','\\u27FC':'xmap','\\u27FF':'dzigrarr','\\u2902':'nvlArr','\\u2903':'nvrArr','\\u2904':'nvHarr','\\u2905':'Map','\\u290C':'lbarr','\\u290D':'rbarr','\\u290E':'lBarr','\\u290F':'rBarr','\\u2910':'RBarr','\\u2911':'DDotrahd','\\u2912':'UpArrowBar','\\u2913':'DownArrowBar','\\u2916':'Rarrtl','\\u2919':'latail','\\u291A':'ratail','\\u291B':'lAtail','\\u291C':'rAtail','\\u291D':'larrfs','\\u291E':'rarrfs','\\u291F':'larrbfs','\\u2920':'rarrbfs','\\u2923':'nwarhk','\\u2924':'nearhk','\\u2925':'searhk','\\u2926':'swarhk','\\u2927':'nwnear','\\u2928':'toea','\\u2929':'tosa','\\u292A':'swnwar','\\u2933':'rarrc','\\u2933\\u0338':'nrarrc','\\u2935':'cudarrr','\\u2936':'ldca','\\u2937':'rdca','\\u2938':'cudarrl','\\u2939':'larrpl','\\u293C':'curarrm','\\u293D':'cularrp','\\u2945':'rarrpl','\\u2948':'harrcir','\\u2949':'Uarrocir','\\u294A':'lurdshar','\\u294B':'ldrushar','\\u294E':'LeftRightVector','\\u294F':'RightUpDownVector','\\u2950':'DownLeftRightVector','\\u2951':'LeftUpDownVector','\\u2952':'LeftVectorBar','\\u2953':'RightVectorBar','\\u2954':'RightUpVectorBar','\\u2955':'RightDownVectorBar','\\u2956':'DownLeftVectorBar','\\u2957':'DownRightVectorBar','\\u2958':'LeftUpVectorBar','\\u2959':'LeftDownVectorBar','\\u295A':'LeftTeeVector','\\u295B':'RightTeeVector','\\u295C':'RightUpTeeVector','\\u295D':'RightDownTeeVector','\\u295E':'DownLeftTeeVector','\\u295F':'DownRightTeeVector','\\u2960':'LeftUpTeeVector','\\u2961':'LeftDownTeeVector','\\u2962':'lHar','\\u2963':'uHar','\\u2964':'rHar','\\u2965':'dHar','\\u2966':'luruhar','\\u2967':'ldrdhar','\\u2968':'ruluhar','\\u2969':'rdldhar','\\u296A':'lharul','\\u296B':'llhard','\\u296C':'rharul','\\u296D':'lrhard','\\u296E':'udhar','\\u296F':'duhar','\\u2970':'RoundImplies','\\u2971':'erarr','\\u2972':'simrarr','\\u2973':'larrsim','\\u2974':'rarrsim','\\u2975':'rarrap','\\u2976':'ltlarr','\\u2978':'gtrarr','\\u2979':'subrarr','\\u297B':'suplarr','\\u297C':'lfisht','\\u297D':'rfisht','\\u297E':'ufisht','\\u297F':'dfisht','\\u299A':'vzigzag','\\u299C':'vangrt','\\u299D':'angrtvbd','\\u29A4':'ange','\\u29A5':'range','\\u29A6':'dwangle','\\u29A7':'uwangle','\\u29A8':'angmsdaa','\\u29A9':'angmsdab','\\u29AA':'angmsdac','\\u29AB':'angmsdad','\\u29AC':'angmsdae','\\u29AD':'angmsdaf','\\u29AE':'angmsdag','\\u29AF':'angmsdah','\\u29B0':'bemptyv','\\u29B1':'demptyv','\\u29B2':'cemptyv','\\u29B3':'raemptyv','\\u29B4':'laemptyv','\\u29B5':'ohbar','\\u29B6':'omid','\\u29B7':'opar','\\u29B9':'operp','\\u29BB':'olcross','\\u29BC':'odsold','\\u29BE':'olcir','\\u29BF':'ofcir','\\u29C0':'olt','\\u29C1':'ogt','\\u29C2':'cirscir','\\u29C3':'cirE','\\u29C4':'solb','\\u29C5':'bsolb','\\u29C9':'boxbox','\\u29CD':'trisb','\\u29CE':'rtriltri','\\u29CF':'LeftTriangleBar','\\u29CF\\u0338':'NotLeftTriangleBar','\\u29D0':'RightTriangleBar','\\u29D0\\u0338':'NotRightTriangleBar','\\u29DC':'iinfin','\\u29DD':'infintie','\\u29DE':'nvinfin','\\u29E3':'eparsl','\\u29E4':'smeparsl','\\u29E5':'eqvparsl','\\u29EB':'lozf','\\u29F4':'RuleDelayed','\\u29F6':'dsol','\\u2A00':'xodot','\\u2A01':'xoplus','\\u2A02':'xotime','\\u2A04':'xuplus','\\u2A06':'xsqcup','\\u2A0D':'fpartint','\\u2A10':'cirfnint','\\u2A11':'awint','\\u2A12':'rppolint','\\u2A13':'scpolint','\\u2A14':'npolint','\\u2A15':'pointint','\\u2A16':'quatint','\\u2A17':'intlarhk','\\u2A22':'pluscir','\\u2A23':'plusacir','\\u2A24':'simplus','\\u2A25':'plusdu','\\u2A26':'plussim','\\u2A27':'plustwo','\\u2A29':'mcomma','\\u2A2A':'minusdu','\\u2A2D':'loplus','\\u2A2E':'roplus','\\u2A2F':'Cross','\\u2A30':'timesd','\\u2A31':'timesbar','\\u2A33':'smashp','\\u2A34':'lotimes','\\u2A35':'rotimes','\\u2A36':'otimesas','\\u2A37':'Otimes','\\u2A38':'odiv','\\u2A39':'triplus','\\u2A3A':'triminus','\\u2A3B':'tritime','\\u2A3C':'iprod','\\u2A3F':'amalg','\\u2A40':'capdot','\\u2A42':'ncup','\\u2A43':'ncap','\\u2A44':'capand','\\u2A45':'cupor','\\u2A46':'cupcap','\\u2A47':'capcup','\\u2A48':'cupbrcap','\\u2A49':'capbrcup','\\u2A4A':'cupcup','\\u2A4B':'capcap','\\u2A4C':'ccups','\\u2A4D':'ccaps','\\u2A50':'ccupssm','\\u2A53':'And','\\u2A54':'Or','\\u2A55':'andand','\\u2A56':'oror','\\u2A57':'orslope','\\u2A58':'andslope','\\u2A5A':'andv','\\u2A5B':'orv','\\u2A5C':'andd','\\u2A5D':'ord','\\u2A5F':'wedbar','\\u2A66':'sdote','\\u2A6A':'simdot','\\u2A6D':'congdot','\\u2A6D\\u0338':'ncongdot','\\u2A6E':'easter','\\u2A6F':'apacir','\\u2A70':'apE','\\u2A70\\u0338':'napE','\\u2A71':'eplus','\\u2A72':'pluse','\\u2A73':'Esim','\\u2A77':'eDDot','\\u2A78':'equivDD','\\u2A79':'ltcir','\\u2A7A':'gtcir','\\u2A7B':'ltquest','\\u2A7C':'gtquest','\\u2A7D':'les','\\u2A7D\\u0338':'nles','\\u2A7E':'ges','\\u2A7E\\u0338':'nges','\\u2A7F':'lesdot','\\u2A80':'gesdot','\\u2A81':'lesdoto','\\u2A82':'gesdoto','\\u2A83':'lesdotor','\\u2A84':'gesdotol','\\u2A85':'lap','\\u2A86':'gap','\\u2A87':'lne','\\u2A88':'gne','\\u2A89':'lnap','\\u2A8A':'gnap','\\u2A8B':'lEg','\\u2A8C':'gEl','\\u2A8D':'lsime','\\u2A8E':'gsime','\\u2A8F':'lsimg','\\u2A90':'gsiml','\\u2A91':'lgE','\\u2A92':'glE','\\u2A93':'lesges','\\u2A94':'gesles','\\u2A95':'els','\\u2A96':'egs','\\u2A97':'elsdot','\\u2A98':'egsdot','\\u2A99':'el','\\u2A9A':'eg','\\u2A9D':'siml','\\u2A9E':'simg','\\u2A9F':'simlE','\\u2AA0':'simgE','\\u2AA1':'LessLess','\\u2AA1\\u0338':'NotNestedLessLess','\\u2AA2':'GreaterGreater','\\u2AA2\\u0338':'NotNestedGreaterGreater','\\u2AA4':'glj','\\u2AA5':'gla','\\u2AA6':'ltcc','\\u2AA7':'gtcc','\\u2AA8':'lescc','\\u2AA9':'gescc','\\u2AAA':'smt','\\u2AAB':'lat','\\u2AAC':'smte','\\u2AAC\\uFE00':'smtes','\\u2AAD':'late','\\u2AAD\\uFE00':'lates','\\u2AAE':'bumpE','\\u2AAF':'pre','\\u2AAF\\u0338':'npre','\\u2AB0':'sce','\\u2AB0\\u0338':'nsce','\\u2AB3':'prE','\\u2AB4':'scE','\\u2AB5':'prnE','\\u2AB6':'scnE','\\u2AB7':'prap','\\u2AB8':'scap','\\u2AB9':'prnap','\\u2ABA':'scnap','\\u2ABB':'Pr','\\u2ABC':'Sc','\\u2ABD':'subdot','\\u2ABE':'supdot','\\u2ABF':'subplus','\\u2AC0':'supplus','\\u2AC1':'submult','\\u2AC2':'supmult','\\u2AC3':'subedot','\\u2AC4':'supedot','\\u2AC5':'subE','\\u2AC5\\u0338':'nsubE','\\u2AC6':'supE','\\u2AC6\\u0338':'nsupE','\\u2AC7':'subsim','\\u2AC8':'supsim','\\u2ACB\\uFE00':'vsubnE','\\u2ACB':'subnE','\\u2ACC\\uFE00':'vsupnE','\\u2ACC':'supnE','\\u2ACF':'csub','\\u2AD0':'csup','\\u2AD1':'csube','\\u2AD2':'csupe','\\u2AD3':'subsup','\\u2AD4':'supsub','\\u2AD5':'subsub','\\u2AD6':'supsup','\\u2AD7':'suphsub','\\u2AD8':'supdsub','\\u2AD9':'forkv','\\u2ADA':'topfork','\\u2ADB':'mlcp','\\u2AE4':'Dashv','\\u2AE6':'Vdashl','\\u2AE7':'Barv','\\u2AE8':'vBar','\\u2AE9':'vBarv','\\u2AEB':'Vbar','\\u2AEC':'Not','\\u2AED':'bNot','\\u2AEE':'rnmid','\\u2AEF':'cirmid','\\u2AF0':'midcir','\\u2AF1':'topcir','\\u2AF2':'nhpar','\\u2AF3':'parsim','\\u2AFD':'parsl','\\u2AFD\\u20E5':'nparsl','\\u266D':'flat','\\u266E':'natur','\\u266F':'sharp','\\xA4':'curren','\\xA2':'cent','$':'dollar','\\xA3':'pound','\\xA5':'yen','\\u20AC':'euro','\\xB9':'sup1','\\xBD':'half','\\u2153':'frac13','\\xBC':'frac14','\\u2155':'frac15','\\u2159':'frac16','\\u215B':'frac18','\\xB2':'sup2','\\u2154':'frac23','\\u2156':'frac25','\\xB3':'sup3','\\xBE':'frac34','\\u2157':'frac35','\\u215C':'frac38','\\u2158':'frac45','\\u215A':'frac56','\\u215D':'frac58','\\u215E':'frac78','\\uD835\\uDCB6':'ascr','\\uD835\\uDD52':'aopf','\\uD835\\uDD1E':'afr','\\uD835\\uDD38':'Aopf','\\uD835\\uDD04':'Afr','\\uD835\\uDC9C':'Ascr','\\xAA':'ordf','\\xE1':'aacute','\\xC1':'Aacute','\\xE0':'agrave','\\xC0':'Agrave','\\u0103':'abreve','\\u0102':'Abreve','\\xE2':'acirc','\\xC2':'Acirc','\\xE5':'aring','\\xC5':'angst','\\xE4':'auml','\\xC4':'Auml','\\xE3':'atilde','\\xC3':'Atilde','\\u0105':'aogon','\\u0104':'Aogon','\\u0101':'amacr','\\u0100':'Amacr','\\xE6':'aelig','\\xC6':'AElig','\\uD835\\uDCB7':'bscr','\\uD835\\uDD53':'bopf','\\uD835\\uDD1F':'bfr','\\uD835\\uDD39':'Bopf','\\u212C':'Bscr','\\uD835\\uDD05':'Bfr','\\uD835\\uDD20':'cfr','\\uD835\\uDCB8':'cscr','\\uD835\\uDD54':'copf','\\u212D':'Cfr','\\uD835\\uDC9E':'Cscr','\\u2102':'Copf','\\u0107':'cacute','\\u0106':'Cacute','\\u0109':'ccirc','\\u0108':'Ccirc','\\u010D':'ccaron','\\u010C':'Ccaron','\\u010B':'cdot','\\u010A':'Cdot','\\xE7':'ccedil','\\xC7':'Ccedil','\\u2105':'incare','\\uD835\\uDD21':'dfr','\\u2146':'dd','\\uD835\\uDD55':'dopf','\\uD835\\uDCB9':'dscr','\\uD835\\uDC9F':'Dscr','\\uD835\\uDD07':'Dfr','\\u2145':'DD','\\uD835\\uDD3B':'Dopf','\\u010F':'dcaron','\\u010E':'Dcaron','\\u0111':'dstrok','\\u0110':'Dstrok','\\xF0':'eth','\\xD0':'ETH','\\u2147':'ee','\\u212F':'escr','\\uD835\\uDD22':'efr','\\uD835\\uDD56':'eopf','\\u2130':'Escr','\\uD835\\uDD08':'Efr','\\uD835\\uDD3C':'Eopf','\\xE9':'eacute','\\xC9':'Eacute','\\xE8':'egrave','\\xC8':'Egrave','\\xEA':'ecirc','\\xCA':'Ecirc','\\u011B':'ecaron','\\u011A':'Ecaron','\\xEB':'euml','\\xCB':'Euml','\\u0117':'edot','\\u0116':'Edot','\\u0119':'eogon','\\u0118':'Eogon','\\u0113':'emacr','\\u0112':'Emacr','\\uD835\\uDD23':'ffr','\\uD835\\uDD57':'fopf','\\uD835\\uDCBB':'fscr','\\uD835\\uDD09':'Ffr','\\uD835\\uDD3D':'Fopf','\\u2131':'Fscr','\\uFB00':'fflig','\\uFB03':'ffilig','\\uFB04':'ffllig','\\uFB01':'filig','fj':'fjlig','\\uFB02':'fllig','\\u0192':'fnof','\\u210A':'gscr','\\uD835\\uDD58':'gopf','\\uD835\\uDD24':'gfr','\\uD835\\uDCA2':'Gscr','\\uD835\\uDD3E':'Gopf','\\uD835\\uDD0A':'Gfr','\\u01F5':'gacute','\\u011F':'gbreve','\\u011E':'Gbreve','\\u011D':'gcirc','\\u011C':'Gcirc','\\u0121':'gdot','\\u0120':'Gdot','\\u0122':'Gcedil','\\uD835\\uDD25':'hfr','\\u210E':'planckh','\\uD835\\uDCBD':'hscr','\\uD835\\uDD59':'hopf','\\u210B':'Hscr','\\u210C':'Hfr','\\u210D':'Hopf','\\u0125':'hcirc','\\u0124':'Hcirc','\\u210F':'hbar','\\u0127':'hstrok','\\u0126':'Hstrok','\\uD835\\uDD5A':'iopf','\\uD835\\uDD26':'ifr','\\uD835\\uDCBE':'iscr','\\u2148':'ii','\\uD835\\uDD40':'Iopf','\\u2110':'Iscr','\\u2111':'Im','\\xED':'iacute','\\xCD':'Iacute','\\xEC':'igrave','\\xCC':'Igrave','\\xEE':'icirc','\\xCE':'Icirc','\\xEF':'iuml','\\xCF':'Iuml','\\u0129':'itilde','\\u0128':'Itilde','\\u0130':'Idot','\\u012F':'iogon','\\u012E':'Iogon','\\u012B':'imacr','\\u012A':'Imacr','\\u0133':'ijlig','\\u0132':'IJlig','\\u0131':'imath','\\uD835\\uDCBF':'jscr','\\uD835\\uDD5B':'jopf','\\uD835\\uDD27':'jfr','\\uD835\\uDCA5':'Jscr','\\uD835\\uDD0D':'Jfr','\\uD835\\uDD41':'Jopf','\\u0135':'jcirc','\\u0134':'Jcirc','\\u0237':'jmath','\\uD835\\uDD5C':'kopf','\\uD835\\uDCC0':'kscr','\\uD835\\uDD28':'kfr','\\uD835\\uDCA6':'Kscr','\\uD835\\uDD42':'Kopf','\\uD835\\uDD0E':'Kfr','\\u0137':'kcedil','\\u0136':'Kcedil','\\uD835\\uDD29':'lfr','\\uD835\\uDCC1':'lscr','\\u2113':'ell','\\uD835\\uDD5D':'lopf','\\u2112':'Lscr','\\uD835\\uDD0F':'Lfr','\\uD835\\uDD43':'Lopf','\\u013A':'lacute','\\u0139':'Lacute','\\u013E':'lcaron','\\u013D':'Lcaron','\\u013C':'lcedil','\\u013B':'Lcedil','\\u0142':'lstrok','\\u0141':'Lstrok','\\u0140':'lmidot','\\u013F':'Lmidot','\\uD835\\uDD2A':'mfr','\\uD835\\uDD5E':'mopf','\\uD835\\uDCC2':'mscr','\\uD835\\uDD10':'Mfr','\\uD835\\uDD44':'Mopf','\\u2133':'Mscr','\\uD835\\uDD2B':'nfr','\\uD835\\uDD5F':'nopf','\\uD835\\uDCC3':'nscr','\\u2115':'Nopf','\\uD835\\uDCA9':'Nscr','\\uD835\\uDD11':'Nfr','\\u0144':'nacute','\\u0143':'Nacute','\\u0148':'ncaron','\\u0147':'Ncaron','\\xF1':'ntilde','\\xD1':'Ntilde','\\u0146':'ncedil','\\u0145':'Ncedil','\\u2116':'numero','\\u014B':'eng','\\u014A':'ENG','\\uD835\\uDD60':'oopf','\\uD835\\uDD2C':'ofr','\\u2134':'oscr','\\uD835\\uDCAA':'Oscr','\\uD835\\uDD12':'Ofr','\\uD835\\uDD46':'Oopf','\\xBA':'ordm','\\xF3':'oacute','\\xD3':'Oacute','\\xF2':'ograve','\\xD2':'Ograve','\\xF4':'ocirc','\\xD4':'Ocirc','\\xF6':'ouml','\\xD6':'Ouml','\\u0151':'odblac','\\u0150':'Odblac','\\xF5':'otilde','\\xD5':'Otilde','\\xF8':'oslash','\\xD8':'Oslash','\\u014D':'omacr','\\u014C':'Omacr','\\u0153':'oelig','\\u0152':'OElig','\\uD835\\uDD2D':'pfr','\\uD835\\uDCC5':'pscr','\\uD835\\uDD61':'popf','\\u2119':'Popf','\\uD835\\uDD13':'Pfr','\\uD835\\uDCAB':'Pscr','\\uD835\\uDD62':'qopf','\\uD835\\uDD2E':'qfr','\\uD835\\uDCC6':'qscr','\\uD835\\uDCAC':'Qscr','\\uD835\\uDD14':'Qfr','\\u211A':'Qopf','\\u0138':'kgreen','\\uD835\\uDD2F':'rfr','\\uD835\\uDD63':'ropf','\\uD835\\uDCC7':'rscr','\\u211B':'Rscr','\\u211C':'Re','\\u211D':'Ropf','\\u0155':'racute','\\u0154':'Racute','\\u0159':'rcaron','\\u0158':'Rcaron','\\u0157':'rcedil','\\u0156':'Rcedil','\\uD835\\uDD64':'sopf','\\uD835\\uDCC8':'sscr','\\uD835\\uDD30':'sfr','\\uD835\\uDD4A':'Sopf','\\uD835\\uDD16':'Sfr','\\uD835\\uDCAE':'Sscr','\\u24C8':'oS','\\u015B':'sacute','\\u015A':'Sacute','\\u015D':'scirc','\\u015C':'Scirc','\\u0161':'scaron','\\u0160':'Scaron','\\u015F':'scedil','\\u015E':'Scedil','\\xDF':'szlig','\\uD835\\uDD31':'tfr','\\uD835\\uDCC9':'tscr','\\uD835\\uDD65':'topf','\\uD835\\uDCAF':'Tscr','\\uD835\\uDD17':'Tfr','\\uD835\\uDD4B':'Topf','\\u0165':'tcaron','\\u0164':'Tcaron','\\u0163':'tcedil','\\u0162':'Tcedil','\\u2122':'trade','\\u0167':'tstrok','\\u0166':'Tstrok','\\uD835\\uDCCA':'uscr','\\uD835\\uDD66':'uopf','\\uD835\\uDD32':'ufr','\\uD835\\uDD4C':'Uopf','\\uD835\\uDD18':'Ufr','\\uD835\\uDCB0':'Uscr','\\xFA':'uacute','\\xDA':'Uacute','\\xF9':'ugrave','\\xD9':'Ugrave','\\u016D':'ubreve','\\u016C':'Ubreve','\\xFB':'ucirc','\\xDB':'Ucirc','\\u016F':'uring','\\u016E':'Uring','\\xFC':'uuml','\\xDC':'Uuml','\\u0171':'udblac','\\u0170':'Udblac','\\u0169':'utilde','\\u0168':'Utilde','\\u0173':'uogon','\\u0172':'Uogon','\\u016B':'umacr','\\u016A':'Umacr','\\uD835\\uDD33':'vfr','\\uD835\\uDD67':'vopf','\\uD835\\uDCCB':'vscr','\\uD835\\uDD19':'Vfr','\\uD835\\uDD4D':'Vopf','\\uD835\\uDCB1':'Vscr','\\uD835\\uDD68':'wopf','\\uD835\\uDCCC':'wscr','\\uD835\\uDD34':'wfr','\\uD835\\uDCB2':'Wscr','\\uD835\\uDD4E':'Wopf','\\uD835\\uDD1A':'Wfr','\\u0175':'wcirc','\\u0174':'Wcirc','\\uD835\\uDD35':'xfr','\\uD835\\uDCCD':'xscr','\\uD835\\uDD69':'xopf','\\uD835\\uDD4F':'Xopf','\\uD835\\uDD1B':'Xfr','\\uD835\\uDCB3':'Xscr','\\uD835\\uDD36':'yfr','\\uD835\\uDCCE':'yscr','\\uD835\\uDD6A':'yopf','\\uD835\\uDCB4':'Yscr','\\uD835\\uDD1C':'Yfr','\\uD835\\uDD50':'Yopf','\\xFD':'yacute','\\xDD':'Yacute','\\u0177':'ycirc','\\u0176':'Ycirc','\\xFF':'yuml','\\u0178':'Yuml','\\uD835\\uDCCF':'zscr','\\uD835\\uDD37':'zfr','\\uD835\\uDD6B':'zopf','\\u2128':'Zfr','\\u2124':'Zopf','\\uD835\\uDCB5':'Zscr','\\u017A':'zacute','\\u0179':'Zacute','\\u017E':'zcaron','\\u017D':'Zcaron','\\u017C':'zdot','\\u017B':'Zdot','\\u01B5':'imped','\\xFE':'thorn','\\xDE':'THORN','\\u0149':'napos','\\u03B1':'alpha','\\u0391':'Alpha','\\u03B2':'beta','\\u0392':'Beta','\\u03B3':'gamma','\\u0393':'Gamma','\\u03B4':'delta','\\u0394':'Delta','\\u03B5':'epsi','\\u03F5':'epsiv','\\u0395':'Epsilon','\\u03DD':'gammad','\\u03DC':'Gammad','\\u03B6':'zeta','\\u0396':'Zeta','\\u03B7':'eta','\\u0397':'Eta','\\u03B8':'theta','\\u03D1':'thetav','\\u0398':'Theta','\\u03B9':'iota','\\u0399':'Iota','\\u03BA':'kappa','\\u03F0':'kappav','\\u039A':'Kappa','\\u03BB':'lambda','\\u039B':'Lambda','\\u03BC':'mu','\\xB5':'micro','\\u039C':'Mu','\\u03BD':'nu','\\u039D':'Nu','\\u03BE':'xi','\\u039E':'Xi','\\u03BF':'omicron','\\u039F':'Omicron','\\u03C0':'pi','\\u03D6':'piv','\\u03A0':'Pi','\\u03C1':'rho','\\u03F1':'rhov','\\u03A1':'Rho','\\u03C3':'sigma','\\u03A3':'Sigma','\\u03C2':'sigmaf','\\u03C4':'tau','\\u03A4':'Tau','\\u03C5':'upsi','\\u03A5':'Upsilon','\\u03D2':'Upsi','\\u03C6':'phi','\\u03D5':'phiv','\\u03A6':'Phi','\\u03C7':'chi','\\u03A7':'Chi','\\u03C8':'psi','\\u03A8':'Psi','\\u03C9':'omega','\\u03A9':'ohm','\\u0430':'acy','\\u0410':'Acy','\\u0431':'bcy','\\u0411':'Bcy','\\u0432':'vcy','\\u0412':'Vcy','\\u0433':'gcy','\\u0413':'Gcy','\\u0453':'gjcy','\\u0403':'GJcy','\\u0434':'dcy','\\u0414':'Dcy','\\u0452':'djcy','\\u0402':'DJcy','\\u0435':'iecy','\\u0415':'IEcy','\\u0451':'iocy','\\u0401':'IOcy','\\u0454':'jukcy','\\u0404':'Jukcy','\\u0436':'zhcy','\\u0416':'ZHcy','\\u0437':'zcy','\\u0417':'Zcy','\\u0455':'dscy','\\u0405':'DScy','\\u0438':'icy','\\u0418':'Icy','\\u0456':'iukcy','\\u0406':'Iukcy','\\u0457':'yicy','\\u0407':'YIcy','\\u0439':'jcy','\\u0419':'Jcy','\\u0458':'jsercy','\\u0408':'Jsercy','\\u043A':'kcy','\\u041A':'Kcy','\\u045C':'kjcy','\\u040C':'KJcy','\\u043B':'lcy','\\u041B':'Lcy','\\u0459':'ljcy','\\u0409':'LJcy','\\u043C':'mcy','\\u041C':'Mcy','\\u043D':'ncy','\\u041D':'Ncy','\\u045A':'njcy','\\u040A':'NJcy','\\u043E':'ocy','\\u041E':'Ocy','\\u043F':'pcy','\\u041F':'Pcy','\\u0440':'rcy','\\u0420':'Rcy','\\u0441':'scy','\\u0421':'Scy','\\u0442':'tcy','\\u0422':'Tcy','\\u045B':'tshcy','\\u040B':'TSHcy','\\u0443':'ucy','\\u0423':'Ucy','\\u045E':'ubrcy','\\u040E':'Ubrcy','\\u0444':'fcy','\\u0424':'Fcy','\\u0445':'khcy','\\u0425':'KHcy','\\u0446':'tscy','\\u0426':'TScy','\\u0447':'chcy','\\u0427':'CHcy','\\u045F':'dzcy','\\u040F':'DZcy','\\u0448':'shcy','\\u0428':'SHcy','\\u0449':'shchcy','\\u0429':'SHCHcy','\\u044A':'hardcy','\\u042A':'HARDcy','\\u044B':'ycy','\\u042B':'Ycy','\\u044C':'softcy','\\u042C':'SOFTcy','\\u044D':'ecy','\\u042D':'Ecy','\\u044E':'yucy','\\u042E':'YUcy','\\u044F':'yacy','\\u042F':'YAcy','\\u2135':'aleph','\\u2136':'beth','\\u2137':'gimel','\\u2138':'daleth'};\n\n\tvar regexEscape = /[\"&'<>`]/g;\n\tvar escapeMap = {\n\t\t'\"': '&quot;',\n\t\t'&': '&amp;',\n\t\t'\\'': '&#x27;',\n\t\t'<': '&lt;',\n\t\t// See https://mathiasbynens.be/notes/ambiguous-ampersands: in HTML, the\n\t\t// following is not strictly necessary unless it’s part of a tag or an\n\t\t// unquoted attribute value. We’re only escaping it to support those\n\t\t// situations, and for XML support.\n\t\t'>': '&gt;',\n\t\t// In Internet Explorer ≤ 8, the backtick character can be used\n\t\t// to break out of (un)quoted attribute values or HTML comments.\n\t\t// See http://html5sec.org/#102, http://html5sec.org/#108, and\n\t\t// http://html5sec.org/#133.\n\t\t'`': '&#x60;'\n\t};\n\n\tvar regexInvalidEntity = /&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/;\n\tvar regexInvalidRawCodePoint = /[\\0-\\x08\\x0B\\x0E-\\x1F\\x7F-\\x9F\\uFDD0-\\uFDEF\\uFFFE\\uFFFF]|[\\uD83F\\uD87F\\uD8BF\\uD8FF\\uD93F\\uD97F\\uD9BF\\uD9FF\\uDA3F\\uDA7F\\uDABF\\uDAFF\\uDB3F\\uDB7F\\uDBBF\\uDBFF][\\uDFFE\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\n\tvar regexDecode = /&(CounterClockwiseContourIntegral|DoubleLongLeftRightArrow|ClockwiseContourIntegral|NotNestedGreaterGreater|NotSquareSupersetEqual|DiacriticalDoubleAcute|NotRightTriangleEqual|NotSucceedsSlantEqual|NotPrecedesSlantEqual|CloseCurlyDoubleQuote|NegativeVeryThinSpace|DoubleContourIntegral|FilledVerySmallSquare|CapitalDifferentialD|OpenCurlyDoubleQuote|EmptyVerySmallSquare|NestedGreaterGreater|DoubleLongRightArrow|NotLeftTriangleEqual|NotGreaterSlantEqual|ReverseUpEquilibrium|DoubleLeftRightArrow|NotSquareSubsetEqual|NotDoubleVerticalBar|RightArrowLeftArrow|NotGreaterFullEqual|NotRightTriangleBar|SquareSupersetEqual|DownLeftRightVector|DoubleLongLeftArrow|leftrightsquigarrow|LeftArrowRightArrow|NegativeMediumSpace|blacktriangleright|RightDownVectorBar|PrecedesSlantEqual|RightDoubleBracket|SucceedsSlantEqual|NotLeftTriangleBar|RightTriangleEqual|SquareIntersection|RightDownTeeVector|ReverseEquilibrium|NegativeThickSpace|longleftrightarrow|Longleftrightarrow|LongLeftRightArrow|DownRightTeeVector|DownRightVectorBar|GreaterSlantEqual|SquareSubsetEqual|LeftDownVectorBar|LeftDoubleBracket|VerticalSeparator|rightleftharpoons|NotGreaterGreater|NotSquareSuperset|blacktriangleleft|blacktriangledown|NegativeThinSpace|LeftDownTeeVector|NotLessSlantEqual|leftrightharpoons|DoubleUpDownArrow|DoubleVerticalBar|LeftTriangleEqual|FilledSmallSquare|twoheadrightarrow|NotNestedLessLess|DownLeftTeeVector|DownLeftVectorBar|RightAngleBracket|NotTildeFullEqual|NotReverseElement|RightUpDownVector|DiacriticalTilde|NotSucceedsTilde|circlearrowright|NotPrecedesEqual|rightharpoondown|DoubleRightArrow|NotSucceedsEqual|NonBreakingSpace|NotRightTriangle|LessEqualGreater|RightUpTeeVector|LeftAngleBracket|GreaterFullEqual|DownArrowUpArrow|RightUpVectorBar|twoheadleftarrow|GreaterEqualLess|downharpoonright|RightTriangleBar|ntrianglerighteq|NotSupersetEqual|LeftUpDownVector|DiacriticalAcute|rightrightarrows|vartriangleright|UpArrowDownArrow|DiacriticalGrave|UnderParenthesis|EmptySmallSquare|LeftUpVectorBar|leftrightarrows|DownRightVector|downharpoonleft|trianglerighteq|ShortRightArrow|OverParenthesis|DoubleLeftArrow|DoubleDownArrow|NotSquareSubset|bigtriangledown|ntrianglelefteq|UpperRightArrow|curvearrowright|vartriangleleft|NotLeftTriangle|nleftrightarrow|LowerRightArrow|NotHumpDownHump|NotGreaterTilde|rightthreetimes|LeftUpTeeVector|NotGreaterEqual|straightepsilon|LeftTriangleBar|rightsquigarrow|ContourIntegral|rightleftarrows|CloseCurlyQuote|RightDownVector|LeftRightVector|nLeftrightarrow|leftharpoondown|circlearrowleft|SquareSuperset|OpenCurlyQuote|hookrightarrow|HorizontalLine|DiacriticalDot|NotLessGreater|ntriangleright|DoubleRightTee|InvisibleComma|InvisibleTimes|LowerLeftArrow|DownLeftVector|NotSubsetEqual|curvearrowleft|trianglelefteq|NotVerticalBar|TildeFullEqual|downdownarrows|NotGreaterLess|RightTeeVector|ZeroWidthSpace|looparrowright|LongRightArrow|doublebarwedge|ShortLeftArrow|ShortDownArrow|RightVectorBar|GreaterGreater|ReverseElement|rightharpoonup|LessSlantEqual|leftthreetimes|upharpoonright|rightarrowtail|LeftDownVector|Longrightarrow|NestedLessLess|UpperLeftArrow|nshortparallel|leftleftarrows|leftrightarrow|Leftrightarrow|LeftRightArrow|longrightarrow|upharpoonleft|RightArrowBar|ApplyFunction|LeftTeeVector|leftarrowtail|NotEqualTilde|varsubsetneqq|varsupsetneqq|RightTeeArrow|SucceedsEqual|SucceedsTilde|LeftVectorBar|SupersetEqual|hookleftarrow|DifferentialD|VerticalTilde|VeryThinSpace|blacktriangle|bigtriangleup|LessFullEqual|divideontimes|leftharpoonup|UpEquilibrium|ntriangleleft|RightTriangle|measuredangle|shortparallel|longleftarrow|Longleftarrow|LongLeftArrow|DoubleLeftTee|Poincareplane|PrecedesEqual|triangleright|DoubleUpArrow|RightUpVector|fallingdotseq|looparrowleft|PrecedesTilde|NotTildeEqual|NotTildeTilde|smallsetminus|Proportional|triangleleft|triangledown|UnderBracket|NotHumpEqual|exponentiale|ExponentialE|NotLessTilde|HilbertSpace|RightCeiling|blacklozenge|varsupsetneq|HumpDownHump|GreaterEqual|VerticalLine|LeftTeeArrow|NotLessEqual|DownTeeArrow|LeftTriangle|varsubsetneq|Intersection|NotCongruent|DownArrowBar|LeftUpVector|LeftArrowBar|risingdotseq|GreaterTilde|RoundImplies|SquareSubset|ShortUpArrow|NotSuperset|quaternions|precnapprox|backepsilon|preccurlyeq|OverBracket|blacksquare|MediumSpace|VerticalBar|circledcirc|circleddash|CircleMinus|CircleTimes|LessGreater|curlyeqprec|curlyeqsucc|diamondsuit|UpDownArrow|Updownarrow|RuleDelayed|Rrightarrow|updownarrow|RightVector|nRightarrow|nrightarrow|eqslantless|LeftCeiling|Equilibrium|SmallCircle|expectation|NotSucceeds|thickapprox|GreaterLess|SquareUnion|NotPrecedes|NotLessLess|straightphi|succnapprox|succcurlyeq|SubsetEqual|sqsupseteq|Proportion|Laplacetrf|ImaginaryI|supsetneqq|NotGreater|gtreqqless|NotElement|ThickSpace|TildeEqual|TildeTilde|Fouriertrf|rmoustache|EqualTilde|eqslantgtr|UnderBrace|LeftVector|UpArrowBar|nLeftarrow|nsubseteqq|subsetneqq|nsupseteqq|nleftarrow|succapprox|lessapprox|UpTeeArrow|upuparrows|curlywedge|lesseqqgtr|varepsilon|varnothing|RightFloor|complement|CirclePlus|sqsubseteq|Lleftarrow|circledast|RightArrow|Rightarrow|rightarrow|lmoustache|Bernoullis|precapprox|mapstoleft|mapstodown|longmapsto|dotsquare|downarrow|DoubleDot|nsubseteq|supsetneq|leftarrow|nsupseteq|subsetneq|ThinSpace|ngeqslant|subseteqq|HumpEqual|NotSubset|triangleq|NotCupCap|lesseqgtr|heartsuit|TripleDot|Leftarrow|Coproduct|Congruent|varpropto|complexes|gvertneqq|LeftArrow|LessTilde|supseteqq|MinusPlus|CircleDot|nleqslant|NotExists|gtreqless|nparallel|UnionPlus|LeftFloor|checkmark|CenterDot|centerdot|Mellintrf|gtrapprox|bigotimes|OverBrace|spadesuit|therefore|pitchfork|rationals|PlusMinus|Backslash|Therefore|DownBreve|backsimeq|backprime|DownArrow|nshortmid|Downarrow|lvertneqq|eqvparsl|imagline|imagpart|infintie|integers|Integral|intercal|LessLess|Uarrocir|intlarhk|sqsupset|angmsdaf|sqsubset|llcorner|vartheta|cupbrcap|lnapprox|Superset|SuchThat|succnsim|succneqq|angmsdag|biguplus|curlyvee|trpezium|Succeeds|NotTilde|bigwedge|angmsdah|angrtvbd|triminus|cwconint|fpartint|lrcorner|smeparsl|subseteq|urcorner|lurdshar|laemptyv|DDotrahd|approxeq|ldrushar|awconint|mapstoup|backcong|shortmid|triangle|geqslant|gesdotol|timesbar|circledR|circledS|setminus|multimap|naturals|scpolint|ncongdot|RightTee|boxminus|gnapprox|boxtimes|andslope|thicksim|angmsdaa|varsigma|cirfnint|rtriltri|angmsdab|rppolint|angmsdac|barwedge|drbkarow|clubsuit|thetasym|bsolhsub|capbrcup|dzigrarr|doteqdot|DotEqual|dotminus|UnderBar|NotEqual|realpart|otimesas|ulcorner|hksearow|hkswarow|parallel|PartialD|elinters|emptyset|plusacir|bbrktbrk|angmsdad|pointint|bigoplus|angmsdae|Precedes|bigsqcup|varkappa|notindot|supseteq|precneqq|precnsim|profalar|profline|profsurf|leqslant|lesdotor|raemptyv|subplus|notnivb|notnivc|subrarr|zigrarr|vzigzag|submult|subedot|Element|between|cirscir|larrbfs|larrsim|lotimes|lbrksld|lbrkslu|lozenge|ldrdhar|dbkarow|bigcirc|epsilon|simrarr|simplus|ltquest|Epsilon|luruhar|gtquest|maltese|npolint|eqcolon|npreceq|bigodot|ddagger|gtrless|bnequiv|harrcir|ddotseq|equivDD|backsim|demptyv|nsqsube|nsqsupe|Upsilon|nsubset|upsilon|minusdu|nsucceq|swarrow|nsupset|coloneq|searrow|boxplus|napprox|natural|asympeq|alefsym|congdot|nearrow|bigstar|diamond|supplus|tritime|LeftTee|nvinfin|triplus|NewLine|nvltrie|nvrtrie|nwarrow|nexists|Diamond|ruluhar|Implies|supmult|angzarr|suplarr|suphsub|questeq|because|digamma|Because|olcross|bemptyv|omicron|Omicron|rotimes|NoBreak|intprod|angrtvb|orderof|uwangle|suphsol|lesdoto|orslope|DownTee|realine|cudarrl|rdldhar|OverBar|supedot|lessdot|supdsub|topfork|succsim|rbrkslu|rbrksld|pertenk|cudarrr|isindot|planckh|lessgtr|pluscir|gesdoto|plussim|plustwo|lesssim|cularrp|rarrsim|Cayleys|notinva|notinvb|notinvc|UpArrow|Uparrow|uparrow|NotLess|dwangle|precsim|Product|curarrm|Cconint|dotplus|rarrbfs|ccupssm|Cedilla|cemptyv|notniva|quatint|frac35|frac38|frac45|frac56|frac58|frac78|tridot|xoplus|gacute|gammad|Gammad|lfisht|lfloor|bigcup|sqsupe|gbreve|Gbreve|lharul|sqsube|sqcups|Gcedil|apacir|llhard|lmidot|Lmidot|lmoust|andand|sqcaps|approx|Abreve|spades|circeq|tprime|divide|topcir|Assign|topbot|gesdot|divonx|xuplus|timesd|gesles|atilde|solbar|SOFTcy|loplus|timesb|lowast|lowbar|dlcorn|dlcrop|softcy|dollar|lparlt|thksim|lrhard|Atilde|lsaquo|smashp|bigvee|thinsp|wreath|bkarow|lsquor|lstrok|Lstrok|lthree|ltimes|ltlarr|DotDot|simdot|ltrPar|weierp|xsqcup|angmsd|sigmav|sigmaf|zeetrf|Zcaron|zcaron|mapsto|vsupne|thetav|cirmid|marker|mcomma|Zacute|vsubnE|there4|gtlPar|vsubne|bottom|gtrarr|SHCHcy|shchcy|midast|midcir|middot|minusb|minusd|gtrdot|bowtie|sfrown|mnplus|models|colone|seswar|Colone|mstpos|searhk|gtrsim|nacute|Nacute|boxbox|telrec|hairsp|Tcedil|nbumpe|scnsim|ncaron|Ncaron|ncedil|Ncedil|hamilt|Scedil|nearhk|hardcy|HARDcy|tcedil|Tcaron|commat|nequiv|nesear|tcaron|target|hearts|nexist|varrho|scedil|Scaron|scaron|hellip|Sacute|sacute|hercon|swnwar|compfn|rtimes|rthree|rsquor|rsaquo|zacute|wedgeq|homtht|barvee|barwed|Barwed|rpargt|horbar|conint|swarhk|roplus|nltrie|hslash|hstrok|Hstrok|rmoust|Conint|bprime|hybull|hyphen|iacute|Iacute|supsup|supsub|supsim|varphi|coprod|brvbar|agrave|Supset|supset|igrave|Igrave|notinE|Agrave|iiiint|iinfin|copysr|wedbar|Verbar|vangrt|becaus|incare|verbar|inodot|bullet|drcorn|intcal|drcrop|cularr|vellip|Utilde|bumpeq|cupcap|dstrok|Dstrok|CupCap|cupcup|cupdot|eacute|Eacute|supdot|iquest|easter|ecaron|Ecaron|ecolon|isinsv|utilde|itilde|Itilde|curarr|succeq|Bumpeq|cacute|ulcrop|nparsl|Cacute|nprcue|egrave|Egrave|nrarrc|nrarrw|subsup|subsub|nrtrie|jsercy|nsccue|Jsercy|kappav|kcedil|Kcedil|subsim|ulcorn|nsimeq|egsdot|veebar|kgreen|capand|elsdot|Subset|subset|curren|aacute|lacute|Lacute|emptyv|ntilde|Ntilde|lagran|lambda|Lambda|capcap|Ugrave|langle|subdot|emsp13|numero|emsp14|nvdash|nvDash|nVdash|nVDash|ugrave|ufisht|nvHarr|larrfs|nvlArr|larrhk|larrlp|larrpl|nvrArr|Udblac|nwarhk|larrtl|nwnear|oacute|Oacute|latail|lAtail|sstarf|lbrace|odblac|Odblac|lbrack|udblac|odsold|eparsl|lcaron|Lcaron|ograve|Ograve|lcedil|Lcedil|Aacute|ssmile|ssetmn|squarf|ldquor|capcup|ominus|cylcty|rharul|eqcirc|dagger|rfloor|rfisht|Dagger|daleth|equals|origof|capdot|equest|dcaron|Dcaron|rdquor|oslash|Oslash|otilde|Otilde|otimes|Otimes|urcrop|Ubreve|ubreve|Yacute|Uacute|uacute|Rcedil|rcedil|urcorn|parsim|Rcaron|Vdashl|rcaron|Tstrok|percnt|period|permil|Exists|yacute|rbrack|rbrace|phmmat|ccaron|Ccaron|planck|ccedil|plankv|tstrok|female|plusdo|plusdu|ffilig|plusmn|ffllig|Ccedil|rAtail|dfisht|bernou|ratail|Rarrtl|rarrtl|angsph|rarrpl|rarrlp|rarrhk|xwedge|xotime|forall|ForAll|Vvdash|vsupnE|preceq|bigcap|frac12|frac13|frac14|primes|rarrfs|prnsim|frac15|Square|frac16|square|lesdot|frac18|frac23|propto|prurel|rarrap|rangle|puncsp|frac25|Racute|qprime|racute|lesges|frac34|abreve|AElig|eqsim|utdot|setmn|urtri|Equal|Uring|seArr|uring|searr|dashv|Dashv|mumap|nabla|iogon|Iogon|sdote|sdotb|scsim|napid|napos|equiv|natur|Acirc|dblac|erarr|nbump|iprod|erDot|ucirc|awint|esdot|angrt|ncong|isinE|scnap|Scirc|scirc|ndash|isins|Ubrcy|nearr|neArr|isinv|nedot|ubrcy|acute|Ycirc|iukcy|Iukcy|xutri|nesim|caret|jcirc|Jcirc|caron|twixt|ddarr|sccue|exist|jmath|sbquo|ngeqq|angst|ccaps|lceil|ngsim|UpTee|delta|Delta|rtrif|nharr|nhArr|nhpar|rtrie|jukcy|Jukcy|kappa|rsquo|Kappa|nlarr|nlArr|TSHcy|rrarr|aogon|Aogon|fflig|xrarr|tshcy|ccirc|nleqq|filig|upsih|nless|dharl|nlsim|fjlig|ropar|nltri|dharr|robrk|roarr|fllig|fltns|roang|rnmid|subnE|subne|lAarr|trisb|Ccirc|acirc|ccups|blank|VDash|forkv|Vdash|langd|cedil|blk12|blk14|laquo|strns|diams|notin|vDash|larrb|blk34|block|disin|uplus|vdash|vBarv|aelig|starf|Wedge|check|xrArr|lates|lbarr|lBarr|notni|lbbrk|bcong|frasl|lbrke|frown|vrtri|vprop|vnsup|gamma|Gamma|wedge|xodot|bdquo|srarr|doteq|ldquo|boxdl|boxdL|gcirc|Gcirc|boxDl|boxDL|boxdr|boxdR|boxDr|TRADE|trade|rlhar|boxDR|vnsub|npart|vltri|rlarr|boxhd|boxhD|nprec|gescc|nrarr|nrArr|boxHd|boxHD|boxhu|boxhU|nrtri|boxHu|clubs|boxHU|times|colon|Colon|gimel|xlArr|Tilde|nsime|tilde|nsmid|nspar|THORN|thorn|xlarr|nsube|nsubE|thkap|xhArr|comma|nsucc|boxul|boxuL|nsupe|nsupE|gneqq|gnsim|boxUl|boxUL|grave|boxur|boxuR|boxUr|boxUR|lescc|angle|bepsi|boxvh|varpi|boxvH|numsp|Theta|gsime|gsiml|theta|boxVh|boxVH|boxvl|gtcir|gtdot|boxvL|boxVl|boxVL|crarr|cross|Cross|nvsim|boxvr|nwarr|nwArr|sqsup|dtdot|Uogon|lhard|lharu|dtrif|ocirc|Ocirc|lhblk|duarr|odash|sqsub|Hacek|sqcup|llarr|duhar|oelig|OElig|ofcir|boxvR|uogon|lltri|boxVr|csube|uuarr|ohbar|csupe|ctdot|olarr|olcir|harrw|oline|sqcap|omacr|Omacr|omega|Omega|boxVR|aleph|lneqq|lnsim|loang|loarr|rharu|lobrk|hcirc|operp|oplus|rhard|Hcirc|orarr|Union|order|ecirc|Ecirc|cuepr|szlig|cuesc|breve|reals|eDDot|Breve|hoarr|lopar|utrif|rdquo|Umacr|umacr|efDot|swArr|ultri|alpha|rceil|ovbar|swarr|Wcirc|wcirc|smtes|smile|bsemi|lrarr|aring|parsl|lrhar|bsime|uhblk|lrtri|cupor|Aring|uharr|uharl|slarr|rbrke|bsolb|lsime|rbbrk|RBarr|lsimg|phone|rBarr|rbarr|icirc|lsquo|Icirc|emacr|Emacr|ratio|simne|plusb|simlE|simgE|simeq|pluse|ltcir|ltdot|empty|xharr|xdtri|iexcl|Alpha|ltrie|rarrw|pound|ltrif|xcirc|bumpe|prcue|bumpE|asymp|amacr|cuvee|Sigma|sigma|iiint|udhar|iiota|ijlig|IJlig|supnE|imacr|Imacr|prime|Prime|image|prnap|eogon|Eogon|rarrc|mdash|mDDot|cuwed|imath|supne|imped|Amacr|udarr|prsim|micro|rarrb|cwint|raquo|infin|eplus|range|rangd|Ucirc|radic|minus|amalg|veeeq|rAarr|epsiv|ycirc|quest|sharp|quot|zwnj|Qscr|race|qscr|Qopf|qopf|qint|rang|Rang|Zscr|zscr|Zopf|zopf|rarr|rArr|Rarr|Pscr|pscr|prop|prod|prnE|prec|ZHcy|zhcy|prap|Zeta|zeta|Popf|popf|Zdot|plus|zdot|Yuml|yuml|phiv|YUcy|yucy|Yscr|yscr|perp|Yopf|yopf|part|para|YIcy|Ouml|rcub|yicy|YAcy|rdca|ouml|osol|Oscr|rdsh|yacy|real|oscr|xvee|andd|rect|andv|Xscr|oror|ordm|ordf|xscr|ange|aopf|Aopf|rHar|Xopf|opar|Oopf|xopf|xnis|rhov|oopf|omid|xmap|oint|apid|apos|ogon|ascr|Ascr|odot|odiv|xcup|xcap|ocir|oast|nvlt|nvle|nvgt|nvge|nvap|Wscr|wscr|auml|ntlg|ntgl|nsup|nsub|nsim|Nscr|nscr|nsce|Wopf|ring|npre|wopf|npar|Auml|Barv|bbrk|Nopf|nopf|nmid|nLtv|beta|ropf|Ropf|Beta|beth|nles|rpar|nleq|bnot|bNot|nldr|NJcy|rscr|Rscr|Vscr|vscr|rsqb|njcy|bopf|nisd|Bopf|rtri|Vopf|nGtv|ngtr|vopf|boxh|boxH|boxv|nges|ngeq|boxV|bscr|scap|Bscr|bsim|Vert|vert|bsol|bull|bump|caps|cdot|ncup|scnE|ncap|nbsp|napE|Cdot|cent|sdot|Vbar|nang|vBar|chcy|Mscr|mscr|sect|semi|CHcy|Mopf|mopf|sext|circ|cire|mldr|mlcp|cirE|comp|shcy|SHcy|vArr|varr|cong|copf|Copf|copy|COPY|malt|male|macr|lvnE|cscr|ltri|sime|ltcc|simg|Cscr|siml|csub|Uuml|lsqb|lsim|uuml|csup|Lscr|lscr|utri|smid|lpar|cups|smte|lozf|darr|Lopf|Uscr|solb|lopf|sopf|Sopf|lneq|uscr|spar|dArr|lnap|Darr|dash|Sqrt|LJcy|ljcy|lHar|dHar|Upsi|upsi|diam|lesg|djcy|DJcy|leqq|dopf|Dopf|dscr|Dscr|dscy|ldsh|ldca|squf|DScy|sscr|Sscr|dsol|lcub|late|star|Star|Uopf|Larr|lArr|larr|uopf|dtri|dzcy|sube|subE|Lang|lang|Kscr|kscr|Kopf|kopf|KJcy|kjcy|KHcy|khcy|DZcy|ecir|edot|eDot|Jscr|jscr|succ|Jopf|jopf|Edot|uHar|emsp|ensp|Iuml|iuml|eopf|isin|Iscr|iscr|Eopf|epar|sung|epsi|escr|sup1|sup2|sup3|Iota|iota|supe|supE|Iopf|iopf|IOcy|iocy|Escr|esim|Esim|imof|Uarr|QUOT|uArr|uarr|euml|IEcy|iecy|Idot|Euml|euro|excl|Hscr|hscr|Hopf|hopf|TScy|tscy|Tscr|hbar|tscr|flat|tbrk|fnof|hArr|harr|half|fopf|Fopf|tdot|gvnE|fork|trie|gtcc|fscr|Fscr|gdot|gsim|Gscr|gscr|Gopf|gopf|gneq|Gdot|tosa|gnap|Topf|topf|geqq|toea|GJcy|gjcy|tint|gesl|mid|Sfr|ggg|top|ges|gla|glE|glj|geq|gne|gEl|gel|gnE|Gcy|gcy|gap|Tfr|tfr|Tcy|tcy|Hat|Tau|Ffr|tau|Tab|hfr|Hfr|ffr|Fcy|fcy|icy|Icy|iff|ETH|eth|ifr|Ifr|Eta|eta|int|Int|Sup|sup|ucy|Ucy|Sum|sum|jcy|ENG|ufr|Ufr|eng|Jcy|jfr|els|ell|egs|Efr|efr|Jfr|uml|kcy|Kcy|Ecy|ecy|kfr|Kfr|lap|Sub|sub|lat|lcy|Lcy|leg|Dot|dot|lEg|leq|les|squ|div|die|lfr|Lfr|lgE|Dfr|dfr|Del|deg|Dcy|dcy|lne|lnE|sol|loz|smt|Cup|lrm|cup|lsh|Lsh|sim|shy|map|Map|mcy|Mcy|mfr|Mfr|mho|gfr|Gfr|sfr|cir|Chi|chi|nap|Cfr|vcy|Vcy|cfr|Scy|scy|ncy|Ncy|vee|Vee|Cap|cap|nfr|scE|sce|Nfr|nge|ngE|nGg|vfr|Vfr|ngt|bot|nGt|nis|niv|Rsh|rsh|nle|nlE|bne|Bfr|bfr|nLl|nlt|nLt|Bcy|bcy|not|Not|rlm|wfr|Wfr|npr|nsc|num|ocy|ast|Ocy|ofr|xfr|Xfr|Ofr|ogt|ohm|apE|olt|Rho|ape|rho|Rfr|rfr|ord|REG|ang|reg|orv|And|and|AMP|Rcy|amp|Afr|ycy|Ycy|yen|yfr|Yfr|rcy|par|pcy|Pcy|pfr|Pfr|phi|Phi|afr|Acy|acy|zcy|Zcy|piv|acE|acd|zfr|Zfr|pre|prE|psi|Psi|qfr|Qfr|zwj|Or|ge|Gg|gt|gg|el|oS|lt|Lt|LT|Re|lg|gl|eg|ne|Im|it|le|DD|wp|wr|nu|Nu|dd|lE|Sc|sc|pi|Pi|ee|af|ll|Ll|rx|gE|xi|pm|Xi|ic|pr|Pr|in|ni|mp|mu|ac|Mu|or|ap|Gt|GT|ii);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)(?!;)([=a-zA-Z0-9]?)|&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+)/g;\n\tvar decodeMap = {'aacute':'\\xE1','Aacute':'\\xC1','abreve':'\\u0103','Abreve':'\\u0102','ac':'\\u223E','acd':'\\u223F','acE':'\\u223E\\u0333','acirc':'\\xE2','Acirc':'\\xC2','acute':'\\xB4','acy':'\\u0430','Acy':'\\u0410','aelig':'\\xE6','AElig':'\\xC6','af':'\\u2061','afr':'\\uD835\\uDD1E','Afr':'\\uD835\\uDD04','agrave':'\\xE0','Agrave':'\\xC0','alefsym':'\\u2135','aleph':'\\u2135','alpha':'\\u03B1','Alpha':'\\u0391','amacr':'\\u0101','Amacr':'\\u0100','amalg':'\\u2A3F','amp':'&','AMP':'&','and':'\\u2227','And':'\\u2A53','andand':'\\u2A55','andd':'\\u2A5C','andslope':'\\u2A58','andv':'\\u2A5A','ang':'\\u2220','ange':'\\u29A4','angle':'\\u2220','angmsd':'\\u2221','angmsdaa':'\\u29A8','angmsdab':'\\u29A9','angmsdac':'\\u29AA','angmsdad':'\\u29AB','angmsdae':'\\u29AC','angmsdaf':'\\u29AD','angmsdag':'\\u29AE','angmsdah':'\\u29AF','angrt':'\\u221F','angrtvb':'\\u22BE','angrtvbd':'\\u299D','angsph':'\\u2222','angst':'\\xC5','angzarr':'\\u237C','aogon':'\\u0105','Aogon':'\\u0104','aopf':'\\uD835\\uDD52','Aopf':'\\uD835\\uDD38','ap':'\\u2248','apacir':'\\u2A6F','ape':'\\u224A','apE':'\\u2A70','apid':'\\u224B','apos':'\\'','ApplyFunction':'\\u2061','approx':'\\u2248','approxeq':'\\u224A','aring':'\\xE5','Aring':'\\xC5','ascr':'\\uD835\\uDCB6','Ascr':'\\uD835\\uDC9C','Assign':'\\u2254','ast':'*','asymp':'\\u2248','asympeq':'\\u224D','atilde':'\\xE3','Atilde':'\\xC3','auml':'\\xE4','Auml':'\\xC4','awconint':'\\u2233','awint':'\\u2A11','backcong':'\\u224C','backepsilon':'\\u03F6','backprime':'\\u2035','backsim':'\\u223D','backsimeq':'\\u22CD','Backslash':'\\u2216','Barv':'\\u2AE7','barvee':'\\u22BD','barwed':'\\u2305','Barwed':'\\u2306','barwedge':'\\u2305','bbrk':'\\u23B5','bbrktbrk':'\\u23B6','bcong':'\\u224C','bcy':'\\u0431','Bcy':'\\u0411','bdquo':'\\u201E','becaus':'\\u2235','because':'\\u2235','Because':'\\u2235','bemptyv':'\\u29B0','bepsi':'\\u03F6','bernou':'\\u212C','Bernoullis':'\\u212C','beta':'\\u03B2','Beta':'\\u0392','beth':'\\u2136','between':'\\u226C','bfr':'\\uD835\\uDD1F','Bfr':'\\uD835\\uDD05','bigcap':'\\u22C2','bigcirc':'\\u25EF','bigcup':'\\u22C3','bigodot':'\\u2A00','bigoplus':'\\u2A01','bigotimes':'\\u2A02','bigsqcup':'\\u2A06','bigstar':'\\u2605','bigtriangledown':'\\u25BD','bigtriangleup':'\\u25B3','biguplus':'\\u2A04','bigvee':'\\u22C1','bigwedge':'\\u22C0','bkarow':'\\u290D','blacklozenge':'\\u29EB','blacksquare':'\\u25AA','blacktriangle':'\\u25B4','blacktriangledown':'\\u25BE','blacktriangleleft':'\\u25C2','blacktriangleright':'\\u25B8','blank':'\\u2423','blk12':'\\u2592','blk14':'\\u2591','blk34':'\\u2593','block':'\\u2588','bne':'=\\u20E5','bnequiv':'\\u2261\\u20E5','bnot':'\\u2310','bNot':'\\u2AED','bopf':'\\uD835\\uDD53','Bopf':'\\uD835\\uDD39','bot':'\\u22A5','bottom':'\\u22A5','bowtie':'\\u22C8','boxbox':'\\u29C9','boxdl':'\\u2510','boxdL':'\\u2555','boxDl':'\\u2556','boxDL':'\\u2557','boxdr':'\\u250C','boxdR':'\\u2552','boxDr':'\\u2553','boxDR':'\\u2554','boxh':'\\u2500','boxH':'\\u2550','boxhd':'\\u252C','boxhD':'\\u2565','boxHd':'\\u2564','boxHD':'\\u2566','boxhu':'\\u2534','boxhU':'\\u2568','boxHu':'\\u2567','boxHU':'\\u2569','boxminus':'\\u229F','boxplus':'\\u229E','boxtimes':'\\u22A0','boxul':'\\u2518','boxuL':'\\u255B','boxUl':'\\u255C','boxUL':'\\u255D','boxur':'\\u2514','boxuR':'\\u2558','boxUr':'\\u2559','boxUR':'\\u255A','boxv':'\\u2502','boxV':'\\u2551','boxvh':'\\u253C','boxvH':'\\u256A','boxVh':'\\u256B','boxVH':'\\u256C','boxvl':'\\u2524','boxvL':'\\u2561','boxVl':'\\u2562','boxVL':'\\u2563','boxvr':'\\u251C','boxvR':'\\u255E','boxVr':'\\u255F','boxVR':'\\u2560','bprime':'\\u2035','breve':'\\u02D8','Breve':'\\u02D8','brvbar':'\\xA6','bscr':'\\uD835\\uDCB7','Bscr':'\\u212C','bsemi':'\\u204F','bsim':'\\u223D','bsime':'\\u22CD','bsol':'\\\\','bsolb':'\\u29C5','bsolhsub':'\\u27C8','bull':'\\u2022','bullet':'\\u2022','bump':'\\u224E','bumpe':'\\u224F','bumpE':'\\u2AAE','bumpeq':'\\u224F','Bumpeq':'\\u224E','cacute':'\\u0107','Cacute':'\\u0106','cap':'\\u2229','Cap':'\\u22D2','capand':'\\u2A44','capbrcup':'\\u2A49','capcap':'\\u2A4B','capcup':'\\u2A47','capdot':'\\u2A40','CapitalDifferentialD':'\\u2145','caps':'\\u2229\\uFE00','caret':'\\u2041','caron':'\\u02C7','Cayleys':'\\u212D','ccaps':'\\u2A4D','ccaron':'\\u010D','Ccaron':'\\u010C','ccedil':'\\xE7','Ccedil':'\\xC7','ccirc':'\\u0109','Ccirc':'\\u0108','Cconint':'\\u2230','ccups':'\\u2A4C','ccupssm':'\\u2A50','cdot':'\\u010B','Cdot':'\\u010A','cedil':'\\xB8','Cedilla':'\\xB8','cemptyv':'\\u29B2','cent':'\\xA2','centerdot':'\\xB7','CenterDot':'\\xB7','cfr':'\\uD835\\uDD20','Cfr':'\\u212D','chcy':'\\u0447','CHcy':'\\u0427','check':'\\u2713','checkmark':'\\u2713','chi':'\\u03C7','Chi':'\\u03A7','cir':'\\u25CB','circ':'\\u02C6','circeq':'\\u2257','circlearrowleft':'\\u21BA','circlearrowright':'\\u21BB','circledast':'\\u229B','circledcirc':'\\u229A','circleddash':'\\u229D','CircleDot':'\\u2299','circledR':'\\xAE','circledS':'\\u24C8','CircleMinus':'\\u2296','CirclePlus':'\\u2295','CircleTimes':'\\u2297','cire':'\\u2257','cirE':'\\u29C3','cirfnint':'\\u2A10','cirmid':'\\u2AEF','cirscir':'\\u29C2','ClockwiseContourIntegral':'\\u2232','CloseCurlyDoubleQuote':'\\u201D','CloseCurlyQuote':'\\u2019','clubs':'\\u2663','clubsuit':'\\u2663','colon':':','Colon':'\\u2237','colone':'\\u2254','Colone':'\\u2A74','coloneq':'\\u2254','comma':',','commat':'@','comp':'\\u2201','compfn':'\\u2218','complement':'\\u2201','complexes':'\\u2102','cong':'\\u2245','congdot':'\\u2A6D','Congruent':'\\u2261','conint':'\\u222E','Conint':'\\u222F','ContourIntegral':'\\u222E','copf':'\\uD835\\uDD54','Copf':'\\u2102','coprod':'\\u2210','Coproduct':'\\u2210','copy':'\\xA9','COPY':'\\xA9','copysr':'\\u2117','CounterClockwiseContourIntegral':'\\u2233','crarr':'\\u21B5','cross':'\\u2717','Cross':'\\u2A2F','cscr':'\\uD835\\uDCB8','Cscr':'\\uD835\\uDC9E','csub':'\\u2ACF','csube':'\\u2AD1','csup':'\\u2AD0','csupe':'\\u2AD2','ctdot':'\\u22EF','cudarrl':'\\u2938','cudarrr':'\\u2935','cuepr':'\\u22DE','cuesc':'\\u22DF','cularr':'\\u21B6','cularrp':'\\u293D','cup':'\\u222A','Cup':'\\u22D3','cupbrcap':'\\u2A48','cupcap':'\\u2A46','CupCap':'\\u224D','cupcup':'\\u2A4A','cupdot':'\\u228D','cupor':'\\u2A45','cups':'\\u222A\\uFE00','curarr':'\\u21B7','curarrm':'\\u293C','curlyeqprec':'\\u22DE','curlyeqsucc':'\\u22DF','curlyvee':'\\u22CE','curlywedge':'\\u22CF','curren':'\\xA4','curvearrowleft':'\\u21B6','curvearrowright':'\\u21B7','cuvee':'\\u22CE','cuwed':'\\u22CF','cwconint':'\\u2232','cwint':'\\u2231','cylcty':'\\u232D','dagger':'\\u2020','Dagger':'\\u2021','daleth':'\\u2138','darr':'\\u2193','dArr':'\\u21D3','Darr':'\\u21A1','dash':'\\u2010','dashv':'\\u22A3','Dashv':'\\u2AE4','dbkarow':'\\u290F','dblac':'\\u02DD','dcaron':'\\u010F','Dcaron':'\\u010E','dcy':'\\u0434','Dcy':'\\u0414','dd':'\\u2146','DD':'\\u2145','ddagger':'\\u2021','ddarr':'\\u21CA','DDotrahd':'\\u2911','ddotseq':'\\u2A77','deg':'\\xB0','Del':'\\u2207','delta':'\\u03B4','Delta':'\\u0394','demptyv':'\\u29B1','dfisht':'\\u297F','dfr':'\\uD835\\uDD21','Dfr':'\\uD835\\uDD07','dHar':'\\u2965','dharl':'\\u21C3','dharr':'\\u21C2','DiacriticalAcute':'\\xB4','DiacriticalDot':'\\u02D9','DiacriticalDoubleAcute':'\\u02DD','DiacriticalGrave':'`','DiacriticalTilde':'\\u02DC','diam':'\\u22C4','diamond':'\\u22C4','Diamond':'\\u22C4','diamondsuit':'\\u2666','diams':'\\u2666','die':'\\xA8','DifferentialD':'\\u2146','digamma':'\\u03DD','disin':'\\u22F2','div':'\\xF7','divide':'\\xF7','divideontimes':'\\u22C7','divonx':'\\u22C7','djcy':'\\u0452','DJcy':'\\u0402','dlcorn':'\\u231E','dlcrop':'\\u230D','dollar':'$','dopf':'\\uD835\\uDD55','Dopf':'\\uD835\\uDD3B','dot':'\\u02D9','Dot':'\\xA8','DotDot':'\\u20DC','doteq':'\\u2250','doteqdot':'\\u2251','DotEqual':'\\u2250','dotminus':'\\u2238','dotplus':'\\u2214','dotsquare':'\\u22A1','doublebarwedge':'\\u2306','DoubleContourIntegral':'\\u222F','DoubleDot':'\\xA8','DoubleDownArrow':'\\u21D3','DoubleLeftArrow':'\\u21D0','DoubleLeftRightArrow':'\\u21D4','DoubleLeftTee':'\\u2AE4','DoubleLongLeftArrow':'\\u27F8','DoubleLongLeftRightArrow':'\\u27FA','DoubleLongRightArrow':'\\u27F9','DoubleRightArrow':'\\u21D2','DoubleRightTee':'\\u22A8','DoubleUpArrow':'\\u21D1','DoubleUpDownArrow':'\\u21D5','DoubleVerticalBar':'\\u2225','downarrow':'\\u2193','Downarrow':'\\u21D3','DownArrow':'\\u2193','DownArrowBar':'\\u2913','DownArrowUpArrow':'\\u21F5','DownBreve':'\\u0311','downdownarrows':'\\u21CA','downharpoonleft':'\\u21C3','downharpoonright':'\\u21C2','DownLeftRightVector':'\\u2950','DownLeftTeeVector':'\\u295E','DownLeftVector':'\\u21BD','DownLeftVectorBar':'\\u2956','DownRightTeeVector':'\\u295F','DownRightVector':'\\u21C1','DownRightVectorBar':'\\u2957','DownTee':'\\u22A4','DownTeeArrow':'\\u21A7','drbkarow':'\\u2910','drcorn':'\\u231F','drcrop':'\\u230C','dscr':'\\uD835\\uDCB9','Dscr':'\\uD835\\uDC9F','dscy':'\\u0455','DScy':'\\u0405','dsol':'\\u29F6','dstrok':'\\u0111','Dstrok':'\\u0110','dtdot':'\\u22F1','dtri':'\\u25BF','dtrif':'\\u25BE','duarr':'\\u21F5','duhar':'\\u296F','dwangle':'\\u29A6','dzcy':'\\u045F','DZcy':'\\u040F','dzigrarr':'\\u27FF','eacute':'\\xE9','Eacute':'\\xC9','easter':'\\u2A6E','ecaron':'\\u011B','Ecaron':'\\u011A','ecir':'\\u2256','ecirc':'\\xEA','Ecirc':'\\xCA','ecolon':'\\u2255','ecy':'\\u044D','Ecy':'\\u042D','eDDot':'\\u2A77','edot':'\\u0117','eDot':'\\u2251','Edot':'\\u0116','ee':'\\u2147','efDot':'\\u2252','efr':'\\uD835\\uDD22','Efr':'\\uD835\\uDD08','eg':'\\u2A9A','egrave':'\\xE8','Egrave':'\\xC8','egs':'\\u2A96','egsdot':'\\u2A98','el':'\\u2A99','Element':'\\u2208','elinters':'\\u23E7','ell':'\\u2113','els':'\\u2A95','elsdot':'\\u2A97','emacr':'\\u0113','Emacr':'\\u0112','empty':'\\u2205','emptyset':'\\u2205','EmptySmallSquare':'\\u25FB','emptyv':'\\u2205','EmptyVerySmallSquare':'\\u25AB','emsp':'\\u2003','emsp13':'\\u2004','emsp14':'\\u2005','eng':'\\u014B','ENG':'\\u014A','ensp':'\\u2002','eogon':'\\u0119','Eogon':'\\u0118','eopf':'\\uD835\\uDD56','Eopf':'\\uD835\\uDD3C','epar':'\\u22D5','eparsl':'\\u29E3','eplus':'\\u2A71','epsi':'\\u03B5','epsilon':'\\u03B5','Epsilon':'\\u0395','epsiv':'\\u03F5','eqcirc':'\\u2256','eqcolon':'\\u2255','eqsim':'\\u2242','eqslantgtr':'\\u2A96','eqslantless':'\\u2A95','Equal':'\\u2A75','equals':'=','EqualTilde':'\\u2242','equest':'\\u225F','Equilibrium':'\\u21CC','equiv':'\\u2261','equivDD':'\\u2A78','eqvparsl':'\\u29E5','erarr':'\\u2971','erDot':'\\u2253','escr':'\\u212F','Escr':'\\u2130','esdot':'\\u2250','esim':'\\u2242','Esim':'\\u2A73','eta':'\\u03B7','Eta':'\\u0397','eth':'\\xF0','ETH':'\\xD0','euml':'\\xEB','Euml':'\\xCB','euro':'\\u20AC','excl':'!','exist':'\\u2203','Exists':'\\u2203','expectation':'\\u2130','exponentiale':'\\u2147','ExponentialE':'\\u2147','fallingdotseq':'\\u2252','fcy':'\\u0444','Fcy':'\\u0424','female':'\\u2640','ffilig':'\\uFB03','fflig':'\\uFB00','ffllig':'\\uFB04','ffr':'\\uD835\\uDD23','Ffr':'\\uD835\\uDD09','filig':'\\uFB01','FilledSmallSquare':'\\u25FC','FilledVerySmallSquare':'\\u25AA','fjlig':'fj','flat':'\\u266D','fllig':'\\uFB02','fltns':'\\u25B1','fnof':'\\u0192','fopf':'\\uD835\\uDD57','Fopf':'\\uD835\\uDD3D','forall':'\\u2200','ForAll':'\\u2200','fork':'\\u22D4','forkv':'\\u2AD9','Fouriertrf':'\\u2131','fpartint':'\\u2A0D','frac12':'\\xBD','frac13':'\\u2153','frac14':'\\xBC','frac15':'\\u2155','frac16':'\\u2159','frac18':'\\u215B','frac23':'\\u2154','frac25':'\\u2156','frac34':'\\xBE','frac35':'\\u2157','frac38':'\\u215C','frac45':'\\u2158','frac56':'\\u215A','frac58':'\\u215D','frac78':'\\u215E','frasl':'\\u2044','frown':'\\u2322','fscr':'\\uD835\\uDCBB','Fscr':'\\u2131','gacute':'\\u01F5','gamma':'\\u03B3','Gamma':'\\u0393','gammad':'\\u03DD','Gammad':'\\u03DC','gap':'\\u2A86','gbreve':'\\u011F','Gbreve':'\\u011E','Gcedil':'\\u0122','gcirc':'\\u011D','Gcirc':'\\u011C','gcy':'\\u0433','Gcy':'\\u0413','gdot':'\\u0121','Gdot':'\\u0120','ge':'\\u2265','gE':'\\u2267','gel':'\\u22DB','gEl':'\\u2A8C','geq':'\\u2265','geqq':'\\u2267','geqslant':'\\u2A7E','ges':'\\u2A7E','gescc':'\\u2AA9','gesdot':'\\u2A80','gesdoto':'\\u2A82','gesdotol':'\\u2A84','gesl':'\\u22DB\\uFE00','gesles':'\\u2A94','gfr':'\\uD835\\uDD24','Gfr':'\\uD835\\uDD0A','gg':'\\u226B','Gg':'\\u22D9','ggg':'\\u22D9','gimel':'\\u2137','gjcy':'\\u0453','GJcy':'\\u0403','gl':'\\u2277','gla':'\\u2AA5','glE':'\\u2A92','glj':'\\u2AA4','gnap':'\\u2A8A','gnapprox':'\\u2A8A','gne':'\\u2A88','gnE':'\\u2269','gneq':'\\u2A88','gneqq':'\\u2269','gnsim':'\\u22E7','gopf':'\\uD835\\uDD58','Gopf':'\\uD835\\uDD3E','grave':'`','GreaterEqual':'\\u2265','GreaterEqualLess':'\\u22DB','GreaterFullEqual':'\\u2267','GreaterGreater':'\\u2AA2','GreaterLess':'\\u2277','GreaterSlantEqual':'\\u2A7E','GreaterTilde':'\\u2273','gscr':'\\u210A','Gscr':'\\uD835\\uDCA2','gsim':'\\u2273','gsime':'\\u2A8E','gsiml':'\\u2A90','gt':'>','Gt':'\\u226B','GT':'>','gtcc':'\\u2AA7','gtcir':'\\u2A7A','gtdot':'\\u22D7','gtlPar':'\\u2995','gtquest':'\\u2A7C','gtrapprox':'\\u2A86','gtrarr':'\\u2978','gtrdot':'\\u22D7','gtreqless':'\\u22DB','gtreqqless':'\\u2A8C','gtrless':'\\u2277','gtrsim':'\\u2273','gvertneqq':'\\u2269\\uFE00','gvnE':'\\u2269\\uFE00','Hacek':'\\u02C7','hairsp':'\\u200A','half':'\\xBD','hamilt':'\\u210B','hardcy':'\\u044A','HARDcy':'\\u042A','harr':'\\u2194','hArr':'\\u21D4','harrcir':'\\u2948','harrw':'\\u21AD','Hat':'^','hbar':'\\u210F','hcirc':'\\u0125','Hcirc':'\\u0124','hearts':'\\u2665','heartsuit':'\\u2665','hellip':'\\u2026','hercon':'\\u22B9','hfr':'\\uD835\\uDD25','Hfr':'\\u210C','HilbertSpace':'\\u210B','hksearow':'\\u2925','hkswarow':'\\u2926','hoarr':'\\u21FF','homtht':'\\u223B','hookleftarrow':'\\u21A9','hookrightarrow':'\\u21AA','hopf':'\\uD835\\uDD59','Hopf':'\\u210D','horbar':'\\u2015','HorizontalLine':'\\u2500','hscr':'\\uD835\\uDCBD','Hscr':'\\u210B','hslash':'\\u210F','hstrok':'\\u0127','Hstrok':'\\u0126','HumpDownHump':'\\u224E','HumpEqual':'\\u224F','hybull':'\\u2043','hyphen':'\\u2010','iacute':'\\xED','Iacute':'\\xCD','ic':'\\u2063','icirc':'\\xEE','Icirc':'\\xCE','icy':'\\u0438','Icy':'\\u0418','Idot':'\\u0130','iecy':'\\u0435','IEcy':'\\u0415','iexcl':'\\xA1','iff':'\\u21D4','ifr':'\\uD835\\uDD26','Ifr':'\\u2111','igrave':'\\xEC','Igrave':'\\xCC','ii':'\\u2148','iiiint':'\\u2A0C','iiint':'\\u222D','iinfin':'\\u29DC','iiota':'\\u2129','ijlig':'\\u0133','IJlig':'\\u0132','Im':'\\u2111','imacr':'\\u012B','Imacr':'\\u012A','image':'\\u2111','ImaginaryI':'\\u2148','imagline':'\\u2110','imagpart':'\\u2111','imath':'\\u0131','imof':'\\u22B7','imped':'\\u01B5','Implies':'\\u21D2','in':'\\u2208','incare':'\\u2105','infin':'\\u221E','infintie':'\\u29DD','inodot':'\\u0131','int':'\\u222B','Int':'\\u222C','intcal':'\\u22BA','integers':'\\u2124','Integral':'\\u222B','intercal':'\\u22BA','Intersection':'\\u22C2','intlarhk':'\\u2A17','intprod':'\\u2A3C','InvisibleComma':'\\u2063','InvisibleTimes':'\\u2062','iocy':'\\u0451','IOcy':'\\u0401','iogon':'\\u012F','Iogon':'\\u012E','iopf':'\\uD835\\uDD5A','Iopf':'\\uD835\\uDD40','iota':'\\u03B9','Iota':'\\u0399','iprod':'\\u2A3C','iquest':'\\xBF','iscr':'\\uD835\\uDCBE','Iscr':'\\u2110','isin':'\\u2208','isindot':'\\u22F5','isinE':'\\u22F9','isins':'\\u22F4','isinsv':'\\u22F3','isinv':'\\u2208','it':'\\u2062','itilde':'\\u0129','Itilde':'\\u0128','iukcy':'\\u0456','Iukcy':'\\u0406','iuml':'\\xEF','Iuml':'\\xCF','jcirc':'\\u0135','Jcirc':'\\u0134','jcy':'\\u0439','Jcy':'\\u0419','jfr':'\\uD835\\uDD27','Jfr':'\\uD835\\uDD0D','jmath':'\\u0237','jopf':'\\uD835\\uDD5B','Jopf':'\\uD835\\uDD41','jscr':'\\uD835\\uDCBF','Jscr':'\\uD835\\uDCA5','jsercy':'\\u0458','Jsercy':'\\u0408','jukcy':'\\u0454','Jukcy':'\\u0404','kappa':'\\u03BA','Kappa':'\\u039A','kappav':'\\u03F0','kcedil':'\\u0137','Kcedil':'\\u0136','kcy':'\\u043A','Kcy':'\\u041A','kfr':'\\uD835\\uDD28','Kfr':'\\uD835\\uDD0E','kgreen':'\\u0138','khcy':'\\u0445','KHcy':'\\u0425','kjcy':'\\u045C','KJcy':'\\u040C','kopf':'\\uD835\\uDD5C','Kopf':'\\uD835\\uDD42','kscr':'\\uD835\\uDCC0','Kscr':'\\uD835\\uDCA6','lAarr':'\\u21DA','lacute':'\\u013A','Lacute':'\\u0139','laemptyv':'\\u29B4','lagran':'\\u2112','lambda':'\\u03BB','Lambda':'\\u039B','lang':'\\u27E8','Lang':'\\u27EA','langd':'\\u2991','langle':'\\u27E8','lap':'\\u2A85','Laplacetrf':'\\u2112','laquo':'\\xAB','larr':'\\u2190','lArr':'\\u21D0','Larr':'\\u219E','larrb':'\\u21E4','larrbfs':'\\u291F','larrfs':'\\u291D','larrhk':'\\u21A9','larrlp':'\\u21AB','larrpl':'\\u2939','larrsim':'\\u2973','larrtl':'\\u21A2','lat':'\\u2AAB','latail':'\\u2919','lAtail':'\\u291B','late':'\\u2AAD','lates':'\\u2AAD\\uFE00','lbarr':'\\u290C','lBarr':'\\u290E','lbbrk':'\\u2772','lbrace':'{','lbrack':'[','lbrke':'\\u298B','lbrksld':'\\u298F','lbrkslu':'\\u298D','lcaron':'\\u013E','Lcaron':'\\u013D','lcedil':'\\u013C','Lcedil':'\\u013B','lceil':'\\u2308','lcub':'{','lcy':'\\u043B','Lcy':'\\u041B','ldca':'\\u2936','ldquo':'\\u201C','ldquor':'\\u201E','ldrdhar':'\\u2967','ldrushar':'\\u294B','ldsh':'\\u21B2','le':'\\u2264','lE':'\\u2266','LeftAngleBracket':'\\u27E8','leftarrow':'\\u2190','Leftarrow':'\\u21D0','LeftArrow':'\\u2190','LeftArrowBar':'\\u21E4','LeftArrowRightArrow':'\\u21C6','leftarrowtail':'\\u21A2','LeftCeiling':'\\u2308','LeftDoubleBracket':'\\u27E6','LeftDownTeeVector':'\\u2961','LeftDownVector':'\\u21C3','LeftDownVectorBar':'\\u2959','LeftFloor':'\\u230A','leftharpoondown':'\\u21BD','leftharpoonup':'\\u21BC','leftleftarrows':'\\u21C7','leftrightarrow':'\\u2194','Leftrightarrow':'\\u21D4','LeftRightArrow':'\\u2194','leftrightarrows':'\\u21C6','leftrightharpoons':'\\u21CB','leftrightsquigarrow':'\\u21AD','LeftRightVector':'\\u294E','LeftTee':'\\u22A3','LeftTeeArrow':'\\u21A4','LeftTeeVector':'\\u295A','leftthreetimes':'\\u22CB','LeftTriangle':'\\u22B2','LeftTriangleBar':'\\u29CF','LeftTriangleEqual':'\\u22B4','LeftUpDownVector':'\\u2951','LeftUpTeeVector':'\\u2960','LeftUpVector':'\\u21BF','LeftUpVectorBar':'\\u2958','LeftVector':'\\u21BC','LeftVectorBar':'\\u2952','leg':'\\u22DA','lEg':'\\u2A8B','leq':'\\u2264','leqq':'\\u2266','leqslant':'\\u2A7D','les':'\\u2A7D','lescc':'\\u2AA8','lesdot':'\\u2A7F','lesdoto':'\\u2A81','lesdotor':'\\u2A83','lesg':'\\u22DA\\uFE00','lesges':'\\u2A93','lessapprox':'\\u2A85','lessdot':'\\u22D6','lesseqgtr':'\\u22DA','lesseqqgtr':'\\u2A8B','LessEqualGreater':'\\u22DA','LessFullEqual':'\\u2266','LessGreater':'\\u2276','lessgtr':'\\u2276','LessLess':'\\u2AA1','lesssim':'\\u2272','LessSlantEqual':'\\u2A7D','LessTilde':'\\u2272','lfisht':'\\u297C','lfloor':'\\u230A','lfr':'\\uD835\\uDD29','Lfr':'\\uD835\\uDD0F','lg':'\\u2276','lgE':'\\u2A91','lHar':'\\u2962','lhard':'\\u21BD','lharu':'\\u21BC','lharul':'\\u296A','lhblk':'\\u2584','ljcy':'\\u0459','LJcy':'\\u0409','ll':'\\u226A','Ll':'\\u22D8','llarr':'\\u21C7','llcorner':'\\u231E','Lleftarrow':'\\u21DA','llhard':'\\u296B','lltri':'\\u25FA','lmidot':'\\u0140','Lmidot':'\\u013F','lmoust':'\\u23B0','lmoustache':'\\u23B0','lnap':'\\u2A89','lnapprox':'\\u2A89','lne':'\\u2A87','lnE':'\\u2268','lneq':'\\u2A87','lneqq':'\\u2268','lnsim':'\\u22E6','loang':'\\u27EC','loarr':'\\u21FD','lobrk':'\\u27E6','longleftarrow':'\\u27F5','Longleftarrow':'\\u27F8','LongLeftArrow':'\\u27F5','longleftrightarrow':'\\u27F7','Longleftrightarrow':'\\u27FA','LongLeftRightArrow':'\\u27F7','longmapsto':'\\u27FC','longrightarrow':'\\u27F6','Longrightarrow':'\\u27F9','LongRightArrow':'\\u27F6','looparrowleft':'\\u21AB','looparrowright':'\\u21AC','lopar':'\\u2985','lopf':'\\uD835\\uDD5D','Lopf':'\\uD835\\uDD43','loplus':'\\u2A2D','lotimes':'\\u2A34','lowast':'\\u2217','lowbar':'_','LowerLeftArrow':'\\u2199','LowerRightArrow':'\\u2198','loz':'\\u25CA','lozenge':'\\u25CA','lozf':'\\u29EB','lpar':'(','lparlt':'\\u2993','lrarr':'\\u21C6','lrcorner':'\\u231F','lrhar':'\\u21CB','lrhard':'\\u296D','lrm':'\\u200E','lrtri':'\\u22BF','lsaquo':'\\u2039','lscr':'\\uD835\\uDCC1','Lscr':'\\u2112','lsh':'\\u21B0','Lsh':'\\u21B0','lsim':'\\u2272','lsime':'\\u2A8D','lsimg':'\\u2A8F','lsqb':'[','lsquo':'\\u2018','lsquor':'\\u201A','lstrok':'\\u0142','Lstrok':'\\u0141','lt':'<','Lt':'\\u226A','LT':'<','ltcc':'\\u2AA6','ltcir':'\\u2A79','ltdot':'\\u22D6','lthree':'\\u22CB','ltimes':'\\u22C9','ltlarr':'\\u2976','ltquest':'\\u2A7B','ltri':'\\u25C3','ltrie':'\\u22B4','ltrif':'\\u25C2','ltrPar':'\\u2996','lurdshar':'\\u294A','luruhar':'\\u2966','lvertneqq':'\\u2268\\uFE00','lvnE':'\\u2268\\uFE00','macr':'\\xAF','male':'\\u2642','malt':'\\u2720','maltese':'\\u2720','map':'\\u21A6','Map':'\\u2905','mapsto':'\\u21A6','mapstodown':'\\u21A7','mapstoleft':'\\u21A4','mapstoup':'\\u21A5','marker':'\\u25AE','mcomma':'\\u2A29','mcy':'\\u043C','Mcy':'\\u041C','mdash':'\\u2014','mDDot':'\\u223A','measuredangle':'\\u2221','MediumSpace':'\\u205F','Mellintrf':'\\u2133','mfr':'\\uD835\\uDD2A','Mfr':'\\uD835\\uDD10','mho':'\\u2127','micro':'\\xB5','mid':'\\u2223','midast':'*','midcir':'\\u2AF0','middot':'\\xB7','minus':'\\u2212','minusb':'\\u229F','minusd':'\\u2238','minusdu':'\\u2A2A','MinusPlus':'\\u2213','mlcp':'\\u2ADB','mldr':'\\u2026','mnplus':'\\u2213','models':'\\u22A7','mopf':'\\uD835\\uDD5E','Mopf':'\\uD835\\uDD44','mp':'\\u2213','mscr':'\\uD835\\uDCC2','Mscr':'\\u2133','mstpos':'\\u223E','mu':'\\u03BC','Mu':'\\u039C','multimap':'\\u22B8','mumap':'\\u22B8','nabla':'\\u2207','nacute':'\\u0144','Nacute':'\\u0143','nang':'\\u2220\\u20D2','nap':'\\u2249','napE':'\\u2A70\\u0338','napid':'\\u224B\\u0338','napos':'\\u0149','napprox':'\\u2249','natur':'\\u266E','natural':'\\u266E','naturals':'\\u2115','nbsp':'\\xA0','nbump':'\\u224E\\u0338','nbumpe':'\\u224F\\u0338','ncap':'\\u2A43','ncaron':'\\u0148','Ncaron':'\\u0147','ncedil':'\\u0146','Ncedil':'\\u0145','ncong':'\\u2247','ncongdot':'\\u2A6D\\u0338','ncup':'\\u2A42','ncy':'\\u043D','Ncy':'\\u041D','ndash':'\\u2013','ne':'\\u2260','nearhk':'\\u2924','nearr':'\\u2197','neArr':'\\u21D7','nearrow':'\\u2197','nedot':'\\u2250\\u0338','NegativeMediumSpace':'\\u200B','NegativeThickSpace':'\\u200B','NegativeThinSpace':'\\u200B','NegativeVeryThinSpace':'\\u200B','nequiv':'\\u2262','nesear':'\\u2928','nesim':'\\u2242\\u0338','NestedGreaterGreater':'\\u226B','NestedLessLess':'\\u226A','NewLine':'\\n','nexist':'\\u2204','nexists':'\\u2204','nfr':'\\uD835\\uDD2B','Nfr':'\\uD835\\uDD11','nge':'\\u2271','ngE':'\\u2267\\u0338','ngeq':'\\u2271','ngeqq':'\\u2267\\u0338','ngeqslant':'\\u2A7E\\u0338','nges':'\\u2A7E\\u0338','nGg':'\\u22D9\\u0338','ngsim':'\\u2275','ngt':'\\u226F','nGt':'\\u226B\\u20D2','ngtr':'\\u226F','nGtv':'\\u226B\\u0338','nharr':'\\u21AE','nhArr':'\\u21CE','nhpar':'\\u2AF2','ni':'\\u220B','nis':'\\u22FC','nisd':'\\u22FA','niv':'\\u220B','njcy':'\\u045A','NJcy':'\\u040A','nlarr':'\\u219A','nlArr':'\\u21CD','nldr':'\\u2025','nle':'\\u2270','nlE':'\\u2266\\u0338','nleftarrow':'\\u219A','nLeftarrow':'\\u21CD','nleftrightarrow':'\\u21AE','nLeftrightarrow':'\\u21CE','nleq':'\\u2270','nleqq':'\\u2266\\u0338','nleqslant':'\\u2A7D\\u0338','nles':'\\u2A7D\\u0338','nless':'\\u226E','nLl':'\\u22D8\\u0338','nlsim':'\\u2274','nlt':'\\u226E','nLt':'\\u226A\\u20D2','nltri':'\\u22EA','nltrie':'\\u22EC','nLtv':'\\u226A\\u0338','nmid':'\\u2224','NoBreak':'\\u2060','NonBreakingSpace':'\\xA0','nopf':'\\uD835\\uDD5F','Nopf':'\\u2115','not':'\\xAC','Not':'\\u2AEC','NotCongruent':'\\u2262','NotCupCap':'\\u226D','NotDoubleVerticalBar':'\\u2226','NotElement':'\\u2209','NotEqual':'\\u2260','NotEqualTilde':'\\u2242\\u0338','NotExists':'\\u2204','NotGreater':'\\u226F','NotGreaterEqual':'\\u2271','NotGreaterFullEqual':'\\u2267\\u0338','NotGreaterGreater':'\\u226B\\u0338','NotGreaterLess':'\\u2279','NotGreaterSlantEqual':'\\u2A7E\\u0338','NotGreaterTilde':'\\u2275','NotHumpDownHump':'\\u224E\\u0338','NotHumpEqual':'\\u224F\\u0338','notin':'\\u2209','notindot':'\\u22F5\\u0338','notinE':'\\u22F9\\u0338','notinva':'\\u2209','notinvb':'\\u22F7','notinvc':'\\u22F6','NotLeftTriangle':'\\u22EA','NotLeftTriangleBar':'\\u29CF\\u0338','NotLeftTriangleEqual':'\\u22EC','NotLess':'\\u226E','NotLessEqual':'\\u2270','NotLessGreater':'\\u2278','NotLessLess':'\\u226A\\u0338','NotLessSlantEqual':'\\u2A7D\\u0338','NotLessTilde':'\\u2274','NotNestedGreaterGreater':'\\u2AA2\\u0338','NotNestedLessLess':'\\u2AA1\\u0338','notni':'\\u220C','notniva':'\\u220C','notnivb':'\\u22FE','notnivc':'\\u22FD','NotPrecedes':'\\u2280','NotPrecedesEqual':'\\u2AAF\\u0338','NotPrecedesSlantEqual':'\\u22E0','NotReverseElement':'\\u220C','NotRightTriangle':'\\u22EB','NotRightTriangleBar':'\\u29D0\\u0338','NotRightTriangleEqual':'\\u22ED','NotSquareSubset':'\\u228F\\u0338','NotSquareSubsetEqual':'\\u22E2','NotSquareSuperset':'\\u2290\\u0338','NotSquareSupersetEqual':'\\u22E3','NotSubset':'\\u2282\\u20D2','NotSubsetEqual':'\\u2288','NotSucceeds':'\\u2281','NotSucceedsEqual':'\\u2AB0\\u0338','NotSucceedsSlantEqual':'\\u22E1','NotSucceedsTilde':'\\u227F\\u0338','NotSuperset':'\\u2283\\u20D2','NotSupersetEqual':'\\u2289','NotTilde':'\\u2241','NotTildeEqual':'\\u2244','NotTildeFullEqual':'\\u2247','NotTildeTilde':'\\u2249','NotVerticalBar':'\\u2224','npar':'\\u2226','nparallel':'\\u2226','nparsl':'\\u2AFD\\u20E5','npart':'\\u2202\\u0338','npolint':'\\u2A14','npr':'\\u2280','nprcue':'\\u22E0','npre':'\\u2AAF\\u0338','nprec':'\\u2280','npreceq':'\\u2AAF\\u0338','nrarr':'\\u219B','nrArr':'\\u21CF','nrarrc':'\\u2933\\u0338','nrarrw':'\\u219D\\u0338','nrightarrow':'\\u219B','nRightarrow':'\\u21CF','nrtri':'\\u22EB','nrtrie':'\\u22ED','nsc':'\\u2281','nsccue':'\\u22E1','nsce':'\\u2AB0\\u0338','nscr':'\\uD835\\uDCC3','Nscr':'\\uD835\\uDCA9','nshortmid':'\\u2224','nshortparallel':'\\u2226','nsim':'\\u2241','nsime':'\\u2244','nsimeq':'\\u2244','nsmid':'\\u2224','nspar':'\\u2226','nsqsube':'\\u22E2','nsqsupe':'\\u22E3','nsub':'\\u2284','nsube':'\\u2288','nsubE':'\\u2AC5\\u0338','nsubset':'\\u2282\\u20D2','nsubseteq':'\\u2288','nsubseteqq':'\\u2AC5\\u0338','nsucc':'\\u2281','nsucceq':'\\u2AB0\\u0338','nsup':'\\u2285','nsupe':'\\u2289','nsupE':'\\u2AC6\\u0338','nsupset':'\\u2283\\u20D2','nsupseteq':'\\u2289','nsupseteqq':'\\u2AC6\\u0338','ntgl':'\\u2279','ntilde':'\\xF1','Ntilde':'\\xD1','ntlg':'\\u2278','ntriangleleft':'\\u22EA','ntrianglelefteq':'\\u22EC','ntriangleright':'\\u22EB','ntrianglerighteq':'\\u22ED','nu':'\\u03BD','Nu':'\\u039D','num':'#','numero':'\\u2116','numsp':'\\u2007','nvap':'\\u224D\\u20D2','nvdash':'\\u22AC','nvDash':'\\u22AD','nVdash':'\\u22AE','nVDash':'\\u22AF','nvge':'\\u2265\\u20D2','nvgt':'>\\u20D2','nvHarr':'\\u2904','nvinfin':'\\u29DE','nvlArr':'\\u2902','nvle':'\\u2264\\u20D2','nvlt':'<\\u20D2','nvltrie':'\\u22B4\\u20D2','nvrArr':'\\u2903','nvrtrie':'\\u22B5\\u20D2','nvsim':'\\u223C\\u20D2','nwarhk':'\\u2923','nwarr':'\\u2196','nwArr':'\\u21D6','nwarrow':'\\u2196','nwnear':'\\u2927','oacute':'\\xF3','Oacute':'\\xD3','oast':'\\u229B','ocir':'\\u229A','ocirc':'\\xF4','Ocirc':'\\xD4','ocy':'\\u043E','Ocy':'\\u041E','odash':'\\u229D','odblac':'\\u0151','Odblac':'\\u0150','odiv':'\\u2A38','odot':'\\u2299','odsold':'\\u29BC','oelig':'\\u0153','OElig':'\\u0152','ofcir':'\\u29BF','ofr':'\\uD835\\uDD2C','Ofr':'\\uD835\\uDD12','ogon':'\\u02DB','ograve':'\\xF2','Ograve':'\\xD2','ogt':'\\u29C1','ohbar':'\\u29B5','ohm':'\\u03A9','oint':'\\u222E','olarr':'\\u21BA','olcir':'\\u29BE','olcross':'\\u29BB','oline':'\\u203E','olt':'\\u29C0','omacr':'\\u014D','Omacr':'\\u014C','omega':'\\u03C9','Omega':'\\u03A9','omicron':'\\u03BF','Omicron':'\\u039F','omid':'\\u29B6','ominus':'\\u2296','oopf':'\\uD835\\uDD60','Oopf':'\\uD835\\uDD46','opar':'\\u29B7','OpenCurlyDoubleQuote':'\\u201C','OpenCurlyQuote':'\\u2018','operp':'\\u29B9','oplus':'\\u2295','or':'\\u2228','Or':'\\u2A54','orarr':'\\u21BB','ord':'\\u2A5D','order':'\\u2134','orderof':'\\u2134','ordf':'\\xAA','ordm':'\\xBA','origof':'\\u22B6','oror':'\\u2A56','orslope':'\\u2A57','orv':'\\u2A5B','oS':'\\u24C8','oscr':'\\u2134','Oscr':'\\uD835\\uDCAA','oslash':'\\xF8','Oslash':'\\xD8','osol':'\\u2298','otilde':'\\xF5','Otilde':'\\xD5','otimes':'\\u2297','Otimes':'\\u2A37','otimesas':'\\u2A36','ouml':'\\xF6','Ouml':'\\xD6','ovbar':'\\u233D','OverBar':'\\u203E','OverBrace':'\\u23DE','OverBracket':'\\u23B4','OverParenthesis':'\\u23DC','par':'\\u2225','para':'\\xB6','parallel':'\\u2225','parsim':'\\u2AF3','parsl':'\\u2AFD','part':'\\u2202','PartialD':'\\u2202','pcy':'\\u043F','Pcy':'\\u041F','percnt':'%','period':'.','permil':'\\u2030','perp':'\\u22A5','pertenk':'\\u2031','pfr':'\\uD835\\uDD2D','Pfr':'\\uD835\\uDD13','phi':'\\u03C6','Phi':'\\u03A6','phiv':'\\u03D5','phmmat':'\\u2133','phone':'\\u260E','pi':'\\u03C0','Pi':'\\u03A0','pitchfork':'\\u22D4','piv':'\\u03D6','planck':'\\u210F','planckh':'\\u210E','plankv':'\\u210F','plus':'+','plusacir':'\\u2A23','plusb':'\\u229E','pluscir':'\\u2A22','plusdo':'\\u2214','plusdu':'\\u2A25','pluse':'\\u2A72','PlusMinus':'\\xB1','plusmn':'\\xB1','plussim':'\\u2A26','plustwo':'\\u2A27','pm':'\\xB1','Poincareplane':'\\u210C','pointint':'\\u2A15','popf':'\\uD835\\uDD61','Popf':'\\u2119','pound':'\\xA3','pr':'\\u227A','Pr':'\\u2ABB','prap':'\\u2AB7','prcue':'\\u227C','pre':'\\u2AAF','prE':'\\u2AB3','prec':'\\u227A','precapprox':'\\u2AB7','preccurlyeq':'\\u227C','Precedes':'\\u227A','PrecedesEqual':'\\u2AAF','PrecedesSlantEqual':'\\u227C','PrecedesTilde':'\\u227E','preceq':'\\u2AAF','precnapprox':'\\u2AB9','precneqq':'\\u2AB5','precnsim':'\\u22E8','precsim':'\\u227E','prime':'\\u2032','Prime':'\\u2033','primes':'\\u2119','prnap':'\\u2AB9','prnE':'\\u2AB5','prnsim':'\\u22E8','prod':'\\u220F','Product':'\\u220F','profalar':'\\u232E','profline':'\\u2312','profsurf':'\\u2313','prop':'\\u221D','Proportion':'\\u2237','Proportional':'\\u221D','propto':'\\u221D','prsim':'\\u227E','prurel':'\\u22B0','pscr':'\\uD835\\uDCC5','Pscr':'\\uD835\\uDCAB','psi':'\\u03C8','Psi':'\\u03A8','puncsp':'\\u2008','qfr':'\\uD835\\uDD2E','Qfr':'\\uD835\\uDD14','qint':'\\u2A0C','qopf':'\\uD835\\uDD62','Qopf':'\\u211A','qprime':'\\u2057','qscr':'\\uD835\\uDCC6','Qscr':'\\uD835\\uDCAC','quaternions':'\\u210D','quatint':'\\u2A16','quest':'?','questeq':'\\u225F','quot':'\"','QUOT':'\"','rAarr':'\\u21DB','race':'\\u223D\\u0331','racute':'\\u0155','Racute':'\\u0154','radic':'\\u221A','raemptyv':'\\u29B3','rang':'\\u27E9','Rang':'\\u27EB','rangd':'\\u2992','range':'\\u29A5','rangle':'\\u27E9','raquo':'\\xBB','rarr':'\\u2192','rArr':'\\u21D2','Rarr':'\\u21A0','rarrap':'\\u2975','rarrb':'\\u21E5','rarrbfs':'\\u2920','rarrc':'\\u2933','rarrfs':'\\u291E','rarrhk':'\\u21AA','rarrlp':'\\u21AC','rarrpl':'\\u2945','rarrsim':'\\u2974','rarrtl':'\\u21A3','Rarrtl':'\\u2916','rarrw':'\\u219D','ratail':'\\u291A','rAtail':'\\u291C','ratio':'\\u2236','rationals':'\\u211A','rbarr':'\\u290D','rBarr':'\\u290F','RBarr':'\\u2910','rbbrk':'\\u2773','rbrace':'}','rbrack':']','rbrke':'\\u298C','rbrksld':'\\u298E','rbrkslu':'\\u2990','rcaron':'\\u0159','Rcaron':'\\u0158','rcedil':'\\u0157','Rcedil':'\\u0156','rceil':'\\u2309','rcub':'}','rcy':'\\u0440','Rcy':'\\u0420','rdca':'\\u2937','rdldhar':'\\u2969','rdquo':'\\u201D','rdquor':'\\u201D','rdsh':'\\u21B3','Re':'\\u211C','real':'\\u211C','realine':'\\u211B','realpart':'\\u211C','reals':'\\u211D','rect':'\\u25AD','reg':'\\xAE','REG':'\\xAE','ReverseElement':'\\u220B','ReverseEquilibrium':'\\u21CB','ReverseUpEquilibrium':'\\u296F','rfisht':'\\u297D','rfloor':'\\u230B','rfr':'\\uD835\\uDD2F','Rfr':'\\u211C','rHar':'\\u2964','rhard':'\\u21C1','rharu':'\\u21C0','rharul':'\\u296C','rho':'\\u03C1','Rho':'\\u03A1','rhov':'\\u03F1','RightAngleBracket':'\\u27E9','rightarrow':'\\u2192','Rightarrow':'\\u21D2','RightArrow':'\\u2192','RightArrowBar':'\\u21E5','RightArrowLeftArrow':'\\u21C4','rightarrowtail':'\\u21A3','RightCeiling':'\\u2309','RightDoubleBracket':'\\u27E7','RightDownTeeVector':'\\u295D','RightDownVector':'\\u21C2','RightDownVectorBar':'\\u2955','RightFloor':'\\u230B','rightharpoondown':'\\u21C1','rightharpoonup':'\\u21C0','rightleftarrows':'\\u21C4','rightleftharpoons':'\\u21CC','rightrightarrows':'\\u21C9','rightsquigarrow':'\\u219D','RightTee':'\\u22A2','RightTeeArrow':'\\u21A6','RightTeeVector':'\\u295B','rightthreetimes':'\\u22CC','RightTriangle':'\\u22B3','RightTriangleBar':'\\u29D0','RightTriangleEqual':'\\u22B5','RightUpDownVector':'\\u294F','RightUpTeeVector':'\\u295C','RightUpVector':'\\u21BE','RightUpVectorBar':'\\u2954','RightVector':'\\u21C0','RightVectorBar':'\\u2953','ring':'\\u02DA','risingdotseq':'\\u2253','rlarr':'\\u21C4','rlhar':'\\u21CC','rlm':'\\u200F','rmoust':'\\u23B1','rmoustache':'\\u23B1','rnmid':'\\u2AEE','roang':'\\u27ED','roarr':'\\u21FE','robrk':'\\u27E7','ropar':'\\u2986','ropf':'\\uD835\\uDD63','Ropf':'\\u211D','roplus':'\\u2A2E','rotimes':'\\u2A35','RoundImplies':'\\u2970','rpar':')','rpargt':'\\u2994','rppolint':'\\u2A12','rrarr':'\\u21C9','Rrightarrow':'\\u21DB','rsaquo':'\\u203A','rscr':'\\uD835\\uDCC7','Rscr':'\\u211B','rsh':'\\u21B1','Rsh':'\\u21B1','rsqb':']','rsquo':'\\u2019','rsquor':'\\u2019','rthree':'\\u22CC','rtimes':'\\u22CA','rtri':'\\u25B9','rtrie':'\\u22B5','rtrif':'\\u25B8','rtriltri':'\\u29CE','RuleDelayed':'\\u29F4','ruluhar':'\\u2968','rx':'\\u211E','sacute':'\\u015B','Sacute':'\\u015A','sbquo':'\\u201A','sc':'\\u227B','Sc':'\\u2ABC','scap':'\\u2AB8','scaron':'\\u0161','Scaron':'\\u0160','sccue':'\\u227D','sce':'\\u2AB0','scE':'\\u2AB4','scedil':'\\u015F','Scedil':'\\u015E','scirc':'\\u015D','Scirc':'\\u015C','scnap':'\\u2ABA','scnE':'\\u2AB6','scnsim':'\\u22E9','scpolint':'\\u2A13','scsim':'\\u227F','scy':'\\u0441','Scy':'\\u0421','sdot':'\\u22C5','sdotb':'\\u22A1','sdote':'\\u2A66','searhk':'\\u2925','searr':'\\u2198','seArr':'\\u21D8','searrow':'\\u2198','sect':'\\xA7','semi':';','seswar':'\\u2929','setminus':'\\u2216','setmn':'\\u2216','sext':'\\u2736','sfr':'\\uD835\\uDD30','Sfr':'\\uD835\\uDD16','sfrown':'\\u2322','sharp':'\\u266F','shchcy':'\\u0449','SHCHcy':'\\u0429','shcy':'\\u0448','SHcy':'\\u0428','ShortDownArrow':'\\u2193','ShortLeftArrow':'\\u2190','shortmid':'\\u2223','shortparallel':'\\u2225','ShortRightArrow':'\\u2192','ShortUpArrow':'\\u2191','shy':'\\xAD','sigma':'\\u03C3','Sigma':'\\u03A3','sigmaf':'\\u03C2','sigmav':'\\u03C2','sim':'\\u223C','simdot':'\\u2A6A','sime':'\\u2243','simeq':'\\u2243','simg':'\\u2A9E','simgE':'\\u2AA0','siml':'\\u2A9D','simlE':'\\u2A9F','simne':'\\u2246','simplus':'\\u2A24','simrarr':'\\u2972','slarr':'\\u2190','SmallCircle':'\\u2218','smallsetminus':'\\u2216','smashp':'\\u2A33','smeparsl':'\\u29E4','smid':'\\u2223','smile':'\\u2323','smt':'\\u2AAA','smte':'\\u2AAC','smtes':'\\u2AAC\\uFE00','softcy':'\\u044C','SOFTcy':'\\u042C','sol':'/','solb':'\\u29C4','solbar':'\\u233F','sopf':'\\uD835\\uDD64','Sopf':'\\uD835\\uDD4A','spades':'\\u2660','spadesuit':'\\u2660','spar':'\\u2225','sqcap':'\\u2293','sqcaps':'\\u2293\\uFE00','sqcup':'\\u2294','sqcups':'\\u2294\\uFE00','Sqrt':'\\u221A','sqsub':'\\u228F','sqsube':'\\u2291','sqsubset':'\\u228F','sqsubseteq':'\\u2291','sqsup':'\\u2290','sqsupe':'\\u2292','sqsupset':'\\u2290','sqsupseteq':'\\u2292','squ':'\\u25A1','square':'\\u25A1','Square':'\\u25A1','SquareIntersection':'\\u2293','SquareSubset':'\\u228F','SquareSubsetEqual':'\\u2291','SquareSuperset':'\\u2290','SquareSupersetEqual':'\\u2292','SquareUnion':'\\u2294','squarf':'\\u25AA','squf':'\\u25AA','srarr':'\\u2192','sscr':'\\uD835\\uDCC8','Sscr':'\\uD835\\uDCAE','ssetmn':'\\u2216','ssmile':'\\u2323','sstarf':'\\u22C6','star':'\\u2606','Star':'\\u22C6','starf':'\\u2605','straightepsilon':'\\u03F5','straightphi':'\\u03D5','strns':'\\xAF','sub':'\\u2282','Sub':'\\u22D0','subdot':'\\u2ABD','sube':'\\u2286','subE':'\\u2AC5','subedot':'\\u2AC3','submult':'\\u2AC1','subne':'\\u228A','subnE':'\\u2ACB','subplus':'\\u2ABF','subrarr':'\\u2979','subset':'\\u2282','Subset':'\\u22D0','subseteq':'\\u2286','subseteqq':'\\u2AC5','SubsetEqual':'\\u2286','subsetneq':'\\u228A','subsetneqq':'\\u2ACB','subsim':'\\u2AC7','subsub':'\\u2AD5','subsup':'\\u2AD3','succ':'\\u227B','succapprox':'\\u2AB8','succcurlyeq':'\\u227D','Succeeds':'\\u227B','SucceedsEqual':'\\u2AB0','SucceedsSlantEqual':'\\u227D','SucceedsTilde':'\\u227F','succeq':'\\u2AB0','succnapprox':'\\u2ABA','succneqq':'\\u2AB6','succnsim':'\\u22E9','succsim':'\\u227F','SuchThat':'\\u220B','sum':'\\u2211','Sum':'\\u2211','sung':'\\u266A','sup':'\\u2283','Sup':'\\u22D1','sup1':'\\xB9','sup2':'\\xB2','sup3':'\\xB3','supdot':'\\u2ABE','supdsub':'\\u2AD8','supe':'\\u2287','supE':'\\u2AC6','supedot':'\\u2AC4','Superset':'\\u2283','SupersetEqual':'\\u2287','suphsol':'\\u27C9','suphsub':'\\u2AD7','suplarr':'\\u297B','supmult':'\\u2AC2','supne':'\\u228B','supnE':'\\u2ACC','supplus':'\\u2AC0','supset':'\\u2283','Supset':'\\u22D1','supseteq':'\\u2287','supseteqq':'\\u2AC6','supsetneq':'\\u228B','supsetneqq':'\\u2ACC','supsim':'\\u2AC8','supsub':'\\u2AD4','supsup':'\\u2AD6','swarhk':'\\u2926','swarr':'\\u2199','swArr':'\\u21D9','swarrow':'\\u2199','swnwar':'\\u292A','szlig':'\\xDF','Tab':'\\t','target':'\\u2316','tau':'\\u03C4','Tau':'\\u03A4','tbrk':'\\u23B4','tcaron':'\\u0165','Tcaron':'\\u0164','tcedil':'\\u0163','Tcedil':'\\u0162','tcy':'\\u0442','Tcy':'\\u0422','tdot':'\\u20DB','telrec':'\\u2315','tfr':'\\uD835\\uDD31','Tfr':'\\uD835\\uDD17','there4':'\\u2234','therefore':'\\u2234','Therefore':'\\u2234','theta':'\\u03B8','Theta':'\\u0398','thetasym':'\\u03D1','thetav':'\\u03D1','thickapprox':'\\u2248','thicksim':'\\u223C','ThickSpace':'\\u205F\\u200A','thinsp':'\\u2009','ThinSpace':'\\u2009','thkap':'\\u2248','thksim':'\\u223C','thorn':'\\xFE','THORN':'\\xDE','tilde':'\\u02DC','Tilde':'\\u223C','TildeEqual':'\\u2243','TildeFullEqual':'\\u2245','TildeTilde':'\\u2248','times':'\\xD7','timesb':'\\u22A0','timesbar':'\\u2A31','timesd':'\\u2A30','tint':'\\u222D','toea':'\\u2928','top':'\\u22A4','topbot':'\\u2336','topcir':'\\u2AF1','topf':'\\uD835\\uDD65','Topf':'\\uD835\\uDD4B','topfork':'\\u2ADA','tosa':'\\u2929','tprime':'\\u2034','trade':'\\u2122','TRADE':'\\u2122','triangle':'\\u25B5','triangledown':'\\u25BF','triangleleft':'\\u25C3','trianglelefteq':'\\u22B4','triangleq':'\\u225C','triangleright':'\\u25B9','trianglerighteq':'\\u22B5','tridot':'\\u25EC','trie':'\\u225C','triminus':'\\u2A3A','TripleDot':'\\u20DB','triplus':'\\u2A39','trisb':'\\u29CD','tritime':'\\u2A3B','trpezium':'\\u23E2','tscr':'\\uD835\\uDCC9','Tscr':'\\uD835\\uDCAF','tscy':'\\u0446','TScy':'\\u0426','tshcy':'\\u045B','TSHcy':'\\u040B','tstrok':'\\u0167','Tstrok':'\\u0166','twixt':'\\u226C','twoheadleftarrow':'\\u219E','twoheadrightarrow':'\\u21A0','uacute':'\\xFA','Uacute':'\\xDA','uarr':'\\u2191','uArr':'\\u21D1','Uarr':'\\u219F','Uarrocir':'\\u2949','ubrcy':'\\u045E','Ubrcy':'\\u040E','ubreve':'\\u016D','Ubreve':'\\u016C','ucirc':'\\xFB','Ucirc':'\\xDB','ucy':'\\u0443','Ucy':'\\u0423','udarr':'\\u21C5','udblac':'\\u0171','Udblac':'\\u0170','udhar':'\\u296E','ufisht':'\\u297E','ufr':'\\uD835\\uDD32','Ufr':'\\uD835\\uDD18','ugrave':'\\xF9','Ugrave':'\\xD9','uHar':'\\u2963','uharl':'\\u21BF','uharr':'\\u21BE','uhblk':'\\u2580','ulcorn':'\\u231C','ulcorner':'\\u231C','ulcrop':'\\u230F','ultri':'\\u25F8','umacr':'\\u016B','Umacr':'\\u016A','uml':'\\xA8','UnderBar':'_','UnderBrace':'\\u23DF','UnderBracket':'\\u23B5','UnderParenthesis':'\\u23DD','Union':'\\u22C3','UnionPlus':'\\u228E','uogon':'\\u0173','Uogon':'\\u0172','uopf':'\\uD835\\uDD66','Uopf':'\\uD835\\uDD4C','uparrow':'\\u2191','Uparrow':'\\u21D1','UpArrow':'\\u2191','UpArrowBar':'\\u2912','UpArrowDownArrow':'\\u21C5','updownarrow':'\\u2195','Updownarrow':'\\u21D5','UpDownArrow':'\\u2195','UpEquilibrium':'\\u296E','upharpoonleft':'\\u21BF','upharpoonright':'\\u21BE','uplus':'\\u228E','UpperLeftArrow':'\\u2196','UpperRightArrow':'\\u2197','upsi':'\\u03C5','Upsi':'\\u03D2','upsih':'\\u03D2','upsilon':'\\u03C5','Upsilon':'\\u03A5','UpTee':'\\u22A5','UpTeeArrow':'\\u21A5','upuparrows':'\\u21C8','urcorn':'\\u231D','urcorner':'\\u231D','urcrop':'\\u230E','uring':'\\u016F','Uring':'\\u016E','urtri':'\\u25F9','uscr':'\\uD835\\uDCCA','Uscr':'\\uD835\\uDCB0','utdot':'\\u22F0','utilde':'\\u0169','Utilde':'\\u0168','utri':'\\u25B5','utrif':'\\u25B4','uuarr':'\\u21C8','uuml':'\\xFC','Uuml':'\\xDC','uwangle':'\\u29A7','vangrt':'\\u299C','varepsilon':'\\u03F5','varkappa':'\\u03F0','varnothing':'\\u2205','varphi':'\\u03D5','varpi':'\\u03D6','varpropto':'\\u221D','varr':'\\u2195','vArr':'\\u21D5','varrho':'\\u03F1','varsigma':'\\u03C2','varsubsetneq':'\\u228A\\uFE00','varsubsetneqq':'\\u2ACB\\uFE00','varsupsetneq':'\\u228B\\uFE00','varsupsetneqq':'\\u2ACC\\uFE00','vartheta':'\\u03D1','vartriangleleft':'\\u22B2','vartriangleright':'\\u22B3','vBar':'\\u2AE8','Vbar':'\\u2AEB','vBarv':'\\u2AE9','vcy':'\\u0432','Vcy':'\\u0412','vdash':'\\u22A2','vDash':'\\u22A8','Vdash':'\\u22A9','VDash':'\\u22AB','Vdashl':'\\u2AE6','vee':'\\u2228','Vee':'\\u22C1','veebar':'\\u22BB','veeeq':'\\u225A','vellip':'\\u22EE','verbar':'|','Verbar':'\\u2016','vert':'|','Vert':'\\u2016','VerticalBar':'\\u2223','VerticalLine':'|','VerticalSeparator':'\\u2758','VerticalTilde':'\\u2240','VeryThinSpace':'\\u200A','vfr':'\\uD835\\uDD33','Vfr':'\\uD835\\uDD19','vltri':'\\u22B2','vnsub':'\\u2282\\u20D2','vnsup':'\\u2283\\u20D2','vopf':'\\uD835\\uDD67','Vopf':'\\uD835\\uDD4D','vprop':'\\u221D','vrtri':'\\u22B3','vscr':'\\uD835\\uDCCB','Vscr':'\\uD835\\uDCB1','vsubne':'\\u228A\\uFE00','vsubnE':'\\u2ACB\\uFE00','vsupne':'\\u228B\\uFE00','vsupnE':'\\u2ACC\\uFE00','Vvdash':'\\u22AA','vzigzag':'\\u299A','wcirc':'\\u0175','Wcirc':'\\u0174','wedbar':'\\u2A5F','wedge':'\\u2227','Wedge':'\\u22C0','wedgeq':'\\u2259','weierp':'\\u2118','wfr':'\\uD835\\uDD34','Wfr':'\\uD835\\uDD1A','wopf':'\\uD835\\uDD68','Wopf':'\\uD835\\uDD4E','wp':'\\u2118','wr':'\\u2240','wreath':'\\u2240','wscr':'\\uD835\\uDCCC','Wscr':'\\uD835\\uDCB2','xcap':'\\u22C2','xcirc':'\\u25EF','xcup':'\\u22C3','xdtri':'\\u25BD','xfr':'\\uD835\\uDD35','Xfr':'\\uD835\\uDD1B','xharr':'\\u27F7','xhArr':'\\u27FA','xi':'\\u03BE','Xi':'\\u039E','xlarr':'\\u27F5','xlArr':'\\u27F8','xmap':'\\u27FC','xnis':'\\u22FB','xodot':'\\u2A00','xopf':'\\uD835\\uDD69','Xopf':'\\uD835\\uDD4F','xoplus':'\\u2A01','xotime':'\\u2A02','xrarr':'\\u27F6','xrArr':'\\u27F9','xscr':'\\uD835\\uDCCD','Xscr':'\\uD835\\uDCB3','xsqcup':'\\u2A06','xuplus':'\\u2A04','xutri':'\\u25B3','xvee':'\\u22C1','xwedge':'\\u22C0','yacute':'\\xFD','Yacute':'\\xDD','yacy':'\\u044F','YAcy':'\\u042F','ycirc':'\\u0177','Ycirc':'\\u0176','ycy':'\\u044B','Ycy':'\\u042B','yen':'\\xA5','yfr':'\\uD835\\uDD36','Yfr':'\\uD835\\uDD1C','yicy':'\\u0457','YIcy':'\\u0407','yopf':'\\uD835\\uDD6A','Yopf':'\\uD835\\uDD50','yscr':'\\uD835\\uDCCE','Yscr':'\\uD835\\uDCB4','yucy':'\\u044E','YUcy':'\\u042E','yuml':'\\xFF','Yuml':'\\u0178','zacute':'\\u017A','Zacute':'\\u0179','zcaron':'\\u017E','Zcaron':'\\u017D','zcy':'\\u0437','Zcy':'\\u0417','zdot':'\\u017C','Zdot':'\\u017B','zeetrf':'\\u2128','ZeroWidthSpace':'\\u200B','zeta':'\\u03B6','Zeta':'\\u0396','zfr':'\\uD835\\uDD37','Zfr':'\\u2128','zhcy':'\\u0436','ZHcy':'\\u0416','zigrarr':'\\u21DD','zopf':'\\uD835\\uDD6B','Zopf':'\\u2124','zscr':'\\uD835\\uDCCF','Zscr':'\\uD835\\uDCB5','zwj':'\\u200D','zwnj':'\\u200C'};\n\tvar decodeMapLegacy = {'aacute':'\\xE1','Aacute':'\\xC1','acirc':'\\xE2','Acirc':'\\xC2','acute':'\\xB4','aelig':'\\xE6','AElig':'\\xC6','agrave':'\\xE0','Agrave':'\\xC0','amp':'&','AMP':'&','aring':'\\xE5','Aring':'\\xC5','atilde':'\\xE3','Atilde':'\\xC3','auml':'\\xE4','Auml':'\\xC4','brvbar':'\\xA6','ccedil':'\\xE7','Ccedil':'\\xC7','cedil':'\\xB8','cent':'\\xA2','copy':'\\xA9','COPY':'\\xA9','curren':'\\xA4','deg':'\\xB0','divide':'\\xF7','eacute':'\\xE9','Eacute':'\\xC9','ecirc':'\\xEA','Ecirc':'\\xCA','egrave':'\\xE8','Egrave':'\\xC8','eth':'\\xF0','ETH':'\\xD0','euml':'\\xEB','Euml':'\\xCB','frac12':'\\xBD','frac14':'\\xBC','frac34':'\\xBE','gt':'>','GT':'>','iacute':'\\xED','Iacute':'\\xCD','icirc':'\\xEE','Icirc':'\\xCE','iexcl':'\\xA1','igrave':'\\xEC','Igrave':'\\xCC','iquest':'\\xBF','iuml':'\\xEF','Iuml':'\\xCF','laquo':'\\xAB','lt':'<','LT':'<','macr':'\\xAF','micro':'\\xB5','middot':'\\xB7','nbsp':'\\xA0','not':'\\xAC','ntilde':'\\xF1','Ntilde':'\\xD1','oacute':'\\xF3','Oacute':'\\xD3','ocirc':'\\xF4','Ocirc':'\\xD4','ograve':'\\xF2','Ograve':'\\xD2','ordf':'\\xAA','ordm':'\\xBA','oslash':'\\xF8','Oslash':'\\xD8','otilde':'\\xF5','Otilde':'\\xD5','ouml':'\\xF6','Ouml':'\\xD6','para':'\\xB6','plusmn':'\\xB1','pound':'\\xA3','quot':'\"','QUOT':'\"','raquo':'\\xBB','reg':'\\xAE','REG':'\\xAE','sect':'\\xA7','shy':'\\xAD','sup1':'\\xB9','sup2':'\\xB2','sup3':'\\xB3','szlig':'\\xDF','thorn':'\\xFE','THORN':'\\xDE','times':'\\xD7','uacute':'\\xFA','Uacute':'\\xDA','ucirc':'\\xFB','Ucirc':'\\xDB','ugrave':'\\xF9','Ugrave':'\\xD9','uml':'\\xA8','uuml':'\\xFC','Uuml':'\\xDC','yacute':'\\xFD','Yacute':'\\xDD','yen':'\\xA5','yuml':'\\xFF'};\n\tvar decodeMapNumeric = {'0':'\\uFFFD','128':'\\u20AC','130':'\\u201A','131':'\\u0192','132':'\\u201E','133':'\\u2026','134':'\\u2020','135':'\\u2021','136':'\\u02C6','137':'\\u2030','138':'\\u0160','139':'\\u2039','140':'\\u0152','142':'\\u017D','145':'\\u2018','146':'\\u2019','147':'\\u201C','148':'\\u201D','149':'\\u2022','150':'\\u2013','151':'\\u2014','152':'\\u02DC','153':'\\u2122','154':'\\u0161','155':'\\u203A','156':'\\u0153','158':'\\u017E','159':'\\u0178'};\n\tvar invalidReferenceCodePoints = [1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,64976,64977,64978,64979,64980,64981,64982,64983,64984,64985,64986,64987,64988,64989,64990,64991,64992,64993,64994,64995,64996,64997,64998,64999,65000,65001,65002,65003,65004,65005,65006,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111];\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar stringFromCharCode = String.fromCharCode;\n\n\tvar object = {};\n\tvar hasOwnProperty = object.hasOwnProperty;\n\tvar has = function(object, propertyName) {\n\t\treturn hasOwnProperty.call(object, propertyName);\n\t};\n\n\tvar contains = function(array, value) {\n\t\tvar index = -1;\n\t\tvar length = array.length;\n\t\twhile (++index < length) {\n\t\t\tif (array[index] == value) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t};\n\n\tvar merge = function(options, defaults) {\n\t\tif (!options) {\n\t\t\treturn defaults;\n\t\t}\n\t\tvar result = {};\n\t\tvar key;\n\t\tfor (key in defaults) {\n\t\t\t// A `hasOwnProperty` check is not needed here, since only recognized\n\t\t\t// option names are used anyway. Any others are ignored.\n\t\t\tresult[key] = has(options, key) ? options[key] : defaults[key];\n\t\t}\n\t\treturn result;\n\t};\n\n\t// Modified version of `ucs2encode`; see https://mths.be/punycode.\n\tvar codePointToSymbol = function(codePoint, strict) {\n\t\tvar output = '';\n\t\tif ((codePoint >= 0xD800 && codePoint <= 0xDFFF) || codePoint > 0x10FFFF) {\n\t\t\t// See issue #4:\n\t\t\t// “Otherwise, if the number is in the range 0xD800 to 0xDFFF or is\n\t\t\t// greater than 0x10FFFF, then this is a parse error. Return a U+FFFD\n\t\t\t// REPLACEMENT CHARACTER.”\n\t\t\tif (strict) {\n\t\t\t\tparseError('character reference outside the permissible Unicode range');\n\t\t\t}\n\t\t\treturn '\\uFFFD';\n\t\t}\n\t\tif (has(decodeMapNumeric, codePoint)) {\n\t\t\tif (strict) {\n\t\t\t\tparseError('disallowed character reference');\n\t\t\t}\n\t\t\treturn decodeMapNumeric[codePoint];\n\t\t}\n\t\tif (strict && contains(invalidReferenceCodePoints, codePoint)) {\n\t\t\tparseError('disallowed character reference');\n\t\t}\n\t\tif (codePoint > 0xFFFF) {\n\t\t\tcodePoint -= 0x10000;\n\t\t\toutput += stringFromCharCode(codePoint >>> 10 & 0x3FF | 0xD800);\n\t\t\tcodePoint = 0xDC00 | codePoint & 0x3FF;\n\t\t}\n\t\toutput += stringFromCharCode(codePoint);\n\t\treturn output;\n\t};\n\n\tvar hexEscape = function(codePoint) {\n\t\treturn '&#x' + codePoint.toString(16).toUpperCase() + ';';\n\t};\n\n\tvar decEscape = function(codePoint) {\n\t\treturn '&#' + codePoint + ';';\n\t};\n\n\tvar parseError = function(message) {\n\t\tthrow Error('Parse error: ' + message);\n\t};\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar encode = function(string, options) {\n\t\toptions = merge(options, encode.options);\n\t\tvar strict = options.strict;\n\t\tif (strict && regexInvalidRawCodePoint.test(string)) {\n\t\t\tparseError('forbidden code point');\n\t\t}\n\t\tvar encodeEverything = options.encodeEverything;\n\t\tvar useNamedReferences = options.useNamedReferences;\n\t\tvar allowUnsafeSymbols = options.allowUnsafeSymbols;\n\t\tvar escapeCodePoint = options.decimal ? decEscape : hexEscape;\n\n\t\tvar escapeBmpSymbol = function(symbol) {\n\t\t\treturn escapeCodePoint(symbol.charCodeAt(0));\n\t\t};\n\n\t\tif (encodeEverything) {\n\t\t\t// Encode ASCII symbols.\n\t\t\tstring = string.replace(regexAsciiWhitelist, function(symbol) {\n\t\t\t\t// Use named references if requested & possible.\n\t\t\t\tif (useNamedReferences && has(encodeMap, symbol)) {\n\t\t\t\t\treturn '&' + encodeMap[symbol] + ';';\n\t\t\t\t}\n\t\t\t\treturn escapeBmpSymbol(symbol);\n\t\t\t});\n\t\t\t// Shorten a few escapes that represent two symbols, of which at least one\n\t\t\t// is within the ASCII range.\n\t\t\tif (useNamedReferences) {\n\t\t\t\tstring = string\n\t\t\t\t\t.replace(/&gt;\\u20D2/g, '&nvgt;')\n\t\t\t\t\t.replace(/&lt;\\u20D2/g, '&nvlt;')\n\t\t\t\t\t.replace(/&#x66;&#x6A;/g, '&fjlig;');\n\t\t\t}\n\t\t\t// Encode non-ASCII symbols.\n\t\t\tif (useNamedReferences) {\n\t\t\t\t// Encode non-ASCII symbols that can be replaced with a named reference.\n\t\t\t\tstring = string.replace(regexEncodeNonAscii, function(string) {\n\t\t\t\t\t// Note: there is no need to check `has(encodeMap, string)` here.\n\t\t\t\t\treturn '&' + encodeMap[string] + ';';\n\t\t\t\t});\n\t\t\t}\n\t\t\t// Note: any remaining non-ASCII symbols are handled outside of the `if`.\n\t\t} else if (useNamedReferences) {\n\t\t\t// Apply named character references.\n\t\t\t// Encode `<>\"'&` using named character references.\n\t\t\tif (!allowUnsafeSymbols) {\n\t\t\t\tstring = string.replace(regexEscape, function(string) {\n\t\t\t\t\treturn '&' + encodeMap[string] + ';'; // no need to check `has()` here\n\t\t\t\t});\n\t\t\t}\n\t\t\t// Shorten escapes that represent two symbols, of which at least one is\n\t\t\t// `<>\"'&`.\n\t\t\tstring = string\n\t\t\t\t.replace(/&gt;\\u20D2/g, '&nvgt;')\n\t\t\t\t.replace(/&lt;\\u20D2/g, '&nvlt;');\n\t\t\t// Encode non-ASCII symbols that can be replaced with a named reference.\n\t\t\tstring = string.replace(regexEncodeNonAscii, function(string) {\n\t\t\t\t// Note: there is no need to check `has(encodeMap, string)` here.\n\t\t\t\treturn '&' + encodeMap[string] + ';';\n\t\t\t});\n\t\t} else if (!allowUnsafeSymbols) {\n\t\t\t// Encode `<>\"'&` using hexadecimal escapes, now that they’re not handled\n\t\t\t// using named character references.\n\t\t\tstring = string.replace(regexEscape, escapeBmpSymbol);\n\t\t}\n\t\treturn string\n\t\t\t// Encode astral symbols.\n\t\t\t.replace(regexAstralSymbols, function($0) {\n\t\t\t\t// https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n\t\t\t\tvar high = $0.charCodeAt(0);\n\t\t\t\tvar low = $0.charCodeAt(1);\n\t\t\t\tvar codePoint = (high - 0xD800) * 0x400 + low - 0xDC00 + 0x10000;\n\t\t\t\treturn escapeCodePoint(codePoint);\n\t\t\t})\n\t\t\t// Encode any remaining BMP symbols that are not printable ASCII symbols\n\t\t\t// using a hexadecimal escape.\n\t\t\t.replace(regexBmpWhitelist, escapeBmpSymbol);\n\t};\n\t// Expose default options (so they can be overridden globally).\n\tencode.options = {\n\t\t'allowUnsafeSymbols': false,\n\t\t'encodeEverything': false,\n\t\t'strict': false,\n\t\t'useNamedReferences': false,\n\t\t'decimal' : false\n\t};\n\n\tvar decode = function(html, options) {\n\t\toptions = merge(options, decode.options);\n\t\tvar strict = options.strict;\n\t\tif (strict && regexInvalidEntity.test(html)) {\n\t\t\tparseError('malformed character reference');\n\t\t}\n\t\treturn html.replace(regexDecode, function($0, $1, $2, $3, $4, $5, $6, $7, $8) {\n\t\t\tvar codePoint;\n\t\t\tvar semicolon;\n\t\t\tvar decDigits;\n\t\t\tvar hexDigits;\n\t\t\tvar reference;\n\t\t\tvar next;\n\n\t\t\tif ($1) {\n\t\t\t\treference = $1;\n\t\t\t\t// Note: there is no need to check `has(decodeMap, reference)`.\n\t\t\t\treturn decodeMap[reference];\n\t\t\t}\n\n\t\t\tif ($2) {\n\t\t\t\t// Decode named character references without trailing `;`, e.g. `&amp`.\n\t\t\t\t// This is only a parse error if it gets converted to `&`, or if it is\n\t\t\t\t// followed by `=` in an attribute context.\n\t\t\t\treference = $2;\n\t\t\t\tnext = $3;\n\t\t\t\tif (next && options.isAttributeValue) {\n\t\t\t\t\tif (strict && next == '=') {\n\t\t\t\t\t\tparseError('`&` did not start a character reference');\n\t\t\t\t\t}\n\t\t\t\t\treturn $0;\n\t\t\t\t} else {\n\t\t\t\t\tif (strict) {\n\t\t\t\t\t\tparseError(\n\t\t\t\t\t\t\t'named character reference was not terminated by a semicolon'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\t// Note: there is no need to check `has(decodeMapLegacy, reference)`.\n\t\t\t\t\treturn decodeMapLegacy[reference] + (next || '');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ($4) {\n\t\t\t\t// Decode decimal escapes, e.g. `&#119558;`.\n\t\t\t\tdecDigits = $4;\n\t\t\t\tsemicolon = $5;\n\t\t\t\tif (strict && !semicolon) {\n\t\t\t\t\tparseError('character reference was not terminated by a semicolon');\n\t\t\t\t}\n\t\t\t\tcodePoint = parseInt(decDigits, 10);\n\t\t\t\treturn codePointToSymbol(codePoint, strict);\n\t\t\t}\n\n\t\t\tif ($6) {\n\t\t\t\t// Decode hexadecimal escapes, e.g. `&#x1D306;`.\n\t\t\t\thexDigits = $6;\n\t\t\t\tsemicolon = $7;\n\t\t\t\tif (strict && !semicolon) {\n\t\t\t\t\tparseError('character reference was not terminated by a semicolon');\n\t\t\t\t}\n\t\t\t\tcodePoint = parseInt(hexDigits, 16);\n\t\t\t\treturn codePointToSymbol(codePoint, strict);\n\t\t\t}\n\n\t\t\t// If we’re still here, `if ($7)` is implied; it’s an ambiguous\n\t\t\t// ampersand for sure. https://mths.be/notes/ambiguous-ampersands\n\t\t\tif (strict) {\n\t\t\t\tparseError(\n\t\t\t\t\t'named character reference was not terminated by a semicolon'\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn $0;\n\t\t});\n\t};\n\t// Expose default options (so they can be overridden globally).\n\tdecode.options = {\n\t\t'isAttributeValue': false,\n\t\t'strict': false\n\t};\n\n\tvar escape = function(string) {\n\t\treturn string.replace(regexEscape, function($0) {\n\t\t\t// Note: there is no need to check `has(escapeMap, $0)` here.\n\t\t\treturn escapeMap[$0];\n\t\t});\n\t};\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar he = {\n\t\t'version': '1.2.0',\n\t\t'encode': encode,\n\t\t'decode': decode,\n\t\t'escape': escape,\n\t\t'unescape': decode\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn he;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = he;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (var key in he) {\n\t\t\t\thas(he, key) && (freeExports[key] = he[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.he = he;\n\t}\n\n}(this));\n","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _regeneratorDefine(e, r, n, t) {\n var i = Object.defineProperty;\n try {\n i({}, \"\", {});\n } catch (e) {\n i = 0;\n }\n module.exports = _regeneratorDefine = function regeneratorDefine(e, r, n, t) {\n if (r) i ? i(e, r, {\n value: n,\n enumerable: !t,\n configurable: !t,\n writable: !t\n }) : e[r] = n;else {\n var o = function o(r, n) {\n _regeneratorDefine(e, r, function (e) {\n return this._invoke(r, n, e);\n });\n };\n o(\"next\", 0), o(\"throw\", 1), o(\"return\", 2);\n }\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _regeneratorDefine(e, r, n, t);\n}\nmodule.exports = _regeneratorDefine, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\n * Copyright (C) 2019-2024 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport './history-counters.css';\n\nexport async function drawHistoryCounterGraph(container, historyData) {\n\n const d3 = await import(/* webpackChunkName: \"d3\" */ 'utils/d3');\n\n // remove previously created histogram and tooltip if any\n d3.select(container).select('svg').remove();\n d3.select(`${container}-tooltip`).remove();\n\n // histogram size and margins\n let width = 400;\n let height = 300;\n const margin = {top: 20, right: 50, bottom: 70, left: 30};\n\n // create responsive svg\n const svg = d3.select(container)\n .attr('style',\n `padding-bottom: ${Math.ceil(height * 100 / width)}%`)\n .append('svg')\n .attr('viewBox', `0 0 ${width} ${height}`);\n\n // create tooltip div\n const tooltip = d3.select('body')\n .append('div')\n .attr('class', 'd3-tooltip')\n .attr('id', `${container}-tooltip`)\n .style('opacity', 0);\n\n // update width and height without margins\n width = width - margin.left - margin.right;\n height = height - margin.top - margin.bottom;\n\n // Make sure data points are sorted, by x coordinate then y coordinate.\n historyData.sort(function(a, b) {\n return a[0] - b[0] !== 0 ? a[0] - b[0] : a[1] - b[1];\n });\n\n const firstPoint = historyData[0];\n const lastPoint = historyData[historyData.length - 1];\n\n // create main svg group element\n const g = svg.append('g')\n .attr('transform', `translate(${margin.left}, ${margin.top})`);\n\n // create x scale\n const xScale = d3.scaleTime()\n .rangeRound([0, width])\n .domain([firstPoint[0], lastPoint[0]])\n .nice();\n\n // create y scale\n const yScale = d3.scaleLinear()\n .range([height, 0])\n .domain([firstPoint[1], lastPoint[1]])\n .nice();\n\n // create line generator\n const line = d3.line()\n .x(d => xScale(d[0]))\n .y(d => yScale(d[1]));\n\n // utility functions\n const dateFormatter = d3.timeFormat('%d %b %Y');\n const valueFormatter = (v) => {\n return d3.format('.3s')(v).replace(/G/, 'B');\n };\n const bisectDate = d3.bisector(d => d[0]).left;\n\n // add x axis\n g.append('g')\n .attr('class', 'axis')\n .attr('transform', `translate(0, ${height})`)\n .call(\n d3.axisBottom(xScale)\n .ticks(10)\n .tickFormat(dateFormatter)\n )\n .selectAll('text')\n .style('text-anchor', 'end')\n .attr('dx', '-.8em')\n .attr('dy', '.15em')\n .attr('transform', 'rotate(-65)');\n\n // add y axis\n g.append('g')\n .attr('class', 'axis')\n .attr('transform', `translate(${width}, 0)`)\n .call(\n d3.axisRight(yScale)\n .ticks(10)\n .tickFormat(valueFormatter)\n );\n\n // add data plot\n g.append('path')\n .datum(historyData)\n .attr('class', 'swh-history-counter-line')\n .attr('d', line);\n\n // add tooltip\n const focus = g.append('g')\n .attr('class', 'swh-history-counter-focus')\n .style('display', 'none');\n\n focus.append('circle')\n .attr('r', 8);\n\n g.append('rect')\n .attr('class', 'swh-history-counter-overlay')\n .attr('width', width)\n .attr('height', height)\n .on('mouseover', function(event) {\n focus.style('display', null);\n updateTooltip(event);\n tooltip.transition()\n .duration(200)\n .style('opacity', 1);\n })\n .on('mouseout', () => {\n focus.style('display', 'none');\n tooltip.transition()\n .duration(200)\n .style('opacity', 0);\n })\n .on('mousemove', function(event) {\n updateTooltip(event);\n });\n\n function updateTooltip(event) {\n const x0 = xScale.invert(d3.pointer(event)[0]);\n let i = bisectDate(historyData, x0, 1);\n if (i >= historyData.length) {\n i = historyData.length - 1;\n }\n const d0 = historyData[i - 1];\n const d1 = historyData[i];\n const d = x0 - d0[0] > d1[0] - x0 ? d1 : d0;\n focus.attr('transform', `translate(${xScale(d[0])}, ${yScale(d[1])})`);\n const tooltipText = `${dateFormatter(d[0])} ${valueFormatter(d[1])}`;\n tooltip.html(tooltipText)\n .style('left', event.pageX + 15 + 'px')\n .style('top', event.pageY + 'px');\n }\n}\n","\"use strict\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/**\n * iterateObject\n * Iterates an object. Note the object field order may differ.\n *\n * @name iterateObject\n * @function\n * @param {Object} obj The input object.\n * @param {Function} fn A function that will be called with the current value, field name and provided object.\n * @return {Function} The `iterateObject` function.\n */\nfunction iterateObject(obj, fn) {\n var i = 0,\n keys = [];\n\n if (Array.isArray(obj)) {\n for (; i < obj.length; ++i) {\n if (fn(obj[i], i, obj) === false) {\n break;\n }\n }\n } else if ((typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj)) === \"object\" && obj !== null) {\n keys = Object.keys(obj);\n for (; i < keys.length; ++i) {\n if (fn(obj[keys[i]], keys[i], obj) === false) {\n break;\n }\n }\n }\n}\n\nmodule.exports = iterateObject;","\"use strict\";\nvar __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\nvar PacketKind;\n(function (PacketKind) {\n PacketKind[PacketKind[\"EOS\"] = 0] = \"EOS\";\n PacketKind[PacketKind[\"Text\"] = 1] = \"Text\";\n PacketKind[PacketKind[\"Incomplete\"] = 2] = \"Incomplete\";\n PacketKind[PacketKind[\"ESC\"] = 3] = \"ESC\";\n PacketKind[PacketKind[\"Unknown\"] = 4] = \"Unknown\";\n PacketKind[PacketKind[\"SGR\"] = 5] = \"SGR\";\n PacketKind[PacketKind[\"OSCURL\"] = 6] = \"OSCURL\";\n})(PacketKind || (PacketKind = {}));\nexport class AnsiUp {\n constructor() {\n this.VERSION = \"6.0.6\";\n this.setup_palettes();\n this._use_classes = false;\n this.bold = false;\n this.faint = false;\n this.italic = false;\n this.underline = false;\n this.fg = this.bg = null;\n this._buffer = '';\n this._url_allowlist = { 'http': 1, 'https': 1 };\n this._escape_html = true;\n this.boldStyle = 'font-weight:bold';\n this.faintStyle = 'opacity:0.7';\n this.italicStyle = 'font-style:italic';\n this.underlineStyle = 'text-decoration:underline';\n }\n set use_classes(arg) {\n this._use_classes = arg;\n }\n get use_classes() {\n return this._use_classes;\n }\n set url_allowlist(arg) {\n this._url_allowlist = arg;\n }\n get url_allowlist() {\n return this._url_allowlist;\n }\n set escape_html(arg) {\n this._escape_html = arg;\n }\n get escape_html() {\n return this._escape_html;\n }\n set boldStyle(arg) { this._boldStyle = arg; }\n get boldStyle() { return this._boldStyle; }\n set faintStyle(arg) { this._faintStyle = arg; }\n get faintStyle() { return this._faintStyle; }\n set italicStyle(arg) { this._italicStyle = arg; }\n get italicStyle() { return this._italicStyle; }\n set underlineStyle(arg) { this._underlineStyle = arg; }\n get underlineStyle() { return this._underlineStyle; }\n setup_palettes() {\n this.ansi_colors =\n [\n [\n { rgb: [0, 0, 0], class_name: \"ansi-black\" },\n { rgb: [187, 0, 0], class_name: \"ansi-red\" },\n { rgb: [0, 187, 0], class_name: \"ansi-green\" },\n { rgb: [187, 187, 0], class_name: \"ansi-yellow\" },\n { rgb: [0, 0, 187], class_name: \"ansi-blue\" },\n { rgb: [187, 0, 187], class_name: \"ansi-magenta\" },\n { rgb: [0, 187, 187], class_name: \"ansi-cyan\" },\n { rgb: [255, 255, 255], class_name: \"ansi-white\" }\n ],\n [\n { rgb: [85, 85, 85], class_name: \"ansi-bright-black\" },\n { rgb: [255, 85, 85], class_name: \"ansi-bright-red\" },\n { rgb: [0, 255, 0], class_name: \"ansi-bright-green\" },\n { rgb: [255, 255, 85], class_name: \"ansi-bright-yellow\" },\n { rgb: [85, 85, 255], class_name: \"ansi-bright-blue\" },\n { rgb: [255, 85, 255], class_name: \"ansi-bright-magenta\" },\n { rgb: [85, 255, 255], class_name: \"ansi-bright-cyan\" },\n { rgb: [255, 255, 255], class_name: \"ansi-bright-white\" }\n ]\n ];\n this.palette_256 = [];\n this.ansi_colors.forEach(palette => {\n palette.forEach(rec => {\n this.palette_256.push(rec);\n });\n });\n let levels = [0, 95, 135, 175, 215, 255];\n for (let r = 0; r < 6; ++r) {\n for (let g = 0; g < 6; ++g) {\n for (let b = 0; b < 6; ++b) {\n let col = { rgb: [levels[r], levels[g], levels[b]], class_name: 'truecolor' };\n this.palette_256.push(col);\n }\n }\n }\n let grey_level = 8;\n for (let i = 0; i < 24; ++i, grey_level += 10) {\n let gry = { rgb: [grey_level, grey_level, grey_level], class_name: 'truecolor' };\n this.palette_256.push(gry);\n }\n }\n escape_txt_for_html(txt) {\n if (!this._escape_html)\n return txt;\n return txt.replace(/[&<>\"']/gm, (str) => {\n if (str === \"&\")\n return \"&amp;\";\n if (str === \"<\")\n return \"&lt;\";\n if (str === \">\")\n return \"&gt;\";\n if (str === \"\\\"\")\n return \"&quot;\";\n if (str === \"'\")\n return \"&#x27;\";\n });\n }\n append_buffer(txt) {\n var str = this._buffer + txt;\n this._buffer = str;\n }\n get_next_packet() {\n var pkt = {\n kind: PacketKind.EOS,\n text: '',\n url: ''\n };\n var len = this._buffer.length;\n if (len == 0)\n return pkt;\n var pos = this._buffer.indexOf(\"\\x1B\");\n if (pos == -1) {\n pkt.kind = PacketKind.Text;\n pkt.text = this._buffer;\n this._buffer = '';\n return pkt;\n }\n if (pos > 0) {\n pkt.kind = PacketKind.Text;\n pkt.text = this._buffer.slice(0, pos);\n this._buffer = this._buffer.slice(pos);\n return pkt;\n }\n if (pos == 0) {\n if (len < 3) {\n pkt.kind = PacketKind.Incomplete;\n return pkt;\n }\n var next_char = this._buffer.charAt(1);\n if ((next_char != '[') && (next_char != ']') && (next_char != '(')) {\n pkt.kind = PacketKind.ESC;\n pkt.text = this._buffer.slice(0, 1);\n this._buffer = this._buffer.slice(1);\n return pkt;\n }\n if (next_char == '[') {\n if (!this._csi_regex) {\n this._csi_regex = rgx(templateObject_1 || (templateObject_1 = __makeTemplateObject([\"\\n ^ # beginning of line\\n #\\n # First attempt\\n (?: # legal sequence\\n \\u001B[ # CSI\\n ([<-?]?) # private-mode char\\n ([d;]*) # any digits or semicolons\\n ([ -/]? # an intermediate modifier\\n [@-~]) # the command\\n )\\n | # alternate (second attempt)\\n (?: # illegal sequence\\n \\u001B[ # CSI\\n [ -~]* # anything legal\\n ([\\0-\\u001F:]) # anything illegal\\n )\\n \"], [\"\\n ^ # beginning of line\\n #\\n # First attempt\\n (?: # legal sequence\\n \\\\x1b\\\\[ # CSI\\n ([\\\\x3c-\\\\x3f]?) # private-mode char\\n ([\\\\d;]*) # any digits or semicolons\\n ([\\\\x20-\\\\x2f]? # an intermediate modifier\\n [\\\\x40-\\\\x7e]) # the command\\n )\\n | # alternate (second attempt)\\n (?: # illegal sequence\\n \\\\x1b\\\\[ # CSI\\n [\\\\x20-\\\\x7e]* # anything legal\\n ([\\\\x00-\\\\x1f:]) # anything illegal\\n )\\n \"])));\n }\n let match = this._buffer.match(this._csi_regex);\n if (match === null) {\n pkt.kind = PacketKind.Incomplete;\n return pkt;\n }\n if (match[4]) {\n pkt.kind = PacketKind.ESC;\n pkt.text = this._buffer.slice(0, 1);\n this._buffer = this._buffer.slice(1);\n return pkt;\n }\n if ((match[1] != '') || (match[3] != 'm'))\n pkt.kind = PacketKind.Unknown;\n else\n pkt.kind = PacketKind.SGR;\n pkt.text = match[2];\n var rpos = match[0].length;\n this._buffer = this._buffer.slice(rpos);\n return pkt;\n }\n else if (next_char == ']') {\n if (len < 4) {\n pkt.kind = PacketKind.Incomplete;\n return pkt;\n }\n if ((this._buffer.charAt(2) != '8')\n || (this._buffer.charAt(3) != ';')) {\n pkt.kind = PacketKind.ESC;\n pkt.text = this._buffer.slice(0, 1);\n this._buffer = this._buffer.slice(1);\n return pkt;\n }\n if (!this._osc_st) {\n this._osc_st = rgxG(templateObject_2 || (templateObject_2 = __makeTemplateObject([\"\\n (?: # legal sequence\\n (\\u001B\\\\) # ESC | # alternate\\n (\\u0007) # BEL (what xterm did)\\n )\\n | # alternate (second attempt)\\n ( # illegal sequence\\n [\\0-\\u0006] # anything illegal\\n | # alternate\\n [\\b-\\u001A] # anything illegal\\n | # alternate\\n [\\u001C-\\u001F] # anything illegal\\n )\\n \"], [\"\\n (?: # legal sequence\\n (\\\\x1b\\\\\\\\) # ESC \\\\\\n | # alternate\\n (\\\\x07) # BEL (what xterm did)\\n )\\n | # alternate (second attempt)\\n ( # illegal sequence\\n [\\\\x00-\\\\x06] # anything illegal\\n | # alternate\\n [\\\\x08-\\\\x1a] # anything illegal\\n | # alternate\\n [\\\\x1c-\\\\x1f] # anything illegal\\n )\\n \"])));\n }\n this._osc_st.lastIndex = 0;\n {\n let match = this._osc_st.exec(this._buffer);\n if (match === null) {\n pkt.kind = PacketKind.Incomplete;\n return pkt;\n }\n if (match[3]) {\n pkt.kind = PacketKind.ESC;\n pkt.text = this._buffer.slice(0, 1);\n this._buffer = this._buffer.slice(1);\n return pkt;\n }\n }\n {\n let match = this._osc_st.exec(this._buffer);\n if (match === null) {\n pkt.kind = PacketKind.Incomplete;\n return pkt;\n }\n if (match[3]) {\n pkt.kind = PacketKind.ESC;\n pkt.text = this._buffer.slice(0, 1);\n this._buffer = this._buffer.slice(1);\n return pkt;\n }\n }\n if (!this._osc_regex) {\n this._osc_regex = rgx(templateObject_3 || (templateObject_3 = __makeTemplateObject([\"\\n ^ # beginning of line\\n #\\n \\u001B]8; # OSC Hyperlink\\n [ -:<-~]* # params (excluding ;)\\n ; # end of params\\n ([!-~]{0,512}) # URL capture\\n (?: # ST\\n (?:\\u001B\\\\) # ESC | # alternate\\n (?:\\u0007) # BEL (what xterm did)\\n )\\n ([ -~]+) # TEXT capture\\n \\u001B]8;; # OSC Hyperlink End\\n (?: # ST\\n (?:\\u001B\\\\) # ESC | # alternate\\n (?:\\u0007) # BEL (what xterm did)\\n )\\n \"], [\"\\n ^ # beginning of line\\n #\\n \\\\x1b\\\\]8; # OSC Hyperlink\\n [\\\\x20-\\\\x3a\\\\x3c-\\\\x7e]* # params (excluding ;)\\n ; # end of params\\n ([\\\\x21-\\\\x7e]{0,512}) # URL capture\\n (?: # ST\\n (?:\\\\x1b\\\\\\\\) # ESC \\\\\\n | # alternate\\n (?:\\\\x07) # BEL (what xterm did)\\n )\\n ([\\\\x20-\\\\x7e]+) # TEXT capture\\n \\\\x1b\\\\]8;; # OSC Hyperlink End\\n (?: # ST\\n (?:\\\\x1b\\\\\\\\) # ESC \\\\\\n | # alternate\\n (?:\\\\x07) # BEL (what xterm did)\\n )\\n \"])));\n }\n let match = this._buffer.match(this._osc_regex);\n if (match === null) {\n pkt.kind = PacketKind.ESC;\n pkt.text = this._buffer.slice(0, 1);\n this._buffer = this._buffer.slice(1);\n return pkt;\n }\n pkt.kind = PacketKind.OSCURL;\n pkt.url = match[1];\n pkt.text = match[2];\n var rpos = match[0].length;\n this._buffer = this._buffer.slice(rpos);\n return pkt;\n }\n else if (next_char == '(') {\n pkt.kind = PacketKind.Unknown;\n this._buffer = this._buffer.slice(3);\n return pkt;\n }\n }\n }\n ansi_to_html(txt) {\n this.append_buffer(txt);\n var blocks = [];\n while (true) {\n var packet = this.get_next_packet();\n if ((packet.kind == PacketKind.EOS)\n || (packet.kind == PacketKind.Incomplete))\n break;\n if ((packet.kind == PacketKind.ESC)\n || (packet.kind == PacketKind.Unknown))\n continue;\n if (packet.kind == PacketKind.Text)\n blocks.push(this.transform_to_html(this.with_state(packet)));\n else if (packet.kind == PacketKind.SGR)\n this.process_ansi(packet);\n else if (packet.kind == PacketKind.OSCURL)\n blocks.push(this.process_hyperlink(packet));\n }\n return blocks.join(\"\");\n }\n with_state(pkt) {\n return { bold: this.bold, faint: this.faint, italic: this.italic, underline: this.underline, fg: this.fg, bg: this.bg, text: pkt.text };\n }\n process_ansi(pkt) {\n let sgr_cmds = pkt.text.split(';');\n while (sgr_cmds.length > 0) {\n let sgr_cmd_str = sgr_cmds.shift();\n let num = parseInt(sgr_cmd_str, 10);\n if (isNaN(num) || num === 0) {\n this.fg = null;\n this.bg = null;\n this.bold = false;\n this.faint = false;\n this.italic = false;\n this.underline = false;\n }\n else if (num === 1) {\n this.bold = true;\n }\n else if (num === 2) {\n this.faint = true;\n }\n else if (num === 3) {\n this.italic = true;\n }\n else if (num === 4) {\n this.underline = true;\n }\n else if (num === 21) {\n this.bold = false;\n }\n else if (num === 22) {\n this.faint = false;\n this.bold = false;\n }\n else if (num === 23) {\n this.italic = false;\n }\n else if (num === 24) {\n this.underline = false;\n }\n else if (num === 39) {\n this.fg = null;\n }\n else if (num === 49) {\n this.bg = null;\n }\n else if ((num >= 30) && (num < 38)) {\n this.fg = this.ansi_colors[0][(num - 30)];\n }\n else if ((num >= 40) && (num < 48)) {\n this.bg = this.ansi_colors[0][(num - 40)];\n }\n else if ((num >= 90) && (num < 98)) {\n this.fg = this.ansi_colors[1][(num - 90)];\n }\n else if ((num >= 100) && (num < 108)) {\n this.bg = this.ansi_colors[1][(num - 100)];\n }\n else if (num === 38 || num === 48) {\n if (sgr_cmds.length > 0) {\n let is_foreground = (num === 38);\n let mode_cmd = sgr_cmds.shift();\n if (mode_cmd === '5' && sgr_cmds.length > 0) {\n let palette_index = parseInt(sgr_cmds.shift(), 10);\n if (palette_index >= 0 && palette_index <= 255) {\n if (is_foreground)\n this.fg = this.palette_256[palette_index];\n else\n this.bg = this.palette_256[palette_index];\n }\n }\n if (mode_cmd === '2' && sgr_cmds.length > 2) {\n let r = parseInt(sgr_cmds.shift(), 10);\n let g = parseInt(sgr_cmds.shift(), 10);\n let b = parseInt(sgr_cmds.shift(), 10);\n if ((r >= 0 && r <= 255) && (g >= 0 && g <= 255) && (b >= 0 && b <= 255)) {\n let c = { rgb: [r, g, b], class_name: 'truecolor' };\n if (is_foreground)\n this.fg = c;\n else\n this.bg = c;\n }\n }\n }\n }\n }\n }\n transform_to_html(fragment) {\n let txt = fragment.text;\n if (txt.length === 0)\n return txt;\n txt = this.escape_txt_for_html(txt);\n if (!fragment.bold && !fragment.italic && !fragment.faint && !fragment.underline && fragment.fg === null && fragment.bg === null)\n return txt;\n let styles = [];\n let classes = [];\n let fg = fragment.fg;\n let bg = fragment.bg;\n if (fragment.bold)\n styles.push(this._boldStyle);\n if (fragment.faint)\n styles.push(this._faintStyle);\n if (fragment.italic)\n styles.push(this._italicStyle);\n if (fragment.underline)\n styles.push(this._underlineStyle);\n if (!this._use_classes) {\n if (fg)\n styles.push(`color:rgb(${fg.rgb.join(',')})`);\n if (bg)\n styles.push(`background-color:rgb(${bg.rgb})`);\n }\n else {\n if (fg) {\n if (fg.class_name !== 'truecolor') {\n classes.push(`${fg.class_name}-fg`);\n }\n else {\n styles.push(`color:rgb(${fg.rgb.join(',')})`);\n }\n }\n if (bg) {\n if (bg.class_name !== 'truecolor') {\n classes.push(`${bg.class_name}-bg`);\n }\n else {\n styles.push(`background-color:rgb(${bg.rgb.join(',')})`);\n }\n }\n }\n let class_string = '';\n let style_string = '';\n if (classes.length)\n class_string = ` class=\"${classes.join(' ')}\"`;\n if (styles.length)\n style_string = ` style=\"${styles.join(';')}\"`;\n return `<span${style_string}${class_string}>${txt}</span>`;\n }\n ;\n process_hyperlink(pkt) {\n let parts = pkt.url.split(':');\n if (parts.length < 1)\n return '';\n if (!this._url_allowlist[parts[0]])\n return '';\n let result = `<a href=\"${this.escape_txt_for_html(pkt.url)}\">${this.escape_txt_for_html(pkt.text)}</a>`;\n return result;\n }\n}\nfunction rgx(tmplObj, ...subst) {\n let regexText = tmplObj.raw[0];\n let wsrgx = /^\\s+|\\s+\\n|\\s*#[\\s\\S]*?\\n|\\n/gm;\n let txt2 = regexText.replace(wsrgx, '');\n return new RegExp(txt2);\n}\nfunction rgxG(tmplObj, ...subst) {\n let regexText = tmplObj.raw[0];\n let wsrgx = /^\\s+|\\s+\\n|\\s*#[\\s\\S]*?\\n|\\n/gm;\n let txt2 = regexText.replace(wsrgx, '');\n return new RegExp(txt2, 'g');\n}\nvar templateObject_1, templateObject_2, templateObject_3;\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\nmodule.exports = function(src) {\n\tfunction log(error) {\n\t\t(typeof console !== \"undefined\")\n\t\t&& (console.error || console.log)(\"[Script Loader]\", error);\n\t}\n\n\t// Check for IE =< 8\n\tfunction isIE() {\n\t\treturn typeof attachEvent !== \"undefined\" && typeof addEventListener === \"undefined\";\n\t}\n\n\ttry {\n\t\tif (typeof execScript !== \"undefined\" && isIE()) {\n\t\t\texecScript(src);\n\t\t} else if (typeof eval !== \"undefined\") {\n\t\t\teval.call(null, src);\n\t\t} else {\n\t\t\tlog(\"EvalError: No eval function available\");\n\t\t}\n\t} catch (error) {\n\t\tlog(error);\n\t}\n}\n","/**\n * Copyright (C) 2020 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport './status-widget.css';\n\nconst statusCodeColor = {\n '100': 'green', // Operational\n '200': 'blue', // Scheduled Maintenance\n '300': 'yellow', // Degraded Performance\n '400': 'yellow', // Partial Service Disruption\n '500': 'red', // Service Disruption\n '600': 'red' // Security Event\n};\n\nexport function initStatusWidget(statusDataURL) {\n $('.swh-current-status-indicator').ready(async() => {\n let maxStatusCode = '';\n let maxStatusDescription = '';\n let sc = '';\n let sd = '';\n try {\n const response = await fetch(statusDataURL);\n const data = await response.json();\n\n for (const s of data.result.status) {\n sc = s.status_code;\n sd = s.status;\n if (maxStatusCode < sc) {\n maxStatusCode = sc;\n maxStatusDescription = sd;\n }\n }\n if (maxStatusCode === '') {\n $('.swh-current-status').remove();\n return;\n }\n $('.swh-current-status-indicator').removeClass('green');\n $('.swh-current-status-indicator').addClass(statusCodeColor[maxStatusCode]);\n $('#swh-current-status-description').text(maxStatusDescription);\n\n } catch (e) {\n console.log(e);\n $('.swh-current-status').remove();\n }\n });\n}\n","/**\n * Copyright (C) 2019-2021 The Software Heritage developers\n * See the AUTHORS file at the top-level directory of this distribution\n * License: GNU Affero General Public License version 3, or any later version\n * See top-level LICENSE file for more information\n */\n\nimport DOMPurify from 'dompurify';\n\n// we register a hook when performing XSS filtering in order to\n// possibly replace a relative image url with the one for getting\n// the image bytes from the archive content\nDOMPurify.addHook('uponSanitizeAttribute', function(node, data) {\n if (node.nodeName === 'IMG' && data.attrName === 'src') {\n\n // image url does not need any processing here\n if (data.attrValue.startsWith('data:image') ||\n data.attrValue.startsWith('http:') ||\n data.attrValue.startsWith('https:')) {\n return;\n }\n\n // get currently browsed swh object metadata\n const swhObjectMetadata = swh.webapp.getBrowsedSwhObjectMetadata();\n\n // the swh object is provided without any useful context\n // to get the image checksums from the web api\n if (!swhObjectMetadata.hasOwnProperty('directory')) {\n return;\n }\n\n let directory;\n // get directory from which to check path existence\n if (swhObjectMetadata.object_type === 'directory') {\n // case when a README is rendered in a directory view\n directory = swhObjectMetadata.object_id;\n } else {\n // otherwise we browse a content, get its directory\n directory = swhObjectMetadata.directory;\n }\n\n // used internal endpoint as image url to possibly get the image data\n // from the archive content\n let directoryUrl = Urls.browse_directory_resolve_content_path(directory);\n let path = data.attrValue;\n // strip any query parameters appended to path\n let processedPath = path;\n if (!processedPath.startsWith('/')) {\n processedPath = '/' + processedPath;\n }\n const url = new URL(window.location.origin + processedPath);\n if (url.search) {\n path = path.replace(url.search, '');\n }\n // update img src attribute with archive URL\n directoryUrl += `?path=${encodeURIComponent(path)}`;\n data.attrValue = directoryUrl;\n }\n});\n\nexport function filterXSS(html) {\n return DOMPurify.sanitize(html);\n}\n","/*! @license DOMPurify 3.2.6 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.6/LICENSE */\n\nconst {\n entries,\n setPrototypeOf,\n isFrozen,\n getPrototypeOf,\n getOwnPropertyDescriptor\n} = Object;\nlet {\n freeze,\n seal,\n create\n} = Object; // eslint-disable-line import/no-mutable-exports\nlet {\n apply,\n construct\n} = typeof Reflect !== 'undefined' && Reflect;\nif (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n}\nif (!seal) {\n seal = function seal(x) {\n return x;\n };\n}\nif (!apply) {\n apply = function apply(fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n}\nif (!construct) {\n construct = function construct(Func, args) {\n return new Func(...args);\n };\n}\nconst arrayForEach = unapply(Array.prototype.forEach);\nconst arrayLastIndexOf = unapply(Array.prototype.lastIndexOf);\nconst arrayPop = unapply(Array.prototype.pop);\nconst arrayPush = unapply(Array.prototype.push);\nconst arraySplice = unapply(Array.prototype.splice);\nconst stringToLowerCase = unapply(String.prototype.toLowerCase);\nconst stringToString = unapply(String.prototype.toString);\nconst stringMatch = unapply(String.prototype.match);\nconst stringReplace = unapply(String.prototype.replace);\nconst stringIndexOf = unapply(String.prototype.indexOf);\nconst stringTrim = unapply(String.prototype.trim);\nconst objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);\nconst regExpTest = unapply(RegExp.prototype.test);\nconst typeErrorCreate = unconstruct(TypeError);\n/**\n * Creates a new function that calls the given function with a specified thisArg and arguments.\n *\n * @param func - The function to be wrapped and called.\n * @returns A new function that calls the given function with a specified thisArg and arguments.\n */\nfunction unapply(func) {\n return function (thisArg) {\n if (thisArg instanceof RegExp) {\n thisArg.lastIndex = 0;\n }\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n return apply(func, thisArg, args);\n };\n}\n/**\n * Creates a new function that constructs an instance of the given constructor function with the provided arguments.\n *\n * @param func - The constructor function to be wrapped and called.\n * @returns A new function that constructs an instance of the given constructor function with the provided arguments.\n */\nfunction unconstruct(func) {\n return function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return construct(func, args);\n };\n}\n/**\n * Add properties to a lookup table\n *\n * @param set - The set to which elements will be added.\n * @param array - The array containing elements to be added to the set.\n * @param transformCaseFunc - An optional function to transform the case of each element before adding to the set.\n * @returns The modified set with added elements.\n */\nfunction addToSet(set, array) {\n let transformCaseFunc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : stringToLowerCase;\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n let l = array.length;\n while (l--) {\n let element = array[l];\n if (typeof element === 'string') {\n const lcElement = transformCaseFunc(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n element = lcElement;\n }\n }\n set[element] = true;\n }\n return set;\n}\n/**\n * Clean up an array to harden against CSPP\n *\n * @param array - The array to be cleaned.\n * @returns The cleaned version of the array\n */\nfunction cleanArray(array) {\n for (let index = 0; index < array.length; index++) {\n const isPropertyExist = objectHasOwnProperty(array, index);\n if (!isPropertyExist) {\n array[index] = null;\n }\n }\n return array;\n}\n/**\n * Shallow clone an object\n *\n * @param object - The object to be cloned.\n * @returns A new object that copies the original.\n */\nfunction clone(object) {\n const newObject = create(null);\n for (const [property, value] of entries(object)) {\n const isPropertyExist = objectHasOwnProperty(object, property);\n if (isPropertyExist) {\n if (Array.isArray(value)) {\n newObject[property] = cleanArray(value);\n } else if (value && typeof value === 'object' && value.constructor === Object) {\n newObject[property] = clone(value);\n } else {\n newObject[property] = value;\n }\n }\n }\n return newObject;\n}\n/**\n * This method automatically checks if the prop is function or getter and behaves accordingly.\n *\n * @param object - The object to look up the getter function in its prototype chain.\n * @param prop - The property name for which to find the getter function.\n * @returns The getter function found in the prototype chain or a fallback function.\n */\nfunction lookupGetter(object, prop) {\n while (object !== null) {\n const desc = getOwnPropertyDescriptor(object, prop);\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n object = getPrototypeOf(object);\n }\n function fallbackValue() {\n return null;\n }\n return fallbackValue;\n}\n\nconst html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\nconst svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\nconst svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n// List of SVG elements that are disallowed by default.\n// We still need to know them so that we can do namespace\n// checks properly in case one wants to add them to\n// allow-list.\nconst svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\nconst mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover', 'mprescripts']);\n// Similarly to SVG, we want to know all MathML elements,\n// even those that we disallow by default.\nconst mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\nconst text = freeze(['#text']);\n\nconst html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'popover', 'popovertarget', 'popovertargetaction', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'wrap', 'xmlns', 'slot']);\nconst svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'amplitude', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'exponent', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'intercept', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'slope', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'tablevalues', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\nconst mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\nconst xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n// eslint-disable-next-line unicorn/better-regex\nconst MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\nconst ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\nconst TMPLIT_EXPR = seal(/\\$\\{[\\w\\W]*/gm); // eslint-disable-line unicorn/better-regex\nconst DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]+$/); // eslint-disable-line no-useless-escape\nconst ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\nconst IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n);\nconst IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\nconst ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n);\nconst DOCTYPE_NAME = seal(/^html$/i);\nconst CUSTOM_ELEMENT = seal(/^[a-z][.\\w]*(-[.\\w]+)+$/i);\n\nvar EXPRESSIONS = /*#__PURE__*/Object.freeze({\n __proto__: null,\n ARIA_ATTR: ARIA_ATTR,\n ATTR_WHITESPACE: ATTR_WHITESPACE,\n CUSTOM_ELEMENT: CUSTOM_ELEMENT,\n DATA_ATTR: DATA_ATTR,\n DOCTYPE_NAME: DOCTYPE_NAME,\n ERB_EXPR: ERB_EXPR,\n IS_ALLOWED_URI: IS_ALLOWED_URI,\n IS_SCRIPT_OR_DATA: IS_SCRIPT_OR_DATA,\n MUSTACHE_EXPR: MUSTACHE_EXPR,\n TMPLIT_EXPR: TMPLIT_EXPR\n});\n\n/* eslint-disable @typescript-eslint/indent */\n// https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\nconst NODE_TYPE = {\n element: 1,\n attribute: 2,\n text: 3,\n cdataSection: 4,\n entityReference: 5,\n // Deprecated\n entityNode: 6,\n // Deprecated\n progressingInstruction: 7,\n comment: 8,\n document: 9,\n documentType: 10,\n documentFragment: 11,\n notation: 12 // Deprecated\n};\nconst getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n};\n/**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param trustedTypes The policy factory.\n * @param purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix).\n * @return The policy created (or null, if Trusted Types\n * are not supported or creating the policy failed).\n */\nconst _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, purifyHostElement) {\n if (typeof trustedTypes !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n }\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n let suffix = null;\n const ATTR_NAME = 'data-tt-policy-suffix';\n if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) {\n suffix = purifyHostElement.getAttribute(ATTR_NAME);\n }\n const policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML(html) {\n return html;\n },\n createScriptURL(scriptUrl) {\n return scriptUrl;\n }\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n};\nconst _createHooksMap = function _createHooksMap() {\n return {\n afterSanitizeAttributes: [],\n afterSanitizeElements: [],\n afterSanitizeShadowDOM: [],\n beforeSanitizeAttributes: [],\n beforeSanitizeElements: [],\n beforeSanitizeShadowDOM: [],\n uponSanitizeAttribute: [],\n uponSanitizeElement: [],\n uponSanitizeShadowNode: []\n };\n};\nfunction createDOMPurify() {\n let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n const DOMPurify = root => createDOMPurify(root);\n DOMPurify.version = '3.2.6';\n DOMPurify.removed = [];\n if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document || !window.Element) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n return DOMPurify;\n }\n let {\n document\n } = window;\n const originalDocument = document;\n const currentScript = originalDocument.currentScript;\n const {\n DocumentFragment,\n HTMLTemplateElement,\n Node,\n Element,\n NodeFilter,\n NamedNodeMap = window.NamedNodeMap || window.MozNamedAttrMap,\n HTMLFormElement,\n DOMParser,\n trustedTypes\n } = window;\n const ElementPrototype = Element.prototype;\n const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n const remove = lookupGetter(ElementPrototype, 'remove');\n const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n const getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTemplateElement === 'function') {\n const template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n let trustedTypesPolicy;\n let emptyHTML = '';\n const {\n implementation,\n createNodeIterator,\n createDocumentFragment,\n getElementsByTagName\n } = document;\n const {\n importNode\n } = originalDocument;\n let hooks = _createHooksMap();\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported = typeof entries === 'function' && typeof getParentNode === 'function' && implementation && implementation.createHTMLDocument !== undefined;\n const {\n MUSTACHE_EXPR,\n ERB_EXPR,\n TMPLIT_EXPR,\n DATA_ATTR,\n ARIA_ATTR,\n IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE,\n CUSTOM_ELEMENT\n } = EXPRESSIONS;\n let {\n IS_ALLOWED_URI: IS_ALLOWED_URI$1\n } = EXPRESSIONS;\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n /* allowed element names */\n let ALLOWED_TAGS = null;\n const DEFAULT_ALLOWED_TAGS = addToSet({}, [...html$1, ...svg$1, ...svgFilters, ...mathMl$1, ...text]);\n /* Allowed attribute names */\n let ALLOWED_ATTR = null;\n const DEFAULT_ALLOWED_ATTR = addToSet({}, [...html, ...svg, ...mathMl, ...xml]);\n /*\n * Configure how DOMPurify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n let CUSTOM_ELEMENT_HANDLING = Object.seal(create(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false\n }\n }));\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n let FORBID_TAGS = null;\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n let FORBID_ATTR = null;\n /* Decide if ARIA attributes are okay */\n let ALLOW_ARIA_ATTR = true;\n /* Decide if custom data attributes are okay */\n let ALLOW_DATA_ATTR = true;\n /* Decide if unknown protocols are okay */\n let ALLOW_UNKNOWN_PROTOCOLS = false;\n /* Decide if self-closing tags in attributes are allowed.\n * Usually removed due to a mXSS issue in jQuery 3.0 */\n let ALLOW_SELF_CLOSE_IN_ATTR = true;\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n let SAFE_FOR_TEMPLATES = false;\n /* Output should be safe even for XML used within HTML and alike.\n * This means, DOMPurify removes comments when containing risky content.\n */\n let SAFE_FOR_XML = true;\n /* Decide if document with <html>... should be returned */\n let WHOLE_DOCUMENT = false;\n /* Track whether config is already set on this instance of DOMPurify. */\n let SET_CONFIG = false;\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n let FORCE_BODY = false;\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n let RETURN_DOM = false;\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n let RETURN_DOM_FRAGMENT = false;\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n let RETURN_TRUSTED_TYPE = false;\n /* Output should be free from DOM clobbering attacks?\n * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n */\n let SANITIZE_DOM = true;\n /* Achieve full DOM Clobbering protection by isolating the namespace of named\n * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n *\n * HTML/DOM spec rules that enable DOM Clobbering:\n * - Named Access on Window (§7.3.3)\n * - DOM Tree Accessors (§3.1.5)\n * - Form Element Parent-Child Relations (§4.10.3)\n * - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n * - HTMLCollection (§4.2.10.2)\n *\n * Namespace isolation is implemented by prefixing `id` and `name` attributes\n * with a constant string, i.e., `user-content-`\n */\n let SANITIZE_NAMED_PROPS = false;\n const SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n /* Keep element content when removing element? */\n let KEEP_CONTENT = true;\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n let IN_PLACE = false;\n /* Allow usage of profiles like html, svg and mathMl */\n let USE_PROFILES = {};\n /* Tags to ignore content of when KEEP_CONTENT is true */\n let FORBID_CONTENTS = null;\n const DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n /* Tags that are safe for data: URIs */\n let DATA_URI_TAGS = null;\n const DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n /* Attributes safe for values like \"javascript:\" */\n let URI_SAFE_ATTRIBUTES = null;\n const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n let NAMESPACE = HTML_NAMESPACE;\n let IS_EMPTY_INPUT = false;\n /* Allowed XHTML+XML namespaces */\n let ALLOWED_NAMESPACES = null;\n const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);\n let MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n let HTML_INTEGRATION_POINTS = addToSet({}, ['annotation-xml']);\n // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erroneously deleted from\n // HTML namespace.\n const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n /* Parsing of strict XHTML documents */\n let PARSER_MEDIA_TYPE = null;\n const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n let transformCaseFunc = null;\n /* Keep a reference to config to pass to hooks */\n let CONFIG = null;\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n const formElement = document.createElement('form');\n const isRegexOrFunction = function isRegexOrFunction(testValue) {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n /**\n * _parseConfig\n *\n * @param cfg optional config literal\n */\n // eslint-disable-next-line complexity\n const _parseConfig = function _parseConfig() {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n /* Shield configuration object from tampering */\n if (!cfg || typeof cfg !== 'object') {\n cfg = {};\n }\n /* Shield configuration object from prototype pollution */\n cfg = clone(cfg);\n PARSER_MEDIA_TYPE =\n // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? DEFAULT_PARSER_MEDIA_TYPE : cfg.PARSER_MEDIA_TYPE;\n // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? stringToString : stringToLowerCase;\n /* Set configuration parameters */\n ALLOWED_TAGS = objectHasOwnProperty(cfg, 'ALLOWED_TAGS') ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = objectHasOwnProperty(cfg, 'ALLOWED_ATTR') ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;\n ALLOWED_NAMESPACES = objectHasOwnProperty(cfg, 'ALLOWED_NAMESPACES') ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;\n URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, 'ADD_URI_SAFE_ATTR') ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR, transformCaseFunc) : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = objectHasOwnProperty(cfg, 'ADD_DATA_URI_TAGS') ? addToSet(clone(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS, transformCaseFunc) : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = objectHasOwnProperty(cfg, 'FORBID_CONTENTS') ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = objectHasOwnProperty(cfg, 'FORBID_TAGS') ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : clone({});\n FORBID_ATTR = objectHasOwnProperty(cfg, 'FORBID_ATTR') ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : clone({});\n USE_PROFILES = objectHasOwnProperty(cfg, 'USE_PROFILES') ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n SAFE_FOR_XML = cfg.SAFE_FOR_XML !== false; // Default true\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n MATHML_TEXT_INTEGRATION_POINTS = cfg.MATHML_TEXT_INTEGRATION_POINTS || MATHML_TEXT_INTEGRATION_POINTS;\n HTML_INTEGRATION_POINTS = cfg.HTML_INTEGRATION_POINTS || HTML_INTEGRATION_POINTS;\n CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n }\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, text);\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html$1);\n addToSet(ALLOWED_ATTR, html);\n }\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg$1);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl$1);\n addToSet(ALLOWED_ATTR, mathMl);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n }\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n }\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n }\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n }\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n if (cfg.TRUSTED_TYPES_POLICY) {\n if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.');\n }\n if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.');\n }\n // Overwrite existing TrustedTypes policy.\n trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;\n // Sign local variables required by `sanitize`.\n emptyHTML = trustedTypesPolicy.createHTML('');\n } else {\n // Uninitialized policy, attempt to initialize the internal dompurify policy.\n if (trustedTypesPolicy === undefined) {\n trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);\n }\n // If creating the internal policy succeeded sign internal variables.\n if (trustedTypesPolicy !== null && typeof emptyHTML === 'string') {\n emptyHTML = trustedTypesPolicy.createHTML('');\n }\n }\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n CONFIG = cfg;\n };\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n const ALL_SVG_TAGS = addToSet({}, [...svg$1, ...svgFilters, ...svgDisallowed]);\n const ALL_MATHML_TAGS = addToSet({}, [...mathMl$1, ...mathMlDisallowed]);\n /**\n * @param element a DOM element whose namespace is being checked\n * @returns Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n const _checkValidNamespace = function _checkValidNamespace(element) {\n let parent = getParentNode(element);\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: NAMESPACE,\n tagName: 'template'\n };\n }\n const tagName = stringToLowerCase(element.tagName);\n const parentTagName = stringToLowerCase(parent.tagName);\n if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n return false;\n }\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via <svg>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n }\n // The only way to switch from MathML to SVG is via`\n // svg if parent is either <annotation-xml> or MathML\n // text integration points.\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n }\n // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via <math>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n }\n // The only way to switch from SVG to MathML is via\n // <math> and HTML integration points\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n }\n // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);\n }\n // For XHTML and XML documents that support custom namespaces\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && ALLOWED_NAMESPACES[element.namespaceURI]) {\n return true;\n }\n // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n // Return false just in case.\n return false;\n };\n /**\n * _forceRemove\n *\n * @param node a DOM node\n */\n const _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, {\n element: node\n });\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n getParentNode(node).removeChild(node);\n } catch (_) {\n remove(node);\n }\n };\n /**\n * _removeAttribute\n *\n * @param name an Attribute name\n * @param element a DOM node\n */\n const _removeAttribute = function _removeAttribute(name, element) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: element.getAttributeNode(name),\n from: element\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: element\n });\n }\n element.removeAttribute(name);\n // We void attribute values for unremovable \"is\" attributes\n if (name === 'is') {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(element);\n } catch (_) {}\n } else {\n try {\n element.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n /**\n * _initDocument\n *\n * @param dirty - a string of dirty markup\n * @return a DOM, filled with the dirty markup\n */\n const _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n let doc = null;\n let leadingWhitespace = null;\n if (FORCE_BODY) {\n dirty = '<remove></remove>' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n const matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && NAMESPACE === HTML_NAMESPACE) {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty = '<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>' + dirty + '</body></html>';\n }\n const dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n /* Use createHTMLDocument in case DOMParser is not available */\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload;\n } catch (_) {\n // Syntax error if dirtyPayload is invalid xml\n }\n }\n const body = doc.body || doc.documentElement;\n if (dirty && leadingWhitespace) {\n body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n }\n /* Work on whole document or just its body */\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n }\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n /**\n * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.\n *\n * @param root The root element or node to start traversing on.\n * @return The created NodeIterator\n */\n const _createNodeIterator = function _createNodeIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root,\n // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION, null);\n };\n /**\n * _isClobbered\n *\n * @param element element to check for clobbering attacks\n * @return true if clobbered, false if safe\n */\n const _isClobbered = function _isClobbered(element) {\n return element instanceof HTMLFormElement && (typeof element.nodeName !== 'string' || typeof element.textContent !== 'string' || typeof element.removeChild !== 'function' || !(element.attributes instanceof NamedNodeMap) || typeof element.removeAttribute !== 'function' || typeof element.setAttribute !== 'function' || typeof element.namespaceURI !== 'string' || typeof element.insertBefore !== 'function' || typeof element.hasChildNodes !== 'function');\n };\n /**\n * Checks whether the given object is a DOM node.\n *\n * @param value object to check whether it's a DOM node\n * @return true is object is a DOM node\n */\n const _isNode = function _isNode(value) {\n return typeof Node === 'function' && value instanceof Node;\n };\n function _executeHooks(hooks, currentNode, data) {\n arrayForEach(hooks, hook => {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n }\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n * @param currentNode to check for permission to exist\n * @return true if node was killed, false if left alive\n */\n const _sanitizeElements = function _sanitizeElements(currentNode) {\n let content = null;\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeElements, currentNode, null);\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Now let's check the element's type and name */\n const tagName = transformCaseFunc(currentNode.nodeName);\n /* Execute a hook if present */\n _executeHooks(hooks.uponSanitizeElement, currentNode, {\n tagName,\n allowedTags: ALLOWED_TAGS\n });\n /* Detect mXSS attempts abusing namespace confusion */\n if (SAFE_FOR_XML && currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(/<[/\\w!]/g, currentNode.innerHTML) && regExpTest(/<[/\\w!]/g, currentNode.textContent)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove any occurrence of processing instructions */\n if (currentNode.nodeType === NODE_TYPE.progressingInstruction) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove any kind of possibly harmful comments */\n if (SAFE_FOR_XML && currentNode.nodeType === NODE_TYPE.comment && regExpTest(/<[/\\w]/g, currentNode.data)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove element if anything forbids its presence */\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n /* Check if we have a custom element to handle */\n if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {\n return false;\n }\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) {\n return false;\n }\n }\n /* Keep content except for bad-listed elements */\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n const parentNode = getParentNode(currentNode) || currentNode.parentNode;\n const childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n if (childNodes && parentNode) {\n const childCount = childNodes.length;\n for (let i = childCount - 1; i >= 0; --i) {\n const childClone = cloneNode(childNodes[i], true);\n childClone.__removalCount = (currentNode.__removalCount || 0) + 1;\n parentNode.insertBefore(childClone, getNextSibling(currentNode));\n }\n }\n }\n _forceRemove(currentNode);\n return true;\n }\n /* Check whether element has a valid namespace */\n if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Make sure that older browsers don't get fallback-tag mXSS */\n if ((tagName === 'noscript' || tagName === 'noembed' || tagName === 'noframes') && regExpTest(/<\\/no(script|embed|frames)/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Sanitize element content to be template-safe */\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === NODE_TYPE.text) {\n /* Get the element's text content */\n content = currentNode.textContent;\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n content = stringReplace(content, expr, ' ');\n });\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, {\n element: currentNode.cloneNode()\n });\n currentNode.textContent = content;\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeElements, currentNode, null);\n return false;\n };\n /**\n * _isValidAttribute\n *\n * @param lcTag Lowercase tag name of containing element.\n * @param lcName Lowercase attribute name.\n * @param value Attribute value.\n * @return Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n const _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n /* Make sure attribute cannot clobber */\n if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n return false;\n }\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n if (\n // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n _isBasicCustomElement(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) ||\n // Alternative, second condition checks if it's an `is`-attribute, AND\n // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ; else {\n return false;\n }\n /* Check value is safe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBUTES[lcName]) ; else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ; else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if (value) {\n return false;\n } else ;\n return true;\n };\n /**\n * _isBasicCustomElement\n * checks if at least one dash is included in tagName, and it's not the first char\n * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name\n *\n * @param tagName name of the tag of the node to sanitize\n * @returns Returns true if the tag name meets the basic criteria for a custom element, otherwise false.\n */\n const _isBasicCustomElement = function _isBasicCustomElement(tagName) {\n return tagName !== 'annotation-xml' && stringMatch(tagName, CUSTOM_ELEMENT);\n };\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param currentNode to sanitize\n */\n const _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeAttributes, currentNode, null);\n const {\n attributes\n } = currentNode;\n /* Check if we have attributes; if not we might have a text node */\n if (!attributes || _isClobbered(currentNode)) {\n return;\n }\n const hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR,\n forceKeepAttr: undefined\n };\n let l = attributes.length;\n /* Go backwards over all attributes; safely remove bad ones */\n while (l--) {\n const attr = attributes[l];\n const {\n name,\n namespaceURI,\n value: attrValue\n } = attr;\n const lcName = transformCaseFunc(name);\n const initValue = attrValue;\n let value = name === 'value' ? initValue : stringTrim(initValue);\n /* Execute a hook if present */\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n _executeHooks(hooks.uponSanitizeAttribute, currentNode, hookEvent);\n value = hookEvent.attrValue;\n /* Full DOM Clobbering protection via namespace isolation,\n * Prefix id and name attributes with `user-content-`\n */\n if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name')) {\n // Remove the attribute with this value\n _removeAttribute(name, currentNode);\n // Prefix the value and later re-create the attribute with the sanitized value\n value = SANITIZE_NAMED_PROPS_PREFIX + value;\n }\n /* Work around a security issue with comments inside attributes */\n if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\\/(style|title)/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Did the hooks approve of the attribute? */\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Work around a security issue in jQuery 3.0 */\n if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Sanitize attribute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n value = stringReplace(value, expr, ' ');\n });\n }\n /* Is `value` valid for this attribute? */\n const lcTag = transformCaseFunc(currentNode.nodeName);\n if (!_isValidAttribute(lcTag, lcName, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Handle attributes that require Trusted Types */\n if (trustedTypesPolicy && typeof trustedTypes === 'object' && typeof trustedTypes.getAttributeType === 'function') {\n if (namespaceURI) ; else {\n switch (trustedTypes.getAttributeType(lcTag, lcName)) {\n case 'TrustedHTML':\n {\n value = trustedTypesPolicy.createHTML(value);\n break;\n }\n case 'TrustedScriptURL':\n {\n value = trustedTypesPolicy.createScriptURL(value);\n break;\n }\n }\n }\n }\n /* Handle invalid data-* attribute set by try-catching it */\n if (value !== initValue) {\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n } else {\n arrayPop(DOMPurify.removed);\n }\n } catch (_) {\n _removeAttribute(name, currentNode);\n }\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeAttributes, currentNode, null);\n };\n /**\n * _sanitizeShadowDOM\n *\n * @param fragment to iterate over recursively\n */\n const _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n let shadowNode = null;\n const shadowIterator = _createNodeIterator(fragment);\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeShadowDOM, fragment, null);\n while (shadowNode = shadowIterator.nextNode()) {\n /* Execute a hook if present */\n _executeHooks(hooks.uponSanitizeShadowNode, shadowNode, null);\n /* Sanitize tags and elements */\n _sanitizeElements(shadowNode);\n /* Check attributes next */\n _sanitizeAttributes(shadowNode);\n /* Deep shadow DOM detected */\n if (shadowNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(shadowNode.content);\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeShadowDOM, fragment, null);\n };\n // eslint-disable-next-line complexity\n DOMPurify.sanitize = function (dirty) {\n let cfg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let body = null;\n let importedNode = null;\n let currentNode = null;\n let returnNode = null;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n IS_EMPTY_INPUT = !dirty;\n if (IS_EMPTY_INPUT) {\n dirty = '<!-->';\n }\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n if (typeof dirty.toString === 'function') {\n dirty = dirty.toString();\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n } else {\n throw typeErrorCreate('toString is not a function');\n }\n }\n /* Return dirty HTML if DOMPurify cannot run */\n if (!DOMPurify.isSupported) {\n return dirty;\n }\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n /* Clean up removed elements */\n DOMPurify.removed = [];\n /* Check if dirty is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n if (IN_PLACE) {\n /* Do some early pre-sanitization to avoid unsafe root nodes */\n if (dirty.nodeName) {\n const tagName = transformCaseFunc(dirty.nodeName);\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n throw typeErrorCreate('root node is forbidden and cannot be sanitized in-place');\n }\n }\n } else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('<!---->');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (importedNode.nodeType === NODE_TYPE.element && importedNode.nodeName === 'BODY') {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT &&\n // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;\n }\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n }\n }\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n /* Get node iterator */\n const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body);\n /* Now start iterating over the created document */\n while (currentNode = nodeIterator.nextNode()) {\n /* Sanitize tags and elements */\n _sanitizeElements(currentNode);\n /* Check attributes next */\n _sanitizeAttributes(currentNode);\n /* Shadow DOM detected, sanitize it */\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(currentNode.content);\n }\n }\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n return dirty;\n }\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n return returnNode;\n }\n let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n /* Serialize doctype if allowed */\n if (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {\n serializedHTML = '<!DOCTYPE ' + body.ownerDocument.doctype.name + '>\\n' + serializedHTML;\n }\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n serializedHTML = stringReplace(serializedHTML, expr, ' ');\n });\n }\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n };\n DOMPurify.setConfig = function () {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n const lcTag = transformCaseFunc(tag);\n const lcName = transformCaseFunc(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n arrayPush(hooks[entryPoint], hookFunction);\n };\n DOMPurify.removeHook = function (entryPoint, hookFunction) {\n if (hookFunction !== undefined) {\n const index = arrayLastIndexOf(hooks[entryPoint], hookFunction);\n return index === -1 ? undefined : arraySplice(hooks[entryPoint], index, 1)[0];\n }\n return arrayPop(hooks[entryPoint]);\n };\n DOMPurify.removeHooks = function (entryPoint) {\n hooks[entryPoint] = [];\n };\n DOMPurify.removeAllHooks = function () {\n hooks = _createHooksMap();\n };\n return DOMPurify;\n}\nvar purify = createDOMPurify();\n\nexport { purify as default };\n//# sourceMappingURL=purify.es.mjs.map\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"js/\" + {\"160\":\"d3\",\"219\":\"org\",\"632\":\"showdown\",\"682\":\"mathjax\",\"854\":\"pdfjs\",\"940\":\"highlightjs\"}[chunkId] + \".\" + {\"160\":\"2fe5b1ddad0dbb25a61b\",\"219\":\"bc106bf1462669cb5728\",\"632\":\"8be01722fe56f5a7c2db\",\"682\":\"b908b458d6b1c10f36a4\",\"854\":\"97ecbde9d93314dba75a\",\"940\":\"19cb5fa8879fdc8357d7\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"css/\" + {\"219\":\"org\",\"632\":\"showdown\",\"940\":\"highlightjs\"}[chunkId] + \".\" + {\"219\":\"ac12ac3ff558d9da7083\",\"632\":\"9d87800cde00ff2ae20b\",\"940\":\"0c1b181eb006699a4c3e\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/static/\";","if (typeof document === \"undefined\") return;\nvar createStylesheet = function(chunkId, fullhref, oldTag, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tif (__webpack_require__.nc) {\n\t\tlinkTag.nonce = __webpack_require__.nc;\n\t}\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && event.type;\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + errorType + \": \" + realHref + \")\");\n\t\t\terr.name = \"ChunkLoadError\";\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tif (linkTag.parentNode) linkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\n\tif (oldTag) {\n\t\toldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling);\n\t} else {\n\t\tdocument.head.appendChild(linkTag);\n\t}\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, null, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t464: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"219\":1,\"632\":1,\"940\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr\n\n// no prefetching\n\n// no preloaded","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t464: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkswh\"] = self[\"webpackChunkswh\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));"],"names":["root","factory","exports","module","define","amd","self","inProgress","dataWebpackPrefix","regenerator","regeneratorAsyncIterator","r","e","t","o","n","w","Promise","__esModule","addReadmeHeadingAnchors","swh","webapp","addHeadingAnchors","fixSwhRelativeLinksInReadme","readmeHtml","_step","document","DOMParser","parseFromString","_iterator","_createForOfIteratorHelperLoose","querySelectorAll","done","link","value","href","startsWith","window","origin","hrefVal","decodeURIComponent","attributes","nodeValue","URL","TypeError","replacement","EmailValidator","url","location","currentPath","searchParams","get","path","resolve","set","replace","documentElement","innerHTML","renderMarkdown","_x","_x2","_renderMarkdown","apply","arguments","_asyncToGenerator","_regeneratorRuntime","_callee4","domElt","markdownDocUrl","showdown","showdownHighlight","_context4","prev","next","type","filter","text","converter","options","params","helper","replaceRecursiveRegExp","wholeMatch","match","left","right","decode","lang","indexOf","langNoAnnotation","slice","RegExp","classAttr","includes","attrIndex","hljs","getLanguage","highlight","language","highlightAuto","sent","$","ready","_callee3","response","data","html","_context3","Converter","tables","extensions","has","hostname","setFlavor","fetch","handleFetchError","addClass","makeHtml","pathname","filterXSS","stop","renderOrgData","_x3","_x4","_renderOrgData","_callee5","orgDocData","org","parser","orgDocument","orgHTMLDocument","_context5","Parser","parse","toc","convert","ConverterHTML","toString","first","remove","renderOrg","orgDocUrl","_callee","_context","renderTxt","txtDocUrl","_callee2","orgMode","_context2","append","swhObjectIcons","initPage","page","on","sessionStorage","setItem","initHomePage","_i","_arr","objectType","count","_i2","_arr2","_objectType","history","Object","keys","mirrorConfig","length","iframeResize","license","heightCalculationMethod","Urls","stat_counters","json","isEmptyObject","undefined","toLocaleString","closest","hide","stat_counters_history","drawHistoryCounterGraph","showModalMessage","title","message","modal","showModalConfirm","callback","bind","unbind","showModalHtml","width","css","addJumpToPagePopoverToDataTable","dataTableElt","ellipsisButtonSelector","setTimeout","removeClass","attr","event","pageInfo","info","content","i","pages","selected","target","popover","pageNumber","parseInt","this","val","draw","parents","setSwhObjectIcons","icons","getSwhObjectIcon","swhObjectType","click","lastBrowsePage","getItem","preventDefault","mainSideBar","body","updateSidebarState","hasClass","Cookies","evt","objectFitImages","selectedCode","getCodeOrPreEltUnderPointer","clientX","clientY","elementsFromPoint","elt","nodeName","selectCode","hljsLnCodeElts","find","selectText","firstChild","lastChild","dblclick","ctrlKey","metaKey","keydown","key","scrollThreshold","height","scroll","scrollTop","submit","checkValidity","searchQueryText","trim","queryParameters","URLSearchParams","browse_search","browsedSwhObjectMetadata","setBrowsedSwhObjectMetadata","metadata","getBrowsedSwhObjectMetadata","swhidsContext_","setSwhIdsContext","swhidsContext","_step2","_iterator2","swhidContext","object_type","getSwhIdsContext","setFullWidth","fullWidth","localStorage","JSON","stringify","prop","fullWidthToggled","setContainerFullWidth","previousFullWidthState","coreSWHIDIsLowerCase","swhid","qualifiersPos","coreSWHID","toLowerCase","validateSWHIDInput","_validateSWHIDInput","swhidInputElt","swhidInput","customValidity","resolveSWHIDUrl","responseData","api_1_resolve_swhid","hasOwnProperty","reason","setCustomValidity","siblings","isUserLoggedIn","isStaffUser","isAmbassadorUser","unshift","pop","OverloadYield","regeneratorAsync","regeneratorAsyncGen","regeneratorKeys","regeneratorValues","m","getPrototypeOf","__proto__","constructor","displayName","name","a","v","abrupt","delegateYield","resultName","d","finish","f","_t","p","call","wrap","reverse","isGeneratorFunction","mark","awrap","AsyncIterator","async","u","values","Array","prototype","reduce","acc","curr","charAt","split","concat","join","ok","staticAsset","asset","__STATIC__","removeUrlFragment","replaceState","search","startNode","endNode","selection","getSelection","removeAllRanges","range","createRange","setStart","setEnd","childNodes","textContent","addRange","asyncGeneratorStep","c","then","_next","_throw","OFI","propRegex","testImg","Image","style","supportsObjectFit","supportsObjectPosition","supportsOFI","supportsCurrentSrc","currentSrc","nativeGetAttribute","getAttribute","nativeSetAttribute","setAttribute","autoModeEnabled","setPlaceholder","img","placeholder","onImageReady","naturalWidth","fixOne","el","parsed","getComputedStyle","fontFamily","props","exec","getStyle","ofi","skipTest","srcset","src","naturalHeight","descriptors","defineProperty","ss","keepSrcUsable","err","console","warn","picturefill","pf","_","ns","evaled","fillImg","reselect","curSrc","supported","polyfillCurrentSrc","backgroundImage","backgroundPosition","backgroundRepeat","backgroundOrigin","test","backgroundSize","fix","imgs","opts","startAutoMode","getElementsByTagName","addEventListener","tagName","watchMQ","getOfiImageMaybe","HTMLImageElement","String","hijackAttributes","regeneratorDefine","Symbol","asyncIterator","_regenerator","iterator","toStringTag","Generator","create","y","G","l","GeneratorFunction","GeneratorFunctionPrototype","setPrototypeOf","he","input","encode","ansiup","AnsiUp","escapeHTML","unescapeHTML","escapeLaTeX","bm","im","le","blockMath","inlineMath","latexEnvironment","mathTextFound","push","_mathTextFound","mathText","escapedText","specialLaTexChar","renderNotebook","_renderNotebook","nbJsonUrl","highlightCode","renderAnsi","nbJson","notebook","rendered","ansi_to_html","preElt","codeElt","simplifiedAutoLink","rawHeaderId","literalMidWordUnderscores","nb","markdown","highlighter","ansi","render","parent","typesetMath","escape_for_html","assign","source","api","init","defaultAttributes","expires","Date","now","toUTCString","encodeURIComponent","escape","stringifiedAttributes","attributeName","cookie","write","cookies","jar","parts","found","read","withAttributes","withConverter","freeze","k","_typeof","isNaN","firstHighlightedLine","lineHighlightColor","highlightLine","firstHighlighted","lineTd","highlightLines","last","resetHighlightedLines","scrollToLine","lineDomElt","offset","animate","top","_highlightCode","showLineNumbers","selector","enableLinesSelection","parseUrlFragmentForLinesToHighlight","lines","linesRegexp","line","hash","each","removeAttr","highlightElement","lineNumbersElement","singleLine","classList","contains","shiftKey","firstLine","tester","email","some","part","parentSelector","AnchorJS","class","ariaLabel","add","RegexEscape","proto","runtime","regeneratorRuntime","accidentalStrictMode","globalThis","Function","assert","error","expand","defaultEvent","label","showTime","profile","profileEnd","timeStamp","trace","fromEntries","s","map","matchMedia","matches","h","g","b","z","max","bodyScroll","documentElementScroll","j","x","T","M","E","chrome","replaceAll","O","R","S","collapsed","expanded","groupEnd","padStart","queueMicrotask","performance","countReset","endAutoGroup","errorBoundary","Error","isPrototypeOf","purge","time","timeEnd","timeLog","touch","default","I","W","A","C","L","F","log","N","H","B","P","q","D","U","J","Z","V","X","removeEventListener","Y","codePointAt","Math","imul","fromCodePoint","K","Q","ee","te","ne","oe","autoResize","bodyBackground","bodyMargin","bodyPadding","checkOrigin","direction","inPageLinks","id","logExpand","mouseEvents","offsetHeight","offsetWidth","postMessageTarget","sameDomain","scrolling","sizeHeight","sizeWidth","tolerance","waitForLoad","warningTimeout","widthCalculationMethod","onClose","onClosed","onInit","onMessage","onMouseEnter","onMouseLeave","onReady","onResized","onScroll","ie","position","version","re","pe","de","boxSizing","paddingTop","paddingBottom","borderTopWidth","borderBottomWidth","me","requestAnimationFrame","disconnect","iframe","ResizeObserver","observe","childList","subtree","getBoundingClientRect","scrollY","scrollX","innerHeight","innerWidth","clientHeight","clientWidth","iframeHeight","iframeWidth","offsetTop","offsetLeft","scrollLeft","documentHeight","documentWidth","windowHeight","windowWidth","scrollWidth","scrollHeight","pageLeft","pageTop","scale","visualViewport","viewport","ce","Number","parentIframe","parentIFrame","ue","screenX","screenY","ae","msg","firstRun","scrollBy","getElementById","getElementsByName","moveToAnchor","syncTitle","fe","sameOrigin","contentWindow","iframeChildListener","we","hidden","true","false","loaded","remoteHost","forEach","mode","ge","se","iframeResizer","parentNode","scrollTo","targetOrigin","postMessage","msgTimeout","loadErrorShown","sandbox","ye","be","ve","close","removeListeners","resize","toUpperCase","sendMessage","iFrameResizer","vInfoDisable","hasOwn","offsetSize","enabled","iframeId","$e","overflow","ze","Reflect","iframeParentListener","je","ke","iFrameResize","renderPdf","_renderPdf","pdfUrl","pdfDoc","pageNum","pageRendering","pageNumPending","defaultScale","canvas","ctx","renderPage","_renderPage","queueRenderPage","onPrevPage","onNextPage","pdfjs","numPages","num","divWidth","renderContext","getPage","min","getViewport","canvasContext","getContext","GlobalWorkerOptions","workerSrc","pdf","getDocument","promise","_applyRemainingDefaultOptions","icon","visible","placement","base","truncate","floor","titleText","_getElements","elements","isArray","NodeList","_addBaselineStyles","head","querySelector","firstStyleEl","createElement","linkRule","hoverRule","anchorjsLinkFontFace","pseudoElContent","className","appendChild","createTextNode","insertBefore","sheet","insertRule","cssRules","elsWithIds","idList","elementID","index","tidyText","newTidyText","anchor","hrefBase","indexesToDrop","hasAnchorJSLink","hasAttribute","urlify","opacity","font","lineHeight","marginLeft","paddingRight","paddingLeft","splice","domAnchor","removeChild","removeAll","textareaElement","nonsafeChars","substring","hasLeftAnchor","hasRightAnchor","_typesetMath","MathJax","chtml","fontURL","tex","tags","useLabelIds","displayMath","processEscapes","processEnvironments","loader","paths","mathjax","freeExports","freeGlobal","global","regexAstralSymbols","regexAsciiWhitelist","regexBmpWhitelist","regexEncodeNonAscii","encodeMap","regexEscape","escapeMap","regexInvalidEntity","regexInvalidRawCodePoint","regexDecode","decodeMap","decodeMapLegacy","decodeMapNumeric","invalidReferenceCodePoints","stringFromCharCode","fromCharCode","object","propertyName","merge","defaults","result","codePointToSymbol","codePoint","strict","output","parseError","array","hexEscape","decEscape","string","encodeEverything","useNamedReferences","allowUnsafeSymbols","escapeCodePoint","decimal","escapeBmpSymbol","symbol","charCodeAt","$0","high","low","$1","$2","$3","$4","$5","$6","$7","$8","semicolon","decDigits","hexDigits","reference","isAttributeValue","_regeneratorDefine","enumerable","configurable","writable","_invoke","_drawHistoryCounterGraph","container","historyData","d3","margin","svg","tooltip","firstPoint","lastPoint","xScale","yScale","dateFormatter","valueFormatter","bisectDate","focus","updateTooltip","x0","invert","pointer","d0","d1","tooltipText","pageX","pageY","select","bottom","ceil","sort","scaleTime","rangeRound","domain","nice","scaleLinear","timeFormat","format","bisector","axisBottom","ticks","tickFormat","selectAll","axisRight","datum","transition","duration","obj","fn","PacketKind","templateObject_1","templateObject_2","templateObject_3","__makeTemplateObject","cooked","raw","VERSION","setup_palettes","_use_classes","bold","faint","italic","underline","fg","bg","_buffer","_url_allowlist","_escape_html","boldStyle","faintStyle","italicStyle","underlineStyle","use_classes","arg","url_allowlist","escape_html","_boldStyle","_faintStyle","_italicStyle","_underlineStyle","ansi_colors","rgb","class_name","palette_256","palette","rec","levels","col","grey_level","gry","escape_txt_for_html","txt","str","append_buffer","get_next_packet","pkt","kind","EOS","len","pos","Text","Incomplete","next_char","ESC","_csi_regex","rgx","Unknown","SGR","rpos","_osc_st","tmplObj","regexText","wsrgx","txt2","rgxG","lastIndex","_osc_regex","OSCURL","blocks","packet","transform_to_html","with_state","process_ansi","process_hyperlink","sgr_cmds","sgr_cmd_str","shift","is_foreground","mode_cmd","palette_index","fragment","styles","classes","class_string","style_string","subst","execScript","attachEvent","eval","statusCodeColor","initStatusWidget","statusDataURL","maxStatusCode","maxStatusDescription","sc","sd","status","status_code","DOMPurify","sanitize","addHook","node","attrName","attrValue","directory","swhObjectMetadata","object_id","directoryUrl","browse_directory_resolve_content_path","processedPath","entries","isFrozen","getOwnPropertyDescriptor","seal","construct","fun","thisValue","args","Func","arrayForEach","unapply","arrayLastIndexOf","lastIndexOf","arrayPop","arrayPush","arraySplice","stringToLowerCase","stringToString","stringMatch","stringReplace","stringIndexOf","stringTrim","objectHasOwnProperty","regExpTest","typeErrorCreate","func","_len2","_key2","thisArg","_len","_key","addToSet","transformCaseFunc","element","lcElement","cleanArray","clone","newObject","property","lookupGetter","desc","html$1","svg$1","svgFilters","svgDisallowed","mathMl$1","mathMlDisallowed","mathMl","xml","MUSTACHE_EXPR","ERB_EXPR","TMPLIT_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","DOCTYPE_NAME","CUSTOM_ELEMENT","EXPRESSIONS","NODE_TYPE","getGlobal","purify","createDOMPurify","removed","nodeType","Element","isSupported","originalDocument","currentScript","DocumentFragment","HTMLTemplateElement","Node","NodeFilter","NamedNodeMap","MozNamedAttrMap","HTMLFormElement","trustedTypes","ElementPrototype","cloneNode","getNextSibling","getChildNodes","getParentNode","template","ownerDocument","trustedTypesPolicy","emptyHTML","implementation","createNodeIterator","createDocumentFragment","importNode","hooks","afterSanitizeAttributes","afterSanitizeElements","afterSanitizeShadowDOM","beforeSanitizeAttributes","beforeSanitizeElements","beforeSanitizeShadowDOM","uponSanitizeAttribute","uponSanitizeElement","uponSanitizeShadowNode","createHTMLDocument","IS_ALLOWED_URI$1","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","CUSTOM_ELEMENT_HANDLING","tagNameCheck","attributeNameCheck","allowCustomizedBuiltInElements","FORBID_TAGS","FORBID_ATTR","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","ALLOW_SELF_CLOSE_IN_ATTR","SAFE_FOR_TEMPLATES","SAFE_FOR_XML","WHOLE_DOCUMENT","SET_CONFIG","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_TRUSTED_TYPE","SANITIZE_DOM","SANITIZE_NAMED_PROPS","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DEFAULT_FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","NAMESPACE","IS_EMPTY_INPUT","ALLOWED_NAMESPACES","DEFAULT_ALLOWED_NAMESPACES","MATHML_TEXT_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","COMMON_SVG_AND_HTML_ELEMENTS","PARSER_MEDIA_TYPE","SUPPORTED_PARSER_MEDIA_TYPES","CONFIG","formElement","isRegexOrFunction","testValue","_parseConfig","cfg","ADD_URI_SAFE_ATTR","ADD_DATA_URI_TAGS","ALLOWED_URI_REGEXP","ADD_TAGS","ADD_ATTR","table","tbody","TRUSTED_TYPES_POLICY","createHTML","createScriptURL","purifyHostElement","createPolicy","suffix","ATTR_NAME","policyName","scriptUrl","_createTrustedTypesPolicy","ALL_SVG_TAGS","ALL_MATHML_TAGS","_forceRemove","_removeAttribute","attribute","getAttributeNode","from","removeAttribute","_initDocument","dirty","doc","leadingWhitespace","dirtyPayload","createDocument","_createNodeIterator","SHOW_ELEMENT","SHOW_COMMENT","SHOW_TEXT","SHOW_PROCESSING_INSTRUCTION","SHOW_CDATA_SECTION","_isClobbered","namespaceURI","hasChildNodes","_isNode","_executeHooks","currentNode","hook","_sanitizeElements","allowedTags","firstElementChild","_isBasicCustomElement","childClone","__removalCount","parentTagName","Boolean","_checkValidNamespace","expr","_isValidAttribute","lcTag","lcName","_sanitizeAttributes","hookEvent","keepAttr","allowedAttributes","forceKeepAttr","initValue","getAttributeType","setAttributeNS","_sanitizeShadowDOM","shadowNode","shadowIterator","nextNode","importedNode","returnNode","nodeIterator","shadowroot","shadowrootmode","serializedHTML","outerHTML","doctype","setConfig","clearConfig","isValidAttribute","tag","entryPoint","hookFunction","removeHook","removeHooks","removeAllHooks","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","definition","chunkId","all","promises","miniCssF","script","needAttach","scripts","charset","timeout","nc","onScriptComplete","onerror","onload","clearTimeout","doneFns","nmd","children","loadStylesheet","reject","fullhref","existingLinkTags","dataHref","rel","existingStyleTags","findStylesheet","oldTag","linkTag","nonce","errorType","realHref","code","request","nextSibling","createStylesheet","installedCssChunks","miniCss","installedChunks","installedChunkData","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","chunkLoadingGlobal"],"sourceRoot":""}