@zwbigi/ink-xy 0.1.1

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 (266) hide show
  1. package/.next/BUILD_ID +1 -0
  2. package/.next/app-path-routes-manifest.json +33 -0
  3. package/.next/build-manifest.json +20 -0
  4. package/.next/diagnostics/build-diagnostics.json +6 -0
  5. package/.next/diagnostics/framework.json +1 -0
  6. package/.next/export-marker.json +6 -0
  7. package/.next/images-manifest.json +68 -0
  8. package/.next/next-minimal-server.js.nft.json +1 -0
  9. package/.next/next-server.js.nft.json +1 -0
  10. package/.next/package.json +1 -0
  11. package/.next/prerender-manifest.json +114 -0
  12. package/.next/react-loadable-manifest.json +1993 -0
  13. package/.next/required-server-files.js +341 -0
  14. package/.next/required-server-files.json +341 -0
  15. package/.next/routes-manifest.json +252 -0
  16. package/.next/server/app/_global-error/page.js +32 -0
  17. package/.next/server/app/_global-error/page.js.nft.json +1 -0
  18. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -0
  19. package/.next/server/app/_global-error.html +1 -0
  20. package/.next/server/app/_global-error.meta +16 -0
  21. package/.next/server/app/_global-error.rsc +14 -0
  22. package/.next/server/app/_global-error.segments/_full.segment.rsc +14 -0
  23. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +5 -0
  24. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +5 -0
  25. package/.next/server/app/_global-error.segments/_head.segment.rsc +5 -0
  26. package/.next/server/app/_global-error.segments/_index.segment.rsc +5 -0
  27. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -0
  28. package/.next/server/app/_not-found/page.js +2 -0
  29. package/.next/server/app/_not-found/page.js.nft.json +1 -0
  30. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -0
  31. package/.next/server/app/_not-found.html +1 -0
  32. package/.next/server/app/_not-found.meta +16 -0
  33. package/.next/server/app/_not-found.rsc +16 -0
  34. package/.next/server/app/_not-found.segments/_full.segment.rsc +16 -0
  35. package/.next/server/app/_not-found.segments/_head.segment.rsc +6 -0
  36. package/.next/server/app/_not-found.segments/_index.segment.rsc +5 -0
  37. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +5 -0
  38. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +5 -0
  39. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -0
  40. package/.next/server/app/api/agent/[id]/events/route.js +3 -0
  41. package/.next/server/app/api/agent/[id]/events/route.js.nft.json +1 -0
  42. package/.next/server/app/api/agent/[id]/events/route_client-reference-manifest.js +1 -0
  43. package/.next/server/app/api/agent/[id]/route.js +1 -0
  44. package/.next/server/app/api/agent/[id]/route.js.nft.json +1 -0
  45. package/.next/server/app/api/agent/[id]/route_client-reference-manifest.js +1 -0
  46. package/.next/server/app/api/agent/describe-image/route.js +15 -0
  47. package/.next/server/app/api/agent/describe-image/route.js.nft.json +1 -0
  48. package/.next/server/app/api/agent/describe-image/route_client-reference-manifest.js +1 -0
  49. package/.next/server/app/api/agent/new/route.js +8 -0
  50. package/.next/server/app/api/agent/new/route.js.nft.json +1 -0
  51. package/.next/server/app/api/agent/new/route_client-reference-manifest.js +1 -0
  52. package/.next/server/app/api/auth/all-providers/route.js +1 -0
  53. package/.next/server/app/api/auth/all-providers/route.js.nft.json +1 -0
  54. package/.next/server/app/api/auth/all-providers/route_client-reference-manifest.js +1 -0
  55. package/.next/server/app/api/auth/api-key/[provider]/route.js +1 -0
  56. package/.next/server/app/api/auth/api-key/[provider]/route.js.nft.json +1 -0
  57. package/.next/server/app/api/auth/api-key/[provider]/route_client-reference-manifest.js +1 -0
  58. package/.next/server/app/api/auth/login/[provider]/route.js +3 -0
  59. package/.next/server/app/api/auth/login/[provider]/route.js.nft.json +1 -0
  60. package/.next/server/app/api/auth/login/[provider]/route_client-reference-manifest.js +1 -0
  61. package/.next/server/app/api/auth/logout/[provider]/route.js +1 -0
  62. package/.next/server/app/api/auth/logout/[provider]/route.js.nft.json +1 -0
  63. package/.next/server/app/api/auth/logout/[provider]/route_client-reference-manifest.js +1 -0
  64. package/.next/server/app/api/auth/providers/route.js +1 -0
  65. package/.next/server/app/api/auth/providers/route.js.nft.json +1 -0
  66. package/.next/server/app/api/auth/providers/route_client-reference-manifest.js +1 -0
  67. package/.next/server/app/api/default-cwd/route.js +1 -0
  68. package/.next/server/app/api/default-cwd/route.js.nft.json +1 -0
  69. package/.next/server/app/api/default-cwd/route_client-reference-manifest.js +1 -0
  70. package/.next/server/app/api/files/[...path]/route.js +6 -0
  71. package/.next/server/app/api/files/[...path]/route.js.nft.json +1 -0
  72. package/.next/server/app/api/files/[...path]/route_client-reference-manifest.js +1 -0
  73. package/.next/server/app/api/gem-xy/[id]/route.js +1 -0
  74. package/.next/server/app/api/gem-xy/[id]/route.js.nft.json +1 -0
  75. package/.next/server/app/api/gem-xy/[id]/route_client-reference-manifest.js +1 -0
  76. package/.next/server/app/api/gem-xy/route.js +1 -0
  77. package/.next/server/app/api/gem-xy/route.js.nft.json +1 -0
  78. package/.next/server/app/api/gem-xy/route_client-reference-manifest.js +1 -0
  79. package/.next/server/app/api/home/route.js +1 -0
  80. package/.next/server/app/api/home/route.js.nft.json +1 -0
  81. package/.next/server/app/api/home/route_client-reference-manifest.js +1 -0
  82. package/.next/server/app/api/inkos/route.js +13 -0
  83. package/.next/server/app/api/inkos/route.js.nft.json +1 -0
  84. package/.next/server/app/api/inkos/route_client-reference-manifest.js +1 -0
  85. package/.next/server/app/api/models/route.js +1 -0
  86. package/.next/server/app/api/models/route.js.nft.json +1 -0
  87. package/.next/server/app/api/models/route_client-reference-manifest.js +1 -0
  88. package/.next/server/app/api/models-config/route.js +1 -0
  89. package/.next/server/app/api/models-config/route.js.nft.json +1 -0
  90. package/.next/server/app/api/models-config/route_client-reference-manifest.js +1 -0
  91. package/.next/server/app/api/register-cwd/route.js +1 -0
  92. package/.next/server/app/api/register-cwd/route.js.nft.json +1 -0
  93. package/.next/server/app/api/register-cwd/route_client-reference-manifest.js +1 -0
  94. package/.next/server/app/api/sessions/[id]/context/route.js +3 -0
  95. package/.next/server/app/api/sessions/[id]/context/route.js.nft.json +1 -0
  96. package/.next/server/app/api/sessions/[id]/context/route_client-reference-manifest.js +1 -0
  97. package/.next/server/app/api/sessions/[id]/lock/route.js +1 -0
  98. package/.next/server/app/api/sessions/[id]/lock/route.js.nft.json +1 -0
  99. package/.next/server/app/api/sessions/[id]/lock/route_client-reference-manifest.js +1 -0
  100. package/.next/server/app/api/sessions/[id]/route.js +1 -0
  101. package/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -0
  102. package/.next/server/app/api/sessions/[id]/route_client-reference-manifest.js +1 -0
  103. package/.next/server/app/api/sessions/new/route.js +1 -0
  104. package/.next/server/app/api/sessions/new/route.js.nft.json +1 -0
  105. package/.next/server/app/api/sessions/new/route_client-reference-manifest.js +1 -0
  106. package/.next/server/app/api/sessions/route.js +3 -0
  107. package/.next/server/app/api/sessions/route.js.nft.json +1 -0
  108. package/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -0
  109. package/.next/server/app/api/skills/install/route.js +1 -0
  110. package/.next/server/app/api/skills/install/route.js.nft.json +1 -0
  111. package/.next/server/app/api/skills/install/route_client-reference-manifest.js +1 -0
  112. package/.next/server/app/api/skills/route.js +6 -0
  113. package/.next/server/app/api/skills/route.js.nft.json +1 -0
  114. package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -0
  115. package/.next/server/app/api/skills/search/route.js +1 -0
  116. package/.next/server/app/api/skills/search/route.js.nft.json +1 -0
  117. package/.next/server/app/api/skills/search/route_client-reference-manifest.js +1 -0
  118. package/.next/server/app/api/tts/synthesize/route.js +1 -0
  119. package/.next/server/app/api/tts/synthesize/route.js.nft.json +1 -0
  120. package/.next/server/app/api/tts/synthesize/route_client-reference-manifest.js +1 -0
  121. package/.next/server/app/favicon.ico/route.js +1 -0
  122. package/.next/server/app/favicon.ico/route.js.nft.json +1 -0
  123. package/.next/server/app/favicon.ico.body +0 -0
  124. package/.next/server/app/favicon.ico.meta +1 -0
  125. package/.next/server/app/index.html +1 -0
  126. package/.next/server/app/index.meta +14 -0
  127. package/.next/server/app/index.rsc +15 -0
  128. package/.next/server/app/index.segments/__PAGE__.segment.rsc +6 -0
  129. package/.next/server/app/index.segments/_full.segment.rsc +15 -0
  130. package/.next/server/app/index.segments/_head.segment.rsc +6 -0
  131. package/.next/server/app/index.segments/_index.segment.rsc +5 -0
  132. package/.next/server/app/index.segments/_tree.segment.rsc +2 -0
  133. package/.next/server/app/page.js +162 -0
  134. package/.next/server/app/page.js.nft.json +1 -0
  135. package/.next/server/app/page_client-reference-manifest.js +1 -0
  136. package/.next/server/app-paths-manifest.json +33 -0
  137. package/.next/server/chunks/162.js +1 -0
  138. package/.next/server/chunks/433.js +6 -0
  139. package/.next/server/chunks/601.js +27 -0
  140. package/.next/server/chunks/63.js +45 -0
  141. package/.next/server/chunks/632.js +1 -0
  142. package/.next/server/chunks/65.js +1 -0
  143. package/.next/server/chunks/741.js +18 -0
  144. package/.next/server/chunks/813.js +1 -0
  145. package/.next/server/functions-config-manifest.json +4 -0
  146. package/.next/server/interception-route-rewrite-manifest.js +1 -0
  147. package/.next/server/middleware-build-manifest.js +1 -0
  148. package/.next/server/middleware-manifest.json +6 -0
  149. package/.next/server/middleware-react-loadable-manifest.js +1 -0
  150. package/.next/server/next-font-manifest.js +1 -0
  151. package/.next/server/next-font-manifest.json +1 -0
  152. package/.next/server/pages/404.html +1 -0
  153. package/.next/server/pages/500.html +1 -0
  154. package/.next/server/pages-manifest.json +4 -0
  155. package/.next/server/prefetch-hints.json +1 -0
  156. package/.next/server/server-reference-manifest.js +1 -0
  157. package/.next/server/server-reference-manifest.json +1 -0
  158. package/.next/server/webpack-runtime.js +1 -0
  159. package/.next/static/BvG0z8aA5rKvDREWCzBf_/_buildManifest.js +1 -0
  160. package/.next/static/BvG0z8aA5rKvDREWCzBf_/_ssgManifest.js +1 -0
  161. package/.next/static/chunks/1966.1560d0f43ac9a41a.js +1 -0
  162. package/.next/static/chunks/2479.43f5228b4208e28b.js +1 -0
  163. package/.next/static/chunks/3794-fa2c7d47374be211.js +32 -0
  164. package/.next/static/chunks/3899.cf10152d8085e352.js +1 -0
  165. package/.next/static/chunks/4bd1b696-c2f6e0877b6c10aa.js +1 -0
  166. package/.next/static/chunks/5f4842b5.50bf54b97ff395f3.js +1 -0
  167. package/.next/static/chunks/7547-9d656d23f0b75f2a.js +1 -0
  168. package/.next/static/chunks/7918f2c1.3a26cf7b64cb2eff.js +6 -0
  169. package/.next/static/chunks/8451.cfb7d6db11fbfb19.js +1 -0
  170. package/.next/static/chunks/app/_global-error/page-7f5e7bebe7a745ed.js +1 -0
  171. package/.next/static/chunks/app/_not-found/page-cba500a03cba1d1e.js +1 -0
  172. package/.next/static/chunks/app/api/agent/[id]/events/route-7f5e7bebe7a745ed.js +1 -0
  173. package/.next/static/chunks/app/api/agent/[id]/route-7f5e7bebe7a745ed.js +1 -0
  174. package/.next/static/chunks/app/api/agent/describe-image/route-7f5e7bebe7a745ed.js +1 -0
  175. package/.next/static/chunks/app/api/agent/new/route-7f5e7bebe7a745ed.js +1 -0
  176. package/.next/static/chunks/app/api/auth/all-providers/route-7f5e7bebe7a745ed.js +1 -0
  177. package/.next/static/chunks/app/api/auth/api-key/[provider]/route-7f5e7bebe7a745ed.js +1 -0
  178. package/.next/static/chunks/app/api/auth/login/[provider]/route-7f5e7bebe7a745ed.js +1 -0
  179. package/.next/static/chunks/app/api/auth/logout/[provider]/route-7f5e7bebe7a745ed.js +1 -0
  180. package/.next/static/chunks/app/api/auth/providers/route-7f5e7bebe7a745ed.js +1 -0
  181. package/.next/static/chunks/app/api/default-cwd/route-7f5e7bebe7a745ed.js +1 -0
  182. package/.next/static/chunks/app/api/files/[...path]/route-7f5e7bebe7a745ed.js +1 -0
  183. package/.next/static/chunks/app/api/gem-xy/[id]/route-7f5e7bebe7a745ed.js +1 -0
  184. package/.next/static/chunks/app/api/gem-xy/route-7f5e7bebe7a745ed.js +1 -0
  185. package/.next/static/chunks/app/api/home/route-7f5e7bebe7a745ed.js +1 -0
  186. package/.next/static/chunks/app/api/inkos/route-7f5e7bebe7a745ed.js +1 -0
  187. package/.next/static/chunks/app/api/models/route-7f5e7bebe7a745ed.js +1 -0
  188. package/.next/static/chunks/app/api/models-config/route-7f5e7bebe7a745ed.js +1 -0
  189. package/.next/static/chunks/app/api/register-cwd/route-7f5e7bebe7a745ed.js +1 -0
  190. package/.next/static/chunks/app/api/sessions/[id]/context/route-7f5e7bebe7a745ed.js +1 -0
  191. package/.next/static/chunks/app/api/sessions/[id]/lock/route-7f5e7bebe7a745ed.js +1 -0
  192. package/.next/static/chunks/app/api/sessions/[id]/route-7f5e7bebe7a745ed.js +1 -0
  193. package/.next/static/chunks/app/api/sessions/new/route-7f5e7bebe7a745ed.js +1 -0
  194. package/.next/static/chunks/app/api/sessions/route-7f5e7bebe7a745ed.js +1 -0
  195. package/.next/static/chunks/app/api/skills/install/route-7f5e7bebe7a745ed.js +1 -0
  196. package/.next/static/chunks/app/api/skills/route-7f5e7bebe7a745ed.js +1 -0
  197. package/.next/static/chunks/app/api/skills/search/route-7f5e7bebe7a745ed.js +1 -0
  198. package/.next/static/chunks/app/api/tts/synthesize/route-7f5e7bebe7a745ed.js +1 -0
  199. package/.next/static/chunks/app/layout-6c9568b1e18484e3.js +1 -0
  200. package/.next/static/chunks/app/page-0e8b420d9a738e0f.js +161 -0
  201. package/.next/static/chunks/ca377847.a378e365b1b60c48.js +1 -0
  202. package/.next/static/chunks/framework-3052651e402fc2ca.js +1 -0
  203. package/.next/static/chunks/main-268a9d5ff935d846.js +5 -0
  204. package/.next/static/chunks/main-app-a115908f58a6cf38.js +1 -0
  205. package/.next/static/chunks/next/dist/client/components/builtin/app-error-7f5e7bebe7a745ed.js +1 -0
  206. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-7f5e7bebe7a745ed.js +1 -0
  207. package/.next/static/chunks/next/dist/client/components/builtin/global-error-2c0ae34a7b36f2f6.js +1 -0
  208. package/.next/static/chunks/next/dist/client/components/builtin/not-found-7f5e7bebe7a745ed.js +1 -0
  209. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-7f5e7bebe7a745ed.js +1 -0
  210. package/.next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
  211. package/.next/static/chunks/webpack-a98a562c28a00d6f.js +1 -0
  212. package/.next/static/css/cb335cfd27b5f824.css +3 -0
  213. package/.next/static/media/15605e25b523335c-s.woff2 +0 -0
  214. package/.next/static/media/1a3dce5cfb5f7760-s.woff2 +0 -0
  215. package/.next/static/media/1cdd02902f937a18-s.woff2 +0 -0
  216. package/.next/static/media/4c4b3b30b6bcb2be-s.woff2 +0 -0
  217. package/.next/static/media/641a7b8a5800ee0e-s.woff2 +0 -0
  218. package/.next/static/media/7deddc85b7ffd1dc-s.p.woff2 +0 -0
  219. package/.next/static/media/ec14413c594b3356-s.p.woff2 +0 -0
  220. package/.next/trace +4 -0
  221. package/.next/trace-build +1 -0
  222. package/.next/types/app/api/agent/[id]/events/route.ts +351 -0
  223. package/.next/types/app/api/agent/[id]/route.ts +351 -0
  224. package/.next/types/app/api/agent/describe-image/route.ts +351 -0
  225. package/.next/types/app/api/agent/new/route.ts +351 -0
  226. package/.next/types/app/api/auth/all-providers/route.ts +351 -0
  227. package/.next/types/app/api/auth/api-key/[provider]/route.ts +351 -0
  228. package/.next/types/app/api/auth/login/[provider]/route.ts +351 -0
  229. package/.next/types/app/api/auth/logout/[provider]/route.ts +351 -0
  230. package/.next/types/app/api/auth/providers/route.ts +351 -0
  231. package/.next/types/app/api/default-cwd/route.ts +351 -0
  232. package/.next/types/app/api/files/[...path]/route.ts +351 -0
  233. package/.next/types/app/api/gem-xy/[id]/route.ts +351 -0
  234. package/.next/types/app/api/gem-xy/route.ts +351 -0
  235. package/.next/types/app/api/home/route.ts +351 -0
  236. package/.next/types/app/api/inkos/route.ts +351 -0
  237. package/.next/types/app/api/models/route.ts +351 -0
  238. package/.next/types/app/api/models-config/route.ts +351 -0
  239. package/.next/types/app/api/register-cwd/route.ts +351 -0
  240. package/.next/types/app/api/sessions/[id]/context/route.ts +351 -0
  241. package/.next/types/app/api/sessions/[id]/lock/route.ts +351 -0
  242. package/.next/types/app/api/sessions/[id]/route.ts +351 -0
  243. package/.next/types/app/api/sessions/new/route.ts +351 -0
  244. package/.next/types/app/api/sessions/route.ts +351 -0
  245. package/.next/types/app/api/skills/install/route.ts +351 -0
  246. package/.next/types/app/api/skills/route.ts +351 -0
  247. package/.next/types/app/api/skills/search/route.ts +351 -0
  248. package/.next/types/app/api/tts/synthesize/route.ts +351 -0
  249. package/.next/types/app/layout.ts +87 -0
  250. package/.next/types/app/page.ts +87 -0
  251. package/.next/types/package.json +1 -0
  252. package/.next/types/routes.d.ts +99 -0
  253. package/.next/types/validator.ts +313 -0
  254. package/README.md +183 -0
  255. package/bin/pi-web.js +78 -0
  256. package/electron/main.js +127 -0
  257. package/next.config.ts +13 -0
  258. package/package.json +116 -0
  259. package/public/favicon.ico +0 -0
  260. package/public/file.svg +1 -0
  261. package/public/generate_favicon.py +38 -0
  262. package/public/globe.svg +1 -0
  263. package/public/icon.png +0 -0
  264. package/public/next.svg +1 -0
  265. package/public/vercel.svg +1 -0
  266. package/public/window.svg +1 -0
@@ -0,0 +1,6 @@
1
+ exports.id=433,exports.ids=[433],exports.modules={58:(a,b,c)=>{"use strict";var d=c(60852),e=c(60731);function f(a){d.call(this,"ConvertWorker to "+a),this.destType=a}e.inherits(f,d),f.prototype.processChunk=function(a){this.push({data:e.transformTo(this.destType,a.data),meta:a.meta})},a.exports=f},2862:(a,b,c)=>{try{var d=c(28354);if("function"!=typeof d.inherits)throw"";a.exports=d.inherits}catch(b){a.exports=c(91673)}},3085:(a,b,c)=>{function d(a){return Object.prototype.toString.call(a)}b.isArray=function(a){return Array.isArray?Array.isArray(a):"[object Array]"===d(a)},b.isBoolean=function(a){return"boolean"==typeof a},b.isNull=function(a){return null===a},b.isNullOrUndefined=function(a){return null==a},b.isNumber=function(a){return"number"==typeof a},b.isString=function(a){return"string"==typeof a},b.isSymbol=function(a){return"symbol"==typeof a},b.isUndefined=function(a){return void 0===a},b.isRegExp=function(a){return"[object RegExp]"===d(a)},b.isObject=function(a){return"object"==typeof a&&null!==a},b.isDate=function(a){return"[object Date]"===d(a)},b.isError=function(a){return"[object Error]"===d(a)||a instanceof Error},b.isFunction=function(a){return"function"==typeof a},b.isPrimitive=function(a){return null===a||"boolean"==typeof a||"number"==typeof a||"string"==typeof a||"symbol"==typeof a||void 0===a},b.isBuffer=c(79428).Buffer.isBuffer},5474:(a,b,c)=>{"use strict";var d=c(88488).Buffer,e=d.isEncoding||function(a){switch((a=""+a)&&a.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function f(a){var b;switch(this.encoding=function(a){var b=function(a){var b;if(!a)return"utf8";for(;;)switch(a){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return a;default:if(b)return;a=(""+a).toLowerCase(),b=!0}}(a);if("string"!=typeof b&&(d.isEncoding===e||!e(a)))throw Error("Unknown encoding: "+a);return b||a}(a),this.encoding){case"utf16le":this.text=i,this.end=j,b=4;break;case"utf8":this.fillLast=h,b=4;break;case"base64":this.text=k,this.end=l,b=3;break;default:this.write=m,this.end=n;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=d.allocUnsafe(b)}function g(a){return a<=127?0:a>>5==6?2:a>>4==14?3:a>>3==30?4:a>>6==2?-1:-2}function h(a){var b=this.lastTotal-this.lastNeed,c=function(a,b){if((192&b[0])!=128)return a.lastNeed=0,"�";if(a.lastNeed>1&&b.length>1){if((192&b[1])!=128)return a.lastNeed=1,"�";if(a.lastNeed>2&&b.length>2&&(192&b[2])!=128)return a.lastNeed=2,"�"}}(this,a);return void 0!==c?c:this.lastNeed<=a.length?(a.copy(this.lastChar,b,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):void(a.copy(this.lastChar,b,0,a.length),this.lastNeed-=a.length)}function i(a,b){if((a.length-b)%2==0){var c=a.toString("utf16le",b);if(c){var d=c.charCodeAt(c.length-1);if(d>=55296&&d<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=a[a.length-2],this.lastChar[1]=a[a.length-1],c.slice(0,-1)}return c}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=a[a.length-1],a.toString("utf16le",b,a.length-1)}function j(a){var b=a&&a.length?this.write(a):"";if(this.lastNeed){var c=this.lastTotal-this.lastNeed;return b+this.lastChar.toString("utf16le",0,c)}return b}function k(a,b){var c=(a.length-b)%3;return 0===c?a.toString("base64",b):(this.lastNeed=3-c,this.lastTotal=3,1===c?this.lastChar[0]=a[a.length-1]:(this.lastChar[0]=a[a.length-2],this.lastChar[1]=a[a.length-1]),a.toString("base64",b,a.length-c))}function l(a){var b=a&&a.length?this.write(a):"";return this.lastNeed?b+this.lastChar.toString("base64",0,3-this.lastNeed):b}function m(a){return a.toString(this.encoding)}function n(a){return a&&a.length?this.write(a):""}b.I=f,f.prototype.write=function(a){var b,c;if(0===a.length)return"";if(this.lastNeed){if(void 0===(b=this.fillLast(a)))return"";c=this.lastNeed,this.lastNeed=0}else c=0;return c<a.length?b?b+this.text(a,c):this.text(a,c):b||""},f.prototype.end=function(a){var b=a&&a.length?this.write(a):"";return this.lastNeed?b+"�":b},f.prototype.text=function(a,b){var c=function(a,b,c){var d=b.length-1;if(d<c)return 0;var e=g(b[d]);return e>=0?(e>0&&(a.lastNeed=e-1),e):--d<c||-2===e?0:(e=g(b[d]))>=0?(e>0&&(a.lastNeed=e-2),e):--d<c||-2===e?0:(e=g(b[d]))>=0?(e>0&&(2===e?e=0:a.lastNeed=e-3),e):0}(this,a,b);if(!this.lastNeed)return a.toString("utf8",b);this.lastTotal=c;var d=a.length-(c-this.lastNeed);return a.copy(this.lastChar,0,d),a.toString("utf8",b,d)},f.prototype.fillLast=function(a){if(this.lastNeed<=a.length)return a.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);a.copy(this.lastChar,this.lastTotal-this.lastNeed,0,a.length),this.lastNeed-=a.length}},5627:(a,b,c)=>{"use strict";let d;var e=c(45191);let f=(d=0,()=>d++);function g(a){return null==a}function h(a){if(Array.isArray&&Array.isArray(a))return!0;let b=Object.prototype.toString.call(a);return"[object"===b.slice(0,7)&&"Array]"===b.slice(-6)}function i(a){return null!==a&&"[object Object]"===Object.prototype.toString.call(a)}function j(a){return("number"==typeof a||a instanceof Number)&&isFinite(+a)}function k(a,b){return void 0===a?b:a}let l=(a,b)=>"string"==typeof a&&a.endsWith("%")?parseFloat(a)/100*b:+a;function m(a){if(h(a))return a.map(m);if(i(a)){let b=Object.create(null),c=Object.keys(a),d=c.length,e=0;for(;e<d;++e)b[c[e]]=m(a[c[e]]);return b}return a}function n(a){return -1===["__proto__","prototype","constructor"].indexOf(a)}function o(a,b,c,d){if(!n(a))return;let e=b[a],f=c[a];i(e)&&i(f)?p(e,f,d):b[a]=m(f)}function p(a,b,c){let d,e=h(b)?b:[b],f=e.length;if(!i(a))return a;let g=(c=c||{}).merger||o;for(let b=0;b<f;++b){if(!i(d=e[b]))continue;let f=Object.keys(d);for(let b=0,e=f.length;b<e;++b)g(f[b],a,d,c)}return a}function q(a,b){return p(a,b,{merger:r})}function r(a,b,c){if(!n(a))return;let d=b[a],e=c[a];i(d)&&i(e)?q(d,e):Object.prototype.hasOwnProperty.call(b,a)||(b[a]=m(e))}let s={"":a=>a,x:a=>a.x,y:a=>a.y};function t(a){let b=a.split("."),c=[],d="";for(let a of b)(d+=a).endsWith("\\")?d=d.slice(0,-1)+".":(c.push(d),d="");return c}function u(a,b){let c;return(s[b]||(s[b]=(c=t(b),a=>{for(let b of c){if(""===b)break;a=a&&a[b]}return a})))(a)}function v(a){return a.charAt(0).toUpperCase()+a.slice(1)}let w=a=>"function"==typeof a,x=Math.PI,y=2*x,z=y+x,A=1/0,B=x/180,C=x/2,D=x/4,E=2*x/3,F=Math.log10,G=Math.sign;function H(a,b,c){return Math.abs(a-b)<c}function I(a,b){return Math.sqrt(Math.pow(b.x-a.x,2)+Math.pow(b.y-a.y,2))}function J(a,b){return(a-b+z)%y-x}function K(a){return(a%y+y)%y}function L(a,b,c,d){let e=K(a),f=K(b),g=K(c),h=K(f-e),i=K(g-e),j=K(e-f),k=K(e-g);return e===f||e===g||d&&f===g||h>i&&j<k}function M(a,b,c){return Math.max(b,Math.min(c,a))}function N(a,b,c,d=1e-6){return a>=Math.min(b,c)-d&&a<=Math.max(b,c)+d}function O(a,b,c){let d;c=c||(c=>a[c]<b);let e=a.length-1,f=0;for(;e-f>1;)c(d=f+e>>1)?f=d:e=d;return{lo:f,hi:e}}let P=(a,b,c,d)=>O(a,c,d?d=>{let e=a[d][b];return e<c||e===c&&a[d+1][b]===c}:d=>a[d][b]<c),Q=["push","pop","shift","splice","unshift"],R="u"<typeof window?function(a){return a()}:window.requestAnimationFrame,S=a=>0===a||1===a,T=(a,b,c)=>-(Math.pow(2,10*(a-=1))*Math.sin((a-b)*y/c)),U=(a,b,c)=>Math.pow(2,-10*a)*Math.sin((a-b)*y/c)+1,V={linear:a=>a,easeInQuad:a=>a*a,easeOutQuad:a=>-a*(a-2),easeInOutQuad:a=>(a/=.5)<1?.5*a*a:-.5*(--a*(a-2)-1),easeInCubic:a=>a*a*a,easeOutCubic:a=>(a-=1)*a*a+1,easeInOutCubic:a=>(a/=.5)<1?.5*a*a*a:.5*((a-=2)*a*a+2),easeInQuart:a=>a*a*a*a,easeOutQuart:a=>-((a-=1)*a*a*a-1),easeInOutQuart:a=>(a/=.5)<1?.5*a*a*a*a:-.5*((a-=2)*a*a*a-2),easeInQuint:a=>a*a*a*a*a,easeOutQuint:a=>(a-=1)*a*a*a*a+1,easeInOutQuint:a=>(a/=.5)<1?.5*a*a*a*a*a:.5*((a-=2)*a*a*a*a+2),easeInSine:a=>-Math.cos(a*C)+1,easeOutSine:a=>Math.sin(a*C),easeInOutSine:a=>-.5*(Math.cos(x*a)-1),easeInExpo:a=>0===a?0:Math.pow(2,10*(a-1)),easeOutExpo:a=>1===a?1:-Math.pow(2,-10*a)+1,easeInOutExpo:a=>S(a)?a:a<.5?.5*Math.pow(2,10*(2*a-1)):.5*(-Math.pow(2,-10*(2*a-1))+2),easeInCirc:a=>a>=1?a:-(Math.sqrt(1-a*a)-1),easeOutCirc:a=>Math.sqrt(1-(a-=1)*a),easeInOutCirc:a=>(a/=.5)<1?-.5*(Math.sqrt(1-a*a)-1):.5*(Math.sqrt(1-(a-=2)*a)+1),easeInElastic:a=>S(a)?a:T(a,.075,.3),easeOutElastic:a=>S(a)?a:U(a,.075,.3),easeInOutElastic:a=>S(a)?a:a<.5?.5*T(2*a,.1125,.45):.5+.5*U(2*a-1,.1125,.45),easeInBack:a=>a*a*(2.70158*a-1.70158),easeOutBack:a=>(a-=1)*a*(2.70158*a+1.70158)+1,easeInOutBack(a){let b=1.70158;return(a/=.5)<1?.5*(a*a*(((b*=1.525)+1)*a-b)):.5*((a-=2)*a*(((b*=1.525)+1)*a+b)+2)},easeInBounce:a=>1-V.easeOutBounce(1-a),easeOutBounce:a=>a<.36363636363636365?7.5625*a*a:a<.7272727272727273?7.5625*(a-=.5454545454545454)*a+.75:a<.9090909090909091?7.5625*(a-=.8181818181818182)*a+.9375:7.5625*(a-=.9545454545454546)*a+.984375,easeInOutBounce:a=>a<.5?.5*V.easeInBounce(2*a):.5*V.easeOutBounce(2*a-1)+.5};function W(a){if(a&&"object"==typeof a){let b=a.toString();return"[object CanvasPattern]"===b||"[object CanvasGradient]"===b}return!1}function X(a){return W(a)?a:new e.Color(a).saturate(.5).darken(.1).hexString()}let Y=["x","y","borderWidth","radius","tension"],Z=["color","borderColor","backgroundColor"],$=new Map;function _(a,b,c){var d;let e,f;return(e=b+JSON.stringify(d=(d=c)||{}),!(f=$.get(e))&&(f=new Intl.NumberFormat(b,d),$.set(e,f)),f).format(a)}let aa={values:a=>h(a)?a:""+a,numeric(a,b,c){let d;if(0===a)return"0";let e=this.chart.options.locale,f=a;if(c.length>1){var g,h;let b,e=Math.max(Math.abs(c[0].value),Math.abs(c[c.length-1].value));(e<1e-4||e>1e15)&&(d="scientific"),g=a,Math.abs(b=(h=c).length>3?h[2].value-h[1].value:h[1].value-h[0].value)>=1&&g!==Math.floor(g)&&(b=g-Math.floor(g)),f=b}let i=F(Math.abs(f)),j=isNaN(i)?1:Math.max(Math.min(-1*Math.floor(i),20),0),k={notation:d,minimumFractionDigits:j,maximumFractionDigits:j};return Object.assign(k,this.options.ticks.format),_(a,e,k)},logarithmic(a,b,c){return 0===a?"0":[1,2,3,5,10,15].includes(c[b].significand||a/Math.pow(10,Math.floor(F(a))))||b>.8*c.length?aa.numeric.call(this,a,b,c):""}};var ab={formatters:aa};let ac=Object.create(null),ad=Object.create(null);function ae(a,b){if(!b)return a;let c=b.split(".");for(let b=0,d=c.length;b<d;++b){let d=c[b];a=a[d]||(a[d]=Object.create(null))}return a}function af(a,b,c){return"string"==typeof b?p(ae(a,b),c):p(ae(a,""),b)}class ag{constructor(a,b){this.animation=void 0,this.backgroundColor="rgba(0,0,0,0.1)",this.borderColor="rgba(0,0,0,0.1)",this.color="#666",this.datasets={},this.devicePixelRatio=a=>a.chart.platform.getDevicePixelRatio(),this.elements={},this.events=["mousemove","mouseout","click","touchstart","touchmove"],this.font={family:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",size:12,style:"normal",lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(a,b)=>X(b.backgroundColor),this.hoverBorderColor=(a,b)=>X(b.borderColor),this.hoverColor=(a,b)=>X(b.color),this.indexAxis="x",this.interaction={mode:"nearest",intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(a),this.apply(b)}set(a,b){return af(this,a,b)}get(a){return ae(this,a)}describe(a,b){return af(ad,a,b)}override(a,b){return af(ac,a,b)}route(a,b,c,d){let e=ae(this,a),f=ae(this,c),g="_"+b;Object.defineProperties(e,{[g]:{value:e[b],writable:!0},[b]:{enumerable:!0,get(){let a=this[g],b=f[d];return i(a)?Object.assign({},b,a):k(a,b)},set(a){this[g]=a}}})}apply(a){a.forEach(a=>a(this))}}var ah=new ag({_scriptable:a=>!a.startsWith("on"),_indexable:a=>"events"!==a,hover:{_fallback:"interaction"},interaction:{_scriptable:!1,_indexable:!1}},[function(a){a.set("animation",{delay:void 0,duration:1e3,easing:"easeOutQuart",fn:void 0,from:void 0,loop:void 0,to:void 0,type:void 0}),a.describe("animation",{_fallback:!1,_indexable:!1,_scriptable:a=>"onProgress"!==a&&"onComplete"!==a&&"fn"!==a}),a.set("animations",{colors:{type:"color",properties:Z},numbers:{type:"number",properties:Y}}),a.describe("animations",{_fallback:"animation"}),a.set("transitions",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:"transparent"},visible:{type:"boolean",duration:0}}},hide:{animations:{colors:{to:"transparent"},visible:{type:"boolean",easing:"linear",fn:a=>0|a}}}})},function(a){a.set("layout",{autoPadding:!0,padding:{top:0,right:0,bottom:0,left:0}})},function(a){a.set("scale",{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:"ticks",clip:!0,grace:0,grid:{display:!0,lineWidth:1,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(a,b)=>b.lineWidth,tickColor:(a,b)=>b.color,offset:!1},border:{display:!0,dash:[],dashOffset:0,width:1},title:{display:!1,text:"",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:"",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:ab.formatters.values,minor:{},major:{},align:"center",crossAlign:"near",showLabelBackdrop:!1,backdropColor:"rgba(255, 255, 255, 0.75)",backdropPadding:2}}),a.route("scale.ticks","color","","color"),a.route("scale.grid","color","","borderColor"),a.route("scale.border","color","","borderColor"),a.route("scale.title","color","","color"),a.describe("scale",{_fallback:!1,_scriptable:a=>!a.startsWith("before")&&!a.startsWith("after")&&"callback"!==a&&"parser"!==a,_indexable:a=>"borderDash"!==a&&"tickBorderDash"!==a&&"dash"!==a}),a.describe("scales",{_fallback:"scale"}),a.describe("scale.ticks",{_scriptable:a=>"backdropPadding"!==a&&"callback"!==a,_indexable:a=>"backdropPadding"!==a})}]);function ai(a){return!a||g(a.size)||g(a.family)?null:(a.style?a.style+" ":"")+(a.weight?a.weight+" ":"")+a.size+"px "+a.family}function aj(a,b,c,d,e){let f=b[e];return f||(f=b[e]=a.measureText(e).width,c.push(e)),f>d&&(d=f),d}function ak(a,b,c,d,e){let f,g,h,i,j,k,l,m,n=b.pointStyle,o=b.rotation,p=b.radius,q=(o||0)*B;if(n&&"object"==typeof n&&("[object HTMLImageElement]"===(f=n.toString())||"[object HTMLCanvasElement]"===f)){a.save(),a.translate(c,d),a.rotate(q),a.drawImage(n,-n.width/2,-n.height/2,n.width,n.height),a.restore();return}if(!isNaN(p)&&!(p<=0)){switch(a.beginPath(),n){default:e?a.ellipse(c,d,e/2,p,0,0,y):a.arc(c,d,p,0,y),a.closePath();break;case"triangle":k=e?e/2:p,a.moveTo(c+Math.sin(q)*k,d-Math.cos(q)*p),q+=E,a.lineTo(c+Math.sin(q)*k,d-Math.cos(q)*p),q+=E,a.lineTo(c+Math.sin(q)*k,d-Math.cos(q)*p),a.closePath();break;case"rectRounded":j=.516*p,g=Math.cos(q+D)*(i=p-j),l=Math.cos(q+D)*(e?e/2-j:i),h=Math.sin(q+D)*i,m=Math.sin(q+D)*(e?e/2-j:i),a.arc(c-l,d-h,j,q-x,q-C),a.arc(c+m,d-g,j,q-C,q),a.arc(c+l,d+h,j,q,q+C),a.arc(c-m,d+g,j,q+C,q+x),a.closePath();break;case"rect":if(!o){i=Math.SQRT1_2*p,k=e?e/2:i,a.rect(c-k,d-i,2*k,2*i);break}q+=D;case"rectRot":l=Math.cos(q)*(e?e/2:p),g=Math.cos(q)*p,h=Math.sin(q)*p,m=Math.sin(q)*(e?e/2:p),a.moveTo(c-l,d-h),a.lineTo(c+m,d-g),a.lineTo(c+l,d+h),a.lineTo(c-m,d+g),a.closePath();break;case"crossRot":q+=D;case"cross":l=Math.cos(q)*(e?e/2:p),g=Math.cos(q)*p,h=Math.sin(q)*p,m=Math.sin(q)*(e?e/2:p),a.moveTo(c-l,d-h),a.lineTo(c+l,d+h),a.moveTo(c+m,d-g),a.lineTo(c-m,d+g);break;case"star":l=Math.cos(q)*(e?e/2:p),g=Math.cos(q)*p,h=Math.sin(q)*p,m=Math.sin(q)*(e?e/2:p),a.moveTo(c-l,d-h),a.lineTo(c+l,d+h),a.moveTo(c+m,d-g),a.lineTo(c-m,d+g),q+=D,l=Math.cos(q)*(e?e/2:p),g=Math.cos(q)*p,h=Math.sin(q)*p,m=Math.sin(q)*(e?e/2:p),a.moveTo(c-l,d-h),a.lineTo(c+l,d+h),a.moveTo(c+m,d-g),a.lineTo(c-m,d+g);break;case"line":g=e?e/2:Math.cos(q)*p,h=Math.sin(q)*p,a.moveTo(c-g,d-h),a.lineTo(c+g,d+h);break;case"dash":a.moveTo(c,d),a.lineTo(c+Math.cos(q)*(e?e/2:p),d+Math.sin(q)*p);break;case!1:a.closePath()}a.fill(),b.borderWidth>0&&a.stroke()}}function al(a,b,c){return c=c||.5,!b||a&&a.x>b.left-c&&a.x<b.right+c&&a.y>b.top-c&&a.y<b.bottom+c}let am=/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/,an=/^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/;function ao(a,b){let c=(""+a).match(am);if(!c||"normal"===c[1])return 1.2*b;switch(a=+c[2],c[3]){case"px":return a;case"%":a/=100}return b*a}let ap=a=>+a||0;function aq(a,b){let c={},d=i(b),e=d?Object.keys(b):b,f=i(a)?d?c=>k(a[c],a[b[c]]):b=>a[b]:()=>a;for(let a of e)c[a]=ap(f(a));return c}function ar(a){return aq(a,{top:"y",right:"x",bottom:"y",left:"x"})}function as(a,b){return Object.assign(Object.create(a),b)}function at(a,b=[""],c,d,e=()=>a[0]){let f=c||a;return void 0===d&&(d=aB("_fallback",a)),new Proxy({[Symbol.toStringTag]:"Object",_cacheable:!0,_scopes:a,_rootScopes:f,_fallback:d,_getTarget:e,override:c=>at([c,...a],b,f,d)},{deleteProperty:(b,c)=>(delete b[c],delete b._keys,delete a[0][c],!0),get:(c,d)=>ax(c,d,()=>(function(a,b,c,d){let e;for(let f of b)if(void 0!==(e=aB(av(f,a),c)))return aw(a,e)?az(c,d,a,e):e})(d,b,a,c)),getOwnPropertyDescriptor:(a,b)=>Reflect.getOwnPropertyDescriptor(a._scopes[0],b),getPrototypeOf:()=>Reflect.getPrototypeOf(a[0]),has:(a,b)=>aC(a).includes(b),ownKeys:a=>aC(a),set(a,b,c){let d=a._storage||(a._storage=e());return a[b]=d[b]=c,delete a._keys,!0}})}function au(a,b={scriptable:!0,indexable:!0}){let{_scriptable:c=b.scriptable,_indexable:d=b.indexable,_allKeys:e=b.allKeys}=a;return{allKeys:e,scriptable:c,indexable:d,isScriptable:w(c)?c:()=>c,isIndexable:w(d)?d:()=>d}}let av=(a,b)=>a?a+v(b):b,aw=(a,b)=>i(b)&&"adapters"!==a&&(null===Object.getPrototypeOf(b)||b.constructor===Object);function ax(a,b,c){if(Object.prototype.hasOwnProperty.call(a,b)||"constructor"===b)return a[b];let d=c();return a[b]=d,d}let ay=(a,b)=>!0===a?b:"string"==typeof a?u(b,a):void 0;function az(a,b,c,d){var e;let f=b._rootScopes,g=(e=b._fallback,w(e)?e(c,d):e),j=[...a,...f],k=new Set;k.add(d);let l=aA(k,j,c,g||c,d);return null!==l&&(void 0===g||g===c||null!==(l=aA(k,j,g,l,d)))&&at(Array.from(k),[""],f,g,()=>{var a,e,f;let g,j;return a=b,e=c,f=d,e in(g=a._getTarget())||(g[e]={}),h(j=g[e])&&i(f)?f:j||{}})}function aA(a,b,c,d,e){for(;c;)c=function(a,b,c,d,e){for(let g of b){let b=ay(c,g);if(b){var f;a.add(b);let g=(f=b._fallback,w(f)?f(c,e):f);if(void 0!==g&&g!==c&&g!==d)return g}else if(!1===b&&void 0!==d&&c!==d)return null}return!1}(a,b,c,d,e);return c}function aB(a,b){for(let c of b){if(!c)continue;let b=c[a];if(void 0!==b)return b}}function aC(a){let b=a._keys;return b||(b=a._keys=function(a){let b=new Set;for(let c of a)for(let a of Object.keys(c).filter(a=>!a.startsWith("_")))b.add(a);return Array.from(b)}(a._scopes)),b}let aD=Number.EPSILON||1e-14,aE=(a,b)=>b<a.length&&!a[b].skip&&a[b],aF=a=>"x"===a?"y":"x";function aG(a,b,c,d){let e=a.skip?b:a,f=c.skip?b:c,g=I(b,e),h=I(f,b),i=g/(g+h),j=h/(g+h);i=isNaN(i)?0:i,j=isNaN(j)?0:j;let k=d*i,l=d*j;return{previous:{x:b.x-k*(f.x-e.x),y:b.y-k*(f.y-e.y)},next:{x:b.x+l*(f.x-e.x),y:b.y+l*(f.y-e.y)}}}function aH(a,b="x"){let c,d,e,f=aF(b),g=a.length,h=Array(g).fill(0),i=Array(g),j=aE(a,0);for(c=0;c<g;++c)if(d=e,e=j,j=aE(a,c+1),e){if(j){let a=j[b]-e[b];h[c]=0!==a?(j[f]-e[f])/a:0}i[c]=d?j?G(h[c-1])!==G(h[c])?0:(h[c-1]+h[c])/2:h[c-1]:h[c]}!function(a,b,c){let d,e,f,g,h,i=a.length,j=aE(a,0);for(let k=0;k<i-1;++k)if(h=j,j=aE(a,k+1),h&&j){if(H(b[k],0,aD)){c[k]=c[k+1]=0;continue}(g=Math.pow(d=c[k]/b[k],2)+Math.pow(e=c[k+1]/b[k],2))<=9||(f=3/Math.sqrt(g),c[k]=d*f*b[k],c[k+1]=e*f*b[k])}}(a,h,i),function(a,b,c="x"){let d,e,f,g=aF(c),h=a.length,i=aE(a,0);for(let j=0;j<h;++j){if(e=f,f=i,i=aE(a,j+1),!f)continue;let h=f[c],k=f[g];e&&(d=(h-e[c])/3,f[`cp1${c}`]=h-d,f[`cp1${g}`]=k-d*b[j]),i&&(d=(i[c]-h)/3,f[`cp2${c}`]=h+d,f[`cp2${g}`]=k+d*b[j])}}(a,i,b)}function aI(a,b,c){return Math.max(Math.min(a,c),b)}function aJ(){return"u">typeof window&&"u">typeof document}function aK(a){let b=a.parentNode;return b&&"[object ShadowRoot]"===b.toString()&&(b=b.host),b}function aL(a,b,c){let d;return"string"==typeof a?(d=parseInt(a,10),-1!==a.indexOf("%")&&(d=d/100*b.parentNode[c])):d=a,d}let aM=a=>a.ownerDocument.defaultView.getComputedStyle(a,null);function aN(a,b){return aM(a).getPropertyValue(b)}let aO=["top","right","bottom","left"];function aP(a,b,c){let d={};c=c?"-"+c:"";for(let e=0;e<4;e++){let f=aO[e];d[f]=parseFloat(a[b+"-"+f+c])||0}return d.width=d.left+d.right,d.height=d.top+d.bottom,d}let aQ=a=>Math.round(10*a)/10,aR=function(){let a=!1;try{let b={get passive(){return a=!0,!1}};aJ()&&(window.addEventListener("test",null,b),window.removeEventListener("test",null,b))}catch(a){}return a}();function aS(a,b,c,d){return{x:a.x+c*(b.x-a.x),y:a.y+c*(b.y-a.y)}}function aT(a){return"angle"===a?{between:L,compare:J,normalize:K}:{between:N,compare:(a,b)=>a-b,normalize:a=>a}}function aU({start:a,end:b,count:c,loop:d,style:e}){return{start:a%c,end:b%c,loop:d&&(b-a+1)%c==0,style:e}}function aV(a,b,c){let d,e,f;if(!c)return[a];let{property:g,start:h,end:i}=c,j=b.length,{compare:k,between:l,normalize:m}=aT(g),{start:n,end:o,loop:p,style:q}=function(a,b,c){let d,{property:e,start:f,end:g}=c,{between:h,normalize:i}=aT(e),j=b.length,{start:k,end:l,loop:m}=a;if(m){for(k+=j,l+=j,d=0;d<j&&h(i(b[k%j][e]),f,g);++d)k--,l--;k%=j,l%=j}return l<k&&(l+=j),{start:k,end:l,loop:m,style:a.style}}(a,b,c),r=[],s=!1,t=null,u=()=>s||l(h,f,d)&&0!==k(h,f),v=()=>!s||0===k(i,d)||l(i,f,d);for(let a=n,c=n;a<=o;++a)(e=b[a%j]).skip||(d=m(e[g]))!==f&&(s=l(d,h,i),null===t&&u()&&(t=0===k(d,h)?a:c),null!==t&&v()&&(r.push(aU({start:t,end:a,loop:p,count:j,style:q})),t=null),c=a,f=d);return null!==t&&r.push(aU({start:t,end:o,loop:p,count:j,style:q})),r}function aW(a,b,c,d){return d&&d.setContext&&c?function(a,b,c,d){let e=a._chart.getContext(),f=aX(a.options),{_datasetIndex:g,options:{spanGaps:h}}=a,i=c.length,j=[],k=f,l=b[0].start,m=l;function n(a,b,d,e){let f=h?-1:1;if(a!==b){for(a+=i;c[a%i].skip;)a-=f;for(;c[b%i].skip;)b+=f;a%i!=b%i&&(j.push({start:a%i,end:b%i,loop:d,style:e}),k=e,l=b%i)}}for(let a of b){let b,f=c[(l=h?l:a.start)%i];for(m=l+1;m<=a.end;m++){let h=c[m%i];(function(a,b){if(!b)return!1;let c=[],d=function(a,b){return W(b)?(c.includes(b)||c.push(b),c.indexOf(b)):b};return JSON.stringify(a,d)!==JSON.stringify(b,d)})(b=aX(d.setContext(as(e,{type:"segment",p0:f,p1:h,p0DataIndex:(m-1)%i,p1DataIndex:m%i,datasetIndex:g}))),k)&&n(l,m-1,a.loop,k),f=h,k=b}l<m-1&&n(l,m-1,a.loop,k)}return j}(a,b,c,d):b}function aX(a){return{backgroundColor:a.backgroundColor,borderCapStyle:a.borderCapStyle,borderDash:a.borderDash,borderDashOffset:a.borderDashOffset,borderJoinStyle:a.borderJoinStyle,borderWidth:a.borderWidth,borderColor:a.borderColor}}function aY(a,b,c){return a.options.clip?a[c]:b[c]}b.HALF_PI=C,b.INFINITY=A,b.PI=x,b.PITAU=z,b.QUARTER_PI=D,b.RAD_PER_DEG=B,b.TAU=y,b.TWO_THIRDS_PI=E,b.Ticks=ab,b._addGrace=function(a,b,c){let{min:d,max:e}=a,f=l(b,(e-d)/2),g=(a,b)=>c&&0===a?0:a+b;return{min:g(d,-Math.abs(f)),max:g(e,f)}},b._alignPixel=function(a,b,c){let d=a.currentDevicePixelRatio,e=0!==c?Math.max(c/2,.5):0;return Math.round((b-e)*d)/d+e},b._alignStartEnd=(a,b,c)=>"start"===a?b:"end"===a?c:(b+c)/2,b._angleBetween=L,b._angleDiff=J,b._arrayUnique=function(a){let b=new Set(a);return b.size===a.length?a:Array.from(b)},b._attachContext=function a(b,c,d,e){return new Proxy({_cacheable:!1,_proxy:b,_context:c,_subProxy:d,_stack:new Set,_descriptors:au(b,e),setContext:c=>a(b,c,d,e),override:f=>a(b.override(f),c,d,e)},{deleteProperty:(a,c)=>(delete a[c],delete b[c],!0),get:(b,c,d)=>ax(b,c,()=>(function(b,c,d){let{_proxy:e,_context:f,_subProxy:g,_descriptors:j}=b,k=e[c];return w(k)&&j.isScriptable(c)&&(k=function(a,b,c,d){let{_proxy:e,_context:f,_subProxy:g,_stack:h}=c;if(h.has(a))throw Error("Recursion detected: "+Array.from(h).join("->")+"->"+a);h.add(a);let i=b(f,g||d);return h.delete(a),aw(a,i)&&(i=az(e._scopes,e,a,i)),i}(c,k,b,d)),h(k)&&k.length&&(k=function(b,c,d,e){let{_proxy:f,_context:g,_subProxy:h,_descriptors:j}=d;if(void 0!==g.index&&e(b))return c[g.index%c.length];if(i(c[0])){let d=c,e=f._scopes.filter(a=>a!==d);for(let i of(c=[],d)){let d=az(e,f,b,i);c.push(a(d,g,h&&h[b],j))}}return c}(c,k,b,j.isIndexable)),aw(c,k)&&(k=a(k,f,g&&g[c],j)),k})(b,c,d)),getOwnPropertyDescriptor:(a,c)=>a._descriptors.allKeys?Reflect.has(b,c)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(b,c),getPrototypeOf:()=>Reflect.getPrototypeOf(b),has:(a,c)=>Reflect.has(b,c),ownKeys:()=>Reflect.ownKeys(b),set:(a,c,d)=>(b[c]=d,delete a[c],!0)})},b._bezierCurveTo=function(a,b,c,d){if(!b)return a.lineTo(c.x,c.y);a.bezierCurveTo(d?b.cp1x:b.cp2x,d?b.cp1y:b.cp2y,d?c.cp2x:c.cp1x,d?c.cp2y:c.cp1y,c.x,c.y)},b._bezierInterpolation=function(a,b,c,d){let e={x:a.cp2x,y:a.cp2y},f={x:b.cp1x,y:b.cp1y},g=aS(a,e,c),h=aS(e,f,c),i=aS(f,b,c),j=aS(g,h,c),k=aS(h,i,c);return aS(j,k,c)},b._boundSegment=aV,b._boundSegments=function(a,b){let c=[],d=a.segments;for(let e=0;e<d.length;e++){let f=aV(d[e],a.points,b);f.length&&c.push(...f)}return c},b._capitalize=v,b._computeSegments=function(a,b){let c=a.points,d=a.options.spanGaps,e=c.length;if(!e)return[];let f=!!a._loop,{start:g,end:h}=function(a,b,c,d){let e=0,f=b-1;if(c&&!d)for(;e<b&&!a[e].skip;)e++;for(;e<b&&a[e].skip;)e++;for(e%=b,c&&(f+=e);f>e&&a[f%b].skip;)f--;return{start:e,end:f%=b}}(c,e,f,d);if(!0===d)return aW(a,[{start:g,end:h,loop:f}],c,b);let i=h<g?h+e:h,j=!!a._fullLoop&&0===g&&h===e-1;return aW(a,function(a,b,c,d){let e,f=a.length,g=[],h=b,i=a[b];for(e=b+1;e<=c;++e){let c=a[e%f];c.skip||c.stop?i.skip||(d=!1,g.push({start:b%f,end:(e-1)%f,loop:d}),b=h=c.stop?e:null):(h=e,i.skip&&(b=e)),i=c}return null!==h&&g.push({start:b%f,end:h%f,loop:d}),g}(c,g,i,j),c,b)},b._createResolver=at,b._decimalPlaces=function(a){if(!j(a))return;let b=1,c=0;for(;Math.round(a*b)/b!==a;)b*=10,c++;return c},b._deprecated=function(a,b,c,d){void 0!==b&&console.warn(a+': "'+c+'" is deprecated. Please use "'+d+'" instead')},b._descriptors=au,b._elementsEqual=function(a,b){let c,d,e,f;if(!a||!b||a.length!==b.length)return!1;for(c=0,d=a.length;c<d;++c)if(e=a[c],f=b[c],e.datasetIndex!==f.datasetIndex||e.index!==f.index)return!1;return!0},b._factorize=function(a){let b,c=[],d=Math.sqrt(a);for(b=1;b<d;b++)a%b==0&&(c.push(b),c.push(a/b));return d===(0|d)&&c.push(d),c.sort((a,b)=>a-b).pop(),c},b._filterBetween=function(a,b,c){let d=0,e=a.length;for(;d<e&&a[d]<b;)d++;for(;e>d&&a[e-1]>c;)e--;return d>0||e<a.length?a.slice(d,e):a},b._getParentNode=aK,b._getStartAndCountOfVisiblePoints=function(a,b,c){let d=b.length,e=0,f=d;if(a._sorted){let{iScale:h,vScale:i,_parsed:j}=a,k=a.dataset&&a.dataset.options?a.dataset.options.spanGaps:null,l=h.axis,{min:m,max:n,minDefined:o,maxDefined:p}=h.getUserBounds();if(o){if(e=Math.min(P(j,l,m).lo,c?d:P(b,l,h.getPixelForValue(m)).lo),k){let a=j.slice(0,e+1).reverse().findIndex(a=>!g(a[i.axis]));e-=Math.max(0,a)}e=M(e,0,d-1)}if(p){let a=Math.max(P(j,h.axis,n,!0).hi+1,c?0:P(b,l,h.getPixelForValue(n),!0).hi+1);if(k){let b=j.slice(a-1).findIndex(a=>!g(a[i.axis]));a+=Math.max(0,b)}f=M(a,e,d)-e}else f=d-e}return{start:e,count:f}},b._int16Range=function(a){return M(a,-32768,32767)},b._isBetween=N,b._isClickEvent=function(a){return"mouseup"===a.type||"click"===a.type||"contextmenu"===a.type},b._isDomSupported=aJ,b._isPointInArea=al,b._limitValue=M,b._longestText=function(a,b,c,d){let e,f,g,i,j,k=(d=d||{}).data=d.data||{},l=d.garbageCollect=d.garbageCollect||[];d.font!==b&&(k=d.data={},l=d.garbageCollect=[],d.font=b),a.save(),a.font=b;let m=0,n=c.length;for(e=0;e<n;e++)if(null==(i=c[e])||h(i)){if(h(i))for(f=0,g=i.length;f<g;f++)null==(j=i[f])||h(j)||(m=aj(a,k,l,m,j))}else m=aj(a,k,l,m,i);a.restore();let o=l.length/2;if(o>c.length){for(e=0;e<o;e++)delete k[l[e]];l.splice(0,o)}return m},b._lookup=O,b._lookupByKey=P,b._measureText=aj,b._merger=o,b._mergerIf=r,b._normalizeAngle=K,b._parseObjectDataRadialScale=function(a,b,c,d){let e,f,g,{iScale:h}=a,{key:i="r"}=this._parsing,j=Array(d);for(e=0;e<d;++e)g=b[f=e+c],j[e]={r:h.parse(u(g,i),f)};return j},b._pointInLine=aS,b._readValueToProps=aq,b._rlookupByKey=(a,b,c)=>O(a,c,d=>a[d][b]>=c),b._scaleRangesChanged=function(a){let{xScale:b,yScale:c,_scaleRanges:d}=a,e={xmin:b.min,xmax:b.max,ymin:c.min,ymax:c.max};if(!d)return a._scaleRanges=e,!0;let f=d.xmin!==b.min||d.xmax!==b.max||d.ymin!==c.min||d.ymax!==c.max;return Object.assign(d,e),f},b._setMinAndMaxByKey=function(a,b,c){let d,e,f;for(d=0,e=a.length;d<e;d++)isNaN(f=a[d][c])||(b.min=Math.min(b.min,f),b.max=Math.max(b.max,f))},b._splitKey=t,b._steppedInterpolation=function(a,b,c,d){return{x:a.x+c*(b.x-a.x),y:"middle"===d?c<.5?a.y:b.y:"after"===d?c<1?a.y:b.y:c>0?b.y:a.y}},b._steppedLineTo=function(a,b,c,d,e){if(!b)return a.lineTo(c.x,c.y);if("middle"===e){let d=(b.x+c.x)/2;a.lineTo(d,b.y),a.lineTo(d,c.y)}else"after"===e!=!!d?a.lineTo(b.x,c.y):a.lineTo(c.x,b.y);a.lineTo(c.x,c.y)},b._textX=(a,b,c,d)=>a===(d?"left":"right")?c:"center"===a?(b+c)/2:b,b._toLeftRightCenter=a=>"start"===a?"left":"end"===a?"right":"center",b._updateBezierControlPoints=function(a,b,c,d,e){let f,g,h,i;if(b.spanGaps&&(a=a.filter(a=>!a.skip)),"monotone"===b.cubicInterpolationMode)aH(a,e);else{let c=d?a[a.length-1]:a[0];for(f=0,g=a.length;f<g;++f)i=aG(c,h=a[f],a[Math.min(f+1,g-!d)%g],b.tension),h.cp1x=i.previous.x,h.cp1y=i.previous.y,h.cp2x=i.next.x,h.cp2y=i.next.y,c=h}b.capBezierPoints&&function(a,b){let c,d,e,f,g,h=al(a[0],b);for(c=0,d=a.length;c<d;++c)g=f,f=h,h=c<d-1&&al(a[c+1],b),f&&(e=a[c],g&&(e.cp1x=aI(e.cp1x,b.left,b.right),e.cp1y=aI(e.cp1y,b.top,b.bottom)),h&&(e.cp2x=aI(e.cp2x,b.left,b.right),e.cp2y=aI(e.cp2y,b.top,b.bottom)))}(a,c)},b.addRoundedRectPath=function(a,b){let{x:c,y:d,w:e,h:f,radius:g}=b;a.arc(c+g.topLeft,d+g.topLeft,g.topLeft,1.5*x,x,!0),a.lineTo(c,d+f-g.bottomLeft),a.arc(c+g.bottomLeft,d+f-g.bottomLeft,g.bottomLeft,x,C,!0),a.lineTo(c+e-g.bottomRight,d+f),a.arc(c+e-g.bottomRight,d+f-g.bottomRight,g.bottomRight,C,0,!0),a.lineTo(c+e,d+g.topRight),a.arc(c+e-g.topRight,d+g.topRight,g.topRight,0,-C,!0),a.lineTo(c+g.topLeft,d)},b.almostEquals=H,b.almostWhole=function(a,b){let c=Math.round(a);return c-b<=a&&c+b>=a},b.callback=function(a,b,c){if(a&&"function"==typeof a.call)return a.apply(c,b)},b.clearCanvas=function(a,b){(b||a)&&((b=b||a.getContext("2d")).save(),b.resetTransform(),b.clearRect(0,0,a.width,a.height),b.restore())},b.clipArea=function(a,b){a.save(),a.beginPath(),a.rect(b.left,b.top,b.right-b.left,b.bottom-b.top),a.clip()},b.clone=m,b.color=function(a){return W(a)?a:new e.Color(a)},b.createContext=as,b.debounce=function(a,b){let c;return function(...d){return b?(clearTimeout(c),c=setTimeout(a,b,d)):a.apply(this,d),b}},b.defaults=ah,b.defined=a=>void 0!==a,b.descriptors=ad,b.distanceBetweenPoints=I,b.drawPoint=function(a,b,c,d){ak(a,b,c,d,null)},b.drawPointLegend=ak,b.each=function(a,b,c,d){let e,f,g;if(h(a))if(f=a.length,d)for(e=f-1;e>=0;e--)b.call(c,a[e],e);else for(e=0;e<f;e++)b.call(c,a[e],e);else if(i(a))for(e=0,f=(g=Object.keys(a)).length;e<f;e++)b.call(c,a[g[e]],g[e])},b.effects=V,b.finiteOrDefault=function(a,b){return j(a)?a:b},b.fontString=function(a,b,c){return b+" "+a+"px "+c},b.formatNumber=_,b.getAngleFromPoint=function(a,b){let c=b.x-a.x,d=b.y-a.y,e=Math.sqrt(c*c+d*d),f=Math.atan2(d,c);return f<-.5*x&&(f+=y),{angle:f,distance:e}},b.getDatasetClipArea=function(a,b){let c=b._clip;if(c.disabled)return!1;let d=function(a,b){let{xScale:c,yScale:d}=a;return c&&d?{left:aY(c,b,"left"),right:aY(c,b,"right"),top:aY(d,b,"top"),bottom:aY(d,b,"bottom")}:b}(b,a.chartArea);return{left:!1===c.left?0:d.left-(!0===c.left?0:c.left),right:!1===c.right?a.width:d.right+(!0===c.right?0:c.right),top:!1===c.top?0:d.top-(!0===c.top?0:c.top),bottom:!1===c.bottom?a.height:d.bottom+(!0===c.bottom?0:c.bottom)}},b.getHoverColor=X,b.getMaximumSize=function(a,b,c,d){let e=aM(a),f=aP(e,"margin"),g=aL(e.maxWidth,a,"clientWidth")||A,h=aL(e.maxHeight,a,"clientHeight")||A,i=function(a,b,c){let d,e;if(void 0===b||void 0===c){let f=a&&aK(a);if(f){let a=f.getBoundingClientRect(),g=aM(f),h=aP(g,"border","width"),i=aP(g,"padding");b=a.width-i.width-h.width,c=a.height-i.height-h.height,d=aL(g.maxWidth,f,"clientWidth"),e=aL(g.maxHeight,f,"clientHeight")}else b=a.clientWidth,c=a.clientHeight}return{width:b,height:c,maxWidth:d||A,maxHeight:e||A}}(a,b,c),{width:j,height:k}=i;if("content-box"===e.boxSizing){let a=aP(e,"border","width"),b=aP(e,"padding");j-=b.width+a.width,k-=b.height+a.height}return j=Math.max(0,j-f.width),k=Math.max(0,d?j/d:k-f.height),j=aQ(Math.min(j,g,i.maxWidth)),k=aQ(Math.min(k,h,i.maxHeight)),j&&!k&&(k=aQ(j/2)),(void 0!==b||void 0!==c)&&d&&i.height&&k>i.height&&(j=aQ(Math.floor((k=i.height)*d))),{width:j,height:k}},b.getRelativePosition=function(a,b){if("native"in a)return a;let{canvas:c,currentDevicePixelRatio:d}=b,e=aM(c),f="border-box"===e.boxSizing,g=aP(e,"padding"),h=aP(e,"border","width"),{x:i,y:j,box:k}=function(a,b){let c,d,e,f=a.touches,g=f&&f.length?f[0]:a,{offsetX:h,offsetY:i}=g,j=!1;if(e=a.target,(h>0||i>0)&&(!e||!e.shadowRoot))c=h,d=i;else{let a=b.getBoundingClientRect();c=g.clientX-a.left,d=g.clientY-a.top,j=!0}return{x:c,y:d,box:j}}(a,c),l=g.left+(k&&h.left),m=g.top+(k&&h.top),{width:n,height:o}=b;return f&&(n-=g.width+h.width,o-=g.height+h.height),{x:Math.round((i-l)/n*c.width/d),y:Math.round((j-m)/o*c.height/d)}},b.getRtlAdapter=function(a,b,c){var d;return a?(d=c,{x:a=>b+b+d-a,setWidth(a){d=a},textAlign:a=>"center"===a?a:"right"===a?"left":"right",xPlus:(a,b)=>a-b,leftForLtr:(a,b)=>a-b}):{x:a=>a,setWidth(a){},textAlign:a=>a,xPlus:(a,b)=>a+b,leftForLtr:(a,b)=>a}},b.getStyle=aN,b.isArray=h,b.isFunction=w,b.isNullOrUndef=g,b.isNumber=function(a){return"symbol"!=typeof a&&("object"!=typeof a||null===a||!!(Symbol.toPrimitive in a||"toString"in a||"valueOf"in a))&&!isNaN(parseFloat(a))&&isFinite(a)},b.isNumberFinite=j,b.isObject=i,b.isPatternOrGradient=W,b.listenArrayEvents=function(a,b){a._chartjs?a._chartjs.listeners.push(b):(Object.defineProperty(a,"_chartjs",{configurable:!0,enumerable:!1,value:{listeners:[b]}}),Q.forEach(b=>{let c="_onData"+v(b),d=a[b];Object.defineProperty(a,b,{configurable:!0,enumerable:!1,value(...b){let e=d.apply(this,b);return a._chartjs.listeners.forEach(a=>{"function"==typeof a[c]&&a[c](...b)}),e}})}))},b.log10=F,b.merge=p,b.mergeIf=q,b.niceNum=function(a){let b=Math.round(a),c=Math.pow(10,Math.floor(F(a=H(a,b,a/1e3)?b:a))),d=a/c;return(d<=1?1:d<=2?2:d<=5?5:10)*c},b.noop=function(){},b.overrideTextDirection=function(a,b){let c,d;("ltr"===b||"rtl"===b)&&(d=[(c=a.canvas.style).getPropertyValue("direction"),c.getPropertyPriority("direction")],c.setProperty("direction",b,"important"),a.prevTextDirection=d)},b.overrides=ac,b.readUsedSize=function(a,b){let c=aN(a,b),d=c&&c.match(/^(\d+)(\.\d+)?px$/);return d?+d[1]:void 0},b.renderText=function(a,b,c,d,e,f={}){let i,j,k=h(b)?b:[b],l=f.strokeWidth>0&&""!==f.strokeColor;for(a.save(),a.font=e.string,f.translation&&a.translate(f.translation[0],f.translation[1]),g(f.rotation)||a.rotate(f.rotation),f.color&&(a.fillStyle=f.color),f.textAlign&&(a.textAlign=f.textAlign),f.textBaseline&&(a.textBaseline=f.textBaseline),i=0;i<k.length;++i)j=k[i],f.backdrop&&function(a,b){let c=a.fillStyle;a.fillStyle=b.color,a.fillRect(b.left,b.top,b.width,b.height),a.fillStyle=c}(a,f.backdrop),l&&(f.strokeColor&&(a.strokeStyle=f.strokeColor),g(f.strokeWidth)||(a.lineWidth=f.strokeWidth),a.strokeText(j,c,d,f.maxWidth)),a.fillText(j,c,d,f.maxWidth),function(a,b,c,d,e){if(e.strikethrough||e.underline){let f=a.measureText(d),g=b-f.actualBoundingBoxLeft,h=b+f.actualBoundingBoxRight,i=c-f.actualBoundingBoxAscent,j=c+f.actualBoundingBoxDescent,k=e.strikethrough?(i+j)/2:j;a.strokeStyle=a.fillStyle,a.beginPath(),a.lineWidth=e.decorationWidth||2,a.moveTo(g,k),a.lineTo(h,k),a.stroke()}}(a,c,d,j,f),d+=Number(e.lineHeight);a.restore()},b.requestAnimFrame=R,b.resolve=function(a,b,c,d){let e,f,g,i=!0;for(e=0,f=a.length;e<f;++e)if(void 0!==(g=a[e])&&(void 0!==b&&"function"==typeof g&&(g=g(b),i=!1),void 0!==c&&h(g)&&(g=g[c%g.length],i=!1),void 0!==g))return d&&!i&&(d.cacheable=!1),g},b.resolveObjectKey=u,b.restoreTextDirection=function(a,b){void 0!==b&&(delete a.prevTextDirection,a.canvas.style.setProperty("direction",b[0],b[1]))},b.retinaScale=function(a,b,c){let d=b||1,e=aQ(a.height*d),f=aQ(a.width*d);a.height=aQ(a.height),a.width=aQ(a.width);let g=a.canvas;return g.style&&(c||!g.style.height&&!g.style.width)&&(g.style.height=`${a.height}px`,g.style.width=`${a.width}px`),(a.currentDevicePixelRatio!==d||g.height!==e||g.width!==f)&&(a.currentDevicePixelRatio=d,g.height=e,g.width=f,a.ctx.setTransform(d,0,0,d,0,0),!0)},b.setsEqual=(a,b)=>{if(a.size!==b.size)return!1;for(let c of a)if(!b.has(c))return!1;return!0},b.sign=G,b.splineCurve=aG,b.splineCurveMonotone=aH,b.supportsEventListenerOptions=aR,b.throttled=function(a,b){let c=[],d=!1;return function(...e){c=e,d||(d=!0,R.call(window,()=>{d=!1,a.apply(b,c)}))}},b.toDegrees=function(a){return 180/x*a},b.toDimension=l,b.toFont=function(a,b){a=a||{},b=b||ah.font;let c=k(a.size,b.size);"string"==typeof c&&(c=parseInt(c,10));let d=k(a.style,b.style);d&&!(""+d).match(an)&&(console.warn('Invalid font style specified: "'+d+'"'),d=void 0);let e={family:k(a.family,b.family),lineHeight:ao(k(a.lineHeight,b.lineHeight),c),size:c,style:d,weight:k(a.weight,b.weight),string:""};return e.string=ai(e),e},b.toFontString=ai,b.toLineHeight=ao,b.toPadding=function(a){let b=ar(a);return b.width=b.left+b.right,b.height=b.top+b.bottom,b},b.toPercentage=(a,b)=>"string"==typeof a&&a.endsWith("%")?parseFloat(a)/100:a/b,b.toRadians=function(a){return x/180*a},b.toTRBL=ar,b.toTRBLCorners=function(a){return aq(a,["topLeft","topRight","bottomLeft","bottomRight"])},b.uid=f,b.unclipArea=function(a){a.restore()},b.unlistenArrayEvents=function(a,b){let c=a._chartjs;if(!c)return;let d=c.listeners,e=d.indexOf(b);-1!==e&&d.splice(e,1),d.length>0||(Q.forEach(b=>{delete a[b]}),delete a._chartjs)},b.valueOrDefault=k},6181:a=>{"use strict";a.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},11648:a=>{"use strict";"u"<typeof process||!process.version||0===process.version.indexOf("v0.")||0===process.version.indexOf("v1.")&&0!==process.version.indexOf("v1.8.")?a.exports={nextTick:function(a,b,c,d){if("function"!=typeof a)throw TypeError('"callback" argument must be a function');var e,f,g=arguments.length;switch(g){case 0:case 1:return process.nextTick(a);case 2:return process.nextTick(function(){a.call(null,b)});case 3:return process.nextTick(function(){a.call(null,b,c)});case 4:return process.nextTick(function(){a.call(null,b,c,d)});default:for(e=Array(g-1),f=0;f<e.length;)e[f++]=arguments[f];return process.nextTick(function(){a.apply(null,e)})}}}:a.exports=process},12177:(a,b,c)=>{"use strict";var d=c(60346),e=c(60731),f=c(73328),g=c(27489),h=c(44581);function i(a){this.files=[],this.loadOptions=a}i.prototype={checkSignature:function(a){if(!this.reader.readAndCheckSignature(a)){this.reader.index-=4;var b=this.reader.readString(4);throw Error("Corrupted zip or bug: unexpected signature ("+e.pretty(b)+", expected "+e.pretty(a)+")")}},isSignature:function(a,b){var c=this.reader.index;this.reader.setIndex(a);var d=this.reader.readString(4);return this.reader.setIndex(c),d===b},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2);var a=this.reader.readData(this.zipCommentLength),b=h.uint8array?"uint8array":"array",c=e.transformTo(b,a);this.zipComment=this.loadOptions.decodeFileName(c)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.reader.skip(4),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var a,b,c,d=this.zip64EndOfCentralSize-44;0<d;)a=this.reader.readInt(2),b=this.reader.readInt(4),c=this.reader.readData(b),this.zip64ExtensibleData[a]={id:a,length:b,value:c}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),this.disksCount>1)throw Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var a,b;for(a=0;a<this.files.length;a++)b=this.files[a],this.reader.setIndex(b.localHeaderOffset),this.checkSignature(f.LOCAL_FILE_HEADER),b.readLocalPart(this.reader),b.handleUTF8(),b.processAttributes()},readCentralDir:function(){var a;for(this.reader.setIndex(this.centralDirOffset);this.reader.readAndCheckSignature(f.CENTRAL_FILE_HEADER);)(a=new g({zip64:this.zip64},this.loadOptions)).readCentralPart(this.reader),this.files.push(a);if(this.centralDirRecords!==this.files.length&&0!==this.centralDirRecords&&0===this.files.length)throw Error("Corrupted zip or bug: expected "+this.centralDirRecords+" records in central dir, got "+this.files.length)},readEndOfCentral:function(){var a=this.reader.lastIndexOfSignature(f.CENTRAL_DIRECTORY_END);if(a<0){if(!this.isSignature(0,f.LOCAL_FILE_HEADER))throw Error("Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html");throw Error("Corrupted zip: can't find end of central directory")}this.reader.setIndex(a);var b=a;if(this.checkSignature(f.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===e.MAX_VALUE_16BITS||this.diskWithCentralDirStart===e.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===e.MAX_VALUE_16BITS||this.centralDirRecords===e.MAX_VALUE_16BITS||this.centralDirSize===e.MAX_VALUE_32BITS||this.centralDirOffset===e.MAX_VALUE_32BITS){if(this.zip64=!0,(a=this.reader.lastIndexOfSignature(f.ZIP64_CENTRAL_DIRECTORY_LOCATOR))<0)throw Error("Corrupted zip: can't find the ZIP64 end of central directory locator");if(this.reader.setIndex(a),this.checkSignature(f.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,f.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(f.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw Error("Corrupted zip: can't find the ZIP64 end of central directory");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(f.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}var c=this.centralDirOffset+this.centralDirSize;this.zip64&&(c+=20,c+=12+this.zip64EndOfCentralSize);var d=b-c;if(d>0)this.isSignature(b,f.CENTRAL_FILE_HEADER)||(this.reader.zero=d);else if(d<0)throw Error("Corrupted zip: missing "+Math.abs(d)+" bytes.")},prepareReader:function(a){this.reader=d(a)},load:function(a){this.prepareReader(a),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},a.exports=i},14190:a=>{"use strict";a.exports={isNode:"u">typeof Buffer,newBufferFrom:function(a,b){if(Buffer.from&&Buffer.from!==Uint8Array.from)return Buffer.from(a,b);if("number"==typeof a)throw Error('The "data" argument must not be a number');return new Buffer(a,b)},allocBuffer:function(a){if(Buffer.alloc)return Buffer.alloc(a);var b=new Buffer(a);return b.fill(0),b},isBuffer:function(a){return Buffer.isBuffer(a)},isStream:function(a){return a&&"function"==typeof a.on&&"function"==typeof a.pause&&"function"==typeof a.resume}}},14314:(a,b,c)=>{"use strict";var d=c(28693);function e(){}var f={},g=["REJECTED"],h=["FULFILLED"],i=["PENDING"],j=["UNHANDLED"];function k(a){if("function"!=typeof a)throw TypeError("resolver must be a function");this.state=i,this.queue=[],this.outcome=void 0,this.handled=j,a!==e&&o(this,a)}function l(a,b,c){this.promise=a,"function"==typeof b&&(this.onFulfilled=b,this.callFulfilled=this.otherCallFulfilled),"function"==typeof c&&(this.onRejected=c,this.callRejected=this.otherCallRejected)}function m(a,b,c){d(function(){var d;try{d=b(c)}catch(b){return f.reject(a,b)}d===a?f.reject(a,TypeError("Cannot resolve promise with itself")):f.resolve(a,d)})}function n(a){var b=a&&a.then;if(a&&("object"==typeof a||"function"==typeof a)&&"function"==typeof b)return function(){b.apply(a,arguments)}}function o(a,b){var c=!1;function d(b){c||(c=!0,f.reject(a,b))}function e(b){c||(c=!0,f.resolve(a,b))}var g=p(function(){b(e,d)});"error"===g.status&&d(g.value)}function p(a,b){var c={};try{c.value=a(b),c.status="success"}catch(a){c.status="error",c.value=a}return c}a.exports=k,k.prototype.finally=function(a){if("function"!=typeof a)return this;var b=this.constructor;return this.then(function(c){return b.resolve(a()).then(function(){return c})},function(c){return b.resolve(a()).then(function(){throw c})})},k.prototype.catch=function(a){return this.then(null,a)},k.prototype.then=function(a,b){if("function"!=typeof a&&this.state===h||"function"!=typeof b&&this.state===g)return this;var c=new this.constructor(e);return this.handled===j&&(this.handled=null),this.state!==i?m(c,this.state===h?a:b,this.outcome):this.queue.push(new l(c,a,b)),c},l.prototype.callFulfilled=function(a){f.resolve(this.promise,a)},l.prototype.otherCallFulfilled=function(a){m(this.promise,this.onFulfilled,a)},l.prototype.callRejected=function(a){f.reject(this.promise,a)},l.prototype.otherCallRejected=function(a){m(this.promise,this.onRejected,a)},f.resolve=function(a,b){var c=p(n,b);if("error"===c.status)return f.reject(a,c.value);var d=c.value;if(d)o(a,d);else{a.state=h,a.outcome=b;for(var e=-1,g=a.queue.length;++e<g;)a.queue[e].callFulfilled(b)}return a},f.reject=function(a,b){a.state=g,a.outcome=b,a.handled===j&&d(function(){a.handled===j&&process.emit("unhandledRejection",b,a)});for(var c=-1,e=a.queue.length;++c<e;)a.queue[c].callRejected(b);return a},k.resolve=function(a){return a instanceof this?a:f.resolve(new this(e),a)},k.reject=function(a){var b=new this(e);return f.reject(b,a)},k.all=function(a){var b=this;if("[object Array]"!==Object.prototype.toString.call(a))return this.reject(TypeError("must be an array"));var c=a.length,d=!1;if(!c)return this.resolve([]);for(var g=Array(c),h=0,i=-1,j=new this(e);++i<c;)!function(a,e){b.resolve(a).then(function(a){g[e]=a,++h!==c||d||(d=!0,f.resolve(j,g))},function(a){d||(d=!0,f.reject(j,a))})}(a[i],i);return j},k.race=function(a){var b,c=this;if("[object Array]"!==Object.prototype.toString.call(a))return this.reject(TypeError("must be an array"));var d=a.length,g=!1;if(!d)return this.resolve([]);for(var h=-1,i=new this(e);++h<d;){b=a[h],c.resolve(b).then(function(a){g||(g=!0,f.resolve(i,a))},function(a){g||(g=!0,f.reject(i,a))})}return i}},16107:(a,b,c)=>{var d=c(27910);"disable"===process.env.READABLE_STREAM&&d?(a.exports=d,(b=a.exports=d.Readable).Readable=d.Readable,b.Writable=d.Writable,b.Duplex=d.Duplex,b.Transform=d.Transform,b.PassThrough=d.PassThrough,b.Stream=d):((b=a.exports=c(85641)).Stream=d||b,b.Readable=b,b.Writable=c(38441),b.Duplex=c(55927),b.Transform=c(85493),b.PassThrough=c(91691))},16793:(a,b,c)=>{"use strict";var d=c(60731);function e(a){this.data=a,this.length=a.length,this.index=0,this.zero=0}e.prototype={checkOffset:function(a){this.checkIndex(this.index+a)},checkIndex:function(a){if(this.length<this.zero+a||a<0)throw Error("End of data reached (data length = "+this.length+", asked index = "+a+"). Corrupted zip ?")},setIndex:function(a){this.checkIndex(a),this.index=a},skip:function(a){this.setIndex(this.index+a)},byteAt:function(){},readInt:function(a){var b,c=0;for(this.checkOffset(a),b=this.index+a-1;b>=this.index;b--)c=(c<<8)+this.byteAt(b);return this.index+=a,c},readString:function(a){return d.transformTo("string",this.readData(a))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var a=this.readInt(4);return new Date(Date.UTC((a>>25&127)+1980,(a>>21&15)-1,a>>16&31,a>>11&31,a>>5&63,(31&a)<<1))}},a.exports=e},17217:(a,b,c)=>{"use strict";var d=c(69523).Buffer,e=c(28354);a.exports=function(){function a(){if(!(this instanceof a))throw TypeError("Cannot call a class as a function");this.head=null,this.tail=null,this.length=0}return a.prototype.push=function(a){var b={data:a,next:null};this.length>0?this.tail.next=b:this.head=b,this.tail=b,++this.length},a.prototype.unshift=function(a){var b={data:a,next:this.head};0===this.length&&(this.tail=b),this.head=b,++this.length},a.prototype.shift=function(){if(0!==this.length){var a=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,a}},a.prototype.clear=function(){this.head=this.tail=null,this.length=0},a.prototype.join=function(a){if(0===this.length)return"";for(var b=this.head,c=""+b.data;b=b.next;)c+=a+b.data;return c},a.prototype.concat=function(a){if(0===this.length)return d.alloc(0);for(var b,c,e=d.allocUnsafe(a>>>0),f=this.head,g=0;f;)b=f.data,c=g,b.copy(e,c),g+=f.data.length,f=f.next;return e},a}(),e&&e.inspect&&e.inspect.custom&&(a.exports.prototype[e.inspect.custom]=function(){var a=e.inspect({length:this.length});return this.constructor.name+" "+a})},17366:(a,b,c)=>{"use strict";var d=c(16793);function e(a){d.call(this,a);for(var b=0;b<this.data.length;b++)a[b]=255&a[b]}c(60731).inherits(e,d),e.prototype.byteAt=function(a){return this.data[this.zero+a]},e.prototype.lastIndexOfSignature=function(a){for(var b=a.charCodeAt(0),c=a.charCodeAt(1),d=a.charCodeAt(2),e=a.charCodeAt(3),f=this.length-4;f>=0;--f)if(this.data[f]===b&&this.data[f+1]===c&&this.data[f+2]===d&&this.data[f+3]===e)return f-this.zero;return -1},e.prototype.readAndCheckSignature=function(a){var b=a.charCodeAt(0),c=a.charCodeAt(1),d=a.charCodeAt(2),e=a.charCodeAt(3),f=this.readData(4);return b===f[0]&&c===f[1]&&d===f[2]&&e===f[3]},e.prototype.readData=function(a){if(this.checkOffset(a),0===a)return[];var b=this.data.slice(this.zero+this.index,this.zero+this.index+a);return this.index+=a,b},a.exports=e},18190:a=>{"use strict";a.exports=function(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A;c=a.state,d=a.next_in,z=a.input,e=d+(a.avail_in-5),f=a.next_out,A=a.output,g=f-(b-a.avail_out),h=f+(a.avail_out-257),i=c.dmax,j=c.wsize,k=c.whave,l=c.wnext,m=c.window,n=c.hold,o=c.bits,p=c.lencode,q=c.distcode,r=(1<<c.lenbits)-1,s=(1<<c.distbits)-1;a:do for(o<15&&(n+=z[d++]<<o,o+=8,n+=z[d++]<<o,o+=8),t=p[n&r];;){if(n>>>=u=t>>>24,o-=u,0==(u=t>>>16&255))A[f++]=65535&t;else if(16&u)for(v=65535&t,(u&=15)&&(o<u&&(n+=z[d++]<<o,o+=8),v+=n&(1<<u)-1,n>>>=u,o-=u),o<15&&(n+=z[d++]<<o,o+=8,n+=z[d++]<<o,o+=8),t=q[n&s];;){if(n>>>=u=t>>>24,o-=u,16&(u=t>>>16&255)){if(w=65535&t,o<(u&=15)&&(n+=z[d++]<<o,(o+=8)<u&&(n+=z[d++]<<o,o+=8)),(w+=n&(1<<u)-1)>i){a.msg="invalid distance too far back",c.mode=30;break a}if(n>>>=u,o-=u,w>(u=f-g)){if((u=w-u)>k&&c.sane){a.msg="invalid distance too far back",c.mode=30;break a}if(x=0,y=m,0===l){if(x+=j-u,u<v){v-=u;do A[f++]=m[x++];while(--u);x=f-w,y=A}}else if(l<u){if(x+=j+l-u,(u-=l)<v){v-=u;do A[f++]=m[x++];while(--u);if(x=0,l<v){v-=u=l;do A[f++]=m[x++];while(--u);x=f-w,y=A}}}else if(x+=l-u,u<v){v-=u;do A[f++]=m[x++];while(--u);x=f-w,y=A}for(;v>2;)A[f++]=y[x++],A[f++]=y[x++],A[f++]=y[x++],v-=3;v&&(A[f++]=y[x++],v>1&&(A[f++]=y[x++]))}else{x=f-w;do A[f++]=A[x++],A[f++]=A[x++],A[f++]=A[x++],v-=3;while(v>2);v&&(A[f++]=A[x++],v>1&&(A[f++]=A[x++]))}}else if((64&u)==0){t=q[(65535&t)+(n&(1<<u)-1)];continue}else{a.msg="invalid distance code",c.mode=30;break a}break}else if((64&u)==0){t=p[(65535&t)+(n&(1<<u)-1)];continue}else if(32&u){c.mode=12;break a}else{a.msg="invalid literal/length code",c.mode=30;break a}break}while(d<e&&f<h);d-=v=o>>3,o-=v<<3,n&=(1<<o)-1,a.next_in=d,a.next_out=f,a.avail_in=d<e?5+(e-d):5-(d-e),a.avail_out=f<h?257+(h-f):257-(f-h),c.hold=n,c.bits=o}},19840:a=>{"use strict";var b=function(){for(var a,b=[],c=0;c<256;c++){a=c;for(var d=0;d<8;d++)a=1&a?0xedb88320^a>>>1:a>>>1;b[c]=a}return b}();a.exports=function(a,c,d,e){var f=e+d;a^=-1;for(var g=e;g<f;g++)a=a>>>8^b[(a^c[g])&255];return -1^a}},20166:(a,b,c)=>{"use strict";var d=c(59056),e=c(31242),f=c(40557),g=c(72462),h=c(21355),i=c(6181),j=c(61015),k=Object.prototype.toString;function l(a){if(!(this instanceof l))return new l(a);this.options=e.assign({chunkSize:16384,windowBits:0,to:""},a||{});var b=this.options;b.raw&&b.windowBits>=0&&b.windowBits<16&&(b.windowBits=-b.windowBits,0===b.windowBits&&(b.windowBits=-15)),b.windowBits>=0&&b.windowBits<16&&!(a&&a.windowBits)&&(b.windowBits+=32),b.windowBits>15&&b.windowBits<48&&(15&b.windowBits)==0&&(b.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new i,this.strm.avail_out=0;var c=d.inflateInit2(this.strm,b.windowBits);if(c!==g.Z_OK||(this.header=new j,d.inflateGetHeader(this.strm,this.header),b.dictionary&&("string"==typeof b.dictionary?b.dictionary=f.string2buf(b.dictionary):"[object ArrayBuffer]"===k.call(b.dictionary)&&(b.dictionary=new Uint8Array(b.dictionary)),b.raw)&&(c=d.inflateSetDictionary(this.strm,b.dictionary))!==g.Z_OK))throw Error(h[c])}function m(a,b){var c=new l(b);if(c.push(a,!0),c.err)throw c.msg||h[c.err];return c.result}l.prototype.push=function(a,b){var c,h,i,j,l,m=this.strm,n=this.options.chunkSize,o=this.options.dictionary,p=!1;if(this.ended)return!1;h=b===~~b?b:!0===b?g.Z_FINISH:g.Z_NO_FLUSH,"string"==typeof a?m.input=f.binstring2buf(a):"[object ArrayBuffer]"===k.call(a)?m.input=new Uint8Array(a):m.input=a,m.next_in=0,m.avail_in=m.input.length;do{if(0===m.avail_out&&(m.output=new e.Buf8(n),m.next_out=0,m.avail_out=n),(c=d.inflate(m,g.Z_NO_FLUSH))===g.Z_NEED_DICT&&o&&(c=d.inflateSetDictionary(this.strm,o)),c===g.Z_BUF_ERROR&&!0===p&&(c=g.Z_OK,p=!1),c!==g.Z_STREAM_END&&c!==g.Z_OK)return this.onEnd(c),this.ended=!0,!1;m.next_out&&(0===m.avail_out||c===g.Z_STREAM_END||0===m.avail_in&&(h===g.Z_FINISH||h===g.Z_SYNC_FLUSH))&&("string"===this.options.to?(i=f.utf8border(m.output,m.next_out),j=m.next_out-i,l=f.buf2string(m.output,i),m.next_out=j,m.avail_out=n-j,j&&e.arraySet(m.output,m.output,i,j,0),this.onData(l)):this.onData(e.shrinkBuf(m.output,m.next_out))),0===m.avail_in&&0===m.avail_out&&(p=!0)}while((m.avail_in>0||0===m.avail_out)&&c!==g.Z_STREAM_END);return(c===g.Z_STREAM_END&&(h=g.Z_FINISH),h===g.Z_FINISH)?(c=d.inflateEnd(this.strm),this.onEnd(c),this.ended=!0,c===g.Z_OK):(h===g.Z_SYNC_FLUSH&&(this.onEnd(g.Z_OK),m.avail_out=0),!0)},l.prototype.onData=function(a){this.chunks.push(a)},l.prototype.onEnd=function(a){a===g.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=e.flattenChunks(this.chunks)),this.chunks=[],this.err=a,this.msg=this.strm.msg},b.Inflate=l,b.inflate=m,b.inflateRaw=function(a,b){return(b=b||{}).raw=!0,m(a,b)},b.ungzip=m},21355:a=>{"use strict";a.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},26121:(a,b,c)=>{"use strict";var d=c(60731),e=function(){for(var a,b=[],c=0;c<256;c++){a=c;for(var d=0;d<8;d++)a=1&a?0xedb88320^a>>>1:a>>>1;b[c]=a}return b}();a.exports=function(a,b){return void 0!==a&&a.length?"string"!==d.getTypeOf(a)?function(a,b,c){var d=0+c;a^=-1;for(var f=0;f<d;f++)a=a>>>8^e[(a^b[f])&255];return -1^a}(0|b,a,a.length):function(a,b,c){var d=0+c;a^=-1;for(var f=0;f<d;f++)a=a>>>8^e[(a^b.charCodeAt(f))&255];return -1^a}(0|b,a,a.length):0}},27489:(a,b,c)=>{"use strict";var d=c(60346),e=c(60731),f=c(34574),g=c(26121),h=c(49179),i=c(88191),j=c(44581),k=function(a){for(var b in i)if(Object.prototype.hasOwnProperty.call(i,b)&&i[b].magic===a)return i[b];return null};function l(a,b){this.options=a,this.loadOptions=b}l.prototype={isEncrypted:function(){return(1&this.bitFlag)==1},useUTF8:function(){return(2048&this.bitFlag)==2048},readLocalPart:function(a){var b,c;if(a.skip(22),this.fileNameLength=a.readInt(2),c=a.readInt(2),this.fileName=a.readData(this.fileNameLength),a.skip(c),-1===this.compressedSize||-1===this.uncompressedSize)throw Error("Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)");if(null===(b=k(this.compressionMethod)))throw Error("Corrupted zip : compression "+e.pretty(this.compressionMethod)+" unknown (inner file : "+e.transformTo("string",this.fileName)+")");this.decompressed=new f(this.compressedSize,this.uncompressedSize,this.crc32,b,a.readData(this.compressedSize))},readCentralPart:function(a){this.versionMadeBy=a.readInt(2),a.skip(2),this.bitFlag=a.readInt(2),this.compressionMethod=a.readString(2),this.date=a.readDate(),this.crc32=a.readInt(4),this.compressedSize=a.readInt(4),this.uncompressedSize=a.readInt(4);var b=a.readInt(2);if(this.extraFieldsLength=a.readInt(2),this.fileCommentLength=a.readInt(2),this.diskNumberStart=a.readInt(2),this.internalFileAttributes=a.readInt(2),this.externalFileAttributes=a.readInt(4),this.localHeaderOffset=a.readInt(4),this.isEncrypted())throw Error("Encrypted zip are not supported");a.skip(b),this.readExtraFields(a),this.parseZIP64ExtraField(a),this.fileComment=a.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var a=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),0===a&&(this.dosPermissions=63&this.externalFileAttributes),3===a&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var a=d(this.extraFields[1].value);this.uncompressedSize===e.MAX_VALUE_32BITS&&(this.uncompressedSize=a.readInt(8)),this.compressedSize===e.MAX_VALUE_32BITS&&(this.compressedSize=a.readInt(8)),this.localHeaderOffset===e.MAX_VALUE_32BITS&&(this.localHeaderOffset=a.readInt(8)),this.diskNumberStart===e.MAX_VALUE_32BITS&&(this.diskNumberStart=a.readInt(4))}},readExtraFields:function(a){var b,c,d,e=a.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});a.index+4<e;)b=a.readInt(2),c=a.readInt(2),d=a.readData(c),this.extraFields[b]={id:b,length:c,value:d};a.setIndex(e)},handleUTF8:function(){var a=j.uint8array?"uint8array":"array";if(this.useUTF8())this.fileNameStr=h.utf8decode(this.fileName),this.fileCommentStr=h.utf8decode(this.fileComment);else{var b=this.findExtraFieldUnicodePath();if(null!==b)this.fileNameStr=b;else{var c=e.transformTo(a,this.fileName);this.fileNameStr=this.loadOptions.decodeFileName(c)}var d=this.findExtraFieldUnicodeComment();if(null!==d)this.fileCommentStr=d;else{var f=e.transformTo(a,this.fileComment);this.fileCommentStr=this.loadOptions.decodeFileName(f)}}},findExtraFieldUnicodePath:function(){var a=this.extraFields[28789];if(a){var b=d(a.value);return 1!==b.readInt(1)||g(this.fileName)!==b.readInt(4)?null:h.utf8decode(b.readData(a.length-5))}return null},findExtraFieldUnicodeComment:function(){var a=this.extraFields[25461];if(a){var b=d(a.value);return 1!==b.readInt(1)||g(this.fileComment)!==b.readInt(4)?null:h.utf8decode(b.readData(a.length-5))}return null}},a.exports=l},28166:(a,b,c)=>{"use strict";var d=c(60731),e=c(60852);function f(a,b){e.call(this,"Nodejs stream input adapter for "+a),this._upstreamEnded=!1,this._bindStream(b)}d.inherits(f,e),f.prototype._bindStream=function(a){var b=this;this._stream=a,a.pause(),a.on("data",function(a){b.push({data:a,meta:{percent:0}})}).on("error",function(a){b.isPaused?this.generatedError=a:b.error(a)}).on("end",function(){b.isPaused?b._upstreamEnded=!0:b.end()})},f.prototype.pause=function(){return!!e.prototype.pause.call(this)&&(this._stream.pause(),!0)},f.prototype.resume=function(){return!!e.prototype.resume.call(this)&&(this._upstreamEnded?this.end():this._stream.resume(),!0)},a.exports=f},28693:a=>{"use strict";global.MutationObserver||global.WebKitMutationObserver;var b,c=function(){process.nextTick(e)},d=[];function e(){b=!0;for(var a,c,e=d.length;e;){for(c=d,d=[],a=-1;++a<e;)c[a]();e=d.length}b=!1}a.exports=function(a){1!==d.push(a)||b||c()}},31242:(a,b)=>{"use strict";var c="u">typeof Uint8Array&&"u">typeof Uint16Array&&"u">typeof Int32Array;b.assign=function(a){for(var b=Array.prototype.slice.call(arguments,1);b.length;){var c=b.shift();if(c){if("object"!=typeof c)throw TypeError(c+"must be non-object");for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(a[d]=c[d])}}return a},b.shrinkBuf=function(a,b){return a.length===b?a:a.subarray?a.subarray(0,b):(a.length=b,a)};var d={arraySet:function(a,b,c,d,e){if(b.subarray&&a.subarray)return void a.set(b.subarray(c,c+d),e);for(var f=0;f<d;f++)a[e+f]=b[c+f]},flattenChunks:function(a){var b,c,d,e,f,g;for(b=0,d=0,c=a.length;b<c;b++)d+=a[b].length;for(b=0,g=new Uint8Array(d),e=0,c=a.length;b<c;b++)f=a[b],g.set(f,e),e+=f.length;return g}},e={arraySet:function(a,b,c,d,e){for(var f=0;f<d;f++)a[e+f]=b[c+f]},flattenChunks:function(a){return[].concat.apply([],a)}};b.setTyped=function(a){a?(b.Buf8=Uint8Array,b.Buf16=Uint16Array,b.Buf32=Int32Array,b.assign(b,d)):(b.Buf8=Array,b.Buf16=Array,b.Buf32=Array,b.assign(b,e))},b.setTyped(c)},32235:(a,b,c)=>{let d=c(41391),{Chart:e,registerables:f}=d;e.register(...f),a.exports=Object.assign(e,d)},32717:(a,b,c)=>{"use strict";var d=c(31242).assign,e=c(43902),f=c(20166),g=c(72462),h={};d(h,e,f,g),a.exports=h},34574:(a,b,c)=>{"use strict";var d=c(95951),e=c(71777),f=c(76440),g=c(97625);function h(a,b,c,d,e){this.compressedSize=a,this.uncompressedSize=b,this.crc32=c,this.compression=d,this.compressedContent=e}h.prototype={getContentWorker:function(){var a=new e(d.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new g("data_length")),b=this;return a.on("end",function(){if(this.streamInfo.data_length!==b.uncompressedSize)throw Error("Bug : uncompressed data size mismatch")}),a},getCompressedWorker:function(){return new e(d.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},h.createWorkerFrom=function(a,b,c){return a.pipe(new f).pipe(new g("uncompressedSize")).pipe(b.compressWorker(c)).pipe(new g("compressedSize")).withStreamInfo("compression",b)},a.exports=h},35051:(a,b,c)=>{"use strict";var d=c(31242),e=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],f=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],g=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],h=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];a.exports=function(a,b,c,i,j,k,l,m){var n,o,p,q,r,s,t,u,v,w=m.bits,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=null,I=0,J=new d.Buf16(16),K=new d.Buf16(16),L=null,M=0;for(x=0;x<=15;x++)J[x]=0;for(y=0;y<i;y++)J[b[c+y]]++;for(A=15,B=w;A>=1&&0===J[A];A--);if(B>A&&(B=A),0===A)return j[k++]=0x1400000,j[k++]=0x1400000,m.bits=1,0;for(z=1;z<A&&0===J[z];z++);for(B<z&&(B=z),E=1,x=1;x<=15;x++)if(E<<=1,(E-=J[x])<0)return -1;if(E>0&&(0===a||1!==A))return -1;for(x=1,K[1]=0;x<15;x++)K[x+1]=K[x]+J[x];for(y=0;y<i;y++)0!==b[c+y]&&(l[K[b[c+y]]++]=y);if(0===a?(H=L=l,s=19):1===a?(H=e,I-=257,L=f,M-=257,s=256):(H=g,L=h,s=-1),G=0,y=0,x=z,r=k,C=B,D=0,p=-1,q=(F=1<<B)-1,1===a&&F>852||2===a&&F>592)return 1;for(;;){t=x-D,l[y]<s?(u=0,v=l[y]):l[y]>s?(u=L[M+l[y]],v=H[I+l[y]]):(u=96,v=0),n=1<<x-D,z=o=1<<C;do j[r+(G>>D)+(o-=n)]=t<<24|u<<16|v;while(0!==o);for(n=1<<x-1;G&n;)n>>=1;if(0!==n?(G&=n-1,G+=n):G=0,y++,0==--J[x]){if(x===A)break;x=b[c+l[y]]}if(x>B&&(G&q)!==p){for(0===D&&(D=B),r+=z,E=1<<(C=x-D);C+D<A&&!((E-=J[C+D])<=0);)C++,E<<=1;if(F+=1<<C,1===a&&F>852||2===a&&F>592)return 1;j[p=G&q]=B<<24|C<<16|r-k}}return 0!==G&&(j[r+G]=x-D<<24|4194304),m.bits=B,0}},37119:a=>{"u">typeof __nccwpck_require__&&(__nccwpck_require__.ab=__dirname+"/"),({189:function(){!function(a,b){"use strict";if(!a.setImmediate){var c,d,e,f,g,h=1,i={},j=!1,k=a.document,l=Object.getPrototypeOf&&Object.getPrototypeOf(a);l=l&&l.setTimeout?l:a,"[object process]"===({}).toString.call(a.process)?g=function(a){process.nextTick(function(){n(a)})}:function(){if(a.postMessage&&!a.importScripts){var b=!0,c=a.onmessage;return a.onmessage=function(){b=!1},a.postMessage("","*"),a.onmessage=c,b}}()?(c="setImmediate$"+Math.random()+"$",d=function(b){b.source===a&&"string"==typeof b.data&&0===b.data.indexOf(c)&&n(+b.data.slice(c.length))},a.addEventListener?a.addEventListener("message",d,!1):a.attachEvent("onmessage",d),g=function(b){a.postMessage(c+b,"*")}):a.MessageChannel?((e=new MessageChannel).port1.onmessage=function(a){n(a.data)},g=function(a){e.port2.postMessage(a)}):k&&"onreadystatechange"in k.createElement("script")?(f=k.documentElement,g=function(a){var b=k.createElement("script");b.onreadystatechange=function(){n(a),b.onreadystatechange=null,f.removeChild(b),b=null},f.appendChild(b)}):g=function(a){setTimeout(n,0,a)},l.setImmediate=function(a){"function"!=typeof a&&(a=Function(""+a));for(var b=Array(arguments.length-1),c=0;c<b.length;c++)b[c]=arguments[c+1];var d={callback:a,args:b};return i[h]=d,g(h),h++},l.clearImmediate=m}function m(a){delete i[a]}function n(a){if(j)setTimeout(n,0,a);else{var c=i[a];if(c){j=!0;try{var d=c.callback,e=c.args;switch(e.length){case 0:d();break;case 1:d(e[0]);break;case 2:d(e[0],e[1]);break;case 3:d(e[0],e[1],e[2]);break;default:d.apply(b,e)}}finally{m(a),j=!1}}}}}("u"<typeof self?"u"<typeof global?this:global:self)}})[189](),a.exports={}},37911:(a,b,c)=>{"use strict";var d=c(69168);function e(a){d.call(this,a)}c(60731).inherits(e,d),e.prototype.readData=function(a){this.checkOffset(a);var b=this.data.slice(this.zero+this.index,this.zero+this.index+a);return this.index+=a,b},a.exports=e},38349:a=>{var b={}.toString;a.exports=Array.isArray||function(a){return"[object Array]"==b.call(a)}},38441:(a,b,c)=>{"use strict";var d,e,f=c(11648);function g(a){var b=this;this.next=null,this.entry=null,this.finish=function(){var c=b,d=a,e=c.entry;for(c.entry=null;e;){var f=e.callback;d.pendingcb--,f(void 0),e=e.next}d.corkedRequestsFree.next=c}}a.exports=q;var h=["v0.10","v0.9."].indexOf(process.version.slice(0,5))>-1?setImmediate:f.nextTick;q.WritableState=p;var i=Object.create(c(3085));i.inherits=c(2862);var j={deprecate:c(44620)},k=c(75723),l=c(69523).Buffer,m=("u">typeof global?global:"u">typeof window?window:"u">typeof self?self:{}).Uint8Array||function(){},n=c(73229);function o(){}function p(a,b){d=d||c(55927),a=a||{};var e=b instanceof d;this.objectMode=!!a.objectMode,e&&(this.objectMode=this.objectMode||!!a.writableObjectMode);var i=a.highWaterMark,j=a.writableHighWaterMark,k=this.objectMode?16:16384;i||0===i?this.highWaterMark=i:e&&(j||0===j)?this.highWaterMark=j:this.highWaterMark=k,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var l=!1===a.decodeStrings;this.decodeStrings=!l,this.defaultEncoding=a.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(a){!function(a,b){var c=a._writableState,d=c.sync,e=c.writecb;if(c.writing=!1,c.writecb=null,c.length-=c.writelen,c.writelen=0,b)--c.pendingcb,d?(f.nextTick(e,b),f.nextTick(w,a,c),a._writableState.errorEmitted=!0,a.emit("error",b)):(e(b),a._writableState.errorEmitted=!0,a.emit("error",b),w(a,c));else{var g=u(c);g||c.corked||c.bufferProcessing||!c.bufferedRequest||t(a,c),d?h(s,a,c,g,e):s(a,c,g,e)}}(b,a)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new g(this)}i.inherits(q,k),p.prototype.getBuffer=function(){for(var a=this.bufferedRequest,b=[];a;)b.push(a),a=a.next;return b};try{Object.defineProperty(p.prototype,"buffer",{get:j.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(a){}function q(a){if(d=d||c(55927),!e.call(q,this)&&!(this instanceof d))return new q(a);this._writableState=new p(a,this),this.writable=!0,a&&("function"==typeof a.write&&(this._write=a.write),"function"==typeof a.writev&&(this._writev=a.writev),"function"==typeof a.destroy&&(this._destroy=a.destroy),"function"==typeof a.final&&(this._final=a.final)),k.call(this)}function r(a,b,c,d,e,f,g){b.writelen=d,b.writecb=g,b.writing=!0,b.sync=!0,c?a._writev(e,b.onwrite):a._write(e,f,b.onwrite),b.sync=!1}function s(a,b,c,d){var e,f;c||(e=a,0===(f=b).length&&f.needDrain&&(f.needDrain=!1,e.emit("drain"))),b.pendingcb--,d(),w(a,b)}function t(a,b){b.bufferProcessing=!0;var c=b.bufferedRequest;if(a._writev&&c&&c.next){var d=Array(b.bufferedRequestCount),e=b.corkedRequestsFree;e.entry=c;for(var f=0,h=!0;c;)d[f]=c,c.isBuf||(h=!1),c=c.next,f+=1;d.allBuffers=h,r(a,b,!0,b.length,d,"",e.finish),b.pendingcb++,b.lastBufferedRequest=null,e.next?(b.corkedRequestsFree=e.next,e.next=null):b.corkedRequestsFree=new g(b),b.bufferedRequestCount=0}else{for(;c;){var i=c.chunk,j=c.encoding,k=c.callback,l=b.objectMode?1:i.length;if(r(a,b,!1,l,i,j,k),c=c.next,b.bufferedRequestCount--,b.writing)break}null===c&&(b.lastBufferedRequest=null)}b.bufferedRequest=c,b.bufferProcessing=!1}function u(a){return a.ending&&0===a.length&&null===a.bufferedRequest&&!a.finished&&!a.writing}function v(a,b){a._final(function(c){b.pendingcb--,c&&a.emit("error",c),b.prefinished=!0,a.emit("prefinish"),w(a,b)})}function w(a,b){var c=u(b);return c&&(b.prefinished||b.finalCalled||("function"==typeof a._final?(b.pendingcb++,b.finalCalled=!0,f.nextTick(v,a,b)):(b.prefinished=!0,a.emit("prefinish"))),0===b.pendingcb&&(b.finished=!0,a.emit("finish"))),c}"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(e=Function.prototype[Symbol.hasInstance],Object.defineProperty(q,Symbol.hasInstance,{value:function(a){return!!e.call(this,a)||this===q&&a&&a._writableState instanceof p}})):e=function(a){return a instanceof this},q.prototype.pipe=function(){this.emit("error",Error("Cannot pipe, not readable"))},q.prototype.write=function(a,b,c){var d,e,g,h,i,j,k,n,p=this._writableState,q=!1,s=!p.objectMode&&(d=a,l.isBuffer(d)||d instanceof m);return(s&&!l.isBuffer(a)&&(e=a,a=l.from(e)),"function"==typeof b&&(c=b,b=null),s?b="buffer":b||(b=p.defaultEncoding),"function"!=typeof c&&(c=o),p.ended)?(g=c,h=Error("write after end"),this.emit("error",h),f.nextTick(g,h)):(s||(i=a,j=c,k=!0,n=!1,null===i?n=TypeError("May not write null values to stream"):"string"==typeof i||void 0===i||p.objectMode||(n=TypeError("Invalid non-string/buffer chunk")),n&&(this.emit("error",n),f.nextTick(j,n),k=!1),k))&&(p.pendingcb++,q=function(a,b,c,d,e,f){if(!c){var g,h,i=(g=d,h=e,b.objectMode||!1===b.decodeStrings||"string"!=typeof g||(g=l.from(g,h)),g);d!==i&&(c=!0,e="buffer",d=i)}var j=b.objectMode?1:d.length;b.length+=j;var k=b.length<b.highWaterMark;if(k||(b.needDrain=!0),b.writing||b.corked){var m=b.lastBufferedRequest;b.lastBufferedRequest={chunk:d,encoding:e,isBuf:c,callback:f,next:null},m?m.next=b.lastBufferedRequest:b.bufferedRequest=b.lastBufferedRequest,b.bufferedRequestCount+=1}else r(a,b,!1,j,d,e,f);return k}(this,p,s,a,b,c)),q},q.prototype.cork=function(){var a=this._writableState;a.corked++},q.prototype.uncork=function(){var a=this._writableState;a.corked&&(a.corked--,a.writing||a.corked||a.bufferProcessing||!a.bufferedRequest||t(this,a))},q.prototype.setDefaultEncoding=function(a){if("string"==typeof a&&(a=a.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((a+"").toLowerCase())>-1))throw TypeError("Unknown encoding: "+a);return this._writableState.defaultEncoding=a,this},Object.defineProperty(q.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),q.prototype._write=function(a,b,c){c(Error("_write() is not implemented"))},q.prototype._writev=null,q.prototype.end=function(a,b,c){var d,e,g,h=this._writableState;"function"==typeof a?(c=a,a=null,b=null):"function"==typeof b&&(c=b,b=null),null!=a&&this.write(a,b),h.corked&&(h.corked=1,this.uncork()),h.ending||(d=this,e=h,g=c,e.ending=!0,w(d,e),g&&(e.finished?f.nextTick(g):d.once("finish",g)),e.ended=!0,d.writable=!1)},Object.defineProperty(q.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(a){this._writableState&&(this._writableState.destroyed=a)}}),q.prototype.destroy=n.destroy,q.prototype._undestroy=n.undestroy,q.prototype._destroy=function(a,b){this.end(),b(a)}},40346:(a,b,c)=>{"use strict";var d,e,f,g=c(31242);function h(a){for(var b=a.length;--b>=0;)a[b]=0}var i=573,j=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],k=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],l=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],m=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],n=Array(576);h(n);var o=Array(60);h(o);var p=Array(512);h(p);var q=Array(256);h(q);var r=Array(29);h(r);var s=Array(30);function t(a,b,c,d,e){this.static_tree=a,this.extra_bits=b,this.extra_base=c,this.elems=d,this.max_length=e,this.has_stree=a&&a.length}function u(a,b){this.dyn_tree=a,this.max_code=0,this.stat_desc=b}function v(a){return a<256?p[a]:p[256+(a>>>7)]}function w(a,b){a.pending_buf[a.pending++]=255&b,a.pending_buf[a.pending++]=b>>>8&255}function x(a,b,c){a.bi_valid>16-c?(a.bi_buf|=b<<a.bi_valid&65535,w(a,a.bi_buf),a.bi_buf=b>>16-a.bi_valid,a.bi_valid+=c-16):(a.bi_buf|=b<<a.bi_valid&65535,a.bi_valid+=c)}function y(a,b,c){x(a,c[2*b],c[2*b+1])}function z(a,b){var c=0;do c|=1&a,a>>>=1,c<<=1;while(--b>0);return c>>>1}function A(a,b,c){var d,e,f=Array(16),g=0;for(d=1;d<=15;d++)f[d]=g=g+c[d-1]<<1;for(e=0;e<=b;e++){var h=a[2*e+1];0!==h&&(a[2*e]=z(f[h]++,h))}}function B(a){var b;for(b=0;b<286;b++)a.dyn_ltree[2*b]=0;for(b=0;b<30;b++)a.dyn_dtree[2*b]=0;for(b=0;b<19;b++)a.bl_tree[2*b]=0;a.dyn_ltree[512]=1,a.opt_len=a.static_len=0,a.last_lit=a.matches=0}function C(a){a.bi_valid>8?w(a,a.bi_buf):a.bi_valid>0&&(a.pending_buf[a.pending++]=a.bi_buf),a.bi_buf=0,a.bi_valid=0}function D(a,b,c,d){var e=2*b,f=2*c;return a[e]<a[f]||a[e]===a[f]&&d[b]<=d[c]}function E(a,b,c){for(var d=a.heap[c],e=c<<1;e<=a.heap_len&&(e<a.heap_len&&D(b,a.heap[e+1],a.heap[e],a.depth)&&e++,!D(b,d,a.heap[e],a.depth));)a.heap[c]=a.heap[e],c=e,e<<=1;a.heap[c]=d}function F(a,b,c){var d,e,f,g,h=0;if(0!==a.last_lit)do d=a.pending_buf[a.d_buf+2*h]<<8|a.pending_buf[a.d_buf+2*h+1],e=a.pending_buf[a.l_buf+h],h++,0===d?y(a,e,b):(y(a,(f=q[e])+256+1,b),0!==(g=j[f])&&x(a,e-=r[f],g),y(a,f=v(--d),c),0!==(g=k[f])&&x(a,d-=s[f],g));while(h<a.last_lit);y(a,256,b)}function G(a,b){var c,d,e,f=b.dyn_tree,g=b.stat_desc.static_tree,h=b.stat_desc.has_stree,j=b.stat_desc.elems,k=-1;for(c=0,a.heap_len=0,a.heap_max=i;c<j;c++)0!==f[2*c]?(a.heap[++a.heap_len]=k=c,a.depth[c]=0):f[2*c+1]=0;for(;a.heap_len<2;)f[2*(e=a.heap[++a.heap_len]=k<2?++k:0)]=1,a.depth[e]=0,a.opt_len--,h&&(a.static_len-=g[2*e+1]);for(b.max_code=k,c=a.heap_len>>1;c>=1;c--)E(a,f,c);e=j;do c=a.heap[1],a.heap[1]=a.heap[a.heap_len--],E(a,f,1),d=a.heap[1],a.heap[--a.heap_max]=c,a.heap[--a.heap_max]=d,f[2*e]=f[2*c]+f[2*d],a.depth[e]=(a.depth[c]>=a.depth[d]?a.depth[c]:a.depth[d])+1,f[2*c+1]=f[2*d+1]=e,a.heap[1]=e++,E(a,f,1);while(a.heap_len>=2);a.heap[--a.heap_max]=a.heap[1],function(a,b){var c,d,e,f,g,h,j=b.dyn_tree,k=b.max_code,l=b.stat_desc.static_tree,m=b.stat_desc.has_stree,n=b.stat_desc.extra_bits,o=b.stat_desc.extra_base,p=b.stat_desc.max_length,q=0;for(f=0;f<=15;f++)a.bl_count[f]=0;for(j[2*a.heap[a.heap_max]+1]=0,c=a.heap_max+1;c<i;c++)(f=j[2*j[2*(d=a.heap[c])+1]+1]+1)>p&&(f=p,q++),j[2*d+1]=f,!(d>k)&&(a.bl_count[f]++,g=0,d>=o&&(g=n[d-o]),h=j[2*d],a.opt_len+=h*(f+g),m&&(a.static_len+=h*(l[2*d+1]+g)));if(0!==q){do{for(f=p-1;0===a.bl_count[f];)f--;a.bl_count[f]--,a.bl_count[f+1]+=2,a.bl_count[p]--,q-=2}while(q>0);for(f=p;0!==f;f--)for(d=a.bl_count[f];0!==d;)!((e=a.heap[--c])>k)&&(j[2*e+1]!==f&&(a.opt_len+=(f-j[2*e+1])*j[2*e],j[2*e+1]=f),d--)}}(a,b),A(f,k,a.bl_count)}function H(a,b,c){var d,e,f=-1,g=b[1],h=0,i=7,j=4;for(0===g&&(i=138,j=3),b[(c+1)*2+1]=65535,d=0;d<=c;d++)e=g,g=b[(d+1)*2+1],++h<i&&e===g||(h<j?a.bl_tree[2*e]+=h:0!==e?(e!==f&&a.bl_tree[2*e]++,a.bl_tree[32]++):h<=10?a.bl_tree[34]++:a.bl_tree[36]++,h=0,f=e,0===g?(i=138,j=3):e===g?(i=6,j=3):(i=7,j=4))}function I(a,b,c){var d,e,f=-1,g=b[1],h=0,i=7,j=4;for(0===g&&(i=138,j=3),d=0;d<=c;d++)if(e=g,g=b[(d+1)*2+1],!(++h<i)||e!==g){if(h<j)do y(a,e,a.bl_tree);while(0!=--h);else 0!==e?(e!==f&&(y(a,e,a.bl_tree),h--),y(a,16,a.bl_tree),x(a,h-3,2)):h<=10?(y(a,17,a.bl_tree),x(a,h-3,3)):(y(a,18,a.bl_tree),x(a,h-11,7));h=0,f=e,0===g?(i=138,j=3):e===g?(i=6,j=3):(i=7,j=4)}}h(s);var J=!1;function K(a,b,c,d){x(a,0+ +!!d,3),C(a),w(a,c),w(a,~c),g.arraySet(a.pending_buf,a.window,b,c,a.pending),a.pending+=c}b._tr_init=function(a){J||(!function(){var a,b,c,g,h,i=Array(16);for(g=0,c=0;g<28;g++)for(a=0,r[g]=c;a<1<<j[g];a++)q[c++]=g;for(q[c-1]=g,h=0,g=0;g<16;g++)for(a=0,s[g]=h;a<1<<k[g];a++)p[h++]=g;for(h>>=7;g<30;g++)for(a=0,s[g]=h<<7;a<1<<k[g]-7;a++)p[256+h++]=g;for(b=0;b<=15;b++)i[b]=0;for(a=0;a<=143;)n[2*a+1]=8,a++,i[8]++;for(;a<=255;)n[2*a+1]=9,a++,i[9]++;for(;a<=279;)n[2*a+1]=7,a++,i[7]++;for(;a<=287;)n[2*a+1]=8,a++,i[8]++;for(A(n,287,i),a=0;a<30;a++)o[2*a+1]=5,o[2*a]=z(a,5);d=new t(n,j,257,286,15),e=new t(o,k,0,30,15),f=new t([],l,0,19,7)}(),J=!0),a.l_desc=new u(a.dyn_ltree,d),a.d_desc=new u(a.dyn_dtree,e),a.bl_desc=new u(a.bl_tree,f),a.bi_buf=0,a.bi_valid=0,B(a)},b._tr_stored_block=K,b._tr_flush_block=function(a,b,c,d){var e,f,g=0;a.level>0?(2===a.strm.data_type&&(a.strm.data_type=function(a){var b,c=0xf3ffc07f;for(b=0;b<=31;b++,c>>>=1)if(1&c&&0!==a.dyn_ltree[2*b])return 0;if(0!==a.dyn_ltree[18]||0!==a.dyn_ltree[20]||0!==a.dyn_ltree[26])return 1;for(b=32;b<256;b++)if(0!==a.dyn_ltree[2*b])return 1;return 0}(a)),G(a,a.l_desc),G(a,a.d_desc),g=function(a){var b;for(H(a,a.dyn_ltree,a.l_desc.max_code),H(a,a.dyn_dtree,a.d_desc.max_code),G(a,a.bl_desc),b=18;b>=3&&0===a.bl_tree[2*m[b]+1];b--);return a.opt_len+=3*(b+1)+5+5+4,b}(a),e=a.opt_len+3+7>>>3,(f=a.static_len+3+7>>>3)<=e&&(e=f)):e=f=c+5,c+4<=e&&-1!==b?K(a,b,c,d):4===a.strategy||f===e?(x(a,2+ +!!d,3),F(a,n,o)):(x(a,4+ +!!d,3),function(a,b,c,d){var e;for(x(a,b-257,5),x(a,c-1,5),x(a,d-4,4),e=0;e<d;e++)x(a,a.bl_tree[2*m[e]+1],3);I(a,a.dyn_ltree,b-1),I(a,a.dyn_dtree,c-1)}(a,a.l_desc.max_code+1,a.d_desc.max_code+1,g+1),F(a,a.dyn_ltree,a.dyn_dtree)),B(a),d&&C(a)},b._tr_tally=function(a,b,c){return a.pending_buf[a.d_buf+2*a.last_lit]=b>>>8&255,a.pending_buf[a.d_buf+2*a.last_lit+1]=255&b,a.pending_buf[a.l_buf+a.last_lit]=255&c,a.last_lit++,0===b?a.dyn_ltree[2*c]++:(a.matches++,b--,a.dyn_ltree[(q[c]+256+1)*2]++,a.dyn_dtree[2*v(b)]++),a.last_lit===a.lit_bufsize-1},b._tr_align=function(a){x(a,2,3),y(a,256,n),16===a.bi_valid?(w(a,a.bi_buf),a.bi_buf=0,a.bi_valid=0):a.bi_valid>=8&&(a.pending_buf[a.pending++]=255&a.bi_buf,a.bi_buf>>=8,a.bi_valid-=8)}},40557:(a,b,c)=>{"use strict";var d=c(31242),e=!0,f=!0;try{String.fromCharCode.apply(null,[0])}catch(a){e=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(a){f=!1}for(var g=new d.Buf8(256),h=0;h<256;h++)g[h]=h>=252?6:h>=248?5:h>=240?4:h>=224?3:h>=192?2:1;function i(a,b){if(b<65534&&(a.subarray&&f||!a.subarray&&e))return String.fromCharCode.apply(null,d.shrinkBuf(a,b));for(var c="",g=0;g<b;g++)c+=String.fromCharCode(a[g]);return c}g[254]=g[254]=1,b.string2buf=function(a){var b,c,e,f,g,h=a.length,i=0;for(f=0;f<h;f++)(64512&(c=a.charCodeAt(f)))==55296&&f+1<h&&(64512&(e=a.charCodeAt(f+1)))==56320&&(c=65536+(c-55296<<10)+(e-56320),f++),i+=c<128?1:c<2048?2:c<65536?3:4;for(g=0,b=new d.Buf8(i),f=0;g<i;f++)(64512&(c=a.charCodeAt(f)))==55296&&f+1<h&&(64512&(e=a.charCodeAt(f+1)))==56320&&(c=65536+(c-55296<<10)+(e-56320),f++),c<128?b[g++]=c:(c<2048?b[g++]=192|c>>>6:(c<65536?b[g++]=224|c>>>12:(b[g++]=240|c>>>18,b[g++]=128|c>>>12&63),b[g++]=128|c>>>6&63),b[g++]=128|63&c);return b},b.buf2binstring=function(a){return i(a,a.length)},b.binstring2buf=function(a){for(var b=new d.Buf8(a.length),c=0,e=b.length;c<e;c++)b[c]=a.charCodeAt(c);return b},b.buf2string=function(a,b){var c,d,e,f,h=b||a.length,j=Array(2*h);for(d=0,c=0;c<h;){if((e=a[c++])<128){j[d++]=e;continue}if((f=g[e])>4){j[d++]=65533,c+=f-1;continue}for(e&=2===f?31:3===f?15:7;f>1&&c<h;)e=e<<6|63&a[c++],f--;if(f>1){j[d++]=65533;continue}e<65536?j[d++]=e:(e-=65536,j[d++]=55296|e>>10&1023,j[d++]=56320|1023&e)}return i(j,d)},b.utf8border=function(a,b){var c;for((b=b||a.length)>a.length&&(b=a.length),c=b-1;c>=0&&(192&a[c])==128;)c--;return c<0||0===c?b:c+g[a[c]]>b?c:b}},40580:(a,b,c)=>{"use strict";var d,e=c(31242),f=c(40346),g=c(46210),h=c(19840),i=c(21355),j=573;function k(a,b){return a.msg=i[b],b}function l(a){return(a<<1)-9*(a>4)}function m(a){for(var b=a.length;--b>=0;)a[b]=0}function n(a){var b=a.state,c=b.pending;c>a.avail_out&&(c=a.avail_out),0!==c&&(e.arraySet(a.output,b.pending_buf,b.pending_out,c,a.next_out),a.next_out+=c,b.pending_out+=c,a.total_out+=c,a.avail_out-=c,b.pending-=c,0===b.pending&&(b.pending_out=0))}function o(a,b){f._tr_flush_block(a,a.block_start>=0?a.block_start:-1,a.strstart-a.block_start,b),a.block_start=a.strstart,n(a.strm)}function p(a,b){a.pending_buf[a.pending++]=b}function q(a,b){a.pending_buf[a.pending++]=b>>>8&255,a.pending_buf[a.pending++]=255&b}function r(a,b){var c,d,e=a.max_chain_length,f=a.strstart,g=a.prev_length,h=a.nice_match,i=a.strstart>a.w_size-262?a.strstart-(a.w_size-262):0,j=a.window,k=a.w_mask,l=a.prev,m=a.strstart+258,n=j[f+g-1],o=j[f+g];a.prev_length>=a.good_match&&(e>>=2),h>a.lookahead&&(h=a.lookahead);do{if(j[(c=b)+g]!==o||j[c+g-1]!==n||j[c]!==j[f]||j[++c]!==j[f+1])continue;f+=2,c++;do;while(j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&f<m);if(d=258-(m-f),f=m-258,d>g){if(a.match_start=b,g=d,d>=h)break;n=j[f+g-1],o=j[f+g]}}while((b=l[b&k])>i&&0!=--e);return g<=a.lookahead?g:a.lookahead}function s(a){var b,c,d,f,i,j=a.w_size;do{if(f=a.window_size-a.lookahead-a.strstart,a.strstart>=j+(j-262)){e.arraySet(a.window,a.window,j,j,0),a.match_start-=j,a.strstart-=j,a.block_start-=j,b=c=a.hash_size;do d=a.head[--b],a.head[b]=d>=j?d-j:0;while(--c);b=c=j;do d=a.prev[--b],a.prev[b]=d>=j?d-j:0;while(--c);f+=j}if(0===a.strm.avail_in)break;if(c=function(a,b,c,d){var f=a.avail_in;return(f>d&&(f=d),0===f)?0:(a.avail_in-=f,e.arraySet(b,a.input,a.next_in,f,c),1===a.state.wrap?a.adler=g(a.adler,b,f,c):2===a.state.wrap&&(a.adler=h(a.adler,b,f,c)),a.next_in+=f,a.total_in+=f,f)}(a.strm,a.window,a.strstart+a.lookahead,f),a.lookahead+=c,a.lookahead+a.insert>=3)for(i=a.strstart-a.insert,a.ins_h=a.window[i],a.ins_h=(a.ins_h<<a.hash_shift^a.window[i+1])&a.hash_mask;a.insert&&(a.ins_h=(a.ins_h<<a.hash_shift^a.window[i+3-1])&a.hash_mask,a.prev[i&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=i,i++,a.insert--,!(a.lookahead+a.insert<3)););}while(a.lookahead<262&&0!==a.strm.avail_in)}function t(a,b){for(var c,d;;){if(a.lookahead<262){if(s(a),a.lookahead<262&&0===b)return 1;if(0===a.lookahead)break}if(c=0,a.lookahead>=3&&(a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+3-1])&a.hash_mask,c=a.prev[a.strstart&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=a.strstart),0!==c&&a.strstart-c<=a.w_size-262&&(a.match_length=r(a,c)),a.match_length>=3)if(d=f._tr_tally(a,a.strstart-a.match_start,a.match_length-3),a.lookahead-=a.match_length,a.match_length<=a.max_lazy_match&&a.lookahead>=3){a.match_length--;do a.strstart++,a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+3-1])&a.hash_mask,c=a.prev[a.strstart&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=a.strstart;while(0!=--a.match_length);a.strstart++}else a.strstart+=a.match_length,a.match_length=0,a.ins_h=a.window[a.strstart],a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+1])&a.hash_mask;else d=f._tr_tally(a,0,a.window[a.strstart]),a.lookahead--,a.strstart++;if(d&&(o(a,!1),0===a.strm.avail_out))return 1}return(a.insert=a.strstart<2?a.strstart:2,4===b)?(o(a,!0),0===a.strm.avail_out)?3:4:a.last_lit&&(o(a,!1),0===a.strm.avail_out)?1:2}function u(a,b){for(var c,d,e;;){if(a.lookahead<262){if(s(a),a.lookahead<262&&0===b)return 1;if(0===a.lookahead)break}if(c=0,a.lookahead>=3&&(a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+3-1])&a.hash_mask,c=a.prev[a.strstart&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=a.strstart),a.prev_length=a.match_length,a.prev_match=a.match_start,a.match_length=2,0!==c&&a.prev_length<a.max_lazy_match&&a.strstart-c<=a.w_size-262&&(a.match_length=r(a,c),a.match_length<=5&&(1===a.strategy||3===a.match_length&&a.strstart-a.match_start>4096)&&(a.match_length=2)),a.prev_length>=3&&a.match_length<=a.prev_length){e=a.strstart+a.lookahead-3,d=f._tr_tally(a,a.strstart-1-a.prev_match,a.prev_length-3),a.lookahead-=a.prev_length-1,a.prev_length-=2;do++a.strstart<=e&&(a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+3-1])&a.hash_mask,c=a.prev[a.strstart&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=a.strstart);while(0!=--a.prev_length);if(a.match_available=0,a.match_length=2,a.strstart++,d&&(o(a,!1),0===a.strm.avail_out))return 1}else if(a.match_available){if((d=f._tr_tally(a,0,a.window[a.strstart-1]))&&o(a,!1),a.strstart++,a.lookahead--,0===a.strm.avail_out)return 1}else a.match_available=1,a.strstart++,a.lookahead--}return(a.match_available&&(d=f._tr_tally(a,0,a.window[a.strstart-1]),a.match_available=0),a.insert=a.strstart<2?a.strstart:2,4===b)?(o(a,!0),0===a.strm.avail_out)?3:4:a.last_lit&&(o(a,!1),0===a.strm.avail_out)?1:2}function v(a,b,c,d,e){this.good_length=a,this.max_lazy=b,this.nice_length=c,this.max_chain=d,this.func=e}function w(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=8,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new e.Buf16(2*j),this.dyn_dtree=new e.Buf16(122),this.bl_tree=new e.Buf16(78),m(this.dyn_ltree),m(this.dyn_dtree),m(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new e.Buf16(16),this.heap=new e.Buf16(573),m(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new e.Buf16(573),m(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function x(a){var b;return a&&a.state?(a.total_in=a.total_out=0,a.data_type=2,(b=a.state).pending=0,b.pending_out=0,b.wrap<0&&(b.wrap=-b.wrap),b.status=b.wrap?42:113,a.adler=+(2!==b.wrap),b.last_flush=0,f._tr_init(b),0):k(a,-2)}function y(a){var b,c=x(a);return 0===c&&((b=a.state).window_size=2*b.w_size,m(b.head),b.max_lazy_match=d[b.level].max_lazy,b.good_match=d[b.level].good_length,b.nice_match=d[b.level].nice_length,b.max_chain_length=d[b.level].max_chain,b.strstart=0,b.block_start=0,b.lookahead=0,b.insert=0,b.match_length=b.prev_length=2,b.match_available=0,b.ins_h=0),c}function z(a,b,c,d,f,g){if(!a)return -2;var h=1;if(-1===b&&(b=6),d<0?(h=0,d=-d):d>15&&(h=2,d-=16),f<1||f>9||8!==c||d<8||d>15||b<0||b>9||g<0||g>4)return k(a,-2);8===d&&(d=9);var i=new w;return a.state=i,i.strm=a,i.wrap=h,i.gzhead=null,i.w_bits=d,i.w_size=1<<i.w_bits,i.w_mask=i.w_size-1,i.hash_bits=f+7,i.hash_size=1<<i.hash_bits,i.hash_mask=i.hash_size-1,i.hash_shift=~~((i.hash_bits+3-1)/3),i.window=new e.Buf8(2*i.w_size),i.head=new e.Buf16(i.hash_size),i.prev=new e.Buf16(i.w_size),i.lit_bufsize=1<<f+6,i.pending_buf_size=4*i.lit_bufsize,i.pending_buf=new e.Buf8(i.pending_buf_size),i.d_buf=+i.lit_bufsize,i.l_buf=3*i.lit_bufsize,i.level=b,i.strategy=g,i.method=c,y(a)}d=[new v(0,0,0,0,function(a,b){var c=65535;for(65535>a.pending_buf_size-5&&(c=a.pending_buf_size-5);;){if(a.lookahead<=1){if(s(a),0===a.lookahead&&0===b)return 1;if(0===a.lookahead)break}a.strstart+=a.lookahead,a.lookahead=0;var d=a.block_start+c;if((0===a.strstart||a.strstart>=d)&&(a.lookahead=a.strstart-d,a.strstart=d,o(a,!1),0===a.strm.avail_out)||a.strstart-a.block_start>=a.w_size-262&&(o(a,!1),0===a.strm.avail_out))return 1}return(a.insert=0,4===b)?(o(a,!0),0===a.strm.avail_out)?3:4:(a.strstart>a.block_start&&(o(a,!1),a.strm.avail_out),1)}),new v(4,4,8,4,t),new v(4,5,16,8,t),new v(4,6,32,32,t),new v(4,4,16,16,u),new v(8,16,32,32,u),new v(8,16,128,128,u),new v(8,32,128,256,u),new v(32,128,258,1024,u),new v(32,258,258,4096,u)],b.deflateInit=function(a,b){return z(a,b,8,15,8,0)},b.deflateInit2=z,b.deflateReset=y,b.deflateResetKeep=x,b.deflateSetHeader=function(a,b){return a&&a.state&&2===a.state.wrap?(a.state.gzhead=b,0):-2},b.deflate=function(a,b){if(!a||!a.state||b>5||b<0)return a?k(a,-2):-2;if(e=a.state,!a.output||!a.input&&0!==a.avail_in||666===e.status&&4!==b)return k(a,0===a.avail_out?-5:-2);if(e.strm=a,c=e.last_flush,e.last_flush=b,42===e.status)if(2===e.wrap)a.adler=0,p(e,31),p(e,139),p(e,8),e.gzhead?(p(e,+!!e.gzhead.text+2*!!e.gzhead.hcrc+4*!!e.gzhead.extra+8*!!e.gzhead.name+16*!!e.gzhead.comment),p(e,255&e.gzhead.time),p(e,e.gzhead.time>>8&255),p(e,e.gzhead.time>>16&255),p(e,e.gzhead.time>>24&255),p(e,9===e.level?2:4*(e.strategy>=2||e.level<2)),p(e,255&e.gzhead.os),e.gzhead.extra&&e.gzhead.extra.length&&(p(e,255&e.gzhead.extra.length),p(e,e.gzhead.extra.length>>8&255)),e.gzhead.hcrc&&(a.adler=h(a.adler,e.pending_buf,e.pending,0)),e.gzindex=0,e.status=69):(p(e,0),p(e,0),p(e,0),p(e,0),p(e,0),p(e,9===e.level?2:4*(e.strategy>=2||e.level<2)),p(e,3),e.status=113);else{var c,e,g,i,j=8+(e.w_bits-8<<4)<<8;j|=(e.strategy>=2||e.level<2?0:e.level<6?1:6===e.level?2:3)<<6,0!==e.strstart&&(j|=32),j+=31-j%31,e.status=113,q(e,j),0!==e.strstart&&(q(e,a.adler>>>16),q(e,65535&a.adler)),a.adler=1}if(69===e.status)if(e.gzhead.extra){for(g=e.pending;e.gzindex<(65535&e.gzhead.extra.length)&&(e.pending!==e.pending_buf_size||(e.gzhead.hcrc&&e.pending>g&&(a.adler=h(a.adler,e.pending_buf,e.pending-g,g)),n(a),g=e.pending,e.pending!==e.pending_buf_size));)p(e,255&e.gzhead.extra[e.gzindex]),e.gzindex++;e.gzhead.hcrc&&e.pending>g&&(a.adler=h(a.adler,e.pending_buf,e.pending-g,g)),e.gzindex===e.gzhead.extra.length&&(e.gzindex=0,e.status=73)}else e.status=73;if(73===e.status)if(e.gzhead.name){g=e.pending;do{if(e.pending===e.pending_buf_size&&(e.gzhead.hcrc&&e.pending>g&&(a.adler=h(a.adler,e.pending_buf,e.pending-g,g)),n(a),g=e.pending,e.pending===e.pending_buf_size)){i=1;break}i=e.gzindex<e.gzhead.name.length?255&e.gzhead.name.charCodeAt(e.gzindex++):0,p(e,i)}while(0!==i);e.gzhead.hcrc&&e.pending>g&&(a.adler=h(a.adler,e.pending_buf,e.pending-g,g)),0===i&&(e.gzindex=0,e.status=91)}else e.status=91;if(91===e.status)if(e.gzhead.comment){g=e.pending;do{if(e.pending===e.pending_buf_size&&(e.gzhead.hcrc&&e.pending>g&&(a.adler=h(a.adler,e.pending_buf,e.pending-g,g)),n(a),g=e.pending,e.pending===e.pending_buf_size)){i=1;break}i=e.gzindex<e.gzhead.comment.length?255&e.gzhead.comment.charCodeAt(e.gzindex++):0,p(e,i)}while(0!==i);e.gzhead.hcrc&&e.pending>g&&(a.adler=h(a.adler,e.pending_buf,e.pending-g,g)),0===i&&(e.status=103)}else e.status=103;if(103===e.status&&(e.gzhead.hcrc?(e.pending+2>e.pending_buf_size&&n(a),e.pending+2<=e.pending_buf_size&&(p(e,255&a.adler),p(e,a.adler>>8&255),a.adler=0,e.status=113)):e.status=113),0!==e.pending){if(n(a),0===a.avail_out)return e.last_flush=-1,0}else if(0===a.avail_in&&l(b)<=l(c)&&4!==b)return k(a,-5);if(666===e.status&&0!==a.avail_in)return k(a,-5);if(0!==a.avail_in||0!==e.lookahead||0!==b&&666!==e.status){var r=2===e.strategy?function(a,b){for(var c;;){if(0===a.lookahead&&(s(a),0===a.lookahead)){if(0===b)return 1;break}if(a.match_length=0,c=f._tr_tally(a,0,a.window[a.strstart]),a.lookahead--,a.strstart++,c&&(o(a,!1),0===a.strm.avail_out))return 1}return(a.insert=0,4===b)?(o(a,!0),0===a.strm.avail_out)?3:4:a.last_lit&&(o(a,!1),0===a.strm.avail_out)?1:2}(e,b):3===e.strategy?function(a,b){for(var c,d,e,g,h=a.window;;){if(a.lookahead<=258){if(s(a),a.lookahead<=258&&0===b)return 1;if(0===a.lookahead)break}if(a.match_length=0,a.lookahead>=3&&a.strstart>0&&(d=h[e=a.strstart-1])===h[++e]&&d===h[++e]&&d===h[++e]){g=a.strstart+258;do;while(d===h[++e]&&d===h[++e]&&d===h[++e]&&d===h[++e]&&d===h[++e]&&d===h[++e]&&d===h[++e]&&d===h[++e]&&e<g);a.match_length=258-(g-e),a.match_length>a.lookahead&&(a.match_length=a.lookahead)}if(a.match_length>=3?(c=f._tr_tally(a,1,a.match_length-3),a.lookahead-=a.match_length,a.strstart+=a.match_length,a.match_length=0):(c=f._tr_tally(a,0,a.window[a.strstart]),a.lookahead--,a.strstart++),c&&(o(a,!1),0===a.strm.avail_out))return 1}return(a.insert=0,4===b)?(o(a,!0),0===a.strm.avail_out)?3:4:a.last_lit&&(o(a,!1),0===a.strm.avail_out)?1:2}(e,b):d[e.level].func(e,b);if((3===r||4===r)&&(e.status=666),1===r||3===r)return 0===a.avail_out&&(e.last_flush=-1),0;if(2===r&&(1===b?f._tr_align(e):5!==b&&(f._tr_stored_block(e,0,0,!1),3===b&&(m(e.head),0===e.lookahead&&(e.strstart=0,e.block_start=0,e.insert=0))),n(a),0===a.avail_out))return e.last_flush=-1,0}return 4!==b?0:e.wrap<=0?1:(2===e.wrap?(p(e,255&a.adler),p(e,a.adler>>8&255),p(e,a.adler>>16&255),p(e,a.adler>>24&255),p(e,255&a.total_in),p(e,a.total_in>>8&255),p(e,a.total_in>>16&255),p(e,a.total_in>>24&255)):(q(e,a.adler>>>16),q(e,65535&a.adler)),n(a),e.wrap>0&&(e.wrap=-e.wrap),+(0===e.pending))},b.deflateEnd=function(a){var b;return a&&a.state?42!==(b=a.state.status)&&69!==b&&73!==b&&91!==b&&103!==b&&113!==b&&666!==b?k(a,-2):(a.state=null,113===b?k(a,-3):0):-2},b.deflateSetDictionary=function(a,b){var c,d,f,h,i,j,k,l,n=b.length;if(!a||!a.state||2===(h=(c=a.state).wrap)||1===h&&42!==c.status||c.lookahead)return -2;for(1===h&&(a.adler=g(a.adler,b,n,0)),c.wrap=0,n>=c.w_size&&(0===h&&(m(c.head),c.strstart=0,c.block_start=0,c.insert=0),l=new e.Buf8(c.w_size),e.arraySet(l,b,n-c.w_size,c.w_size,0),b=l,n=c.w_size),i=a.avail_in,j=a.next_in,k=a.input,a.avail_in=n,a.next_in=0,a.input=b,s(c);c.lookahead>=3;){d=c.strstart,f=c.lookahead-2;do c.ins_h=(c.ins_h<<c.hash_shift^c.window[d+3-1])&c.hash_mask,c.prev[d&c.w_mask]=c.head[c.ins_h],c.head[c.ins_h]=d,d++;while(--f);c.strstart=d,c.lookahead=2,s(c)}return c.strstart+=c.lookahead,c.block_start=c.strstart,c.insert=c.lookahead,c.lookahead=0,c.match_length=c.prev_length=2,c.match_available=0,a.next_in=j,a.input=k,a.avail_in=i,c.wrap=h,0},b.deflateInfo="pako deflate (from Nodeca project)"},41391:(a,b,c)=>{"use strict";var d=c(5627);c(45191);class e{constructor(){this._request=null,this._charts=new Map,this._running=!1,this._lastDate=void 0}_notify(a,b,c,d){let e=b.listeners[d],f=b.duration;e.forEach(d=>d({chart:a,initial:b.initial,numSteps:f,currentStep:Math.min(c-b.start,f)}))}_refresh(){this._request||(this._running=!0,this._request=d.requestAnimFrame.call(window,()=>{this._update(),this._request=null,this._running&&this._refresh()}))}_update(a=Date.now()){let b=0;this._charts.forEach((c,d)=>{let e;if(!c.running||!c.items.length)return;let f=c.items,g=f.length-1,h=!1;for(;g>=0;--g)(e=f[g])._active?(e._total>c.duration&&(c.duration=e._total),e.tick(a),h=!0):(f[g]=f[f.length-1],f.pop());h&&(d.draw(),this._notify(d,c,a,"progress")),f.length||(c.running=!1,this._notify(d,c,a,"complete"),c.initial=!1),b+=f.length}),this._lastDate=a,0===b&&(this._running=!1)}_getAnims(a){let b=this._charts,c=b.get(a);return c||(c={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},b.set(a,c)),c}listen(a,b,c){this._getAnims(a).listeners[b].push(c)}add(a,b){b&&b.length&&this._getAnims(a).items.push(...b)}has(a){return this._getAnims(a).items.length>0}start(a){let b=this._charts.get(a);b&&(b.running=!0,b.start=Date.now(),b.duration=b.items.reduce((a,b)=>Math.max(a,b._duration),0),this._refresh())}running(a){if(!this._running)return!1;let b=this._charts.get(a);return!!b&&!!b.running&&!!b.items.length}stop(a){let b=this._charts.get(a);if(!b||!b.items.length)return;let c=b.items,d=c.length-1;for(;d>=0;--d)c[d].cancel();b.items=[],this._notify(a,b,Date.now(),"complete")}remove(a){return this._charts.delete(a)}}var f=new e;let g="transparent",h={boolean:(a,b,c)=>c>.5?b:a,color(a,b,c){let e=d.color(a||g),f=e.valid&&d.color(b||g);return f&&f.valid?f.mix(e,c).hexString():b},number:(a,b,c)=>a+(b-a)*c};class i{constructor(a,b,c,e){const f=b[c];e=d.resolve([a.to,e,f,a.from]);const g=d.resolve([a.from,f,e]);this._active=!0,this._fn=a.fn||h[a.type||typeof g],this._easing=d.effects[a.easing]||d.effects.linear,this._start=Math.floor(Date.now()+(a.delay||0)),this._duration=this._total=Math.floor(a.duration),this._loop=!!a.loop,this._target=b,this._prop=c,this._from=g,this._to=e,this._promises=void 0}active(){return this._active}update(a,b,c){if(this._active){this._notify(!1);let e=this._target[this._prop],f=c-this._start,g=this._duration-f;this._start=c,this._duration=Math.floor(Math.max(g,a.duration)),this._total+=f,this._loop=!!a.loop,this._to=d.resolve([a.to,b,e,a.from]),this._from=d.resolve([a.from,e,b])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(a){let b,c=a-this._start,d=this._duration,e=this._prop,f=this._from,g=this._loop,h=this._to;if(this._active=f!==h&&(g||c<d),!this._active){this._target[e]=h,this._notify(!0);return}if(c<0){this._target[e]=f;return}b=c/d%2,b=g&&b>1?2-b:b,b=this._easing(Math.min(1,Math.max(0,b))),this._target[e]=this._fn(f,h,b)}wait(){let a=this._promises||(this._promises=[]);return new Promise((b,c)=>{a.push({res:b,rej:c})})}_notify(a){let b=a?"res":"rej",c=this._promises||[];for(let a=0;a<c.length;a++)c[a][b]()}}class j{constructor(a,b){this._chart=a,this._properties=new Map,this.configure(b)}configure(a){if(!d.isObject(a))return;let b=Object.keys(d.defaults.animation),c=this._properties;Object.getOwnPropertyNames(a).forEach(e=>{let f=a[e];if(!d.isObject(f))return;let g={};for(let a of b)g[a]=f[a];(d.isArray(f.properties)&&f.properties||[e]).forEach(a=>{a!==e&&c.has(a)||c.set(a,g)})})}_animateOptions(a,b){let c=b.options,d=function(a,b){if(!b)return;let c=a.options;if(!c){a.options=b;return}return c.$shared&&(a.options=c=Object.assign({},c,{$shared:!1,$animations:{}})),c}(a,c);if(!d)return[];let e=this._createAnimations(d,c);return c.$shared&&(function(a,b){let c=[],d=Object.keys(b);for(let b=0;b<d.length;b++){let e=a[d[b]];e&&e.active()&&c.push(e.wait())}return Promise.all(c)})(a.options.$animations,c).then(()=>{a.options=c},()=>{}),e}_createAnimations(a,b){let c,d=this._properties,e=[],f=a.$animations||(a.$animations={}),g=Object.keys(b),h=Date.now();for(c=g.length-1;c>=0;--c){let j=g[c];if("$"===j.charAt(0))continue;if("options"===j){e.push(...this._animateOptions(a,b));continue}let k=b[j],l=f[j],m=d.get(j);if(l)if(m&&l.active()){l.update(m,k,h);continue}else l.cancel();if(!m||!m.duration){a[j]=k;continue}f[j]=l=new i(m,a,j,k),e.push(l)}return e}update(a,b){if(0===this._properties.size)return void Object.assign(a,b);let c=this._createAnimations(a,b);if(c.length)return f.add(this._chart,c),!0}}function k(a,b){let c=a&&a.options||{},d=c.reverse,e=void 0===c.min?b:0,f=void 0===c.max?b:0;return{start:d?f:e,end:d?e:f}}function l(a,b){let c,d,e=[],f=a._getSortedDatasetMetas(b);for(c=0,d=f.length;c<d;++c)e.push(f[c].index);return e}function m(a,b,c,e={}){let f,g,h,i,j=a.keys,k="single"===e.mode;if(null===b)return;let l=!1;for(f=0,g=j.length;f<g;++f){if((h=+j[f])===c){if(l=!0,e.all)continue;break}i=a.values[h],d.isNumberFinite(i)&&(k||0===b||d.sign(b)===d.sign(i))&&(b+=i)}return l||e.all?b:0}function n(a,b){let c=a&&a.options.stacked;return c||void 0===c&&void 0!==b.stack}function o(a,b,c,d){for(let e of b.getMatchingVisibleMetas(d).reverse()){let b=a[e.index];if(c&&b>0||!c&&b<0)return e.index}return null}function p(a,b){let c,{chart:d,_cachedMeta:e}=a,f=d._stacks||(d._stacks={}),{iScale:g,vScale:h,index:i}=e,j=g.axis,k=h.axis,l=`${g.id}.${h.id}.${e.stack||e.type}`,m=b.length;for(let a=0;a<m;++a){let d=b[a],{[j]:g,[k]:m}=d;(c=(d._stacks||(d._stacks={}))[k]=function(a,b,c){let d=a[b]||(a[b]={});return d[c]||(d[c]={})}(f,l,g))[i]=m,c._top=o(c,h,!0,e.type),c._bottom=o(c,h,!1,e.type),(c._visualValues||(c._visualValues={}))[i]=m}}function q(a,b){let c=a.scales;return Object.keys(c).filter(a=>c[a].axis===b).shift()}function r(a,b){let c=a.controller.index,d=a.vScale&&a.vScale.axis;if(d)for(let e of b=b||a._parsed){let a=e._stacks;if(!a||void 0===a[d]||void 0===a[d][c])return;delete a[d][c],void 0!==a[d]._visualValues&&void 0!==a[d]._visualValues[c]&&delete a[d]._visualValues[c]}}let s=a=>"reset"===a||"none"===a,t=(a,b)=>b?a:Object.assign({},a);class u{static defaults={};static datasetElementType=null;static dataElementType=null;constructor(a,b){this.chart=a,this._ctx=a.ctx,this.index=b,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){let a=this._cachedMeta;this.configure(),this.linkScales(),a._stacked=n(a.vScale,a),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled("filler")&&console.warn("Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options")}updateIndex(a){this.index!==a&&r(this._cachedMeta),this.index=a}linkScales(){let a=this.chart,b=this._cachedMeta,c=this.getDataset(),e=(a,b,c,d)=>"x"===a?b:"r"===a?d:c,f=b.xAxisID=d.valueOrDefault(c.xAxisID,q(a,"x")),g=b.yAxisID=d.valueOrDefault(c.yAxisID,q(a,"y")),h=b.rAxisID=d.valueOrDefault(c.rAxisID,q(a,"r")),i=b.indexAxis,j=b.iAxisID=e(i,f,g,h),k=b.vAxisID=e(i,g,f,h);b.xScale=this.getScaleForId(f),b.yScale=this.getScaleForId(g),b.rScale=this.getScaleForId(h),b.iScale=this.getScaleForId(j),b.vScale=this.getScaleForId(k)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(a){return this.chart.scales[a]}_getOtherScale(a){let b=this._cachedMeta;return a===b.iScale?b.vScale:b.iScale}reset(){this._update("reset")}_destroy(){let a=this._cachedMeta;this._data&&d.unlistenArrayEvents(this._data,this),a._stacked&&r(a)}_dataCheck(){let a=this.getDataset(),b=a.data||(a.data=[]),c=this._data;if(d.isObject(b)){let a=this._cachedMeta;this._data=function(a,b){let c,d,e,{iScale:f,vScale:g}=b,h="x"===f.axis?"x":"y",i="x"===g.axis?"x":"y",j=Object.keys(a),k=Array(j.length);for(c=0,d=j.length;c<d;++c)e=j[c],k[c]={[h]:e,[i]:a[e]};return k}(b,a)}else if(c!==b){if(c){d.unlistenArrayEvents(c,this);let a=this._cachedMeta;r(a),a._parsed=[]}b&&Object.isExtensible(b)&&d.listenArrayEvents(b,this),this._syncList=[],this._data=b}}addElements(){let a=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(a.dataset=new this.datasetElementType)}buildOrUpdateElements(a){let b=this._cachedMeta,c=this.getDataset(),d=!1;this._dataCheck();let e=b._stacked;b._stacked=n(b.vScale,b),b.stack!==c.stack&&(d=!0,r(b),b.stack=c.stack),this._resyncElements(a),(d||e!==b._stacked)&&(p(this,b._parsed),b._stacked=n(b.vScale,b))}configure(){let a=this.chart.config,b=a.datasetScopeKeys(this._type),c=a.getOptionScopes(this.getDataset(),b,!0);this.options=a.createResolver(c,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(a,b){let c,e,f,{_cachedMeta:g,_data:h}=this,{iScale:i,_stacked:j}=g,k=i.axis,l=0===a&&b===h.length||g._sorted,m=a>0&&g._parsed[a-1];if(!1===this._parsing)g._parsed=h,g._sorted=!0,f=h;else{f=d.isArray(h[a])?this.parseArrayData(g,h,a,b):d.isObject(h[a])?this.parseObjectData(g,h,a,b):this.parsePrimitiveData(g,h,a,b);let i=()=>null===e[k]||m&&e[k]<m[k];for(c=0;c<b;++c)g._parsed[c+a]=e=f[c],l&&(i()&&(l=!1),m=e);g._sorted=l}j&&p(this,f)}parsePrimitiveData(a,b,c,d){let e,f,{iScale:g,vScale:h}=a,i=g.axis,j=h.axis,k=g.getLabels(),l=g===h,m=Array(d);for(e=0;e<d;++e)f=e+c,m[e]={[i]:l||g.parse(k[f],f),[j]:h.parse(b[f],f)};return m}parseArrayData(a,b,c,d){let e,f,g,{xScale:h,yScale:i}=a,j=Array(d);for(e=0;e<d;++e)g=b[f=e+c],j[e]={x:h.parse(g[0],f),y:i.parse(g[1],f)};return j}parseObjectData(a,b,c,e){let f,g,h,{xScale:i,yScale:j}=a,{xAxisKey:k="x",yAxisKey:l="y"}=this._parsing,m=Array(e);for(f=0;f<e;++f)h=b[g=f+c],m[f]={x:i.parse(d.resolveObjectKey(h,k),g),y:j.parse(d.resolveObjectKey(h,l),g)};return m}getParsed(a){return this._cachedMeta._parsed[a]}getDataElement(a){return this._cachedMeta.data[a]}applyStack(a,b,c){let d=this.chart,e=this._cachedMeta,f=b[a.axis];return m({keys:l(d,!0),values:b._stacks[a.axis]._visualValues},f,e.index,{mode:c})}updateRangeFromParsed(a,b,c,d){let e=c[b.axis],f=null===e?NaN:e,g=d&&c._stacks[b.axis];d&&g&&(d.values=g,f=m(d,e,this._cachedMeta.index)),a.min=Math.min(a.min,f),a.max=Math.max(a.max,f)}getMinMax(a,b){let c,e,f,g=this._cachedMeta,h=g._parsed,i=g._sorted&&a===g.iScale,j=h.length,k=this._getOtherScale(a),m=(f=this.chart,b&&!g.hidden&&g._stacked&&{keys:l(f,!0),values:null}),n={min:1/0,max:-1/0},{min:o,max:p}=function(a){let{min:b,max:c,minDefined:d,maxDefined:e}=a.getUserBounds();return{min:d?b:-1/0,max:e?c:1/0}}(k);function q(){let b=(e=h[c])[k.axis];return!d.isNumberFinite(e[a.axis])||o>b||p<b}for(c=0;c<j&&(q()||(this.updateRangeFromParsed(n,a,e,m),!i));++c);if(i){for(c=j-1;c>=0;--c)if(!q()){this.updateRangeFromParsed(n,a,e,m);break}}return n}getAllParsedValues(a){let b,c,e,f=this._cachedMeta._parsed,g=[];for(b=0,c=f.length;b<c;++b)e=f[b][a.axis],d.isNumberFinite(e)&&g.push(e);return g}getMaxOverflow(){return!1}getLabelAndValue(a){let b=this._cachedMeta,c=b.iScale,d=b.vScale,e=this.getParsed(a);return{label:c?""+c.getLabelForValue(e[c.axis]):"",value:d?""+d.getLabelForValue(e[d.axis]):""}}_update(a){var b;let c,e,f,g,h=this._cachedMeta;this.update(a||"default"),b=d.valueOrDefault(this.options.clip,function(a,b,c){if(!1===c)return!1;let d=k(a,c),e=k(b,c);return{top:e.end,right:d.end,bottom:e.start,left:d.start}}(h.xScale,h.yScale,this.getMaxOverflow())),d.isObject(b)?(c=b.top,e=b.right,f=b.bottom,g=b.left):c=e=f=g=b,h._clip={top:c,right:e,bottom:f,left:g,disabled:!1===b}}update(a){}draw(){let a,b=this._ctx,c=this.chart,d=this._cachedMeta,e=d.data||[],f=c.chartArea,g=[],h=this._drawStart||0,i=this._drawCount||e.length-h,j=this.options.drawActiveElementsOnTop;for(d.dataset&&d.dataset.draw(b,f,h,i),a=h;a<h+i;++a){let c=e[a];c.hidden||(c.active&&j?g.push(c):c.draw(b,f))}for(a=0;a<g.length;++a)g[a].draw(b,f)}getStyle(a,b){let c=b?"active":"default";return void 0===a&&this._cachedMeta.dataset?this.resolveDatasetElementOptions(c):this.resolveDataElementOptions(a||0,c)}getContext(a,b,c){var e,f,g;let h,i=this.getDataset();if(a>=0&&a<this._cachedMeta.data.length){let b=this._cachedMeta.data[a];(h=b.$context||(e=this.getContext(),b.$context=d.createContext(e,{active:!1,dataIndex:a,parsed:void 0,raw:void 0,element:b,index:a,mode:"default",type:"data"}))).parsed=this.getParsed(a),h.raw=i.data[a],h.index=h.dataIndex=a}else(h=this.$context||(this.$context=(f=this.chart.getContext(),g=this.index,d.createContext(f,{active:!1,dataset:void 0,datasetIndex:g,index:g,mode:"default",type:"dataset"})))).dataset=i,h.index=h.datasetIndex=this.index;return h.active=!!b,h.mode=c,h}resolveDatasetElementOptions(a){return this._resolveElementOptions(this.datasetElementType.id,a)}resolveDataElementOptions(a,b){return this._resolveElementOptions(this.dataElementType.id,b,a)}_resolveElementOptions(a,b="default",c){let e="active"===b,f=this._cachedDataOpts,g=a+"-"+b,h=f[g],i=this.enableOptionSharing&&d.defined(c);if(h)return t(h,i);let j=this.chart.config,k=j.datasetElementScopeKeys(this._type,a),l=e?[`${a}Hover`,"hover",a,""]:[a,""],m=j.getOptionScopes(this.getDataset(),k),n=Object.keys(d.defaults.elements[a]),o=()=>this.getContext(c,e,b),p=j.resolveNamedOptions(m,n,o,l);return p.$shared&&(p.$shared=i,f[g]=Object.freeze(t(p,i))),p}_resolveAnimations(a,b,c){let d,e=this.chart,f=this._cachedDataOpts,g=`animation-${b}`,h=f[g];if(h)return h;if(!1!==e.options.animation){let e=this.chart.config,f=e.datasetAnimationScopeKeys(this._type,b),g=e.getOptionScopes(this.getDataset(),f);d=e.createResolver(g,this.getContext(a,c,b))}let i=new j(e,d&&d.animations);return d&&d._cacheable&&(f[g]=Object.freeze(i)),i}getSharedOptions(a){if(a.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},a))}includeOptions(a,b){return!b||s(a)||this.chart._animationsDisabled}_getSharedOptions(a,b){let c=this.resolveDataElementOptions(a,b),d=this._sharedOptions,e=this.getSharedOptions(c),f=this.includeOptions(b,e)||e!==d;return this.updateSharedOptions(e,b,c),{sharedOptions:e,includeOptions:f}}updateElement(a,b,c,d){s(d)?Object.assign(a,c):this._resolveAnimations(b,d).update(a,c)}updateSharedOptions(a,b,c){a&&!s(b)&&this._resolveAnimations(void 0,b).update(a,c)}_setStyle(a,b,c,d){a.active=d;let e=this.getStyle(b,d);this._resolveAnimations(b,c,d).update(a,{options:!d&&this.getSharedOptions(e)||e})}removeHoverStyle(a,b,c){this._setStyle(a,c,"active",!1)}setHoverStyle(a,b,c){this._setStyle(a,c,"active",!0)}_removeDatasetHoverStyle(){let a=this._cachedMeta.dataset;a&&this._setStyle(a,void 0,"active",!1)}_setDatasetHoverStyle(){let a=this._cachedMeta.dataset;a&&this._setStyle(a,void 0,"active",!0)}_resyncElements(a){let b=this._data,c=this._cachedMeta.data;for(let[a,b,c]of this._syncList)this[a](b,c);this._syncList=[];let d=c.length,e=b.length,f=Math.min(e,d);f&&this.parse(0,f),e>d?this._insertElements(d,e-d,a):e<d&&this._removeElements(e,d-e)}_insertElements(a,b,c=!0){let d,e=this._cachedMeta,f=e.data,g=a+b,h=a=>{for(a.length+=b,d=a.length-1;d>=g;d--)a[d]=a[d-b]};for(h(f),d=a;d<g;++d)f[d]=new this.dataElementType;this._parsing&&h(e._parsed),this.parse(a,b),c&&this.updateElements(f,a,b,"reset")}updateElements(a,b,c,d){}_removeElements(a,b){let c=this._cachedMeta;if(this._parsing){let d=c._parsed.splice(a,b);c._stacked&&r(c,d)}c.data.splice(a,b)}_sync(a){if(this._parsing)this._syncList.push(a);else{let[b,c,d]=a;this[b](c,d)}this.chart._dataChanges.push([this.index,...a])}_onDataPush(){let a=arguments.length;this._sync(["_insertElements",this.getDataset().data.length-a,a])}_onDataPop(){this._sync(["_removeElements",this._cachedMeta.data.length-1,1])}_onDataShift(){this._sync(["_removeElements",0,1])}_onDataSplice(a,b){b&&this._sync(["_removeElements",a,b]);let c=arguments.length-2;c&&this._sync(["_insertElements",a,c])}_onDataUnshift(){this._sync(["_insertElements",0,arguments.length])}}function v(a,b,c,e){if(d.isArray(a)){let d,f,g,h,i,j;d=c.parse(a[0],e),g=Math.min(d,f=c.parse(a[1],e)),h=Math.max(d,f),i=g,j=h,Math.abs(g)>Math.abs(h)&&(i=h,j=g),b[c.axis]=j,b._custom={barStart:i,barEnd:j,start:d,end:f,min:g,max:h}}else b[c.axis]=c.parse(a,e);return b}function w(a,b,c,d){let e,f,g,h,i=a.iScale,j=a.vScale,k=i.getLabels(),l=i===j,m=[];for(e=c,f=c+d;e<f;++e)h=b[e],(g={})[i.axis]=l||i.parse(k[e],e),m.push(v(h,g,j,e));return m}function x(a){return a&&void 0!==a.barStart&&void 0!==a.barEnd}function y(a,b,c,d){var e,f,g;return d?z((e=a,f=b,g=c,a=e===f?g:e===g?f:e),c,b):z(a,b,c)}function z(a,b,c){return"start"===a?b:"end"===a?c:a}class A extends u{static id="bar";static defaults={datasetElementType:!1,dataElementType:"bar",categoryPercentage:.8,barPercentage:.9,grouped:!0,animations:{numbers:{type:"number",properties:["x","y","base","width","height"]}}};static overrides={scales:{_index_:{type:"category",offset:!0,grid:{offset:!0}},_value_:{type:"linear",beginAtZero:!0}}};parsePrimitiveData(a,b,c,d){return w(a,b,c,d)}parseArrayData(a,b,c,d){return w(a,b,c,d)}parseObjectData(a,b,c,e){let f,g,h,i,{iScale:j,vScale:k}=a,{xAxisKey:l="x",yAxisKey:m="y"}=this._parsing,n="x"===j.axis?l:m,o="x"===k.axis?l:m,p=[];for(f=c,g=c+e;f<g;++f)i=b[f],(h={})[j.axis]=j.parse(d.resolveObjectKey(i,n),f),p.push(v(d.resolveObjectKey(i,o),h,k,f));return p}updateRangeFromParsed(a,b,c,d){super.updateRangeFromParsed(a,b,c,d);let e=c._custom;e&&b===this._cachedMeta.vScale&&(a.min=Math.min(a.min,e.min),a.max=Math.max(a.max,e.max))}getMaxOverflow(){return 0}getLabelAndValue(a){let{iScale:b,vScale:c}=this._cachedMeta,d=this.getParsed(a),e=d._custom,f=x(e)?"["+e.start+", "+e.end+"]":""+c.getLabelForValue(d[c.axis]);return{label:""+b.getLabelForValue(d[b.axis]),value:f}}initialize(){this.enableOptionSharing=!0,super.initialize(),this._cachedMeta.stack=this.getDataset().stack}update(a){let b=this._cachedMeta;this.updateElements(b.data,0,b.data.length,a)}updateElements(a,b,c,e){let f="reset"===e,{index:g,_cachedMeta:{vScale:h}}=this,i=h.getBasePixel(),j=h.isHorizontal(),k=this._getRuler(),{sharedOptions:l,includeOptions:m}=this._getSharedOptions(b,e);for(let n=b;n<b+c;n++){let b=this.getParsed(n),c=f||d.isNullOrUndef(b[h.axis])?{base:i,head:i}:this._calculateBarValuePixels(n),o=this._calculateBarIndexPixels(n,k),p=(b._stacks||{})[h.axis],q={horizontal:j,base:c.base,enableBorderRadius:!p||x(b._custom)||g===p._top||g===p._bottom,x:j?c.head:o.center,y:j?o.center:c.head,height:j?o.size:Math.abs(c.size),width:j?Math.abs(c.size):o.size};m&&(q.options=l||this.resolveDataElementOptions(n,a[n].active?"active":e));let r=q.options||a[n].options;!function(a,b,c,d){let e,f,g,h,i,j=b.borderSkipped,k={};if(!j){a.borderSkipped=k;return}if(!0===j){a.borderSkipped={top:!0,right:!0,bottom:!0,left:!0};return}let{start:l,end:m,reverse:n,top:o,bottom:p}=(a.horizontal?(e=a.base>a.x,f="left",g="right"):(e=a.base<a.y,f="bottom",g="top"),e?(h="end",i="start"):(h="start",i="end"),{start:f,end:g,reverse:e,top:h,bottom:i});"middle"===j&&c&&(a.enableBorderRadius=!0,(c._top||0)===d?j=o:(c._bottom||0)===d?j=p:(k[y(p,l,m,n)]=!0,j=o)),k[y(j,l,m,n)]=!0,a.borderSkipped=k}(q,r,p,g),function(a,{inflateAmount:b},c){a.inflateAmount="auto"===b?.33*(1===c):b}(q,r,k.ratio),this.updateElement(a[n],n,q,e)}}_getStacks(a,b){let{iScale:c}=this._cachedMeta,e=c.getMatchingVisibleMetas(this._type).filter(a=>a.controller.options.grouped),f=c.options.stacked,g=[],h=this._cachedMeta.controller.getParsed(b),i=h&&h[c.axis],j=a=>{let b=a._parsed.find(a=>a[c.axis]===i),e=b&&b[a.vScale.axis];if(d.isNullOrUndef(e)||isNaN(e))return!0};for(let c of e)if(!(void 0!==b&&j(c))&&((!1===f||-1===g.indexOf(c.stack)||void 0===f&&void 0===c.stack)&&g.push(c.stack),c.index===a))break;return g.length||g.push(void 0),g}_getStackCount(a){return this._getStacks(void 0,a).length}_getAxisCount(){return this._getAxis().length}getFirstScaleIdForIndexAxis(){let a=this.chart.scales,b=this.chart.options.indexAxis;return Object.keys(a).filter(c=>a[c].axis===b).shift()}_getAxis(){let a={},b=this.getFirstScaleIdForIndexAxis();for(let c of this.chart.data.datasets)a[d.valueOrDefault("x"===this.chart.options.indexAxis?c.xAxisID:c.yAxisID,b)]=!0;return Object.keys(a)}_getStackIndex(a,b,c){let d=this._getStacks(a,c),e=void 0!==b?d.indexOf(b):-1;return -1===e?d.length-1:e}_getRuler(){let a,b,c=this.options,e=this._cachedMeta,f=e.iScale,g=[];for(a=0,b=e.data.length;a<b;++a)g.push(f.getPixelForValue(this.getParsed(a)[f.axis],a));let h=c.barThickness;return{min:h||function(a){let b,c,e,f,g=a.iScale,h=function(a,b){if(!a._cache.$bar){let c=a.getMatchingVisibleMetas(b),e=[];for(let b=0,d=c.length;b<d;b++)e=e.concat(c[b].controller.getAllParsedValues(a));a._cache.$bar=d._arrayUnique(e.sort((a,b)=>a-b))}return a._cache.$bar}(g,a.type),i=g._length,j=()=>{32767!==e&&-32768!==e&&(d.defined(f)&&(i=Math.min(i,Math.abs(e-f)||i)),f=e)};for(b=0,c=h.length;b<c;++b)e=g.getPixelForValue(h[b]),j();for(b=0,f=void 0,c=g.ticks.length;b<c;++b)e=g.getPixelForTick(b),j();return i}(e),pixels:g,start:f._startPixel,end:f._endPixel,stackCount:this._getStackCount(),scale:f,grouped:c.grouped,ratio:h?1:c.categoryPercentage*c.barPercentage}}_calculateBarValuePixels(a){let b,c,{_cachedMeta:{vScale:e,_stacked:f,index:g},options:{base:h,minBarLength:i}}=this,j=h||0,k=this.getParsed(a),l=k._custom,m=x(l),n=k[e.axis],o=0,p=f?this.applyStack(e,k,f):n;p!==n&&(o=p-n,p=n),m&&(n=l.barStart,p=l.barEnd-l.barStart,0!==n&&d.sign(n)!==d.sign(l.barEnd)&&(o=0),o+=n);let q=d.isNullOrUndef(h)||m?o:h,r=e.getPixelForValue(q);if(Math.abs(c=(b=this.chart.getDataVisibility(a)?e.getPixelForValue(o+p):r)-r)<i){var s;c=(0!==(s=c)?d.sign(s):(e.isHorizontal()?1:-1)*(e.min>=j?1:-1))*i,n===j&&(r-=c/2);let a=e.getPixelForDecimal(0),h=e.getPixelForDecimal(1),l=Math.min(a,h);b=(r=Math.max(Math.min(r,Math.max(a,h)),l))+c,f&&!m&&(k._stacks[e.axis]._visualValues[g]=e.getValueForPixel(b)-e.getValueForPixel(r))}if(r===e.getPixelForValue(j)){let a=d.sign(c)*e.getLineWidthForValue(j)/2;r+=a,c-=a}return{size:c,base:r,head:b,center:b+c/2}}_calculateBarIndexPixels(a,b){let c,e,f=b.scale,g=this.options,h=g.skipNull,i=d.valueOrDefault(g.maxBarThickness,1/0),j=this._getAxisCount();if(b.grouped){var k,l;let f,m,n,o,p,q,r,s,t,u=h?this._getStackCount(a):b.stackCount,v="flex"===g.barThickness?(k=u*j,m=(f=b.pixels)[a],n=a>0?f[a-1]:null,o=a<f.length-1?f[a+1]:null,p=g.categoryPercentage,null===n&&(n=m-(null===o?b.end-b.start:o-m)),null===o&&(o=m+m-n),q=m-(m-Math.min(n,o))/2*p,{chunk:Math.abs(o-n)/2*p/k,ratio:g.barPercentage,start:q}):(l=u*j,t=g.barThickness,d.isNullOrUndef(t)?(r=b.min*g.categoryPercentage,s=g.barPercentage):(r=t*l,s=1),{chunk:r/l,ratio:s,start:b.pixels[a]-r/2}),w="x"===this.chart.options.indexAxis?this.getDataset().xAxisID:this.getDataset().yAxisID,x=this._getAxis().indexOf(d.valueOrDefault(w,this.getFirstScaleIdForIndexAxis())),y=this._getStackIndex(this.index,this._cachedMeta.stack,h?a:void 0)+x;c=v.start+v.chunk*y+v.chunk/2,e=Math.min(i,v.chunk*v.ratio)}else c=f.getPixelForValue(this.getParsed(a)[f.axis],a),e=Math.min(i,b.min*b.ratio);return{base:c-e/2,head:c+e/2,center:c,size:e}}draw(){let a=this._cachedMeta,b=a.vScale,c=a.data,d=c.length,e=0;for(;e<d;++e)null===this.getParsed(e)[b.axis]||c[e].hidden||c[e].draw(this._ctx)}}class B extends u{static id="bubble";static defaults={datasetElementType:!1,dataElementType:"point",animations:{numbers:{type:"number",properties:["x","y","borderWidth","radius"]}}};static overrides={scales:{x:{type:"linear"},y:{type:"linear"}}};initialize(){this.enableOptionSharing=!0,super.initialize()}parsePrimitiveData(a,b,c,d){let e=super.parsePrimitiveData(a,b,c,d);for(let a=0;a<e.length;a++)e[a]._custom=this.resolveDataElementOptions(a+c).radius;return e}parseArrayData(a,b,c,e){let f=super.parseArrayData(a,b,c,e);for(let a=0;a<f.length;a++){let e=b[c+a];f[a]._custom=d.valueOrDefault(e[2],this.resolveDataElementOptions(a+c).radius)}return f}parseObjectData(a,b,c,e){let f=super.parseObjectData(a,b,c,e);for(let a=0;a<f.length;a++){let e=b[c+a];f[a]._custom=d.valueOrDefault(e&&e.r&&+e.r,this.resolveDataElementOptions(a+c).radius)}return f}getMaxOverflow(){let a=this._cachedMeta.data,b=0;for(let c=a.length-1;c>=0;--c)b=Math.max(b,a[c].size(this.resolveDataElementOptions(c))/2);return b>0&&b}getLabelAndValue(a){let b=this._cachedMeta,c=this.chart.data.labels||[],{xScale:d,yScale:e}=b,f=this.getParsed(a),g=d.getLabelForValue(f.x),h=e.getLabelForValue(f.y),i=f._custom;return{label:c[a]||"",value:"("+g+", "+h+(i?", "+i:"")+")"}}update(a){let b=this._cachedMeta.data;this.updateElements(b,0,b.length,a)}updateElements(a,b,c,d){let e="reset"===d,{iScale:f,vScale:g}=this._cachedMeta,{sharedOptions:h,includeOptions:i}=this._getSharedOptions(b,d),j=f.axis,k=g.axis;for(let l=b;l<b+c;l++){let b=a[l],c=!e&&this.getParsed(l),m={},n=m[j]=e?f.getPixelForDecimal(.5):f.getPixelForValue(c[j]),o=m[k]=e?g.getBasePixel():g.getPixelForValue(c[k]);m.skip=isNaN(n)||isNaN(o),i&&(m.options=h||this.resolveDataElementOptions(l,b.active?"active":d),e&&(m.options.radius=0)),this.updateElement(b,l,m,d)}}resolveDataElementOptions(a,b){let c=this.getParsed(a),e=super.resolveDataElementOptions(a,b);e.$shared&&(e=Object.assign({},e,{$shared:!1}));let f=e.radius;return"active"!==b&&(e.radius=0),e.radius+=d.valueOrDefault(c&&c._custom,f),e}}class C extends u{static id="doughnut";static defaults={datasetElementType:!1,dataElementType:"arc",animation:{animateRotate:!0,animateScale:!1},animations:{numbers:{type:"number",properties:["circumference","endAngle","innerRadius","outerRadius","startAngle","x","y","offset","borderWidth","spacing"]}},cutout:"50%",rotation:0,circumference:360,radius:"100%",spacing:0,indexAxis:"r"};static descriptors={_scriptable:a=>"spacing"!==a,_indexable:a=>"spacing"!==a&&!a.startsWith("borderDash")&&!a.startsWith("hoverBorderDash")};static overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(a){let b=a.data,{labels:{pointStyle:c,textAlign:d,color:e,useBorderRadius:f,borderRadius:g}}=a.legend.options;return b.labels.length&&b.datasets.length?b.labels.map((b,h)=>{let i=a.getDatasetMeta(0).controller.getStyle(h);return{text:b,fillStyle:i.backgroundColor,fontColor:e,hidden:!a.getDataVisibility(h),lineDash:i.borderDash,lineDashOffset:i.borderDashOffset,lineJoin:i.borderJoinStyle,lineWidth:i.borderWidth,strokeStyle:i.borderColor,textAlign:d,pointStyle:c,borderRadius:f&&(g||i.borderRadius),index:h}}):[]}},onClick(a,b,c){c.chart.toggleDataVisibility(b.index),c.chart.update()}}}};constructor(a,b){super(a,b),this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(a,b){let c=this.getDataset().data,e=this._cachedMeta;if(!1===this._parsing)e._parsed=c;else{let f,g,h=a=>+c[a];if(d.isObject(c[a])){let{key:a="value"}=this._parsing;h=b=>+d.resolveObjectKey(c[b],a)}for(f=a,g=a+b;f<g;++f)e._parsed[f]=h(f)}}_getRotation(){return d.toRadians(this.options.rotation-90)}_getCircumference(){return d.toRadians(this.options.circumference)}_getRotationExtents(){let a=d.TAU,b=-d.TAU;for(let c=0;c<this.chart.data.datasets.length;++c)if(this.chart.isDatasetVisible(c)&&this.chart.getDatasetMeta(c).type===this._type){let d=this.chart.getDatasetMeta(c).controller,e=d._getRotation(),f=d._getCircumference();a=Math.min(a,e),b=Math.max(b,e+f)}return{rotation:a,circumference:b-a}}update(a){let{chartArea:b}=this.chart,c=this._cachedMeta,e=c.data,f=this.getMaxBorderWidth()+this.getMaxOffset(e)+this.options.spacing,g=Math.max((Math.min(b.width,b.height)-f)/2,0),h=Math.min(d.toPercentage(this.options.cutout,g),1),i=this._getRingWeight(this.index),{circumference:j,rotation:k}=this._getRotationExtents(),{ratioX:l,ratioY:m,offsetX:n,offsetY:o}=function(a,b,c){let e=1,f=1,g=0,h=0;if(b<d.TAU){let i=a+b,j=Math.cos(a),k=Math.sin(a),l=Math.cos(i),m=Math.sin(i),n=(b,e,f)=>d._angleBetween(b,a,i,!0)?1:Math.max(e,e*c,f,f*c),o=(b,e,f)=>d._angleBetween(b,a,i,!0)?-1:Math.min(e,e*c,f,f*c),p=n(0,j,l),q=n(d.HALF_PI,k,m),r=o(d.PI,j,l),s=o(d.PI+d.HALF_PI,k,m);e=(p-r)/2,f=(q-s)/2,g=-(p+r)/2,h=-(q+s)/2}return{ratioX:e,ratioY:f,offsetX:g,offsetY:h}}(k,j,h),p=Math.max(Math.min((b.width-f)/l,(b.height-f)/m)/2,0),q=d.toDimension(this.options.radius,p),r=Math.max(q*h,0),s=(q-r)/this._getVisibleDatasetWeightTotal();this.offsetX=n*q,this.offsetY=o*q,c.total=this.calculateTotal(),this.outerRadius=q-s*this._getRingWeightOffset(this.index),this.innerRadius=Math.max(this.outerRadius-s*i,0),this.updateElements(e,0,e.length,a)}_circumference(a,b){let c=this.options,e=this._cachedMeta,f=this._getCircumference();return b&&c.animation.animateRotate||!this.chart.getDataVisibility(a)||null===e._parsed[a]||e.data[a].hidden?0:this.calculateCircumference(e._parsed[a]*f/d.TAU)}updateElements(a,b,c,d){let e,f="reset"===d,g=this.chart,h=g.chartArea,i=g.options.animation,j=(h.left+h.right)/2,k=(h.top+h.bottom)/2,l=f&&i.animateScale,m=l?0:this.innerRadius,n=l?0:this.outerRadius,{sharedOptions:o,includeOptions:p}=this._getSharedOptions(b,d),q=this._getRotation();for(e=0;e<b;++e)q+=this._circumference(e,f);for(e=b;e<b+c;++e){let b=this._circumference(e,f),c=a[e],g={x:j+this.offsetX,y:k+this.offsetY,startAngle:q,endAngle:q+b,circumference:b,outerRadius:n,innerRadius:m};p&&(g.options=o||this.resolveDataElementOptions(e,c.active?"active":d)),q+=b,this.updateElement(c,e,g,d)}}calculateTotal(){let a,b=this._cachedMeta,c=b.data,d=0;for(a=0;a<c.length;a++){let e=b._parsed[a];null!==e&&!isNaN(e)&&this.chart.getDataVisibility(a)&&!c[a].hidden&&(d+=Math.abs(e))}return d}calculateCircumference(a){let b=this._cachedMeta.total;return b>0&&!isNaN(a)?d.TAU*(Math.abs(a)/b):0}getLabelAndValue(a){let b=this._cachedMeta,c=this.chart,e=c.data.labels||[],f=d.formatNumber(b._parsed[a],c.options.locale);return{label:e[a]||"",value:f}}getMaxBorderWidth(a){let b,c,d,e,f,g=0,h=this.chart;if(!a){for(b=0,c=h.data.datasets.length;b<c;++b)if(h.isDatasetVisible(b)){a=(d=h.getDatasetMeta(b)).data,e=d.controller;break}}if(!a)return 0;for(b=0,c=a.length;b<c;++b)"inner"!==(f=e.resolveDataElementOptions(b)).borderAlign&&(g=Math.max(g,f.borderWidth||0,f.hoverBorderWidth||0));return g}getMaxOffset(a){let b=0;for(let c=0,d=a.length;c<d;++c){let a=this.resolveDataElementOptions(c);b=Math.max(b,a.offset||0,a.hoverOffset||0)}return b}_getRingWeightOffset(a){let b=0;for(let c=0;c<a;++c)this.chart.isDatasetVisible(c)&&(b+=this._getRingWeight(c));return b}_getRingWeight(a){return Math.max(d.valueOrDefault(this.chart.data.datasets[a].weight,1),0)}_getVisibleDatasetWeightTotal(){return this._getRingWeightOffset(this.chart.data.datasets.length)||1}}class D extends u{static id="line";static defaults={datasetElementType:"line",dataElementType:"point",showLine:!0,spanGaps:!1};static overrides={scales:{_index_:{type:"category"},_value_:{type:"linear"}}};initialize(){this.enableOptionSharing=!0,this.supportsDecimation=!0,super.initialize()}update(a){let b=this._cachedMeta,{dataset:c,data:e=[],_dataset:f}=b,g=this.chart._animationsDisabled,{start:h,count:i}=d._getStartAndCountOfVisiblePoints(b,e,g);this._drawStart=h,this._drawCount=i,d._scaleRangesChanged(b)&&(h=0,i=e.length),c._chart=this.chart,c._datasetIndex=this.index,c._decimated=!!f._decimated,c.points=e;let j=this.resolveDatasetElementOptions(a);this.options.showLine||(j.borderWidth=0),j.segment=this.options.segment,this.updateElement(c,void 0,{animated:!g,options:j},a),this.updateElements(e,h,i,a)}updateElements(a,b,c,e){let f="reset"===e,{iScale:g,vScale:h,_stacked:i,_dataset:j}=this._cachedMeta,{sharedOptions:k,includeOptions:l}=this._getSharedOptions(b,e),m=g.axis,n=h.axis,{spanGaps:o,segment:p}=this.options,q=d.isNumber(o)?o:1/0,r=this.chart._animationsDisabled||f||"none"===e,s=b+c,t=a.length,u=b>0&&this.getParsed(b-1);for(let c=0;c<t;++c){let o=a[c],t=r?o:{};if(c<b||c>=s){t.skip=!0;continue}let v=this.getParsed(c),w=d.isNullOrUndef(v[n]),x=t[m]=g.getPixelForValue(v[m],c),y=t[n]=f||w?h.getBasePixel():h.getPixelForValue(i?this.applyStack(h,v,i):v[n],c);t.skip=isNaN(x)||isNaN(y)||w,t.stop=c>0&&Math.abs(v[m]-u[m])>q,p&&(t.parsed=v,t.raw=j.data[c]),l&&(t.options=k||this.resolveDataElementOptions(c,o.active?"active":e)),r||this.updateElement(o,c,t,e),u=v}}getMaxOverflow(){let a=this._cachedMeta,b=a.dataset,c=b.options&&b.options.borderWidth||0,d=a.data||[];return d.length?Math.max(c,d[0].size(this.resolveDataElementOptions(0)),d[d.length-1].size(this.resolveDataElementOptions(d.length-1)))/2:c}draw(){let a=this._cachedMeta;a.dataset.updateControlPoints(this.chart.chartArea,a.iScale.axis),super.draw()}}class E extends u{static id="polarArea";static defaults={dataElementType:"arc",animation:{animateRotate:!0,animateScale:!0},animations:{numbers:{type:"number",properties:["x","y","startAngle","endAngle","innerRadius","outerRadius"]}},indexAxis:"r",startAngle:0};static overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(a){let b=a.data;if(b.labels.length&&b.datasets.length){let{labels:{pointStyle:c,color:d}}=a.legend.options;return b.labels.map((b,e)=>{let f=a.getDatasetMeta(0).controller.getStyle(e);return{text:b,fillStyle:f.backgroundColor,strokeStyle:f.borderColor,fontColor:d,lineWidth:f.borderWidth,pointStyle:c,hidden:!a.getDataVisibility(e),index:e}})}return[]}},onClick(a,b,c){c.chart.toggleDataVisibility(b.index),c.chart.update()}}},scales:{r:{type:"radialLinear",angleLines:{display:!1},beginAtZero:!0,grid:{circular:!0},pointLabels:{display:!1},startAngle:0}}};constructor(a,b){super(a,b),this.innerRadius=void 0,this.outerRadius=void 0}getLabelAndValue(a){let b=this._cachedMeta,c=this.chart,e=c.data.labels||[],f=d.formatNumber(b._parsed[a].r,c.options.locale);return{label:e[a]||"",value:f}}parseObjectData(a,b,c,e){return d._parseObjectDataRadialScale.bind(this)(a,b,c,e)}update(a){let b=this._cachedMeta.data;this._updateRadius(),this.updateElements(b,0,b.length,a)}getMinMax(){let a=this._cachedMeta,b={min:1/0,max:-1/0};return a.data.forEach((a,c)=>{let d=this.getParsed(c).r;!isNaN(d)&&this.chart.getDataVisibility(c)&&(d<b.min&&(b.min=d),d>b.max&&(b.max=d))}),b}_updateRadius(){let a=this.chart,b=a.chartArea,c=a.options,d=Math.max(Math.min(b.right-b.left,b.bottom-b.top)/2,0),e=Math.max(c.cutoutPercentage?d/100*c.cutoutPercentage:1,0),f=(d-e)/a.getVisibleDatasetCount();this.outerRadius=d-f*this.index,this.innerRadius=this.outerRadius-f}updateElements(a,b,c,e){let f,g="reset"===e,h=this.chart,i=h.options.animation,j=this._cachedMeta.rScale,k=j.xCenter,l=j.yCenter,m=j.getIndexAngle(0)-.5*d.PI,n=m,o=360/this.countVisibleElements();for(f=0;f<b;++f)n+=this._computeAngle(f,e,o);for(f=b;f<b+c;f++){let b=a[f],c=n,d=n+this._computeAngle(f,e,o),p=h.getDataVisibility(f)?j.getDistanceFromCenterForValue(this.getParsed(f).r):0;n=d,g&&(i.animateScale&&(p=0),i.animateRotate&&(c=d=m));let q={x:k,y:l,innerRadius:0,outerRadius:p,startAngle:c,endAngle:d,options:this.resolveDataElementOptions(f,b.active?"active":e)};this.updateElement(b,f,q,e)}}countVisibleElements(){let a=this._cachedMeta,b=0;return a.data.forEach((a,c)=>{!isNaN(this.getParsed(c).r)&&this.chart.getDataVisibility(c)&&b++}),b}_computeAngle(a,b,c){return this.chart.getDataVisibility(a)?d.toRadians(this.resolveDataElementOptions(a,b).angle||c):0}}class F extends C{static id="pie";static defaults={cutout:0,rotation:0,circumference:360,radius:"100%"}}class G extends u{static id="radar";static defaults={datasetElementType:"line",dataElementType:"point",indexAxis:"r",showLine:!0,elements:{line:{fill:"start"}}};static overrides={aspectRatio:1,scales:{r:{type:"radialLinear"}}};getLabelAndValue(a){let b=this._cachedMeta.vScale,c=this.getParsed(a);return{label:b.getLabels()[a],value:""+b.getLabelForValue(c[b.axis])}}parseObjectData(a,b,c,e){return d._parseObjectDataRadialScale.bind(this)(a,b,c,e)}update(a){let b=this._cachedMeta,c=b.dataset,d=b.data||[],e=b.iScale.getLabels();if(c.points=d,"resize"!==a){let b=this.resolveDatasetElementOptions(a);this.options.showLine||(b.borderWidth=0);let f={_loop:!0,_fullLoop:e.length===d.length,options:b};this.updateElement(c,void 0,f,a)}this.updateElements(d,0,d.length,a)}updateElements(a,b,c,d){let e=this._cachedMeta.rScale,f="reset"===d;for(let g=b;g<b+c;g++){let b=a[g],c=this.resolveDataElementOptions(g,b.active?"active":d),h=e.getPointPositionForValue(g,this.getParsed(g).r),i=f?e.xCenter:h.x,j=f?e.yCenter:h.y,k={x:i,y:j,angle:h.angle,skip:isNaN(i)||isNaN(j),options:c};this.updateElement(b,g,k,d)}}}class H extends u{static id="scatter";static defaults={datasetElementType:!1,dataElementType:"point",showLine:!1,fill:!1};static overrides={interaction:{mode:"point"},scales:{x:{type:"linear"},y:{type:"linear"}}};getLabelAndValue(a){let b=this._cachedMeta,c=this.chart.data.labels||[],{xScale:d,yScale:e}=b,f=this.getParsed(a),g=d.getLabelForValue(f.x),h=e.getLabelForValue(f.y);return{label:c[a]||"",value:"("+g+", "+h+")"}}update(a){let b=this._cachedMeta,{data:c=[]}=b,e=this.chart._animationsDisabled,{start:f,count:g}=d._getStartAndCountOfVisiblePoints(b,c,e);if(this._drawStart=f,this._drawCount=g,d._scaleRangesChanged(b)&&(f=0,g=c.length),this.options.showLine){this.datasetElementType||this.addElements();let{dataset:d,_dataset:f}=b;d._chart=this.chart,d._datasetIndex=this.index,d._decimated=!!f._decimated,d.points=c;let g=this.resolveDatasetElementOptions(a);g.segment=this.options.segment,this.updateElement(d,void 0,{animated:!e,options:g},a)}else this.datasetElementType&&(delete b.dataset,this.datasetElementType=!1);this.updateElements(c,f,g,a)}addElements(){let{showLine:a}=this.options;!this.datasetElementType&&a&&(this.datasetElementType=this.chart.registry.getElement("line")),super.addElements()}updateElements(a,b,c,e){let f="reset"===e,{iScale:g,vScale:h,_stacked:i,_dataset:j}=this._cachedMeta,k=this.resolveDataElementOptions(b,e),l=this.getSharedOptions(k),m=this.includeOptions(e,l),n=g.axis,o=h.axis,{spanGaps:p,segment:q}=this.options,r=d.isNumber(p)?p:1/0,s=this.chart._animationsDisabled||f||"none"===e,t=b>0&&this.getParsed(b-1);for(let k=b;k<b+c;++k){let b=a[k],c=this.getParsed(k),p=s?b:{},u=d.isNullOrUndef(c[o]),v=p[n]=g.getPixelForValue(c[n],k),w=p[o]=f||u?h.getBasePixel():h.getPixelForValue(i?this.applyStack(h,c,i):c[o],k);p.skip=isNaN(v)||isNaN(w)||u,p.stop=k>0&&Math.abs(c[n]-t[n])>r,q&&(p.parsed=c,p.raw=j.data[k]),m&&(p.options=l||this.resolveDataElementOptions(k,b.active?"active":e)),s||this.updateElement(b,k,p,e),t=c}this.updateSharedOptions(l,e,k)}getMaxOverflow(){let a=this._cachedMeta,b=a.data||[];if(!this.options.showLine){let a=0;for(let c=b.length-1;c>=0;--c)a=Math.max(a,b[c].size(this.resolveDataElementOptions(c))/2);return a>0&&a}let c=a.dataset,d=c.options&&c.options.borderWidth||0;return b.length?Math.max(d,b[0].size(this.resolveDataElementOptions(0)),b[b.length-1].size(this.resolveDataElementOptions(b.length-1)))/2:d}}var I=Object.freeze({__proto__:null,BarController:A,BubbleController:B,DoughnutController:C,LineController:D,PieController:F,PolarAreaController:E,RadarController:G,ScatterController:H});function J(){throw Error("This method is not implemented: Check that a complete date adapter is provided.")}class K{static override(a){Object.assign(K.prototype,a)}options;constructor(a){this.options=a||{}}init(){}formats(){return J()}parse(){return J()}format(){return J()}add(){return J()}diff(){return J()}startOf(){return J()}endOf(){return J()}}var L={_date:K};function M(a,b,c,e,f){let g=a.getSortedVisibleDatasetMetas(),h=c[b];for(let a=0,c=g.length;a<c;++a){let{index:c,data:i}=g[a],{lo:j,hi:k}=function(a,b,c,e){let{controller:f,data:g,_sorted:h}=a,i=f._cachedMeta.iScale,j=a.dataset&&a.dataset.options?a.dataset.options.spanGaps:null;if(i&&b===i.axis&&"r"!==b&&h&&g.length){let h=i._reversePixels?d._rlookupByKey:d._lookupByKey;if(e){if(f._sharedOptions){let a=g[0],d="function"==typeof a.getRange&&a.getRange(b);if(d){let a=h(g,b,c-d),e=h(g,b,c+d);return{lo:a.lo,hi:e.hi}}}}else{let e=h(g,b,c);if(j){let{vScale:b}=f._cachedMeta,{_parsed:c}=a,g=c.slice(0,e.lo+1).reverse().findIndex(a=>!d.isNullOrUndef(a[b.axis]));e.lo-=Math.max(0,g);let h=c.slice(e.hi).findIndex(a=>!d.isNullOrUndef(a[b.axis]));e.hi+=Math.max(0,h)}return e}}return{lo:0,hi:g.length-1}}(g[a],b,h,f);for(let a=j;a<=k;++a){let b=i[a];b.skip||e(b,c,a)}}}function N(a,b,c,e,f){let g=[];return(f||a.isPointInArea(b))&&M(a,c,b,function(c,h,i){(f||d._isPointInArea(c,a.chartArea,0))&&c.inRange(b.x,b.y,e)&&g.push({element:c,datasetIndex:h,index:i})},!0),g}function O(a,b,c,e,f,g){let h,i,j,k,l,m;return g||a.isPointInArea(b)?"r"!==c||e?(h=[],i=-1!==c.indexOf("x"),j=-1!==c.indexOf("y"),k=function(a,b){return Math.sqrt(Math.pow(i?Math.abs(a.x-b.x):0,2)+Math.pow(j?Math.abs(a.y-b.y):0,2))},l=1/0,M(a,c,b,function(c,d,i){let j=c.inRange(b.x,b.y,f);if(e&&!j)return;let m=c.getCenterPoint(f);if(!(g||a.isPointInArea(m))&&!j)return;let n=k(b,m);n<l?(h=[{element:c,datasetIndex:d,index:i}],l=n):n===l&&h.push({element:c,datasetIndex:d,index:i})}),h):(m=[],M(a,c,b,function(a,c,e){let{startAngle:g,endAngle:h}=a.getProps(["startAngle","endAngle"],f),{angle:i}=d.getAngleFromPoint(a,{x:b.x,y:b.y});d._angleBetween(i,g,h)&&m.push({element:a,datasetIndex:c,index:e})}),m):[]}function P(a,b,c,d,e){let f=[],g="x"===c?"inXRange":"inYRange",h=!1;return(M(a,c,b,(a,d,i)=>{a[g]&&a[g](b[c],e)&&(f.push({element:a,datasetIndex:d,index:i}),h=h||a.inRange(b.x,b.y,e))}),d&&!h)?[]:f}var Q={evaluateInteractionItems:M,modes:{index(a,b,c,e){let f=d.getRelativePosition(b,a),g=c.axis||"x",h=c.includeInvisible||!1,i=c.intersect?N(a,f,g,e,h):O(a,f,g,!1,e,h),j=[];return i.length?(a.getSortedVisibleDatasetMetas().forEach(a=>{let b=i[0].index,c=a.data[b];c&&!c.skip&&j.push({element:c,datasetIndex:a.index,index:b})}),j):[]},dataset(a,b,c,e){let f=d.getRelativePosition(b,a),g=c.axis||"xy",h=c.includeInvisible||!1,i=c.intersect?N(a,f,g,e,h):O(a,f,g,!1,e,h);if(i.length>0){let b=i[0].datasetIndex,c=a.getDatasetMeta(b).data;i=[];for(let a=0;a<c.length;++a)i.push({element:c[a],datasetIndex:b,index:a})}return i},point(a,b,c,e){let f=d.getRelativePosition(b,a);return N(a,f,c.axis||"xy",e,c.includeInvisible||!1)},nearest(a,b,c,e){let f=d.getRelativePosition(b,a),g=c.axis||"xy",h=c.includeInvisible||!1;return O(a,f,g,c.intersect,e,h)},x(a,b,c,e){let f=d.getRelativePosition(b,a);return P(a,f,"x",c.intersect,e)},y(a,b,c,e){let f=d.getRelativePosition(b,a);return P(a,f,"y",c.intersect,e)}}};let R=["left","top","right","bottom"];function S(a,b){return a.filter(a=>a.pos===b)}function T(a,b){return a.filter(a=>-1===R.indexOf(a.pos)&&a.box.axis===b)}function U(a,b){return a.sort((a,c)=>{let d=b?c:a,e=b?a:c;return d.weight===e.weight?d.index-e.index:d.weight-e.weight})}function V(a,b,c,d){return Math.max(a[c],b[c])+Math.max(a[d],b[d])}function W(a,b){a.top=Math.max(a.top,b.top),a.left=Math.max(a.left,b.left),a.bottom=Math.max(a.bottom,b.bottom),a.right=Math.max(a.right,b.right)}function X(a,b,c,e){let f,g,h,i,j,k,l=[];for(f=0,g=a.length,j=0;f<g;++f){(i=(h=a[f]).box).update(h.width||b.w,h.height||b.h,function(a,b){let c=b.maxPadding;return function(a){let d={left:0,top:0,right:0,bottom:0};return a.forEach(a=>{d[a]=Math.max(b[a],c[a])}),d}(a?["left","right"]:["top","bottom"])}(h.horizontal,b));let{same:g,other:m}=function(a,b,c,e){let{pos:f,box:g}=c,h=a.maxPadding;if(!d.isObject(f)){c.size&&(a[f]-=c.size);let b=e[c.stack]||{size:0,count:1};b.size=Math.max(b.size,c.horizontal?g.height:g.width),c.size=b.size/b.count,a[f]+=c.size}g.getPadding&&W(h,g.getPadding());let i=Math.max(0,b.outerWidth-V(h,a,"left","right")),j=Math.max(0,b.outerHeight-V(h,a,"top","bottom")),k=i!==a.w,l=j!==a.h;return a.w=i,a.h=j,c.horizontal?{same:k,other:l}:{same:l,other:k}}(b,c,h,e);j|=g&&l.length,k=k||m,i.fullSize||l.push(h)}return j&&X(l,b,c,e)||k}function Y(a,b,c,d,e){a.top=c,a.left=b,a.right=b+d,a.bottom=c+e,a.width=d,a.height=e}function Z(a,b,c,e){let f=c.padding,{x:g,y:h}=b;for(let i of a){let a=i.box,j=e[i.stack]||{count:1,placed:0,weight:1},k=i.stackWeight/j.weight||1;if(i.horizontal){let e=b.w*k,g=j.size||a.height;d.defined(j.start)&&(h=j.start),a.fullSize?Y(a,f.left,h,c.outerWidth-f.right-f.left,g):Y(a,b.left+j.placed,h,e,g),j.start=h,j.placed+=e,h=a.bottom}else{let e=b.h*k,h=j.size||a.width;d.defined(j.start)&&(g=j.start),a.fullSize?Y(a,g,f.top,h,c.outerHeight-f.bottom-f.top):Y(a,g,b.top+j.placed,h,e),j.start=g,j.placed+=e,g=a.right}}b.x=g,b.y=h}var $={addBox(a,b){a.boxes||(a.boxes=[]),b.fullSize=b.fullSize||!1,b.position=b.position||"top",b.weight=b.weight||0,b._layers=b._layers||function(){return[{z:0,draw(a){b.draw(a)}}]},a.boxes.push(b)},removeBox(a,b){let c=a.boxes?a.boxes.indexOf(b):-1;-1!==c&&a.boxes.splice(c,1)},configure(a,b,c){b.fullSize=c.fullSize,b.position=c.position,b.weight=c.weight},update(a,b,c,e){let f,g,h,i,j,k,l,m;if(!a)return;let n=d.toPadding(a.options.layout.padding),o=Math.max(b-n.width,0),p=Math.max(c-n.height,0),q=(g=U((f=function(a){let b,c,d,e,f,g,h=[];for(b=0,c=(a||[]).length;b<c;++b)d=a[b],({position:e,options:{stack:f,stackWeight:g=1}}=d),h.push({index:b,box:d,pos:e,horizontal:d.isHorizontal(),weight:d.weight,stack:f&&e+f,stackWeight:g});return h}(a.boxes)).filter(a=>a.box.fullSize),!0),h=U(S(f,"left"),!0),i=U(S(f,"right")),j=U(S(f,"top"),!0),k=U(S(f,"bottom")),l=T(f,"x"),m=T(f,"y"),{fullSize:g,leftAndTop:h.concat(j),rightAndBottom:i.concat(m).concat(k).concat(l),chartArea:S(f,"chartArea"),vertical:h.concat(i).concat(m),horizontal:j.concat(k).concat(l)}),r=q.vertical,s=q.horizontal;d.each(a.boxes,a=>{"function"==typeof a.beforeLayout&&a.beforeLayout()});let t=Object.freeze({outerWidth:b,outerHeight:c,padding:n,availableWidth:o,availableHeight:p,vBoxMaxWidth:o/2/(r.reduce((a,b)=>b.box.options&&!1===b.box.options.display?a:a+1,0)||1),hBoxMaxHeight:p/2}),u=Object.assign({},n);W(u,d.toPadding(e));let v=Object.assign({maxPadding:u,w:o,h:p,x:n.left,y:n.top},n),w=function(a,b){let c,d,e,f=function(a){let b={};for(let c of a){let{stack:a,pos:d,stackWeight:e}=c;if(!a||!R.includes(d))continue;let f=b[a]||(b[a]={count:0,placed:0,weight:0,size:0});f.count++,f.weight+=e}return b}(a),{vBoxMaxWidth:g,hBoxMaxHeight:h}=b;for(c=0,d=a.length;c<d;++c){let{fullSize:d}=(e=a[c]).box,i=f[e.stack],j=i&&e.stackWeight/i.weight;e.horizontal?(e.width=j?j*g:d&&b.availableWidth,e.height=h):(e.width=g,e.height=j?j*h:d&&b.availableHeight)}return f}(r.concat(s),t);X(q.fullSize,v,t,w),X(r,v,t,w),X(s,v,t,w)&&X(r,v,t,w);let x=v.maxPadding;function y(a){let b=Math.max(x[a]-v[a],0);return v[a]+=b,b}v.y+=y("top"),v.x+=y("left"),y("right"),y("bottom"),Z(q.leftAndTop,v,t,w),v.x+=v.w,v.y+=v.h,Z(q.rightAndBottom,v,t,w),a.chartArea={left:v.left,top:v.top,right:v.left+v.w,bottom:v.top+v.h,height:v.h,width:v.w},d.each(q.chartArea,b=>{let c=b.box;Object.assign(c,a.chartArea),c.update(v.w,v.h,{left:0,top:0,right:0,bottom:0})})}};class _{acquireContext(a,b){}releaseContext(a){return!1}addEventListener(a,b,c){}removeEventListener(a,b,c){}getDevicePixelRatio(){return 1}getMaximumSize(a,b,c,d){return b=Math.max(0,b||a.width),c=c||a.height,{width:b,height:Math.max(0,d?Math.floor(b/d):c)}}isAttached(a){return!0}updateConfig(a){}}class aa extends _{acquireContext(a){return a&&a.getContext&&a.getContext("2d")||null}updateConfig(a){a.options.animation=!1}}let ab="$chartjs",ac={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},ad=a=>null===a||""===a,ae=!!d.supportsEventListenerOptions&&{passive:!0};function af(a,b){for(let c of a)if(c===b||c.contains(b))return!0}function ag(a,b,c){let d=a.canvas,e=new MutationObserver(a=>{let b=!1;for(let c of a)b=(b=b||af(c.addedNodes,d))&&!af(c.removedNodes,d);b&&c()});return e.observe(document,{childList:!0,subtree:!0}),e}function ah(a,b,c){let d=a.canvas,e=new MutationObserver(a=>{let b=!1;for(let c of a)b=(b=b||af(c.removedNodes,d))&&!af(c.addedNodes,d);b&&c()});return e.observe(document,{childList:!0,subtree:!0}),e}let ai=new Map,aj=0;function ak(){let a=window.devicePixelRatio;a!==aj&&(aj=a,ai.forEach((b,c)=>{c.currentDevicePixelRatio!==a&&b()}))}function al(a,b,c){let e=a.canvas,f=e&&d._getParentNode(e);if(!f)return;let g=d.throttled((a,b)=>{let d=f.clientWidth;c(a,b),d<f.clientWidth&&c()},window),h=new ResizeObserver(a=>{let b=a[0],c=b.contentRect.width,d=b.contentRect.height;(0!==c||0!==d)&&g(c,d)});return h.observe(f),ai.size||window.addEventListener("resize",ak),ai.set(a,g),h}function am(a,b,c){c&&c.disconnect(),"resize"===b&&(ai.delete(a),ai.size||window.removeEventListener("resize",ak))}function an(a,b,c){let e=a.canvas,f=d.throttled(b=>{null!==a.ctx&&c(function(a,b){let c=ac[a.type]||a.type,{x:e,y:f}=d.getRelativePosition(a,b);return{type:c,chart:b,native:a,x:void 0!==e?e:null,y:void 0!==f?f:null}}(b,a))},a);return e&&e.addEventListener(b,f,ae),f}class ao extends _{acquireContext(a,b){let c=a&&a.getContext&&a.getContext("2d");return c&&c.canvas===a?(!function(a,b){let c=a.style,e=a.getAttribute("height"),f=a.getAttribute("width");if(a[ab]={initial:{height:e,width:f,style:{display:c.display,height:c.height,width:c.width}}},c.display=c.display||"block",c.boxSizing=c.boxSizing||"border-box",ad(f)){let b=d.readUsedSize(a,"width");void 0!==b&&(a.width=b)}if(ad(e))if(""===a.style.height)a.height=a.width/(b||2);else{let b=d.readUsedSize(a,"height");void 0!==b&&(a.height=b)}}(a,b),c):null}releaseContext(a){let b=a.canvas;if(!b[ab])return!1;let c=b[ab].initial;["height","width"].forEach(a=>{let e=c[a];d.isNullOrUndef(e)?b.removeAttribute(a):b.setAttribute(a,e)});let e=c.style||{};return Object.keys(e).forEach(a=>{b.style[a]=e[a]}),b.width=b.width,delete b[ab],!0}addEventListener(a,b,c){this.removeEventListener(a,b);let d=a.$proxies||(a.$proxies={}),e={attach:ag,detach:ah,resize:al}[b]||an;d[b]=e(a,b,c)}removeEventListener(a,b){let c=a.$proxies||(a.$proxies={}),d=c[b];d&&((({attach:am,detach:am,resize:am})[b]||function(a,b,c){a&&a.canvas&&a.canvas.removeEventListener(b,c,ae)})(a,b,d),c[b]=void 0)}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(a,b,c,e){return d.getMaximumSize(a,b,c,e)}isAttached(a){let b=a&&d._getParentNode(a);return!!(b&&b.isConnected)}}function ap(a){return!d._isDomSupported()||"u">typeof OffscreenCanvas&&a instanceof OffscreenCanvas?aa:ao}class aq{static defaults={};static defaultRoutes=void 0;x;y;active=!1;options;$animations;tooltipPosition(a){let{x:b,y:c}=this.getProps(["x","y"],a);return{x:b,y:c}}hasValue(){return d.isNumber(this.x)&&d.isNumber(this.y)}getProps(a,b){let c=this.$animations;if(!b||!c)return this;let d={};return a.forEach(a=>{d[a]=c[a]&&c[a].active()?c[a]._to:this[a]}),d}}function ar(a,b,c,e,f){let g,h,i,j=d.valueOrDefault(e,0),k=Math.min(d.valueOrDefault(f,a.length),a.length),l=0;for(c=Math.ceil(c),f&&(c=(g=f-e)/Math.floor(g/c)),i=j;i<0;)i=Math.round(j+ ++l*c);for(h=Math.max(j,0);h<k;h++)h===i&&(b.push(a[h]),i=Math.round(j+ ++l*c))}let as=(a,b,c)=>"top"===b||"left"===b?a[b]+c:a[b]-c,at=(a,b)=>Math.min(b||a,a);function au(a,b){let c=[],d=a.length/b,e=a.length,f=0;for(;f<e;f+=d)c.push(a[Math.floor(f)]);return c}function av(a){return a.drawTicks?a.tickLength:0}function aw(a,b){if(!a.display)return 0;let c=d.toFont(a.font,b),e=d.toPadding(a.padding);return(d.isArray(a.text)?a.text.length:1)*c.lineHeight+e.height}class ax extends aq{constructor(a){super(),this.id=a.id,this.type=a.type,this.options=void 0,this.ctx=a.ctx,this.chart=a.chart,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this._margins={left:0,right:0,top:0,bottom:0},this.maxWidth=void 0,this.maxHeight=void 0,this.paddingTop=void 0,this.paddingBottom=void 0,this.paddingLeft=void 0,this.paddingRight=void 0,this.axis=void 0,this.labelRotation=void 0,this.min=void 0,this.max=void 0,this._range=void 0,this.ticks=[],this._gridLineItems=null,this._labelItems=null,this._labelSizes=null,this._length=0,this._maxLength=0,this._longestTextCache={},this._startPixel=void 0,this._endPixel=void 0,this._reversePixels=!1,this._userMax=void 0,this._userMin=void 0,this._suggestedMax=void 0,this._suggestedMin=void 0,this._ticksLength=0,this._borderValue=0,this._cache={},this._dataLimitsCached=!1,this.$context=void 0}init(a){this.options=a.setContext(this.getContext()),this.axis=a.axis,this._userMin=this.parse(a.min),this._userMax=this.parse(a.max),this._suggestedMin=this.parse(a.suggestedMin),this._suggestedMax=this.parse(a.suggestedMax)}parse(a,b){return a}getUserBounds(){let{_userMin:a,_userMax:b,_suggestedMin:c,_suggestedMax:e}=this;return a=d.finiteOrDefault(a,1/0),b=d.finiteOrDefault(b,-1/0),c=d.finiteOrDefault(c,1/0),e=d.finiteOrDefault(e,-1/0),{min:d.finiteOrDefault(a,c),max:d.finiteOrDefault(b,e),minDefined:d.isNumberFinite(a),maxDefined:d.isNumberFinite(b)}}getMinMax(a){let b,{min:c,max:e,minDefined:f,maxDefined:g}=this.getUserBounds();if(f&&g)return{min:c,max:e};let h=this.getMatchingVisibleMetas();for(let d=0,i=h.length;d<i;++d)b=h[d].controller.getMinMax(this,a),f||(c=Math.min(c,b.min)),g||(e=Math.max(e,b.max));return c=g&&c>e?e:c,e=f&&c>e?c:e,{min:d.finiteOrDefault(c,d.finiteOrDefault(e,c)),max:d.finiteOrDefault(e,d.finiteOrDefault(c,e))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){let a=this.chart.data;return this.options.labels||(this.isHorizontal()?a.xLabels:a.yLabels)||a.labels||[]}getLabelItems(a=this.chart.chartArea){return this._labelItems||(this._labelItems=this._computeLabelItems(a))}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){d.callback(this.options.beforeUpdate,[this])}update(a,b,c){let{beginAtZero:e,grace:f,ticks:g}=this.options,h=g.sampleSize;this.beforeUpdate(),this.maxWidth=a,this.maxHeight=b,this._margins=c=Object.assign({left:0,right:0,top:0,bottom:0},c),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+c.left+c.right:this.height+c.top+c.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=d._addGrace(this,f,e),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();let i=h<this.ticks.length;this._convertTicksToLabels(i?au(this.ticks,h):this.ticks),this.configure(),this.beforeCalculateLabelRotation(),this.calculateLabelRotation(),this.afterCalculateLabelRotation(),g.display&&(g.autoSkip||"auto"===g.source)&&(this.ticks=function(a,b){var c;let e,f,g=a.options.ticks,h=(e=(c=a).options.offset,f=c._tickSize(),Math.floor(Math.min(c._length/f+ +!e,c._maxLength/f))),i=Math.min(g.maxTicksLimit||h,h),j=g.major.enabled?function(a){let b,c,d=[];for(b=0,c=a.length;b<c;b++)a[b].major&&d.push(b);return d}(b):[],k=j.length,l=j[0],m=j[k-1],n=[];if(k>i)return function(a,b,c,d){let e,f=0,g=c[0];for(e=0,d=Math.ceil(d);e<a.length;e++)e===g&&(b.push(a[e]),g=c[++f*d])}(b,n,j,k/i),n;let o=function(a,b,c){let e=function(a){let b,c,d=a.length;if(d<2)return!1;for(c=a[0],b=1;b<d;++b)if(a[b]-a[b-1]!==c)return!1;return c}(a),f=b.length/c;if(!e)return Math.max(f,1);let g=d._factorize(e);for(let a=0,b=g.length-1;a<b;a++){let b=g[a];if(b>f)return b}return Math.max(f,1)}(j,b,i);if(k>0){let a,c,e=k>1?Math.round((m-l)/(k-1)):null;for(ar(b,n,o,d.isNullOrUndef(e)?0:l-e,l),a=0,c=k-1;a<c;a++)ar(b,n,o,j[a],j[a+1]);return ar(b,n,o,m,d.isNullOrUndef(e)?b.length:m+e),n}return ar(b,n,o),n}(this,this.ticks),this._labelSizes=null,this.afterAutoSkip()),i&&this._convertTicksToLabels(this.ticks),this.beforeFit(),this.fit(),this.afterFit(),this.afterUpdate()}configure(){let a,b,c=this.options.reverse;this.isHorizontal()?(a=this.left,b=this.right):(a=this.top,b=this.bottom,c=!c),this._startPixel=a,this._endPixel=b,this._reversePixels=c,this._length=b-a,this._alignToPixels=this.options.alignToPixels}afterUpdate(){d.callback(this.options.afterUpdate,[this])}beforeSetDimensions(){d.callback(this.options.beforeSetDimensions,[this])}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=0,this.right=this.width):(this.height=this.maxHeight,this.top=0,this.bottom=this.height),this.paddingLeft=0,this.paddingTop=0,this.paddingRight=0,this.paddingBottom=0}afterSetDimensions(){d.callback(this.options.afterSetDimensions,[this])}_callHooks(a){this.chart.notifyPlugins(a,this.getContext()),d.callback(this.options[a],[this])}beforeDataLimits(){this._callHooks("beforeDataLimits")}determineDataLimits(){}afterDataLimits(){this._callHooks("afterDataLimits")}beforeBuildTicks(){this._callHooks("beforeBuildTicks")}buildTicks(){return[]}afterBuildTicks(){this._callHooks("afterBuildTicks")}beforeTickToLabelConversion(){d.callback(this.options.beforeTickToLabelConversion,[this])}generateTickLabels(a){let b,c,e,f=this.options.ticks;for(b=0,c=a.length;b<c;b++)(e=a[b]).label=d.callback(f.callback,[e.value,b,a],this)}afterTickToLabelConversion(){d.callback(this.options.afterTickToLabelConversion,[this])}beforeCalculateLabelRotation(){d.callback(this.options.beforeCalculateLabelRotation,[this])}calculateLabelRotation(){let a,b,c,e=this.options,f=e.ticks,g=at(this.ticks.length,e.ticks.maxTicksLimit),h=f.minRotation||0,i=f.maxRotation,j=h;if(!this._isVisible()||!f.display||h>=i||g<=1||!this.isHorizontal()){this.labelRotation=h;return}let k=this._getLabelSizes(),l=k.widest.width,m=k.highest.height,n=d._limitValue(this.chart.width-l,0,this.maxWidth);l+6>(a=e.offset?this.maxWidth/g:n/(g-1))&&(a=n/(g-(e.offset?.5:1)),b=this.maxHeight-av(e.grid)-f.padding-aw(e.title,this.chart.options.font),c=Math.sqrt(l*l+m*m),j=Math.max(h,Math.min(i,j=d.toDegrees(Math.min(Math.asin(d._limitValue((k.highest.height+6)/a,-1,1)),Math.asin(d._limitValue(b/c,-1,1))-Math.asin(d._limitValue(m/c,-1,1))))))),this.labelRotation=j}afterCalculateLabelRotation(){d.callback(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){d.callback(this.options.beforeFit,[this])}fit(){let a={width:0,height:0},{chart:b,options:{ticks:c,title:e,grid:f}}=this,g=this._isVisible(),h=this.isHorizontal();if(g){let g=aw(e,b.options.font);if(h?(a.width=this.maxWidth,a.height=av(f)+g):(a.height=this.maxHeight,a.width=av(f)+g),c.display&&this.ticks.length){let{first:b,last:e,widest:f,highest:g}=this._getLabelSizes(),i=2*c.padding,j=d.toRadians(this.labelRotation),k=Math.cos(j),l=Math.sin(j);if(h){let b=c.mirror?0:l*f.width+k*g.height;a.height=Math.min(this.maxHeight,a.height+b+i)}else{let b=c.mirror?0:k*f.width+l*g.height;a.width=Math.min(this.maxWidth,a.width+b+i)}this._calculatePadding(b,e,l,k)}}this._handleMargins(),h?(this.width=this._length=b.width-this._margins.left-this._margins.right,this.height=a.height):(this.width=a.width,this.height=this._length=b.height-this._margins.top-this._margins.bottom)}_calculatePadding(a,b,c,d){let{ticks:{align:e,padding:f},position:g}=this.options,h=0!==this.labelRotation,i="top"!==g&&"x"===this.axis;if(this.isHorizontal()){let g=this.getPixelForTick(0)-this.left,j=this.right-this.getPixelForTick(this.ticks.length-1),k=0,l=0;h?i?(k=d*a.width,l=c*b.height):(k=c*a.height,l=d*b.width):"start"===e?l=b.width:"end"===e?k=a.width:"inner"!==e&&(k=a.width/2,l=b.width/2),this.paddingLeft=Math.max((k-g+f)*this.width/(this.width-g),0),this.paddingRight=Math.max((l-j+f)*this.width/(this.width-j),0)}else{let c=b.height/2,d=a.height/2;"start"===e?(c=0,d=a.height):"end"===e&&(c=b.height,d=0),this.paddingTop=c+f,this.paddingBottom=d+f}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){d.callback(this.options.afterFit,[this])}isHorizontal(){let{axis:a,position:b}=this.options;return"top"===b||"bottom"===b||"x"===a}isFullSize(){return this.options.fullSize}_convertTicksToLabels(a){let b,c;for(this.beforeTickToLabelConversion(),this.generateTickLabels(a),b=0,c=a.length;b<c;b++)d.isNullOrUndef(a[b].label)&&(a.splice(b,1),c--,b--);this.afterTickToLabelConversion()}_getLabelSizes(){let a=this._labelSizes;if(!a){let b=this.options.ticks.sampleSize,c=this.ticks;b<c.length&&(c=au(c,b)),this._labelSizes=a=this._computeLabelSizes(c,c.length,this.options.ticks.maxTicksLimit)}return a}_computeLabelSizes(a,b,c){let e,f,g,h,i,j,k,l,m,n,o,{ctx:p,_longestTextCache:q}=this,r=[],s=[],t=Math.floor(b/at(b,c)),u=0,v=0;for(e=0;e<b;e+=t){if(h=a[e].label,p.font=j=(i=this._resolveTickFontOptions(e)).string,k=q[j]=q[j]||{data:{},gc:[]},l=i.lineHeight,m=n=0,d.isNullOrUndef(h)||d.isArray(h)){if(d.isArray(h))for(f=0,g=h.length;f<g;++f)o=h[f],d.isNullOrUndef(o)||d.isArray(o)||(m=d._measureText(p,k.data,k.gc,m,o),n+=l)}else m=d._measureText(p,k.data,k.gc,m,h),n=l;r.push(m),s.push(n),u=Math.max(m,u),v=Math.max(n,v)}d.each(q,a=>{let c,d=a.gc,e=d.length/2;if(e>b){for(c=0;c<e;++c)delete a.data[d[c]];d.splice(0,e)}});let w=r.indexOf(u),x=s.indexOf(v),y=a=>({width:r[a]||0,height:s[a]||0});return{first:y(0),last:y(b-1),widest:y(w),highest:y(x),widths:r,heights:s}}getLabelForValue(a){return a}getPixelForValue(a,b){return NaN}getValueForPixel(a){}getPixelForTick(a){let b=this.ticks;return a<0||a>b.length-1?null:this.getPixelForValue(b[a].value)}getPixelForDecimal(a){this._reversePixels&&(a=1-a);let b=this._startPixel+a*this._length;return d._int16Range(this._alignToPixels?d._alignPixel(this.chart,b,0):b)}getDecimalForPixel(a){let b=(a-this._startPixel)/this._length;return this._reversePixels?1-b:b}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){let{min:a,max:b}=this;return a<0&&b<0?b:a>0&&b>0?a:0}getContext(a){var b,c;let e=this.ticks||[];if(a>=0&&a<e.length){let c=e[a];return c.$context||(b=this.getContext(),c.$context=d.createContext(b,{tick:c,index:a,type:"tick"}))}return this.$context||(this.$context=(c=this.chart.getContext(),d.createContext(c,{scale:this,type:"scale"})))}_tickSize(){let a=this.options.ticks,b=d.toRadians(this.labelRotation),c=Math.abs(Math.cos(b)),e=Math.abs(Math.sin(b)),f=this._getLabelSizes(),g=a.autoSkipPadding||0,h=f?f.widest.width+g:0,i=f?f.highest.height+g:0;return this.isHorizontal()?i*c>h*e?h/c:i/e:i*e<h*c?i/c:h/e}_isVisible(){let a=this.options.display;return"auto"!==a?!!a:this.getMatchingVisibleMetas().length>0}_computeGridLineItems(a){let b,c,e,f,g,h,i,j,k,l,m,n,o=this.axis,p=this.chart,q=this.options,{grid:r,position:s,border:t}=q,u=r.offset,v=this.isHorizontal(),w=this.ticks.length+ +!!u,x=av(r),y=[],z=t.setContext(this.getContext()),A=z.display?z.width:0,B=A/2,C=function(a){return d._alignPixel(p,a,A)};if("top"===s)b=C(this.bottom),h=this.bottom-x,j=b-B,l=C(a.top)+B,n=a.bottom;else if("bottom"===s)b=C(this.top),l=a.top,n=C(a.bottom)-B,h=b+B,j=this.top+x;else if("left"===s)b=C(this.right),g=this.right-x,i=b-B,k=C(a.left)+B,m=a.right;else if("right"===s)b=C(this.left),k=a.left,m=C(a.right)-B,g=b+B,i=this.left+x;else if("x"===o){if("center"===s)b=C((a.top+a.bottom)/2+.5);else if(d.isObject(s)){let a=Object.keys(s)[0],c=s[a];b=C(this.chart.scales[a].getPixelForValue(c))}l=a.top,n=a.bottom,j=(h=b+B)+x}else if("y"===o){if("center"===s)b=C((a.left+a.right)/2);else if(d.isObject(s)){let a=Object.keys(s)[0],c=s[a];b=C(this.chart.scales[a].getPixelForValue(c))}i=(g=b-B)-x,k=a.left,m=a.right}let D=d.valueOrDefault(q.ticks.maxTicksLimit,w),E=Math.max(1,Math.ceil(w/D));for(c=0;c<w;c+=E){let a=this.getContext(c),b=r.setContext(a),o=t.setContext(a),q=b.lineWidth,s=b.color,w=o.dash||[],x=o.dashOffset,z=b.tickWidth,A=b.tickColor,B=b.tickBorderDash||[],C=b.tickBorderDashOffset;void 0!==(e=function(a,b,c){let d,e=a.ticks.length,f=Math.min(b,e-1),g=a._startPixel,h=a._endPixel,i=a.getPixelForTick(f);if(!c||(d=1===e?Math.max(i-g,h-i):0===b?(a.getPixelForTick(1)-i)/2:(i-a.getPixelForTick(f-1))/2,!((i+=f<b?d:-d)<g-1e-6)&&!(i>h+1e-6)))return i}(this,c,u))&&(f=d._alignPixel(p,e,q),v?g=i=k=m=f:h=j=l=n=f,y.push({tx1:g,ty1:h,tx2:i,ty2:j,x1:k,y1:l,x2:m,y2:n,width:q,color:s,borderDash:w,borderDashOffset:x,tickWidth:z,tickColor:A,tickBorderDash:B,tickBorderDashOffset:C}))}return this._ticksLength=w,this._borderValue=b,y}_computeLabelItems(a){let b,c,e,f,g,h,i,j,k,l,m,n=this.axis,o=this.options,{position:p,ticks:q}=o,r=this.isHorizontal(),s=this.ticks,{align:t,crossAlign:u,padding:v,mirror:w}=q,x=av(o.grid),y=x+v,z=w?-v:y,A=-d.toRadians(this.labelRotation),B=[],C="middle";if("top"===p)g=this.bottom-z,h=this._getXAxisLabelAlignment();else if("bottom"===p)g=this.top+z,h=this._getXAxisLabelAlignment();else if("left"===p){let a=this._getYAxisLabelAlignment(x);h=a.textAlign,f=a.x}else if("right"===p){let a=this._getYAxisLabelAlignment(x);h=a.textAlign,f=a.x}else if("x"===n){if("center"===p)g=(a.top+a.bottom)/2+y;else if(d.isObject(p)){let a=Object.keys(p)[0],b=p[a];g=this.chart.scales[a].getPixelForValue(b)+y}h=this._getXAxisLabelAlignment()}else if("y"===n){if("center"===p)f=(a.left+a.right)/2-y;else if(d.isObject(p)){let a=Object.keys(p)[0],b=p[a];f=this.chart.scales[a].getPixelForValue(b)}h=this._getYAxisLabelAlignment(x).textAlign}"y"===n&&("start"===t?C="top":"end"===t&&(C="bottom"));let D=this._getLabelSizes();for(b=0,c=s.length;b<c;++b){let a;e=s[b].label;let n=q.setContext(this.getContext(b));i=this.getPixelForTick(b)+q.labelOffset,k=(j=this._resolveTickFontOptions(b)).lineHeight;let o=(l=d.isArray(e)?e.length:1)/2,t=n.color,v=n.textStrokeColor,x=n.textStrokeWidth,y=h;if(r?(f=i,"inner"===h&&(y=b===c-1?this.options.reverse?"left":"right":0===b?this.options.reverse?"right":"left":"center"),m="top"===p?"near"===u||0!==A?-l*k+k/2:"center"===u?-D.highest.height/2-o*k+k:-D.highest.height+k/2:"near"===u||0!==A?k/2:"center"===u?D.highest.height/2-o*k:D.highest.height-l*k,w&&(m*=-1),0===A||n.showLabelBackdrop||(f+=k/2*Math.sin(A))):(g=i,m=(1-l)*k/2),n.showLabelBackdrop){let e=d.toPadding(n.backdropPadding),f=D.heights[b],g=D.widths[b],i=m-e.top,j=0-e.left;switch(C){case"middle":i-=f/2;break;case"bottom":i-=f}switch(h){case"center":j-=g/2;break;case"right":j-=g;break;case"inner":b===c-1?j-=g:b>0&&(j-=g/2)}a={left:j,top:i,width:g+e.width,height:f+e.height,color:n.backdropColor}}B.push({label:e,font:j,textOffset:m,options:{rotation:A,color:t,strokeColor:v,strokeWidth:x,textAlign:y,textBaseline:C,translation:[f,g],backdrop:a}})}return B}_getXAxisLabelAlignment(){let{position:a,ticks:b}=this.options;if(-d.toRadians(this.labelRotation))return"top"===a?"left":"right";let c="center";return"start"===b.align?c="left":"end"===b.align?c="right":"inner"===b.align&&(c="inner"),c}_getYAxisLabelAlignment(a){let b,c,{position:d,ticks:{crossAlign:e,mirror:f,padding:g}}=this.options,h=this._getLabelSizes(),i=a+g,j=h.widest.width;return"left"===d?f?(c=this.right+g,"near"===e?b="left":"center"===e?(b="center",c+=j/2):(b="right",c+=j)):(c=this.right-i,"near"===e?b="right":"center"===e?(b="center",c-=j/2):(b="left",c=this.left)):"right"===d?f?(c=this.left+g,"near"===e?b="right":"center"===e?(b="center",c-=j/2):(b="left",c-=j)):(c=this.left+i,"near"===e?b="left":"center"===e?(b="center",c+=j/2):(b="right",c=this.right)):b="right",{textAlign:b,x:c}}_computeLabelArea(){if(this.options.ticks.mirror)return;let a=this.chart,b=this.options.position;return"left"===b||"right"===b?{top:0,left:this.left,bottom:a.height,right:this.right}:"top"===b||"bottom"===b?{top:this.top,left:0,bottom:this.bottom,right:a.width}:void 0}drawBackground(){let{ctx:a,options:{backgroundColor:b},left:c,top:d,width:e,height:f}=this;b&&(a.save(),a.fillStyle=b,a.fillRect(c,d,e,f),a.restore())}getLineWidthForValue(a){let b=this.options.grid;if(!this._isVisible()||!b.display)return 0;let c=this.ticks.findIndex(b=>b.value===a);return c>=0?b.setContext(this.getContext(c)).lineWidth:0}drawGrid(a){let b,c,d=this.options.grid,e=this.ctx,f=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(a)),g=(a,b,c)=>{c.width&&c.color&&(e.save(),e.lineWidth=c.width,e.strokeStyle=c.color,e.setLineDash(c.borderDash||[]),e.lineDashOffset=c.borderDashOffset,e.beginPath(),e.moveTo(a.x,a.y),e.lineTo(b.x,b.y),e.stroke(),e.restore())};if(d.display)for(b=0,c=f.length;b<c;++b){let a=f[b];d.drawOnChartArea&&g({x:a.x1,y:a.y1},{x:a.x2,y:a.y2},a),d.drawTicks&&g({x:a.tx1,y:a.ty1},{x:a.tx2,y:a.ty2},{color:a.tickColor,width:a.tickWidth,borderDash:a.tickBorderDash,borderDashOffset:a.tickBorderDashOffset})}}drawBorder(){let a,b,c,e,{chart:f,ctx:g,options:{border:h,grid:i}}=this,j=h.setContext(this.getContext()),k=h.display?j.width:0;if(!k)return;let l=i.setContext(this.getContext(0)).lineWidth,m=this._borderValue;this.isHorizontal()?(a=d._alignPixel(f,this.left,k)-k/2,b=d._alignPixel(f,this.right,l)+l/2,c=e=m):(c=d._alignPixel(f,this.top,k)-k/2,e=d._alignPixel(f,this.bottom,l)+l/2,a=b=m),g.save(),g.lineWidth=j.width,g.strokeStyle=j.color,g.beginPath(),g.moveTo(a,c),g.lineTo(b,e),g.stroke(),g.restore()}drawLabels(a){if(!this.options.ticks.display)return;let b=this.ctx,c=this._computeLabelArea();for(let e of(c&&d.clipArea(b,c),this.getLabelItems(a))){let a=e.options,c=e.font,f=e.label,g=e.textOffset;d.renderText(b,f,0,g,c,a)}c&&d.unclipArea(b)}drawTitle(){let a,b,{ctx:c,options:{position:e,title:f,reverse:g}}=this;if(!f.display)return;let h=d.toFont(f.font),i=d.toPadding(f.padding),j=f.align,k=h.lineHeight/2;"bottom"===e||"center"===e||d.isObject(e)?(k+=i.bottom,d.isArray(f.text)&&(k+=h.lineHeight*(f.text.length-1))):k+=i.top;let{titleX:l,titleY:m,maxWidth:n,rotation:o}=function(a,b,c,e){let f,g,h,{top:i,left:j,bottom:k,right:l,chart:m}=a,{chartArea:n,scales:o}=m,p=0,q=k-i,r=l-j;if(a.isHorizontal()){if(g=d._alignStartEnd(e,j,l),d.isObject(c)){let a=Object.keys(c)[0],d=c[a];h=o[a].getPixelForValue(d)+q-b}else h="center"===c?(n.bottom+n.top)/2+q-b:as(a,c,b);f=l-j}else{if(d.isObject(c)){let a=Object.keys(c)[0],d=c[a];g=o[a].getPixelForValue(d)-r+b}else g="center"===c?(n.left+n.right)/2-r+b:as(a,c,b);h=d._alignStartEnd(e,k,i),p="left"===c?-d.HALF_PI:d.HALF_PI}return{titleX:g,titleY:h,maxWidth:f,rotation:p}}(this,k,e,j);d.renderText(c,f.text,0,0,h,{color:f.color,maxWidth:n,rotation:o,textAlign:(a=d._toLeftRightCenter(j),(g&&"right"!==e||!g&&"right"===e)&&(a="left"===(b=a)?"right":"right"===b?"left":b),a),textBaseline:"middle",translation:[l,m]})}draw(a){this._isVisible()&&(this.drawBackground(),this.drawGrid(a),this.drawBorder(),this.drawTitle(),this.drawLabels(a))}_layers(){let a=this.options,b=a.ticks&&a.ticks.z||0,c=d.valueOrDefault(a.grid&&a.grid.z,-1),e=d.valueOrDefault(a.border&&a.border.z,0);return this._isVisible()&&this.draw===ax.prototype.draw?[{z:c,draw:a=>{this.drawBackground(),this.drawGrid(a),this.drawTitle()}},{z:e,draw:()=>{this.drawBorder()}},{z:b,draw:a=>{this.drawLabels(a)}}]:[{z:b,draw:a=>{this.draw(a)}}]}getMatchingVisibleMetas(a){let b,c,d=this.chart.getSortedVisibleDatasetMetas(),e=this.axis+"AxisID",f=[];for(b=0,c=d.length;b<c;++b){let c=d[b];c[e]!==this.id||a&&c.type!==a||f.push(c)}return f}_resolveTickFontOptions(a){let b=this.options.ticks.setContext(this.getContext(a));return d.toFont(b.font)}_maxDigits(){let a=this._resolveTickFontOptions(0).lineHeight;return(this.isHorizontal()?this.width:this.height)/a}}class ay{constructor(a,b,c){this.type=a,this.scope=b,this.override=c,this.items=Object.create(null)}isForType(a){return Object.prototype.isPrototypeOf.call(this.type.prototype,a.prototype)}register(a){var b,c,e,f,g,h;let i,j,k=Object.getPrototypeOf(a);"id"in(b=k)&&"defaults"in b&&(j=this.register(k));let l=this.items,m=a.id,n=this.scope+"."+m;if(!m)throw Error("class does not have id: "+a);return m in l||(l[m]=a,c=a,e=n,f=j,i=d.merge(Object.create(null),[f?d.defaults.get(f):{},d.defaults.get(e),c.defaults]),d.defaults.set(e,i),c.defaultRoutes&&(g=e,Object.keys(h=c.defaultRoutes).forEach(a=>{let b=a.split("."),c=b.pop(),e=[g].concat(b).join("."),f=h[a].split("."),i=f.pop(),j=f.join(".");d.defaults.route(e,c,j,i)})),c.descriptors&&d.defaults.describe(e,c.descriptors),this.override&&d.defaults.override(a.id,a.overrides)),n}get(a){return this.items[a]}unregister(a){let b=this.items,c=a.id,e=this.scope;c in b&&delete b[c],e&&c in d.defaults[e]&&(delete d.defaults[e][c],this.override&&delete d.overrides[c])}}class az{constructor(){this.controllers=new ay(u,"datasets",!0),this.elements=new ay(aq,"elements"),this.plugins=new ay(Object,"plugins"),this.scales=new ay(ax,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...a){this._each("register",a)}remove(...a){this._each("unregister",a)}addControllers(...a){this._each("register",a,this.controllers)}addElements(...a){this._each("register",a,this.elements)}addPlugins(...a){this._each("register",a,this.plugins)}addScales(...a){this._each("register",a,this.scales)}getController(a){return this._get(a,this.controllers,"controller")}getElement(a){return this._get(a,this.elements,"element")}getPlugin(a){return this._get(a,this.plugins,"plugin")}getScale(a){return this._get(a,this.scales,"scale")}removeControllers(...a){this._each("unregister",a,this.controllers)}removeElements(...a){this._each("unregister",a,this.elements)}removePlugins(...a){this._each("unregister",a,this.plugins)}removeScales(...a){this._each("unregister",a,this.scales)}_each(a,b,c){[...b].forEach(b=>{let e=c||this._getRegistryForType(b);c||e.isForType(b)||e===this.plugins&&b.id?this._exec(a,e,b):d.each(b,b=>{let d=c||this._getRegistryForType(b);this._exec(a,d,b)})})}_exec(a,b,c){let e=d._capitalize(a);d.callback(c["before"+e],[],c),b[a](c),d.callback(c["after"+e],[],c)}_getRegistryForType(a){for(let b=0;b<this._typedRegistries.length;b++){let c=this._typedRegistries[b];if(c.isForType(a))return c}return this.plugins}_get(a,b,c){let d=b.get(a);if(void 0===d)throw Error('"'+a+'" is not a registered '+c+".");return d}}var aA=new az;class aB{constructor(){this._init=void 0}notify(a,b,c,d){if("beforeInit"===b&&(this._init=this._createDescriptors(a,!0),this._notify(this._init,a,"install")),void 0===this._init)return;let e=d?this._descriptors(a).filter(d):this._descriptors(a),f=this._notify(e,a,b,c);return"afterDestroy"===b&&(this._notify(e,a,"stop"),this._notify(this._init,a,"uninstall"),this._init=void 0),f}_notify(a,b,c,e){for(let f of(e=e||{},a)){let a=f.plugin,g=a[c],h=[b,e,f.options];if(!1===d.callback(g,h,a)&&e.cancelable)return!1}return!0}invalidate(){d.isNullOrUndef(this._cache)||(this._oldCache=this._cache,this._cache=void 0)}_descriptors(a){if(this._cache)return this._cache;let b=this._cache=this._createDescriptors(a);return this._notifyStateChanges(a),b}_createDescriptors(a,b){let c=a&&a.config,e=d.valueOrDefault(c.options&&c.options.plugins,{}),f=function(a){let b={},c=[],d=Object.keys(aA.plugins.items);for(let a=0;a<d.length;a++)c.push(aA.getPlugin(d[a]));let e=a.plugins||[];for(let a=0;a<e.length;a++){let d=e[a];-1===c.indexOf(d)&&(c.push(d),b[d.id]=!0)}return{plugins:c,localIds:b}}(c);return!1!==e||b?function(a,{plugins:b,localIds:c},d,e){let f=[],g=a.getContext();for(let i of b){var h;let b=i.id,j=(h=d[b],e||!1!==h?!0===h?{}:h:null);null!==j&&f.push({plugin:i,options:function(a,{plugin:b,local:c},d,e){let f=a.pluginScopeKeys(b),g=a.getOptionScopes(d,f);return c&&b.defaults&&g.push(b.defaults),a.createResolver(g,e,[""],{scriptable:!1,indexable:!1,allKeys:!0})}(a.config,{plugin:i,local:c[b]},j,g)})}return f}(a,f,e,b):[]}_notifyStateChanges(a){let b=this._oldCache||[],c=this._cache,d=(a,b)=>a.filter(a=>!b.some(b=>a.plugin.id===b.plugin.id));this._notify(d(b,c),a,"stop"),this._notify(d(c,b),a,"start")}}function aC(a,b){let c=d.defaults.datasets[a]||{};return((b.datasets||{})[a]||{}).indexAxis||b.indexAxis||c.indexAxis||"x"}function aD(a){if("x"===a||"y"===a||"r"===a)return a}function aE(a,...b){if(aD(a))return a;for(let d of b){var c;let b=d.axis||("top"===(c=d.position)||"bottom"===c?"x":"left"===c||"right"===c?"y":void 0)||a.length>1&&aD(a[0].toLowerCase());if(b)return b}throw Error(`Cannot determine type of '${a}' axis. Please provide 'axis' or 'position' option.`)}function aF(a,b,c){if(c[b+"AxisID"]===a)return{axis:b}}function aG(a){let b,c,e,f,g=a.options||(a.options={});g.plugins=d.valueOrDefault(g.plugins,{}),b=d.overrides[a.type]||{scales:{}},c=g.scales||{},e=aC(a.type,g),f=Object.create(null),Object.keys(c).forEach(g=>{let h=c[g];if(!d.isObject(h))return console.error(`Invalid scale configuration for scale: ${g}`);if(h._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${g}`);let i=aE(g,h,function(a,b){if(b.data&&b.data.datasets){let c=b.data.datasets.filter(b=>b.xAxisID===a||b.yAxisID===a);if(c.length)return aF(a,"x",c[0])||aF(a,"y",c[0])}return{}}(g,a),d.defaults.scales[h.type]),j=i===e?"_index_":"_value_",k=b.scales||{};f[g]=d.mergeIf(Object.create(null),[{axis:i},h,k[i],k[j]])}),a.data.datasets.forEach(b=>{let e=b.type||a.type,h=b.indexAxis||aC(e,g),i=(d.overrides[e]||{}).scales||{};Object.keys(i).forEach(a=>{let e,g=(e=a,"_index_"===a?e=h:"_value_"===a&&(e="x"===h?"y":"x"),e),j=b[g+"AxisID"]||g;f[j]=f[j]||Object.create(null),d.mergeIf(f[j],[{axis:g},c[j],i[a]])})}),Object.keys(f).forEach(a=>{let b=f[a];d.mergeIf(b,[d.defaults.scales[b.type],d.defaults.scale])}),g.scales=f}function aH(a){return(a=a||{}).datasets=a.datasets||[],a.labels=a.labels||[],a}let aI=new Map,aJ=new Set;function aK(a,b){let c=aI.get(a);return c||(c=b(),aI.set(a,c),aJ.add(c)),c}let aL=(a,b,c)=>{let e=d.resolveObjectKey(b,c);void 0!==e&&a.add(e)};class aM{constructor(a){this._config=function(a){return(a=a||{}).data=aH(a.data),aG(a),a}(a),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(a){this._config.type=a}get data(){return this._config.data}set data(a){this._config.data=aH(a)}get options(){return this._config.options}set options(a){this._config.options=a}get plugins(){return this._config.plugins}update(){let a=this._config;this.clearCache(),aG(a)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(a){return aK(a,()=>[[`datasets.${a}`,""]])}datasetAnimationScopeKeys(a,b){return aK(`${a}.transition.${b}`,()=>[[`datasets.${a}.transitions.${b}`,`transitions.${b}`],[`datasets.${a}`,""]])}datasetElementScopeKeys(a,b){return aK(`${a}-${b}`,()=>[[`datasets.${a}.elements.${b}`,`datasets.${a}`,`elements.${b}`,""]])}pluginScopeKeys(a){let b=a.id,c=this.type;return aK(`${c}-plugin-${b}`,()=>[[`plugins.${b}`,...a.additionalOptionScopes||[]]])}_cachedScopes(a,b){let c=this._scopeCache,d=c.get(a);return(!d||b)&&(d=new Map,c.set(a,d)),d}getOptionScopes(a,b,c){let{options:e,type:f}=this,g=this._cachedScopes(a,c),h=g.get(b);if(h)return h;let i=new Set;b.forEach(b=>{a&&(i.add(a),b.forEach(b=>aL(i,a,b))),b.forEach(a=>aL(i,e,a)),b.forEach(a=>aL(i,d.overrides[f]||{},a)),b.forEach(a=>aL(i,d.defaults,a)),b.forEach(a=>aL(i,d.descriptors,a))});let j=Array.from(i);return 0===j.length&&j.push(Object.create(null)),aJ.has(b)&&g.set(b,j),j}chartOptionScopes(){let{options:a,type:b}=this;return[a,d.overrides[b]||{},d.defaults.datasets[b]||{},{type:b},d.defaults,d.descriptors]}resolveNamedOptions(a,b,c,e=[""]){let f={$shared:!0},{resolver:g,subPrefixes:h}=aN(this._resolverCache,a,e),i=g;if(function(a,b){let{isScriptable:c,isIndexable:e}=d._descriptors(a);for(let f of b){let b=c(f),g=e(f),h=(g||b)&&a[f];if(b&&(d.isFunction(h)||aO(h))||g&&d.isArray(h))return!0}return!1}(g,b)){f.$shared=!1,c=d.isFunction(c)?c():c;let b=this.createResolver(a,c,h);i=d._attachContext(g,c,b)}for(let a of b)f[a]=i[a];return f}createResolver(a,b,c=[""],e){let{resolver:f}=aN(this._resolverCache,a,c);return d.isObject(b)?d._attachContext(f,b,void 0,e):f}}function aN(a,b,c){let e=a.get(b);e||(e=new Map,a.set(b,e));let f=c.join(),g=e.get(f);return g||(g={resolver:d._createResolver(b,c),subPrefixes:c.filter(a=>!a.toLowerCase().includes("hover"))},e.set(f,g)),g}let aO=a=>d.isObject(a)&&Object.getOwnPropertyNames(a).some(b=>d.isFunction(a[b])),aP=["top","bottom","left","right","chartArea"];function aQ(a,b){return"top"===a||"bottom"===a||-1===aP.indexOf(a)&&"x"===b}function aR(a,b){return function(c,d){return c[a]===d[a]?c[b]-d[b]:c[a]-d[a]}}function aS(a){let b=a.chart,c=b.options.animation;b.notifyPlugins("afterRender"),d.callback(c&&c.onComplete,[a],b)}function aT(a){let b=a.chart,c=b.options.animation;d.callback(c&&c.onProgress,[a],b)}function aU(a){return d._isDomSupported()&&"string"==typeof a?a=document.getElementById(a):a&&a.length&&(a=a[0]),a&&a.canvas&&(a=a.canvas),a}let aV={},aW=a=>{let b=aU(a);return Object.values(aV).filter(a=>a.canvas===b).pop()};class aX{static defaults=d.defaults;static instances=aV;static overrides=d.overrides;static registry=aA;static version="4.5.1";static getChart=aW;static register(...a){aA.add(...a),aY()}static unregister(...a){aA.remove(...a),aY()}constructor(a,b){const c=this.config=new aM(b),e=aU(a),g=aW(e);if(g)throw Error("Canvas is already in use. Chart with ID '"+g.id+"' must be destroyed before the canvas with ID '"+g.canvas.id+"' can be reused.");const h=c.createResolver(c.chartOptionScopes(),this.getContext());this.platform=new(c.platform||ap(e)),this.platform.updateConfig(c);const i=this.platform.acquireContext(e,h.aspectRatio),j=i&&i.canvas,k=j&&j.height,l=j&&j.width;if(this.id=d.uid(),this.ctx=i,this.canvas=j,this.width=l,this.height=k,this._options=h,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new aB,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=d.debounce(a=>this.update(a),h.resizeDelay||0),this._dataChanges=[],aV[this.id]=this,!i||!j)return void console.error("Failed to create chart: can't acquire context from the given item");f.listen(this,"complete",aS),f.listen(this,"progress",aT),this._initialize(),this.attached&&this.update()}get aspectRatio(){let{options:{aspectRatio:a,maintainAspectRatio:b},width:c,height:e,_aspectRatio:f}=this;return d.isNullOrUndef(a)?b&&f?f:e?c/e:null:a}get data(){return this.config.data}set data(a){this.config.data=a}get options(){return this._options}set options(a){this.config.options=a}get registry(){return aA}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():d.retinaScale(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return d.clearCanvas(this.canvas,this.ctx),this}stop(){return f.stop(this),this}resize(a,b){f.running(this)?this._resizeBeforeDraw={width:a,height:b}:this._resize(a,b)}_resize(a,b){let c=this.options,e=this.canvas,f=c.maintainAspectRatio&&this.aspectRatio,g=this.platform.getMaximumSize(e,a,b,f),h=c.devicePixelRatio||this.platform.getDevicePixelRatio(),i=this.width?"resize":"attach";this.width=g.width,this.height=g.height,this._aspectRatio=this.aspectRatio,d.retinaScale(this,h,!0)&&(this.notifyPlugins("resize",{size:g}),d.callback(c.onResize,[this,g],this),this.attached&&this._doResize(i)&&this.render())}ensureScalesHaveIDs(){let a=this.options.scales||{};d.each(a,(a,b)=>{a.id=b})}buildOrUpdateScales(){let a=this.options,b=a.scales,c=this.scales,e=Object.keys(c).reduce((a,b)=>(a[b]=!1,a),{}),f=[];b&&(f=f.concat(Object.keys(b).map(a=>{let c=b[a],d=aE(a,c),e="r"===d,f="x"===d;return{options:c,dposition:e?"chartArea":f?"bottom":"left",dtype:e?"radialLinear":f?"category":"linear"}}))),d.each(f,b=>{let f=b.options,g=f.id,h=aE(g,f),i=d.valueOrDefault(f.type,b.dtype);(void 0===f.position||aQ(f.position,h)!==aQ(b.dposition))&&(f.position=b.dposition),e[g]=!0;let j=null;g in c&&c[g].type===i?j=c[g]:c[(j=new(aA.getScale(i))({id:g,type:i,ctx:this.ctx,chart:this})).id]=j,j.init(f,a)}),d.each(e,(a,b)=>{a||delete c[b]}),d.each(c,a=>{$.configure(this,a,a.options),$.addBox(this,a)})}_updateMetasets(){let a=this._metasets,b=this.data.datasets.length,c=a.length;if(a.sort((a,b)=>a.index-b.index),c>b){for(let a=b;a<c;++a)this._destroyDatasetMeta(a);a.splice(b,c-b)}this._sortedMetasets=a.slice(0).sort(aR("order","index"))}_removeUnreferencedMetasets(){let{_metasets:a,data:{datasets:b}}=this;a.length>b.length&&delete this._stacks,a.forEach((a,c)=>{0===b.filter(b=>b===a._dataset).length&&this._destroyDatasetMeta(c)})}buildOrUpdateControllers(){let a,b,c=[],e=this.data.datasets;for(this._removeUnreferencedMetasets(),a=0,b=e.length;a<b;a++){let b=e[a],f=this.getDatasetMeta(a),g=b.type||this.config.type;if(f.type&&f.type!==g&&(this._destroyDatasetMeta(a),f=this.getDatasetMeta(a)),f.type=g,f.indexAxis=b.indexAxis||aC(g,this.options),f.order=b.order||0,f.index=a,f.label=""+b.label,f.visible=this.isDatasetVisible(a),f.controller)f.controller.updateIndex(a),f.controller.linkScales();else{let b=aA.getController(g),{datasetElementType:e,dataElementType:h}=d.defaults.datasets[g];Object.assign(b,{dataElementType:aA.getElement(h),datasetElementType:e&&aA.getElement(e)}),f.controller=new b(this,a),c.push(f.controller)}}return this._updateMetasets(),c}_resetElements(){d.each(this.data.datasets,(a,b)=>{this.getDatasetMeta(b).controller.reset()},this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(a){let b=this.config;b.update();let c=this._options=b.createResolver(b.chartOptionScopes(),this.getContext()),e=this._animationsDisabled=!c.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),!1===this.notifyPlugins("beforeUpdate",{mode:a,cancelable:!0}))return;let f=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let g=0;for(let a=0,b=this.data.datasets.length;a<b;a++){let{controller:b}=this.getDatasetMeta(a),c=!e&&-1===f.indexOf(b);b.buildOrUpdateElements(c),g=Math.max(+b.getMaxOverflow(),g)}g=this._minPadding=c.layout.autoPadding?g:0,this._updateLayout(g),e||d.each(f,a=>{a.reset()}),this._updateDatasets(a),this.notifyPlugins("afterUpdate",{mode:a}),this._layers.sort(aR("z","_idx"));let{_active:h,_lastEvent:i}=this;i?this._eventHandler(i,!0):h.length&&this._updateHoverStyles(h,h,!0),this.render()}_updateScales(){d.each(this.scales,a=>{$.removeBox(this,a)}),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){let a=this.options,b=new Set(Object.keys(this._listeners)),c=new Set(a.events);d.setsEqual(b,c)&&!!this._responsiveListeners===a.responsive||(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){let{_hiddenIndices:a}=this;for(let{method:c,start:d,count:e}of this._getUniformDataChanges()||[]){var b="_removeElements"===c?-e:e;for(let c of Object.keys(a)){let e=+c;if(e>=d){let f=a[c];delete a[c],(b>0||e>d)&&(a[e+b]=f)}}}}_getUniformDataChanges(){let a=this._dataChanges;if(!a||!a.length)return;this._dataChanges=[];let b=this.data.datasets.length,c=b=>new Set(a.filter(a=>a[0]===b).map((a,b)=>b+","+a.splice(1).join(","))),e=c(0);for(let a=1;a<b;a++)if(!d.setsEqual(e,c(a)))return;return Array.from(e).map(a=>a.split(",")).map(a=>({method:a[1],start:+a[2],count:+a[3]}))}_updateLayout(a){if(!1===this.notifyPlugins("beforeLayout",{cancelable:!0}))return;$.update(this,this.width,this.height,a);let b=this.chartArea,c=b.width<=0||b.height<=0;this._layers=[],d.each(this.boxes,a=>{c&&"chartArea"===a.position||(a.configure&&a.configure(),this._layers.push(...a._layers()))},this),this._layers.forEach((a,b)=>{a._idx=b}),this.notifyPlugins("afterLayout")}_updateDatasets(a){if(!1!==this.notifyPlugins("beforeDatasetsUpdate",{mode:a,cancelable:!0})){for(let a=0,b=this.data.datasets.length;a<b;++a)this.getDatasetMeta(a).controller.configure();for(let b=0,c=this.data.datasets.length;b<c;++b)this._updateDataset(b,d.isFunction(a)?a({datasetIndex:b}):a);this.notifyPlugins("afterDatasetsUpdate",{mode:a})}}_updateDataset(a,b){let c=this.getDatasetMeta(a),d={meta:c,index:a,mode:b,cancelable:!0};!1!==this.notifyPlugins("beforeDatasetUpdate",d)&&(c.controller._update(b),d.cancelable=!1,this.notifyPlugins("afterDatasetUpdate",d))}render(){!1!==this.notifyPlugins("beforeRender",{cancelable:!0})&&(f.has(this)?this.attached&&!f.running(this)&&f.start(this):(this.draw(),aS({chart:this})))}draw(){let a;if(this._resizeBeforeDraw){let{width:a,height:b}=this._resizeBeforeDraw;this._resizeBeforeDraw=null,this._resize(a,b)}if(this.clear(),this.width<=0||this.height<=0||!1===this.notifyPlugins("beforeDraw",{cancelable:!0}))return;let b=this._layers;for(a=0;a<b.length&&b[a].z<=0;++a)b[a].draw(this.chartArea);for(this._drawDatasets();a<b.length;++a)b[a].draw(this.chartArea);this.notifyPlugins("afterDraw")}_getSortedDatasetMetas(a){let b,c,d=this._sortedMetasets,e=[];for(b=0,c=d.length;b<c;++b){let c=d[b];(!a||c.visible)&&e.push(c)}return e}getSortedVisibleDatasetMetas(){return this._getSortedDatasetMetas(!0)}_drawDatasets(){if(!1===this.notifyPlugins("beforeDatasetsDraw",{cancelable:!0}))return;let a=this.getSortedVisibleDatasetMetas();for(let b=a.length-1;b>=0;--b)this._drawDataset(a[b]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(a){let b=this.ctx,c={meta:a,index:a.index,cancelable:!0},e=d.getDatasetClipArea(this,a);!1!==this.notifyPlugins("beforeDatasetDraw",c)&&(e&&d.clipArea(b,e),a.controller.draw(),e&&d.unclipArea(b),c.cancelable=!1,this.notifyPlugins("afterDatasetDraw",c))}isPointInArea(a){return d._isPointInArea(a,this.chartArea,this._minPadding)}getElementsAtEventForMode(a,b,c,d){let e=Q.modes[b];return"function"==typeof e?e(this,a,c,d):[]}getDatasetMeta(a){let b=this.data.datasets[a],c=this._metasets,d=c.filter(a=>a&&a._dataset===b).pop();return d||(d={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:b&&b.order||0,index:a,_dataset:b,_parsed:[],_sorted:!1},c.push(d)),d}getContext(){return this.$context||(this.$context=d.createContext(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(a){let b=this.data.datasets[a];if(!b)return!1;let c=this.getDatasetMeta(a);return"boolean"==typeof c.hidden?!c.hidden:!b.hidden}setDatasetVisibility(a,b){this.getDatasetMeta(a).hidden=!b}toggleDataVisibility(a){this._hiddenIndices[a]=!this._hiddenIndices[a]}getDataVisibility(a){return!this._hiddenIndices[a]}_updateVisibility(a,b,c){let e=c?"show":"hide",f=this.getDatasetMeta(a),g=f.controller._resolveAnimations(void 0,e);d.defined(b)?(f.data[b].hidden=!c,this.update()):(this.setDatasetVisibility(a,c),g.update(f,{visible:c}),this.update(b=>b.datasetIndex===a?e:void 0))}hide(a,b){this._updateVisibility(a,b,!1)}show(a,b){this._updateVisibility(a,b,!0)}_destroyDatasetMeta(a){let b=this._metasets[a];b&&b.controller&&b.controller._destroy(),delete this._metasets[a]}_stop(){let a,b;for(this.stop(),f.remove(this),a=0,b=this.data.datasets.length;a<b;++a)this._destroyDatasetMeta(a)}destroy(){this.notifyPlugins("beforeDestroy");let{canvas:a,ctx:b}=this;this._stop(),this.config.clearCache(),a&&(this.unbindEvents(),d.clearCanvas(a,b),this.platform.releaseContext(b),this.canvas=null,this.ctx=null),delete aV[this.id],this.notifyPlugins("afterDestroy")}toBase64Image(...a){return this.canvas.toDataURL(...a)}bindEvents(){this.bindUserEvents(),this.options.responsive?this.bindResponsiveEvents():this.attached=!0}bindUserEvents(){let a=this._listeners,b=this.platform,c=(c,d)=>{b.addEventListener(this,c,d),a[c]=d},e=(a,b,c)=>{a.offsetX=b,a.offsetY=c,this._eventHandler(a)};d.each(this.options.events,a=>c(a,e))}bindResponsiveEvents(){let a;this._responsiveListeners||(this._responsiveListeners={});let b=this._responsiveListeners,c=this.platform,d=(a,d)=>{c.addEventListener(this,a,d),b[a]=d},e=(a,d)=>{b[a]&&(c.removeEventListener(this,a,d),delete b[a])},f=(a,b)=>{this.canvas&&this.resize(a,b)},g=()=>{e("attach",g),this.attached=!0,this.resize(),d("resize",f),d("detach",a)};a=()=>{this.attached=!1,e("resize",f),this._stop(),this._resize(0,0),d("attach",g)},c.isAttached(this.canvas)?g():a()}unbindEvents(){d.each(this._listeners,(a,b)=>{this.platform.removeEventListener(this,b,a)}),this._listeners={},d.each(this._responsiveListeners,(a,b)=>{this.platform.removeEventListener(this,b,a)}),this._responsiveListeners=void 0}updateHoverStyle(a,b,c){let d,e,f,g=c?"set":"remove";for("dataset"===b&&this.getDatasetMeta(a[0].datasetIndex).controller["_"+g+"DatasetHoverStyle"](),e=0,f=a.length;e<f;++e){let b=(d=a[e])&&this.getDatasetMeta(d.datasetIndex).controller;b&&b[g+"HoverStyle"](d.element,d.datasetIndex,d.index)}}getActiveElements(){return this._active||[]}setActiveElements(a){let b=this._active||[],c=a.map(({datasetIndex:a,index:b})=>{let c=this.getDatasetMeta(a);if(!c)throw Error("No dataset found at index "+a);return{datasetIndex:a,element:c.data[b],index:b}});d._elementsEqual(c,b)||(this._active=c,this._lastEvent=null,this._updateHoverStyles(c,b))}notifyPlugins(a,b,c){return this._plugins.notify(this,a,b,c)}isPluginEnabled(a){return 1===this._plugins._cache.filter(b=>b.plugin.id===a).length}_updateHoverStyles(a,b,c){let d=this.options.hover,e=(a,b)=>a.filter(a=>!b.some(b=>a.datasetIndex===b.datasetIndex&&a.index===b.index)),f=e(b,a),g=c?a:e(a,b);f.length&&this.updateHoverStyle(f,d.mode,!1),g.length&&d.mode&&this.updateHoverStyle(g,d.mode,!0)}_eventHandler(a,b){let c={event:a,replay:b,cancelable:!0,inChartArea:this.isPointInArea(a)},d=b=>(b.options.events||this.options.events).includes(a.native.type);if(!1===this.notifyPlugins("beforeEvent",c,d))return;let e=this._handleEvent(a,b,c.inChartArea);return c.cancelable=!1,this.notifyPlugins("afterEvent",c,d),(e||c.changed)&&this.render(),this}_handleEvent(a,b,c){var e;let{_active:f=[],options:g}=this,h=this._getActiveElements(a,f,c,b),i=d._isClickEvent(a),j=(e=this._lastEvent,c&&"mouseout"!==a.type?i?e:a:null);c&&(this._lastEvent=null,d.callback(g.onHover,[a,h,this],this),i&&d.callback(g.onClick,[a,h,this],this));let k=!d._elementsEqual(h,f);return(k||b)&&(this._active=h,this._updateHoverStyles(h,f,b)),this._lastEvent=j,k}_getActiveElements(a,b,c,d){if("mouseout"===a.type)return[];if(!c)return b;let e=this.options.hover;return this.getElementsAtEventForMode(a,e.mode,e,d)}}function aY(){return d.each(aX.instances,a=>a._plugins.invalidate())}function aZ(a,b,c,d){return{x:c+a*Math.cos(b),y:d+a*Math.sin(b)}}function a$(a,b,c,e,f,g){var h,i;let j,k,l,m,{x:n,y:o,startAngle:p,pixelMargin:q,innerRadius:r}=b,s=Math.max(b.outerRadius+e+c-q,0),t=r>0?r+e+c+q:0,u=0,v=f-p;if(e){let a=s>0?s-e:0,b=((r>0?r-e:0)+a)/2;u=(v-(0!==b?v*b/(b+e):v))/2}let w=Math.max(.001,v*s-c/d.PI)/s,x=(v-w)/2,y=p+x+u,z=f-x-u,{outerStart:A,outerEnd:B,innerStart:C,innerEnd:D}=(h=z-y,i=b.options.borderRadius,j=d._readValueToProps(i,["outerStart","outerEnd","innerStart","innerEnd"]),l=Math.min(k=(s-t)/2,h*t/2),{outerStart:(m=a=>{let b=(s-Math.min(k,a))*h/2;return d._limitValue(a,0,Math.min(k,b))})(j.outerStart),outerEnd:m(j.outerEnd),innerStart:d._limitValue(j.innerStart,0,l),innerEnd:d._limitValue(j.innerEnd,0,l)}),E=s-A,F=s-B,G=y+A/E,H=z-B/F,I=t+C,J=t+D,K=y+C/I,L=z-D/J;if(a.beginPath(),g){let b=(G+H)/2;if(a.arc(n,o,s,G,b),a.arc(n,o,s,b,H),B>0){let b=aZ(F,H,n,o);a.arc(b.x,b.y,B,H,z+d.HALF_PI)}let c=aZ(J,z,n,o);if(a.lineTo(c.x,c.y),D>0){let b=aZ(J,L,n,o);a.arc(b.x,b.y,D,z+d.HALF_PI,L+Math.PI)}let e=(z-D/t+(y+C/t))/2;if(a.arc(n,o,t,z-D/t,e,!0),a.arc(n,o,t,e,y+C/t,!0),C>0){let b=aZ(I,K,n,o);a.arc(b.x,b.y,C,K+Math.PI,y-d.HALF_PI)}let f=aZ(E,y,n,o);if(a.lineTo(f.x,f.y),A>0){let b=aZ(E,G,n,o);a.arc(b.x,b.y,A,y-d.HALF_PI,G)}}else{a.moveTo(n,o);let b=Math.cos(G)*s+n,c=Math.sin(G)*s+o;a.lineTo(b,c);let d=Math.cos(H)*s+n,e=Math.sin(H)*s+o;a.lineTo(d,e)}a.closePath()}class a_ extends aq{static id="arc";static defaults={borderAlign:"center",borderColor:"#fff",borderDash:[],borderDashOffset:0,borderJoinStyle:void 0,borderRadius:0,borderWidth:2,offset:0,spacing:0,angle:void 0,circular:!0,selfJoin:!1};static defaultRoutes={backgroundColor:"backgroundColor"};static descriptors={_scriptable:!0,_indexable:a=>"borderDash"!==a};circumference;endAngle;fullCircles;innerRadius;outerRadius;pixelMargin;startAngle;constructor(a){super(),this.options=void 0,this.circumference=void 0,this.startAngle=void 0,this.endAngle=void 0,this.innerRadius=void 0,this.outerRadius=void 0,this.pixelMargin=0,this.fullCircles=0,a&&Object.assign(this,a)}inRange(a,b,c){let e=this.getProps(["x","y"],c),{angle:f,distance:g}=d.getAngleFromPoint(e,{x:a,y:b}),{startAngle:h,endAngle:i,innerRadius:j,outerRadius:k,circumference:l}=this.getProps(["startAngle","endAngle","innerRadius","outerRadius","circumference"],c),m=(this.options.spacing+this.options.borderWidth)/2,n=d.valueOrDefault(l,i-h),o=d._angleBetween(f,h,i)&&h!==i,p=n>=d.TAU||o,q=d._isBetween(g,j+m,k+m);return p&&q}getCenterPoint(a){let{x:b,y:c,startAngle:d,endAngle:e,innerRadius:f,outerRadius:g}=this.getProps(["x","y","startAngle","endAngle","innerRadius","outerRadius"],a),{offset:h,spacing:i}=this.options,j=(d+e)/2,k=(f+g+i+h)/2;return{x:b+Math.cos(j)*k,y:c+Math.sin(j)*k}}tooltipPosition(a){return this.getCenterPoint(a)}draw(a){let{options:b,circumference:c}=this,e=(b.offset||0)/4,f=(b.spacing||0)/2,g=b.circular;if(this.pixelMargin=.33*("inner"===b.borderAlign),this.fullCircles=c>d.TAU?Math.floor(c/d.TAU):0,0===c||this.innerRadius<0||this.outerRadius<0)return;a.save();let h=(this.startAngle+this.endAngle)/2;a.translate(Math.cos(h)*e,Math.sin(h)*e);let i=e*(1-Math.sin(Math.min(d.PI,c||0)));a.fillStyle=b.backgroundColor,a.strokeStyle=b.borderColor,function(a,b,c,e,f){let{fullCircles:g,startAngle:h,circumference:i}=b,j=b.endAngle;if(g){a$(a,b,c,e,j,f);for(let b=0;b<g;++b)a.fill();isNaN(i)||(j=h+(i%d.TAU||d.TAU))}a$(a,b,c,e,j,f),a.fill()}(a,this,i,f,g),function(a,b,c,e,f){let{fullCircles:g,startAngle:h,circumference:i,options:j}=b,{borderWidth:k,borderJoinStyle:l,borderDash:m,borderDashOffset:n,borderRadius:o}=j,p="inner"===j.borderAlign;if(!k)return;a.setLineDash(m||[]),a.lineDashOffset=n,p?(a.lineWidth=2*k,a.lineJoin=l||"round"):(a.lineWidth=k,a.lineJoin=l||"bevel");let q=b.endAngle;if(g){a$(a,b,c,e,q,f);for(let b=0;b<g;++b)a.stroke();isNaN(i)||(q=h+(i%d.TAU||d.TAU))}p&&function(a,b,c){let{startAngle:e,pixelMargin:f,x:g,y:h,outerRadius:i,innerRadius:j}=b,k=f/i;a.beginPath(),a.arc(g,h,i,e-k,c+k),j>f?(k=f/j,a.arc(g,h,j,c+k,e-k,!0)):a.arc(g,h,f,c+d.HALF_PI,e-d.HALF_PI),a.closePath(),a.clip()}(a,b,q),j.selfJoin&&q-h>=d.PI&&0===o&&"miter"!==l&&function(a,b,c){let{startAngle:e,x:f,y:g,outerRadius:h,innerRadius:i,options:j}=b,{borderWidth:k,borderJoinStyle:l}=j,m=Math.min(k/h,d._normalizeAngle(e-c));if(a.beginPath(),a.arc(f,g,h-k/2,e+m/2,c-m/2),i>0){let b=Math.min(k/i,d._normalizeAngle(e-c));a.arc(f,g,i+k/2,c-b/2,e+b/2,!0)}else{let b=Math.min(k/2,h*d._normalizeAngle(e-c));if("round"===l)a.arc(f,g,b,c-d.PI/2,e+d.PI/2,!0);else if("bevel"===l){let h=2*b*b,i=-h*Math.cos(c+d.PI/2)+f,j=-h*Math.sin(c+d.PI/2)+g,k=h*Math.cos(e+d.PI/2)+f,l=h*Math.sin(e+d.PI/2)+g;a.lineTo(i,j),a.lineTo(k,l)}}a.closePath(),a.moveTo(0,0),a.rect(0,0,a.canvas.width,a.canvas.height),a.clip("evenodd")}(a,b,q),g||(a$(a,b,c,e,q,f),a.stroke())}(a,this,i,f,g),a.restore()}}function a0(a,b,c=b){a.lineCap=d.valueOrDefault(c.borderCapStyle,b.borderCapStyle),a.setLineDash(d.valueOrDefault(c.borderDash,b.borderDash)),a.lineDashOffset=d.valueOrDefault(c.borderDashOffset,b.borderDashOffset),a.lineJoin=d.valueOrDefault(c.borderJoinStyle,b.borderJoinStyle),a.lineWidth=d.valueOrDefault(c.borderWidth,b.borderWidth),a.strokeStyle=d.valueOrDefault(c.borderColor,b.borderColor)}function a1(a,b,c){a.lineTo(c.x,c.y)}function a2(a,b,c={}){let d=a.length,{start:e=0,end:f=d-1}=c,{start:g,end:h}=b,i=Math.max(e,g),j=Math.min(f,h);return{count:d,start:i,loop:b.loop,ilen:j<i&&!(e<g&&f<g||e>h&&f>h)?d+j-i:j-i}}function a3(a,b,c,e){let f,g,h,{points:i,options:j}=b,{count:k,start:l,loop:m,ilen:n}=a2(i,c,e),o=j.stepped?d._steppedLineTo:j.tension||"monotone"===j.cubicInterpolationMode?d._bezierCurveTo:a1,{move:p=!0,reverse:q}=e||{};for(f=0;f<=n;++f)(g=i[(l+(q?n-f:f))%k]).skip||(p?(a.moveTo(g.x,g.y),p=!1):o(a,h,g,q,j.stepped),h=g);return m&&o(a,h,g=i[(l+(q?n:0))%k],q,j.stepped),!!m}function a4(a,b,c,d){let e,f,g,h,i,j,k=b.points,{count:l,start:m,ilen:n}=a2(k,c,d),{move:o=!0,reverse:p}=d||{},q=0,r=0,s=a=>(m+(p?n-a:a))%l,t=()=>{h!==i&&(a.lineTo(q,i),a.lineTo(q,h),a.lineTo(q,j))};for(o&&(f=k[s(0)],a.moveTo(f.x,f.y)),e=0;e<=n;++e){if((f=k[s(e)]).skip)continue;let b=f.x,c=f.y,d=0|b;d===g?(c<h?h=c:c>i&&(i=c),q=(r*q+b)/++r):(t(),a.lineTo(b,c),g=d,r=0,h=i=c),j=c}t()}function a5(a){let b=a.options,c=b.borderDash&&b.borderDash.length;return a._decimated||a._loop||b.tension||"monotone"===b.cubicInterpolationMode||b.stepped||c?a3:a4}let a6="function"==typeof Path2D;class a7 extends aq{static id="line";static defaults={borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderWidth:3,capBezierPoints:!0,cubicInterpolationMode:"default",fill:!1,spanGaps:!1,stepped:!1,tension:0};static defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};static descriptors={_scriptable:!0,_indexable:a=>"borderDash"!==a&&"fill"!==a};constructor(a){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,a&&Object.assign(this,a)}updateControlPoints(a,b){let c=this.options;if((c.tension||"monotone"===c.cubicInterpolationMode)&&!c.stepped&&!this._pointsUpdated){let e=c.spanGaps?this._loop:this._fullLoop;d._updateBezierControlPoints(this._points,c,a,e,b),this._pointsUpdated=!0}}set points(a){this._points=a,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=d._computeSegments(this,this.options.segment))}first(){let a=this.segments,b=this.points;return a.length&&b[a[0].start]}last(){let a=this.segments,b=this.points,c=a.length;return c&&b[a[c-1].end]}interpolate(a,b){let c,e,f=this.options,g=a[b],h=this.points,i=d._boundSegments(this,{property:b,start:g,end:g});if(!i.length)return;let j=[],k=f.stepped?d._steppedInterpolation:f.tension||"monotone"===f.cubicInterpolationMode?d._bezierInterpolation:d._pointInLine;for(c=0,e=i.length;c<e;++c){let{start:d,end:e}=i[c],l=h[d],m=h[e];if(l===m){j.push(l);continue}let n=Math.abs((g-l[b])/(m[b]-l[b])),o=k(l,m,n,f.stepped);o[b]=a[b],j.push(o)}return 1===j.length?j[0]:j}pathSegment(a,b,c){return a5(this)(a,this,b,c)}path(a,b,c){let d=this.segments,e=a5(this),f=this._loop;for(let g of(b=b||0,c=c||this.points.length-b,d))f&=e(a,this,g,{start:b,end:b+c-1});return!!f}draw(a,b,c,d){let e=this.options||{};(this.points||[]).length&&e.borderWidth&&(a.save(),function(a,b,c,d){if(a6&&!b.options.segment){let e;(e=b._path)||(e=b._path=new Path2D,b.path(e,c,d)&&e.closePath()),a0(a,b.options),a.stroke(e)}else!function(a,b,c,d){let{segments:e,options:f}=b,g=a5(b);for(let h of e)a0(a,f,h.style),a.beginPath(),g(a,b,h,{start:c,end:c+d-1})&&a.closePath(),a.stroke()}(a,b,c,d)}(a,this,c,d),a.restore()),this.animated&&(this._pointsUpdated=!1,this._path=void 0)}}function a8(a,b,c,d){let e=a.options,{[c]:f}=a.getProps([c],d);return Math.abs(b-f)<e.radius+e.hitRadius}class a9 extends aq{static id="point";parsed;skip;stop;static defaults={borderWidth:1,hitRadius:1,hoverBorderWidth:1,hoverRadius:4,pointStyle:"circle",radius:3,rotation:0};static defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};constructor(a){super(),this.options=void 0,this.parsed=void 0,this.skip=void 0,this.stop=void 0,a&&Object.assign(this,a)}inRange(a,b,c){let d=this.options,{x:e,y:f}=this.getProps(["x","y"],c);return Math.pow(a-e,2)+Math.pow(b-f,2)<Math.pow(d.hitRadius+d.radius,2)}inXRange(a,b){return a8(this,a,"x",b)}inYRange(a,b){return a8(this,a,"y",b)}getCenterPoint(a){let{x:b,y:c}=this.getProps(["x","y"],a);return{x:b,y:c}}size(a){let b=(a=a||this.options||{}).radius||0,c=(b=Math.max(b,b&&a.hoverRadius||0))&&a.borderWidth||0;return(b+c)*2}draw(a,b){let c=this.options;!this.skip&&!(c.radius<.1)&&d._isPointInArea(this,b,this.size(c)/2)&&(a.strokeStyle=c.borderColor,a.lineWidth=c.borderWidth,a.fillStyle=c.backgroundColor,d.drawPoint(a,c,this.x,this.y))}getRange(){let a=this.options||{};return a.radius+a.hitRadius}}function ba(a,b){let c,d,e,f,g,{x:h,y:i,base:j,width:k,height:l}=a.getProps(["x","y","base","width","height"],b);return a.horizontal?(g=l/2,c=Math.min(h,j),d=Math.max(h,j),e=i-g,f=i+g):(c=h-(g=k/2),d=h+g,e=Math.min(i,j),f=Math.max(i,j)),{left:c,top:e,right:d,bottom:f}}function bb(a,b,c,e){return a?0:d._limitValue(b,c,e)}function bc(a,b,c,e){let f=null===b,g=null===c,h=a&&!(f&&g)&&ba(a,e);return h&&(f||d._isBetween(b,h.left,h.right))&&(g||d._isBetween(c,h.top,h.bottom))}function bd(a,b){a.rect(b.x,b.y,b.w,b.h)}function be(a,b,c={}){let d=a.x!==c.x?-b:0,e=a.y!==c.y?-b:0,f=(a.x+a.w!==c.x+c.w?b:0)-d,g=(a.y+a.h!==c.y+c.h?b:0)-e;return{x:a.x+d,y:a.y+e,w:a.w+f,h:a.h+g,radius:a.radius}}class bf extends aq{static id="bar";static defaults={borderSkipped:"start",borderWidth:0,borderRadius:0,inflateAmount:"auto",pointStyle:void 0};static defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};constructor(a){super(),this.options=void 0,this.horizontal=void 0,this.base=void 0,this.width=void 0,this.height=void 0,this.inflateAmount=void 0,a&&Object.assign(this,a)}draw(a){var b,c,e;let f,g,h,i,j,k,l,m,{inflateAmount:n,options:{borderColor:o,backgroundColor:p}}=this,{inner:q,outer:r}=(g=(f=ba(this)).right-f.left,h=f.bottom-f.top,b=g/2,c=h/2,i=this.options.borderWidth,j=this.borderSkipped,k=d.toTRBL(i),l={t:bb(j.top,k.top,0,c),r:bb(j.right,k.right,0,b),b:bb(j.bottom,k.bottom,0,c),l:bb(j.left,k.left,0,b)},m=function(a,b,c){let{enableBorderRadius:e}=a.getProps(["enableBorderRadius"]),f=a.options.borderRadius,g=d.toTRBLCorners(f),h=Math.min(b,c),i=a.borderSkipped,j=e||d.isObject(f);return{topLeft:bb(!j||i.top||i.left,g.topLeft,0,h),topRight:bb(!j||i.top||i.right,g.topRight,0,h),bottomLeft:bb(!j||i.bottom||i.left,g.bottomLeft,0,h),bottomRight:bb(!j||i.bottom||i.right,g.bottomRight,0,h)}}(this,g/2,h/2),{outer:{x:f.left,y:f.top,w:g,h:h,radius:m},inner:{x:f.left+l.l,y:f.top+l.t,w:g-l.l-l.r,h:h-l.t-l.b,radius:{topLeft:Math.max(0,m.topLeft-Math.max(l.t,l.l)),topRight:Math.max(0,m.topRight-Math.max(l.t,l.r)),bottomLeft:Math.max(0,m.bottomLeft-Math.max(l.b,l.l)),bottomRight:Math.max(0,m.bottomRight-Math.max(l.b,l.r))}}}),s=(e=r.radius).topLeft||e.topRight||e.bottomLeft||e.bottomRight?d.addRoundedRectPath:bd;a.save(),(r.w!==q.w||r.h!==q.h)&&(a.beginPath(),s(a,be(r,n,q)),a.clip(),s(a,be(q,-n,r)),a.fillStyle=o,a.fill("evenodd")),a.beginPath(),s(a,be(q,n)),a.fillStyle=p,a.fill(),a.restore()}inRange(a,b,c){return bc(this,a,b,c)}inXRange(a,b){return bc(this,a,null,b)}inYRange(a,b){return bc(this,null,a,b)}getCenterPoint(a){let{x:b,y:c,base:d,horizontal:e}=this.getProps(["x","y","base","horizontal"],a);return{x:e?(b+d)/2:b,y:e?c:(c+d)/2}}getRange(a){return"x"===a?this.width/2:this.height/2}}var bg=Object.freeze({__proto__:null,ArcElement:a_,BarElement:bf,LineElement:a7,PointElement:a9});let bh=["rgb(54, 162, 235)","rgb(255, 99, 132)","rgb(255, 159, 64)","rgb(255, 205, 86)","rgb(75, 192, 192)","rgb(153, 102, 255)","rgb(201, 203, 207)"],bi=bh.map(a=>a.replace("rgb(","rgba(").replace(")",", 0.5)"));function bj(a){return bh[a%bh.length]}function bk(a){return bi[a%bi.length]}function bl(a){let b;for(b in a)if(a[b].borderColor||a[b].backgroundColor)return!0;return!1}var bm={id:"colors",defaults:{enabled:!0,forceOverride:!1},beforeLayout(a,b,c){let e;if(!c.enabled)return;let{data:{datasets:f},options:g}=a.config,{elements:h}=g,i=bl(f)||g&&(g.borderColor||g.backgroundColor)||h&&bl(h)||"rgba(0,0,0,0.1)"!==d.defaults.borderColor||"rgba(0,0,0,0.1)"!==d.defaults.backgroundColor;if(!c.forceOverride&&i)return;let j=(e=0,(b,c)=>{var d,f,g;let h=a.getDatasetMeta(c).controller;h instanceof C?(d=e,b.backgroundColor=b.data.map(()=>bj(d++)),e=d):h instanceof E?(f=e,b.backgroundColor=b.data.map(()=>bk(f++)),e=f):h&&(b.borderColor=bj(g=e),b.backgroundColor=bk(g),e=++g)});f.forEach(j)}};function bn(a){if(a._decimated){let b=a._data;delete a._decimated,delete a._data,Object.defineProperty(a,"data",{configurable:!0,enumerable:!0,writable:!0,value:b})}}function bo(a){a.data.datasets.forEach(a=>{bn(a)})}var bp={id:"decimation",defaults:{algorithm:"min-max",enabled:!1},beforeElementsUpdate:(a,b,c)=>{if(!c.enabled)return void bo(a);let e=a.width;a.data.datasets.forEach((b,f)=>{let g,{_data:h,indexAxis:i}=b,j=a.getDatasetMeta(f),k=h||b.data;if("y"===d.resolve([i,a.options.indexAxis])||!j.controller.supportsDecimation)return;let l=a.scales[j.xAxisID];if("linear"!==l.type&&"time"!==l.type||a.options.parsing)return;let{start:m,count:n}=function(a,b){let c,e=b.length,f=0,{iScale:g}=a,{min:h,max:i,minDefined:j,maxDefined:k}=g.getUserBounds();return j&&(f=d._limitValue(d._lookupByKey(b,g.axis,h).lo,0,e-1)),c=k?d._limitValue(d._lookupByKey(b,g.axis,i).hi+1,f,e)-f:e-f,{start:f,count:c}}(j,k);if(n<=(c.threshold||4*e))return void bn(b);switch(d.isNullOrUndef(h)&&(b._data=k,delete b.data,Object.defineProperty(b,"data",{configurable:!0,enumerable:!0,get:function(){return this._decimated},set:function(a){this._data=a}})),c.algorithm){case"lttb":g=function(a,b,c,d,e){let f,g,h,i,j,k=e.samples||d;if(k>=c)return a.slice(b,b+c);let l=[],m=(c-2)/(k-2),n=0,o=b+c-1,p=b;for(f=0,l[n++]=a[p];f<k-2;f++){let d,e=0,k=0,o=Math.floor((f+1)*m)+1+b,q=Math.min(Math.floor((f+2)*m)+1,c)+b,r=q-o;for(d=o;d<q;d++)e+=a[d].x,k+=a[d].y;e/=r,k/=r;let s=Math.floor(f*m)+1+b,t=Math.min(Math.floor((f+1)*m)+1,c)+b,{x:u,y:v}=a[p];for(h=i=-1,d=s;d<t;d++)(i=.5*Math.abs((u-e)*(a[d].y-v)-(u-a[d].x)*(k-v)))>h&&(h=i,g=a[d],j=d);l[n++]=g,p=j}return l[n++]=a[o],l}(k,m,n,e,c);break;case"min-max":g=function(a,b,c,e){let f,g,h,i,j,k,l,m,n,o,p=0,q=0,r=[],s=a[b].x,t=a[b+c-1].x-s;for(f=b;f<b+c;++f){h=((g=a[f]).x-s)/t*e,i=g.y;let b=0|h;if(b===j)i<n?(n=i,k=f):i>o&&(o=i,l=f),p=(q*p+g.x)/++q;else{let c=f-1;if(!d.isNullOrUndef(k)&&!d.isNullOrUndef(l)){let b=Math.min(k,l),d=Math.max(k,l);b!==m&&b!==c&&r.push({...a[b],x:p}),d!==m&&d!==c&&r.push({...a[d],x:p})}f>0&&c!==m&&r.push(a[c]),r.push(g),j=b,q=0,n=o=i,k=l=m=f}}return r}(k,m,n,e);break;default:throw Error(`Unsupported decimation algorithm '${c.algorithm}'`)}b._decimated=g})},destroy(a){bo(a)}};function bq(a,b,c,e){if(e)return;let f=b[a],g=c[a];return"angle"===a&&(f=d._normalizeAngle(f),g=d._normalizeAngle(g)),{property:a,start:f,end:g}}function br(a,b,c){for(;b>a;b--){let a=c[b];if(!isNaN(a.x)&&!isNaN(a.y))break}return b}function bs(a,b,c,d){return a&&b?d(a[c],b[c]):a?a[c]:b?b[c]:0}function bt(a,b){let c=[],e=!1;return d.isArray(a)?(e=!0,c=a):c=function(a,b){let{x:c=null,y:d=null}=a||{},e=b.points,f=[];return b.segments.forEach(({start:a,end:b})=>{b=br(a,b,e);let g=e[a],h=e[b];null!==d?(f.push({x:g.x,y:d}),f.push({x:h.x,y:d})):null!==c&&(f.push({x:c,y:g.y}),f.push({x:c,y:h.y}))}),f}(a,b),c.length?new a7({points:c,options:{tension:0},_loop:e,_fullLoop:e}):null}function bu(a){return a&&!1!==a.fill}class bv{constructor(a){this.x=a.x,this.y=a.y,this.radius=a.radius}pathSegment(a,b,c){let{x:e,y:f,radius:g}=this;return b=b||{start:0,end:d.TAU},a.arc(e,f,g,b.end,b.start,!0),!c.bounds}interpolate(a){let{x:b,y:c,radius:d}=this,e=a.angle;return{x:b+Math.cos(e)*d,y:c+Math.sin(e)*d,angle:e}}}function bw(a,b,c){let e=function(a){var b,c,e;let{chart:f,fill:g,line:h}=a;if(d.isNumberFinite(g)){let a;return b=f,c=g,(a=b.getDatasetMeta(c))&&b.isDatasetVisible(c)?a.dataset:null}if("stack"===g)return function(a){let{scale:b,index:c,line:e}=a,f=[],g=e.segments,h=e.points,i=function(a,b){let c=[],d=a.getMatchingVisibleMetas("line");for(let a=0;a<d.length;a++){let e=d[a];if(e.index===b)break;e.hidden||c.unshift(e.dataset)}return c}(b,c);i.push(bt({x:null,y:b.bottom},e));for(let a=0;a<g.length;a++){let b=g[a];for(let a=b.start;a<=b.end;a++)!function(a,b,c){let e=[];for(let f=0;f<c.length;f++){let{first:g,last:h,point:i}=function(a,b){let c=a.interpolate(b,"x");if(!c)return{};let e=c.x,f=a.segments,g=a.points,h=!1,i=!1;for(let a=0;a<f.length;a++){let b=f[a],c=g[b.start].x,j=g[b.end].x;if(d._isBetween(e,c,j)){h=e===c,i=e===j;break}}return{first:h,last:i,point:c}}(c[f],b);if(i&&(!g||!h)){if(g)e.unshift(i);else if(a.push(i),!h)break}}a.push(...e)}(f,h[a],i)}return new a7({points:f,options:{}})}(a);if("shape"===g)return!0;let i=((e=a).scale||{}).getPointPositionForValue?function(a){let{scale:b,fill:c}=a,e=b.options,f=b.getLabels().length,g=e.reverse?b.max:b.min,h="start"===c?g:"end"===c?b.options.reverse?b.min:b.max:d.isObject(c)?c.value:b.getBaseValue(),i=[];if(e.grid.circular){let a=b.getPointPositionForValue(0,g);return new bv({x:a.x,y:a.y,radius:b.getDistanceFromCenterForValue(h)})}for(let a=0;a<f;++a)i.push(b.getPointPositionForValue(a,h));return i}(e):function(a){let b,{scale:c={},fill:e}=a,f=(b=null,"start"===e?b=c.bottom:"end"===e?b=c.top:d.isObject(e)?b=c.getPixelForValue(e.value):c.getBasePixel&&(b=c.getBasePixel()),b);if(d.isNumberFinite(f)){let a=c.isHorizontal();return{x:a?f:null,y:a?null:f}}return null}(e);return i instanceof bv?i:bt(i,h)}(b),{chart:f,index:g,line:h,scale:i,axis:j}=b,k=h.options,l=k.fill,m=k.backgroundColor,{above:n=m,below:o=m}=l||{},p=f.getDatasetMeta(g),q=d.getDatasetClipArea(f,p);e&&h.points.length&&(d.clipArea(a,c),function(a,b){let{line:c,target:d,above:e,below:f,area:g,scale:h,clip:i}=b,j=c._loop?"angle":b.axis;a.save();let k=f;f!==e&&("x"===j?(bx(a,d,g.top),bz(a,{line:c,target:d,color:e,scale:h,property:j,clip:i}),a.restore(),a.save(),bx(a,d,g.bottom)):"y"===j&&(by(a,d,g.left),bz(a,{line:c,target:d,color:f,scale:h,property:j,clip:i}),a.restore(),a.save(),by(a,d,g.right),k=e)),bz(a,{line:c,target:d,color:k,scale:h,property:j,clip:i}),a.restore()}(a,{line:h,target:e,above:n,below:o,area:c,scale:i,axis:j,clip:q}),d.unclipArea(a))}function bx(a,b,c){let{segments:d,points:e}=b,f=!0,g=!1;for(let h of(a.beginPath(),d)){let{start:d,end:i}=h,j=e[d],k=e[br(d,i,e)];f?(a.moveTo(j.x,j.y),f=!1):(a.lineTo(j.x,c),a.lineTo(j.x,j.y)),(g=!!b.pathSegment(a,h,{move:g}))?a.closePath():a.lineTo(k.x,c)}a.lineTo(b.first().x,c),a.closePath(),a.clip()}function by(a,b,c){let{segments:d,points:e}=b,f=!0,g=!1;for(let h of(a.beginPath(),d)){let{start:d,end:i}=h,j=e[d],k=e[br(d,i,e)];f?(a.moveTo(j.x,j.y),f=!1):(a.lineTo(c,j.y),a.lineTo(j.x,j.y)),(g=!!b.pathSegment(a,h,{move:g}))?a.closePath():a.lineTo(c,k.y)}a.lineTo(c,b.first().y),a.closePath(),a.clip()}function bz(a,b){let{line:c,target:e,property:f,color:g,scale:h,clip:i}=b;for(let{source:b,target:j,start:k,end:l}of function(a,b,c){let e=a.segments,f=a.points,g=b.points,h=[];for(let a of e){let{start:e,end:i}=a;i=br(e,i,f);let j=bq(c,f[e],f[i],a.loop);if(!b.segments){h.push({source:a,target:j,start:f[e],end:f[i]});continue}for(let e of d._boundSegments(b,j)){let b=bq(c,g[e.start],g[e.end],e.loop);for(let g of d._boundSegment(a,f,b))h.push({source:g,target:e,start:{[c]:bs(j,b,"start",Math.max)},end:{[c]:bs(j,b,"end",Math.min)}})}}return h}(c,e,f)){let d,{style:{backgroundColor:m=g}={}}=b,n=!0!==e;a.save(),a.fillStyle=m,function(a,b,c,d){let e=b.chart.chartArea,{property:f,start:g,end:h}=d||{};if("x"===f||"y"===f){let b,d,i,j;"x"===f?(b=g,d=e.top,i=h,j=e.bottom):(b=e.left,d=g,i=e.right,j=h),a.beginPath(),c&&(b=Math.max(b,c.left),i=Math.min(i,c.right),d=Math.max(d,c.top),j=Math.min(j,c.bottom)),a.rect(b,d,i-b,j-d),a.clip()}}(a,h,i,n&&bq(f,k,l)),a.beginPath();let o=!!c.pathSegment(a,b);if(n){o?a.closePath():bA(a,e,l,f);let b=!!e.pathSegment(a,j,{move:o,reverse:!0});(d=o&&b)||bA(a,e,k,f)}a.closePath(),a.fill(d?"evenodd":"nonzero"),a.restore()}}function bA(a,b,c,d){let e=b.interpolate(c,d);e&&a.lineTo(e.x,e.y)}var bB={id:"filler",afterDatasetsUpdate(a,b,c){let e,f,g,h,i=(a.data.datasets||[]).length,j=[];for(f=0;f<i;++f)g=(e=a.getDatasetMeta(f)).dataset,h=null,g&&g.options&&g instanceof a7&&(h={visible:a.isDatasetVisible(f),index:f,fill:function(a,b,c){var e,f,g,h;let i=function(a){let b=a.options,c=b.fill,e=d.valueOrDefault(c&&c.target,c);return void 0===e&&(e=!!b.backgroundColor),!1!==e&&null!==e&&(!0===e?"origin":e)}(a);if(d.isObject(i))return!isNaN(i.value)&&i;let j=parseFloat(i);return d.isNumberFinite(j)&&Math.floor(j)===j?(e=i[0],f=b,g=j,h=c,("-"===e||"+"===e)&&(g=f+g),g!==f&&!(g<0)&&!(g>=h)&&g):["origin","start","end","stack","shape"].indexOf(i)>=0&&i}(g,f,i),chart:a,axis:e.controller.options.indexAxis,scale:e.vScale,line:g}),e.$filler=h,j.push(h);for(f=0;f<i;++f)(h=j[f])&&!1!==h.fill&&(h.fill=function(a,b,c){let e,f=a[b].fill,g=[b];if(!c)return f;for(;!1!==f&&-1===g.indexOf(f);){if(!d.isNumberFinite(f))return f;if(!(e=a[f]))break;if(e.visible)return f;g.push(f),f=e.fill}return!1}(j,f,c.propagate))},beforeDraw(a,b,c){let d="beforeDraw"===c.drawTime,e=a.getSortedVisibleDatasetMetas(),f=a.chartArea;for(let b=e.length-1;b>=0;--b){let c=e[b].$filler;c&&(c.line.updateControlPoints(f,c.axis),d&&c.fill&&bw(a.ctx,c,f))}},beforeDatasetsDraw(a,b,c){if("beforeDatasetsDraw"!==c.drawTime)return;let d=a.getSortedVisibleDatasetMetas();for(let b=d.length-1;b>=0;--b){let c=d[b].$filler;bu(c)&&bw(a.ctx,c,a.chartArea)}},beforeDatasetDraw(a,b,c){let d=b.meta.$filler;bu(d)&&"beforeDatasetDraw"===c.drawTime&&bw(a.ctx,d,a.chartArea)},defaults:{propagate:!0,drawTime:"beforeDatasetDraw"}};let bC=(a,b)=>{let{boxHeight:c=b,boxWidth:d=b}=a;return a.usePointStyle&&(c=Math.min(c,b),d=a.pointStyleWidth||Math.min(d,b)),{boxWidth:d,boxHeight:c,itemHeight:Math.max(b,c)}};class bD extends aq{constructor(a){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=a.chart,this.options=a.options,this.ctx=a.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(a,b,c){this.maxWidth=a,this.maxHeight=b,this._margins=c,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){let a=this.options.labels||{},b=d.callback(a.generateLabels,[this.chart],this)||[];a.filter&&(b=b.filter(b=>a.filter(b,this.chart.data))),a.sort&&(b=b.sort((b,c)=>a.sort(b,c,this.chart.data))),this.options.reverse&&b.reverse(),this.legendItems=b}fit(){let a,b,{options:c,ctx:e}=this;if(!c.display){this.width=this.height=0;return}let f=c.labels,g=d.toFont(f.font),h=g.size,i=this._computeTitleHeight(),{boxWidth:j,itemHeight:k}=bC(f,h);e.font=g.string,this.isHorizontal()?(a=this.maxWidth,b=this._fitRows(i,h,j,k)+10):(b=this.maxHeight,a=this._fitCols(i,g,j,k)+10),this.width=Math.min(a,c.maxWidth||this.maxWidth),this.height=Math.min(b,c.maxHeight||this.maxHeight)}_fitRows(a,b,c,d){let{ctx:e,maxWidth:f,options:{labels:{padding:g}}}=this,h=this.legendHitBoxes=[],i=this.lineWidths=[0],j=d+g,k=a;e.textAlign="left",e.textBaseline="middle";let l=-1,m=-j;return this.legendItems.forEach((a,n)=>{let o=c+b/2+e.measureText(a.text).width;(0===n||i[i.length-1]+o+2*g>f)&&(k+=j,i[i.length-(n>0?0:1)]=0,m+=j,l++),h[n]={left:0,top:m,row:l,width:o,height:d},i[i.length-1]+=o+g}),k}_fitCols(a,b,c,d){let{ctx:e,maxHeight:f,options:{labels:{padding:g}}}=this,h=this.legendHitBoxes=[],i=this.columnSizes=[],j=f-a,k=g,l=0,m=0,n=0,o=0;return this.legendItems.forEach((a,f)=>{var p,q,r,s,t,u,v,w,x,y,z,A;let B,C,{itemWidth:D,itemHeight:E}=(p=c,q=b,r=e,s=a,t=d,{itemWidth:(u=s,v=p,w=q,x=r,(B=u.text)&&"string"!=typeof B&&(B=B.reduce((a,b)=>a.length>b.length?a:b)),v+w.size/2+x.measureText(B).width),itemHeight:(y=t,z=s,A=q.lineHeight,C=y,"string"!=typeof z.text&&(C=bE(z,A)),C)});f>0&&m+E+2*g>j&&(k+=l+g,i.push({width:l,height:m}),n+=l+g,o++,l=m=0),h[f]={left:n,top:m,col:o,width:D,height:E},l=Math.max(l,D),m+=E+g}),k+=l,i.push({width:l,height:m}),k}adjustHitBoxes(){if(!this.options.display)return;let a=this._computeTitleHeight(),{legendHitBoxes:b,options:{align:c,labels:{padding:e},rtl:f}}=this,g=d.getRtlAdapter(f,this.left,this.width);if(this.isHorizontal()){let f=0,h=d._alignStartEnd(c,this.left+e,this.right-this.lineWidths[f]);for(let i of b)f!==i.row&&(f=i.row,h=d._alignStartEnd(c,this.left+e,this.right-this.lineWidths[f])),i.top+=this.top+a+e,i.left=g.leftForLtr(g.x(h),i.width),h+=i.width+e}else{let f=0,h=d._alignStartEnd(c,this.top+a+e,this.bottom-this.columnSizes[f].height);for(let i of b)i.col!==f&&(f=i.col,h=d._alignStartEnd(c,this.top+a+e,this.bottom-this.columnSizes[f].height)),i.top=h,i.left+=this.left+e,i.left=g.leftForLtr(g.x(i.left),i.width),h+=i.height+e}}isHorizontal(){return"top"===this.options.position||"bottom"===this.options.position}draw(){if(this.options.display){let a=this.ctx;d.clipArea(a,this),this._draw(),d.unclipArea(a)}}_draw(){let a,{options:b,columnSizes:c,lineWidths:e,ctx:f}=this,{align:g,labels:h}=b,i=d.defaults.color,j=d.getRtlAdapter(b.rtl,this.left,this.width),k=d.toFont(h.font),{padding:l}=h,m=k.size,n=m/2;this.drawTitle(),f.textAlign=j.textAlign("left"),f.textBaseline="middle",f.lineWidth=.5,f.font=k.string;let{boxWidth:o,boxHeight:p,itemHeight:q}=bC(h,m),r=function(a,b,c){if(isNaN(o)||o<=0||isNaN(p)||p<0)return;f.save();let e=d.valueOrDefault(c.lineWidth,1);if(f.fillStyle=d.valueOrDefault(c.fillStyle,i),f.lineCap=d.valueOrDefault(c.lineCap,"butt"),f.lineDashOffset=d.valueOrDefault(c.lineDashOffset,0),f.lineJoin=d.valueOrDefault(c.lineJoin,"miter"),f.lineWidth=e,f.strokeStyle=d.valueOrDefault(c.strokeStyle,i),f.setLineDash(d.valueOrDefault(c.lineDash,[])),h.usePointStyle){let g={radius:p*Math.SQRT2/2,pointStyle:c.pointStyle,rotation:c.rotation,borderWidth:e},i=j.xPlus(a,o/2);d.drawPointLegend(f,g,i,b+n,h.pointStyleWidth&&o)}else{let g=b+Math.max((m-p)/2,0),h=j.leftForLtr(a,o),i=d.toTRBLCorners(c.borderRadius);f.beginPath(),Object.values(i).some(a=>0!==a)?d.addRoundedRectPath(f,{x:h,y:g,w:o,h:p,radius:i}):f.rect(h,g,o,p),f.fill(),0!==e&&f.stroke()}f.restore()},s=function(a,b,c){d.renderText(f,c.text,a,b+q/2,k,{strikethrough:c.hidden,textAlign:j.textAlign(c.textAlign)})},t=this.isHorizontal(),u=this._computeTitleHeight();a=t?{x:d._alignStartEnd(g,this.left+l,this.right-e[0]),y:this.top+l+u,line:0}:{x:this.left+l,y:d._alignStartEnd(g,this.top+u+l,this.bottom-c[0].height),line:0},d.overrideTextDirection(this.ctx,b.textDirection);let v=q+l;this.legendItems.forEach((i,m)=>{f.strokeStyle=i.fontColor,f.fillStyle=i.fontColor;let p=f.measureText(i.text).width,q=j.textAlign(i.textAlign||(i.textAlign=h.textAlign)),w=o+n+p,x=a.x,y=a.y;if(j.setWidth(this.width),t?m>0&&x+w+l>this.right&&(y=a.y+=v,a.line++,x=a.x=d._alignStartEnd(g,this.left+l,this.right-e[a.line])):m>0&&y+v>this.bottom&&(x=a.x=x+c[a.line].width+l,a.line++,y=a.y=d._alignStartEnd(g,this.top+u+l,this.bottom-c[a.line].height)),r(j.x(x),y,i),x=d._textX(q,x+o+n,t?x+w:this.right,b.rtl),s(j.x(x),y,i),t)a.x+=w+l;else if("string"!=typeof i.text){let b=k.lineHeight;a.y+=bE(i,b)+l}else a.y+=v}),d.restoreTextDirection(this.ctx,b.textDirection)}drawTitle(){let a,b=this.options,c=b.title,e=d.toFont(c.font),f=d.toPadding(c.padding);if(!c.display)return;let g=d.getRtlAdapter(b.rtl,this.left,this.width),h=this.ctx,i=c.position,j=e.size/2,k=f.top+j,l=this.left,m=this.width;if(this.isHorizontal())m=Math.max(...this.lineWidths),a=this.top+k,l=d._alignStartEnd(b.align,l,this.right-m);else{let c=this.columnSizes.reduce((a,b)=>Math.max(a,b.height),0);a=k+d._alignStartEnd(b.align,this.top,this.bottom-c-b.labels.padding-this._computeTitleHeight())}let n=d._alignStartEnd(i,l,l+m);h.textAlign=g.textAlign(d._toLeftRightCenter(i)),h.textBaseline="middle",h.strokeStyle=c.color,h.fillStyle=c.color,h.font=e.string,d.renderText(h,c.text,n,a,e)}_computeTitleHeight(){let a=this.options.title,b=d.toFont(a.font),c=d.toPadding(a.padding);return a.display?b.lineHeight+c.height:0}_getLegendItemAt(a,b){let c,e,f;if(d._isBetween(a,this.left,this.right)&&d._isBetween(b,this.top,this.bottom)){for(c=0,f=this.legendHitBoxes;c<f.length;++c)if(e=f[c],d._isBetween(a,e.left,e.left+e.width)&&d._isBetween(b,e.top,e.top+e.height))return this.legendItems[c]}return null}handleEvent(a){var b,c;let e=this.options;if(b=a.type,c=e,("mousemove"!==b&&"mouseout"!==b||!c.onHover&&!c.onLeave)&&(!c.onClick||"click"!==b&&"mouseup"!==b))return;let f=this._getLegendItemAt(a.x,a.y);if("mousemove"===a.type||"mouseout"===a.type){let b=this._hoveredItem,c=null!==b&&null!==f&&b.datasetIndex===f.datasetIndex&&b.index===f.index;b&&!c&&d.callback(e.onLeave,[a,b,this],this),this._hoveredItem=f,f&&!c&&d.callback(e.onHover,[a,f,this],this)}else f&&d.callback(e.onClick,[a,f,this],this)}}function bE(a,b){return b*(a.text?a.text.length:0)}var bF={id:"legend",_element:bD,start(a,b,c){let d=a.legend=new bD({ctx:a.ctx,options:c,chart:a});$.configure(a,d,c),$.addBox(a,d)},stop(a){$.removeBox(a,a.legend),delete a.legend},beforeUpdate(a,b,c){let d=a.legend;$.configure(a,d,c),d.options=c},afterUpdate(a){let b=a.legend;b.buildLabels(),b.adjustHitBoxes()},afterEvent(a,b){b.replay||a.legend.handleEvent(b.event)},defaults:{display:!0,position:"top",align:"center",fullSize:!0,reverse:!1,weight:1e3,onClick(a,b,c){let d=b.datasetIndex,e=c.chart;e.isDatasetVisible(d)?(e.hide(d),b.hidden=!0):(e.show(d),b.hidden=!1)},onHover:null,onLeave:null,labels:{color:a=>a.chart.options.color,boxWidth:40,padding:10,generateLabels(a){let b=a.data.datasets,{labels:{usePointStyle:c,pointStyle:e,textAlign:f,color:g,useBorderRadius:h,borderRadius:i}}=a.legend.options;return a._getSortedDatasetMetas().map(a=>{let j=a.controller.getStyle(c?0:void 0),k=d.toPadding(j.borderWidth);return{text:b[a.index].label,fillStyle:j.backgroundColor,fontColor:g,hidden:!a.visible,lineCap:j.borderCapStyle,lineDash:j.borderDash,lineDashOffset:j.borderDashOffset,lineJoin:j.borderJoinStyle,lineWidth:(k.width+k.height)/4,strokeStyle:j.borderColor,pointStyle:e||j.pointStyle,rotation:j.rotation,textAlign:f||j.textAlign,borderRadius:h&&(i||j.borderRadius),datasetIndex:a.index}},this)}},title:{color:a=>a.chart.options.color,display:!1,position:"center",text:""}},descriptors:{_scriptable:a=>!a.startsWith("on"),labels:{_scriptable:a=>!["generateLabels","filter","sort"].includes(a)}}};class bG extends aq{constructor(a){super(),this.chart=a.chart,this.options=a.options,this.ctx=a.ctx,this._padding=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(a,b){let c=this.options;if(this.left=0,this.top=0,!c.display){this.width=this.height=this.right=this.bottom=0;return}this.width=this.right=a,this.height=this.bottom=b;let e=d.isArray(c.text)?c.text.length:1;this._padding=d.toPadding(c.padding);let f=e*d.toFont(c.font).lineHeight+this._padding.height;this.isHorizontal()?this.height=f:this.width=f}isHorizontal(){let a=this.options.position;return"top"===a||"bottom"===a}_drawArgs(a){let b,c,e,{top:f,left:g,bottom:h,right:i,options:j}=this,k=j.align,l=0;return this.isHorizontal()?(c=d._alignStartEnd(k,g,i),e=f+a,b=i-g):("left"===j.position?(c=g+a,e=d._alignStartEnd(k,h,f),l=-.5*d.PI):(c=i-a,e=d._alignStartEnd(k,f,h),l=.5*d.PI),b=h-f),{titleX:c,titleY:e,maxWidth:b,rotation:l}}draw(){let a=this.ctx,b=this.options;if(!b.display)return;let c=d.toFont(b.font),e=c.lineHeight/2+this._padding.top,{titleX:f,titleY:g,maxWidth:h,rotation:i}=this._drawArgs(e);d.renderText(a,b.text,0,0,c,{color:b.color,maxWidth:h,rotation:i,textAlign:d._toLeftRightCenter(b.align),textBaseline:"middle",translation:[f,g]})}}var bH={id:"title",_element:bG,start(a,b,c){let d;d=new bG({ctx:a.ctx,options:c,chart:a}),$.configure(a,d,c),$.addBox(a,d),a.titleBlock=d},stop(a){let b=a.titleBlock;$.removeBox(a,b),delete a.titleBlock},beforeUpdate(a,b,c){let d=a.titleBlock;$.configure(a,d,c),d.options=c},defaults:{align:"center",display:!1,font:{weight:"bold"},fullSize:!0,padding:10,position:"top",text:"",weight:2e3},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};let bI=new WeakMap;var bJ={id:"subtitle",start(a,b,c){let d=new bG({ctx:a.ctx,options:c,chart:a});$.configure(a,d,c),$.addBox(a,d),bI.set(a,d)},stop(a){$.removeBox(a,bI.get(a)),bI.delete(a)},beforeUpdate(a,b,c){let d=bI.get(a);$.configure(a,d,c),d.options=c},defaults:{align:"center",display:!1,font:{weight:"normal"},fullSize:!0,padding:0,position:"top",text:"",weight:1500},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};let bK={average(a){let b,c;if(!a.length)return!1;let d=new Set,e=0,f=0;for(b=0,c=a.length;b<c;++b){let c=a[b].element;if(c&&c.hasValue()){let a=c.tooltipPosition();d.add(a.x),e+=a.y,++f}}return 0!==f&&0!==d.size&&{x:[...d].reduce((a,b)=>a+b)/d.size,y:e/f}},nearest(a,b){let c,e,f;if(!a.length)return!1;let g=b.x,h=b.y,i=1/0;for(c=0,e=a.length;c<e;++c){let e=a[c].element;if(e&&e.hasValue()){let a=e.getCenterPoint(),c=d.distanceBetweenPoints(b,a);c<i&&(i=c,f=e)}}if(f){let a=f.tooltipPosition();g=a.x,h=a.y}return{x:g,y:h}}};function bL(a,b){return b&&(d.isArray(b)?Array.prototype.push.apply(a,b):a.push(b)),a}function bM(a){return("string"==typeof a||a instanceof String)&&a.indexOf("\n")>-1?a.split("\n"):a}function bN(a,b){let c=a.chart.ctx,{body:e,footer:f,title:g}=a,{boxWidth:h,boxHeight:i}=b,j=d.toFont(b.bodyFont),k=d.toFont(b.titleFont),l=d.toFont(b.footerFont),m=g.length,n=f.length,o=e.length,p=d.toPadding(b.padding),q=p.height,r=0,s=e.reduce((a,b)=>a+b.before.length+b.lines.length+b.after.length,0);s+=a.beforeBody.length+a.afterBody.length,m&&(q+=m*k.lineHeight+(m-1)*b.titleSpacing+b.titleMarginBottom),s&&(q+=o*(b.displayColors?Math.max(i,j.lineHeight):j.lineHeight)+(s-o)*j.lineHeight+(s-1)*b.bodySpacing),n&&(q+=b.footerMarginTop+n*l.lineHeight+(n-1)*b.footerSpacing);let t=0,u=function(a){r=Math.max(r,c.measureText(a).width+t)};return c.save(),c.font=k.string,d.each(a.title,u),c.font=j.string,d.each(a.beforeBody.concat(a.afterBody),u),t=b.displayColors?h+2+b.boxPadding:0,d.each(e,a=>{d.each(a.before,u),d.each(a.lines,u),d.each(a.after,u)}),t=0,c.font=l.string,d.each(a.footer,u),c.restore(),{width:r+=p.width,height:q}}function bO(a,b,c){let d=c.yAlign||b.yAlign||function(a,b){let{y:c,height:d}=b;return c<d/2?"top":c>a.height-d/2?"bottom":"center"}(a,c);return{xAlign:c.xAlign||b.xAlign||function(a,b,c,d){let{x:e,width:f}=c,{width:g,chartArea:{left:h,right:i}}=a,j="center";return"center"===d?j=e<=(h+i)/2?"left":"right":e<=f/2?j="left":e>=g-f/2&&(j="right"),function(a,b,c,d){let{x:e,width:f}=d,g=c.caretSize+c.caretPadding;if("left"===a&&e+f+g>b.width||"right"===a&&e-f-g<0)return!0}(j,a,b,c)&&(j="center"),j}(a,b,c,d),yAlign:d}}function bP(a,b,c,e){let{caretSize:f,caretPadding:g,cornerRadius:h}=a,{xAlign:i,yAlign:j}=c,k=f+g,{topLeft:l,topRight:m,bottomLeft:n,bottomRight:o}=d.toTRBLCorners(h),p=function(a,b){let{x:c,width:d}=a;return"right"===b?c-=d:"center"===b&&(c-=d/2),c}(b,i),q=function(a,b,c){let{y:d,height:e}=a;return"top"===b?d+=c:"bottom"===b?d-=e+c:d-=e/2,d}(b,j,k);return"center"===j?"left"===i?p+=k:"right"===i&&(p-=k):"left"===i?p-=Math.max(l,n)+f:"right"===i&&(p+=Math.max(m,o)+f),{x:d._limitValue(p,0,e.width-b.width),y:d._limitValue(q,0,e.height-b.height)}}function bQ(a,b,c){let e=d.toPadding(c.padding);return"center"===b?a.x+a.width/2:"right"===b?a.x+a.width-e.right:a.x+e.left}function bR(a,b){let c=b&&b.dataset&&b.dataset.tooltip&&b.dataset.tooltip.callbacks;return c?a.override(c):a}let bS={beforeTitle:d.noop,title(a){if(a.length>0){let b=a[0],c=b.chart.data.labels,d=c?c.length:0;if(this&&this.options&&"dataset"===this.options.mode)return b.dataset.label||"";if(b.label)return b.label;if(d>0&&b.dataIndex<d)return c[b.dataIndex]}return""},afterTitle:d.noop,beforeBody:d.noop,beforeLabel:d.noop,label(a){if(this&&this.options&&"dataset"===this.options.mode)return a.label+": "+a.formattedValue||a.formattedValue;let b=a.dataset.label||"";b&&(b+=": ");let c=a.formattedValue;return d.isNullOrUndef(c)||(b+=c),b},labelColor(a){let b=a.chart.getDatasetMeta(a.datasetIndex).controller.getStyle(a.dataIndex);return{borderColor:b.borderColor,backgroundColor:b.backgroundColor,borderWidth:b.borderWidth,borderDash:b.borderDash,borderDashOffset:b.borderDashOffset,borderRadius:0}},labelTextColor(){return this.options.bodyColor},labelPointStyle(a){let b=a.chart.getDatasetMeta(a.datasetIndex).controller.getStyle(a.dataIndex);return{pointStyle:b.pointStyle,rotation:b.rotation}},afterLabel:d.noop,afterBody:d.noop,beforeFooter:d.noop,footer:d.noop,afterFooter:d.noop};function bT(a,b,c,d){let e=a[b].call(c,d);return void 0===e?bS[b].call(c,d):e}class bU extends aq{static positioners=bK;constructor(a){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=a.chart,this.options=a.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(a){this.options=a,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){let a=this._cachedAnimations;if(a)return a;let b=this.chart,c=this.options.setContext(this.getContext()),d=c.enabled&&b.options.animation&&c.animations,e=new j(this.chart,d);return d._cacheable&&(this._cachedAnimations=Object.freeze(e)),e}getContext(){var a,b;return this.$context||(this.$context=(a=this.chart.getContext(),b=this._tooltipItems,d.createContext(a,{tooltip:this,tooltipItems:b,type:"tooltip"})))}getTitle(a,b){let{callbacks:c}=b,d=bT(c,"beforeTitle",this,a),e=bT(c,"title",this,a),f=bT(c,"afterTitle",this,a),g=[];return g=bL(g,bM(d)),g=bL(g,bM(e)),g=bL(g,bM(f))}getBeforeBody(a,b){return bL([],bM(bT(b.callbacks,"beforeBody",this,a)))}getBody(a,b){let{callbacks:c}=b,e=[];return d.each(a,a=>{let b={before:[],lines:[],after:[]},d=bR(c,a);bL(b.before,bM(bT(d,"beforeLabel",this,a))),bL(b.lines,bT(d,"label",this,a)),bL(b.after,bM(bT(d,"afterLabel",this,a))),e.push(b)}),e}getAfterBody(a,b){return bL([],bM(bT(b.callbacks,"afterBody",this,a)))}getFooter(a,b){let{callbacks:c}=b,d=bT(c,"beforeFooter",this,a),e=bT(c,"footer",this,a),f=bT(c,"afterFooter",this,a),g=[];return g=bL(g,bM(d)),g=bL(g,bM(e)),g=bL(g,bM(f))}_createItems(a){let b,c,e=this._active,f=this.chart.data,g=[],h=[],i=[],j=[];for(b=0,c=e.length;b<c;++b)j.push(function(a,b){let{element:c,datasetIndex:d,index:e}=b,f=a.getDatasetMeta(d).controller,{label:g,value:h}=f.getLabelAndValue(e);return{chart:a,label:g,parsed:f.getParsed(e),raw:a.data.datasets[d].data[e],formattedValue:h,dataset:f.getDataset(),dataIndex:e,datasetIndex:d,element:c}}(this.chart,e[b]));return a.filter&&(j=j.filter((b,c,d)=>a.filter(b,c,d,f))),a.itemSort&&(j=j.sort((b,c)=>a.itemSort(b,c,f))),d.each(j,b=>{let c=bR(a.callbacks,b);g.push(bT(c,"labelColor",this,b)),h.push(bT(c,"labelPointStyle",this,b)),i.push(bT(c,"labelTextColor",this,b))}),this.labelColors=g,this.labelPointStyles=h,this.labelTextColors=i,this.dataPoints=j,j}update(a,b){let c,d=this.options.setContext(this.getContext()),e=this._active,f=[];if(e.length){let a=bK[d.position].call(this,e,this._eventPosition);f=this._createItems(d),this.title=this.getTitle(f,d),this.beforeBody=this.getBeforeBody(f,d),this.body=this.getBody(f,d),this.afterBody=this.getAfterBody(f,d),this.footer=this.getFooter(f,d);let b=this._size=bN(this,d),g=Object.assign({},a,b),h=bO(this.chart,d,g),i=bP(d,g,h,this.chart);this.xAlign=h.xAlign,this.yAlign=h.yAlign,c={opacity:1,x:i.x,y:i.y,width:b.width,height:b.height,caretX:a.x,caretY:a.y}}else 0!==this.opacity&&(c={opacity:0});this._tooltipItems=f,this.$context=void 0,c&&this._resolveAnimations().update(this,c),a&&d.external&&d.external.call(this,{chart:this.chart,tooltip:this,replay:b})}drawCaret(a,b,c,d){let e=this.getCaretPosition(a,c,d);b.lineTo(e.x1,e.y1),b.lineTo(e.x2,e.y2),b.lineTo(e.x3,e.y3)}getCaretPosition(a,b,c){let e,f,g,h,i,j,{xAlign:k,yAlign:l}=this,{caretSize:m,cornerRadius:n}=c,{topLeft:o,topRight:p,bottomLeft:q,bottomRight:r}=d.toTRBLCorners(n),{x:s,y:t}=a,{width:u,height:v}=b;return"center"===l?(i=t+v/2,"left"===k?(f=(e=s)-m,h=i+m,j=i-m):(f=(e=s+u)+m,h=i-m,j=i+m),g=e):(f="left"===k?s+Math.max(o,q)+m:"right"===k?s+u-Math.max(p,r)-m:this.caretX,"top"===l?(i=(h=t)-m,e=f-m,g=f+m):(i=(h=t+v)+m,e=f+m,g=f-m),j=h),{x1:e,x2:f,x3:g,y1:h,y2:i,y3:j}}drawTitle(a,b,c){let e,f,g,h=this.title,i=h.length;if(i){let j=d.getRtlAdapter(c.rtl,this.x,this.width);for(g=0,a.x=bQ(this,c.titleAlign,c),b.textAlign=j.textAlign(c.titleAlign),b.textBaseline="middle",e=d.toFont(c.titleFont),f=c.titleSpacing,b.fillStyle=c.titleColor,b.font=e.string;g<i;++g)b.fillText(h[g],j.x(a.x),a.y+e.lineHeight/2),a.y+=e.lineHeight+f,g+1===i&&(a.y+=c.titleMarginBottom-f)}}_drawColorBox(a,b,c,e,f){let g=this.labelColors[c],h=this.labelPointStyles[c],{boxHeight:i,boxWidth:j}=f,k=d.toFont(f.bodyFont),l=bQ(this,"left",f),m=e.x(l),n=i<k.lineHeight?(k.lineHeight-i)/2:0,o=b.y+n;if(f.usePointStyle){let b={radius:Math.min(j,i)/2,pointStyle:h.pointStyle,rotation:h.rotation,borderWidth:1},c=e.leftForLtr(m,j)+j/2,k=o+i/2;a.strokeStyle=f.multiKeyBackground,a.fillStyle=f.multiKeyBackground,d.drawPoint(a,b,c,k),a.strokeStyle=g.borderColor,a.fillStyle=g.backgroundColor,d.drawPoint(a,b,c,k)}else{a.lineWidth=d.isObject(g.borderWidth)?Math.max(...Object.values(g.borderWidth)):g.borderWidth||1,a.strokeStyle=g.borderColor,a.setLineDash(g.borderDash||[]),a.lineDashOffset=g.borderDashOffset||0;let b=e.leftForLtr(m,j),c=e.leftForLtr(e.xPlus(m,1),j-2),h=d.toTRBLCorners(g.borderRadius);Object.values(h).some(a=>0!==a)?(a.beginPath(),a.fillStyle=f.multiKeyBackground,d.addRoundedRectPath(a,{x:b,y:o,w:j,h:i,radius:h}),a.fill(),a.stroke(),a.fillStyle=g.backgroundColor,a.beginPath(),d.addRoundedRectPath(a,{x:c,y:o+1,w:j-2,h:i-2,radius:h}),a.fill()):(a.fillStyle=f.multiKeyBackground,a.fillRect(b,o,j,i),a.strokeRect(b,o,j,i),a.fillStyle=g.backgroundColor,a.fillRect(c,o+1,j-2,i-2))}a.fillStyle=this.labelTextColors[c]}drawBody(a,b,c){let e,f,g,h,i,j,{body:k}=this,{bodySpacing:l,bodyAlign:m,displayColors:n,boxHeight:o,boxWidth:p,boxPadding:q}=c,r=d.toFont(c.bodyFont),s=r.lineHeight,t=0,u=d.getRtlAdapter(c.rtl,this.x,this.width),v=function(c){b.fillText(c,u.x(a.x+t),a.y+s/2),a.y+=s+l},w=u.textAlign(m);for(b.textAlign=m,b.textBaseline="middle",b.font=r.string,a.x=bQ(this,w,c),b.fillStyle=c.bodyColor,d.each(this.beforeBody,v),t=n&&"right"!==w?"center"===m?p/2+q:p+2+q:0,g=0,i=k.length;g<i;++g){for(e=k[g],b.fillStyle=this.labelTextColors[g],d.each(e.before,v),f=e.lines,n&&f.length&&(this._drawColorBox(b,a,g,u,c),s=Math.max(r.lineHeight,o)),h=0,j=f.length;h<j;++h)v(f[h]),s=r.lineHeight;d.each(e.after,v)}t=0,s=r.lineHeight,d.each(this.afterBody,v),a.y-=l}drawFooter(a,b,c){let e,f,g=this.footer,h=g.length;if(h){let i=d.getRtlAdapter(c.rtl,this.x,this.width);for(a.x=bQ(this,c.footerAlign,c),a.y+=c.footerMarginTop,b.textAlign=i.textAlign(c.footerAlign),b.textBaseline="middle",e=d.toFont(c.footerFont),b.fillStyle=c.footerColor,b.font=e.string,f=0;f<h;++f)b.fillText(g[f],i.x(a.x),a.y+e.lineHeight/2),a.y+=e.lineHeight+c.footerSpacing}}drawBackground(a,b,c,e){let{xAlign:f,yAlign:g}=this,{x:h,y:i}=a,{width:j,height:k}=c,{topLeft:l,topRight:m,bottomLeft:n,bottomRight:o}=d.toTRBLCorners(e.cornerRadius);b.fillStyle=e.backgroundColor,b.strokeStyle=e.borderColor,b.lineWidth=e.borderWidth,b.beginPath(),b.moveTo(h+l,i),"top"===g&&this.drawCaret(a,b,c,e),b.lineTo(h+j-m,i),b.quadraticCurveTo(h+j,i,h+j,i+m),"center"===g&&"right"===f&&this.drawCaret(a,b,c,e),b.lineTo(h+j,i+k-o),b.quadraticCurveTo(h+j,i+k,h+j-o,i+k),"bottom"===g&&this.drawCaret(a,b,c,e),b.lineTo(h+n,i+k),b.quadraticCurveTo(h,i+k,h,i+k-n),"center"===g&&"left"===f&&this.drawCaret(a,b,c,e),b.lineTo(h,i+l),b.quadraticCurveTo(h,i,h+l,i),b.closePath(),b.fill(),e.borderWidth>0&&b.stroke()}_updateAnimationTarget(a){let b=this.chart,c=this.$animations,d=c&&c.x,e=c&&c.y;if(d||e){let c=bK[a.position].call(this,this._active,this._eventPosition);if(!c)return;let f=this._size=bN(this,a),g=Object.assign({},c,this._size),h=bO(b,a,g),i=bP(a,g,h,b);(d._to!==i.x||e._to!==i.y)&&(this.xAlign=h.xAlign,this.yAlign=h.yAlign,this.width=f.width,this.height=f.height,this.caretX=c.x,this.caretY=c.y,this._resolveAnimations().update(this,i))}}_willRender(){return!!this.opacity}draw(a){let b=this.options.setContext(this.getContext()),c=this.opacity;if(!c)return;this._updateAnimationTarget(b);let e={width:this.width,height:this.height},f={x:this.x,y:this.y};c=.001>Math.abs(c)?0:c;let g=d.toPadding(b.padding),h=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;b.enabled&&h&&(a.save(),a.globalAlpha=c,this.drawBackground(f,a,e,b),d.overrideTextDirection(a,b.textDirection),f.y+=g.top,this.drawTitle(f,a,b),this.drawBody(f,a,b),this.drawFooter(f,a,b),d.restoreTextDirection(a,b.textDirection),a.restore())}getActiveElements(){return this._active||[]}setActiveElements(a,b){let c=this._active,e=a.map(({datasetIndex:a,index:b})=>{let c=this.chart.getDatasetMeta(a);if(!c)throw Error("Cannot find a dataset at index "+a);return{datasetIndex:a,element:c.data[b],index:b}}),f=!d._elementsEqual(c,e),g=this._positionChanged(e,b);(f||g)&&(this._active=e,this._eventPosition=b,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(a,b,c=!0){if(b&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;let e=this.options,f=this._active||[],g=this._getActiveElements(a,f,b,c),h=this._positionChanged(g,a),i=b||!d._elementsEqual(g,f)||h;return i&&(this._active=g,(e.enabled||e.external)&&(this._eventPosition={x:a.x,y:a.y},this.update(!0,b))),i}_getActiveElements(a,b,c,d){let e=this.options;if("mouseout"===a.type)return[];if(!d)return b.filter(a=>this.chart.data.datasets[a.datasetIndex]&&void 0!==this.chart.getDatasetMeta(a.datasetIndex).controller.getParsed(a.index));let f=this.chart.getElementsAtEventForMode(a,e.mode,e,c);return e.reverse&&f.reverse(),f}_positionChanged(a,b){let{caretX:c,caretY:d,options:e}=this,f=bK[e.position].call(this,a,b);return!1!==f&&(c!==f.x||d!==f.y)}}var bV={id:"tooltip",_element:bU,positioners:bK,afterInit(a,b,c){c&&(a.tooltip=new bU({chart:a,options:c}))},beforeUpdate(a,b,c){a.tooltip&&a.tooltip.initialize(c)},reset(a,b,c){a.tooltip&&a.tooltip.initialize(c)},afterDraw(a){let b=a.tooltip;if(b&&b._willRender()){let c={tooltip:b};if(!1===a.notifyPlugins("beforeTooltipDraw",{...c,cancelable:!0}))return;b.draw(a.ctx),a.notifyPlugins("afterTooltipDraw",c)}},afterEvent(a,b){if(a.tooltip){let c=b.replay;a.tooltip.handleEvent(b.event,c,b.inChartArea)&&(b.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(a,b)=>b.bodyFont.size,boxWidth:(a,b)=>b.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:bS},defaultRoutes:{bodyFont:"font",footerFont:"font",titleFont:"font"},descriptors:{_scriptable:a=>"filter"!==a&&"itemSort"!==a&&"external"!==a,_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]},bW=Object.freeze({__proto__:null,Colors:bm,Decimation:bp,Filler:bB,Legend:bF,SubTitle:bJ,Title:bH,Tooltip:bV});function bX(a){let b=this.getLabels();return a>=0&&a<b.length?b[a]:a}class bY extends ax{static id="category";static defaults={ticks:{callback:bX}};constructor(a){super(a),this._startValue=void 0,this._valueRange=0,this._addedLabels=[]}init(a){let b=this._addedLabels;if(b.length){let a=this.getLabels();for(let{index:c,label:d}of b)a[c]===d&&a.splice(c,1);this._addedLabels=[]}super.init(a)}parse(a,b){let c,e;if(d.isNullOrUndef(a))return null;let f=this.getLabels();return c=b=isFinite(b)&&f[b]===a?b:function(a,b,c,d){let e=a.indexOf(b);if(-1===e){var f;return f=c,"string"==typeof b?(f=a.push(b)-1,d.unshift({index:f,label:b})):isNaN(b)&&(f=null),f}return e!==a.lastIndexOf(b)?c:e}(f,a,d.valueOrDefault(b,a),this._addedLabels),e=f.length-1,null===c?null:d._limitValue(Math.round(c),0,e)}determineDataLimits(){let{minDefined:a,maxDefined:b}=this.getUserBounds(),{min:c,max:d}=this.getMinMax(!0);"ticks"===this.options.bounds&&(a||(c=0),b||(d=this.getLabels().length-1)),this.min=c,this.max=d}buildTicks(){let a=this.min,b=this.max,c=this.options.offset,d=[],e=this.getLabels();e=0===a&&b===e.length-1?e:e.slice(a,b+1),this._valueRange=Math.max(e.length-!c,1),this._startValue=this.min-.5*!!c;for(let c=a;c<=b;c++)d.push({value:c});return d}getLabelForValue(a){return bX.call(this,a)}configure(){super.configure(),this.isHorizontal()||(this._reversePixels=!this._reversePixels)}getPixelForValue(a){return"number"!=typeof a&&(a=this.parse(a)),null===a?NaN:this.getPixelForDecimal((a-this._startValue)/this._valueRange)}getPixelForTick(a){let b=this.ticks;return a<0||a>b.length-1?null:this.getPixelForValue(b[a].value)}getValueForPixel(a){return Math.round(this._startValue+this.getDecimalForPixel(a)*this._valueRange)}getBasePixel(){return this.bottom}}function bZ(a,b,{horizontal:c,minRotation:e}){let f=d.toRadians(e),g=(c?Math.sin(f):Math.cos(f))||.001,h=.75*b*(""+a).length;return Math.min(b/g,h)}class b$ extends ax{constructor(a){super(a),this.start=void 0,this.end=void 0,this._startValue=void 0,this._endValue=void 0,this._valueRange=0}parse(a,b){return d.isNullOrUndef(a)||("number"==typeof a||a instanceof Number)&&!isFinite(+a)?null:+a}handleTickRangeOptions(){let{beginAtZero:a}=this.options,{minDefined:b,maxDefined:c}=this.getUserBounds(),{min:e,max:f}=this,g=a=>e=b?e:a,h=a=>f=c?f:a;if(a){let a=d.sign(e),b=d.sign(f);a<0&&b<0?h(0):a>0&&b>0&&g(0)}if(e===f){let b=0===f?1:Math.abs(.05*f);h(f+b),a||g(e-b)}this.min=e,this.max=f}getTickLimit(){let a,{maxTicksLimit:b,stepSize:c}=this.options.ticks;return c?(a=Math.ceil(this.max/c)-Math.floor(this.min/c)+1)>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${c} would result generating up to ${a} ticks. Limiting to 1000.`),a=1e3):(a=this.computeTickLimit(),b=b||11),b&&(a=Math.min(b,a)),a}computeTickLimit(){return 1/0}buildTicks(){let a=this.options,b=a.ticks,c=this.getTickLimit(),e=function(a,b){let c,e,f,g,h=[],{bounds:i,step:j,min:k,max:l,precision:m,count:n,maxTicks:o,maxDigits:p,includeBounds:q}=a,r=j||1,s=o-1,{min:t,max:u}=b,v=!d.isNullOrUndef(k),w=!d.isNullOrUndef(l),x=!d.isNullOrUndef(n),y=(u-t)/(p+1),z=d.niceNum((u-t)/s/r)*r;if(z<1e-14&&!v&&!w)return[{value:t},{value:u}];(g=Math.ceil(u/z)-Math.floor(t/z))>s&&(z=d.niceNum(g*z/s/r)*r),d.isNullOrUndef(m)||(z=Math.ceil(z*(c=Math.pow(10,m)))/c),"ticks"===i?(e=Math.floor(t/z)*z,f=Math.ceil(u/z)*z):(e=t,f=u),v&&w&&j&&d.almostWhole((l-k)/j,z/1e3)?(g=Math.round(Math.min((l-k)/z,o)),z=(l-k)/g,e=k,f=l):x?(e=v?k:e,z=((f=w?l:f)-e)/(g=n-1)):(g=(f-e)/z,g=d.almostEquals(g,Math.round(g),z/1e3)?Math.round(g):Math.ceil(g));let A=Math.max(d._decimalPlaces(z),d._decimalPlaces(e));e=Math.round(e*(c=Math.pow(10,d.isNullOrUndef(m)?A:m)))/c,f=Math.round(f*c)/c;let B=0;for(v&&(q&&e!==k?(h.push({value:k}),e<k&&B++,d.almostEquals(Math.round((e+B*z)*c)/c,k,bZ(k,y,a))&&B++):e<k&&B++);B<g;++B){let a=Math.round((e+B*z)*c)/c;if(w&&a>l)break;h.push({value:a})}return w&&q&&f!==l?h.length&&d.almostEquals(h[h.length-1].value,l,bZ(l,y,a))?h[h.length-1].value=l:h.push({value:l}):w&&f!==l||h.push({value:f}),h}({maxTicks:c=Math.max(2,c),bounds:a.bounds,min:a.min,max:a.max,precision:b.precision,step:b.stepSize,count:b.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:b.minRotation||0,includeBounds:!1!==b.includeBounds},this._range||this);return"ticks"===a.bounds&&d._setMinAndMaxByKey(e,this,"value"),a.reverse?(e.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),e}configure(){let a=this.ticks,b=this.min,c=this.max;if(super.configure(),this.options.offset&&a.length){let d=(c-b)/Math.max(a.length-1,1)/2;b-=d,c+=d}this._startValue=b,this._endValue=c,this._valueRange=c-b}getLabelForValue(a){return d.formatNumber(a,this.chart.options.locale,this.options.ticks.format)}}class b_ extends b${static id="linear";static defaults={ticks:{callback:d.Ticks.formatters.numeric}};determineDataLimits(){let{min:a,max:b}=this.getMinMax(!0);this.min=d.isNumberFinite(a)?a:0,this.max=d.isNumberFinite(b)?b:1,this.handleTickRangeOptions()}computeTickLimit(){let a=this.isHorizontal(),b=a?this.width:this.height,c=d.toRadians(this.options.ticks.minRotation),e=(a?Math.sin(c):Math.cos(c))||.001;return Math.ceil(b/Math.min(40,this._resolveTickFontOptions(0).lineHeight/e))}getPixelForValue(a){return null===a?NaN:this.getPixelForDecimal((a-this._startValue)/this._valueRange)}getValueForPixel(a){return this._startValue+this.getDecimalForPixel(a)*this._valueRange}}let b0=a=>Math.floor(d.log10(a)),b1=(a,b)=>Math.pow(10,b0(a)+b);function b2(a){return 1==a/Math.pow(10,b0(a))}function b3(a,b,c){let d=Math.pow(10,c),e=Math.floor(a/d);return Math.ceil(b/d)-e}class b4 extends ax{static id="logarithmic";static defaults={ticks:{callback:d.Ticks.formatters.logarithmic,major:{enabled:!0}}};constructor(a){super(a),this.start=void 0,this.end=void 0,this._startValue=void 0,this._valueRange=0}parse(a,b){let c=b$.prototype.parse.apply(this,[a,b]);if(0===c){this._zero=!0;return}return d.isNumberFinite(c)&&c>0?c:null}determineDataLimits(){let{min:a,max:b}=this.getMinMax(!0);this.min=d.isNumberFinite(a)?Math.max(0,a):null,this.max=d.isNumberFinite(b)?Math.max(0,b):null,this.options.beginAtZero&&(this._zero=!0),this._zero&&this.min!==this._suggestedMin&&!d.isNumberFinite(this._userMin)&&(this.min=a===b1(this.min,0)?b1(this.min,-1):b1(this.min,0)),this.handleTickRangeOptions()}handleTickRangeOptions(){let{minDefined:a,maxDefined:b}=this.getUserBounds(),c=this.min,d=this.max,e=b=>c=a?c:b,f=a=>d=b?d:a;c===d&&(c<=0?(e(1),f(10)):(e(b1(c,-1)),f(b1(d,1)))),c<=0&&e(b1(d,-1)),d<=0&&f(b1(c,1)),this.min=c,this.max=d}buildTicks(){let a=this.options,b=function(a,{min:b,max:c}){b=d.finiteOrDefault(a.min,b);let e=[],f=b0(b),g=function(a,b){let c=b0(b-a);for(;b3(a,b,c)>10;)c++;for(;10>b3(a,b,c);)c--;return Math.min(c,b0(a))}(b,c),h=g<0?Math.pow(10,Math.abs(g)):1,i=Math.pow(10,g),j=f>g?Math.pow(10,f):0,k=Math.round((b-j)*h)/h,l=Math.floor((b-j)/i/10)*i*10,m=Math.floor((k-l)/Math.pow(10,g)),n=d.finiteOrDefault(a.min,Math.round((j+l+m*Math.pow(10,g))*h)/h);for(;n<c;)e.push({value:n,major:b2(n),significand:m}),m>=10?m=m<15?15:20:m++,m>=20&&(m=2,h=++g>=0?1:h),n=Math.round((j+l+m*Math.pow(10,g))*h)/h;let o=d.finiteOrDefault(a.max,n);return e.push({value:o,major:b2(o),significand:m}),e}({min:this._userMin,max:this._userMax},this);return"ticks"===a.bounds&&d._setMinAndMaxByKey(b,this,"value"),a.reverse?(b.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),b}getLabelForValue(a){return void 0===a?"0":d.formatNumber(a,this.chart.options.locale,this.options.ticks.format)}configure(){let a=this.min;super.configure(),this._startValue=d.log10(a),this._valueRange=d.log10(this.max)-d.log10(a)}getPixelForValue(a){return((void 0===a||0===a)&&(a=this.min),null===a||isNaN(a))?NaN:this.getPixelForDecimal(a===this.min?0:(d.log10(a)-this._startValue)/this._valueRange)}getValueForPixel(a){let b=this.getDecimalForPixel(a);return Math.pow(10,this._startValue+b*this._valueRange)}}function b5(a){let b=a.ticks;if(b.display&&a.display){let a=d.toPadding(b.backdropPadding);return d.valueOrDefault(b.font&&b.font.size,d.defaults.font.size)+a.height}return 0}function b6(a,b,c,d,e){return a===d||a===e?{start:b-c/2,end:b+c/2}:a<d||a>e?{start:b-c,end:b}:{start:b,end:b+c}}function b7(a,b,c,e){let{ctx:f}=a;if(c)f.arc(a.xCenter,a.yCenter,b,0,d.TAU);else{let c=a.getPointPosition(0,b);f.moveTo(c.x,c.y);for(let d=1;d<e;d++)c=a.getPointPosition(d,b),f.lineTo(c.x,c.y)}}class b8 extends b${static id="radialLinear";static defaults={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,lineWidth:1,borderDash:[],borderDashOffset:0},grid:{circular:!1},startAngle:0,ticks:{showLabelBackdrop:!0,callback:d.Ticks.formatters.numeric},pointLabels:{backdropColor:void 0,backdropPadding:2,display:!0,font:{size:10},callback:a=>a,padding:5,centerPointLabels:!1}};static defaultRoutes={"angleLines.color":"borderColor","pointLabels.color":"color","ticks.color":"color"};static descriptors={angleLines:{_fallback:"grid"}};constructor(a){super(a),this.xCenter=void 0,this.yCenter=void 0,this.drawingArea=void 0,this._pointLabels=[],this._pointLabelItems=[]}setDimensions(){let a=this._padding=d.toPadding(b5(this.options)/2),b=this.width=this.maxWidth-a.width,c=this.height=this.maxHeight-a.height;this.xCenter=Math.floor(this.left+b/2+a.left),this.yCenter=Math.floor(this.top+c/2+a.top),this.drawingArea=Math.floor(Math.min(b,c)/2)}determineDataLimits(){let{min:a,max:b}=this.getMinMax(!1);this.min=d.isNumberFinite(a)&&!isNaN(a)?a:0,this.max=d.isNumberFinite(b)&&!isNaN(b)?b:0,this.handleTickRangeOptions()}computeTickLimit(){return Math.ceil(this.drawingArea/b5(this.options))}generateTickLabels(a){b$.prototype.generateTickLabels.call(this,a),this._pointLabels=this.getLabels().map((a,b)=>{let c=d.callback(this.options.pointLabels.callback,[a,b],this);return c||0===c?c:""}).filter((a,b)=>this.chart.getDataVisibility(b))}fit(){let a=this.options;a.display&&a.pointLabels.display?function(a){let b={l:a.left+a._padding.left,r:a.right-a._padding.right,t:a.top+a._padding.top,b:a.bottom-a._padding.bottom},c=Object.assign({},b),e=[],f=[],g=a._pointLabels.length,h=a.options.pointLabels,i=h.centerPointLabels?d.PI/g:0;for(let l=0;l<g;l++){var j,k;let g=h.setContext(a.getPointLabelContext(l));f[l]=g.padding;let m=a.getPointPosition(l,a.drawingArea+f[l],i),n=d.toFont(g.font),o=(j=a.ctx,k=a._pointLabels[l],k=d.isArray(k)?k:[k],{w:d._longestText(j,n.string,k),h:k.length*n.lineHeight});e[l]=o;let p=d._normalizeAngle(a.getIndexAngle(l)+i),q=Math.round(d.toDegrees(p));!function(a,b,c,d,e){let f=Math.abs(Math.sin(c)),g=Math.abs(Math.cos(c)),h=0,i=0;d.start<b.l?(h=(b.l-d.start)/f,a.l=Math.min(a.l,b.l-h)):d.end>b.r&&(h=(d.end-b.r)/f,a.r=Math.max(a.r,b.r+h)),e.start<b.t?(i=(b.t-e.start)/g,a.t=Math.min(a.t,b.t-i)):e.end>b.b&&(i=(e.end-b.b)/g,a.b=Math.max(a.b,b.b+i))}(c,b,p,b6(q,m.x,o.w,0,180),b6(q,m.y,o.h,90,270))}a.setCenterPoint(b.l-c.l,c.r-b.r,b.t-c.t,c.b-b.b),a._pointLabelItems=function(a,b,c){let e,f=[],g=a._pointLabels.length,h=a.options,{centerPointLabels:i,display:j}=h.pointLabels,k={extra:b5(h)/2,additionalAngle:i?d.PI/g:0};for(let h=0;h<g;h++){k.padding=c[h],k.size=b[h];let g=function(a,b,c){var e,f,g,h,i,j,k;let l=a.drawingArea,{extra:m,additionalAngle:n,padding:o,size:p}=c,q=a.getPointPosition(b,l+m+o,n),r=Math.round(d.toDegrees(d._normalizeAngle(q.angle+d.HALF_PI))),s=(e=q.y,f=p.h,90===(g=r)||270===g?e-=f/2:(g>270||g<90)&&(e-=f),e),t=0===(h=r)||180===h?"center":h<180?"left":"right",u=(i=q.x,j=p.w,"right"===(k=t)?i-=j:"center"===k&&(i-=j/2),i);return{visible:!0,x:q.x,y:s,textAlign:t,left:u,top:s,right:u+p.w,bottom:s+p.h}}(a,h,k);f.push(g),"auto"===j&&(g.visible=function(a,b){if(!b)return!0;let{left:c,top:e,right:f,bottom:g}=a;return!(d._isPointInArea({x:c,y:e},b)||d._isPointInArea({x:c,y:g},b)||d._isPointInArea({x:f,y:e},b)||d._isPointInArea({x:f,y:g},b))}(g,e),g.visible&&(e=g))}return f}(a,e,f)}(this):this.setCenterPoint(0,0,0,0)}setCenterPoint(a,b,c,d){this.xCenter+=Math.floor((a-b)/2),this.yCenter+=Math.floor((c-d)/2),this.drawingArea-=Math.min(this.drawingArea/2,Math.max(a,b,c,d))}getIndexAngle(a){let b=d.TAU/(this._pointLabels.length||1),c=this.options.startAngle||0;return d._normalizeAngle(a*b+d.toRadians(c))}getDistanceFromCenterForValue(a){if(d.isNullOrUndef(a))return NaN;let b=this.drawingArea/(this.max-this.min);return this.options.reverse?(this.max-a)*b:(a-this.min)*b}getValueForDistanceFromCenter(a){if(d.isNullOrUndef(a))return NaN;let b=a/(this.drawingArea/(this.max-this.min));return this.options.reverse?this.max-b:this.min+b}getPointLabelContext(a){let b=this._pointLabels||[];if(a>=0&&a<b.length){var c;let e=b[a];return c=this.getContext(),d.createContext(c,{label:e,index:a,type:"pointLabel"})}}getPointPosition(a,b,c=0){let e=this.getIndexAngle(a)-d.HALF_PI+c;return{x:Math.cos(e)*b+this.xCenter,y:Math.sin(e)*b+this.yCenter,angle:e}}getPointPositionForValue(a,b){return this.getPointPosition(a,this.getDistanceFromCenterForValue(b))}getBasePosition(a){return this.getPointPositionForValue(a||0,this.getBaseValue())}getPointLabelPosition(a){let{left:b,top:c,right:d,bottom:e}=this._pointLabelItems[a];return{left:b,top:c,right:d,bottom:e}}drawBackground(){let{backgroundColor:a,grid:{circular:b}}=this.options;if(a){let c=this.ctx;c.save(),c.beginPath(),b7(this,this.getDistanceFromCenterForValue(this._endValue),b,this._pointLabels.length),c.closePath(),c.fillStyle=a,c.fill(),c.restore()}}drawGrid(){let a,b,c,e=this.ctx,f=this.options,{angleLines:g,grid:h,border:i}=f,j=this._pointLabels.length;if(f.pointLabels.display&&function(a,b){let{ctx:c,options:{pointLabels:e}}=a;for(let f=b-1;f>=0;f--){let b=a._pointLabelItems[f];if(!b.visible)continue;let g=e.setContext(a.getPointLabelContext(f));!function(a,b,c){let{left:e,top:f,right:g,bottom:h}=c,{backdropColor:i}=b;if(!d.isNullOrUndef(i)){let c=d.toTRBLCorners(b.borderRadius),j=d.toPadding(b.backdropPadding);a.fillStyle=i;let k=e-j.left,l=f-j.top,m=g-e+j.width,n=h-f+j.height;Object.values(c).some(a=>0!==a)?(a.beginPath(),d.addRoundedRectPath(a,{x:k,y:l,w:m,h:n,radius:c}),a.fill()):a.fillRect(k,l,m,n)}}(c,g,b);let h=d.toFont(g.font),{x:i,y:j,textAlign:k}=b;d.renderText(c,a._pointLabels[f],i,j+h.lineHeight/2,h,{color:g.color,textAlign:k,textBaseline:"middle"})}}(this,j),h.display&&this.ticks.forEach((a,c)=>{if(0!==c||0===c&&this.min<0){b=this.getDistanceFromCenterForValue(a.value);let d=this.getContext(c),e=h.setContext(d),f=i.setContext(d);!function(a,b,c,d,e){let f=a.ctx,g=b.circular,{color:h,lineWidth:i}=b;(g||d)&&h&&i&&!(c<0)&&(f.save(),f.strokeStyle=h,f.lineWidth=i,f.setLineDash(e.dash||[]),f.lineDashOffset=e.dashOffset,f.beginPath(),b7(a,c,g,d),f.closePath(),f.stroke(),f.restore())}(this,e,b,j,f)}}),g.display){for(e.save(),a=j-1;a>=0;a--){let d=g.setContext(this.getPointLabelContext(a)),{color:h,lineWidth:i}=d;i&&h&&(e.lineWidth=i,e.strokeStyle=h,e.setLineDash(d.borderDash),e.lineDashOffset=d.borderDashOffset,b=this.getDistanceFromCenterForValue(f.reverse?this.min:this.max),c=this.getPointPosition(a,b),e.beginPath(),e.moveTo(this.xCenter,this.yCenter),e.lineTo(c.x,c.y),e.stroke())}e.restore()}}drawBorder(){}drawLabels(){let a,b,c=this.ctx,e=this.options,f=e.ticks;if(!f.display)return;let g=this.getIndexAngle(0);c.save(),c.translate(this.xCenter,this.yCenter),c.rotate(g),c.textAlign="center",c.textBaseline="middle",this.ticks.forEach((g,h)=>{if(0===h&&this.min>=0&&!e.reverse)return;let i=f.setContext(this.getContext(h)),j=d.toFont(i.font);if(a=this.getDistanceFromCenterForValue(this.ticks[h].value),i.showLabelBackdrop){c.font=j.string,b=c.measureText(g.label).width,c.fillStyle=i.backdropColor;let e=d.toPadding(i.backdropPadding);c.fillRect(-b/2-e.left,-a-j.size/2-e.top,b+e.width,j.size+e.height)}d.renderText(c,g.label,0,-a,j,{color:i.color,strokeColor:i.textStrokeColor,strokeWidth:i.textStrokeWidth})}),c.restore()}drawTitle(){}}let b9={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},ca=Object.keys(b9);function cb(a,b){return a-b}function cc(a,b){if(d.isNullOrUndef(b))return null;let c=a._adapter,{parser:e,round:f,isoWeekday:g}=a._parseOpts,h=b;return("function"==typeof e&&(h=e(h)),d.isNumberFinite(h)||(h="string"==typeof e?c.parse(h,e):c.parse(h)),null===h)?null:(f&&(h="week"===f&&(d.isNumber(g)||!0===g)?c.startOf(h,"isoWeek",g):c.startOf(h,f)),+h)}function cd(a,b,c,d){let e=ca.length;for(let f=ca.indexOf(a);f<e-1;++f){let a=b9[ca[f]],e=a.steps?a.steps:Number.MAX_SAFE_INTEGER;if(a.common&&Math.ceil((c-b)/(e*a.size))<=d)return ca[f]}return ca[e-1]}function ce(a,b,c){if(c){if(c.length){let{lo:e,hi:f}=d._lookup(c,b);a[c[e]>=b?c[e]:c[f]]=!0}}else a[b]=!0}function cf(a,b,c){let d,e,f=[],g={},h=b.length;for(d=0;d<h;++d)g[e=b[d]]=d,f.push({value:e,major:!1});return 0!==h&&c?function(a,b,c,d){let e,f,g=a._adapter,h=+g.startOf(b[0].value,d),i=b[b.length-1].value;for(e=h;e<=i;e=+g.add(e,1,d))(f=c[e])>=0&&(b[f].major=!0);return b}(a,f,g,c):f}class cg extends ax{static id="time";static defaults={bounds:"data",adapters:{},time:{parser:!1,unit:!1,round:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{}},ticks:{source:"auto",callback:!1,major:{enabled:!1}}};constructor(a){super(a),this._cache={data:[],labels:[],all:[]},this._unit="day",this._majorUnit=void 0,this._offsets={},this._normalized=!1,this._parseOpts=void 0}init(a,b={}){let c=a.time||(a.time={}),e=this._adapter=new L._date(a.adapters.date);e.init(b),d.mergeIf(c.displayFormats,e.formats()),this._parseOpts={parser:c.parser,round:c.round,isoWeekday:c.isoWeekday},super.init(a),this._normalized=b.normalized}parse(a,b){return void 0===a?null:cc(this,a)}beforeLayout(){super.beforeLayout(),this._cache={data:[],labels:[],all:[]}}determineDataLimits(){let a=this.options,b=this._adapter,c=a.time.unit||"day",{min:e,max:f,minDefined:g,maxDefined:h}=this.getUserBounds();function i(a){g||isNaN(a.min)||(e=Math.min(e,a.min)),h||isNaN(a.max)||(f=Math.max(f,a.max))}g&&h||(i(this._getLabelBounds()),("ticks"!==a.bounds||"labels"!==a.ticks.source)&&i(this.getMinMax(!1))),e=d.isNumberFinite(e)&&!isNaN(e)?e:+b.startOf(Date.now(),c),f=d.isNumberFinite(f)&&!isNaN(f)?f:+b.endOf(Date.now(),c)+1,this.min=Math.min(e,f-1),this.max=Math.max(e+1,f)}_getLabelBounds(){let a=this.getLabelTimestamps(),b=1/0,c=-1/0;return a.length&&(b=a[0],c=a[a.length-1]),{min:b,max:c}}buildTicks(){let a=this.options,b=a.time,c=a.ticks,e="labels"===c.source?this.getLabelTimestamps():this._generate();"ticks"===a.bounds&&e.length&&(this.min=this._userMin||e[0],this.max=this._userMax||e[e.length-1]);let f=this.min,g=this.max,h=d._filterBetween(e,f,g);return this._unit=b.unit||(c.autoSkip?cd(b.minUnit,this.min,this.max,this._getLabelCapacity(f)):function(a,b,c,d,e){for(let f=ca.length-1;f>=ca.indexOf(c);f--){let c=ca[f];if(b9[c].common&&a._adapter.diff(e,d,c)>=b-1)return c}return ca[c?ca.indexOf(c):0]}(this,h.length,b.minUnit,this.min,this.max)),this._majorUnit=c.major.enabled&&"year"!==this._unit?function(a){for(let b=ca.indexOf(a)+1,c=ca.length;b<c;++b)if(b9[ca[b]].common)return ca[b]}(this._unit):void 0,this.initOffsets(e),a.reverse&&h.reverse(),cf(this,h,this._majorUnit)}afterAutoSkip(){this.options.offsetAfterAutoskip&&this.initOffsets(this.ticks.map(a=>+a.value))}initOffsets(a=[]){let b,c,e=0,f=0;this.options.offset&&a.length&&(b=this.getDecimalForValue(a[0]),e=1===a.length?1-b:(this.getDecimalForValue(a[1])-b)/2,c=this.getDecimalForValue(a[a.length-1]),f=1===a.length?c:(c-this.getDecimalForValue(a[a.length-2]))/2);let g=a.length<3?.5:.25;e=d._limitValue(e,0,g),f=d._limitValue(f,0,g),this._offsets={start:e,end:f,factor:1/(e+1+f)}}_generate(){let a,b,c=this._adapter,e=this.min,f=this.max,g=this.options,h=g.time,i=h.unit||cd(h.minUnit,e,f,this._getLabelCapacity(e)),j=d.valueOrDefault(g.ticks.stepSize,1),k="week"===i&&h.isoWeekday,l=d.isNumber(k)||!0===k,m={},n=e;if(l&&(n=+c.startOf(n,"isoWeek",k)),n=+c.startOf(n,l?"day":i),c.diff(f,e,i)>1e5*j)throw Error(e+" and "+f+" are too far apart with stepSize of "+j+" "+i);let o="data"===g.ticks.source&&this.getDataTimestamps();for(a=n,b=0;a<f;a=+c.add(a,j,i),b++)ce(m,a,o);return(a===f||"ticks"===g.bounds||1===b)&&ce(m,a,o),Object.keys(m).sort(cb).map(a=>+a)}getLabelForValue(a){let b=this._adapter,c=this.options.time;return c.tooltipFormat?b.format(a,c.tooltipFormat):b.format(a,c.displayFormats.datetime)}format(a,b){let c=this.options.time.displayFormats,d=this._unit,e=b||c[d];return this._adapter.format(a,e)}_tickFormatFunction(a,b,c,e){let f=this.options,g=f.ticks.callback;if(g)return d.callback(g,[a,b,c],this);let h=f.time.displayFormats,i=this._unit,j=this._majorUnit,k=i&&h[i],l=j&&h[j],m=c[b],n=j&&l&&m&&m.major;return this._adapter.format(a,e||(n?l:k))}generateTickLabels(a){let b,c,d;for(b=0,c=a.length;b<c;++b)(d=a[b]).label=this._tickFormatFunction(d.value,b,a)}getDecimalForValue(a){return null===a?NaN:(a-this.min)/(this.max-this.min)}getPixelForValue(a){let b=this._offsets,c=this.getDecimalForValue(a);return this.getPixelForDecimal((b.start+c)*b.factor)}getValueForPixel(a){let b=this._offsets,c=this.getDecimalForPixel(a)/b.factor-b.end;return this.min+c*(this.max-this.min)}_getLabelSize(a){let b=this.options.ticks,c=this.ctx.measureText(a).width,e=d.toRadians(this.isHorizontal()?b.maxRotation:b.minRotation),f=Math.cos(e),g=Math.sin(e),h=this._resolveTickFontOptions(0).size;return{w:c*f+h*g,h:c*g+h*f}}_getLabelCapacity(a){let b=this.options.time,c=b.displayFormats,d=c[b.unit]||c.millisecond,e=this._tickFormatFunction(a,0,cf(this,[a],this._majorUnit),d),f=this._getLabelSize(e),g=Math.floor(this.isHorizontal()?this.width/f.w:this.height/f.h)-1;return g>0?g:1}getDataTimestamps(){let a,b,c=this._cache.data||[];if(c.length)return c;let d=this.getMatchingVisibleMetas();if(this._normalized&&d.length)return this._cache.data=d[0].controller.getAllParsedValues(this);for(a=0,b=d.length;a<b;++a)c=c.concat(d[a].controller.getAllParsedValues(this));return this._cache.data=this.normalize(c)}getLabelTimestamps(){let a,b,c=this._cache.labels||[];if(c.length)return c;let d=this.getLabels();for(a=0,b=d.length;a<b;++a)c.push(cc(this,d[a]));return this._cache.labels=this._normalized?c:this.normalize(c)}normalize(a){return d._arrayUnique(a.sort(cb))}}function ch(a,b,c){let e,f,g,h,i=0,j=a.length-1;c?(b>=a[i].pos&&b<=a[j].pos&&({lo:i,hi:j}=d._lookupByKey(a,"pos",b)),{pos:e,time:g}=a[i],{pos:f,time:h}=a[j]):(b>=a[i].time&&b<=a[j].time&&({lo:i,hi:j}=d._lookupByKey(a,"time",b)),{time:e,pos:g}=a[i],{time:f,pos:h}=a[j]);let k=f-e;return k?g+(h-g)*(b-e)/k:g}class ci extends cg{static id="timeseries";static defaults=cg.defaults;constructor(a){super(a),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){let a=this._getTimestampsForTable(),b=this._table=this.buildLookupTable(a);this._minPos=ch(b,this.min),this._tableRange=ch(b,this.max)-this._minPos,super.initOffsets(a)}buildLookupTable(a){let b,c,d,{min:e,max:f}=this,g=[],h=[];for(b=0,c=a.length;b<c;++b)(d=a[b])>=e&&d<=f&&g.push(d);if(g.length<2)return[{time:e,pos:0},{time:f,pos:1}];for(b=0,c=g.length;b<c;++b)Math.round((g[b+1]+g[b-1])/2)!==(d=g[b])&&h.push({time:d,pos:b/(c-1)});return h}_generate(){let a=this.min,b=this.max,c=super.getDataTimestamps();return c.includes(a)&&c.length||c.splice(0,0,a),c.includes(b)&&1!==c.length||c.push(b),c.sort((a,b)=>a-b)}_getTimestampsForTable(){let a=this._cache.all||[];if(a.length)return a;let b=this.getDataTimestamps(),c=this.getLabelTimestamps();return a=b.length&&c.length?this.normalize(b.concat(c)):b.length?b:c,a=this._cache.all=a}getDecimalForValue(a){return(ch(this._table,a)-this._minPos)/this._tableRange}getValueForPixel(a){let b=this._offsets,c=this.getDecimalForPixel(a)/b.factor-b.end;return ch(this._table,c*this._tableRange+this._minPos,!0)}}var cj=Object.freeze({__proto__:null,CategoryScale:bY,LinearScale:b_,LogarithmicScale:b4,RadialLinearScale:b8,TimeScale:cg,TimeSeriesScale:ci});let ck=[I,bg,bW,cj];b.Ticks=d.Ticks,b.defaults=d.defaults,b.Animation=i,b.Animations=j,b.ArcElement=a_,b.BarController=A,b.BarElement=bf,b.BasePlatform=_,b.BasicPlatform=aa,b.BubbleController=B,b.CategoryScale=bY,b.Chart=aX,b.Colors=bm,b.DatasetController=u,b.Decimation=bp,b.DomPlatform=ao,b.DoughnutController=C,b.Element=aq,b.Filler=bB,b.Interaction=Q,b.Legend=bF,b.LineController=D,b.LineElement=a7,b.LinearScale=b_,b.LogarithmicScale=b4,b.PieController=F,b.PointElement=a9,b.PolarAreaController=E,b.RadarController=G,b.RadialLinearScale=b8,b.Scale=ax,b.ScatterController=H,b.SubTitle=bJ,b.TimeScale=cg,b.TimeSeriesScale=ci,b.Title=bH,b.Tooltip=bV,b._adapters=L,b._detectPlatform=ap,b.animator=f,b.controllers=I,b.elements=bg,b.layouts=$,b.plugins=bW,b.registerables=ck,b.registry=aA,b.scales=cj},42508:(a,b,c)=>{"use strict";var d="u">typeof Uint8Array&&"u">typeof Uint16Array&&"u">typeof Uint32Array,e=c(32717),f=c(60731),g=c(60852),h=d?"uint8array":"array";function i(a,b){g.call(this,"FlateWorker/"+a),this._pako=null,this._pakoAction=a,this._pakoOptions=b,this.meta={}}b.magic="\b\0",f.inherits(i,g),i.prototype.processChunk=function(a){this.meta=a.meta,null===this._pako&&this._createPako(),this._pako.push(f.transformTo(h,a.data),!1)},i.prototype.flush=function(){g.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},i.prototype.cleanUp=function(){g.prototype.cleanUp.call(this),this._pako=null},i.prototype._createPako=function(){this._pako=new e[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var a=this;this._pako.onData=function(b){a.push({data:b,meta:a.meta})}},b.compressWorker=function(a){return new i("Deflate",a)},b.uncompressWorker=function(){return new i("Inflate",{})}},43902:(a,b,c)=>{"use strict";var d=c(40580),e=c(31242),f=c(40557),g=c(21355),h=c(6181),i=Object.prototype.toString;function j(a){if(!(this instanceof j))return new j(a);this.options=e.assign({level:-1,method:8,chunkSize:16384,windowBits:15,memLevel:8,strategy:0,to:""},a||{});var b,c=this.options;c.raw&&c.windowBits>0?c.windowBits=-c.windowBits:c.gzip&&c.windowBits>0&&c.windowBits<16&&(c.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new h,this.strm.avail_out=0;var k=d.deflateInit2(this.strm,c.level,c.method,c.windowBits,c.memLevel,c.strategy);if(0!==k)throw Error(g[k]);if(c.header&&d.deflateSetHeader(this.strm,c.header),c.dictionary){if(b="string"==typeof c.dictionary?f.string2buf(c.dictionary):"[object ArrayBuffer]"===i.call(c.dictionary)?new Uint8Array(c.dictionary):c.dictionary,0!==(k=d.deflateSetDictionary(this.strm,b)))throw Error(g[k]);this._dict_set=!0}}function k(a,b){var c=new j(b);if(c.push(a,!0),c.err)throw c.msg||g[c.err];return c.result}j.prototype.push=function(a,b){var c,g,h=this.strm,j=this.options.chunkSize;if(this.ended)return!1;g=b===~~b?b:4*(!0===b),"string"==typeof a?h.input=f.string2buf(a):"[object ArrayBuffer]"===i.call(a)?h.input=new Uint8Array(a):h.input=a,h.next_in=0,h.avail_in=h.input.length;do{if(0===h.avail_out&&(h.output=new e.Buf8(j),h.next_out=0,h.avail_out=j),1!==(c=d.deflate(h,g))&&0!==c)return this.onEnd(c),this.ended=!0,!1;(0===h.avail_out||0===h.avail_in&&(4===g||2===g))&&("string"===this.options.to?this.onData(f.buf2binstring(e.shrinkBuf(h.output,h.next_out))):this.onData(e.shrinkBuf(h.output,h.next_out)))}while((h.avail_in>0||0===h.avail_out)&&1!==c);return 4===g?(c=d.deflateEnd(this.strm),this.onEnd(c),this.ended=!0,0===c):(2===g&&(this.onEnd(0),h.avail_out=0),!0)},j.prototype.onData=function(a){this.chunks.push(a)},j.prototype.onEnd=function(a){0===a&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=e.flattenChunks(this.chunks)),this.chunks=[],this.err=a,this.msg=this.strm.msg},b.Deflate=j,b.deflate=k,b.deflateRaw=function(a,b){return(b=b||{}).raw=!0,k(a,b)},b.gzip=function(a,b){return(b=b||{}).gzip=!0,k(a,b)}},44581:(a,b,c)=>{"use strict";if(b.base64=!0,b.array=!0,b.string=!0,b.arraybuffer="u">typeof ArrayBuffer&&"u">typeof Uint8Array,b.nodebuffer="u">typeof Buffer,b.uint8array="u">typeof Uint8Array,"u"<typeof ArrayBuffer)b.blob=!1;else{var d=new ArrayBuffer(0);try{b.blob=0===new Blob([d],{type:"application/zip"}).size}catch(a){try{var e=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);e.append(d),b.blob=0===e.getBlob("application/zip").size}catch(a){b.blob=!1}}}try{b.nodestream=!!c(16107).Readable}catch(a){b.nodestream=!1}},44620:(a,b,c)=>{a.exports=c(28354).deprecate},45191:function(a){a.exports=function(){"use strict";let a;function b(a){return a+.5|0}let c=(a,b,c)=>Math.max(Math.min(a,c),b);function d(a){return c(b(2.55*a),0,255)}function e(a){return c(b(255*a),0,255)}function f(a){return c(b(a/2.55)/100,0,1)}function g(a){return c(b(100*a),0,100)}let h={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},i=[..."0123456789ABCDEF"],j=a=>i[15&a],k=a=>i[(240&a)>>4]+i[15&a],l=a=>(240&a)>>4==(15&a);function m(a){var b,c=a.length;return"#"===a[0]&&(4===c||5===c?b={r:255&17*h[a[1]],g:255&17*h[a[2]],b:255&17*h[a[3]],a:5===c?17*h[a[4]]:255}:(7===c||9===c)&&(b={r:h[a[1]]<<4|h[a[2]],g:h[a[3]]<<4|h[a[4]],b:h[a[5]]<<4|h[a[6]],a:9===c?h[a[7]]<<4|h[a[8]]:255})),b}function n(a){let b;var c=l(a.r)&&l(a.g)&&l(a.b)&&l(a.a)?j:k;return a?"#"+c(a.r)+c(a.g)+c(a.b)+(b=a.a,b<255?c(b):""):void 0}let o=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function p(a,b,c){let d=b*Math.min(c,1-c),e=(b,e=(b+a/30)%12)=>c-d*Math.max(Math.min(e-3,9-e,1),-1);return[e(0),e(8),e(4)]}function q(a,b,c){let d=(d,e=(d+a/60)%6)=>c-c*b*Math.max(Math.min(e,4-e,1),0);return[d(5),d(3),d(1)]}function r(a,b,c){let d,e=p(a,1,.5);for(b+c>1&&(d=1/(b+c),b*=d,c*=d),d=0;d<3;d++)e[d]*=1-b-c,e[d]+=b;return e}function s(a){let b,c,d,e=a.r/255,f=a.g/255,g=a.b/255,h=Math.max(e,f,g),i=Math.min(e,f,g),j=(h+i)/2;h!==i&&(d=h-i,c=j>.5?d/(2-h-i):d/(h+i),b=60*(b=e===h?(f-g)/d+6*(f<g):f===h?(g-e)/d+2:(e-f)/d+4)+.5);return[0|b,c||0,j]}function t(a,b,c,d){return(Array.isArray(b)?a(b[0],b[1],b[2]):a(b,c,d)).map(e)}function u(a,b,c){return t(p,a,b,c)}function v(a,b,c){return t(r,a,b,c)}function w(a,b,c){return t(q,a,b,c)}function x(a){return(a%360+360)%360}function y(a){let b,c=o.exec(a),f=255;if(!c)return;c[5]!==b&&(f=c[6]?d(+c[5]):e(+c[5]));let g=x(+c[2]),h=c[3]/100,i=c[4]/100;return{r:(b="hwb"===c[1]?v(g,h,i):"hsv"===c[1]?w(g,h,i):u(g,h,i))[0],g:b[1],b:b[2],a:f}}function z(a,b){var c=s(a);c[0]=x(c[0]+b),a.r=(c=u(c))[0],a.g=c[1],a.b=c[2]}function A(a){if(!a)return;let b=s(a),c=b[0],d=g(b[1]),e=g(b[2]);return a.a<255?`hsla(${c}, ${d}%, ${e}%, ${f(a.a)})`:`hsl(${c}, ${d}%, ${e}%)`}let B={x:"dark",Z:"light",Y:"re",X:"blu",W:"gr",V:"medium",U:"slate",A:"ee",T:"ol",S:"or",B:"ra",C:"lateg",D:"ights",R:"in",Q:"turquois",E:"hi",P:"ro",O:"al",N:"le",M:"de",L:"yello",F:"en",K:"ch",G:"arks",H:"ea",I:"ightg",J:"wh"},C={OiceXe:"f0f8ff",antiquewEte:"faebd7",aqua:"ffff",aquamarRe:"7fffd4",azuY:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"0",blanKedOmond:"ffebcd",Xe:"ff",XeviTet:"8a2be2",bPwn:"a52a2a",burlywood:"deb887",caMtXe:"5f9ea0",KartYuse:"7fff00",KocTate:"d2691e",cSO:"ff7f50",cSnflowerXe:"6495ed",cSnsilk:"fff8dc",crimson:"dc143c",cyan:"ffff",xXe:"8b",xcyan:"8b8b",xgTMnPd:"b8860b",xWay:"a9a9a9",xgYF:"6400",xgYy:"a9a9a9",xkhaki:"bdb76b",xmagFta:"8b008b",xTivegYF:"556b2f",xSange:"ff8c00",xScEd:"9932cc",xYd:"8b0000",xsOmon:"e9967a",xsHgYF:"8fbc8f",xUXe:"483d8b",xUWay:"2f4f4f",xUgYy:"2f4f4f",xQe:"ced1",xviTet:"9400d3",dAppRk:"ff1493",dApskyXe:"bfff",dimWay:"696969",dimgYy:"696969",dodgerXe:"1e90ff",fiYbrick:"b22222",flSOwEte:"fffaf0",foYstWAn:"228b22",fuKsia:"ff00ff",gaRsbSo:"dcdcdc",ghostwEte:"f8f8ff",gTd:"ffd700",gTMnPd:"daa520",Way:"808080",gYF:"8000",gYFLw:"adff2f",gYy:"808080",honeyMw:"f0fff0",hotpRk:"ff69b4",RdianYd:"cd5c5c",Rdigo:"4b0082",ivSy:"fffff0",khaki:"f0e68c",lavFMr:"e6e6fa",lavFMrXsh:"fff0f5",lawngYF:"7cfc00",NmoncEffon:"fffacd",ZXe:"add8e6",ZcSO:"f08080",Zcyan:"e0ffff",ZgTMnPdLw:"fafad2",ZWay:"d3d3d3",ZgYF:"90ee90",ZgYy:"d3d3d3",ZpRk:"ffb6c1",ZsOmon:"ffa07a",ZsHgYF:"20b2aa",ZskyXe:"87cefa",ZUWay:"778899",ZUgYy:"778899",ZstAlXe:"b0c4de",ZLw:"ffffe0",lime:"ff00",limegYF:"32cd32",lRF:"faf0e6",magFta:"ff00ff",maPon:"800000",VaquamarRe:"66cdaa",VXe:"cd",VScEd:"ba55d3",VpurpN:"9370db",VsHgYF:"3cb371",VUXe:"7b68ee",VsprRggYF:"fa9a",VQe:"48d1cc",VviTetYd:"c71585",midnightXe:"191970",mRtcYam:"f5fffa",mistyPse:"ffe4e1",moccasR:"ffe4b5",navajowEte:"ffdead",navy:"80",Tdlace:"fdf5e6",Tive:"808000",TivedBb:"6b8e23",Sange:"ffa500",SangeYd:"ff4500",ScEd:"da70d6",pOegTMnPd:"eee8aa",pOegYF:"98fb98",pOeQe:"afeeee",pOeviTetYd:"db7093",papayawEp:"ffefd5",pHKpuff:"ffdab9",peru:"cd853f",pRk:"ffc0cb",plum:"dda0dd",powMrXe:"b0e0e6",purpN:"800080",YbeccapurpN:"663399",Yd:"ff0000",Psybrown:"bc8f8f",PyOXe:"4169e1",saddNbPwn:"8b4513",sOmon:"fa8072",sandybPwn:"f4a460",sHgYF:"2e8b57",sHshell:"fff5ee",siFna:"a0522d",silver:"c0c0c0",skyXe:"87ceeb",UXe:"6a5acd",UWay:"708090",UgYy:"708090",snow:"fffafa",sprRggYF:"ff7f",stAlXe:"4682b4",tan:"d2b48c",teO:"8080",tEstN:"d8bfd8",tomato:"ff6347",Qe:"40e0d0",viTet:"ee82ee",JHt:"f5deb3",wEte:"ffffff",wEtesmoke:"f5f5f5",Lw:"ffff00",LwgYF:"9acd32"};function D(b){a||((a=function(){let a,b,c,d,e,f={},g=Object.keys(C),h=Object.keys(B);for(a=0;a<g.length;a++){for(b=0,d=e=g[a];b<h.length;b++)c=h[b],e=e.replace(c,B[c]);c=parseInt(C[d],16),f[e]=[c>>16&255,c>>8&255,255&c]}return f}()).transparent=[0,0,0,0]);let c=a[b.toLowerCase()];return c&&{r:c[0],g:c[1],b:c[2],a:4===c.length?c[3]:255}}let E=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;function F(a){let b,e,f,g=E.exec(a),h=255;if(g){if(g[7]!==b){let a=+g[7];h=g[8]?d(a):c(255*a,0,255)}return b=+g[1],e=+g[3],f=+g[5],b=255&(g[2]?d(b):c(b,0,255)),{r:b,g:e=255&(g[4]?d(e):c(e,0,255)),b:f=255&(g[6]?d(f):c(f,0,255)),a:h}}}function G(a){return a&&(a.a<255?`rgba(${a.r}, ${a.g}, ${a.b}, ${f(a.a)})`:`rgb(${a.r}, ${a.g}, ${a.b})`)}let H=a=>a<=.0031308?12.92*a:1.055*Math.pow(a,1/2.4)-.055,I=a=>a<=.04045?a/12.92:Math.pow((a+.055)/1.055,2.4);function J(a,b,c){if(a){let d=s(a);d[b]=Math.max(0,Math.min(d[b]+d[b]*c,0===b?360:1)),a.r=(d=u(d))[0],a.g=d[1],a.b=d[2]}}function K(a,b){return a?Object.assign(b||{},a):a}function L(a){var b={r:0,g:0,b:0,a:255};return Array.isArray(a)?a.length>=3&&(b={r:a[0],g:a[1],b:a[2],a:255},a.length>3&&(b.a=e(a[3]))):(b=K(a,{r:0,g:0,b:0,a:1})).a=e(b.a),b}class M{constructor(a){let b;if(a instanceof M)return a;const c=typeof a;"object"===c?b=L(a):"string"===c&&(b=m(a)||D(a)||function(a){return"r"===a.charAt(0)?F(a):y(a)}(a)),this._rgb=b,this._valid=!!b}get valid(){return this._valid}get rgb(){var a=K(this._rgb);return a&&(a.a=f(a.a)),a}set rgb(a){this._rgb=L(a)}rgbString(){return this._valid?G(this._rgb):void 0}hexString(){return this._valid?n(this._rgb):void 0}hslString(){return this._valid?A(this._rgb):void 0}mix(a,b){if(a){let c,d=this.rgb,e=a.rgb,f=b===c?.5:b,g=2*f-1,h=d.a-e.a,i=((g*h==-1?g:(g+h)/(1+g*h))+1)/2;c=1-i,d.r=255&i*d.r+c*e.r+.5,d.g=255&i*d.g+c*e.g+.5,d.b=255&i*d.b+c*e.b+.5,d.a=f*d.a+(1-f)*e.a,this.rgb=d}return this}interpolate(a,b){var c,d;let g,h,i;return a&&(this._rgb=(c=this._rgb,d=a._rgb,g=I(f(c.r)),h=I(f(c.g)),i=I(f(c.b)),{r:e(H(g+b*(I(f(d.r))-g))),g:e(H(h+b*(I(f(d.g))-h))),b:e(H(i+b*(I(f(d.b))-i))),a:c.a+b*(d.a-c.a)})),this}clone(){return new M(this.rgb)}alpha(a){return this._rgb.a=e(a),this}clearer(a){let b=this._rgb;return b.a*=1-a,this}greyscale(){let a=this._rgb,c=b(.3*a.r+.59*a.g+.11*a.b);return a.r=a.g=a.b=c,this}opaquer(a){let b=this._rgb;return b.a*=1+a,this}negate(){let a=this._rgb;return a.r=255-a.r,a.g=255-a.g,a.b=255-a.b,this}lighten(a){return J(this._rgb,2,a),this}darken(a){return J(this._rgb,2,-a),this}saturate(a){return J(this._rgb,1,a),this}desaturate(a){return J(this._rgb,1,-a),this}rotate(a){return z(this._rgb,a),this}}function N(a){return new M(a)}var O=Object.freeze({__proto__:null,Color:M,b2n:f,b2p:function(a){return c(b(a/2.55),0,100)},default:N,hexParse:m,hexString:n,hsl2rgb:u,hslString:A,hsv2rgb:w,hueParse:y,hwb2rgb:v,lim:c,n2b:e,n2p:g,nameParse:D,p2b:d,rgb2hsl:s,rgbParse:F,rgbString:G,rotate:z,round:b});return Object.assign(N,O)}()},46210:a=>{"use strict";a.exports=function(a,b,c,d){for(var e=65535&a,f=a>>>16&65535,g=0;0!==c;){g=c>2e3?2e3:c,c-=g;do f=f+(e=e+b[d++]|0)|0;while(--g);e%=65521,f%=65521}return e|f<<16}},49179:(a,b,c)=>{"use strict";for(var d=c(60731),e=c(44581),f=c(14190),g=c(60852),h=Array(256),i=0;i<256;i++)h[i]=i>=252?6:i>=248?5:i>=240?4:i>=224?3:i>=192?2:1;h[254]=h[254]=1;var j=function(a){var b,c,d,f,g,h=a.length,i=0;for(f=0;f<h;f++)(64512&(c=a.charCodeAt(f)))==55296&&f+1<h&&(64512&(d=a.charCodeAt(f+1)))==56320&&(c=65536+(c-55296<<10)+(d-56320),f++),i+=c<128?1:c<2048?2:c<65536?3:4;for(g=0,b=e.uint8array?new Uint8Array(i):Array(i),f=0;g<i;f++)(64512&(c=a.charCodeAt(f)))==55296&&f+1<h&&(64512&(d=a.charCodeAt(f+1)))==56320&&(c=65536+(c-55296<<10)+(d-56320),f++),c<128?b[g++]=c:(c<2048?b[g++]=192|c>>>6:(c<65536?b[g++]=224|c>>>12:(b[g++]=240|c>>>18,b[g++]=128|c>>>12&63),b[g++]=128|c>>>6&63),b[g++]=128|63&c);return b},k=function(a,b){var c;for((b=b||a.length)>a.length&&(b=a.length),c=b-1;c>=0&&(192&a[c])==128;)c--;return c<0||0===c?b:c+h[a[c]]>b?c:b},l=function(a){var b,c,e,f,g=a.length,i=Array(2*g);for(c=0,b=0;b<g;){if((e=a[b++])<128){i[c++]=e;continue}if((f=h[e])>4){i[c++]=65533,b+=f-1;continue}for(e&=2===f?31:3===f?15:7;f>1&&b<g;)e=e<<6|63&a[b++],f--;if(f>1){i[c++]=65533;continue}e<65536?i[c++]=e:(e-=65536,i[c++]=55296|e>>10&1023,i[c++]=56320|1023&e)}return i.length!==c&&(i.subarray?i=i.subarray(0,c):i.length=c),d.applyFromCharCode(i)};function m(){g.call(this,"utf-8 decode"),this.leftOver=null}function n(){g.call(this,"utf-8 encode")}b.utf8encode=function(a){return e.nodebuffer?f.newBufferFrom(a,"utf-8"):j(a)},b.utf8decode=function(a){return e.nodebuffer?d.transformTo("nodebuffer",a).toString("utf-8"):l(a=d.transformTo(e.uint8array?"uint8array":"array",a))},d.inherits(m,g),m.prototype.processChunk=function(a){var c=d.transformTo(e.uint8array?"uint8array":"array",a.data);if(this.leftOver&&this.leftOver.length){if(e.uint8array){var f=c;(c=new Uint8Array(f.length+this.leftOver.length)).set(this.leftOver,0),c.set(f,this.leftOver.length)}else c=this.leftOver.concat(c);this.leftOver=null}var g=k(c),h=c;g!==c.length&&(e.uint8array?(h=c.subarray(0,g),this.leftOver=c.subarray(g,c.length)):(h=c.slice(0,g),this.leftOver=c.slice(g,c.length))),this.push({data:b.utf8decode(h),meta:a.meta})},m.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:b.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},b.Utf8DecodeWorker=m,d.inherits(n,g),n.prototype.processChunk=function(a){this.push({data:b.utf8encode(a.data),meta:a.meta})},b.Utf8EncodeWorker=n},53102:(a,b)=>{"use strict";b.base64=!1,b.binary=!1,b.dir=!1,b.createFolders=!0,b.date=null,b.compression=null,b.compressionOptions=null,b.comment=null,b.unixPermissions=null,b.dosPermissions=null},53303:(a,b,c)=>{"use strict";var d=c(49179),e=c(60731),f=c(60852),g=c(54539),h=c(53102),i=c(34574),j=c(55730),k=c(60776),l=c(14190),m=c(28166),n=function(a,b,c){var d,g=e.getTypeOf(b),k=e.extend(c||{},h);k.date=k.date||new Date,null!==k.compression&&(k.compression=k.compression.toUpperCase()),"string"==typeof k.unixPermissions&&(k.unixPermissions=parseInt(k.unixPermissions,8)),k.unixPermissions&&16384&k.unixPermissions&&(k.dir=!0),k.dosPermissions&&16&k.dosPermissions&&(k.dir=!0),k.dir&&(a=p(a)),k.createFolders&&(d=o(a))&&q.call(this,d,!0);var n="string"===g&&!1===k.binary&&!1===k.base64;c&&void 0!==c.binary||(k.binary=!n),(b instanceof i&&0===b.uncompressedSize||k.dir||!b||0===b.length)&&(k.base64=!1,k.binary=!0,b="",k.compression="STORE",g="string");var r=null;r=b instanceof i||b instanceof f?b:l.isNode&&l.isStream(b)?new m(a,b):e.prepareContent(a,b,k.binary,k.optimizedBinaryString,k.base64);var s=new j(a,r,k);this.files[a]=s},o=function(a){"/"===a.slice(-1)&&(a=a.substring(0,a.length-1));var b=a.lastIndexOf("/");return b>0?a.substring(0,b):""},p=function(a){return"/"!==a.slice(-1)&&(a+="/"),a},q=function(a,b){return b=void 0!==b?b:h.createFolders,a=p(a),this.files[a]||n.call(this,a,null,{dir:!0,createFolders:b}),this.files[a]};function r(a){return"[object RegExp]"===Object.prototype.toString.call(a)}a.exports={load:function(){throw Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},forEach:function(a){var b,c,d;for(b in this.files)d=this.files[b],(c=b.slice(this.root.length,b.length))&&b.slice(0,this.root.length)===this.root&&a(c,d)},filter:function(a){var b=[];return this.forEach(function(c,d){a(c,d)&&b.push(d)}),b},file:function(a,b,c){if(1==arguments.length)if(r(a)){var d=a;return this.filter(function(a,b){return!b.dir&&d.test(a)})}else{var e=this.files[this.root+a];return e&&!e.dir?e:null}return a=this.root+a,n.call(this,a,b,c),this},folder:function(a){if(!a)return this;if(r(a))return this.filter(function(b,c){return c.dir&&a.test(b)});var b=this.root+a,c=q.call(this,b),d=this.clone();return d.root=c.name,d},remove:function(a){a=this.root+a;var b=this.files[a];if(b||("/"!==a.slice(-1)&&(a+="/"),b=this.files[a]),b&&!b.dir)delete this.files[a];else for(var c=this.filter(function(b,c){return c.name.slice(0,a.length)===a}),d=0;d<c.length;d++)delete this.files[c[d].name];return this},generate:function(){throw Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},generateInternalStream:function(a){var b,c={};try{if((c=e.extend(a||{},{streamFiles:!1,compression:"STORE",compressionOptions:null,type:"",platform:"DOS",comment:null,mimeType:"application/zip",encodeFileName:d.utf8encode})).type=c.type.toLowerCase(),c.compression=c.compression.toUpperCase(),"binarystring"===c.type&&(c.type="string"),!c.type)throw Error("No output type specified.");e.checkSupport(c.type),("darwin"===c.platform||"freebsd"===c.platform||"linux"===c.platform||"sunos"===c.platform)&&(c.platform="UNIX"),"win32"===c.platform&&(c.platform="DOS");var h=c.comment||this.comment||"";b=k.generateWorker(this,c,h)}catch(a){(b=new f("error")).error(a)}return new g(b,c.type||"string",c.mimeType)},generateAsync:function(a,b){return this.generateInternalStream(a).accumulate(b)},generateNodeStream:function(a,b){return(a=a||{}).type||(a.type="nodebuffer"),this.generateInternalStream(a).toNodejsStream(b)}}},54539:(a,b,c)=>{"use strict";var d=c(60731),e=c(58),f=c(60852),g=c(73987),h=c(44581),i=c(95951),j=null;if(h.nodestream)try{j=c(65753)}catch(a){}function k(a,b,c){var g=b;switch(b){case"blob":case"arraybuffer":g="uint8array";break;case"base64":g="string"}try{this._internalType=g,this._outputType=b,this._mimeType=c,d.checkSupport(g),this._worker=a.pipe(new e(g)),a.lock()}catch(a){this._worker=new f("error"),this._worker.error(a)}}k.prototype={accumulate:function(a){var b;return b=this,new i.Promise(function(c,e){var f=[],h=b._internalType,i=b._outputType,j=b._mimeType;b.on("data",function(b,c){f.push(b),a&&a(c)}).on("error",function(a){f=[],e(a)}).on("end",function(){try{var a=function(a,b,c){switch(a){case"blob":return d.newBlob(d.transformTo("arraybuffer",b),c);case"base64":return g.encode(b);default:return d.transformTo(a,b)}}(i,function(a,b){var c,d=0,e=null,f=0;for(c=0;c<b.length;c++)f+=b[c].length;switch(a){case"string":return b.join("");case"array":return Array.prototype.concat.apply([],b);case"uint8array":for(c=0,e=new Uint8Array(f);c<b.length;c++)e.set(b[c],d),d+=b[c].length;return e;case"nodebuffer":return Buffer.concat(b);default:throw Error("concat : unsupported type '"+a+"'")}}(h,f),j);c(a)}catch(a){e(a)}f=[]}).resume()})},on:function(a,b){var c=this;return"data"===a?this._worker.on(a,function(a){b.call(c,a.data,a.meta)}):this._worker.on(a,function(){d.delay(b,arguments,c)}),this},resume:function(){return d.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(a){if(d.checkSupport("nodestream"),"nodebuffer"!==this._outputType)throw Error(this._outputType+" is not supported by this method");return new j(this,{objectMode:"nodebuffer"!==this._outputType},a)}},a.exports=k},55730:(a,b,c)=>{"use strict";var d=c(54539),e=c(71777),f=c(49179),g=c(34574),h=c(60852),i=function(a,b,c){this.name=a,this.dir=c.dir,this.date=c.date,this.comment=c.comment,this.unixPermissions=c.unixPermissions,this.dosPermissions=c.dosPermissions,this._data=b,this._dataBinary=c.binary,this.options={compression:c.compression,compressionOptions:c.compressionOptions}};i.prototype={internalStream:function(a){var b=null,c="string";try{if(!a)throw Error("No output type specified.");c=a.toLowerCase();var e="string"===c||"text"===c;("binarystring"===c||"text"===c)&&(c="string"),b=this._decompressWorker();var g=!this._dataBinary;g&&!e&&(b=b.pipe(new f.Utf8EncodeWorker)),!g&&e&&(b=b.pipe(new f.Utf8DecodeWorker))}catch(a){(b=new h("error")).error(a)}return new d(b,c,"")},async:function(a,b){return this.internalStream(a).accumulate(b)},nodeStream:function(a,b){return this.internalStream(a||"nodebuffer").toNodejsStream(b)},_compressWorker:function(a,b){if(this._data instanceof g&&this._data.compression.magic===a.magic)return this._data.getCompressedWorker();var c=this._decompressWorker();return this._dataBinary||(c=c.pipe(new f.Utf8EncodeWorker)),g.createWorkerFrom(c,a,b)},_decompressWorker:function(){return this._data instanceof g?this._data.getContentWorker():this._data instanceof h?this._data:new e(this._data)}};for(var j=["asText","asBinary","asNodeBuffer","asUint8Array","asArrayBuffer"],k=function(){throw Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},l=0;l<j.length;l++)i.prototype[j[l]]=k;a.exports=i},55927:(a,b,c)=>{"use strict";var d=c(11648),e=Object.keys||function(a){var b=[];for(var c in a)b.push(c);return b};a.exports=l;var f=Object.create(c(3085));f.inherits=c(2862);var g=c(85641),h=c(38441);f.inherits(l,g);for(var i=e(h.prototype),j=0;j<i.length;j++){var k=i[j];l.prototype[k]||(l.prototype[k]=h.prototype[k])}function l(a){if(!(this instanceof l))return new l(a);g.call(this,a),h.call(this,a),a&&!1===a.readable&&(this.readable=!1),a&&!1===a.writable&&(this.writable=!1),this.allowHalfOpen=!0,a&&!1===a.allowHalfOpen&&(this.allowHalfOpen=!1),this.once("end",m)}function m(){this.allowHalfOpen||this._writableState.ended||d.nextTick(n,this)}function n(a){a.end()}Object.defineProperty(l.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(l.prototype,"destroyed",{get:function(){return void 0!==this._readableState&&void 0!==this._writableState&&this._readableState.destroyed&&this._writableState.destroyed},set:function(a){void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed=a,this._writableState.destroyed=a)}}),l.prototype._destroy=function(a,b){this.push(null),this.end(),d.nextTick(b,a)}},59056:(a,b,c)=>{"use strict";var d,e,f=c(31242),g=c(46210),h=c(19840),i=c(18190),j=c(35051);function k(a){return(a>>>24&255)+(a>>>8&65280)+((65280&a)<<8)+((255&a)<<24)}function l(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new f.Buf16(320),this.work=new f.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function m(a){var b;return a&&a.state?(b=a.state,a.total_in=a.total_out=b.total=0,a.msg="",b.wrap&&(a.adler=1&b.wrap),b.mode=1,b.last=0,b.havedict=0,b.dmax=32768,b.head=null,b.hold=0,b.bits=0,b.lencode=b.lendyn=new f.Buf32(852),b.distcode=b.distdyn=new f.Buf32(592),b.sane=1,b.back=-1,0):-2}function n(a){var b;return a&&a.state?((b=a.state).wsize=0,b.whave=0,b.wnext=0,m(a)):-2}function o(a,b){var c,d;return a&&a.state?(d=a.state,b<0?(c=0,b=-b):(c=(b>>4)+1,b<48&&(b&=15)),b&&(b<8||b>15))?-2:(null!==d.window&&d.wbits!==b&&(d.window=null),d.wrap=c,d.wbits=b,n(a)):-2}function p(a,b){var c,d;return a?(a.state=d=new l,d.window=null,0!==(c=o(a,b))&&(a.state=null),c):-2}var q=!0;function r(a,b,c,d){var e,g=a.state;return null===g.window&&(g.wsize=1<<g.wbits,g.wnext=0,g.whave=0,g.window=new f.Buf8(g.wsize)),d>=g.wsize?(f.arraySet(g.window,b,c-g.wsize,g.wsize,0),g.wnext=0,g.whave=g.wsize):((e=g.wsize-g.wnext)>d&&(e=d),f.arraySet(g.window,b,c-d,e,g.wnext),(d-=e)?(f.arraySet(g.window,b,c-d,d,0),g.wnext=d,g.whave=g.wsize):(g.wnext+=e,g.wnext===g.wsize&&(g.wnext=0),g.whave<g.wsize&&(g.whave+=e))),0}b.inflateReset=n,b.inflateReset2=o,b.inflateResetKeep=m,b.inflateInit=function(a){return p(a,15)},b.inflateInit2=p,b.inflate=function(a,b){var c,l,m,n,o,p,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K=0,L=new f.Buf8(4),M=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!a||!a.state||!a.output||!a.input&&0!==a.avail_in)return -2;12===(c=a.state).mode&&(c.mode=13),o=a.next_out,m=a.output,s=a.avail_out,n=a.next_in,l=a.input,p=a.avail_in,t=c.hold,u=c.bits,v=p,w=s,H=0;b:for(;;)switch(c.mode){case 1:if(0===c.wrap){c.mode=13;break}for(;u<16;){if(0===p)break b;p--,t+=l[n++]<<u,u+=8}if(2&c.wrap&&35615===t){c.check=0,L[0]=255&t,L[1]=t>>>8&255,c.check=h(c.check,L,2,0),t=0,u=0,c.mode=2;break}if(c.flags=0,c.head&&(c.head.done=!1),!(1&c.wrap)||(((255&t)<<8)+(t>>8))%31){a.msg="incorrect header check",c.mode=30;break}if((15&t)!=8){a.msg="unknown compression method",c.mode=30;break}if(t>>>=4,u-=4,G=(15&t)+8,0===c.wbits)c.wbits=G;else if(G>c.wbits){a.msg="invalid window size",c.mode=30;break}c.dmax=1<<G,a.adler=c.check=1,c.mode=512&t?10:12,t=0,u=0;break;case 2:for(;u<16;){if(0===p)break b;p--,t+=l[n++]<<u,u+=8}if(c.flags=t,(255&c.flags)!=8){a.msg="unknown compression method",c.mode=30;break}if(57344&c.flags){a.msg="unknown header flags set",c.mode=30;break}c.head&&(c.head.text=t>>8&1),512&c.flags&&(L[0]=255&t,L[1]=t>>>8&255,c.check=h(c.check,L,2,0)),t=0,u=0,c.mode=3;case 3:for(;u<32;){if(0===p)break b;p--,t+=l[n++]<<u,u+=8}c.head&&(c.head.time=t),512&c.flags&&(L[0]=255&t,L[1]=t>>>8&255,L[2]=t>>>16&255,L[3]=t>>>24&255,c.check=h(c.check,L,4,0)),t=0,u=0,c.mode=4;case 4:for(;u<16;){if(0===p)break b;p--,t+=l[n++]<<u,u+=8}c.head&&(c.head.xflags=255&t,c.head.os=t>>8),512&c.flags&&(L[0]=255&t,L[1]=t>>>8&255,c.check=h(c.check,L,2,0)),t=0,u=0,c.mode=5;case 5:if(1024&c.flags){for(;u<16;){if(0===p)break b;p--,t+=l[n++]<<u,u+=8}c.length=t,c.head&&(c.head.extra_len=t),512&c.flags&&(L[0]=255&t,L[1]=t>>>8&255,c.check=h(c.check,L,2,0)),t=0,u=0}else c.head&&(c.head.extra=null);c.mode=6;case 6:if(1024&c.flags&&((x=c.length)>p&&(x=p),x&&(c.head&&(G=c.head.extra_len-c.length,c.head.extra||(c.head.extra=Array(c.head.extra_len)),f.arraySet(c.head.extra,l,n,x,G)),512&c.flags&&(c.check=h(c.check,l,x,n)),p-=x,n+=x,c.length-=x),c.length))break b;c.length=0,c.mode=7;case 7:if(2048&c.flags){if(0===p)break b;x=0;do G=l[n+x++],c.head&&G&&c.length<65536&&(c.head.name+=String.fromCharCode(G));while(G&&x<p);if(512&c.flags&&(c.check=h(c.check,l,x,n)),p-=x,n+=x,G)break b}else c.head&&(c.head.name=null);c.length=0,c.mode=8;case 8:if(4096&c.flags){if(0===p)break b;x=0;do G=l[n+x++],c.head&&G&&c.length<65536&&(c.head.comment+=String.fromCharCode(G));while(G&&x<p);if(512&c.flags&&(c.check=h(c.check,l,x,n)),p-=x,n+=x,G)break b}else c.head&&(c.head.comment=null);c.mode=9;case 9:if(512&c.flags){for(;u<16;){if(0===p)break b;p--,t+=l[n++]<<u,u+=8}if(t!==(65535&c.check)){a.msg="header crc mismatch",c.mode=30;break}t=0,u=0}c.head&&(c.head.hcrc=c.flags>>9&1,c.head.done=!0),a.adler=c.check=0,c.mode=12;break;case 10:for(;u<32;){if(0===p)break b;p--,t+=l[n++]<<u,u+=8}a.adler=c.check=k(t),t=0,u=0,c.mode=11;case 11:if(0===c.havedict)return a.next_out=o,a.avail_out=s,a.next_in=n,a.avail_in=p,c.hold=t,c.bits=u,2;a.adler=c.check=1,c.mode=12;case 12:if(5===b||6===b)break b;case 13:if(c.last){t>>>=7&u,u-=7&u,c.mode=27;break}for(;u<3;){if(0===p)break b;p--,t+=l[n++]<<u,u+=8}switch(c.last=1&t,u-=1,3&(t>>>=1)){case 0:c.mode=14;break;case 1:if(!function(a){if(q){var b;for(d=new f.Buf32(512),e=new f.Buf32(32),b=0;b<144;)a.lens[b++]=8;for(;b<256;)a.lens[b++]=9;for(;b<280;)a.lens[b++]=7;for(;b<288;)a.lens[b++]=8;for(j(1,a.lens,0,288,d,0,a.work,{bits:9}),b=0;b<32;)a.lens[b++]=5;j(2,a.lens,0,32,e,0,a.work,{bits:5}),q=!1}a.lencode=d,a.lenbits=9,a.distcode=e,a.distbits=5}(c),c.mode=20,6===b){t>>>=2,u-=2;break b}break;case 2:c.mode=17;break;case 3:a.msg="invalid block type",c.mode=30}t>>>=2,u-=2;break;case 14:for(t>>>=7&u,u-=7&u;u<32;){if(0===p)break b;p--,t+=l[n++]<<u,u+=8}if((65535&t)!=(t>>>16^65535)){a.msg="invalid stored block lengths",c.mode=30;break}if(c.length=65535&t,t=0,u=0,c.mode=15,6===b)break b;case 15:c.mode=16;case 16:if(x=c.length){if(x>p&&(x=p),x>s&&(x=s),0===x)break b;f.arraySet(m,l,n,x,o),p-=x,n+=x,s-=x,o+=x,c.length-=x;break}c.mode=12;break;case 17:for(;u<14;){if(0===p)break b;p--,t+=l[n++]<<u,u+=8}if(c.nlen=(31&t)+257,u-=5,c.ndist=(31&(t>>>=5))+1,u-=5,c.ncode=(15&(t>>>=5))+4,t>>>=4,u-=4,c.nlen>286||c.ndist>30){a.msg="too many length or distance symbols",c.mode=30;break}c.have=0,c.mode=18;case 18:for(;c.have<c.ncode;){for(;u<3;){if(0===p)break b;p--,t+=l[n++]<<u,u+=8}c.lens[M[c.have++]]=7&t,t>>>=3,u-=3}for(;c.have<19;)c.lens[M[c.have++]]=0;if(c.lencode=c.lendyn,c.lenbits=7,I={bits:c.lenbits},H=j(0,c.lens,0,19,c.lencode,0,c.work,I),c.lenbits=I.bits,H){a.msg="invalid code lengths set",c.mode=30;break}c.have=0,c.mode=19;case 19:for(;c.have<c.nlen+c.ndist;){for(;A=(K=c.lencode[t&(1<<c.lenbits)-1])>>>24,B=K>>>16&255,C=65535&K,!(A<=u);){if(0===p)break b;p--,t+=l[n++]<<u,u+=8}if(C<16)t>>>=A,u-=A,c.lens[c.have++]=C;else{if(16===C){for(J=A+2;u<J;){if(0===p)break b;p--,t+=l[n++]<<u,u+=8}if(t>>>=A,u-=A,0===c.have){a.msg="invalid bit length repeat",c.mode=30;break}G=c.lens[c.have-1],x=3+(3&t),t>>>=2,u-=2}else if(17===C){for(J=A+3;u<J;){if(0===p)break b;p--,t+=l[n++]<<u,u+=8}t>>>=A,u-=A,G=0,x=3+(7&t),t>>>=3,u-=3}else{for(J=A+7;u<J;){if(0===p)break b;p--,t+=l[n++]<<u,u+=8}t>>>=A,u-=A,G=0,x=11+(127&t),t>>>=7,u-=7}if(c.have+x>c.nlen+c.ndist){a.msg="invalid bit length repeat",c.mode=30;break}for(;x--;)c.lens[c.have++]=G}}if(30===c.mode)break;if(0===c.lens[256]){a.msg="invalid code -- missing end-of-block",c.mode=30;break}if(c.lenbits=9,I={bits:c.lenbits},H=j(1,c.lens,0,c.nlen,c.lencode,0,c.work,I),c.lenbits=I.bits,H){a.msg="invalid literal/lengths set",c.mode=30;break}if(c.distbits=6,c.distcode=c.distdyn,I={bits:c.distbits},H=j(2,c.lens,c.nlen,c.ndist,c.distcode,0,c.work,I),c.distbits=I.bits,H){a.msg="invalid distances set",c.mode=30;break}if(c.mode=20,6===b)break b;case 20:c.mode=21;case 21:if(p>=6&&s>=258){a.next_out=o,a.avail_out=s,a.next_in=n,a.avail_in=p,c.hold=t,c.bits=u,i(a,w),o=a.next_out,m=a.output,s=a.avail_out,n=a.next_in,l=a.input,p=a.avail_in,t=c.hold,u=c.bits,12===c.mode&&(c.back=-1);break}for(c.back=0;A=(K=c.lencode[t&(1<<c.lenbits)-1])>>>24,B=K>>>16&255,C=65535&K,!(A<=u);){if(0===p)break b;p--,t+=l[n++]<<u,u+=8}if(B&&(240&B)==0){for(D=A,E=B,F=C;A=(K=c.lencode[F+((t&(1<<D+E)-1)>>D)])>>>24,B=K>>>16&255,C=65535&K,!(D+A<=u);){if(0===p)break b;p--,t+=l[n++]<<u,u+=8}t>>>=D,u-=D,c.back+=D}if(t>>>=A,u-=A,c.back+=A,c.length=C,0===B){c.mode=26;break}if(32&B){c.back=-1,c.mode=12;break}if(64&B){a.msg="invalid literal/length code",c.mode=30;break}c.extra=15&B,c.mode=22;case 22:if(c.extra){for(J=c.extra;u<J;){if(0===p)break b;p--,t+=l[n++]<<u,u+=8}c.length+=t&(1<<c.extra)-1,t>>>=c.extra,u-=c.extra,c.back+=c.extra}c.was=c.length,c.mode=23;case 23:for(;A=(K=c.distcode[t&(1<<c.distbits)-1])>>>24,B=K>>>16&255,C=65535&K,!(A<=u);){if(0===p)break b;p--,t+=l[n++]<<u,u+=8}if((240&B)==0){for(D=A,E=B,F=C;A=(K=c.distcode[F+((t&(1<<D+E)-1)>>D)])>>>24,B=K>>>16&255,C=65535&K,!(D+A<=u);){if(0===p)break b;p--,t+=l[n++]<<u,u+=8}t>>>=D,u-=D,c.back+=D}if(t>>>=A,u-=A,c.back+=A,64&B){a.msg="invalid distance code",c.mode=30;break}c.offset=C,c.extra=15&B,c.mode=24;case 24:if(c.extra){for(J=c.extra;u<J;){if(0===p)break b;p--,t+=l[n++]<<u,u+=8}c.offset+=t&(1<<c.extra)-1,t>>>=c.extra,u-=c.extra,c.back+=c.extra}if(c.offset>c.dmax){a.msg="invalid distance too far back",c.mode=30;break}c.mode=25;case 25:if(0===s)break b;if(x=w-s,c.offset>x){if((x=c.offset-x)>c.whave&&c.sane){a.msg="invalid distance too far back",c.mode=30;break}x>c.wnext?(x-=c.wnext,y=c.wsize-x):y=c.wnext-x,x>c.length&&(x=c.length),z=c.window}else z=m,y=o-c.offset,x=c.length;x>s&&(x=s),s-=x,c.length-=x;do m[o++]=z[y++];while(--x);0===c.length&&(c.mode=21);break;case 26:if(0===s)break b;m[o++]=c.length,s--,c.mode=21;break;case 27:if(c.wrap){for(;u<32;){if(0===p)break b;p--,t|=l[n++]<<u,u+=8}if(w-=s,a.total_out+=w,c.total+=w,w&&(a.adler=c.check=c.flags?h(c.check,m,w,o-w):g(c.check,m,w,o-w)),w=s,(c.flags?t:k(t))!==c.check){a.msg="incorrect data check",c.mode=30;break}t=0,u=0}c.mode=28;case 28:if(c.wrap&&c.flags){for(;u<32;){if(0===p)break b;p--,t+=l[n++]<<u,u+=8}if(t!==(0|c.total)){a.msg="incorrect length check",c.mode=30;break}t=0,u=0}c.mode=29;case 29:H=1;break b;case 30:H=-3;break b;case 31:return -4;default:return -2}return(a.next_out=o,a.avail_out=s,a.next_in=n,a.avail_in=p,c.hold=t,c.bits=u,(c.wsize||w!==a.avail_out&&c.mode<30&&(c.mode<27||4!==b))&&r(a,a.output,a.next_out,w-a.avail_out))?(c.mode=31,-4):(v-=a.avail_in,w-=a.avail_out,a.total_in+=v,a.total_out+=w,c.total+=w,c.wrap&&w&&(a.adler=c.check=c.flags?h(c.check,m,w,a.next_out-w):g(c.check,m,w,a.next_out-w)),a.data_type=c.bits+64*!!c.last+128*(12===c.mode)+256*(20===c.mode||15===c.mode),(0===v&&0===w||4===b)&&0===H&&(H=-5),H)},b.inflateEnd=function(a){if(!a||!a.state)return -2;var b=a.state;return b.window&&(b.window=null),a.state=null,0},b.inflateGetHeader=function(a,b){var c;return a&&a.state&&(2&(c=a.state).wrap)!=0?(c.head=b,b.done=!1,0):-2},b.inflateSetDictionary=function(a,b){var c,d=b.length;return a&&a.state&&(0===(c=a.state).wrap||11===c.mode)?11===c.mode&&g(1,b,d,0)!==c.check?-3:r(a,b,d,d)?(c.mode=31,-4):(c.havedict=1,0):-2},b.inflateInfo="pako inflate (from Nodeca project)"},60346:(a,b,c)=>{"use strict";var d=c(60731),e=c(44581),f=c(17366),g=c(93496),h=c(37911),i=c(69168);a.exports=function(a){var b=d.getTypeOf(a);return(d.checkSupport(b),"string"!==b||e.uint8array)?"nodebuffer"===b?new h(a):e.uint8array?new i(d.transformTo("uint8array",a)):new f(d.transformTo("array",a)):new g(a)}},60731:(a,b,c)=>{"use strict";var d=c(44581),e=c(73987),f=c(14190),g=c(95951);function h(a){return a}function i(a,b){for(var c=0;c<a.length;++c)b[c]=255&a.charCodeAt(c);return b}c(37119),b.newBlob=function(a,c){b.checkSupport("blob");try{return new Blob([a],{type:c})}catch(b){try{var d=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);return d.append(a),d.getBlob(c)}catch(a){throw Error("Bug : can't construct the Blob.")}}};var j={stringifyByChunk:function(a,b,c){var d=[],e=0,f=a.length;if(f<=c)return String.fromCharCode.apply(null,a);for(;e<f;)"array"===b||"nodebuffer"===b?d.push(String.fromCharCode.apply(null,a.slice(e,Math.min(e+c,f)))):d.push(String.fromCharCode.apply(null,a.subarray(e,Math.min(e+c,f)))),e+=c;return d.join("")},stringifyByChar:function(a){for(var b="",c=0;c<a.length;c++)b+=String.fromCharCode(a[c]);return b},applyCanBeUsed:{uint8array:function(){try{return d.uint8array&&1===String.fromCharCode.apply(null,new Uint8Array(1)).length}catch(a){return!1}}(),nodebuffer:function(){try{return d.nodebuffer&&1===String.fromCharCode.apply(null,f.allocBuffer(1)).length}catch(a){return!1}}()}};function k(a){var c=65536,d=b.getTypeOf(a),e=!0;if("uint8array"===d?e=j.applyCanBeUsed.uint8array:"nodebuffer"===d&&(e=j.applyCanBeUsed.nodebuffer),e)for(;c>1;)try{return j.stringifyByChunk(a,d,c)}catch(a){c=Math.floor(c/2)}return j.stringifyByChar(a)}function l(a,b){for(var c=0;c<a.length;c++)b[c]=a[c];return b}b.applyFromCharCode=k;var m={};m.string={string:h,array:function(a){return i(a,Array(a.length))},arraybuffer:function(a){return m.string.uint8array(a).buffer},uint8array:function(a){return i(a,new Uint8Array(a.length))},nodebuffer:function(a){return i(a,f.allocBuffer(a.length))}},m.array={string:k,array:h,arraybuffer:function(a){return new Uint8Array(a).buffer},uint8array:function(a){return new Uint8Array(a)},nodebuffer:function(a){return f.newBufferFrom(a)}},m.arraybuffer={string:function(a){return k(new Uint8Array(a))},array:function(a){return l(new Uint8Array(a),Array(a.byteLength))},arraybuffer:h,uint8array:function(a){return new Uint8Array(a)},nodebuffer:function(a){return f.newBufferFrom(new Uint8Array(a))}},m.uint8array={string:k,array:function(a){return l(a,Array(a.length))},arraybuffer:function(a){return a.buffer},uint8array:h,nodebuffer:function(a){return f.newBufferFrom(a)}},m.nodebuffer={string:k,array:function(a){return l(a,Array(a.length))},arraybuffer:function(a){return m.nodebuffer.uint8array(a).buffer},uint8array:function(a){return l(a,new Uint8Array(a.length))},nodebuffer:h},b.transformTo=function(a,c){return(c||(c=""),a)?(b.checkSupport(a),m[b.getTypeOf(c)][a](c)):c},b.resolve=function(a){for(var b=a.split("/"),c=[],d=0;d<b.length;d++){var e=b[d];"."!==e&&(""!==e||0===d||d===b.length-1)&&(".."===e?c.pop():c.push(e))}return c.join("/")},b.getTypeOf=function(a){return"string"==typeof a?"string":"[object Array]"===Object.prototype.toString.call(a)?"array":d.nodebuffer&&f.isBuffer(a)?"nodebuffer":d.uint8array&&a instanceof Uint8Array?"uint8array":d.arraybuffer&&a instanceof ArrayBuffer?"arraybuffer":void 0},b.checkSupport=function(a){if(!d[a.toLowerCase()])throw Error(a+" is not supported by this platform")},b.MAX_VALUE_16BITS=65535,b.MAX_VALUE_32BITS=-1,b.pretty=function(a){var b,c,d="";for(c=0;c<(a||"").length;c++)d+="\\x"+((b=a.charCodeAt(c))<16?"0":"")+b.toString(16).toUpperCase();return d},b.delay=function(a,b,c){setImmediate(function(){a.apply(c||null,b||[])})},b.inherits=function(a,b){var c=function(){};c.prototype=b.prototype,a.prototype=new c},b.extend=function(){var a,b,c={};for(a=0;a<arguments.length;a++)for(b in arguments[a])Object.prototype.hasOwnProperty.call(arguments[a],b)&&void 0===c[b]&&(c[b]=arguments[a][b]);return c},b.prepareContent=function(a,c,f,h,j){return g.Promise.resolve(c).then(function(a){return d.blob&&(a instanceof Blob||-1!==["[object File]","[object Blob]"].indexOf(Object.prototype.toString.call(a)))&&"u">typeof FileReader?new g.Promise(function(b,c){var d=new FileReader;d.onload=function(a){b(a.target.result)},d.onerror=function(a){c(a.target.error)},d.readAsArrayBuffer(a)}):a}).then(function(c){var k,l,m=b.getTypeOf(c);return m?("arraybuffer"===m?c=b.transformTo("uint8array",c):"string"===m&&(j?c=e.decode(c):f&&!0!==h&&(k=c,l=null,l=d.uint8array?new Uint8Array(k.length):Array(k.length),c=i(k,l))),c):g.Promise.reject(Error("Can't read the data of '"+a+"'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?"))})}},60776:(a,b,c)=>{"use strict";var d=c(88191),e=c(69207),f=function(a,b){var c=a||b,e=d[c];if(!e)throw Error(c+" is not a valid compression method !");return e};b.generateWorker=function(a,b,c){var d=new e(b.streamFiles,c,b.platform,b.encodeFileName),g=0;try{a.forEach(function(a,c){g++;var e=f(c.options.compression,b.compression),h=c.options.compressionOptions||b.compressionOptions||{},i=c.dir,j=c.date;c._compressWorker(e,h).withStreamInfo("file",{name:a,dir:i,date:j,comment:c.comment||"",unixPermissions:c.unixPermissions,dosPermissions:c.dosPermissions}).pipe(d)}),d.entriesCount=g}catch(a){d.error(a)}return d}},60852:a=>{"use strict";function b(a){this.name=a||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}b.prototype={push:function(a){this.emit("data",a)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(a){this.emit("error",a)}return!0},error:function(a){return!this.isFinished&&(this.isPaused?this.generatedError=a:(this.isFinished=!0,this.emit("error",a),this.previous&&this.previous.error(a),this.cleanUp()),!0)},on:function(a,b){return this._listeners[a].push(b),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(a,b){if(this._listeners[a])for(var c=0;c<this._listeners[a].length;c++)this._listeners[a][c].call(this,b)},pipe:function(a){return a.registerPrevious(this)},registerPrevious:function(a){if(this.isLocked)throw Error("The stream '"+this+"' has already been used.");this.streamInfo=a.streamInfo,this.mergeStreamInfo(),this.previous=a;var b=this;return a.on("data",function(a){b.processChunk(a)}),a.on("end",function(){b.end()}),a.on("error",function(a){b.error(a)}),this},pause:function(){return!this.isPaused&&!this.isFinished&&(this.isPaused=!0,this.previous&&this.previous.pause(),!0)},resume:function(){if(!this.isPaused||this.isFinished)return!1;this.isPaused=!1;var a=!1;return this.generatedError&&(this.error(this.generatedError),a=!0),this.previous&&this.previous.resume(),!a},flush:function(){},processChunk:function(a){this.push(a)},withStreamInfo:function(a,b){return this.extraStreamInfo[a]=b,this.mergeStreamInfo(),this},mergeStreamInfo:function(){for(var a in this.extraStreamInfo)Object.prototype.hasOwnProperty.call(this.extraStreamInfo,a)&&(this.streamInfo[a]=this.extraStreamInfo[a])},lock:function(){if(this.isLocked)throw Error("The stream '"+this+"' has already been used.");this.isLocked=!0,this.previous&&this.previous.lock()},toString:function(){var a="Worker "+this.name;return this.previous?this.previous+" -> "+a:a}},a.exports=b},61015:a=>{"use strict";a.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}},65212:(a,b,c)=>{"use strict";var d=c(60731),e=c(95951),f=c(49179),g=c(12177),h=c(76440),i=c(14190);a.exports=function(a,b){var c=this;return(b=d.extend(b||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:f.utf8decode}),i.isNode&&i.isStream(a))?e.Promise.reject(Error("JSZip can't accept a stream when loading a zip file.")):d.prepareContent("the loaded zip file",a,!0,b.optimizedBinaryString,b.base64).then(function(a){var c=new g(b);return c.load(a),c}).then(function(a){var c=[e.Promise.resolve(a)],d=a.files;if(b.checkCRC32)for(var f=0;f<d.length;f++)c.push(function(a){return new e.Promise(function(b,c){var d=a.decompressed.getContentWorker().pipe(new h);d.on("error",function(a){c(a)}).on("end",function(){d.streamInfo.crc32!==a.decompressed.crc32?c(Error("Corrupted zip : CRC32 mismatch")):b()}).resume()})}(d[f]));return e.Promise.all(c)}).then(function(a){for(var e=a.shift(),f=e.files,g=0;g<f.length;g++){var h=f[g],i=h.fileNameStr,j=d.resolve(h.fileNameStr);c.file(j,h.decompressed,{binary:!0,optimizedBinaryString:!0,date:h.date,dir:h.dir,comment:h.fileCommentStr.length?h.fileCommentStr:null,unixPermissions:h.unixPermissions,dosPermissions:h.dosPermissions,createFolders:b.createFolders}),h.dir||(c.file(j).unsafeOriginalName=i)}return e.zipComment.length&&(c.comment=e.zipComment),c})}},65753:(a,b,c)=>{"use strict";var d=c(16107).Readable;function e(a,b,c){d.call(this,b),this._helper=a;var e=this;a.on("data",function(a,b){e.push(a)||e._helper.pause(),c&&c(b)}).on("error",function(a){e.emit("error",a)}).on("end",function(){e.push(null)})}c(60731).inherits(e,d),e.prototype._read=function(){this._helper.resume()},a.exports=e},69168:(a,b,c)=>{"use strict";var d=c(17366);function e(a){d.call(this,a)}c(60731).inherits(e,d),e.prototype.readData=function(a){if(this.checkOffset(a),0===a)return new Uint8Array(0);var b=this.data.subarray(this.zero+this.index,this.zero+this.index+a);return this.index+=a,b},a.exports=e},69207:(a,b,c)=>{"use strict";var d=c(60731),e=c(60852),f=c(49179),g=c(26121),h=c(73328),i=function(a,b){var c,d="";for(c=0;c<b;c++)d+=String.fromCharCode(255&a),a>>>=8;return d},j=function(a,b){var c=a;return a||(c=b?16893:33204),(65535&c)<<16},k=function(a,b,c,e,k,l){var m,n,o=a.file,p=a.compression,q=l!==f.utf8encode,r=d.transformTo("string",l(o.name)),s=d.transformTo("string",f.utf8encode(o.name)),t=o.comment,u=d.transformTo("string",l(t)),v=d.transformTo("string",f.utf8encode(t)),w=s.length!==o.name.length,x=v.length!==t.length,y="",z="",A="",B=o.dir,C=o.date,D={crc32:0,compressedSize:0,uncompressedSize:0};(!b||c)&&(D.crc32=a.crc32,D.compressedSize=a.compressedSize,D.uncompressedSize=a.uncompressedSize);var E=0;b&&(E|=8),!q&&(w||x)&&(E|=2048);var F=0,G=0;(B&&(F|=16),"UNIX"===k)?(G=798,F|=j(o.unixPermissions,B)):(G=20,F|=63&(o.dosPermissions||0)),m=(C.getUTCHours()<<6|C.getUTCMinutes())<<5|C.getUTCSeconds()/2,n=(C.getUTCFullYear()-1980<<4|C.getUTCMonth()+1)<<5|C.getUTCDate(),w&&(z=i(1,1)+i(g(r),4)+s,y+="up"+i(z.length,2)+z),x&&(A=i(1,1)+i(g(u),4)+v,y+="uc"+i(A.length,2)+A);var H="";return H+="\n\0",H+=i(E,2),H+=p.magic,H+=i(m,2),H+=i(n,2),H+=i(D.crc32,4),H+=i(D.compressedSize,4),H+=i(D.uncompressedSize,4),H+=i(r.length,2),H+=i(y.length,2),{fileRecord:h.LOCAL_FILE_HEADER+H+r+y,dirRecord:h.CENTRAL_FILE_HEADER+i(G,2)+H+i(u.length,2)+"\0\0\0\0"+i(F,4)+i(e,4)+r+y+u}},l=function(a,b,c,e,f){var g=d.transformTo("string",f(e));return h.CENTRAL_DIRECTORY_END+"\0\0\0\0"+i(a,2)+i(a,2)+i(b,4)+i(c,4)+i(g.length,2)+g},m=function(a){return h.DATA_DESCRIPTOR+i(a.crc32,4)+i(a.compressedSize,4)+i(a.uncompressedSize,4)};function n(a,b,c,d){e.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=b,this.zipPlatform=c,this.encodeFileName=d,this.streamFiles=a,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}d.inherits(n,e),n.prototype.push=function(a){var b=a.meta.percent||0,c=this.entriesCount,d=this._sources.length;this.accumulate?this.contentBuffer.push(a):(this.bytesWritten+=a.data.length,e.prototype.push.call(this,{data:a.data,meta:{currentFile:this.currentFile,percent:c?(b+100*(c-d-1))/c:100}}))},n.prototype.openedSource=function(a){this.currentSourceOffset=this.bytesWritten,this.currentFile=a.file.name;var b=this.streamFiles&&!a.file.dir;if(b){var c=k(a,b,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:c.fileRecord,meta:{percent:0}})}else this.accumulate=!0},n.prototype.closedSource=function(a){this.accumulate=!1;var b=this.streamFiles&&!a.file.dir,c=k(a,b,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(c.dirRecord),b)this.push({data:m(a),meta:{percent:100}});else for(this.push({data:c.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},n.prototype.flush=function(){for(var a=this.bytesWritten,b=0;b<this.dirRecords.length;b++)this.push({data:this.dirRecords[b],meta:{percent:100}});var c=this.bytesWritten-a,d=l(this.dirRecords.length,c,a,this.zipComment,this.encodeFileName);this.push({data:d,meta:{percent:100}})},n.prototype.prepareNextSource=function(){this.previous=this._sources.shift(),this.openedSource(this.previous.streamInfo),this.isPaused?this.previous.pause():this.previous.resume()},n.prototype.registerPrevious=function(a){this._sources.push(a);var b=this;return a.on("data",function(a){b.processChunk(a)}),a.on("end",function(){b.closedSource(b.previous.streamInfo),b._sources.length?b.prepareNextSource():b.end()}),a.on("error",function(a){b.error(a)}),this},n.prototype.resume=function(){return!!e.prototype.resume.call(this)&&(!this.previous&&this._sources.length?(this.prepareNextSource(),!0):this.previous||this._sources.length||this.generatedError?void 0:(this.end(),!0))},n.prototype.error=function(a){var b=this._sources;if(!e.prototype.error.call(this,a))return!1;for(var c=0;c<b.length;c++)try{b[c].error(a)}catch(a){}return!0},n.prototype.lock=function(){e.prototype.lock.call(this);for(var a=this._sources,b=0;b<a.length;b++)a[b].lock()},a.exports=n},69523:(a,b,c)=>{var d=c(79428),e=d.Buffer;function f(a,b){for(var c in a)b[c]=a[c]}function g(a,b,c){return e(a,b,c)}e.from&&e.alloc&&e.allocUnsafe&&e.allocUnsafeSlow?a.exports=d:(f(d,b),b.Buffer=g),f(e,g),g.from=function(a,b,c){if("number"==typeof a)throw TypeError("Argument must not be a number");return e(a,b,c)},g.alloc=function(a,b,c){if("number"!=typeof a)throw TypeError("Argument must be a number");var d=e(a);return void 0!==b?"string"==typeof c?d.fill(b,c):d.fill(b):d.fill(0),d},g.allocUnsafe=function(a){if("number"!=typeof a)throw TypeError("Argument must be a number");return e(a)},g.allocUnsafeSlow=function(a){if("number"!=typeof a)throw TypeError("Argument must be a number");return d.SlowBuffer(a)}},71777:(a,b,c)=>{"use strict";var d=c(60731),e=c(60852);function f(a){e.call(this,"DataWorker");var b=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,a.then(function(a){b.dataIsReady=!0,b.data=a,b.max=a&&a.length||0,b.type=d.getTypeOf(a),b.isPaused||b._tickAndRepeat()},function(a){b.error(a)})}d.inherits(f,e),f.prototype.cleanUp=function(){e.prototype.cleanUp.call(this),this.data=null},f.prototype.resume=function(){return!!e.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,d.delay(this._tickAndRepeat,[],this)),!0)},f.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(d.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},f.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var a=null,b=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":a=this.data.substring(this.index,b);break;case"uint8array":a=this.data.subarray(this.index,b);break;case"array":case"nodebuffer":a=this.data.slice(this.index,b)}return this.index=b,this.push({data:a,meta:{percent:this.max?this.index/this.max*100:0}})},a.exports=f},72462:a=>{"use strict";a.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},73229:(a,b,c)=>{"use strict";var d=c(11648);function e(a,b){a.emit("error",b)}a.exports={destroy:function(a,b){var c=this,f=this._readableState&&this._readableState.destroyed,g=this._writableState&&this._writableState.destroyed;return f||g?b?b(a):a&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,d.nextTick(e,this,a)):d.nextTick(e,this,a)):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(a||null,function(a){!b&&a?c._writableState?c._writableState.errorEmitted||(c._writableState.errorEmitted=!0,d.nextTick(e,c,a)):d.nextTick(e,c,a):b&&b(a)})),this},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},73328:(a,b)=>{"use strict";b.LOCAL_FILE_HEADER="PK\x03\x04",b.CENTRAL_FILE_HEADER="PK\x01\x02",b.CENTRAL_DIRECTORY_END="PK\x05\x06",b.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x06\x07",b.ZIP64_CENTRAL_DIRECTORY_END="PK\x06\x06",b.DATA_DESCRIPTOR="PK\x07\b"},73987:(a,b,c)=>{"use strict";var d=c(60731),e=c(44581),f="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";b.encode=function(a){for(var b,c,e,g,h,i,j,k=[],l=0,m=a.length,n=m,o="string"!==d.getTypeOf(a);l<a.length;)n=m-l,o?(b=a[l++],c=l<m?a[l++]:0,e=l<m?a[l++]:0):(b=a.charCodeAt(l++),c=l<m?a.charCodeAt(l++):0,e=l<m?a.charCodeAt(l++):0),g=b>>2,h=(3&b)<<4|c>>4,i=n>1?(15&c)<<2|e>>6:64,j=n>2?63&e:64,k.push(f.charAt(g)+f.charAt(h)+f.charAt(i)+f.charAt(j));return k.join("")},b.decode=function(a){var b,c,d,g,h,i,j,k,l=0,m=0,n="data:";if(a.substr(0,n.length)===n)throw Error("Invalid base64 input, it looks like a data url.");var o=3*(a=a.replace(/[^A-Za-z0-9+/=]/g,"")).length/4;if(a.charAt(a.length-1)===f.charAt(64)&&o--,a.charAt(a.length-2)===f.charAt(64)&&o--,o%1!=0)throw Error("Invalid base64 input, bad content length.");for(k=e.uint8array?new Uint8Array(0|o):Array(0|o);l<a.length;)g=f.indexOf(a.charAt(l++)),h=f.indexOf(a.charAt(l++)),i=f.indexOf(a.charAt(l++)),j=f.indexOf(a.charAt(l++)),b=g<<2|h>>4,c=(15&h)<<4|i>>2,d=(3&i)<<6|j,k[m++]=b,64!==i&&(k[m++]=c),64!==j&&(k[m++]=d);return k}},75723:(a,b,c)=>{a.exports=c(27910)},76440:(a,b,c)=>{"use strict";var d=c(60852),e=c(26121);function f(){d.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}c(60731).inherits(f,d),f.prototype.processChunk=function(a){this.streamInfo.crc32=e(a.data,this.streamInfo.crc32||0),this.push(a)},a.exports=f},77433:(a,b,c)=>{"use strict";let d,e,f;function g(a){return a+.5|0}c.d(b,{PPTXViewer:()=>fp});let h=(a,b,c)=>Math.max(Math.min(a,c),b);function i(a){return h(g(2.55*a),0,255)}function j(a){return h(g(255*a),0,255)}function k(a){return h(g(a/2.55)/100,0,1)}function l(a){return h(g(100*a),0,100)}let m={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},n=[..."0123456789ABCDEF"],o=a=>n[15&a],p=a=>n[(240&a)>>4]+n[15&a],q=a=>(240&a)>>4==(15&a),r=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function s(a,b,c){let d=b*Math.min(c,1-c),e=(b,e=(b+a/30)%12)=>c-d*Math.max(Math.min(e-3,9-e,1),-1);return[e(0),e(8),e(4)]}function t(a,b,c){let d=(d,e=(d+a/60)%6)=>c-c*b*Math.max(Math.min(e,4-e,1),0);return[d(5),d(3),d(1)]}function u(a,b,c){let d,e=s(a,1,.5);for(b+c>1&&(d=1/(b+c),b*=d,c*=d),d=0;d<3;d++)e[d]*=1-b-c,e[d]+=b;return e}function v(a){let b,c,d,e=a.r/255,f=a.g/255,g=a.b/255,h=Math.max(e,f,g),i=Math.min(e,f,g),j=(h+i)/2;h!==i&&(d=h-i,c=j>.5?d/(2-h-i):d/(h+i),b=60*(b=e===h?(f-g)/d+6*(f<g):f===h?(g-e)/d+2:(e-f)/d+4)+.5);return[0|b,c||0,j]}function w(a,b,c,d){return(Array.isArray(b)?a(b[0],b[1],b[2]):a(b,c,d)).map(j)}function x(a){return(a%360+360)%360}let y={x:"dark",Z:"light",Y:"re",X:"blu",W:"gr",V:"medium",U:"slate",A:"ee",T:"ol",S:"or",B:"ra",C:"lateg",D:"ights",R:"in",Q:"turquois",E:"hi",P:"ro",O:"al",N:"le",M:"de",L:"yello",F:"en",K:"ch",G:"arks",H:"ea",I:"ightg",J:"wh"},z={OiceXe:"f0f8ff",antiquewEte:"faebd7",aqua:"ffff",aquamarRe:"7fffd4",azuY:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"0",blanKedOmond:"ffebcd",Xe:"ff",XeviTet:"8a2be2",bPwn:"a52a2a",burlywood:"deb887",caMtXe:"5f9ea0",KartYuse:"7fff00",KocTate:"d2691e",cSO:"ff7f50",cSnflowerXe:"6495ed",cSnsilk:"fff8dc",crimson:"dc143c",cyan:"ffff",xXe:"8b",xcyan:"8b8b",xgTMnPd:"b8860b",xWay:"a9a9a9",xgYF:"6400",xgYy:"a9a9a9",xkhaki:"bdb76b",xmagFta:"8b008b",xTivegYF:"556b2f",xSange:"ff8c00",xScEd:"9932cc",xYd:"8b0000",xsOmon:"e9967a",xsHgYF:"8fbc8f",xUXe:"483d8b",xUWay:"2f4f4f",xUgYy:"2f4f4f",xQe:"ced1",xviTet:"9400d3",dAppRk:"ff1493",dApskyXe:"bfff",dimWay:"696969",dimgYy:"696969",dodgerXe:"1e90ff",fiYbrick:"b22222",flSOwEte:"fffaf0",foYstWAn:"228b22",fuKsia:"ff00ff",gaRsbSo:"dcdcdc",ghostwEte:"f8f8ff",gTd:"ffd700",gTMnPd:"daa520",Way:"808080",gYF:"8000",gYFLw:"adff2f",gYy:"808080",honeyMw:"f0fff0",hotpRk:"ff69b4",RdianYd:"cd5c5c",Rdigo:"4b0082",ivSy:"fffff0",khaki:"f0e68c",lavFMr:"e6e6fa",lavFMrXsh:"fff0f5",lawngYF:"7cfc00",NmoncEffon:"fffacd",ZXe:"add8e6",ZcSO:"f08080",Zcyan:"e0ffff",ZgTMnPdLw:"fafad2",ZWay:"d3d3d3",ZgYF:"90ee90",ZgYy:"d3d3d3",ZpRk:"ffb6c1",ZsOmon:"ffa07a",ZsHgYF:"20b2aa",ZskyXe:"87cefa",ZUWay:"778899",ZUgYy:"778899",ZstAlXe:"b0c4de",ZLw:"ffffe0",lime:"ff00",limegYF:"32cd32",lRF:"faf0e6",magFta:"ff00ff",maPon:"800000",VaquamarRe:"66cdaa",VXe:"cd",VScEd:"ba55d3",VpurpN:"9370db",VsHgYF:"3cb371",VUXe:"7b68ee",VsprRggYF:"fa9a",VQe:"48d1cc",VviTetYd:"c71585",midnightXe:"191970",mRtcYam:"f5fffa",mistyPse:"ffe4e1",moccasR:"ffe4b5",navajowEte:"ffdead",navy:"80",Tdlace:"fdf5e6",Tive:"808000",TivedBb:"6b8e23",Sange:"ffa500",SangeYd:"ff4500",ScEd:"da70d6",pOegTMnPd:"eee8aa",pOegYF:"98fb98",pOeQe:"afeeee",pOeviTetYd:"db7093",papayawEp:"ffefd5",pHKpuff:"ffdab9",peru:"cd853f",pRk:"ffc0cb",plum:"dda0dd",powMrXe:"b0e0e6",purpN:"800080",YbeccapurpN:"663399",Yd:"ff0000",Psybrown:"bc8f8f",PyOXe:"4169e1",saddNbPwn:"8b4513",sOmon:"fa8072",sandybPwn:"f4a460",sHgYF:"2e8b57",sHshell:"fff5ee",siFna:"a0522d",silver:"c0c0c0",skyXe:"87ceeb",UXe:"6a5acd",UWay:"708090",UgYy:"708090",snow:"fffafa",sprRggYF:"ff7f",stAlXe:"4682b4",tan:"d2b48c",teO:"8080",tEstN:"d8bfd8",tomato:"ff6347",Qe:"40e0d0",viTet:"ee82ee",JHt:"f5deb3",wEte:"ffffff",wEtesmoke:"f5f5f5",Lw:"ffff00",LwgYF:"9acd32"},A=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/,B=a=>a<=.0031308?12.92*a:1.055*Math.pow(a,1/2.4)-.055,C=a=>a<=.04045?a/12.92:Math.pow((a+.055)/1.055,2.4);function D(a,b,c){if(a){let d=v(a);d[b]=Math.max(0,Math.min(d[b]+d[b]*c,0===b?360:1)),a.r=(d=w(s,d,void 0,void 0))[0],a.g=d[1],a.b=d[2]}}function E(a,b){return a?Object.assign(b||{},a):a}function F(a){var b={r:0,g:0,b:0,a:255};return Array.isArray(a)?a.length>=3&&(b={r:a[0],g:a[1],b:a[2],a:255},a.length>3&&(b.a=j(a[3]))):(b=E(a,{r:0,g:0,b:0,a:1})).a=j(b.a),b}class G{constructor(a){let b;if(a instanceof G)return a;const c=typeof a;"object"===c?b=F(a):"string"===c&&(b=function(a){var b,c=a.length;return"#"===a[0]&&(4===c||5===c?b={r:255&17*m[a[1]],g:255&17*m[a[2]],b:255&17*m[a[3]],a:5===c?17*m[a[4]]:255}:(7===c||9===c)&&(b={r:m[a[1]]<<4|m[a[2]],g:m[a[3]]<<4|m[a[4]],b:m[a[5]]<<4|m[a[6]],a:9===c?m[a[7]]<<4|m[a[8]]:255})),b}(a)||function(a){d||((d=function(){let a,b,c,d,e,f={},g=Object.keys(z),h=Object.keys(y);for(a=0;a<g.length;a++){for(b=0,d=e=g[a];b<h.length;b++)c=h[b],e=e.replace(c,y[c]);c=parseInt(z[d],16),f[e]=[c>>16&255,c>>8&255,255&c]}return f}()).transparent=[0,0,0,0]);let b=d[a.toLowerCase()];return b&&{r:b[0],g:b[1],b:b[2],a:4===b.length?b[3]:255}}(a)||function(a){return"r"===a.charAt(0)?function(a){let b,c,d,e=A.exec(a),f=255;if(e){if(e[7]!==b){let a=+e[7];f=e[8]?i(a):h(255*a,0,255)}return b=+e[1],c=+e[3],d=+e[5],b=255&(e[2]?i(b):h(b,0,255)),{r:b,g:c=255&(e[4]?i(c):h(c,0,255)),b:d=255&(e[6]?i(d):h(d,0,255)),a:f}}}(a):function(a){let b,c=r.exec(a),d=255;if(!c)return;c[5]!==b&&(d=c[6]?i(+c[5]):j(+c[5]));let e=x(+c[2]),f=c[3]/100,g=c[4]/100;return{r:(b="hwb"===c[1]?w(u,e,f,g):"hsv"===c[1]?w(t,e,f,g):w(s,e,f,g))[0],g:b[1],b:b[2],a:d}}(a)}(a)),this._rgb=b,this._valid=!!b}get valid(){return this._valid}get rgb(){var a=E(this._rgb);return a&&(a.a=k(a.a)),a}set rgb(a){this._rgb=F(a)}rgbString(){var a;return this._valid?(a=this._rgb)&&(a.a<255?`rgba(${a.r}, ${a.g}, ${a.b}, ${k(a.a)})`:`rgb(${a.r}, ${a.g}, ${a.b})`):void 0}hexString(){var a,b;let c,d;return this._valid?(b=q((c=a=this._rgb).r)&&q(c.g)&&q(c.b)&&q(c.a)?o:p,a?"#"+b(a.r)+b(a.g)+b(a.b)+(d=a.a,d<255?b(d):""):void 0):void 0}hslString(){return this._valid?function(a){if(!a)return;let b=v(a),c=b[0],d=l(b[1]),e=l(b[2]);return a.a<255?`hsla(${c}, ${d}%, ${e}%, ${k(a.a)})`:`hsl(${c}, ${d}%, ${e}%)`}(this._rgb):void 0}mix(a,b){if(a){let c,d=this.rgb,e=a.rgb,f=b===c?.5:b,g=2*f-1,h=d.a-e.a,i=((g*h==-1?g:(g+h)/(1+g*h))+1)/2;c=1-i,d.r=255&i*d.r+c*e.r+.5,d.g=255&i*d.g+c*e.g+.5,d.b=255&i*d.b+c*e.b+.5,d.a=f*d.a+(1-f)*e.a,this.rgb=d}return this}interpolate(a,b){var c,d;let e,f,g;return a&&(this._rgb=(c=this._rgb,d=a._rgb,e=C(k(c.r)),f=C(k(c.g)),g=C(k(c.b)),{r:j(B(e+b*(C(k(d.r))-e))),g:j(B(f+b*(C(k(d.g))-f))),b:j(B(g+b*(C(k(d.b))-g))),a:c.a+b*(d.a-c.a)})),this}clone(){return new G(this.rgb)}alpha(a){return this._rgb.a=j(a),this}clearer(a){let b=this._rgb;return b.a*=1-a,this}greyscale(){let a=this._rgb,b=g(.3*a.r+.59*a.g+.11*a.b);return a.r=a.g=a.b=b,this}opaquer(a){let b=this._rgb;return b.a*=1+a,this}negate(){let a=this._rgb;return a.r=255-a.r,a.g=255-a.g,a.b=255-a.b,this}lighten(a){return D(this._rgb,2,a),this}darken(a){return D(this._rgb,2,-a),this}saturate(a){return D(this._rgb,1,a),this}desaturate(a){return D(this._rgb,1,-a),this}rotate(a){var b=this._rgb,c=v(b);return c[0]=x(c[0]+a),b.r=(c=w(s,c,void 0,void 0))[0],b.g=c[1],b.b=c[2],this}}function H(){}let I=(e=0,()=>e++);function J(a){return null==a}function K(a){if(Array.isArray&&Array.isArray(a))return!0;let b=Object.prototype.toString.call(a);return"[object"===b.slice(0,7)&&"Array]"===b.slice(-6)}function L(a){return null!==a&&"[object Object]"===Object.prototype.toString.call(a)}function M(a){return("number"==typeof a||a instanceof Number)&&isFinite(+a)}function N(a,b){return M(a)?a:b}function O(a,b){return void 0===a?b:a}let P=(a,b)=>"string"==typeof a&&a.endsWith("%")?parseFloat(a)/100*b:+a;function Q(a,b,c){if(a&&"function"==typeof a.call)return a.apply(c,b)}function R(a,b,c,d){let e,f,g;if(K(a))if(f=a.length,d)for(e=f-1;e>=0;e--)b.call(c,a[e],e);else for(e=0;e<f;e++)b.call(c,a[e],e);else if(L(a))for(e=0,f=(g=Object.keys(a)).length;e<f;e++)b.call(c,a[g[e]],g[e])}function S(a,b){let c,d,e,f;if(!a||!b||a.length!==b.length)return!1;for(c=0,d=a.length;c<d;++c)if(e=a[c],f=b[c],e.datasetIndex!==f.datasetIndex||e.index!==f.index)return!1;return!0}function T(a){if(K(a))return a.map(T);if(L(a)){let b=Object.create(null),c=Object.keys(a),d=c.length,e=0;for(;e<d;++e)b[c[e]]=T(a[c[e]]);return b}return a}function U(a){return -1===["__proto__","prototype","constructor"].indexOf(a)}function V(a,b,c,d){if(!U(a))return;let e=b[a],f=c[a];L(e)&&L(f)?W(e,f,d):b[a]=T(f)}function W(a,b,c){let d,e=K(b)?b:[b],f=e.length;if(!L(a))return a;let g=(c=c||{}).merger||V;for(let b=0;b<f;++b){if(!L(d=e[b]))continue;let f=Object.keys(d);for(let b=0,e=f.length;b<e;++b)g(f[b],a,d,c)}return a}function X(a,b){return W(a,b,{merger:Y})}function Y(a,b,c){if(!U(a))return;let d=b[a],e=c[a];L(d)&&L(e)?X(d,e):Object.prototype.hasOwnProperty.call(b,a)||(b[a]=T(e))}let Z={"":a=>a,x:a=>a.x,y:a=>a.y};function $(a,b){let c;return(Z[b]||(Z[b]=(c=function(a){let b=a.split("."),c=[],d="";for(let a of b)(d+=a).endsWith("\\")?d=d.slice(0,-1)+".":(c.push(d),d="");return c}(b),a=>{for(let b of c){if(""===b)break;a=a&&a[b]}return a})))(a)}function _(a){return a.charAt(0).toUpperCase()+a.slice(1)}let aa=a=>void 0!==a,ab=a=>"function"==typeof a,ac=(a,b)=>{if(a.size!==b.size)return!1;for(let c of a)if(!b.has(c))return!1;return!0},ad=Math.PI,ae=2*ad,af=ae+ad,ag=1/0,ah=ad/180,ai=ad/2,aj=ad/4,ak=2*ad/3,al=Math.log10,am=Math.sign;function an(a,b,c){return Math.abs(a-b)<c}function ao(a){let b=Math.round(a),c=Math.pow(10,Math.floor(al(a=an(a,b,a/1e3)?b:a))),d=a/c;return(d<=1?1:d<=2?2:d<=5?5:10)*c}function ap(a){return"symbol"!=typeof a&&("object"!=typeof a||null===a||!!(Symbol.toPrimitive in a||"toString"in a||"valueOf"in a))&&!isNaN(parseFloat(a))&&isFinite(a)}function aq(a,b,c){let d,e,f;for(d=0,e=a.length;d<e;d++)isNaN(f=a[d][c])||(b.min=Math.min(b.min,f),b.max=Math.max(b.max,f))}function ar(a){return ad/180*a}function as(a){if(!M(a))return;let b=1,c=0;for(;Math.round(a*b)/b!==a;)b*=10,c++;return c}function at(a,b){let c=b.x-a.x,d=b.y-a.y,e=Math.sqrt(c*c+d*d),f=Math.atan2(d,c);return f<-.5*ad&&(f+=ae),{angle:f,distance:e}}function au(a,b){return Math.sqrt(Math.pow(b.x-a.x,2)+Math.pow(b.y-a.y,2))}function av(a,b){return(a-b+af)%ae-ad}function aw(a){return(a%ae+ae)%ae}function ax(a,b,c,d){let e=aw(a),f=aw(b),g=aw(c),h=aw(f-e),i=aw(g-e),j=aw(e-f),k=aw(e-g);return e===f||e===g||d&&f===g||h>i&&j<k}function ay(a,b,c){return Math.max(b,Math.min(c,a))}function az(a,b,c,d=1e-6){return a>=Math.min(b,c)-d&&a<=Math.max(b,c)+d}function aA(a,b,c){let d;c=c||(c=>a[c]<b);let e=a.length-1,f=0;for(;e-f>1;)c(d=f+e>>1)?f=d:e=d;return{lo:f,hi:e}}let aB=(a,b,c,d)=>aA(a,c,d?d=>{let e=a[d][b];return e<c||e===c&&a[d+1][b]===c}:d=>a[d][b]<c),aC=(a,b,c)=>aA(a,c,d=>a[d][b]>=c),aD=["push","pop","shift","splice","unshift"];function aE(a,b){let c=a._chartjs;if(!c)return;let d=c.listeners,e=d.indexOf(b);-1!==e&&d.splice(e,1),d.length>0||(aD.forEach(b=>{delete a[b]}),delete a._chartjs)}function aF(a){let b=new Set(a);return b.size===a.length?a:Array.from(b)}let aG="u"<typeof window?function(a){return a()}:window.requestAnimationFrame;function aH(a,b){let c=[],d=!1;return function(...e){c=e,d||(d=!0,aG.call(window,()=>{d=!1,a.apply(b,c)}))}}let aI=a=>"start"===a?"left":"end"===a?"right":"center",aJ=(a,b,c)=>"start"===a?b:"end"===a?c:(b+c)/2;function aK(a,b,c){let d=b.length,e=0,f=d;if(a._sorted){let{iScale:g,vScale:h,_parsed:i}=a,j=a.dataset&&a.dataset.options?a.dataset.options.spanGaps:null,k=g.axis,{min:l,max:m,minDefined:n,maxDefined:o}=g.getUserBounds();if(n){if(e=Math.min(aB(i,k,l).lo,c?d:aB(b,k,g.getPixelForValue(l)).lo),j){let a=i.slice(0,e+1).reverse().findIndex(a=>!J(a[h.axis]));e-=Math.max(0,a)}e=ay(e,0,d-1)}if(o){let a=Math.max(aB(i,g.axis,m,!0).hi+1,c?0:aB(b,k,g.getPixelForValue(m),!0).hi+1);if(j){let b=i.slice(a-1).findIndex(a=>!J(a[h.axis]));a+=Math.max(0,b)}f=ay(a,e,d)-e}else f=d-e}return{start:e,count:f}}function aL(a){let{xScale:b,yScale:c,_scaleRanges:d}=a,e={xmin:b.min,xmax:b.max,ymin:c.min,ymax:c.max};if(!d)return a._scaleRanges=e,!0;let f=d.xmin!==b.min||d.xmax!==b.max||d.ymin!==c.min||d.ymax!==c.max;return Object.assign(d,e),f}let aM=a=>0===a||1===a,aN=(a,b,c)=>-(Math.pow(2,10*(a-=1))*Math.sin((a-b)*ae/c)),aO=(a,b,c)=>Math.pow(2,-10*a)*Math.sin((a-b)*ae/c)+1,aP={linear:a=>a,easeInQuad:a=>a*a,easeOutQuad:a=>-a*(a-2),easeInOutQuad:a=>(a/=.5)<1?.5*a*a:-.5*(--a*(a-2)-1),easeInCubic:a=>a*a*a,easeOutCubic:a=>(a-=1)*a*a+1,easeInOutCubic:a=>(a/=.5)<1?.5*a*a*a:.5*((a-=2)*a*a+2),easeInQuart:a=>a*a*a*a,easeOutQuart:a=>-((a-=1)*a*a*a-1),easeInOutQuart:a=>(a/=.5)<1?.5*a*a*a*a:-.5*((a-=2)*a*a*a-2),easeInQuint:a=>a*a*a*a*a,easeOutQuint:a=>(a-=1)*a*a*a*a+1,easeInOutQuint:a=>(a/=.5)<1?.5*a*a*a*a*a:.5*((a-=2)*a*a*a*a+2),easeInSine:a=>-Math.cos(a*ai)+1,easeOutSine:a=>Math.sin(a*ai),easeInOutSine:a=>-.5*(Math.cos(ad*a)-1),easeInExpo:a=>0===a?0:Math.pow(2,10*(a-1)),easeOutExpo:a=>1===a?1:-Math.pow(2,-10*a)+1,easeInOutExpo:a=>aM(a)?a:a<.5?.5*Math.pow(2,10*(2*a-1)):.5*(-Math.pow(2,-10*(2*a-1))+2),easeInCirc:a=>a>=1?a:-(Math.sqrt(1-a*a)-1),easeOutCirc:a=>Math.sqrt(1-(a-=1)*a),easeInOutCirc:a=>(a/=.5)<1?-.5*(Math.sqrt(1-a*a)-1):.5*(Math.sqrt(1-(a-=2)*a)+1),easeInElastic:a=>aM(a)?a:aN(a,.075,.3),easeOutElastic:a=>aM(a)?a:aO(a,.075,.3),easeInOutElastic:a=>aM(a)?a:a<.5?.5*aN(2*a,.1125,.45):.5+.5*aO(2*a-1,.1125,.45),easeInBack:a=>a*a*(2.70158*a-1.70158),easeOutBack:a=>(a-=1)*a*(2.70158*a+1.70158)+1,easeInOutBack(a){let b=1.70158;return(a/=.5)<1?.5*(a*a*(((b*=1.525)+1)*a-b)):.5*((a-=2)*a*(((b*=1.525)+1)*a+b)+2)},easeInBounce:a=>1-aP.easeOutBounce(1-a),easeOutBounce:a=>a<.36363636363636365?7.5625*a*a:a<.7272727272727273?7.5625*(a-=.5454545454545454)*a+.75:a<.9090909090909091?7.5625*(a-=.8181818181818182)*a+.9375:7.5625*(a-=.9545454545454546)*a+.984375,easeInOutBounce:a=>a<.5?.5*aP.easeInBounce(2*a):.5*aP.easeOutBounce(2*a-1)+.5};function aQ(a){if(a&&"object"==typeof a){let b=a.toString();return"[object CanvasPattern]"===b||"[object CanvasGradient]"===b}return!1}function aR(a){return aQ(a)?a:new G(a)}function aS(a){return aQ(a)?a:new G(a).saturate(.5).darken(.1).hexString()}let aT=["x","y","borderWidth","radius","tension"],aU=["color","borderColor","backgroundColor"],aV=new Map;function aW(a,b,c){var d;let e,f;return(e=b+JSON.stringify(d=(d=c)||{}),!(f=aV.get(e))&&(f=new Intl.NumberFormat(b,d),aV.set(e,f)),f).format(a)}let aX={values:a=>K(a)?a:""+a,numeric(a,b,c){let d;if(0===a)return"0";let e=this.chart.options.locale,f=a;if(c.length>1){var g,h;let b,e=Math.max(Math.abs(c[0].value),Math.abs(c[c.length-1].value));(e<1e-4||e>1e15)&&(d="scientific"),g=a,Math.abs(b=(h=c).length>3?h[2].value-h[1].value:h[1].value-h[0].value)>=1&&g!==Math.floor(g)&&(b=g-Math.floor(g)),f=b}let i=al(Math.abs(f)),j=isNaN(i)?1:Math.max(Math.min(-1*Math.floor(i),20),0),k={notation:d,minimumFractionDigits:j,maximumFractionDigits:j};return Object.assign(k,this.options.ticks.format),aW(a,e,k)},logarithmic(a,b,c){return 0===a?"0":[1,2,3,5,10,15].includes(c[b].significand||a/Math.pow(10,Math.floor(al(a))))||b>.8*c.length?aX.numeric.call(this,a,b,c):""}},aY=Object.create(null),aZ=Object.create(null);function a$(a,b){if(!b)return a;let c=b.split(".");for(let b=0,d=c.length;b<d;++b){let d=c[b];a=a[d]||(a[d]=Object.create(null))}return a}function a_(a,b,c){return"string"==typeof b?W(a$(a,b),c):W(a$(a,""),b)}class a0{constructor(a,b){this.animation=void 0,this.backgroundColor="rgba(0,0,0,0.1)",this.borderColor="rgba(0,0,0,0.1)",this.color="#666",this.datasets={},this.devicePixelRatio=a=>a.chart.platform.getDevicePixelRatio(),this.elements={},this.events=["mousemove","mouseout","click","touchstart","touchmove"],this.font={family:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",size:12,style:"normal",lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(a,b)=>aS(b.backgroundColor),this.hoverBorderColor=(a,b)=>aS(b.borderColor),this.hoverColor=(a,b)=>aS(b.color),this.indexAxis="x",this.interaction={mode:"nearest",intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(a),this.apply(b)}set(a,b){return a_(this,a,b)}get(a){return a$(this,a)}describe(a,b){return a_(aZ,a,b)}override(a,b){return a_(aY,a,b)}route(a,b,c,d){let e=a$(this,a),f=a$(this,c),g="_"+b;Object.defineProperties(e,{[g]:{value:e[b],writable:!0},[b]:{enumerable:!0,get(){let a=this[g],b=f[d];return L(a)?Object.assign({},b,a):O(a,b)},set(a){this[g]=a}}})}apply(a){a.forEach(a=>a(this))}}var a1,a2,a3,a4,a5,a6,a7,a8,a9,ba,bb,bc,bd,be,bf=new a0({_scriptable:a=>!a.startsWith("on"),_indexable:a=>"events"!==a,hover:{_fallback:"interaction"},interaction:{_scriptable:!1,_indexable:!1}},[function(a){a.set("animation",{delay:void 0,duration:1e3,easing:"easeOutQuart",fn:void 0,from:void 0,loop:void 0,to:void 0,type:void 0}),a.describe("animation",{_fallback:!1,_indexable:!1,_scriptable:a=>"onProgress"!==a&&"onComplete"!==a&&"fn"!==a}),a.set("animations",{colors:{type:"color",properties:aU},numbers:{type:"number",properties:aT}}),a.describe("animations",{_fallback:"animation"}),a.set("transitions",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:"transparent"},visible:{type:"boolean",duration:0}}},hide:{animations:{colors:{to:"transparent"},visible:{type:"boolean",easing:"linear",fn:a=>0|a}}}})},function(a){a.set("layout",{autoPadding:!0,padding:{top:0,right:0,bottom:0,left:0}})},function(a){a.set("scale",{display:!0,offset:!1,reverse:!1,beginAtZero:!1,bounds:"ticks",clip:!0,grace:0,grid:{display:!0,lineWidth:1,drawOnChartArea:!0,drawTicks:!0,tickLength:8,tickWidth:(a,b)=>b.lineWidth,tickColor:(a,b)=>b.color,offset:!1},border:{display:!0,dash:[],dashOffset:0,width:1},title:{display:!1,text:"",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:"",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:aX.values,minor:{},major:{},align:"center",crossAlign:"near",showLabelBackdrop:!1,backdropColor:"rgba(255, 255, 255, 0.75)",backdropPadding:2}}),a.route("scale.ticks","color","","color"),a.route("scale.grid","color","","borderColor"),a.route("scale.border","color","","borderColor"),a.route("scale.title","color","","color"),a.describe("scale",{_fallback:!1,_scriptable:a=>!a.startsWith("before")&&!a.startsWith("after")&&"callback"!==a&&"parser"!==a,_indexable:a=>"borderDash"!==a&&"tickBorderDash"!==a&&"dash"!==a}),a.describe("scales",{_fallback:"scale"}),a.describe("scale.ticks",{_scriptable:a=>"backdropPadding"!==a&&"callback"!==a,_indexable:a=>"backdropPadding"!==a})}]);function bg(a,b,c,d,e){let f=b[e];return f||(f=b[e]=a.measureText(e).width,c.push(e)),f>d&&(d=f),d}function bh(a,b,c){let d=a.currentDevicePixelRatio,e=0!==c?Math.max(c/2,.5):0;return Math.round((b-e)*d)/d+e}function bi(a,b){(b||a)&&((b=b||a.getContext("2d")).save(),b.resetTransform(),b.clearRect(0,0,a.width,a.height),b.restore())}function bj(a,b,c,d){bk(a,b,c,d,null)}function bk(a,b,c,d,e){let f,g,h,i,j,k,l,m,n=b.pointStyle,o=b.rotation,p=b.radius,q=(o||0)*ah;if(n&&"object"==typeof n&&("[object HTMLImageElement]"===(f=n.toString())||"[object HTMLCanvasElement]"===f)){a.save(),a.translate(c,d),a.rotate(q),a.drawImage(n,-n.width/2,-n.height/2,n.width,n.height),a.restore();return}if(!isNaN(p)&&!(p<=0)){switch(a.beginPath(),n){default:e?a.ellipse(c,d,e/2,p,0,0,ae):a.arc(c,d,p,0,ae),a.closePath();break;case"triangle":k=e?e/2:p,a.moveTo(c+Math.sin(q)*k,d-Math.cos(q)*p),q+=ak,a.lineTo(c+Math.sin(q)*k,d-Math.cos(q)*p),q+=ak,a.lineTo(c+Math.sin(q)*k,d-Math.cos(q)*p),a.closePath();break;case"rectRounded":j=.516*p,g=Math.cos(q+aj)*(i=p-j),l=Math.cos(q+aj)*(e?e/2-j:i),h=Math.sin(q+aj)*i,m=Math.sin(q+aj)*(e?e/2-j:i),a.arc(c-l,d-h,j,q-ad,q-ai),a.arc(c+m,d-g,j,q-ai,q),a.arc(c+l,d+h,j,q,q+ai),a.arc(c-m,d+g,j,q+ai,q+ad),a.closePath();break;case"rect":if(!o){i=Math.SQRT1_2*p,k=e?e/2:i,a.rect(c-k,d-i,2*k,2*i);break}q+=aj;case"rectRot":l=Math.cos(q)*(e?e/2:p),g=Math.cos(q)*p,h=Math.sin(q)*p,m=Math.sin(q)*(e?e/2:p),a.moveTo(c-l,d-h),a.lineTo(c+m,d-g),a.lineTo(c+l,d+h),a.lineTo(c-m,d+g),a.closePath();break;case"crossRot":q+=aj;case"cross":l=Math.cos(q)*(e?e/2:p),g=Math.cos(q)*p,h=Math.sin(q)*p,m=Math.sin(q)*(e?e/2:p),a.moveTo(c-l,d-h),a.lineTo(c+l,d+h),a.moveTo(c+m,d-g),a.lineTo(c-m,d+g);break;case"star":l=Math.cos(q)*(e?e/2:p),g=Math.cos(q)*p,h=Math.sin(q)*p,m=Math.sin(q)*(e?e/2:p),a.moveTo(c-l,d-h),a.lineTo(c+l,d+h),a.moveTo(c+m,d-g),a.lineTo(c-m,d+g),q+=aj,l=Math.cos(q)*(e?e/2:p),g=Math.cos(q)*p,h=Math.sin(q)*p,m=Math.sin(q)*(e?e/2:p),a.moveTo(c-l,d-h),a.lineTo(c+l,d+h),a.moveTo(c+m,d-g),a.lineTo(c-m,d+g);break;case"line":g=e?e/2:Math.cos(q)*p,h=Math.sin(q)*p,a.moveTo(c-g,d-h),a.lineTo(c+g,d+h);break;case"dash":a.moveTo(c,d),a.lineTo(c+Math.cos(q)*(e?e/2:p),d+Math.sin(q)*p);break;case!1:a.closePath()}a.fill(),b.borderWidth>0&&a.stroke()}}function bl(a,b,c){return c=c||.5,!b||a&&a.x>b.left-c&&a.x<b.right+c&&a.y>b.top-c&&a.y<b.bottom+c}function bm(a,b){a.save(),a.beginPath(),a.rect(b.left,b.top,b.right-b.left,b.bottom-b.top),a.clip()}function bn(a){a.restore()}function bo(a,b,c,d,e){if(!b)return a.lineTo(c.x,c.y);if("middle"===e){let d=(b.x+c.x)/2;a.lineTo(d,b.y),a.lineTo(d,c.y)}else"after"===e!=!!d?a.lineTo(b.x,c.y):a.lineTo(c.x,b.y);a.lineTo(c.x,c.y)}function bp(a,b,c,d){if(!b)return a.lineTo(c.x,c.y);a.bezierCurveTo(d?b.cp1x:b.cp2x,d?b.cp1y:b.cp2y,d?c.cp2x:c.cp1x,d?c.cp2y:c.cp1y,c.x,c.y)}function bq(a,b,c,d,e,f={}){let g,h,i=K(b)?b:[b],j=f.strokeWidth>0&&""!==f.strokeColor;for(a.save(),a.font=e.string,f.translation&&a.translate(f.translation[0],f.translation[1]),J(f.rotation)||a.rotate(f.rotation),f.color&&(a.fillStyle=f.color),f.textAlign&&(a.textAlign=f.textAlign),f.textBaseline&&(a.textBaseline=f.textBaseline),g=0;g<i.length;++g)h=i[g],f.backdrop&&function(a,b){let c=a.fillStyle;a.fillStyle=b.color,a.fillRect(b.left,b.top,b.width,b.height),a.fillStyle=c}(a,f.backdrop),j&&(f.strokeColor&&(a.strokeStyle=f.strokeColor),J(f.strokeWidth)||(a.lineWidth=f.strokeWidth),a.strokeText(h,c,d,f.maxWidth)),a.fillText(h,c,d,f.maxWidth),function(a,b,c,d,e){if(e.strikethrough||e.underline){let f=a.measureText(d),g=b-f.actualBoundingBoxLeft,h=b+f.actualBoundingBoxRight,i=c-f.actualBoundingBoxAscent,j=c+f.actualBoundingBoxDescent,k=e.strikethrough?(i+j)/2:j;a.strokeStyle=a.fillStyle,a.beginPath(),a.lineWidth=e.decorationWidth||2,a.moveTo(g,k),a.lineTo(h,k),a.stroke()}}(a,c,d,h,f),d+=Number(e.lineHeight);a.restore()}function br(a,b){let{x:c,y:d,w:e,h:f,radius:g}=b;a.arc(c+g.topLeft,d+g.topLeft,g.topLeft,1.5*ad,ad,!0),a.lineTo(c,d+f-g.bottomLeft),a.arc(c+g.bottomLeft,d+f-g.bottomLeft,g.bottomLeft,ad,ai,!0),a.lineTo(c+e-g.bottomRight,d+f),a.arc(c+e-g.bottomRight,d+f-g.bottomRight,g.bottomRight,ai,0,!0),a.lineTo(c+e,d+g.topRight),a.arc(c+e-g.topRight,d+g.topRight,g.topRight,0,-ai,!0),a.lineTo(c+g.topLeft,d)}let bs=/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/,bt=/^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/,bu=a=>+a||0;function bv(a,b){let c={},d=L(b),e=d?Object.keys(b):b,f=L(a)?d?c=>O(a[c],a[b[c]]):b=>a[b]:()=>a;for(let a of e)c[a]=bu(f(a));return c}function bw(a){return bv(a,{top:"y",right:"x",bottom:"y",left:"x"})}function bx(a){return bv(a,["topLeft","topRight","bottomLeft","bottomRight"])}function by(a){let b=bw(a);return b.width=b.left+b.right,b.height=b.top+b.bottom,b}function bz(a,b){a=a||{},b=b||bf.font;let c=O(a.size,b.size);"string"==typeof c&&(c=parseInt(c,10));let d=O(a.style,b.style);d&&!(""+d).match(bt)&&(console.warn('Invalid font style specified: "'+d+'"'),d=void 0);let e={family:O(a.family,b.family),lineHeight:function(a,b){let c=(""+a).match(bs);if(!c||"normal"===c[1])return 1.2*b;switch(a=+c[2],c[3]){case"px":return a;case"%":a/=100}return b*a}(O(a.lineHeight,b.lineHeight),c),size:c,style:d,weight:O(a.weight,b.weight),string:""};return e.string=!e||J(e.size)||J(e.family)?null:(e.style?e.style+" ":"")+(e.weight?e.weight+" ":"")+e.size+"px "+e.family,e}function bA(a,b,c,d){let e,f,g,h=!0;for(e=0,f=a.length;e<f;++e)if(void 0!==(g=a[e])&&(void 0!==b&&"function"==typeof g&&(g=g(b),h=!1),void 0!==c&&K(g)&&(g=g[c%g.length],h=!1),void 0!==g))return d&&!h&&(d.cacheable=!1),g}function bB(a,b){return Object.assign(Object.create(a),b)}function bC(a,b=[""],c,d,e=()=>a[0]){let f=c||a;return void 0===d&&(d=bL("_fallback",a)),new Proxy({[Symbol.toStringTag]:"Object",_cacheable:!0,_scopes:a,_rootScopes:f,_fallback:d,_getTarget:e,override:c=>bC([c,...a],b,f,d)},{deleteProperty:(b,c)=>(delete b[c],delete b._keys,delete a[0][c],!0),get:(c,d)=>bH(c,d,()=>(function(a,b,c,d){let e;for(let f of b)if(void 0!==(e=bL(bF(f,a),c)))return bG(a,e)?bJ(c,d,a,e):e})(d,b,a,c)),getOwnPropertyDescriptor:(a,b)=>Reflect.getOwnPropertyDescriptor(a._scopes[0],b),getPrototypeOf:()=>Reflect.getPrototypeOf(a[0]),has:(a,b)=>bM(a).includes(b),ownKeys:a=>bM(a),set(a,b,c){let d=a._storage||(a._storage=e());return a[b]=d[b]=c,delete a._keys,!0}})}function bD(a,b,c,d){return new Proxy({_cacheable:!1,_proxy:a,_context:b,_subProxy:c,_stack:new Set,_descriptors:bE(a,d),setContext:b=>bD(a,b,c,d),override:e=>bD(a.override(e),b,c,d)},{deleteProperty:(b,c)=>(delete b[c],delete a[c],!0),get:(a,b,c)=>bH(a,b,()=>(function(a,b,c){let{_proxy:d,_context:e,_subProxy:f,_descriptors:g}=a,h=d[b];return ab(h)&&g.isScriptable(b)&&(h=function(a,b,c,d){let{_proxy:e,_context:f,_subProxy:g,_stack:h}=c;if(h.has(a))throw Error("Recursion detected: "+Array.from(h).join("->")+"->"+a);h.add(a);let i=b(f,g||d);return h.delete(a),bG(a,i)&&(i=bJ(e._scopes,e,a,i)),i}(b,h,a,c)),K(h)&&h.length&&(h=function(a,b,c,d){let{_proxy:e,_context:f,_subProxy:g,_descriptors:h}=c;if(void 0!==f.index&&d(a))return b[f.index%b.length];if(L(b[0])){let c=b,d=e._scopes.filter(a=>a!==c);for(let i of(b=[],c)){let c=bJ(d,e,a,i);b.push(bD(c,f,g&&g[a],h))}}return b}(b,h,a,g.isIndexable)),bG(b,h)&&(h=bD(h,e,f&&f[b],g)),h})(a,b,c)),getOwnPropertyDescriptor:(b,c)=>b._descriptors.allKeys?Reflect.has(a,c)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(a,c),getPrototypeOf:()=>Reflect.getPrototypeOf(a),has:(b,c)=>Reflect.has(a,c),ownKeys:()=>Reflect.ownKeys(a),set:(b,c,d)=>(a[c]=d,delete b[c],!0)})}function bE(a,b={scriptable:!0,indexable:!0}){let{_scriptable:c=b.scriptable,_indexable:d=b.indexable,_allKeys:e=b.allKeys}=a;return{allKeys:e,scriptable:c,indexable:d,isScriptable:ab(c)?c:()=>c,isIndexable:ab(d)?d:()=>d}}let bF=(a,b)=>a?a+_(b):b,bG=(a,b)=>L(b)&&"adapters"!==a&&(null===Object.getPrototypeOf(b)||b.constructor===Object);function bH(a,b,c){if(Object.prototype.hasOwnProperty.call(a,b)||"constructor"===b)return a[b];let d=c();return a[b]=d,d}let bI=(a,b)=>!0===a?b:"string"==typeof a?$(b,a):void 0;function bJ(a,b,c,d){var e;let f=b._rootScopes,g=(e=b._fallback,ab(e)?e(c,d):e),h=[...a,...f],i=new Set;i.add(d);let j=bK(i,h,c,g||c,d);return null!==j&&(void 0===g||g===c||null!==(j=bK(i,h,g,j,d)))&&bC(Array.from(i),[""],f,g,()=>{var a,e,f;let g,h;return a=b,e=c,f=d,e in(g=a._getTarget())||(g[e]={}),K(h=g[e])&&L(f)?f:h||{}})}function bK(a,b,c,d,e){for(;c;)c=function(a,b,c,d,e){for(let g of b){let b=bI(c,g);if(b){var f;a.add(b);let g=(f=b._fallback,ab(f)?f(c,e):f);if(void 0!==g&&g!==c&&g!==d)return g}else if(!1===b&&void 0!==d&&c!==d)return null}return!1}(a,b,c,d,e);return c}function bL(a,b){for(let c of b){if(!c)continue;let b=c[a];if(void 0!==b)return b}}function bM(a){let b=a._keys;return b||(b=a._keys=function(a){let b=new Set;for(let c of a)for(let a of Object.keys(c).filter(a=>!a.startsWith("_")))b.add(a);return Array.from(b)}(a._scopes)),b}function bN(a,b,c,d){let e,f,g,{iScale:h}=a,{key:i="r"}=this._parsing,j=Array(d);for(e=0;e<d;++e)g=b[f=e+c],j[e]={r:h.parse($(g,i),f)};return j}let bO=Number.EPSILON||1e-14,bP=(a,b)=>b<a.length&&!a[b].skip&&a[b],bQ=a=>"x"===a?"y":"x";function bR(a,b,c){return Math.max(Math.min(a,c),b)}function bS(){return"u">typeof window&&"u">typeof document}function bT(a){let b=a.parentNode;return b&&"[object ShadowRoot]"===b.toString()&&(b=b.host),b}function bU(a,b,c){let d;return"string"==typeof a?(d=parseInt(a,10),-1!==a.indexOf("%")&&(d=d/100*b.parentNode[c])):d=a,d}let bV=a=>a.ownerDocument.defaultView.getComputedStyle(a,null),bW=["top","right","bottom","left"];function bX(a,b,c){let d={};c=c?"-"+c:"";for(let e=0;e<4;e++){let f=bW[e];d[f]=parseFloat(a[b+"-"+f+c])||0}return d.width=d.left+d.right,d.height=d.top+d.bottom,d}function bY(a,b){if("native"in a)return a;let{canvas:c,currentDevicePixelRatio:d}=b,e=bV(c),f="border-box"===e.boxSizing,g=bX(e,"padding"),h=bX(e,"border","width"),{x:i,y:j,box:k}=function(a,b){let c,d,e,f=a.touches,g=f&&f.length?f[0]:a,{offsetX:h,offsetY:i}=g,j=!1;if(e=a.target,(h>0||i>0)&&(!e||!e.shadowRoot))c=h,d=i;else{let a=b.getBoundingClientRect();c=g.clientX-a.left,d=g.clientY-a.top,j=!0}return{x:c,y:d,box:j}}(a,c),l=g.left+(k&&h.left),m=g.top+(k&&h.top),{width:n,height:o}=b;return f&&(n-=g.width+h.width,o-=g.height+h.height),{x:Math.round((i-l)/n*c.width/d),y:Math.round((j-m)/o*c.height/d)}}let bZ=a=>Math.round(10*a)/10;function b$(a,b,c){let d=b||1,e=bZ(a.height*d),f=bZ(a.width*d);a.height=bZ(a.height),a.width=bZ(a.width);let g=a.canvas;return g.style&&(c||!g.style.height&&!g.style.width)&&(g.style.height=`${a.height}px`,g.style.width=`${a.width}px`),(a.currentDevicePixelRatio!==d||g.height!==e||g.width!==f)&&(a.currentDevicePixelRatio=d,g.height=e,g.width=f,a.ctx.setTransform(d,0,0,d,0,0),!0)}let b_=function(){let a=!1;try{let b={get passive(){return a=!0,!1}};bS()&&(window.addEventListener("test",null,b),window.removeEventListener("test",null,b))}catch(a){}return a}();function b0(a,b){let c=bV(a).getPropertyValue(b),d=c&&c.match(/^(\d+)(\.\d+)?px$/);return d?+d[1]:void 0}function b1(a,b,c,d){return{x:a.x+c*(b.x-a.x),y:a.y+c*(b.y-a.y)}}function b2(a,b,c,d){return{x:a.x+c*(b.x-a.x),y:"middle"===d?c<.5?a.y:b.y:"after"===d?c<1?a.y:b.y:c>0?b.y:a.y}}function b3(a,b,c,d){let e={x:a.cp2x,y:a.cp2y},f={x:b.cp1x,y:b.cp1y},g=b1(a,e,c),h=b1(e,f,c),i=b1(f,b,c),j=b1(g,h,c),k=b1(h,i,c);return b1(j,k,c)}function b4(a,b,c){var d;return a?(d=c,{x:a=>b+b+d-a,setWidth(a){d=a},textAlign:a=>"center"===a?a:"right"===a?"left":"right",xPlus:(a,b)=>a-b,leftForLtr:(a,b)=>a-b}):{x:a=>a,setWidth(a){},textAlign:a=>a,xPlus:(a,b)=>a+b,leftForLtr:(a,b)=>a}}function b5(a,b){let c,d;("ltr"===b||"rtl"===b)&&(d=[(c=a.canvas.style).getPropertyValue("direction"),c.getPropertyPriority("direction")],c.setProperty("direction",b,"important"),a.prevTextDirection=d)}function b6(a,b){void 0!==b&&(delete a.prevTextDirection,a.canvas.style.setProperty("direction",b[0],b[1]))}function b7(a){return"angle"===a?{between:ax,compare:av,normalize:aw}:{between:az,compare:(a,b)=>a-b,normalize:a=>a}}function b8({start:a,end:b,count:c,loop:d,style:e}){return{start:a%c,end:b%c,loop:d&&(b-a+1)%c==0,style:e}}function b9(a,b,c){let d,e,f;if(!c)return[a];let{property:g,start:h,end:i}=c,j=b.length,{compare:k,between:l,normalize:m}=b7(g),{start:n,end:o,loop:p,style:q}=function(a,b,c){let d,{property:e,start:f,end:g}=c,{between:h,normalize:i}=b7(e),j=b.length,{start:k,end:l,loop:m}=a;if(m){for(k+=j,l+=j,d=0;d<j&&h(i(b[k%j][e]),f,g);++d)k--,l--;k%=j,l%=j}return l<k&&(l+=j),{start:k,end:l,loop:m,style:a.style}}(a,b,c),r=[],s=!1,t=null,u=()=>s||l(h,f,d)&&0!==k(h,f),v=()=>!s||0===k(i,d)||l(i,f,d);for(let a=n,c=n;a<=o;++a)(e=b[a%j]).skip||(d=m(e[g]))!==f&&(s=l(d,h,i),null===t&&u()&&(t=0===k(d,h)?a:c),null!==t&&v()&&(r.push(b8({start:t,end:a,loop:p,count:j,style:q})),t=null),c=a,f=d);return null!==t&&r.push(b8({start:t,end:o,loop:p,count:j,style:q})),r}function ca(a,b){let c=[],d=a.segments;for(let e=0;e<d.length;e++){let f=b9(d[e],a.points,b);f.length&&c.push(...f)}return c}function cb(a,b,c,d){return d&&d.setContext&&c?function(a,b,c,d){let e=a._chart.getContext(),f=cc(a.options),{_datasetIndex:g,options:{spanGaps:h}}=a,i=c.length,j=[],k=f,l=b[0].start,m=l;function n(a,b,d,e){let f=h?-1:1;if(a!==b){for(a+=i;c[a%i].skip;)a-=f;for(;c[b%i].skip;)b+=f;a%i!=b%i&&(j.push({start:a%i,end:b%i,loop:d,style:e}),k=e,l=b%i)}}for(let a of b){let b,f=c[(l=h?l:a.start)%i];for(m=l+1;m<=a.end;m++){let h=c[m%i];(function(a,b){if(!b)return!1;let c=[],d=function(a,b){return aQ(b)?(c.includes(b)||c.push(b),c.indexOf(b)):b};return JSON.stringify(a,d)!==JSON.stringify(b,d)})(b=cc(d.setContext(bB(e,{type:"segment",p0:f,p1:h,p0DataIndex:(m-1)%i,p1DataIndex:m%i,datasetIndex:g}))),k)&&n(l,m-1,a.loop,k),f=h,k=b}l<m-1&&n(l,m-1,a.loop,k)}return j}(a,b,c,d):b}function cc(a){return{backgroundColor:a.backgroundColor,borderCapStyle:a.borderCapStyle,borderDash:a.borderDash,borderDashOffset:a.borderDashOffset,borderJoinStyle:a.borderJoinStyle,borderWidth:a.borderWidth,borderColor:a.borderColor}}function cd(a,b,c){return a.options.clip?a[c]:b[c]}function ce(a,b){let c=b._clip;if(c.disabled)return!1;let d=function(a,b){let{xScale:c,yScale:d}=a;return c&&d?{left:cd(c,b,"left"),right:cd(c,b,"right"),top:cd(d,b,"top"),bottom:cd(d,b,"bottom")}:b}(b,a.chartArea);return{left:!1===c.left?0:d.left-(!0===c.left?0:c.left),right:!1===c.right?a.width:d.right+(!0===c.right?0:c.right),top:!1===c.top?0:d.top-(!0===c.top?0:c.top),bottom:!1===c.bottom?a.height:d.bottom+(!0===c.bottom?0:c.bottom)}}class cf{constructor(){this._request=null,this._charts=new Map,this._running=!1,this._lastDate=void 0}_notify(a,b,c,d){let e=b.listeners[d],f=b.duration;e.forEach(d=>d({chart:a,initial:b.initial,numSteps:f,currentStep:Math.min(c-b.start,f)}))}_refresh(){this._request||(this._running=!0,this._request=aG.call(window,()=>{this._update(),this._request=null,this._running&&this._refresh()}))}_update(a=Date.now()){let b=0;this._charts.forEach((c,d)=>{let e;if(!c.running||!c.items.length)return;let f=c.items,g=f.length-1,h=!1;for(;g>=0;--g)(e=f[g])._active?(e._total>c.duration&&(c.duration=e._total),e.tick(a),h=!0):(f[g]=f[f.length-1],f.pop());h&&(d.draw(),this._notify(d,c,a,"progress")),f.length||(c.running=!1,this._notify(d,c,a,"complete"),c.initial=!1),b+=f.length}),this._lastDate=a,0===b&&(this._running=!1)}_getAnims(a){let b=this._charts,c=b.get(a);return c||(c={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},b.set(a,c)),c}listen(a,b,c){this._getAnims(a).listeners[b].push(c)}add(a,b){b&&b.length&&this._getAnims(a).items.push(...b)}has(a){return this._getAnims(a).items.length>0}start(a){let b=this._charts.get(a);b&&(b.running=!0,b.start=Date.now(),b.duration=b.items.reduce((a,b)=>Math.max(a,b._duration),0),this._refresh())}running(a){if(!this._running)return!1;let b=this._charts.get(a);return!!b&&!!b.running&&!!b.items.length}stop(a){let b=this._charts.get(a);if(!b||!b.items.length)return;let c=b.items,d=c.length-1;for(;d>=0;--d)c[d].cancel();b.items=[],this._notify(a,b,Date.now(),"complete")}remove(a){return this._charts.delete(a)}}var cg=new cf;let ch="transparent",ci={boolean:(a,b,c)=>c>.5?b:a,color(a,b,c){let d=aR(a||ch),e=d.valid&&aR(b||ch);return e&&e.valid?e.mix(d,c).hexString():b},number:(a,b,c)=>a+(b-a)*c};class cj{constructor(a,b,c,d){const e=b[c];d=bA([a.to,d,e,a.from]);const f=bA([a.from,e,d]);this._active=!0,this._fn=a.fn||ci[a.type||typeof f],this._easing=aP[a.easing]||aP.linear,this._start=Math.floor(Date.now()+(a.delay||0)),this._duration=this._total=Math.floor(a.duration),this._loop=!!a.loop,this._target=b,this._prop=c,this._from=f,this._to=d,this._promises=void 0}active(){return this._active}update(a,b,c){if(this._active){this._notify(!1);let d=this._target[this._prop],e=c-this._start,f=this._duration-e;this._start=c,this._duration=Math.floor(Math.max(f,a.duration)),this._total+=e,this._loop=!!a.loop,this._to=bA([a.to,b,d,a.from]),this._from=bA([a.from,d,b])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(a){let b,c=a-this._start,d=this._duration,e=this._prop,f=this._from,g=this._loop,h=this._to;if(this._active=f!==h&&(g||c<d),!this._active){this._target[e]=h,this._notify(!0);return}if(c<0){this._target[e]=f;return}b=c/d%2,b=g&&b>1?2-b:b,b=this._easing(Math.min(1,Math.max(0,b))),this._target[e]=this._fn(f,h,b)}wait(){let a=this._promises||(this._promises=[]);return new Promise((b,c)=>{a.push({res:b,rej:c})})}_notify(a){let b=a?"res":"rej",c=this._promises||[];for(let a=0;a<c.length;a++)c[a][b]()}}class ck{constructor(a,b){this._chart=a,this._properties=new Map,this.configure(b)}configure(a){if(!L(a))return;let b=Object.keys(bf.animation),c=this._properties;Object.getOwnPropertyNames(a).forEach(d=>{let e=a[d];if(!L(e))return;let f={};for(let a of b)f[a]=e[a];(K(e.properties)&&e.properties||[d]).forEach(a=>{a!==d&&c.has(a)||c.set(a,f)})})}_animateOptions(a,b){let c=b.options,d=function(a,b){if(!b)return;let c=a.options;if(!c){a.options=b;return}return c.$shared&&(a.options=c=Object.assign({},c,{$shared:!1,$animations:{}})),c}(a,c);if(!d)return[];let e=this._createAnimations(d,c);return c.$shared&&(function(a,b){let c=[],d=Object.keys(b);for(let b=0;b<d.length;b++){let e=a[d[b]];e&&e.active()&&c.push(e.wait())}return Promise.all(c)})(a.options.$animations,c).then(()=>{a.options=c},()=>{}),e}_createAnimations(a,b){let c,d=this._properties,e=[],f=a.$animations||(a.$animations={}),g=Object.keys(b),h=Date.now();for(c=g.length-1;c>=0;--c){let i=g[c];if("$"===i.charAt(0))continue;if("options"===i){e.push(...this._animateOptions(a,b));continue}let j=b[i],k=f[i],l=d.get(i);if(k)if(l&&k.active()){k.update(l,j,h);continue}else k.cancel();if(!l||!l.duration){a[i]=j;continue}f[i]=k=new cj(l,a,i,j),e.push(k)}return e}update(a,b){if(0===this._properties.size)return void Object.assign(a,b);let c=this._createAnimations(a,b);if(c.length)return cg.add(this._chart,c),!0}}function cl(a,b){let c=a&&a.options||{},d=c.reverse,e=void 0===c.min?b:0,f=void 0===c.max?b:0;return{start:d?f:e,end:d?e:f}}function cm(a,b){let c,d,e=[],f=a._getSortedDatasetMetas(b);for(c=0,d=f.length;c<d;++c)e.push(f[c].index);return e}function cn(a,b,c,d={}){let e,f,g,h,i=a.keys,j="single"===d.mode;if(null===b)return;let k=!1;for(e=0,f=i.length;e<f;++e){if((g=+i[e])===c){if(k=!0,d.all)continue;break}M(h=a.values[g])&&(j||0===b||am(b)===am(h))&&(b+=h)}return k||d.all?b:0}function co(a,b){let c=a&&a.options.stacked;return c||void 0===c&&void 0!==b.stack}function cp(a,b,c,d){for(let e of b.getMatchingVisibleMetas(d).reverse()){let b=a[e.index];if(c&&b>0||!c&&b<0)return e.index}return null}function cq(a,b){let c,{chart:d,_cachedMeta:e}=a,f=d._stacks||(d._stacks={}),{iScale:g,vScale:h,index:i}=e,j=g.axis,k=h.axis,l=`${g.id}.${h.id}.${e.stack||e.type}`,m=b.length;for(let a=0;a<m;++a){let d=b[a],{[j]:g,[k]:m}=d;(c=(d._stacks||(d._stacks={}))[k]=function(a,b,c){let d=a[b]||(a[b]={});return d[c]||(d[c]={})}(f,l,g))[i]=m,c._top=cp(c,h,!0,e.type),c._bottom=cp(c,h,!1,e.type),(c._visualValues||(c._visualValues={}))[i]=m}}function cr(a,b){let c=a.scales;return Object.keys(c).filter(a=>c[a].axis===b).shift()}function cs(a,b){let c=a.controller.index,d=a.vScale&&a.vScale.axis;if(d)for(let e of b=b||a._parsed){let a=e._stacks;if(!a||void 0===a[d]||void 0===a[d][c])return;delete a[d][c],void 0!==a[d]._visualValues&&void 0!==a[d]._visualValues[c]&&delete a[d]._visualValues[c]}}let ct=a=>"reset"===a||"none"===a,cu=(a,b)=>b?a:Object.assign({},a);class cv{static defaults={};static datasetElementType=null;static dataElementType=null;constructor(a,b){this.chart=a,this._ctx=a.ctx,this.index=b,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.datasetElementType=new.target.datasetElementType,this.dataElementType=new.target.dataElementType,this.initialize()}initialize(){let a=this._cachedMeta;this.configure(),this.linkScales(),a._stacked=co(a.vScale,a),this.addElements(),this.options.fill&&!this.chart.isPluginEnabled("filler")&&console.warn("Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options")}updateIndex(a){this.index!==a&&cs(this._cachedMeta),this.index=a}linkScales(){let a=this.chart,b=this._cachedMeta,c=this.getDataset(),d=(a,b,c,d)=>"x"===a?b:"r"===a?d:c,e=b.xAxisID=O(c.xAxisID,cr(a,"x")),f=b.yAxisID=O(c.yAxisID,cr(a,"y")),g=b.rAxisID=O(c.rAxisID,cr(a,"r")),h=b.indexAxis,i=b.iAxisID=d(h,e,f,g),j=b.vAxisID=d(h,f,e,g);b.xScale=this.getScaleForId(e),b.yScale=this.getScaleForId(f),b.rScale=this.getScaleForId(g),b.iScale=this.getScaleForId(i),b.vScale=this.getScaleForId(j)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(a){return this.chart.scales[a]}_getOtherScale(a){let b=this._cachedMeta;return a===b.iScale?b.vScale:b.iScale}reset(){this._update("reset")}_destroy(){let a=this._cachedMeta;this._data&&aE(this._data,this),a._stacked&&cs(a)}_dataCheck(){let a=this.getDataset(),b=a.data||(a.data=[]),c=this._data;if(L(b)){let a=this._cachedMeta;this._data=function(a,b){let c,d,e,{iScale:f,vScale:g}=b,h="x"===f.axis?"x":"y",i="x"===g.axis?"x":"y",j=Object.keys(a),k=Array(j.length);for(c=0,d=j.length;c<d;++c)e=j[c],k[c]={[h]:e,[i]:a[e]};return k}(b,a)}else if(c!==b){if(c){aE(c,this);let a=this._cachedMeta;cs(a),a._parsed=[]}b&&Object.isExtensible(b)&&(b._chartjs?b._chartjs.listeners.push(this):(Object.defineProperty(b,"_chartjs",{configurable:!0,enumerable:!1,value:{listeners:[this]}}),aD.forEach(a=>{let c="_onData"+_(a),d=b[a];Object.defineProperty(b,a,{configurable:!0,enumerable:!1,value(...a){let e=d.apply(this,a);return b._chartjs.listeners.forEach(b=>{"function"==typeof b[c]&&b[c](...a)}),e}})}))),this._syncList=[],this._data=b}}addElements(){let a=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(a.dataset=new this.datasetElementType)}buildOrUpdateElements(a){let b=this._cachedMeta,c=this.getDataset(),d=!1;this._dataCheck();let e=b._stacked;b._stacked=co(b.vScale,b),b.stack!==c.stack&&(d=!0,cs(b),b.stack=c.stack),this._resyncElements(a),(d||e!==b._stacked)&&(cq(this,b._parsed),b._stacked=co(b.vScale,b))}configure(){let a=this.chart.config,b=a.datasetScopeKeys(this._type),c=a.getOptionScopes(this.getDataset(),b,!0);this.options=a.createResolver(c,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(a,b){let c,d,e,{_cachedMeta:f,_data:g}=this,{iScale:h,_stacked:i}=f,j=h.axis,k=0===a&&b===g.length||f._sorted,l=a>0&&f._parsed[a-1];if(!1===this._parsing)f._parsed=g,f._sorted=!0,e=g;else{e=K(g[a])?this.parseArrayData(f,g,a,b):L(g[a])?this.parseObjectData(f,g,a,b):this.parsePrimitiveData(f,g,a,b);let h=()=>null===d[j]||l&&d[j]<l[j];for(c=0;c<b;++c)f._parsed[c+a]=d=e[c],k&&(h()&&(k=!1),l=d);f._sorted=k}i&&cq(this,e)}parsePrimitiveData(a,b,c,d){let e,f,{iScale:g,vScale:h}=a,i=g.axis,j=h.axis,k=g.getLabels(),l=g===h,m=Array(d);for(e=0;e<d;++e)f=e+c,m[e]={[i]:l||g.parse(k[f],f),[j]:h.parse(b[f],f)};return m}parseArrayData(a,b,c,d){let e,f,g,{xScale:h,yScale:i}=a,j=Array(d);for(e=0;e<d;++e)g=b[f=e+c],j[e]={x:h.parse(g[0],f),y:i.parse(g[1],f)};return j}parseObjectData(a,b,c,d){let e,f,g,{xScale:h,yScale:i}=a,{xAxisKey:j="x",yAxisKey:k="y"}=this._parsing,l=Array(d);for(e=0;e<d;++e)g=b[f=e+c],l[e]={x:h.parse($(g,j),f),y:i.parse($(g,k),f)};return l}getParsed(a){return this._cachedMeta._parsed[a]}getDataElement(a){return this._cachedMeta.data[a]}applyStack(a,b,c){let d=this.chart,e=this._cachedMeta,f=b[a.axis];return cn({keys:cm(d,!0),values:b._stacks[a.axis]._visualValues},f,e.index,{mode:c})}updateRangeFromParsed(a,b,c,d){let e=c[b.axis],f=null===e?NaN:e,g=d&&c._stacks[b.axis];d&&g&&(d.values=g,f=cn(d,e,this._cachedMeta.index)),a.min=Math.min(a.min,f),a.max=Math.max(a.max,f)}getMinMax(a,b){let c,d,e,f=this._cachedMeta,g=f._parsed,h=f._sorted&&a===f.iScale,i=g.length,j=this._getOtherScale(a),k=(e=this.chart,b&&!f.hidden&&f._stacked&&{keys:cm(e,!0),values:null}),l={min:1/0,max:-1/0},{min:m,max:n}=function(a){let{min:b,max:c,minDefined:d,maxDefined:e}=a.getUserBounds();return{min:d?b:-1/0,max:e?c:1/0}}(j);function o(){let b=(d=g[c])[j.axis];return!M(d[a.axis])||m>b||n<b}for(c=0;c<i&&(o()||(this.updateRangeFromParsed(l,a,d,k),!h));++c);if(h){for(c=i-1;c>=0;--c)if(!o()){this.updateRangeFromParsed(l,a,d,k);break}}return l}getAllParsedValues(a){let b,c,d,e=this._cachedMeta._parsed,f=[];for(b=0,c=e.length;b<c;++b)M(d=e[b][a.axis])&&f.push(d);return f}getMaxOverflow(){return!1}getLabelAndValue(a){let b=this._cachedMeta,c=b.iScale,d=b.vScale,e=this.getParsed(a);return{label:c?""+c.getLabelForValue(e[c.axis]):"",value:d?""+d.getLabelForValue(e[d.axis]):""}}_update(a){var b;let c,d,e,f,g=this._cachedMeta;this.update(a||"default"),L(b=O(this.options.clip,function(a,b,c){if(!1===c)return!1;let d=cl(a,c),e=cl(b,c);return{top:e.end,right:d.end,bottom:e.start,left:d.start}}(g.xScale,g.yScale,this.getMaxOverflow())))?(c=b.top,d=b.right,e=b.bottom,f=b.left):c=d=e=f=b,g._clip={top:c,right:d,bottom:e,left:f,disabled:!1===b}}update(a){}draw(){let a,b=this._ctx,c=this.chart,d=this._cachedMeta,e=d.data||[],f=c.chartArea,g=[],h=this._drawStart||0,i=this._drawCount||e.length-h,j=this.options.drawActiveElementsOnTop;for(d.dataset&&d.dataset.draw(b,f,h,i),a=h;a<h+i;++a){let c=e[a];c.hidden||(c.active&&j?g.push(c):c.draw(b,f))}for(a=0;a<g.length;++a)g[a].draw(b,f)}getStyle(a,b){let c=b?"active":"default";return void 0===a&&this._cachedMeta.dataset?this.resolveDatasetElementOptions(c):this.resolveDataElementOptions(a||0,c)}getContext(a,b,c){var d,e;let f,g=this.getDataset();if(a>=0&&a<this._cachedMeta.data.length){let b=this._cachedMeta.data[a];(f=b.$context||(d=this.getContext(),b.$context=bB(d,{active:!1,dataIndex:a,parsed:void 0,raw:void 0,element:b,index:a,mode:"default",type:"data"}))).parsed=this.getParsed(a),f.raw=g.data[a],f.index=f.dataIndex=a}else(f=this.$context||(this.$context=bB(this.chart.getContext(),{active:!1,dataset:void 0,datasetIndex:e=this.index,index:e,mode:"default",type:"dataset"}))).dataset=g,f.index=f.datasetIndex=this.index;return f.active=!!b,f.mode=c,f}resolveDatasetElementOptions(a){return this._resolveElementOptions(this.datasetElementType.id,a)}resolveDataElementOptions(a,b){return this._resolveElementOptions(this.dataElementType.id,b,a)}_resolveElementOptions(a,b="default",c){let d="active"===b,e=this._cachedDataOpts,f=a+"-"+b,g=e[f],h=this.enableOptionSharing&&aa(c);if(g)return cu(g,h);let i=this.chart.config,j=i.datasetElementScopeKeys(this._type,a),k=d?[`${a}Hover`,"hover",a,""]:[a,""],l=i.getOptionScopes(this.getDataset(),j),m=Object.keys(bf.elements[a]),n=()=>this.getContext(c,d,b),o=i.resolveNamedOptions(l,m,n,k);return o.$shared&&(o.$shared=h,e[f]=Object.freeze(cu(o,h))),o}_resolveAnimations(a,b,c){let d,e=this.chart,f=this._cachedDataOpts,g=`animation-${b}`,h=f[g];if(h)return h;if(!1!==e.options.animation){let e=this.chart.config,f=e.datasetAnimationScopeKeys(this._type,b),g=e.getOptionScopes(this.getDataset(),f);d=e.createResolver(g,this.getContext(a,c,b))}let i=new ck(e,d&&d.animations);return d&&d._cacheable&&(f[g]=Object.freeze(i)),i}getSharedOptions(a){if(a.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},a))}includeOptions(a,b){return!b||ct(a)||this.chart._animationsDisabled}_getSharedOptions(a,b){let c=this.resolveDataElementOptions(a,b),d=this._sharedOptions,e=this.getSharedOptions(c),f=this.includeOptions(b,e)||e!==d;return this.updateSharedOptions(e,b,c),{sharedOptions:e,includeOptions:f}}updateElement(a,b,c,d){ct(d)?Object.assign(a,c):this._resolveAnimations(b,d).update(a,c)}updateSharedOptions(a,b,c){a&&!ct(b)&&this._resolveAnimations(void 0,b).update(a,c)}_setStyle(a,b,c,d){a.active=d;let e=this.getStyle(b,d);this._resolveAnimations(b,c,d).update(a,{options:!d&&this.getSharedOptions(e)||e})}removeHoverStyle(a,b,c){this._setStyle(a,c,"active",!1)}setHoverStyle(a,b,c){this._setStyle(a,c,"active",!0)}_removeDatasetHoverStyle(){let a=this._cachedMeta.dataset;a&&this._setStyle(a,void 0,"active",!1)}_setDatasetHoverStyle(){let a=this._cachedMeta.dataset;a&&this._setStyle(a,void 0,"active",!0)}_resyncElements(a){let b=this._data,c=this._cachedMeta.data;for(let[a,b,c]of this._syncList)this[a](b,c);this._syncList=[];let d=c.length,e=b.length,f=Math.min(e,d);f&&this.parse(0,f),e>d?this._insertElements(d,e-d,a):e<d&&this._removeElements(e,d-e)}_insertElements(a,b,c=!0){let d,e=this._cachedMeta,f=e.data,g=a+b,h=a=>{for(a.length+=b,d=a.length-1;d>=g;d--)a[d]=a[d-b]};for(h(f),d=a;d<g;++d)f[d]=new this.dataElementType;this._parsing&&h(e._parsed),this.parse(a,b),c&&this.updateElements(f,a,b,"reset")}updateElements(a,b,c,d){}_removeElements(a,b){let c=this._cachedMeta;if(this._parsing){let d=c._parsed.splice(a,b);c._stacked&&cs(c,d)}c.data.splice(a,b)}_sync(a){if(this._parsing)this._syncList.push(a);else{let[b,c,d]=a;this[b](c,d)}this.chart._dataChanges.push([this.index,...a])}_onDataPush(){let a=arguments.length;this._sync(["_insertElements",this.getDataset().data.length-a,a])}_onDataPop(){this._sync(["_removeElements",this._cachedMeta.data.length-1,1])}_onDataShift(){this._sync(["_removeElements",0,1])}_onDataSplice(a,b){b&&this._sync(["_removeElements",a,b]);let c=arguments.length-2;c&&this._sync(["_insertElements",a,c])}_onDataUnshift(){this._sync(["_insertElements",0,arguments.length])}}function cw(a,b,c,d){if(K(a)){let e,f,g,h,i,j;e=c.parse(a[0],d),g=Math.min(e,f=c.parse(a[1],d)),h=Math.max(e,f),i=g,j=h,Math.abs(g)>Math.abs(h)&&(i=h,j=g),b[c.axis]=j,b._custom={barStart:i,barEnd:j,start:e,end:f,min:g,max:h}}else b[c.axis]=c.parse(a,d);return b}function cx(a,b,c,d){let e,f,g,h,i=a.iScale,j=a.vScale,k=i.getLabels(),l=i===j,m=[];for(e=c,f=c+d;e<f;++e)h=b[e],(g={})[i.axis]=l||i.parse(k[e],e),m.push(cw(h,g,j,e));return m}function cy(a){return a&&void 0!==a.barStart&&void 0!==a.barEnd}function cz(a,b,c,d){var e,f,g;return d?cA((e=a,f=b,g=c,a=e===f?g:e===g?f:e),c,b):cA(a,b,c)}function cA(a,b,c){return"start"===a?b:"end"===a?c:a}class cB extends cv{static id="bar";static defaults={datasetElementType:!1,dataElementType:"bar",categoryPercentage:.8,barPercentage:.9,grouped:!0,animations:{numbers:{type:"number",properties:["x","y","base","width","height"]}}};static overrides={scales:{_index_:{type:"category",offset:!0,grid:{offset:!0}},_value_:{type:"linear",beginAtZero:!0}}};parsePrimitiveData(a,b,c,d){return cx(a,b,c,d)}parseArrayData(a,b,c,d){return cx(a,b,c,d)}parseObjectData(a,b,c,d){let e,f,g,h,{iScale:i,vScale:j}=a,{xAxisKey:k="x",yAxisKey:l="y"}=this._parsing,m="x"===i.axis?k:l,n="x"===j.axis?k:l,o=[];for(e=c,f=c+d;e<f;++e)h=b[e],(g={})[i.axis]=i.parse($(h,m),e),o.push(cw($(h,n),g,j,e));return o}updateRangeFromParsed(a,b,c,d){super.updateRangeFromParsed(a,b,c,d);let e=c._custom;e&&b===this._cachedMeta.vScale&&(a.min=Math.min(a.min,e.min),a.max=Math.max(a.max,e.max))}getMaxOverflow(){return 0}getLabelAndValue(a){let{iScale:b,vScale:c}=this._cachedMeta,d=this.getParsed(a),e=d._custom,f=cy(e)?"["+e.start+", "+e.end+"]":""+c.getLabelForValue(d[c.axis]);return{label:""+b.getLabelForValue(d[b.axis]),value:f}}initialize(){this.enableOptionSharing=!0,super.initialize(),this._cachedMeta.stack=this.getDataset().stack}update(a){let b=this._cachedMeta;this.updateElements(b.data,0,b.data.length,a)}updateElements(a,b,c,d){let e="reset"===d,{index:f,_cachedMeta:{vScale:g}}=this,h=g.getBasePixel(),i=g.isHorizontal(),j=this._getRuler(),{sharedOptions:k,includeOptions:l}=this._getSharedOptions(b,d);for(let m=b;m<b+c;m++){let b=this.getParsed(m),c=e||J(b[g.axis])?{base:h,head:h}:this._calculateBarValuePixels(m),n=this._calculateBarIndexPixels(m,j),o=(b._stacks||{})[g.axis],p={horizontal:i,base:c.base,enableBorderRadius:!o||cy(b._custom)||f===o._top||f===o._bottom,x:i?c.head:n.center,y:i?n.center:c.head,height:i?n.size:Math.abs(c.size),width:i?Math.abs(c.size):n.size};l&&(p.options=k||this.resolveDataElementOptions(m,a[m].active?"active":d));let q=p.options||a[m].options;!function(a,b,c,d){let e,f,g,h,i,j=b.borderSkipped,k={};if(!j){a.borderSkipped=k;return}if(!0===j){a.borderSkipped={top:!0,right:!0,bottom:!0,left:!0};return}let{start:l,end:m,reverse:n,top:o,bottom:p}=(a.horizontal?(e=a.base>a.x,f="left",g="right"):(e=a.base<a.y,f="bottom",g="top"),e?(h="end",i="start"):(h="start",i="end"),{start:f,end:g,reverse:e,top:h,bottom:i});"middle"===j&&c&&(a.enableBorderRadius=!0,(c._top||0)===d?j=o:(c._bottom||0)===d?j=p:(k[cz(p,l,m,n)]=!0,j=o)),k[cz(j,l,m,n)]=!0,a.borderSkipped=k}(p,q,o,f),function(a,{inflateAmount:b},c){a.inflateAmount="auto"===b?.33*(1===c):b}(p,q,j.ratio),this.updateElement(a[m],m,p,d)}}_getStacks(a,b){let{iScale:c}=this._cachedMeta,d=c.getMatchingVisibleMetas(this._type).filter(a=>a.controller.options.grouped),e=c.options.stacked,f=[],g=this._cachedMeta.controller.getParsed(b),h=g&&g[c.axis],i=a=>{let b=a._parsed.find(a=>a[c.axis]===h),d=b&&b[a.vScale.axis];if(J(d)||isNaN(d))return!0};for(let c of d)if(!(void 0!==b&&i(c))&&((!1===e||-1===f.indexOf(c.stack)||void 0===e&&void 0===c.stack)&&f.push(c.stack),c.index===a))break;return f.length||f.push(void 0),f}_getStackCount(a){return this._getStacks(void 0,a).length}_getAxisCount(){return this._getAxis().length}getFirstScaleIdForIndexAxis(){let a=this.chart.scales,b=this.chart.options.indexAxis;return Object.keys(a).filter(c=>a[c].axis===b).shift()}_getAxis(){let a={},b=this.getFirstScaleIdForIndexAxis();for(let c of this.chart.data.datasets)a[O("x"===this.chart.options.indexAxis?c.xAxisID:c.yAxisID,b)]=!0;return Object.keys(a)}_getStackIndex(a,b,c){let d=this._getStacks(a,c),e=void 0!==b?d.indexOf(b):-1;return -1===e?d.length-1:e}_getRuler(){let a,b,c=this.options,d=this._cachedMeta,e=d.iScale,f=[];for(a=0,b=d.data.length;a<b;++a)f.push(e.getPixelForValue(this.getParsed(a)[e.axis],a));let g=c.barThickness;return{min:g||function(a){let b,c,d,e,f=a.iScale,g=function(a,b){if(!a._cache.$bar){let c=a.getMatchingVisibleMetas(b),d=[];for(let b=0,e=c.length;b<e;b++)d=d.concat(c[b].controller.getAllParsedValues(a));a._cache.$bar=aF(d.sort((a,b)=>a-b))}return a._cache.$bar}(f,a.type),h=f._length,i=()=>{32767!==d&&-32768!==d&&(aa(e)&&(h=Math.min(h,Math.abs(d-e)||h)),e=d)};for(b=0,c=g.length;b<c;++b)d=f.getPixelForValue(g[b]),i();for(b=0,e=void 0,c=f.ticks.length;b<c;++b)d=f.getPixelForTick(b),i();return h}(d),pixels:f,start:e._startPixel,end:e._endPixel,stackCount:this._getStackCount(),scale:e,grouped:c.grouped,ratio:g?1:c.categoryPercentage*c.barPercentage}}_calculateBarValuePixels(a){let b,c,{_cachedMeta:{vScale:d,_stacked:e,index:f},options:{base:g,minBarLength:h}}=this,i=g||0,j=this.getParsed(a),k=j._custom,l=cy(k),m=j[d.axis],n=0,o=e?this.applyStack(d,j,e):m;o!==m&&(n=o-m,o=m),l&&(m=k.barStart,o=k.barEnd-k.barStart,0!==m&&am(m)!==am(k.barEnd)&&(n=0),n+=m);let p=J(g)||l?n:g,q=d.getPixelForValue(p);if(Math.abs(c=(b=this.chart.getDataVisibility(a)?d.getPixelForValue(n+o):q)-q)<h){var r;c=(0!==(r=c)?am(r):(d.isHorizontal()?1:-1)*(d.min>=i?1:-1))*h,m===i&&(q-=c/2);let a=d.getPixelForDecimal(0),g=d.getPixelForDecimal(1),k=Math.min(a,g);b=(q=Math.max(Math.min(q,Math.max(a,g)),k))+c,e&&!l&&(j._stacks[d.axis]._visualValues[f]=d.getValueForPixel(b)-d.getValueForPixel(q))}if(q===d.getPixelForValue(i)){let a=am(c)*d.getLineWidthForValue(i)/2;q+=a,c-=a}return{size:c,base:q,head:b,center:b+c/2}}_calculateBarIndexPixels(a,b){let c,d,e=b.scale,f=this.options,g=f.skipNull,h=O(f.maxBarThickness,1/0),i=this._getAxisCount();if(b.grouped){var j,k;let e,l,m,n,o,p,q,r,s,t=g?this._getStackCount(a):b.stackCount,u="flex"===f.barThickness?(j=t*i,l=(e=b.pixels)[a],m=a>0?e[a-1]:null,n=a<e.length-1?e[a+1]:null,o=f.categoryPercentage,null===m&&(m=l-(null===n?b.end-b.start:n-l)),null===n&&(n=l+l-m),p=l-(l-Math.min(m,n))/2*o,{chunk:Math.abs(n-m)/2*o/j,ratio:f.barPercentage,start:p}):(k=t*i,J(s=f.barThickness)?(q=b.min*f.categoryPercentage,r=f.barPercentage):(q=s*k,r=1),{chunk:q/k,ratio:r,start:b.pixels[a]-q/2}),v="x"===this.chart.options.indexAxis?this.getDataset().xAxisID:this.getDataset().yAxisID,w=this._getAxis().indexOf(O(v,this.getFirstScaleIdForIndexAxis())),x=this._getStackIndex(this.index,this._cachedMeta.stack,g?a:void 0)+w;c=u.start+u.chunk*x+u.chunk/2,d=Math.min(h,u.chunk*u.ratio)}else c=e.getPixelForValue(this.getParsed(a)[e.axis],a),d=Math.min(h,b.min*b.ratio);return{base:c-d/2,head:c+d/2,center:c,size:d}}draw(){let a=this._cachedMeta,b=a.vScale,c=a.data,d=c.length,e=0;for(;e<d;++e)null===this.getParsed(e)[b.axis]||c[e].hidden||c[e].draw(this._ctx)}}class cC extends cv{static id="bubble";static defaults={datasetElementType:!1,dataElementType:"point",animations:{numbers:{type:"number",properties:["x","y","borderWidth","radius"]}}};static overrides={scales:{x:{type:"linear"},y:{type:"linear"}}};initialize(){this.enableOptionSharing=!0,super.initialize()}parsePrimitiveData(a,b,c,d){let e=super.parsePrimitiveData(a,b,c,d);for(let a=0;a<e.length;a++)e[a]._custom=this.resolveDataElementOptions(a+c).radius;return e}parseArrayData(a,b,c,d){let e=super.parseArrayData(a,b,c,d);for(let a=0;a<e.length;a++){let d=b[c+a];e[a]._custom=O(d[2],this.resolveDataElementOptions(a+c).radius)}return e}parseObjectData(a,b,c,d){let e=super.parseObjectData(a,b,c,d);for(let a=0;a<e.length;a++){let d=b[c+a];e[a]._custom=O(d&&d.r&&+d.r,this.resolveDataElementOptions(a+c).radius)}return e}getMaxOverflow(){let a=this._cachedMeta.data,b=0;for(let c=a.length-1;c>=0;--c)b=Math.max(b,a[c].size(this.resolveDataElementOptions(c))/2);return b>0&&b}getLabelAndValue(a){let b=this._cachedMeta,c=this.chart.data.labels||[],{xScale:d,yScale:e}=b,f=this.getParsed(a),g=d.getLabelForValue(f.x),h=e.getLabelForValue(f.y),i=f._custom;return{label:c[a]||"",value:"("+g+", "+h+(i?", "+i:"")+")"}}update(a){let b=this._cachedMeta.data;this.updateElements(b,0,b.length,a)}updateElements(a,b,c,d){let e="reset"===d,{iScale:f,vScale:g}=this._cachedMeta,{sharedOptions:h,includeOptions:i}=this._getSharedOptions(b,d),j=f.axis,k=g.axis;for(let l=b;l<b+c;l++){let b=a[l],c=!e&&this.getParsed(l),m={},n=m[j]=e?f.getPixelForDecimal(.5):f.getPixelForValue(c[j]),o=m[k]=e?g.getBasePixel():g.getPixelForValue(c[k]);m.skip=isNaN(n)||isNaN(o),i&&(m.options=h||this.resolveDataElementOptions(l,b.active?"active":d),e&&(m.options.radius=0)),this.updateElement(b,l,m,d)}}resolveDataElementOptions(a,b){let c=this.getParsed(a),d=super.resolveDataElementOptions(a,b);d.$shared&&(d=Object.assign({},d,{$shared:!1}));let e=d.radius;return"active"!==b&&(d.radius=0),d.radius+=O(c&&c._custom,e),d}}class cD extends cv{static id="doughnut";static defaults={datasetElementType:!1,dataElementType:"arc",animation:{animateRotate:!0,animateScale:!1},animations:{numbers:{type:"number",properties:["circumference","endAngle","innerRadius","outerRadius","startAngle","x","y","offset","borderWidth","spacing"]}},cutout:"50%",rotation:0,circumference:360,radius:"100%",spacing:0,indexAxis:"r"};static descriptors={_scriptable:a=>"spacing"!==a,_indexable:a=>"spacing"!==a&&!a.startsWith("borderDash")&&!a.startsWith("hoverBorderDash")};static overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(a){let b=a.data,{labels:{pointStyle:c,textAlign:d,color:e,useBorderRadius:f,borderRadius:g}}=a.legend.options;return b.labels.length&&b.datasets.length?b.labels.map((b,h)=>{let i=a.getDatasetMeta(0).controller.getStyle(h);return{text:b,fillStyle:i.backgroundColor,fontColor:e,hidden:!a.getDataVisibility(h),lineDash:i.borderDash,lineDashOffset:i.borderDashOffset,lineJoin:i.borderJoinStyle,lineWidth:i.borderWidth,strokeStyle:i.borderColor,textAlign:d,pointStyle:c,borderRadius:f&&(g||i.borderRadius),index:h}}):[]}},onClick(a,b,c){c.chart.toggleDataVisibility(b.index),c.chart.update()}}}};constructor(a,b){super(a,b),this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(a,b){let c=this.getDataset().data,d=this._cachedMeta;if(!1===this._parsing)d._parsed=c;else{let e,f,g=a=>+c[a];if(L(c[a])){let{key:a="value"}=this._parsing;g=b=>+$(c[b],a)}for(e=a,f=a+b;e<f;++e)d._parsed[e]=g(e)}}_getRotation(){return ar(this.options.rotation-90)}_getCircumference(){return ar(this.options.circumference)}_getRotationExtents(){let a=ae,b=-ae;for(let c=0;c<this.chart.data.datasets.length;++c)if(this.chart.isDatasetVisible(c)&&this.chart.getDatasetMeta(c).type===this._type){let d=this.chart.getDatasetMeta(c).controller,e=d._getRotation(),f=d._getCircumference();a=Math.min(a,e),b=Math.max(b,e+f)}return{rotation:a,circumference:b-a}}update(a){let b,{chartArea:c}=this.chart,d=this._cachedMeta,e=d.data,f=this.getMaxBorderWidth()+this.getMaxOffset(e)+this.options.spacing,g=Math.max((Math.min(c.width,c.height)-f)/2,0),h=Math.min((b=this.options.cutout,"string"==typeof b&&b.endsWith("%")?parseFloat(b)/100:b/g),1),i=this._getRingWeight(this.index),{circumference:j,rotation:k}=this._getRotationExtents(),{ratioX:l,ratioY:m,offsetX:n,offsetY:o}=function(a,b,c){let d=1,e=1,f=0,g=0;if(b<ae){let h=a+b,i=Math.cos(a),j=Math.sin(a),k=Math.cos(h),l=Math.sin(h),m=(b,d,e)=>ax(b,a,h,!0)?1:Math.max(d,d*c,e,e*c),n=(b,d,e)=>ax(b,a,h,!0)?-1:Math.min(d,d*c,e,e*c),o=m(0,i,k),p=m(ai,j,l),q=n(ad,i,k),r=n(ad+ai,j,l);d=(o-q)/2,e=(p-r)/2,f=-(o+q)/2,g=-(p+r)/2}return{ratioX:d,ratioY:e,offsetX:f,offsetY:g}}(k,j,h),p=Math.max(Math.min((c.width-f)/l,(c.height-f)/m)/2,0),q=P(this.options.radius,p),r=Math.max(q*h,0),s=(q-r)/this._getVisibleDatasetWeightTotal();this.offsetX=n*q,this.offsetY=o*q,d.total=this.calculateTotal(),this.outerRadius=q-s*this._getRingWeightOffset(this.index),this.innerRadius=Math.max(this.outerRadius-s*i,0),this.updateElements(e,0,e.length,a)}_circumference(a,b){let c=this.options,d=this._cachedMeta,e=this._getCircumference();return b&&c.animation.animateRotate||!this.chart.getDataVisibility(a)||null===d._parsed[a]||d.data[a].hidden?0:this.calculateCircumference(d._parsed[a]*e/ae)}updateElements(a,b,c,d){let e,f="reset"===d,g=this.chart,h=g.chartArea,i=g.options.animation,j=(h.left+h.right)/2,k=(h.top+h.bottom)/2,l=f&&i.animateScale,m=l?0:this.innerRadius,n=l?0:this.outerRadius,{sharedOptions:o,includeOptions:p}=this._getSharedOptions(b,d),q=this._getRotation();for(e=0;e<b;++e)q+=this._circumference(e,f);for(e=b;e<b+c;++e){let b=this._circumference(e,f),c=a[e],g={x:j+this.offsetX,y:k+this.offsetY,startAngle:q,endAngle:q+b,circumference:b,outerRadius:n,innerRadius:m};p&&(g.options=o||this.resolveDataElementOptions(e,c.active?"active":d)),q+=b,this.updateElement(c,e,g,d)}}calculateTotal(){let a,b=this._cachedMeta,c=b.data,d=0;for(a=0;a<c.length;a++){let e=b._parsed[a];null!==e&&!isNaN(e)&&this.chart.getDataVisibility(a)&&!c[a].hidden&&(d+=Math.abs(e))}return d}calculateCircumference(a){let b=this._cachedMeta.total;return b>0&&!isNaN(a)?Math.abs(a)/b*ae:0}getLabelAndValue(a){let b=this._cachedMeta,c=this.chart,d=c.data.labels||[],e=aW(b._parsed[a],c.options.locale);return{label:d[a]||"",value:e}}getMaxBorderWidth(a){let b,c,d,e,f,g=0,h=this.chart;if(!a){for(b=0,c=h.data.datasets.length;b<c;++b)if(h.isDatasetVisible(b)){a=(d=h.getDatasetMeta(b)).data,e=d.controller;break}}if(!a)return 0;for(b=0,c=a.length;b<c;++b)"inner"!==(f=e.resolveDataElementOptions(b)).borderAlign&&(g=Math.max(g,f.borderWidth||0,f.hoverBorderWidth||0));return g}getMaxOffset(a){let b=0;for(let c=0,d=a.length;c<d;++c){let a=this.resolveDataElementOptions(c);b=Math.max(b,a.offset||0,a.hoverOffset||0)}return b}_getRingWeightOffset(a){let b=0;for(let c=0;c<a;++c)this.chart.isDatasetVisible(c)&&(b+=this._getRingWeight(c));return b}_getRingWeight(a){return Math.max(O(this.chart.data.datasets[a].weight,1),0)}_getVisibleDatasetWeightTotal(){return this._getRingWeightOffset(this.chart.data.datasets.length)||1}}class cE extends cv{static id="line";static defaults={datasetElementType:"line",dataElementType:"point",showLine:!0,spanGaps:!1};static overrides={scales:{_index_:{type:"category"},_value_:{type:"linear"}}};initialize(){this.enableOptionSharing=!0,this.supportsDecimation=!0,super.initialize()}update(a){let b=this._cachedMeta,{dataset:c,data:d=[],_dataset:e}=b,f=this.chart._animationsDisabled,{start:g,count:h}=aK(b,d,f);this._drawStart=g,this._drawCount=h,aL(b)&&(g=0,h=d.length),c._chart=this.chart,c._datasetIndex=this.index,c._decimated=!!e._decimated,c.points=d;let i=this.resolveDatasetElementOptions(a);this.options.showLine||(i.borderWidth=0),i.segment=this.options.segment,this.updateElement(c,void 0,{animated:!f,options:i},a),this.updateElements(d,g,h,a)}updateElements(a,b,c,d){let e="reset"===d,{iScale:f,vScale:g,_stacked:h,_dataset:i}=this._cachedMeta,{sharedOptions:j,includeOptions:k}=this._getSharedOptions(b,d),l=f.axis,m=g.axis,{spanGaps:n,segment:o}=this.options,p=ap(n)?n:1/0,q=this.chart._animationsDisabled||e||"none"===d,r=b+c,s=a.length,t=b>0&&this.getParsed(b-1);for(let c=0;c<s;++c){let n=a[c],s=q?n:{};if(c<b||c>=r){s.skip=!0;continue}let u=this.getParsed(c),v=J(u[m]),w=s[l]=f.getPixelForValue(u[l],c),x=s[m]=e||v?g.getBasePixel():g.getPixelForValue(h?this.applyStack(g,u,h):u[m],c);s.skip=isNaN(w)||isNaN(x)||v,s.stop=c>0&&Math.abs(u[l]-t[l])>p,o&&(s.parsed=u,s.raw=i.data[c]),k&&(s.options=j||this.resolveDataElementOptions(c,n.active?"active":d)),q||this.updateElement(n,c,s,d),t=u}}getMaxOverflow(){let a=this._cachedMeta,b=a.dataset,c=b.options&&b.options.borderWidth||0,d=a.data||[];return d.length?Math.max(c,d[0].size(this.resolveDataElementOptions(0)),d[d.length-1].size(this.resolveDataElementOptions(d.length-1)))/2:c}draw(){let a=this._cachedMeta;a.dataset.updateControlPoints(this.chart.chartArea,a.iScale.axis),super.draw()}}class cF extends cv{static id="polarArea";static defaults={dataElementType:"arc",animation:{animateRotate:!0,animateScale:!0},animations:{numbers:{type:"number",properties:["x","y","startAngle","endAngle","innerRadius","outerRadius"]}},indexAxis:"r",startAngle:0};static overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(a){let b=a.data;if(b.labels.length&&b.datasets.length){let{labels:{pointStyle:c,color:d}}=a.legend.options;return b.labels.map((b,e)=>{let f=a.getDatasetMeta(0).controller.getStyle(e);return{text:b,fillStyle:f.backgroundColor,strokeStyle:f.borderColor,fontColor:d,lineWidth:f.borderWidth,pointStyle:c,hidden:!a.getDataVisibility(e),index:e}})}return[]}},onClick(a,b,c){c.chart.toggleDataVisibility(b.index),c.chart.update()}}},scales:{r:{type:"radialLinear",angleLines:{display:!1},beginAtZero:!0,grid:{circular:!0},pointLabels:{display:!1},startAngle:0}}};constructor(a,b){super(a,b),this.innerRadius=void 0,this.outerRadius=void 0}getLabelAndValue(a){let b=this._cachedMeta,c=this.chart,d=c.data.labels||[],e=aW(b._parsed[a].r,c.options.locale);return{label:d[a]||"",value:e}}parseObjectData(a,b,c,d){return bN.bind(this)(a,b,c,d)}update(a){let b=this._cachedMeta.data;this._updateRadius(),this.updateElements(b,0,b.length,a)}getMinMax(){let a=this._cachedMeta,b={min:1/0,max:-1/0};return a.data.forEach((a,c)=>{let d=this.getParsed(c).r;!isNaN(d)&&this.chart.getDataVisibility(c)&&(d<b.min&&(b.min=d),d>b.max&&(b.max=d))}),b}_updateRadius(){let a=this.chart,b=a.chartArea,c=a.options,d=Math.max(Math.min(b.right-b.left,b.bottom-b.top)/2,0),e=Math.max(c.cutoutPercentage?d/100*c.cutoutPercentage:1,0),f=(d-e)/a.getVisibleDatasetCount();this.outerRadius=d-f*this.index,this.innerRadius=this.outerRadius-f}updateElements(a,b,c,d){let e,f="reset"===d,g=this.chart,h=g.options.animation,i=this._cachedMeta.rScale,j=i.xCenter,k=i.yCenter,l=i.getIndexAngle(0)-.5*ad,m=l,n=360/this.countVisibleElements();for(e=0;e<b;++e)m+=this._computeAngle(e,d,n);for(e=b;e<b+c;e++){let b=a[e],c=m,o=m+this._computeAngle(e,d,n),p=g.getDataVisibility(e)?i.getDistanceFromCenterForValue(this.getParsed(e).r):0;m=o,f&&(h.animateScale&&(p=0),h.animateRotate&&(c=o=l));let q={x:j,y:k,innerRadius:0,outerRadius:p,startAngle:c,endAngle:o,options:this.resolveDataElementOptions(e,b.active?"active":d)};this.updateElement(b,e,q,d)}}countVisibleElements(){let a=this._cachedMeta,b=0;return a.data.forEach((a,c)=>{!isNaN(this.getParsed(c).r)&&this.chart.getDataVisibility(c)&&b++}),b}_computeAngle(a,b,c){return this.chart.getDataVisibility(a)?ar(this.resolveDataElementOptions(a,b).angle||c):0}}class cG extends cD{static id="pie";static defaults={cutout:0,rotation:0,circumference:360,radius:"100%"}}class cH extends cv{static id="radar";static defaults={datasetElementType:"line",dataElementType:"point",indexAxis:"r",showLine:!0,elements:{line:{fill:"start"}}};static overrides={aspectRatio:1,scales:{r:{type:"radialLinear"}}};getLabelAndValue(a){let b=this._cachedMeta.vScale,c=this.getParsed(a);return{label:b.getLabels()[a],value:""+b.getLabelForValue(c[b.axis])}}parseObjectData(a,b,c,d){return bN.bind(this)(a,b,c,d)}update(a){let b=this._cachedMeta,c=b.dataset,d=b.data||[],e=b.iScale.getLabels();if(c.points=d,"resize"!==a){let b=this.resolveDatasetElementOptions(a);this.options.showLine||(b.borderWidth=0);let f={_loop:!0,_fullLoop:e.length===d.length,options:b};this.updateElement(c,void 0,f,a)}this.updateElements(d,0,d.length,a)}updateElements(a,b,c,d){let e=this._cachedMeta.rScale,f="reset"===d;for(let g=b;g<b+c;g++){let b=a[g],c=this.resolveDataElementOptions(g,b.active?"active":d),h=e.getPointPositionForValue(g,this.getParsed(g).r),i=f?e.xCenter:h.x,j=f?e.yCenter:h.y,k={x:i,y:j,angle:h.angle,skip:isNaN(i)||isNaN(j),options:c};this.updateElement(b,g,k,d)}}}class cI extends cv{static id="scatter";static defaults={datasetElementType:!1,dataElementType:"point",showLine:!1,fill:!1};static overrides={interaction:{mode:"point"},scales:{x:{type:"linear"},y:{type:"linear"}}};getLabelAndValue(a){let b=this._cachedMeta,c=this.chart.data.labels||[],{xScale:d,yScale:e}=b,f=this.getParsed(a),g=d.getLabelForValue(f.x),h=e.getLabelForValue(f.y);return{label:c[a]||"",value:"("+g+", "+h+")"}}update(a){let b=this._cachedMeta,{data:c=[]}=b,d=this.chart._animationsDisabled,{start:e,count:f}=aK(b,c,d);if(this._drawStart=e,this._drawCount=f,aL(b)&&(e=0,f=c.length),this.options.showLine){this.datasetElementType||this.addElements();let{dataset:e,_dataset:f}=b;e._chart=this.chart,e._datasetIndex=this.index,e._decimated=!!f._decimated,e.points=c;let g=this.resolveDatasetElementOptions(a);g.segment=this.options.segment,this.updateElement(e,void 0,{animated:!d,options:g},a)}else this.datasetElementType&&(delete b.dataset,this.datasetElementType=!1);this.updateElements(c,e,f,a)}addElements(){let{showLine:a}=this.options;!this.datasetElementType&&a&&(this.datasetElementType=this.chart.registry.getElement("line")),super.addElements()}updateElements(a,b,c,d){let e="reset"===d,{iScale:f,vScale:g,_stacked:h,_dataset:i}=this._cachedMeta,j=this.resolveDataElementOptions(b,d),k=this.getSharedOptions(j),l=this.includeOptions(d,k),m=f.axis,n=g.axis,{spanGaps:o,segment:p}=this.options,q=ap(o)?o:1/0,r=this.chart._animationsDisabled||e||"none"===d,s=b>0&&this.getParsed(b-1);for(let j=b;j<b+c;++j){let b=a[j],c=this.getParsed(j),o=r?b:{},t=J(c[n]),u=o[m]=f.getPixelForValue(c[m],j),v=o[n]=e||t?g.getBasePixel():g.getPixelForValue(h?this.applyStack(g,c,h):c[n],j);o.skip=isNaN(u)||isNaN(v)||t,o.stop=j>0&&Math.abs(c[m]-s[m])>q,p&&(o.parsed=c,o.raw=i.data[j]),l&&(o.options=k||this.resolveDataElementOptions(j,b.active?"active":d)),r||this.updateElement(b,j,o,d),s=c}this.updateSharedOptions(k,d,j)}getMaxOverflow(){let a=this._cachedMeta,b=a.data||[];if(!this.options.showLine){let a=0;for(let c=b.length-1;c>=0;--c)a=Math.max(a,b[c].size(this.resolveDataElementOptions(c))/2);return a>0&&a}let c=a.dataset,d=c.options&&c.options.borderWidth||0;return b.length?Math.max(d,b[0].size(this.resolveDataElementOptions(0)),b[b.length-1].size(this.resolveDataElementOptions(b.length-1)))/2:d}}var cJ=Object.freeze({__proto__:null,BarController:cB,BubbleController:cC,DoughnutController:cD,LineController:cE,PieController:cG,PolarAreaController:cF,RadarController:cH,ScatterController:cI});function cK(){throw Error("This method is not implemented: Check that a complete date adapter is provided.")}class cL{static override(a){Object.assign(cL.prototype,a)}options;constructor(a){this.options=a||{}}init(){}formats(){return cK()}parse(){return cK()}format(){return cK()}add(){return cK()}diff(){return cK()}startOf(){return cK()}endOf(){return cK()}}function cM(a,b,c,d,e){let f=a.getSortedVisibleDatasetMetas(),g=c[b];for(let a=0,c=f.length;a<c;++a){let{index:c,data:h}=f[a],{lo:i,hi:j}=function(a,b,c,d){let{controller:e,data:f,_sorted:g}=a,h=e._cachedMeta.iScale,i=a.dataset&&a.dataset.options?a.dataset.options.spanGaps:null;if(h&&b===h.axis&&"r"!==b&&g&&f.length){let g=h._reversePixels?aC:aB;if(d){if(e._sharedOptions){let a=f[0],d="function"==typeof a.getRange&&a.getRange(b);if(d){let a=g(f,b,c-d),e=g(f,b,c+d);return{lo:a.lo,hi:e.hi}}}}else{let d=g(f,b,c);if(i){let{vScale:b}=e._cachedMeta,{_parsed:c}=a,f=c.slice(0,d.lo+1).reverse().findIndex(a=>!J(a[b.axis]));d.lo-=Math.max(0,f);let g=c.slice(d.hi).findIndex(a=>!J(a[b.axis]));d.hi+=Math.max(0,g)}return d}}return{lo:0,hi:f.length-1}}(f[a],b,g,e);for(let a=i;a<=j;++a){let b=h[a];b.skip||d(b,c,a)}}}function cN(a,b,c,d,e){let f=[];return(e||a.isPointInArea(b))&&cM(a,c,b,function(c,g,h){(e||bl(c,a.chartArea,0))&&c.inRange(b.x,b.y,d)&&f.push({element:c,datasetIndex:g,index:h})},!0),f}function cO(a,b,c,d,e,f){let g,h,i,j,k,l;return f||a.isPointInArea(b)?"r"!==c||d?(g=[],h=-1!==c.indexOf("x"),i=-1!==c.indexOf("y"),j=function(a,b){return Math.sqrt(Math.pow(h?Math.abs(a.x-b.x):0,2)+Math.pow(i?Math.abs(a.y-b.y):0,2))},k=1/0,cM(a,c,b,function(c,h,i){let l=c.inRange(b.x,b.y,e);if(d&&!l)return;let m=c.getCenterPoint(e);if(!(f||a.isPointInArea(m))&&!l)return;let n=j(b,m);n<k?(g=[{element:c,datasetIndex:h,index:i}],k=n):n===k&&g.push({element:c,datasetIndex:h,index:i})}),g):(l=[],cM(a,c,b,function(a,c,d){let{startAngle:f,endAngle:g}=a.getProps(["startAngle","endAngle"],e),{angle:h}=at(a,{x:b.x,y:b.y});ax(h,f,g)&&l.push({element:a,datasetIndex:c,index:d})}),l):[]}function cP(a,b,c,d,e){let f=[],g="x"===c?"inXRange":"inYRange",h=!1;return(cM(a,c,b,(a,d,i)=>{a[g]&&a[g](b[c],e)&&(f.push({element:a,datasetIndex:d,index:i}),h=h||a.inRange(b.x,b.y,e))}),d&&!h)?[]:f}var cQ={modes:{index(a,b,c,d){let e=bY(b,a),f=c.axis||"x",g=c.includeInvisible||!1,h=c.intersect?cN(a,e,f,d,g):cO(a,e,f,!1,d,g),i=[];return h.length?(a.getSortedVisibleDatasetMetas().forEach(a=>{let b=h[0].index,c=a.data[b];c&&!c.skip&&i.push({element:c,datasetIndex:a.index,index:b})}),i):[]},dataset(a,b,c,d){let e=bY(b,a),f=c.axis||"xy",g=c.includeInvisible||!1,h=c.intersect?cN(a,e,f,d,g):cO(a,e,f,!1,d,g);if(h.length>0){let b=h[0].datasetIndex,c=a.getDatasetMeta(b).data;h=[];for(let a=0;a<c.length;++a)h.push({element:c[a],datasetIndex:b,index:a})}return h},point(a,b,c,d){let e=bY(b,a);return cN(a,e,c.axis||"xy",d,c.includeInvisible||!1)},nearest(a,b,c,d){let e=bY(b,a),f=c.axis||"xy",g=c.includeInvisible||!1;return cO(a,e,f,c.intersect,d,g)},x(a,b,c,d){let e=bY(b,a);return cP(a,e,"x",c.intersect,d)},y(a,b,c,d){let e=bY(b,a);return cP(a,e,"y",c.intersect,d)}}};let cR=["left","top","right","bottom"];function cS(a,b){return a.filter(a=>a.pos===b)}function cT(a,b){return a.filter(a=>-1===cR.indexOf(a.pos)&&a.box.axis===b)}function cU(a,b){return a.sort((a,c)=>{let d=b?c:a,e=b?a:c;return d.weight===e.weight?d.index-e.index:d.weight-e.weight})}function cV(a,b,c,d){return Math.max(a[c],b[c])+Math.max(a[d],b[d])}function cW(a,b){a.top=Math.max(a.top,b.top),a.left=Math.max(a.left,b.left),a.bottom=Math.max(a.bottom,b.bottom),a.right=Math.max(a.right,b.right)}function cX(a,b,c,d){let e,f,g,h,i,j,k=[];for(e=0,f=a.length,i=0;e<f;++e){(h=(g=a[e]).box).update(g.width||b.w,g.height||b.h,function(a,b){let c=b.maxPadding;return function(a){let d={left:0,top:0,right:0,bottom:0};return a.forEach(a=>{d[a]=Math.max(b[a],c[a])}),d}(a?["left","right"]:["top","bottom"])}(g.horizontal,b));let{same:f,other:l}=function(a,b,c,d){let{pos:e,box:f}=c,g=a.maxPadding;if(!L(e)){c.size&&(a[e]-=c.size);let b=d[c.stack]||{size:0,count:1};b.size=Math.max(b.size,c.horizontal?f.height:f.width),c.size=b.size/b.count,a[e]+=c.size}f.getPadding&&cW(g,f.getPadding());let h=Math.max(0,b.outerWidth-cV(g,a,"left","right")),i=Math.max(0,b.outerHeight-cV(g,a,"top","bottom")),j=h!==a.w,k=i!==a.h;return a.w=h,a.h=i,c.horizontal?{same:j,other:k}:{same:k,other:j}}(b,c,g,d);i|=f&&k.length,j=j||l,h.fullSize||k.push(g)}return i&&cX(k,b,c,d)||j}function cY(a,b,c,d,e){a.top=c,a.left=b,a.right=b+d,a.bottom=c+e,a.width=d,a.height=e}function cZ(a,b,c,d){let e=c.padding,{x:f,y:g}=b;for(let h of a){let a=h.box,i=d[h.stack]||{count:1,placed:0,weight:1},j=h.stackWeight/i.weight||1;if(h.horizontal){let d=b.w*j,f=i.size||a.height;aa(i.start)&&(g=i.start),a.fullSize?cY(a,e.left,g,c.outerWidth-e.right-e.left,f):cY(a,b.left+i.placed,g,d,f),i.start=g,i.placed+=d,g=a.bottom}else{let d=b.h*j,g=i.size||a.width;aa(i.start)&&(f=i.start),a.fullSize?cY(a,f,e.top,g,c.outerHeight-e.bottom-e.top):cY(a,f,b.top+i.placed,g,d),i.start=f,i.placed+=d,f=a.right}}b.x=f,b.y=g}var c$={addBox(a,b){a.boxes||(a.boxes=[]),b.fullSize=b.fullSize||!1,b.position=b.position||"top",b.weight=b.weight||0,b._layers=b._layers||function(){return[{z:0,draw(a){b.draw(a)}}]},a.boxes.push(b)},removeBox(a,b){let c=a.boxes?a.boxes.indexOf(b):-1;-1!==c&&a.boxes.splice(c,1)},configure(a,b,c){b.fullSize=c.fullSize,b.position=c.position,b.weight=c.weight},update(a,b,c,d){let e,f,g,h,i,j,k,l;if(!a)return;let m=by(a.options.layout.padding),n=Math.max(b-m.width,0),o=Math.max(c-m.height,0),p=(f=cU((e=function(a){let b,c,d,e,f,g,h=[];for(b=0,c=(a||[]).length;b<c;++b)d=a[b],({position:e,options:{stack:f,stackWeight:g=1}}=d),h.push({index:b,box:d,pos:e,horizontal:d.isHorizontal(),weight:d.weight,stack:f&&e+f,stackWeight:g});return h}(a.boxes)).filter(a=>a.box.fullSize),!0),g=cU(cS(e,"left"),!0),h=cU(cS(e,"right")),i=cU(cS(e,"top"),!0),j=cU(cS(e,"bottom")),k=cT(e,"x"),l=cT(e,"y"),{fullSize:f,leftAndTop:g.concat(i),rightAndBottom:h.concat(l).concat(j).concat(k),chartArea:cS(e,"chartArea"),vertical:g.concat(h).concat(l),horizontal:i.concat(j).concat(k)}),q=p.vertical,r=p.horizontal;R(a.boxes,a=>{"function"==typeof a.beforeLayout&&a.beforeLayout()});let s=Object.freeze({outerWidth:b,outerHeight:c,padding:m,availableWidth:n,availableHeight:o,vBoxMaxWidth:n/2/(q.reduce((a,b)=>b.box.options&&!1===b.box.options.display?a:a+1,0)||1),hBoxMaxHeight:o/2}),t=Object.assign({},m);cW(t,by(d));let u=Object.assign({maxPadding:t,w:n,h:o,x:m.left,y:m.top},m),v=function(a,b){let c,d,e,f=function(a){let b={};for(let c of a){let{stack:a,pos:d,stackWeight:e}=c;if(!a||!cR.includes(d))continue;let f=b[a]||(b[a]={count:0,placed:0,weight:0,size:0});f.count++,f.weight+=e}return b}(a),{vBoxMaxWidth:g,hBoxMaxHeight:h}=b;for(c=0,d=a.length;c<d;++c){let{fullSize:d}=(e=a[c]).box,i=f[e.stack],j=i&&e.stackWeight/i.weight;e.horizontal?(e.width=j?j*g:d&&b.availableWidth,e.height=h):(e.width=g,e.height=j?j*h:d&&b.availableHeight)}return f}(q.concat(r),s);cX(p.fullSize,u,s,v),cX(q,u,s,v),cX(r,u,s,v)&&cX(q,u,s,v);let w=u.maxPadding;function x(a){let b=Math.max(w[a]-u[a],0);return u[a]+=b,b}u.y+=x("top"),u.x+=x("left"),x("right"),x("bottom"),cZ(p.leftAndTop,u,s,v),u.x+=u.w,u.y+=u.h,cZ(p.rightAndBottom,u,s,v),a.chartArea={left:u.left,top:u.top,right:u.left+u.w,bottom:u.top+u.h,height:u.h,width:u.w},R(p.chartArea,b=>{let c=b.box;Object.assign(c,a.chartArea),c.update(u.w,u.h,{left:0,top:0,right:0,bottom:0})})}};class c_{acquireContext(a,b){}releaseContext(a){return!1}addEventListener(a,b,c){}removeEventListener(a,b,c){}getDevicePixelRatio(){return 1}getMaximumSize(a,b,c,d){return b=Math.max(0,b||a.width),c=c||a.height,{width:b,height:Math.max(0,d?Math.floor(b/d):c)}}isAttached(a){return!0}updateConfig(a){}}class c0 extends c_{acquireContext(a){return a&&a.getContext&&a.getContext("2d")||null}updateConfig(a){a.options.animation=!1}}let c1="$chartjs",c2={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},c3=a=>null===a||""===a,c4=!!b_&&{passive:!0};function c5(a,b){for(let c of a)if(c===b||c.contains(b))return!0}function c6(a,b,c){let d=a.canvas,e=new MutationObserver(a=>{let b=!1;for(let c of a)b=(b=b||c5(c.addedNodes,d))&&!c5(c.removedNodes,d);b&&c()});return e.observe(document,{childList:!0,subtree:!0}),e}function c7(a,b,c){let d=a.canvas,e=new MutationObserver(a=>{let b=!1;for(let c of a)b=(b=b||c5(c.removedNodes,d))&&!c5(c.addedNodes,d);b&&c()});return e.observe(document,{childList:!0,subtree:!0}),e}let c8=new Map,c9=0;function da(){let a=window.devicePixelRatio;a!==c9&&(c9=a,c8.forEach((b,c)=>{c.currentDevicePixelRatio!==a&&b()}))}function db(a,b,c){let d=a.canvas,e=d&&bT(d);if(!e)return;let f=aH((a,b)=>{let d=e.clientWidth;c(a,b),d<e.clientWidth&&c()},window),g=new ResizeObserver(a=>{let b=a[0],c=b.contentRect.width,d=b.contentRect.height;(0!==c||0!==d)&&f(c,d)});return g.observe(e),c8.size||window.addEventListener("resize",da),c8.set(a,f),g}function dc(a,b,c){c&&c.disconnect(),"resize"===b&&(c8.delete(a),c8.size||window.removeEventListener("resize",da))}function dd(a,b,c){let d=a.canvas,e=aH(b=>{null!==a.ctx&&c(function(a,b){let c=c2[a.type]||a.type,{x:d,y:e}=bY(a,b);return{type:c,chart:b,native:a,x:void 0!==d?d:null,y:void 0!==e?e:null}}(b,a))},a);return d&&d.addEventListener(b,e,c4),e}class de extends c_{acquireContext(a,b){let c=a&&a.getContext&&a.getContext("2d");return c&&c.canvas===a?(!function(a,b){let c=a.style,d=a.getAttribute("height"),e=a.getAttribute("width");if(a[c1]={initial:{height:d,width:e,style:{display:c.display,height:c.height,width:c.width}}},c.display=c.display||"block",c.boxSizing=c.boxSizing||"border-box",c3(e)){let b=b0(a,"width");void 0!==b&&(a.width=b)}if(c3(d))if(""===a.style.height)a.height=a.width/(b||2);else{let b=b0(a,"height");void 0!==b&&(a.height=b)}}(a,b),c):null}releaseContext(a){let b=a.canvas;if(!b[c1])return!1;let c=b[c1].initial;["height","width"].forEach(a=>{let d=c[a];J(d)?b.removeAttribute(a):b.setAttribute(a,d)});let d=c.style||{};return Object.keys(d).forEach(a=>{b.style[a]=d[a]}),b.width=b.width,delete b[c1],!0}addEventListener(a,b,c){this.removeEventListener(a,b);let d=a.$proxies||(a.$proxies={}),e={attach:c6,detach:c7,resize:db}[b]||dd;d[b]=e(a,b,c)}removeEventListener(a,b){let c=a.$proxies||(a.$proxies={}),d=c[b];d&&((({attach:dc,detach:dc,resize:dc})[b]||function(a,b,c){a&&a.canvas&&a.canvas.removeEventListener(b,c,c4)})(a,b,d),c[b]=void 0)}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(a,b,c,d){return function(a,b,c,d){let e=bV(a),f=bX(e,"margin"),g=bU(e.maxWidth,a,"clientWidth")||ag,h=bU(e.maxHeight,a,"clientHeight")||ag,i=function(a,b,c){let d,e;if(void 0===b||void 0===c){let f=a&&bT(a);if(f){let a=f.getBoundingClientRect(),g=bV(f),h=bX(g,"border","width"),i=bX(g,"padding");b=a.width-i.width-h.width,c=a.height-i.height-h.height,d=bU(g.maxWidth,f,"clientWidth"),e=bU(g.maxHeight,f,"clientHeight")}else b=a.clientWidth,c=a.clientHeight}return{width:b,height:c,maxWidth:d||ag,maxHeight:e||ag}}(a,b,c),{width:j,height:k}=i;if("content-box"===e.boxSizing){let a=bX(e,"border","width"),b=bX(e,"padding");j-=b.width+a.width,k-=b.height+a.height}return j=Math.max(0,j-f.width),k=Math.max(0,d?j/d:k-f.height),j=bZ(Math.min(j,g,i.maxWidth)),k=bZ(Math.min(k,h,i.maxHeight)),j&&!k&&(k=bZ(j/2)),(void 0!==b||void 0!==c)&&d&&i.height&&k>i.height&&(j=bZ(Math.floor((k=i.height)*d))),{width:j,height:k}}(a,b,c,d)}isAttached(a){let b=a&&bT(a);return!!(b&&b.isConnected)}}class df{static defaults={};static defaultRoutes=void 0;x;y;active=!1;options;$animations;tooltipPosition(a){let{x:b,y:c}=this.getProps(["x","y"],a);return{x:b,y:c}}hasValue(){return ap(this.x)&&ap(this.y)}getProps(a,b){let c=this.$animations;if(!b||!c)return this;let d={};return a.forEach(a=>{d[a]=c[a]&&c[a].active()?c[a]._to:this[a]}),d}}function dg(a,b,c,d,e){let f,g,h,i=O(d,0),j=Math.min(O(e,a.length),a.length),k=0;for(c=Math.ceil(c),e&&(c=(f=e-d)/Math.floor(f/c)),h=i;h<0;)h=Math.round(i+ ++k*c);for(g=Math.max(i,0);g<j;g++)g===h&&(b.push(a[g]),h=Math.round(i+ ++k*c))}let dh=(a,b,c)=>"top"===b||"left"===b?a[b]+c:a[b]-c,di=(a,b)=>Math.min(b||a,a);function dj(a,b){let c=[],d=a.length/b,e=a.length,f=0;for(;f<e;f+=d)c.push(a[Math.floor(f)]);return c}function dk(a){return a.drawTicks?a.tickLength:0}function dl(a,b){if(!a.display)return 0;let c=bz(a.font,b),d=by(a.padding);return(K(a.text)?a.text.length:1)*c.lineHeight+d.height}class dm extends df{constructor(a){super(),this.id=a.id,this.type=a.type,this.options=void 0,this.ctx=a.ctx,this.chart=a.chart,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this._margins={left:0,right:0,top:0,bottom:0},this.maxWidth=void 0,this.maxHeight=void 0,this.paddingTop=void 0,this.paddingBottom=void 0,this.paddingLeft=void 0,this.paddingRight=void 0,this.axis=void 0,this.labelRotation=void 0,this.min=void 0,this.max=void 0,this._range=void 0,this.ticks=[],this._gridLineItems=null,this._labelItems=null,this._labelSizes=null,this._length=0,this._maxLength=0,this._longestTextCache={},this._startPixel=void 0,this._endPixel=void 0,this._reversePixels=!1,this._userMax=void 0,this._userMin=void 0,this._suggestedMax=void 0,this._suggestedMin=void 0,this._ticksLength=0,this._borderValue=0,this._cache={},this._dataLimitsCached=!1,this.$context=void 0}init(a){this.options=a.setContext(this.getContext()),this.axis=a.axis,this._userMin=this.parse(a.min),this._userMax=this.parse(a.max),this._suggestedMin=this.parse(a.suggestedMin),this._suggestedMax=this.parse(a.suggestedMax)}parse(a,b){return a}getUserBounds(){let{_userMin:a,_userMax:b,_suggestedMin:c,_suggestedMax:d}=this;return a=N(a,1/0),b=N(b,-1/0),c=N(c,1/0),d=N(d,-1/0),{min:N(a,c),max:N(b,d),minDefined:M(a),maxDefined:M(b)}}getMinMax(a){let b,{min:c,max:d,minDefined:e,maxDefined:f}=this.getUserBounds();if(e&&f)return{min:c,max:d};let g=this.getMatchingVisibleMetas();for(let h=0,i=g.length;h<i;++h)b=g[h].controller.getMinMax(this,a),e||(c=Math.min(c,b.min)),f||(d=Math.max(d,b.max));return c=f&&c>d?d:c,d=e&&c>d?c:d,{min:N(c,N(d,c)),max:N(d,N(c,d))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){let a=this.chart.data;return this.options.labels||(this.isHorizontal()?a.xLabels:a.yLabels)||a.labels||[]}getLabelItems(a=this.chart.chartArea){return this._labelItems||(this._labelItems=this._computeLabelItems(a))}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){Q(this.options.beforeUpdate,[this])}update(a,b,c){let{beginAtZero:d,grace:e,ticks:f}=this.options,g=f.sampleSize;this.beforeUpdate(),this.maxWidth=a,this.maxHeight=b,this._margins=c=Object.assign({left:0,right:0,top:0,bottom:0},c),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+c.left+c.right:this.height+c.top+c.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=function(a,b,c){let{min:d,max:e}=a,f=P(b,(e-d)/2),g=(a,b)=>c&&0===a?0:a+b;return{min:g(d,-Math.abs(f)),max:g(e,f)}}(this,e,d),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();let h=g<this.ticks.length;this._convertTicksToLabels(h?dj(this.ticks,g):this.ticks),this.configure(),this.beforeCalculateLabelRotation(),this.calculateLabelRotation(),this.afterCalculateLabelRotation(),f.display&&(f.autoSkip||"auto"===f.source)&&(this.ticks=function(a,b){var c;let d,e,f=a.options.ticks,g=(d=(c=a).options.offset,e=c._tickSize(),Math.floor(Math.min(c._length/e+ +!d,c._maxLength/e))),h=Math.min(f.maxTicksLimit||g,g),i=f.major.enabled?function(a){let b,c,d=[];for(b=0,c=a.length;b<c;b++)a[b].major&&d.push(b);return d}(b):[],j=i.length,k=i[0],l=i[j-1],m=[];if(j>h)return function(a,b,c,d){let e,f=0,g=c[0];for(e=0,d=Math.ceil(d);e<a.length;e++)e===g&&(b.push(a[e]),g=c[++f*d])}(b,m,i,j/h),m;let n=function(a,b,c){let d=function(a){let b,c,d=a.length;if(d<2)return!1;for(c=a[0],b=1;b<d;++b)if(a[b]-a[b-1]!==c)return!1;return c}(a),e=b.length/c;if(!d)return Math.max(e,1);let f=function(a){let b,c=[],d=Math.sqrt(a);for(b=1;b<d;b++)a%b==0&&(c.push(b),c.push(a/b));return d===(0|d)&&c.push(d),c.sort((a,b)=>a-b).pop(),c}(d);for(let a=0,b=f.length-1;a<b;a++){let b=f[a];if(b>e)return b}return Math.max(e,1)}(i,b,h);if(j>0){let a,c,d=j>1?Math.round((l-k)/(j-1)):null;for(dg(b,m,n,J(d)?0:k-d,k),a=0,c=j-1;a<c;a++)dg(b,m,n,i[a],i[a+1]);return dg(b,m,n,l,J(d)?b.length:l+d),m}return dg(b,m,n),m}(this,this.ticks),this._labelSizes=null,this.afterAutoSkip()),h&&this._convertTicksToLabels(this.ticks),this.beforeFit(),this.fit(),this.afterFit(),this.afterUpdate()}configure(){let a,b,c=this.options.reverse;this.isHorizontal()?(a=this.left,b=this.right):(a=this.top,b=this.bottom,c=!c),this._startPixel=a,this._endPixel=b,this._reversePixels=c,this._length=b-a,this._alignToPixels=this.options.alignToPixels}afterUpdate(){Q(this.options.afterUpdate,[this])}beforeSetDimensions(){Q(this.options.beforeSetDimensions,[this])}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=0,this.right=this.width):(this.height=this.maxHeight,this.top=0,this.bottom=this.height),this.paddingLeft=0,this.paddingTop=0,this.paddingRight=0,this.paddingBottom=0}afterSetDimensions(){Q(this.options.afterSetDimensions,[this])}_callHooks(a){this.chart.notifyPlugins(a,this.getContext()),Q(this.options[a],[this])}beforeDataLimits(){this._callHooks("beforeDataLimits")}determineDataLimits(){}afterDataLimits(){this._callHooks("afterDataLimits")}beforeBuildTicks(){this._callHooks("beforeBuildTicks")}buildTicks(){return[]}afterBuildTicks(){this._callHooks("afterBuildTicks")}beforeTickToLabelConversion(){Q(this.options.beforeTickToLabelConversion,[this])}generateTickLabels(a){let b,c,d,e=this.options.ticks;for(b=0,c=a.length;b<c;b++)(d=a[b]).label=Q(e.callback,[d.value,b,a],this)}afterTickToLabelConversion(){Q(this.options.afterTickToLabelConversion,[this])}beforeCalculateLabelRotation(){Q(this.options.beforeCalculateLabelRotation,[this])}calculateLabelRotation(){let a,b,c,d=this.options,e=d.ticks,f=di(this.ticks.length,d.ticks.maxTicksLimit),g=e.minRotation||0,h=e.maxRotation,i=g;if(!this._isVisible()||!e.display||g>=h||f<=1||!this.isHorizontal()){this.labelRotation=g;return}let j=this._getLabelSizes(),k=j.widest.width,l=j.highest.height,m=ay(this.chart.width-k,0,this.maxWidth);k+6>(a=d.offset?this.maxWidth/f:m/(f-1))&&(a=m/(f-(d.offset?.5:1)),b=this.maxHeight-dk(d.grid)-e.padding-dl(d.title,this.chart.options.font),c=Math.sqrt(k*k+l*l),i=Math.max(g,Math.min(h,i=180/ad*Math.min(Math.asin(ay((j.highest.height+6)/a,-1,1)),Math.asin(ay(b/c,-1,1))-Math.asin(ay(l/c,-1,1)))))),this.labelRotation=i}afterCalculateLabelRotation(){Q(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){Q(this.options.beforeFit,[this])}fit(){let a={width:0,height:0},{chart:b,options:{ticks:c,title:d,grid:e}}=this,f=this._isVisible(),g=this.isHorizontal();if(f){let f=dl(d,b.options.font);if(g?(a.width=this.maxWidth,a.height=dk(e)+f):(a.height=this.maxHeight,a.width=dk(e)+f),c.display&&this.ticks.length){let{first:b,last:d,widest:e,highest:f}=this._getLabelSizes(),h=2*c.padding,i=ar(this.labelRotation),j=Math.cos(i),k=Math.sin(i);if(g){let b=c.mirror?0:k*e.width+j*f.height;a.height=Math.min(this.maxHeight,a.height+b+h)}else{let b=c.mirror?0:j*e.width+k*f.height;a.width=Math.min(this.maxWidth,a.width+b+h)}this._calculatePadding(b,d,k,j)}}this._handleMargins(),g?(this.width=this._length=b.width-this._margins.left-this._margins.right,this.height=a.height):(this.width=a.width,this.height=this._length=b.height-this._margins.top-this._margins.bottom)}_calculatePadding(a,b,c,d){let{ticks:{align:e,padding:f},position:g}=this.options,h=0!==this.labelRotation,i="top"!==g&&"x"===this.axis;if(this.isHorizontal()){let g=this.getPixelForTick(0)-this.left,j=this.right-this.getPixelForTick(this.ticks.length-1),k=0,l=0;h?i?(k=d*a.width,l=c*b.height):(k=c*a.height,l=d*b.width):"start"===e?l=b.width:"end"===e?k=a.width:"inner"!==e&&(k=a.width/2,l=b.width/2),this.paddingLeft=Math.max((k-g+f)*this.width/(this.width-g),0),this.paddingRight=Math.max((l-j+f)*this.width/(this.width-j),0)}else{let c=b.height/2,d=a.height/2;"start"===e?(c=0,d=a.height):"end"===e&&(c=b.height,d=0),this.paddingTop=c+f,this.paddingBottom=d+f}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){Q(this.options.afterFit,[this])}isHorizontal(){let{axis:a,position:b}=this.options;return"top"===b||"bottom"===b||"x"===a}isFullSize(){return this.options.fullSize}_convertTicksToLabels(a){let b,c;for(this.beforeTickToLabelConversion(),this.generateTickLabels(a),b=0,c=a.length;b<c;b++)J(a[b].label)&&(a.splice(b,1),c--,b--);this.afterTickToLabelConversion()}_getLabelSizes(){let a=this._labelSizes;if(!a){let b=this.options.ticks.sampleSize,c=this.ticks;b<c.length&&(c=dj(c,b)),this._labelSizes=a=this._computeLabelSizes(c,c.length,this.options.ticks.maxTicksLimit)}return a}_computeLabelSizes(a,b,c){let d,e,f,g,h,i,j,k,l,m,n,{ctx:o,_longestTextCache:p}=this,q=[],r=[],s=Math.floor(b/di(b,c)),t=0,u=0;for(d=0;d<b;d+=s){if(g=a[d].label,o.font=i=(h=this._resolveTickFontOptions(d)).string,j=p[i]=p[i]||{data:{},gc:[]},k=h.lineHeight,l=m=0,J(g)||K(g)){if(K(g))for(e=0,f=g.length;e<f;++e)J(n=g[e])||K(n)||(l=bg(o,j.data,j.gc,l,n),m+=k)}else l=bg(o,j.data,j.gc,l,g),m=k;q.push(l),r.push(m),t=Math.max(l,t),u=Math.max(m,u)}R(p,a=>{let c,d=a.gc,e=d.length/2;if(e>b){for(c=0;c<e;++c)delete a.data[d[c]];d.splice(0,e)}});let v=q.indexOf(t),w=r.indexOf(u),x=a=>({width:q[a]||0,height:r[a]||0});return{first:x(0),last:x(b-1),widest:x(v),highest:x(w),widths:q,heights:r}}getLabelForValue(a){return a}getPixelForValue(a,b){return NaN}getValueForPixel(a){}getPixelForTick(a){let b=this.ticks;return a<0||a>b.length-1?null:this.getPixelForValue(b[a].value)}getPixelForDecimal(a){this._reversePixels&&(a=1-a);let b=this._startPixel+a*this._length;return ay(this._alignToPixels?bh(this.chart,b,0):b,-32768,32767)}getDecimalForPixel(a){let b=(a-this._startPixel)/this._length;return this._reversePixels?1-b:b}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){let{min:a,max:b}=this;return a<0&&b<0?b:a>0&&b>0?a:0}getContext(a){var b,c;let d=this.ticks||[];if(a>=0&&a<d.length){let c=d[a];return c.$context||(b=this.getContext(),c.$context=bB(b,{tick:c,index:a,type:"tick"}))}return this.$context||(this.$context=(c=this.chart.getContext(),bB(c,{scale:this,type:"scale"})))}_tickSize(){let a=this.options.ticks,b=ar(this.labelRotation),c=Math.abs(Math.cos(b)),d=Math.abs(Math.sin(b)),e=this._getLabelSizes(),f=a.autoSkipPadding||0,g=e?e.widest.width+f:0,h=e?e.highest.height+f:0;return this.isHorizontal()?h*c>g*d?g/c:h/d:h*d<g*c?h/c:g/d}_isVisible(){let a=this.options.display;return"auto"!==a?!!a:this.getMatchingVisibleMetas().length>0}_computeGridLineItems(a){let b,c,d,e,f,g,h,i,j,k,l,m,n=this.axis,o=this.chart,p=this.options,{grid:q,position:r,border:s}=p,t=q.offset,u=this.isHorizontal(),v=this.ticks.length+ +!!t,w=dk(q),x=[],y=s.setContext(this.getContext()),z=y.display?y.width:0,A=z/2,B=function(a){return bh(o,a,z)};if("top"===r)b=B(this.bottom),g=this.bottom-w,i=b-A,k=B(a.top)+A,m=a.bottom;else if("bottom"===r)b=B(this.top),k=a.top,m=B(a.bottom)-A,g=b+A,i=this.top+w;else if("left"===r)b=B(this.right),f=this.right-w,h=b-A,j=B(a.left)+A,l=a.right;else if("right"===r)b=B(this.left),j=a.left,l=B(a.right)-A,f=b+A,h=this.left+w;else if("x"===n){if("center"===r)b=B((a.top+a.bottom)/2+.5);else if(L(r)){let a=Object.keys(r)[0],c=r[a];b=B(this.chart.scales[a].getPixelForValue(c))}k=a.top,m=a.bottom,i=(g=b+A)+w}else if("y"===n){if("center"===r)b=B((a.left+a.right)/2);else if(L(r)){let a=Object.keys(r)[0],c=r[a];b=B(this.chart.scales[a].getPixelForValue(c))}h=(f=b-A)-w,j=a.left,l=a.right}let C=O(p.ticks.maxTicksLimit,v),D=Math.max(1,Math.ceil(v/C));for(c=0;c<v;c+=D){let a=this.getContext(c),b=q.setContext(a),n=s.setContext(a),p=b.lineWidth,r=b.color,v=n.dash||[],w=n.dashOffset,y=b.tickWidth,z=b.tickColor,A=b.tickBorderDash||[],B=b.tickBorderDashOffset;void 0!==(d=function(a,b,c){let d,e=a.ticks.length,f=Math.min(b,e-1),g=a._startPixel,h=a._endPixel,i=a.getPixelForTick(f);if(!c||(d=1===e?Math.max(i-g,h-i):0===b?(a.getPixelForTick(1)-i)/2:(i-a.getPixelForTick(f-1))/2,!((i+=f<b?d:-d)<g-1e-6)&&!(i>h+1e-6)))return i}(this,c,t))&&(e=bh(o,d,p),u?f=h=j=l=e:g=i=k=m=e,x.push({tx1:f,ty1:g,tx2:h,ty2:i,x1:j,y1:k,x2:l,y2:m,width:p,color:r,borderDash:v,borderDashOffset:w,tickWidth:y,tickColor:z,tickBorderDash:A,tickBorderDashOffset:B}))}return this._ticksLength=v,this._borderValue=b,x}_computeLabelItems(a){let b,c,d,e,f,g,h,i,j,k,l,m=this.axis,n=this.options,{position:o,ticks:p}=n,q=this.isHorizontal(),r=this.ticks,{align:s,crossAlign:t,padding:u,mirror:v}=p,w=dk(n.grid),x=w+u,y=v?-u:x,z=-ar(this.labelRotation),A=[],B="middle";if("top"===o)f=this.bottom-y,g=this._getXAxisLabelAlignment();else if("bottom"===o)f=this.top+y,g=this._getXAxisLabelAlignment();else if("left"===o){let a=this._getYAxisLabelAlignment(w);g=a.textAlign,e=a.x}else if("right"===o){let a=this._getYAxisLabelAlignment(w);g=a.textAlign,e=a.x}else if("x"===m){if("center"===o)f=(a.top+a.bottom)/2+x;else if(L(o)){let a=Object.keys(o)[0],b=o[a];f=this.chart.scales[a].getPixelForValue(b)+x}g=this._getXAxisLabelAlignment()}else if("y"===m){if("center"===o)e=(a.left+a.right)/2-x;else if(L(o)){let a=Object.keys(o)[0],b=o[a];e=this.chart.scales[a].getPixelForValue(b)}g=this._getYAxisLabelAlignment(w).textAlign}"y"===m&&("start"===s?B="top":"end"===s&&(B="bottom"));let C=this._getLabelSizes();for(b=0,c=r.length;b<c;++b){let a;d=r[b].label;let m=p.setContext(this.getContext(b));h=this.getPixelForTick(b)+p.labelOffset,j=(i=this._resolveTickFontOptions(b)).lineHeight;let n=(k=K(d)?d.length:1)/2,s=m.color,u=m.textStrokeColor,w=m.textStrokeWidth,x=g;if(q?(e=h,"inner"===g&&(x=b===c-1?this.options.reverse?"left":"right":0===b?this.options.reverse?"right":"left":"center"),l="top"===o?"near"===t||0!==z?-k*j+j/2:"center"===t?-C.highest.height/2-n*j+j:-C.highest.height+j/2:"near"===t||0!==z?j/2:"center"===t?C.highest.height/2-n*j:C.highest.height-k*j,v&&(l*=-1),0===z||m.showLabelBackdrop||(e+=j/2*Math.sin(z))):(f=h,l=(1-k)*j/2),m.showLabelBackdrop){let d=by(m.backdropPadding),e=C.heights[b],f=C.widths[b],h=l-d.top,i=0-d.left;switch(B){case"middle":h-=e/2;break;case"bottom":h-=e}switch(g){case"center":i-=f/2;break;case"right":i-=f;break;case"inner":b===c-1?i-=f:b>0&&(i-=f/2)}a={left:i,top:h,width:f+d.width,height:e+d.height,color:m.backdropColor}}A.push({label:d,font:i,textOffset:l,options:{rotation:z,color:s,strokeColor:u,strokeWidth:w,textAlign:x,textBaseline:B,translation:[e,f],backdrop:a}})}return A}_getXAxisLabelAlignment(){let{position:a,ticks:b}=this.options;if(-ar(this.labelRotation))return"top"===a?"left":"right";let c="center";return"start"===b.align?c="left":"end"===b.align?c="right":"inner"===b.align&&(c="inner"),c}_getYAxisLabelAlignment(a){let b,c,{position:d,ticks:{crossAlign:e,mirror:f,padding:g}}=this.options,h=this._getLabelSizes(),i=a+g,j=h.widest.width;return"left"===d?f?(c=this.right+g,"near"===e?b="left":"center"===e?(b="center",c+=j/2):(b="right",c+=j)):(c=this.right-i,"near"===e?b="right":"center"===e?(b="center",c-=j/2):(b="left",c=this.left)):"right"===d?f?(c=this.left+g,"near"===e?b="right":"center"===e?(b="center",c-=j/2):(b="left",c-=j)):(c=this.left+i,"near"===e?b="left":"center"===e?(b="center",c+=j/2):(b="right",c=this.right)):b="right",{textAlign:b,x:c}}_computeLabelArea(){if(this.options.ticks.mirror)return;let a=this.chart,b=this.options.position;return"left"===b||"right"===b?{top:0,left:this.left,bottom:a.height,right:this.right}:"top"===b||"bottom"===b?{top:this.top,left:0,bottom:this.bottom,right:a.width}:void 0}drawBackground(){let{ctx:a,options:{backgroundColor:b},left:c,top:d,width:e,height:f}=this;b&&(a.save(),a.fillStyle=b,a.fillRect(c,d,e,f),a.restore())}getLineWidthForValue(a){let b=this.options.grid;if(!this._isVisible()||!b.display)return 0;let c=this.ticks.findIndex(b=>b.value===a);return c>=0?b.setContext(this.getContext(c)).lineWidth:0}drawGrid(a){let b,c,d=this.options.grid,e=this.ctx,f=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(a)),g=(a,b,c)=>{c.width&&c.color&&(e.save(),e.lineWidth=c.width,e.strokeStyle=c.color,e.setLineDash(c.borderDash||[]),e.lineDashOffset=c.borderDashOffset,e.beginPath(),e.moveTo(a.x,a.y),e.lineTo(b.x,b.y),e.stroke(),e.restore())};if(d.display)for(b=0,c=f.length;b<c;++b){let a=f[b];d.drawOnChartArea&&g({x:a.x1,y:a.y1},{x:a.x2,y:a.y2},a),d.drawTicks&&g({x:a.tx1,y:a.ty1},{x:a.tx2,y:a.ty2},{color:a.tickColor,width:a.tickWidth,borderDash:a.tickBorderDash,borderDashOffset:a.tickBorderDashOffset})}}drawBorder(){let a,b,c,d,{chart:e,ctx:f,options:{border:g,grid:h}}=this,i=g.setContext(this.getContext()),j=g.display?i.width:0;if(!j)return;let k=h.setContext(this.getContext(0)).lineWidth,l=this._borderValue;this.isHorizontal()?(a=bh(e,this.left,j)-j/2,b=bh(e,this.right,k)+k/2,c=d=l):(c=bh(e,this.top,j)-j/2,d=bh(e,this.bottom,k)+k/2,a=b=l),f.save(),f.lineWidth=i.width,f.strokeStyle=i.color,f.beginPath(),f.moveTo(a,c),f.lineTo(b,d),f.stroke(),f.restore()}drawLabels(a){if(!this.options.ticks.display)return;let b=this.ctx,c=this._computeLabelArea();for(let d of(c&&bm(b,c),this.getLabelItems(a))){let a=d.options,c=d.font;bq(b,d.label,0,d.textOffset,c,a)}c&&bn(b)}drawTitle(){let a,b,{ctx:c,options:{position:d,title:e,reverse:f}}=this;if(!e.display)return;let g=bz(e.font),h=by(e.padding),i=e.align,j=g.lineHeight/2;"bottom"===d||"center"===d||L(d)?(j+=h.bottom,K(e.text)&&(j+=g.lineHeight*(e.text.length-1))):j+=h.top;let{titleX:k,titleY:l,maxWidth:m,rotation:n}=function(a,b,c,d){let e,f,g,{top:h,left:i,bottom:j,right:k,chart:l}=a,{chartArea:m,scales:n}=l,o=0,p=j-h,q=k-i;if(a.isHorizontal()){if(f=aJ(d,i,k),L(c)){let a=Object.keys(c)[0],d=c[a];g=n[a].getPixelForValue(d)+p-b}else g="center"===c?(m.bottom+m.top)/2+p-b:dh(a,c,b);e=k-i}else{if(L(c)){let a=Object.keys(c)[0],d=c[a];f=n[a].getPixelForValue(d)-q+b}else f="center"===c?(m.left+m.right)/2-q+b:dh(a,c,b);g=aJ(d,j,h),o="left"===c?-ai:ai}return{titleX:f,titleY:g,maxWidth:e,rotation:o}}(this,j,d,i);bq(c,e.text,0,0,g,{color:e.color,maxWidth:m,rotation:n,textAlign:(a=aI(i),(f&&"right"!==d||!f&&"right"===d)&&(a="left"===(b=a)?"right":"right"===b?"left":b),a),textBaseline:"middle",translation:[k,l]})}draw(a){this._isVisible()&&(this.drawBackground(),this.drawGrid(a),this.drawBorder(),this.drawTitle(),this.drawLabels(a))}_layers(){let a=this.options,b=a.ticks&&a.ticks.z||0,c=O(a.grid&&a.grid.z,-1),d=O(a.border&&a.border.z,0);return this._isVisible()&&this.draw===dm.prototype.draw?[{z:c,draw:a=>{this.drawBackground(),this.drawGrid(a),this.drawTitle()}},{z:d,draw:()=>{this.drawBorder()}},{z:b,draw:a=>{this.drawLabels(a)}}]:[{z:b,draw:a=>{this.draw(a)}}]}getMatchingVisibleMetas(a){let b,c,d=this.chart.getSortedVisibleDatasetMetas(),e=this.axis+"AxisID",f=[];for(b=0,c=d.length;b<c;++b){let c=d[b];c[e]!==this.id||a&&c.type!==a||f.push(c)}return f}_resolveTickFontOptions(a){return bz(this.options.ticks.setContext(this.getContext(a)).font)}_maxDigits(){let a=this._resolveTickFontOptions(0).lineHeight;return(this.isHorizontal()?this.width:this.height)/a}}class dn{constructor(a,b,c){this.type=a,this.scope=b,this.override=c,this.items=Object.create(null)}isForType(a){return Object.prototype.isPrototypeOf.call(this.type.prototype,a.prototype)}register(a){var b,c,d,e,f,g;let h,i,j=Object.getPrototypeOf(a);"id"in(b=j)&&"defaults"in b&&(i=this.register(j));let k=this.items,l=a.id,m=this.scope+"."+l;if(!l)throw Error("class does not have id: "+a);return l in k||(k[l]=a,c=a,d=m,e=i,h=W(Object.create(null),[e?bf.get(e):{},bf.get(d),c.defaults]),bf.set(d,h),c.defaultRoutes&&(f=d,Object.keys(g=c.defaultRoutes).forEach(a=>{let b=a.split("."),c=b.pop(),d=[f].concat(b).join("."),e=g[a].split("."),h=e.pop(),i=e.join(".");bf.route(d,c,i,h)})),c.descriptors&&bf.describe(d,c.descriptors),this.override&&bf.override(a.id,a.overrides)),m}get(a){return this.items[a]}unregister(a){let b=this.items,c=a.id,d=this.scope;c in b&&delete b[c],d&&c in bf[d]&&(delete bf[d][c],this.override&&delete aY[c])}}class dp{constructor(){this.controllers=new dn(cv,"datasets",!0),this.elements=new dn(df,"elements"),this.plugins=new dn(Object,"plugins"),this.scales=new dn(dm,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...a){this._each("register",a)}remove(...a){this._each("unregister",a)}addControllers(...a){this._each("register",a,this.controllers)}addElements(...a){this._each("register",a,this.elements)}addPlugins(...a){this._each("register",a,this.plugins)}addScales(...a){this._each("register",a,this.scales)}getController(a){return this._get(a,this.controllers,"controller")}getElement(a){return this._get(a,this.elements,"element")}getPlugin(a){return this._get(a,this.plugins,"plugin")}getScale(a){return this._get(a,this.scales,"scale")}removeControllers(...a){this._each("unregister",a,this.controllers)}removeElements(...a){this._each("unregister",a,this.elements)}removePlugins(...a){this._each("unregister",a,this.plugins)}removeScales(...a){this._each("unregister",a,this.scales)}_each(a,b,c){[...b].forEach(b=>{let d=c||this._getRegistryForType(b);c||d.isForType(b)||d===this.plugins&&b.id?this._exec(a,d,b):R(b,b=>{let d=c||this._getRegistryForType(b);this._exec(a,d,b)})})}_exec(a,b,c){let d=_(a);Q(c["before"+d],[],c),b[a](c),Q(c["after"+d],[],c)}_getRegistryForType(a){for(let b=0;b<this._typedRegistries.length;b++){let c=this._typedRegistries[b];if(c.isForType(a))return c}return this.plugins}_get(a,b,c){let d=b.get(a);if(void 0===d)throw Error('"'+a+'" is not a registered '+c+".");return d}}var dq=new dp;class dr{constructor(){this._init=void 0}notify(a,b,c,d){if("beforeInit"===b&&(this._init=this._createDescriptors(a,!0),this._notify(this._init,a,"install")),void 0===this._init)return;let e=d?this._descriptors(a).filter(d):this._descriptors(a),f=this._notify(e,a,b,c);return"afterDestroy"===b&&(this._notify(e,a,"stop"),this._notify(this._init,a,"uninstall"),this._init=void 0),f}_notify(a,b,c,d){for(let e of(d=d||{},a)){let a=e.plugin;if(!1===Q(a[c],[b,d,e.options],a)&&d.cancelable)return!1}return!0}invalidate(){J(this._cache)||(this._oldCache=this._cache,this._cache=void 0)}_descriptors(a){if(this._cache)return this._cache;let b=this._cache=this._createDescriptors(a);return this._notifyStateChanges(a),b}_createDescriptors(a,b){let c=a&&a.config,d=O(c.options&&c.options.plugins,{}),e=function(a){let b={},c=[],d=Object.keys(dq.plugins.items);for(let a=0;a<d.length;a++)c.push(dq.getPlugin(d[a]));let e=a.plugins||[];for(let a=0;a<e.length;a++){let d=e[a];-1===c.indexOf(d)&&(c.push(d),b[d.id]=!0)}return{plugins:c,localIds:b}}(c);return!1!==d||b?function(a,{plugins:b,localIds:c},d,e){let f=[],g=a.getContext();for(let i of b){var h;let b=i.id,j=(h=d[b],e||!1!==h?!0===h?{}:h:null);null!==j&&f.push({plugin:i,options:function(a,{plugin:b,local:c},d,e){let f=a.pluginScopeKeys(b),g=a.getOptionScopes(d,f);return c&&b.defaults&&g.push(b.defaults),a.createResolver(g,e,[""],{scriptable:!1,indexable:!1,allKeys:!0})}(a.config,{plugin:i,local:c[b]},j,g)})}return f}(a,e,d,b):[]}_notifyStateChanges(a){let b=this._oldCache||[],c=this._cache,d=(a,b)=>a.filter(a=>!b.some(b=>a.plugin.id===b.plugin.id));this._notify(d(b,c),a,"stop"),this._notify(d(c,b),a,"start")}}function ds(a,b){let c=bf.datasets[a]||{};return((b.datasets||{})[a]||{}).indexAxis||b.indexAxis||c.indexAxis||"x"}function dt(a){if("x"===a||"y"===a||"r"===a)return a}function du(a,...b){if(dt(a))return a;for(let d of b){var c;let b=d.axis||("top"===(c=d.position)||"bottom"===c?"x":"left"===c||"right"===c?"y":void 0)||a.length>1&&dt(a[0].toLowerCase());if(b)return b}throw Error(`Cannot determine type of '${a}' axis. Please provide 'axis' or 'position' option.`)}function dv(a,b,c){if(c[b+"AxisID"]===a)return{axis:b}}function dw(a){let b,c,d,e,f=a.options||(a.options={});f.plugins=O(f.plugins,{}),b=aY[a.type]||{scales:{}},c=f.scales||{},d=ds(a.type,f),e=Object.create(null),Object.keys(c).forEach(f=>{let g=c[f];if(!L(g))return console.error(`Invalid scale configuration for scale: ${f}`);if(g._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${f}`);let h=du(f,g,function(a,b){if(b.data&&b.data.datasets){let c=b.data.datasets.filter(b=>b.xAxisID===a||b.yAxisID===a);if(c.length)return dv(a,"x",c[0])||dv(a,"y",c[0])}return{}}(f,a),bf.scales[g.type]),i=h===d?"_index_":"_value_",j=b.scales||{};e[f]=X(Object.create(null),[{axis:h},g,j[h],j[i]])}),a.data.datasets.forEach(b=>{let d=b.type||a.type,g=b.indexAxis||ds(d,f),h=(aY[d]||{}).scales||{};Object.keys(h).forEach(a=>{let d,f=(d=a,"_index_"===a?d=g:"_value_"===a&&(d="x"===g?"y":"x"),d),i=b[f+"AxisID"]||f;e[i]=e[i]||Object.create(null),X(e[i],[{axis:f},c[i],h[a]])})}),Object.keys(e).forEach(a=>{let b=e[a];X(b,[bf.scales[b.type],bf.scale])}),f.scales=e}function dx(a){return(a=a||{}).datasets=a.datasets||[],a.labels=a.labels||[],a}let dy=new Map,dz=new Set;function dA(a,b){let c=dy.get(a);return c||(c=b(),dy.set(a,c),dz.add(c)),c}let dB=(a,b,c)=>{let d=$(b,c);void 0!==d&&a.add(d)};class dC{constructor(a){this._config=function(a){return(a=a||{}).data=dx(a.data),dw(a),a}(a),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(a){this._config.type=a}get data(){return this._config.data}set data(a){this._config.data=dx(a)}get options(){return this._config.options}set options(a){this._config.options=a}get plugins(){return this._config.plugins}update(){let a=this._config;this.clearCache(),dw(a)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(a){return dA(a,()=>[[`datasets.${a}`,""]])}datasetAnimationScopeKeys(a,b){return dA(`${a}.transition.${b}`,()=>[[`datasets.${a}.transitions.${b}`,`transitions.${b}`],[`datasets.${a}`,""]])}datasetElementScopeKeys(a,b){return dA(`${a}-${b}`,()=>[[`datasets.${a}.elements.${b}`,`datasets.${a}`,`elements.${b}`,""]])}pluginScopeKeys(a){let b=a.id,c=this.type;return dA(`${c}-plugin-${b}`,()=>[[`plugins.${b}`,...a.additionalOptionScopes||[]]])}_cachedScopes(a,b){let c=this._scopeCache,d=c.get(a);return(!d||b)&&(d=new Map,c.set(a,d)),d}getOptionScopes(a,b,c){let{options:d,type:e}=this,f=this._cachedScopes(a,c),g=f.get(b);if(g)return g;let h=new Set;b.forEach(b=>{a&&(h.add(a),b.forEach(b=>dB(h,a,b))),b.forEach(a=>dB(h,d,a)),b.forEach(a=>dB(h,aY[e]||{},a)),b.forEach(a=>dB(h,bf,a)),b.forEach(a=>dB(h,aZ,a))});let i=Array.from(h);return 0===i.length&&i.push(Object.create(null)),dz.has(b)&&f.set(b,i),i}chartOptionScopes(){let{options:a,type:b}=this;return[a,aY[b]||{},bf.datasets[b]||{},{type:b},bf,aZ]}resolveNamedOptions(a,b,c,d=[""]){let e={$shared:!0},{resolver:f,subPrefixes:g}=dD(this._resolverCache,a,d),h=f;if(function(a,b){let{isScriptable:c,isIndexable:d}=bE(a);for(let e of b){let b=c(e),f=d(e),g=(f||b)&&a[e];if(b&&(ab(g)||dE(g))||f&&K(g))return!0}return!1}(f,b)){e.$shared=!1,c=ab(c)?c():c;let b=this.createResolver(a,c,g);h=bD(f,c,b)}for(let a of b)e[a]=h[a];return e}createResolver(a,b,c=[""],d){let{resolver:e}=dD(this._resolverCache,a,c);return L(b)?bD(e,b,void 0,d):e}}function dD(a,b,c){let d=a.get(b);d||(d=new Map,a.set(b,d));let e=c.join(),f=d.get(e);return f||(f={resolver:bC(b,c),subPrefixes:c.filter(a=>!a.toLowerCase().includes("hover"))},d.set(e,f)),f}let dE=a=>L(a)&&Object.getOwnPropertyNames(a).some(b=>ab(a[b])),dF=["top","bottom","left","right","chartArea"];function dG(a,b){return"top"===a||"bottom"===a||-1===dF.indexOf(a)&&"x"===b}function dH(a,b){return function(c,d){return c[a]===d[a]?c[b]-d[b]:c[a]-d[a]}}function dI(a){let b=a.chart,c=b.options.animation;b.notifyPlugins("afterRender"),Q(c&&c.onComplete,[a],b)}function dJ(a){let b=a.chart,c=b.options.animation;Q(c&&c.onProgress,[a],b)}function dK(a){return bS()&&"string"==typeof a?a=document.getElementById(a):a&&a.length&&(a=a[0]),a&&a.canvas&&(a=a.canvas),a}let dL={},dM=a=>{let b=dK(a);return Object.values(dL).filter(a=>a.canvas===b).pop()};class dN{static defaults=bf;static instances=dL;static overrides=aY;static registry=dq;static version="4.5.1";static getChart=dM;static register(...a){dq.add(...a),dO()}static unregister(...a){dq.remove(...a),dO()}constructor(a,b){const c=this.config=new dC(b),d=dK(a),e=dM(d);if(e)throw Error("Canvas is already in use. Chart with ID '"+e.id+"' must be destroyed before the canvas with ID '"+e.canvas.id+"' can be reused.");const f=c.createResolver(c.chartOptionScopes(),this.getContext());this.platform=new(c.platform||function(a){return!bS()||"u">typeof OffscreenCanvas&&a instanceof OffscreenCanvas?c0:de}(d)),this.platform.updateConfig(c);const g=this.platform.acquireContext(d,f.aspectRatio),h=g&&g.canvas,i=h&&h.height,j=h&&h.width;if(this.id=I(),this.ctx=g,this.canvas=h,this.width=j,this.height=i,this._options=f,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new dr,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=function(a,b){let c;return function(...d){return b?(clearTimeout(c),c=setTimeout(a,b,d)):a.apply(this,d),b}}(a=>this.update(a),f.resizeDelay||0),this._dataChanges=[],dL[this.id]=this,!g||!h)return void console.error("Failed to create chart: can't acquire context from the given item");cg.listen(this,"complete",dI),cg.listen(this,"progress",dJ),this._initialize(),this.attached&&this.update()}get aspectRatio(){let{options:{aspectRatio:a,maintainAspectRatio:b},width:c,height:d,_aspectRatio:e}=this;return J(a)?b&&e?e:d?c/d:null:a}get data(){return this.config.data}set data(a){this.config.data=a}get options(){return this._options}set options(a){this.config.options=a}get registry(){return dq}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():b$(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return bi(this.canvas,this.ctx),this}stop(){return cg.stop(this),this}resize(a,b){cg.running(this)?this._resizeBeforeDraw={width:a,height:b}:this._resize(a,b)}_resize(a,b){let c=this.options,d=this.canvas,e=c.maintainAspectRatio&&this.aspectRatio,f=this.platform.getMaximumSize(d,a,b,e),g=c.devicePixelRatio||this.platform.getDevicePixelRatio(),h=this.width?"resize":"attach";this.width=f.width,this.height=f.height,this._aspectRatio=this.aspectRatio,b$(this,g,!0)&&(this.notifyPlugins("resize",{size:f}),Q(c.onResize,[this,f],this),this.attached&&this._doResize(h)&&this.render())}ensureScalesHaveIDs(){R(this.options.scales||{},(a,b)=>{a.id=b})}buildOrUpdateScales(){let a=this.options,b=a.scales,c=this.scales,d=Object.keys(c).reduce((a,b)=>(a[b]=!1,a),{}),e=[];b&&(e=e.concat(Object.keys(b).map(a=>{let c=b[a],d=du(a,c),e="r"===d,f="x"===d;return{options:c,dposition:e?"chartArea":f?"bottom":"left",dtype:e?"radialLinear":f?"category":"linear"}}))),R(e,b=>{let e=b.options,f=e.id,g=du(f,e),h=O(e.type,b.dtype);(void 0===e.position||dG(e.position,g)!==dG(b.dposition))&&(e.position=b.dposition),d[f]=!0;let i=null;f in c&&c[f].type===h?i=c[f]:c[(i=new(dq.getScale(h))({id:f,type:h,ctx:this.ctx,chart:this})).id]=i,i.init(e,a)}),R(d,(a,b)=>{a||delete c[b]}),R(c,a=>{c$.configure(this,a,a.options),c$.addBox(this,a)})}_updateMetasets(){let a=this._metasets,b=this.data.datasets.length,c=a.length;if(a.sort((a,b)=>a.index-b.index),c>b){for(let a=b;a<c;++a)this._destroyDatasetMeta(a);a.splice(b,c-b)}this._sortedMetasets=a.slice(0).sort(dH("order","index"))}_removeUnreferencedMetasets(){let{_metasets:a,data:{datasets:b}}=this;a.length>b.length&&delete this._stacks,a.forEach((a,c)=>{0===b.filter(b=>b===a._dataset).length&&this._destroyDatasetMeta(c)})}buildOrUpdateControllers(){let a,b,c=[],d=this.data.datasets;for(this._removeUnreferencedMetasets(),a=0,b=d.length;a<b;a++){let b=d[a],e=this.getDatasetMeta(a),f=b.type||this.config.type;if(e.type&&e.type!==f&&(this._destroyDatasetMeta(a),e=this.getDatasetMeta(a)),e.type=f,e.indexAxis=b.indexAxis||ds(f,this.options),e.order=b.order||0,e.index=a,e.label=""+b.label,e.visible=this.isDatasetVisible(a),e.controller)e.controller.updateIndex(a),e.controller.linkScales();else{let b=dq.getController(f),{datasetElementType:d,dataElementType:g}=bf.datasets[f];Object.assign(b,{dataElementType:dq.getElement(g),datasetElementType:d&&dq.getElement(d)}),e.controller=new b(this,a),c.push(e.controller)}}return this._updateMetasets(),c}_resetElements(){R(this.data.datasets,(a,b)=>{this.getDatasetMeta(b).controller.reset()},this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(a){let b=this.config;b.update();let c=this._options=b.createResolver(b.chartOptionScopes(),this.getContext()),d=this._animationsDisabled=!c.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),!1===this.notifyPlugins("beforeUpdate",{mode:a,cancelable:!0}))return;let e=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let f=0;for(let a=0,b=this.data.datasets.length;a<b;a++){let{controller:b}=this.getDatasetMeta(a),c=!d&&-1===e.indexOf(b);b.buildOrUpdateElements(c),f=Math.max(+b.getMaxOverflow(),f)}f=this._minPadding=c.layout.autoPadding?f:0,this._updateLayout(f),d||R(e,a=>{a.reset()}),this._updateDatasets(a),this.notifyPlugins("afterUpdate",{mode:a}),this._layers.sort(dH("z","_idx"));let{_active:g,_lastEvent:h}=this;h?this._eventHandler(h,!0):g.length&&this._updateHoverStyles(g,g,!0),this.render()}_updateScales(){R(this.scales,a=>{c$.removeBox(this,a)}),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){let a=this.options;ac(new Set(Object.keys(this._listeners)),new Set(a.events))&&!!this._responsiveListeners===a.responsive||(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){let{_hiddenIndices:a}=this;for(let{method:c,start:d,count:e}of this._getUniformDataChanges()||[]){var b="_removeElements"===c?-e:e;for(let c of Object.keys(a)){let e=+c;if(e>=d){let f=a[c];delete a[c],(b>0||e>d)&&(a[e+b]=f)}}}}_getUniformDataChanges(){let a=this._dataChanges;if(!a||!a.length)return;this._dataChanges=[];let b=this.data.datasets.length,c=b=>new Set(a.filter(a=>a[0]===b).map((a,b)=>b+","+a.splice(1).join(","))),d=c(0);for(let a=1;a<b;a++)if(!ac(d,c(a)))return;return Array.from(d).map(a=>a.split(",")).map(a=>({method:a[1],start:+a[2],count:+a[3]}))}_updateLayout(a){if(!1===this.notifyPlugins("beforeLayout",{cancelable:!0}))return;c$.update(this,this.width,this.height,a);let b=this.chartArea,c=b.width<=0||b.height<=0;this._layers=[],R(this.boxes,a=>{c&&"chartArea"===a.position||(a.configure&&a.configure(),this._layers.push(...a._layers()))},this),this._layers.forEach((a,b)=>{a._idx=b}),this.notifyPlugins("afterLayout")}_updateDatasets(a){if(!1!==this.notifyPlugins("beforeDatasetsUpdate",{mode:a,cancelable:!0})){for(let a=0,b=this.data.datasets.length;a<b;++a)this.getDatasetMeta(a).controller.configure();for(let b=0,c=this.data.datasets.length;b<c;++b)this._updateDataset(b,ab(a)?a({datasetIndex:b}):a);this.notifyPlugins("afterDatasetsUpdate",{mode:a})}}_updateDataset(a,b){let c=this.getDatasetMeta(a),d={meta:c,index:a,mode:b,cancelable:!0};!1!==this.notifyPlugins("beforeDatasetUpdate",d)&&(c.controller._update(b),d.cancelable=!1,this.notifyPlugins("afterDatasetUpdate",d))}render(){!1!==this.notifyPlugins("beforeRender",{cancelable:!0})&&(cg.has(this)?this.attached&&!cg.running(this)&&cg.start(this):(this.draw(),dI({chart:this})))}draw(){let a;if(this._resizeBeforeDraw){let{width:a,height:b}=this._resizeBeforeDraw;this._resizeBeforeDraw=null,this._resize(a,b)}if(this.clear(),this.width<=0||this.height<=0||!1===this.notifyPlugins("beforeDraw",{cancelable:!0}))return;let b=this._layers;for(a=0;a<b.length&&b[a].z<=0;++a)b[a].draw(this.chartArea);for(this._drawDatasets();a<b.length;++a)b[a].draw(this.chartArea);this.notifyPlugins("afterDraw")}_getSortedDatasetMetas(a){let b,c,d=this._sortedMetasets,e=[];for(b=0,c=d.length;b<c;++b){let c=d[b];(!a||c.visible)&&e.push(c)}return e}getSortedVisibleDatasetMetas(){return this._getSortedDatasetMetas(!0)}_drawDatasets(){if(!1===this.notifyPlugins("beforeDatasetsDraw",{cancelable:!0}))return;let a=this.getSortedVisibleDatasetMetas();for(let b=a.length-1;b>=0;--b)this._drawDataset(a[b]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(a){let b=this.ctx,c={meta:a,index:a.index,cancelable:!0},d=ce(this,a);!1!==this.notifyPlugins("beforeDatasetDraw",c)&&(d&&bm(b,d),a.controller.draw(),d&&bn(b),c.cancelable=!1,this.notifyPlugins("afterDatasetDraw",c))}isPointInArea(a){return bl(a,this.chartArea,this._minPadding)}getElementsAtEventForMode(a,b,c,d){let e=cQ.modes[b];return"function"==typeof e?e(this,a,c,d):[]}getDatasetMeta(a){let b=this.data.datasets[a],c=this._metasets,d=c.filter(a=>a&&a._dataset===b).pop();return d||(d={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:b&&b.order||0,index:a,_dataset:b,_parsed:[],_sorted:!1},c.push(d)),d}getContext(){return this.$context||(this.$context=bB(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(a){let b=this.data.datasets[a];if(!b)return!1;let c=this.getDatasetMeta(a);return"boolean"==typeof c.hidden?!c.hidden:!b.hidden}setDatasetVisibility(a,b){this.getDatasetMeta(a).hidden=!b}toggleDataVisibility(a){this._hiddenIndices[a]=!this._hiddenIndices[a]}getDataVisibility(a){return!this._hiddenIndices[a]}_updateVisibility(a,b,c){let d=c?"show":"hide",e=this.getDatasetMeta(a),f=e.controller._resolveAnimations(void 0,d);aa(b)?(e.data[b].hidden=!c,this.update()):(this.setDatasetVisibility(a,c),f.update(e,{visible:c}),this.update(b=>b.datasetIndex===a?d:void 0))}hide(a,b){this._updateVisibility(a,b,!1)}show(a,b){this._updateVisibility(a,b,!0)}_destroyDatasetMeta(a){let b=this._metasets[a];b&&b.controller&&b.controller._destroy(),delete this._metasets[a]}_stop(){let a,b;for(this.stop(),cg.remove(this),a=0,b=this.data.datasets.length;a<b;++a)this._destroyDatasetMeta(a)}destroy(){this.notifyPlugins("beforeDestroy");let{canvas:a,ctx:b}=this;this._stop(),this.config.clearCache(),a&&(this.unbindEvents(),bi(a,b),this.platform.releaseContext(b),this.canvas=null,this.ctx=null),delete dL[this.id],this.notifyPlugins("afterDestroy")}toBase64Image(...a){return this.canvas.toDataURL(...a)}bindEvents(){this.bindUserEvents(),this.options.responsive?this.bindResponsiveEvents():this.attached=!0}bindUserEvents(){let a=this._listeners,b=this.platform,c=(c,d)=>{b.addEventListener(this,c,d),a[c]=d},d=(a,b,c)=>{a.offsetX=b,a.offsetY=c,this._eventHandler(a)};R(this.options.events,a=>c(a,d))}bindResponsiveEvents(){let a;this._responsiveListeners||(this._responsiveListeners={});let b=this._responsiveListeners,c=this.platform,d=(a,d)=>{c.addEventListener(this,a,d),b[a]=d},e=(a,d)=>{b[a]&&(c.removeEventListener(this,a,d),delete b[a])},f=(a,b)=>{this.canvas&&this.resize(a,b)},g=()=>{e("attach",g),this.attached=!0,this.resize(),d("resize",f),d("detach",a)};a=()=>{this.attached=!1,e("resize",f),this._stop(),this._resize(0,0),d("attach",g)},c.isAttached(this.canvas)?g():a()}unbindEvents(){R(this._listeners,(a,b)=>{this.platform.removeEventListener(this,b,a)}),this._listeners={},R(this._responsiveListeners,(a,b)=>{this.platform.removeEventListener(this,b,a)}),this._responsiveListeners=void 0}updateHoverStyle(a,b,c){let d,e,f,g=c?"set":"remove";for("dataset"===b&&this.getDatasetMeta(a[0].datasetIndex).controller["_"+g+"DatasetHoverStyle"](),e=0,f=a.length;e<f;++e){let b=(d=a[e])&&this.getDatasetMeta(d.datasetIndex).controller;b&&b[g+"HoverStyle"](d.element,d.datasetIndex,d.index)}}getActiveElements(){return this._active||[]}setActiveElements(a){let b=this._active||[],c=a.map(({datasetIndex:a,index:b})=>{let c=this.getDatasetMeta(a);if(!c)throw Error("No dataset found at index "+a);return{datasetIndex:a,element:c.data[b],index:b}});S(c,b)||(this._active=c,this._lastEvent=null,this._updateHoverStyles(c,b))}notifyPlugins(a,b,c){return this._plugins.notify(this,a,b,c)}isPluginEnabled(a){return 1===this._plugins._cache.filter(b=>b.plugin.id===a).length}_updateHoverStyles(a,b,c){let d=this.options.hover,e=(a,b)=>a.filter(a=>!b.some(b=>a.datasetIndex===b.datasetIndex&&a.index===b.index)),f=e(b,a),g=c?a:e(a,b);f.length&&this.updateHoverStyle(f,d.mode,!1),g.length&&d.mode&&this.updateHoverStyle(g,d.mode,!0)}_eventHandler(a,b){let c={event:a,replay:b,cancelable:!0,inChartArea:this.isPointInArea(a)},d=b=>(b.options.events||this.options.events).includes(a.native.type);if(!1===this.notifyPlugins("beforeEvent",c,d))return;let e=this._handleEvent(a,b,c.inChartArea);return c.cancelable=!1,this.notifyPlugins("afterEvent",c,d),(e||c.changed)&&this.render(),this}_handleEvent(a,b,c){var d;let{_active:e=[],options:f}=this,g=this._getActiveElements(a,e,c,b),h="mouseup"===a.type||"click"===a.type||"contextmenu"===a.type,i=(d=this._lastEvent,c&&"mouseout"!==a.type?h?d:a:null);c&&(this._lastEvent=null,Q(f.onHover,[a,g,this],this),h&&Q(f.onClick,[a,g,this],this));let j=!S(g,e);return(j||b)&&(this._active=g,this._updateHoverStyles(g,e,b)),this._lastEvent=i,j}_getActiveElements(a,b,c,d){if("mouseout"===a.type)return[];if(!c)return b;let e=this.options.hover;return this.getElementsAtEventForMode(a,e.mode,e,d)}}function dO(){return R(dN.instances,a=>a._plugins.invalidate())}function dP(a,b,c,d){return{x:c+a*Math.cos(b),y:d+a*Math.sin(b)}}function dQ(a,b,c,d,e,f){var g,h,i,j;let k,l,m,n,{x:o,y:p,startAngle:q,pixelMargin:r,innerRadius:s}=b,t=Math.max(b.outerRadius+d+c-r,0),u=s>0?s+d+c+r:0,v=0,w=e-q;if(d){let a=t>0?t-d:0,b=((s>0?s-d:0)+a)/2;v=(w-(0!==b?w*b/(b+d):w))/2}let x=Math.max(.001,w*t-c/ad)/t,y=(w-x)/2,z=q+y+v,A=e-y-v,{outerStart:B,outerEnd:C,innerStart:D,innerEnd:E}=(g=b,h=u,i=t,j=A-z,k=bv(g.options.borderRadius,["outerStart","outerEnd","innerStart","innerEnd"]),m=Math.min(l=(i-h)/2,j*h/2),{outerStart:(n=a=>{let b=(i-Math.min(l,a))*j/2;return ay(a,0,Math.min(l,b))})(k.outerStart),outerEnd:n(k.outerEnd),innerStart:ay(k.innerStart,0,m),innerEnd:ay(k.innerEnd,0,m)}),F=t-B,G=t-C,H=z+B/F,I=A-C/G,J=u+D,K=u+E,L=z+D/J,M=A-E/K;if(a.beginPath(),f){let b=(H+I)/2;if(a.arc(o,p,t,H,b),a.arc(o,p,t,b,I),C>0){let b=dP(G,I,o,p);a.arc(b.x,b.y,C,I,A+ai)}let c=dP(K,A,o,p);if(a.lineTo(c.x,c.y),E>0){let b=dP(K,M,o,p);a.arc(b.x,b.y,E,A+ai,M+Math.PI)}let d=(A-E/u+(z+D/u))/2;if(a.arc(o,p,u,A-E/u,d,!0),a.arc(o,p,u,d,z+D/u,!0),D>0){let b=dP(J,L,o,p);a.arc(b.x,b.y,D,L+Math.PI,z-ai)}let e=dP(F,z,o,p);if(a.lineTo(e.x,e.y),B>0){let b=dP(F,H,o,p);a.arc(b.x,b.y,B,z-ai,H)}}else{a.moveTo(o,p);let b=Math.cos(H)*t+o,c=Math.sin(H)*t+p;a.lineTo(b,c);let d=Math.cos(I)*t+o,e=Math.sin(I)*t+p;a.lineTo(d,e)}a.closePath()}class dR extends df{static id="arc";static defaults={borderAlign:"center",borderColor:"#fff",borderDash:[],borderDashOffset:0,borderJoinStyle:void 0,borderRadius:0,borderWidth:2,offset:0,spacing:0,angle:void 0,circular:!0,selfJoin:!1};static defaultRoutes={backgroundColor:"backgroundColor"};static descriptors={_scriptable:!0,_indexable:a=>"borderDash"!==a};circumference;endAngle;fullCircles;innerRadius;outerRadius;pixelMargin;startAngle;constructor(a){super(),this.options=void 0,this.circumference=void 0,this.startAngle=void 0,this.endAngle=void 0,this.innerRadius=void 0,this.outerRadius=void 0,this.pixelMargin=0,this.fullCircles=0,a&&Object.assign(this,a)}inRange(a,b,c){let{angle:d,distance:e}=at(this.getProps(["x","y"],c),{x:a,y:b}),{startAngle:f,endAngle:g,innerRadius:h,outerRadius:i,circumference:j}=this.getProps(["startAngle","endAngle","innerRadius","outerRadius","circumference"],c),k=(this.options.spacing+this.options.borderWidth)/2,l=O(j,g-f),m=ax(d,f,g)&&f!==g,n=l>=ae||m,o=az(e,h+k,i+k);return n&&o}getCenterPoint(a){let{x:b,y:c,startAngle:d,endAngle:e,innerRadius:f,outerRadius:g}=this.getProps(["x","y","startAngle","endAngle","innerRadius","outerRadius"],a),{offset:h,spacing:i}=this.options,j=(d+e)/2,k=(f+g+i+h)/2;return{x:b+Math.cos(j)*k,y:c+Math.sin(j)*k}}tooltipPosition(a){return this.getCenterPoint(a)}draw(a){let{options:b,circumference:c}=this,d=(b.offset||0)/4,e=(b.spacing||0)/2,f=b.circular;if(this.pixelMargin=.33*("inner"===b.borderAlign),this.fullCircles=c>ae?Math.floor(c/ae):0,0===c||this.innerRadius<0||this.outerRadius<0)return;a.save();let g=(this.startAngle+this.endAngle)/2;a.translate(Math.cos(g)*d,Math.sin(g)*d);let h=d*(1-Math.sin(Math.min(ad,c||0)));a.fillStyle=b.backgroundColor,a.strokeStyle=b.borderColor,function(a,b,c,d,e){let{fullCircles:f,startAngle:g,circumference:h}=b,i=b.endAngle;if(f){dQ(a,b,c,d,i,e);for(let b=0;b<f;++b)a.fill();isNaN(h)||(i=g+(h%ae||ae))}dQ(a,b,c,d,i,e),a.fill()}(a,this,h,e,f),function(a,b,c,d,e){let{fullCircles:f,startAngle:g,circumference:h,options:i}=b,{borderWidth:j,borderJoinStyle:k,borderDash:l,borderDashOffset:m,borderRadius:n}=i,o="inner"===i.borderAlign;if(!j)return;a.setLineDash(l||[]),a.lineDashOffset=m,o?(a.lineWidth=2*j,a.lineJoin=k||"round"):(a.lineWidth=j,a.lineJoin=k||"bevel");let p=b.endAngle;if(f){dQ(a,b,c,d,p,e);for(let b=0;b<f;++b)a.stroke();isNaN(h)||(p=g+(h%ae||ae))}o&&function(a,b,c){let{startAngle:d,pixelMargin:e,x:f,y:g,outerRadius:h,innerRadius:i}=b,j=e/h;a.beginPath(),a.arc(f,g,h,d-j,c+j),i>e?(j=e/i,a.arc(f,g,i,c+j,d-j,!0)):a.arc(f,g,e,c+ai,d-ai),a.closePath(),a.clip()}(a,b,p),i.selfJoin&&p-g>=ad&&0===n&&"miter"!==k&&function(a,b,c){let{startAngle:d,x:e,y:f,outerRadius:g,innerRadius:h,options:i}=b,{borderWidth:j,borderJoinStyle:k}=i,l=Math.min(j/g,aw(d-c));if(a.beginPath(),a.arc(e,f,g-j/2,d+l/2,c-l/2),h>0){let b=Math.min(j/h,aw(d-c));a.arc(e,f,h+j/2,c-b/2,d+b/2,!0)}else{let b=Math.min(j/2,g*aw(d-c));if("round"===k)a.arc(e,f,b,c-ad/2,d+ad/2,!0);else if("bevel"===k){let g=2*b*b,h=-g*Math.cos(c+ad/2)+e,i=-g*Math.sin(c+ad/2)+f,j=g*Math.cos(d+ad/2)+e,k=g*Math.sin(d+ad/2)+f;a.lineTo(h,i),a.lineTo(j,k)}}a.closePath(),a.moveTo(0,0),a.rect(0,0,a.canvas.width,a.canvas.height),a.clip("evenodd")}(a,b,p),f||(dQ(a,b,c,d,p,e),a.stroke())}(a,this,h,e,f),a.restore()}}function dS(a,b,c=b){a.lineCap=O(c.borderCapStyle,b.borderCapStyle),a.setLineDash(O(c.borderDash,b.borderDash)),a.lineDashOffset=O(c.borderDashOffset,b.borderDashOffset),a.lineJoin=O(c.borderJoinStyle,b.borderJoinStyle),a.lineWidth=O(c.borderWidth,b.borderWidth),a.strokeStyle=O(c.borderColor,b.borderColor)}function dT(a,b,c){a.lineTo(c.x,c.y)}function dU(a,b,c={}){let d=a.length,{start:e=0,end:f=d-1}=c,{start:g,end:h}=b,i=Math.max(e,g),j=Math.min(f,h);return{count:d,start:i,loop:b.loop,ilen:j<i&&!(e<g&&f<g||e>h&&f>h)?d+j-i:j-i}}function dV(a,b,c,d){let e,f,g,{points:h,options:i}=b,{count:j,start:k,loop:l,ilen:m}=dU(h,c,d),n=i.stepped?bo:i.tension||"monotone"===i.cubicInterpolationMode?bp:dT,{move:o=!0,reverse:p}=d||{};for(e=0;e<=m;++e)(f=h[(k+(p?m-e:e))%j]).skip||(o?(a.moveTo(f.x,f.y),o=!1):n(a,g,f,p,i.stepped),g=f);return l&&n(a,g,f=h[(k+(p?m:0))%j],p,i.stepped),!!l}function dW(a,b,c,d){let e,f,g,h,i,j,k=b.points,{count:l,start:m,ilen:n}=dU(k,c,d),{move:o=!0,reverse:p}=d||{},q=0,r=0,s=a=>(m+(p?n-a:a))%l,t=()=>{h!==i&&(a.lineTo(q,i),a.lineTo(q,h),a.lineTo(q,j))};for(o&&(f=k[s(0)],a.moveTo(f.x,f.y)),e=0;e<=n;++e){if((f=k[s(e)]).skip)continue;let b=f.x,c=f.y,d=0|b;d===g?(c<h?h=c:c>i&&(i=c),q=(r*q+b)/++r):(t(),a.lineTo(b,c),g=d,r=0,h=i=c),j=c}t()}function dX(a){let b=a.options,c=b.borderDash&&b.borderDash.length;return a._decimated||a._loop||b.tension||"monotone"===b.cubicInterpolationMode||b.stepped||c?dV:dW}let dY="function"==typeof Path2D;class dZ extends df{static id="line";static defaults={borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderWidth:3,capBezierPoints:!0,cubicInterpolationMode:"default",fill:!1,spanGaps:!1,stepped:!1,tension:0};static defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};static descriptors={_scriptable:!0,_indexable:a=>"borderDash"!==a&&"fill"!==a};constructor(a){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,a&&Object.assign(this,a)}updateControlPoints(a,b){let c=this.options;if((c.tension||"monotone"===c.cubicInterpolationMode)&&!c.stepped&&!this._pointsUpdated){let d=c.spanGaps?this._loop:this._fullLoop;!function(a,b,c,d,e){let f,g,h,i;if(b.spanGaps&&(a=a.filter(a=>!a.skip)),"monotone"===b.cubicInterpolationMode)!function(a,b="x"){let c,d,e,f=bQ(b),g=a.length,h=Array(g).fill(0),i=Array(g),j=bP(a,0);for(c=0;c<g;++c)if(d=e,e=j,j=bP(a,c+1),e){if(j){let a=j[b]-e[b];h[c]=0!==a?(j[f]-e[f])/a:0}i[c]=d?j?am(h[c-1])!==am(h[c])?0:(h[c-1]+h[c])/2:h[c-1]:h[c]}!function(a,b,c){let d,e,f,g,h,i=a.length,j=bP(a,0);for(let k=0;k<i-1;++k)if(h=j,j=bP(a,k+1),h&&j){if(an(b[k],0,bO)){c[k]=c[k+1]=0;continue}(g=Math.pow(d=c[k]/b[k],2)+Math.pow(e=c[k+1]/b[k],2))<=9||(f=3/Math.sqrt(g),c[k]=d*f*b[k],c[k+1]=e*f*b[k])}}(a,h,i),function(a,b,c="x"){let d,e,f,g=bQ(c),h=a.length,i=bP(a,0);for(let j=0;j<h;++j){if(e=f,f=i,i=bP(a,j+1),!f)continue;let h=f[c],k=f[g];e&&(d=(h-e[c])/3,f[`cp1${c}`]=h-d,f[`cp1${g}`]=k-d*b[j]),i&&(d=(i[c]-h)/3,f[`cp2${c}`]=h+d,f[`cp2${g}`]=k+d*b[j])}}(a,i,b)}(a,e);else{let c=d?a[a.length-1]:a[0];for(f=0,g=a.length;f<g;++f)i=function(a,b,c,d){let e=a.skip?b:a,f=c.skip?b:c,g=au(b,e),h=au(f,b),i=g/(g+h),j=h/(g+h);i=isNaN(i)?0:i,j=isNaN(j)?0:j;let k=d*i,l=d*j;return{previous:{x:b.x-k*(f.x-e.x),y:b.y-k*(f.y-e.y)},next:{x:b.x+l*(f.x-e.x),y:b.y+l*(f.y-e.y)}}}(c,h=a[f],a[Math.min(f+1,g-!d)%g],b.tension),h.cp1x=i.previous.x,h.cp1y=i.previous.y,h.cp2x=i.next.x,h.cp2y=i.next.y,c=h}b.capBezierPoints&&function(a,b){let c,d,e,f,g,h=bl(a[0],b);for(c=0,d=a.length;c<d;++c)g=f,f=h,h=c<d-1&&bl(a[c+1],b),f&&(e=a[c],g&&(e.cp1x=bR(e.cp1x,b.left,b.right),e.cp1y=bR(e.cp1y,b.top,b.bottom)),h&&(e.cp2x=bR(e.cp2x,b.left,b.right),e.cp2y=bR(e.cp2y,b.top,b.bottom)))}(a,c)}(this._points,c,a,d,b),this._pointsUpdated=!0}}set points(a){this._points=a,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=function(a,b){let c=a.points,d=a.options.spanGaps,e=c.length;if(!e)return[];let f=!!a._loop,{start:g,end:h}=function(a,b,c,d){let e=0,f=b-1;if(c&&!d)for(;e<b&&!a[e].skip;)e++;for(;e<b&&a[e].skip;)e++;for(e%=b,c&&(f+=e);f>e&&a[f%b].skip;)f--;return{start:e,end:f%=b}}(c,e,f,d);if(!0===d)return cb(a,[{start:g,end:h,loop:f}],c,b);let i=h<g?h+e:h,j=!!a._fullLoop&&0===g&&h===e-1;return cb(a,function(a,b,c,d){let e,f=a.length,g=[],h=b,i=a[b];for(e=b+1;e<=c;++e){let c=a[e%f];c.skip||c.stop?i.skip||(d=!1,g.push({start:b%f,end:(e-1)%f,loop:d}),b=h=c.stop?e:null):(h=e,i.skip&&(b=e)),i=c}return null!==h&&g.push({start:b%f,end:h%f,loop:d}),g}(c,g,i,j),c,b)}(this,this.options.segment))}first(){let a=this.segments,b=this.points;return a.length&&b[a[0].start]}last(){let a=this.segments,b=this.points,c=a.length;return c&&b[a[c-1].end]}interpolate(a,b){let c,d,e=this.options,f=a[b],g=this.points,h=ca(this,{property:b,start:f,end:f});if(!h.length)return;let i=[],j=e.stepped?b2:e.tension||"monotone"===e.cubicInterpolationMode?b3:b1;for(c=0,d=h.length;c<d;++c){let{start:d,end:k}=h[c],l=g[d],m=g[k];if(l===m){i.push(l);continue}let n=Math.abs((f-l[b])/(m[b]-l[b])),o=j(l,m,n,e.stepped);o[b]=a[b],i.push(o)}return 1===i.length?i[0]:i}pathSegment(a,b,c){return dX(this)(a,this,b,c)}path(a,b,c){let d=this.segments,e=dX(this),f=this._loop;for(let g of(b=b||0,c=c||this.points.length-b,d))f&=e(a,this,g,{start:b,end:b+c-1});return!!f}draw(a,b,c,d){let e=this.options||{};(this.points||[]).length&&e.borderWidth&&(a.save(),function(a,b,c,d){if(dY&&!b.options.segment){let e;(e=b._path)||(e=b._path=new Path2D,b.path(e,c,d)&&e.closePath()),dS(a,b.options),a.stroke(e)}else!function(a,b,c,d){let{segments:e,options:f}=b,g=dX(b);for(let h of e)dS(a,f,h.style),a.beginPath(),g(a,b,h,{start:c,end:c+d-1})&&a.closePath(),a.stroke()}(a,b,c,d)}(a,this,c,d),a.restore()),this.animated&&(this._pointsUpdated=!1,this._path=void 0)}}function d$(a,b,c,d){let e=a.options,{[c]:f}=a.getProps([c],d);return Math.abs(b-f)<e.radius+e.hitRadius}class d_ extends df{static id="point";parsed;skip;stop;static defaults={borderWidth:1,hitRadius:1,hoverBorderWidth:1,hoverRadius:4,pointStyle:"circle",radius:3,rotation:0};static defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};constructor(a){super(),this.options=void 0,this.parsed=void 0,this.skip=void 0,this.stop=void 0,a&&Object.assign(this,a)}inRange(a,b,c){let d=this.options,{x:e,y:f}=this.getProps(["x","y"],c);return Math.pow(a-e,2)+Math.pow(b-f,2)<Math.pow(d.hitRadius+d.radius,2)}inXRange(a,b){return d$(this,a,"x",b)}inYRange(a,b){return d$(this,a,"y",b)}getCenterPoint(a){let{x:b,y:c}=this.getProps(["x","y"],a);return{x:b,y:c}}size(a){let b=(a=a||this.options||{}).radius||0,c=(b=Math.max(b,b&&a.hoverRadius||0))&&a.borderWidth||0;return(b+c)*2}draw(a,b){let c=this.options;!this.skip&&!(c.radius<.1)&&bl(this,b,this.size(c)/2)&&(a.strokeStyle=c.borderColor,a.lineWidth=c.borderWidth,a.fillStyle=c.backgroundColor,bj(a,c,this.x,this.y))}getRange(){let a=this.options||{};return a.radius+a.hitRadius}}function d0(a,b){let c,d,e,f,g,{x:h,y:i,base:j,width:k,height:l}=a.getProps(["x","y","base","width","height"],b);return a.horizontal?(g=l/2,c=Math.min(h,j),d=Math.max(h,j),e=i-g,f=i+g):(c=h-(g=k/2),d=h+g,e=Math.min(i,j),f=Math.max(i,j)),{left:c,top:e,right:d,bottom:f}}function d1(a,b,c,d){return a?0:ay(b,c,d)}function d2(a,b,c,d){let e=null===b,f=null===c,g=a&&!(e&&f)&&d0(a,d);return g&&(e||az(b,g.left,g.right))&&(f||az(c,g.top,g.bottom))}function d3(a,b){a.rect(b.x,b.y,b.w,b.h)}function d4(a,b,c={}){let d=a.x!==c.x?-b:0,e=a.y!==c.y?-b:0,f=(a.x+a.w!==c.x+c.w?b:0)-d,g=(a.y+a.h!==c.y+c.h?b:0)-e;return{x:a.x+d,y:a.y+e,w:a.w+f,h:a.h+g,radius:a.radius}}class d5 extends df{static id="bar";static defaults={borderSkipped:"start",borderWidth:0,borderRadius:0,inflateAmount:"auto",pointStyle:void 0};static defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};constructor(a){super(),this.options=void 0,this.horizontal=void 0,this.base=void 0,this.width=void 0,this.height=void 0,this.inflateAmount=void 0,a&&Object.assign(this,a)}draw(a){var b,c,d;let e,f,g,h,i,j,k,l,{inflateAmount:m,options:{borderColor:n,backgroundColor:o}}=this,{inner:p,outer:q}=(f=(e=d0(this)).right-e.left,g=e.bottom-e.top,b=f/2,c=g/2,h=this.options.borderWidth,i=this.borderSkipped,j=bw(h),k={t:d1(i.top,j.top,0,c),r:d1(i.right,j.right,0,b),b:d1(i.bottom,j.bottom,0,c),l:d1(i.left,j.left,0,b)},l=function(a,b,c){let{enableBorderRadius:d}=a.getProps(["enableBorderRadius"]),e=a.options.borderRadius,f=bx(e),g=Math.min(b,c),h=a.borderSkipped,i=d||L(e);return{topLeft:d1(!i||h.top||h.left,f.topLeft,0,g),topRight:d1(!i||h.top||h.right,f.topRight,0,g),bottomLeft:d1(!i||h.bottom||h.left,f.bottomLeft,0,g),bottomRight:d1(!i||h.bottom||h.right,f.bottomRight,0,g)}}(this,f/2,g/2),{outer:{x:e.left,y:e.top,w:f,h:g,radius:l},inner:{x:e.left+k.l,y:e.top+k.t,w:f-k.l-k.r,h:g-k.t-k.b,radius:{topLeft:Math.max(0,l.topLeft-Math.max(k.t,k.l)),topRight:Math.max(0,l.topRight-Math.max(k.t,k.r)),bottomLeft:Math.max(0,l.bottomLeft-Math.max(k.b,k.l)),bottomRight:Math.max(0,l.bottomRight-Math.max(k.b,k.r))}}}),r=(d=q.radius).topLeft||d.topRight||d.bottomLeft||d.bottomRight?br:d3;a.save(),(q.w!==p.w||q.h!==p.h)&&(a.beginPath(),r(a,d4(q,m,p)),a.clip(),r(a,d4(p,-m,q)),a.fillStyle=n,a.fill("evenodd")),a.beginPath(),r(a,d4(p,m)),a.fillStyle=o,a.fill(),a.restore()}inRange(a,b,c){return d2(this,a,b,c)}inXRange(a,b){return d2(this,a,null,b)}inYRange(a,b){return d2(this,null,a,b)}getCenterPoint(a){let{x:b,y:c,base:d,horizontal:e}=this.getProps(["x","y","base","horizontal"],a);return{x:e?(b+d)/2:b,y:e?c:(c+d)/2}}getRange(a){return"x"===a?this.width/2:this.height/2}}var d6=Object.freeze({__proto__:null,ArcElement:dR,BarElement:d5,LineElement:dZ,PointElement:d_});let d7=["rgb(54, 162, 235)","rgb(255, 99, 132)","rgb(255, 159, 64)","rgb(255, 205, 86)","rgb(75, 192, 192)","rgb(153, 102, 255)","rgb(201, 203, 207)"],d8=d7.map(a=>a.replace("rgb(","rgba(").replace(")",", 0.5)"));function d9(a){return d7[a%d7.length]}function ea(a){return d8[a%d8.length]}function eb(a){let b;for(b in a)if(a[b].borderColor||a[b].backgroundColor)return!0;return!1}function ec(a){if(a._decimated){let b=a._data;delete a._decimated,delete a._data,Object.defineProperty(a,"data",{configurable:!0,enumerable:!0,writable:!0,value:b})}}function ed(a){a.data.datasets.forEach(a=>{ec(a)})}function ee(a,b,c,d){if(d)return;let e=b[a],f=c[a];return"angle"===a&&(e=aw(e),f=aw(f)),{property:a,start:e,end:f}}function ef(a,b,c){for(;b>a;b--){let a=c[b];if(!isNaN(a.x)&&!isNaN(a.y))break}return b}function eg(a,b,c,d){return a&&b?d(a[c],b[c]):a?a[c]:b?b[c]:0}function eh(a,b){let c=[],d=!1;return K(a)?(d=!0,c=a):c=function(a,b){let{x:c=null,y:d=null}=a||{},e=b.points,f=[];return b.segments.forEach(({start:a,end:b})=>{b=ef(a,b,e);let g=e[a],h=e[b];null!==d?(f.push({x:g.x,y:d}),f.push({x:h.x,y:d})):null!==c&&(f.push({x:c,y:g.y}),f.push({x:c,y:h.y}))}),f}(a,b),c.length?new dZ({points:c,options:{tension:0},_loop:d,_fullLoop:d}):null}function ei(a){return a&&!1!==a.fill}class ej{constructor(a){this.x=a.x,this.y=a.y,this.radius=a.radius}pathSegment(a,b,c){let{x:d,y:e,radius:f}=this;return b=b||{start:0,end:ae},a.arc(d,e,f,b.end,b.start,!0),!c.bounds}interpolate(a){let{x:b,y:c,radius:d}=this,e=a.angle;return{x:b+Math.cos(e)*d,y:c+Math.sin(e)*d,angle:e}}}function ek(a,b,c){let d=function(a){var b,c,d;let{chart:e,fill:f,line:g}=a;if(M(f)){let a;return b=e,c=f,(a=b.getDatasetMeta(c))&&b.isDatasetVisible(c)?a.dataset:null}if("stack"===f)return function(a){let{scale:b,index:c,line:d}=a,e=[],f=d.segments,g=d.points,h=function(a,b){let c=[],d=a.getMatchingVisibleMetas("line");for(let a=0;a<d.length;a++){let e=d[a];if(e.index===b)break;e.hidden||c.unshift(e.dataset)}return c}(b,c);h.push(eh({x:null,y:b.bottom},d));for(let a=0;a<f.length;a++){let b=f[a];for(let a=b.start;a<=b.end;a++)!function(a,b,c){let d=[];for(let e=0;e<c.length;e++){let{first:f,last:g,point:h}=function(a,b){let c=a.interpolate(b,"x");if(!c)return{};let d=c.x,e=a.segments,f=a.points,g=!1,h=!1;for(let a=0;a<e.length;a++){let b=e[a],c=f[b.start].x,i=f[b.end].x;if(az(d,c,i)){g=d===c,h=d===i;break}}return{first:g,last:h,point:c}}(c[e],b);if(h&&(!f||!g)){if(f)d.unshift(h);else if(a.push(h),!g)break}}a.push(...d)}(e,g[a],h)}return new dZ({points:e,options:{}})}(a);if("shape"===f)return!0;let h=((d=a).scale||{}).getPointPositionForValue?function(a){let{scale:b,fill:c}=a,d=b.options,e=b.getLabels().length,f=d.reverse?b.max:b.min,g="start"===c?f:"end"===c?b.options.reverse?b.min:b.max:L(c)?c.value:b.getBaseValue(),h=[];if(d.grid.circular){let a=b.getPointPositionForValue(0,f);return new ej({x:a.x,y:a.y,radius:b.getDistanceFromCenterForValue(g)})}for(let a=0;a<e;++a)h.push(b.getPointPositionForValue(a,g));return h}(d):function(a){let b,{scale:c={},fill:d}=a,e=(b=null,"start"===d?b=c.bottom:"end"===d?b=c.top:L(d)?b=c.getPixelForValue(d.value):c.getBasePixel&&(b=c.getBasePixel()),b);if(M(e)){let a=c.isHorizontal();return{x:a?e:null,y:a?null:e}}return null}(d);return h instanceof ej?h:eh(h,g)}(b),{chart:e,index:f,line:g,scale:h,axis:i}=b,j=g.options,k=j.fill,l=j.backgroundColor,{above:m=l,below:n=l}=k||{},o=e.getDatasetMeta(f),p=ce(e,o);d&&g.points.length&&(bm(a,c),function(a,b){let{line:c,target:d,above:e,below:f,area:g,scale:h,clip:i}=b,j=c._loop?"angle":b.axis;a.save();let k=f;f!==e&&("x"===j?(el(a,d,g.top),en(a,{line:c,target:d,color:e,scale:h,property:j,clip:i}),a.restore(),a.save(),el(a,d,g.bottom)):"y"===j&&(em(a,d,g.left),en(a,{line:c,target:d,color:f,scale:h,property:j,clip:i}),a.restore(),a.save(),em(a,d,g.right),k=e)),en(a,{line:c,target:d,color:k,scale:h,property:j,clip:i}),a.restore()}(a,{line:g,target:d,above:m,below:n,area:c,scale:h,axis:i,clip:p}),bn(a))}function el(a,b,c){let{segments:d,points:e}=b,f=!0,g=!1;for(let h of(a.beginPath(),d)){let{start:d,end:i}=h,j=e[d],k=e[ef(d,i,e)];f?(a.moveTo(j.x,j.y),f=!1):(a.lineTo(j.x,c),a.lineTo(j.x,j.y)),(g=!!b.pathSegment(a,h,{move:g}))?a.closePath():a.lineTo(k.x,c)}a.lineTo(b.first().x,c),a.closePath(),a.clip()}function em(a,b,c){let{segments:d,points:e}=b,f=!0,g=!1;for(let h of(a.beginPath(),d)){let{start:d,end:i}=h,j=e[d],k=e[ef(d,i,e)];f?(a.moveTo(j.x,j.y),f=!1):(a.lineTo(c,j.y),a.lineTo(j.x,j.y)),(g=!!b.pathSegment(a,h,{move:g}))?a.closePath():a.lineTo(c,k.y)}a.lineTo(c,b.first().y),a.closePath(),a.clip()}function en(a,b){let{line:c,target:d,property:e,color:f,scale:g,clip:h}=b;for(let{source:b,target:i,start:j,end:k}of function(a,b,c){let d=a.segments,e=a.points,f=b.points,g=[];for(let a of d){let{start:d,end:h}=a;h=ef(d,h,e);let i=ee(c,e[d],e[h],a.loop);if(!b.segments){g.push({source:a,target:i,start:e[d],end:e[h]});continue}for(let d of ca(b,i)){let b=ee(c,f[d.start],f[d.end],d.loop);for(let f of b9(a,e,b))g.push({source:f,target:d,start:{[c]:eg(i,b,"start",Math.max)},end:{[c]:eg(i,b,"end",Math.min)}})}}return g}(c,d,e)){let l,{style:{backgroundColor:m=f}={}}=b,n=!0!==d;a.save(),a.fillStyle=m,function(a,b,c,d){let e=b.chart.chartArea,{property:f,start:g,end:h}=d||{};if("x"===f||"y"===f){let b,d,i,j;"x"===f?(b=g,d=e.top,i=h,j=e.bottom):(b=e.left,d=g,i=e.right,j=h),a.beginPath(),c&&(b=Math.max(b,c.left),i=Math.min(i,c.right),d=Math.max(d,c.top),j=Math.min(j,c.bottom)),a.rect(b,d,i-b,j-d),a.clip()}}(a,g,h,n&&ee(e,j,k)),a.beginPath();let o=!!c.pathSegment(a,b);if(n){o?a.closePath():eo(a,d,k,e);let b=!!d.pathSegment(a,i,{move:o,reverse:!0});(l=o&&b)||eo(a,d,j,e)}a.closePath(),a.fill(l?"evenodd":"nonzero"),a.restore()}}function eo(a,b,c,d){let e=b.interpolate(c,d);e&&a.lineTo(e.x,e.y)}let ep=(a,b)=>{let{boxHeight:c=b,boxWidth:d=b}=a;return a.usePointStyle&&(c=Math.min(c,b),d=a.pointStyleWidth||Math.min(d,b)),{boxWidth:d,boxHeight:c,itemHeight:Math.max(b,c)}};class eq extends df{constructor(a){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=a.chart,this.options=a.options,this.ctx=a.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(a,b,c){this.maxWidth=a,this.maxHeight=b,this._margins=c,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){let a=this.options.labels||{},b=Q(a.generateLabels,[this.chart],this)||[];a.filter&&(b=b.filter(b=>a.filter(b,this.chart.data))),a.sort&&(b=b.sort((b,c)=>a.sort(b,c,this.chart.data))),this.options.reverse&&b.reverse(),this.legendItems=b}fit(){let a,b,{options:c,ctx:d}=this;if(!c.display){this.width=this.height=0;return}let e=c.labels,f=bz(e.font),g=f.size,h=this._computeTitleHeight(),{boxWidth:i,itemHeight:j}=ep(e,g);d.font=f.string,this.isHorizontal()?(a=this.maxWidth,b=this._fitRows(h,g,i,j)+10):(b=this.maxHeight,a=this._fitCols(h,f,i,j)+10),this.width=Math.min(a,c.maxWidth||this.maxWidth),this.height=Math.min(b,c.maxHeight||this.maxHeight)}_fitRows(a,b,c,d){let{ctx:e,maxWidth:f,options:{labels:{padding:g}}}=this,h=this.legendHitBoxes=[],i=this.lineWidths=[0],j=d+g,k=a;e.textAlign="left",e.textBaseline="middle";let l=-1,m=-j;return this.legendItems.forEach((a,n)=>{let o=c+b/2+e.measureText(a.text).width;(0===n||i[i.length-1]+o+2*g>f)&&(k+=j,i[i.length-(n>0?0:1)]=0,m+=j,l++),h[n]={left:0,top:m,row:l,width:o,height:d},i[i.length-1]+=o+g}),k}_fitCols(a,b,c,d){let{ctx:e,maxHeight:f,options:{labels:{padding:g}}}=this,h=this.legendHitBoxes=[],i=this.columnSizes=[],j=f-a,k=g,l=0,m=0,n=0,o=0;return this.legendItems.forEach((a,f)=>{var p,q,r,s,t,u,v,w,x,y,z,A;let B,C,{itemWidth:D,itemHeight:E}=(p=c,q=b,r=e,s=a,t=d,{itemWidth:(u=s,v=p,w=q,x=r,(B=u.text)&&"string"!=typeof B&&(B=B.reduce((a,b)=>a.length>b.length?a:b)),v+w.size/2+x.measureText(B).width),itemHeight:(y=t,z=s,A=q.lineHeight,C=y,"string"!=typeof z.text&&(C=er(z,A)),C)});f>0&&m+E+2*g>j&&(k+=l+g,i.push({width:l,height:m}),n+=l+g,o++,l=m=0),h[f]={left:n,top:m,col:o,width:D,height:E},l=Math.max(l,D),m+=E+g}),k+=l,i.push({width:l,height:m}),k}adjustHitBoxes(){if(!this.options.display)return;let a=this._computeTitleHeight(),{legendHitBoxes:b,options:{align:c,labels:{padding:d},rtl:e}}=this,f=b4(e,this.left,this.width);if(this.isHorizontal()){let e=0,g=aJ(c,this.left+d,this.right-this.lineWidths[e]);for(let h of b)e!==h.row&&(e=h.row,g=aJ(c,this.left+d,this.right-this.lineWidths[e])),h.top+=this.top+a+d,h.left=f.leftForLtr(f.x(g),h.width),g+=h.width+d}else{let e=0,g=aJ(c,this.top+a+d,this.bottom-this.columnSizes[e].height);for(let h of b)h.col!==e&&(e=h.col,g=aJ(c,this.top+a+d,this.bottom-this.columnSizes[e].height)),h.top=g,h.left+=this.left+d,h.left=f.leftForLtr(f.x(h.left),h.width),g+=h.height+d}}isHorizontal(){return"top"===this.options.position||"bottom"===this.options.position}draw(){if(this.options.display){let a=this.ctx;bm(a,this),this._draw(),bn(a)}}_draw(){let a,{options:b,columnSizes:c,lineWidths:d,ctx:e}=this,{align:f,labels:g}=b,h=bf.color,i=b4(b.rtl,this.left,this.width),j=bz(g.font),{padding:k}=g,l=j.size,m=l/2;this.drawTitle(),e.textAlign=i.textAlign("left"),e.textBaseline="middle",e.lineWidth=.5,e.font=j.string;let{boxWidth:n,boxHeight:o,itemHeight:p}=ep(g,l),q=function(a,b,c){if(isNaN(n)||n<=0||isNaN(o)||o<0)return;e.save();let d=O(c.lineWidth,1);if(e.fillStyle=O(c.fillStyle,h),e.lineCap=O(c.lineCap,"butt"),e.lineDashOffset=O(c.lineDashOffset,0),e.lineJoin=O(c.lineJoin,"miter"),e.lineWidth=d,e.strokeStyle=O(c.strokeStyle,h),e.setLineDash(O(c.lineDash,[])),g.usePointStyle)bk(e,{radius:o*Math.SQRT2/2,pointStyle:c.pointStyle,rotation:c.rotation,borderWidth:d},i.xPlus(a,n/2),b+m,g.pointStyleWidth&&n);else{let f=b+Math.max((l-o)/2,0),g=i.leftForLtr(a,n),h=bx(c.borderRadius);e.beginPath(),Object.values(h).some(a=>0!==a)?br(e,{x:g,y:f,w:n,h:o,radius:h}):e.rect(g,f,n,o),e.fill(),0!==d&&e.stroke()}e.restore()},r=function(a,b,c){bq(e,c.text,a,b+p/2,j,{strikethrough:c.hidden,textAlign:i.textAlign(c.textAlign)})},s=this.isHorizontal(),t=this._computeTitleHeight();a=s?{x:aJ(f,this.left+k,this.right-d[0]),y:this.top+k+t,line:0}:{x:this.left+k,y:aJ(f,this.top+t+k,this.bottom-c[0].height),line:0},b5(this.ctx,b.textDirection);let u=p+k;this.legendItems.forEach((h,l)=>{var o,p;e.strokeStyle=h.fontColor,e.fillStyle=h.fontColor;let v=e.measureText(h.text).width,w=i.textAlign(h.textAlign||(h.textAlign=g.textAlign)),x=n+m+v,y=a.x,z=a.y;if(i.setWidth(this.width),s?l>0&&y+x+k>this.right&&(z=a.y+=u,a.line++,y=a.x=aJ(f,this.left+k,this.right-d[a.line])):l>0&&z+u>this.bottom&&(y=a.x=y+c[a.line].width+k,a.line++,z=a.y=aJ(f,this.top+t+k,this.bottom-c[a.line].height)),q(i.x(y),z,h),o=y+n+m,p=s?y+x:this.right,y=w===(b.rtl?"left":"right")?p:"center"===w?(o+p)/2:o,r(i.x(y),z,h),s)a.x+=x+k;else if("string"!=typeof h.text){let b=j.lineHeight;a.y+=er(h,b)+k}else a.y+=u}),b6(this.ctx,b.textDirection)}drawTitle(){let a,b=this.options,c=b.title,d=bz(c.font),e=by(c.padding);if(!c.display)return;let f=b4(b.rtl,this.left,this.width),g=this.ctx,h=c.position,i=d.size/2,j=e.top+i,k=this.left,l=this.width;if(this.isHorizontal())l=Math.max(...this.lineWidths),a=this.top+j,k=aJ(b.align,k,this.right-l);else{let c=this.columnSizes.reduce((a,b)=>Math.max(a,b.height),0);a=j+aJ(b.align,this.top,this.bottom-c-b.labels.padding-this._computeTitleHeight())}let m=aJ(h,k,k+l);g.textAlign=f.textAlign(aI(h)),g.textBaseline="middle",g.strokeStyle=c.color,g.fillStyle=c.color,g.font=d.string,bq(g,c.text,m,a,d)}_computeTitleHeight(){let a=this.options.title,b=bz(a.font),c=by(a.padding);return a.display?b.lineHeight+c.height:0}_getLegendItemAt(a,b){let c,d,e;if(az(a,this.left,this.right)&&az(b,this.top,this.bottom)){for(c=0,e=this.legendHitBoxes;c<e.length;++c)if(az(a,(d=e[c]).left,d.left+d.width)&&az(b,d.top,d.top+d.height))return this.legendItems[c]}return null}handleEvent(a){var b,c;let d=this.options;if(b=a.type,c=d,("mousemove"!==b&&"mouseout"!==b||!c.onHover&&!c.onLeave)&&(!c.onClick||"click"!==b&&"mouseup"!==b))return;let e=this._getLegendItemAt(a.x,a.y);if("mousemove"===a.type||"mouseout"===a.type){let b=this._hoveredItem,c=null!==b&&null!==e&&b.datasetIndex===e.datasetIndex&&b.index===e.index;b&&!c&&Q(d.onLeave,[a,b,this],this),this._hoveredItem=e,e&&!c&&Q(d.onHover,[a,e,this],this)}else e&&Q(d.onClick,[a,e,this],this)}}function er(a,b){return b*(a.text?a.text.length:0)}class es extends df{constructor(a){super(),this.chart=a.chart,this.options=a.options,this.ctx=a.ctx,this._padding=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(a,b){let c=this.options;if(this.left=0,this.top=0,!c.display){this.width=this.height=this.right=this.bottom=0;return}this.width=this.right=a,this.height=this.bottom=b;let d=K(c.text)?c.text.length:1;this._padding=by(c.padding);let e=d*bz(c.font).lineHeight+this._padding.height;this.isHorizontal()?this.height=e:this.width=e}isHorizontal(){let a=this.options.position;return"top"===a||"bottom"===a}_drawArgs(a){let b,c,d,{top:e,left:f,bottom:g,right:h,options:i}=this,j=i.align,k=0;return this.isHorizontal()?(c=aJ(j,f,h),d=e+a,b=h-f):("left"===i.position?(c=f+a,d=aJ(j,g,e),k=-.5*ad):(c=h-a,d=aJ(j,e,g),k=.5*ad),b=g-e),{titleX:c,titleY:d,maxWidth:b,rotation:k}}draw(){let a=this.ctx,b=this.options;if(!b.display)return;let c=bz(b.font),d=c.lineHeight/2+this._padding.top,{titleX:e,titleY:f,maxWidth:g,rotation:h}=this._drawArgs(d);bq(a,b.text,0,0,c,{color:b.color,maxWidth:g,rotation:h,textAlign:aI(b.align),textBaseline:"middle",translation:[e,f]})}}let et=new WeakMap,eu={average(a){let b,c;if(!a.length)return!1;let d=new Set,e=0,f=0;for(b=0,c=a.length;b<c;++b){let c=a[b].element;if(c&&c.hasValue()){let a=c.tooltipPosition();d.add(a.x),e+=a.y,++f}}return 0!==f&&0!==d.size&&{x:[...d].reduce((a,b)=>a+b)/d.size,y:e/f}},nearest(a,b){let c,d,e;if(!a.length)return!1;let f=b.x,g=b.y,h=1/0;for(c=0,d=a.length;c<d;++c){let d=a[c].element;if(d&&d.hasValue()){let a=au(b,d.getCenterPoint());a<h&&(h=a,e=d)}}if(e){let a=e.tooltipPosition();f=a.x,g=a.y}return{x:f,y:g}}};function ev(a,b){return b&&(K(b)?Array.prototype.push.apply(a,b):a.push(b)),a}function ew(a){return("string"==typeof a||a instanceof String)&&a.indexOf("\n")>-1?a.split("\n"):a}function ex(a,b){let c=a.chart.ctx,{body:d,footer:e,title:f}=a,{boxWidth:g,boxHeight:h}=b,i=bz(b.bodyFont),j=bz(b.titleFont),k=bz(b.footerFont),l=f.length,m=e.length,n=d.length,o=by(b.padding),p=o.height,q=0,r=d.reduce((a,b)=>a+b.before.length+b.lines.length+b.after.length,0);r+=a.beforeBody.length+a.afterBody.length,l&&(p+=l*j.lineHeight+(l-1)*b.titleSpacing+b.titleMarginBottom),r&&(p+=n*(b.displayColors?Math.max(h,i.lineHeight):i.lineHeight)+(r-n)*i.lineHeight+(r-1)*b.bodySpacing),m&&(p+=b.footerMarginTop+m*k.lineHeight+(m-1)*b.footerSpacing);let s=0,t=function(a){q=Math.max(q,c.measureText(a).width+s)};return c.save(),c.font=j.string,R(a.title,t),c.font=i.string,R(a.beforeBody.concat(a.afterBody),t),s=b.displayColors?g+2+b.boxPadding:0,R(d,a=>{R(a.before,t),R(a.lines,t),R(a.after,t)}),s=0,c.font=k.string,R(a.footer,t),c.restore(),{width:q+=o.width,height:p}}function ey(a,b,c){let d=c.yAlign||b.yAlign||function(a,b){let{y:c,height:d}=b;return c<d/2?"top":c>a.height-d/2?"bottom":"center"}(a,c);return{xAlign:c.xAlign||b.xAlign||function(a,b,c,d){let{x:e,width:f}=c,{width:g,chartArea:{left:h,right:i}}=a,j="center";return"center"===d?j=e<=(h+i)/2?"left":"right":e<=f/2?j="left":e>=g-f/2&&(j="right"),function(a,b,c,d){let{x:e,width:f}=d,g=c.caretSize+c.caretPadding;if("left"===a&&e+f+g>b.width||"right"===a&&e-f-g<0)return!0}(j,a,b,c)&&(j="center"),j}(a,b,c,d),yAlign:d}}function ez(a,b,c,d){let{caretSize:e,caretPadding:f,cornerRadius:g}=a,{xAlign:h,yAlign:i}=c,j=e+f,{topLeft:k,topRight:l,bottomLeft:m,bottomRight:n}=bx(g),o=function(a,b){let{x:c,width:d}=a;return"right"===b?c-=d:"center"===b&&(c-=d/2),c}(b,h),p=function(a,b,c){let{y:d,height:e}=a;return"top"===b?d+=c:"bottom"===b?d-=e+c:d-=e/2,d}(b,i,j);return"center"===i?"left"===h?o+=j:"right"===h&&(o-=j):"left"===h?o-=Math.max(k,m)+e:"right"===h&&(o+=Math.max(l,n)+e),{x:ay(o,0,d.width-b.width),y:ay(p,0,d.height-b.height)}}function eA(a,b,c){let d=by(c.padding);return"center"===b?a.x+a.width/2:"right"===b?a.x+a.width-d.right:a.x+d.left}function eB(a,b){let c=b&&b.dataset&&b.dataset.tooltip&&b.dataset.tooltip.callbacks;return c?a.override(c):a}let eC={beforeTitle:H,title(a){if(a.length>0){let b=a[0],c=b.chart.data.labels,d=c?c.length:0;if(this&&this.options&&"dataset"===this.options.mode)return b.dataset.label||"";if(b.label)return b.label;if(d>0&&b.dataIndex<d)return c[b.dataIndex]}return""},afterTitle:H,beforeBody:H,beforeLabel:H,label(a){if(this&&this.options&&"dataset"===this.options.mode)return a.label+": "+a.formattedValue||a.formattedValue;let b=a.dataset.label||"";b&&(b+=": ");let c=a.formattedValue;return J(c)||(b+=c),b},labelColor(a){let b=a.chart.getDatasetMeta(a.datasetIndex).controller.getStyle(a.dataIndex);return{borderColor:b.borderColor,backgroundColor:b.backgroundColor,borderWidth:b.borderWidth,borderDash:b.borderDash,borderDashOffset:b.borderDashOffset,borderRadius:0}},labelTextColor(){return this.options.bodyColor},labelPointStyle(a){let b=a.chart.getDatasetMeta(a.datasetIndex).controller.getStyle(a.dataIndex);return{pointStyle:b.pointStyle,rotation:b.rotation}},afterLabel:H,afterBody:H,beforeFooter:H,footer:H,afterFooter:H};function eD(a,b,c,d){let e=a[b].call(c,d);return void 0===e?eC[b].call(c,d):e}class eE extends df{static positioners=eu;constructor(a){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=a.chart,this.options=a.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(a){this.options=a,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){let a=this._cachedAnimations;if(a)return a;let b=this.chart,c=this.options.setContext(this.getContext()),d=c.enabled&&b.options.animation&&c.animations,e=new ck(this.chart,d);return d._cacheable&&(this._cachedAnimations=Object.freeze(e)),e}getContext(){var a;return this.$context||(this.$context=(a=this.chart.getContext(),bB(a,{tooltip:this,tooltipItems:this._tooltipItems,type:"tooltip"})))}getTitle(a,b){let{callbacks:c}=b,d=eD(c,"beforeTitle",this,a),e=eD(c,"title",this,a),f=eD(c,"afterTitle",this,a),g=[];return g=ev(g,ew(d)),g=ev(g,ew(e)),g=ev(g,ew(f))}getBeforeBody(a,b){return ev([],ew(eD(b.callbacks,"beforeBody",this,a)))}getBody(a,b){let{callbacks:c}=b,d=[];return R(a,a=>{let b={before:[],lines:[],after:[]},e=eB(c,a);ev(b.before,ew(eD(e,"beforeLabel",this,a))),ev(b.lines,eD(e,"label",this,a)),ev(b.after,ew(eD(e,"afterLabel",this,a))),d.push(b)}),d}getAfterBody(a,b){return ev([],ew(eD(b.callbacks,"afterBody",this,a)))}getFooter(a,b){let{callbacks:c}=b,d=eD(c,"beforeFooter",this,a),e=eD(c,"footer",this,a),f=eD(c,"afterFooter",this,a),g=[];return g=ev(g,ew(d)),g=ev(g,ew(e)),g=ev(g,ew(f))}_createItems(a){let b,c,d=this._active,e=this.chart.data,f=[],g=[],h=[],i=[];for(b=0,c=d.length;b<c;++b)i.push(function(a,b){let{element:c,datasetIndex:d,index:e}=b,f=a.getDatasetMeta(d).controller,{label:g,value:h}=f.getLabelAndValue(e);return{chart:a,label:g,parsed:f.getParsed(e),raw:a.data.datasets[d].data[e],formattedValue:h,dataset:f.getDataset(),dataIndex:e,datasetIndex:d,element:c}}(this.chart,d[b]));return a.filter&&(i=i.filter((b,c,d)=>a.filter(b,c,d,e))),a.itemSort&&(i=i.sort((b,c)=>a.itemSort(b,c,e))),R(i,b=>{let c=eB(a.callbacks,b);f.push(eD(c,"labelColor",this,b)),g.push(eD(c,"labelPointStyle",this,b)),h.push(eD(c,"labelTextColor",this,b))}),this.labelColors=f,this.labelPointStyles=g,this.labelTextColors=h,this.dataPoints=i,i}update(a,b){let c,d=this.options.setContext(this.getContext()),e=this._active,f=[];if(e.length){let a=eu[d.position].call(this,e,this._eventPosition);f=this._createItems(d),this.title=this.getTitle(f,d),this.beforeBody=this.getBeforeBody(f,d),this.body=this.getBody(f,d),this.afterBody=this.getAfterBody(f,d),this.footer=this.getFooter(f,d);let b=this._size=ex(this,d),g=Object.assign({},a,b),h=ey(this.chart,d,g),i=ez(d,g,h,this.chart);this.xAlign=h.xAlign,this.yAlign=h.yAlign,c={opacity:1,x:i.x,y:i.y,width:b.width,height:b.height,caretX:a.x,caretY:a.y}}else 0!==this.opacity&&(c={opacity:0});this._tooltipItems=f,this.$context=void 0,c&&this._resolveAnimations().update(this,c),a&&d.external&&d.external.call(this,{chart:this.chart,tooltip:this,replay:b})}drawCaret(a,b,c,d){let e=this.getCaretPosition(a,c,d);b.lineTo(e.x1,e.y1),b.lineTo(e.x2,e.y2),b.lineTo(e.x3,e.y3)}getCaretPosition(a,b,c){let d,e,f,g,h,i,{xAlign:j,yAlign:k}=this,{caretSize:l,cornerRadius:m}=c,{topLeft:n,topRight:o,bottomLeft:p,bottomRight:q}=bx(m),{x:r,y:s}=a,{width:t,height:u}=b;return"center"===k?(h=s+u/2,"left"===j?(e=(d=r)-l,g=h+l,i=h-l):(e=(d=r+t)+l,g=h-l,i=h+l),f=d):(e="left"===j?r+Math.max(n,p)+l:"right"===j?r+t-Math.max(o,q)-l:this.caretX,"top"===k?(h=(g=s)-l,d=e-l,f=e+l):(h=(g=s+u)+l,d=e+l,f=e-l),i=g),{x1:d,x2:e,x3:f,y1:g,y2:h,y3:i}}drawTitle(a,b,c){let d,e,f,g=this.title,h=g.length;if(h){let i=b4(c.rtl,this.x,this.width);for(f=0,a.x=eA(this,c.titleAlign,c),b.textAlign=i.textAlign(c.titleAlign),b.textBaseline="middle",d=bz(c.titleFont),e=c.titleSpacing,b.fillStyle=c.titleColor,b.font=d.string;f<h;++f)b.fillText(g[f],i.x(a.x),a.y+d.lineHeight/2),a.y+=d.lineHeight+e,f+1===h&&(a.y+=c.titleMarginBottom-e)}}_drawColorBox(a,b,c,d,e){let f=this.labelColors[c],g=this.labelPointStyles[c],{boxHeight:h,boxWidth:i}=e,j=bz(e.bodyFont),k=eA(this,"left",e),l=d.x(k),m=h<j.lineHeight?(j.lineHeight-h)/2:0,n=b.y+m;if(e.usePointStyle){let b={radius:Math.min(i,h)/2,pointStyle:g.pointStyle,rotation:g.rotation,borderWidth:1},c=d.leftForLtr(l,i)+i/2,j=n+h/2;a.strokeStyle=e.multiKeyBackground,a.fillStyle=e.multiKeyBackground,bj(a,b,c,j),a.strokeStyle=f.borderColor,a.fillStyle=f.backgroundColor,bj(a,b,c,j)}else{a.lineWidth=L(f.borderWidth)?Math.max(...Object.values(f.borderWidth)):f.borderWidth||1,a.strokeStyle=f.borderColor,a.setLineDash(f.borderDash||[]),a.lineDashOffset=f.borderDashOffset||0;let b=d.leftForLtr(l,i),c=d.leftForLtr(d.xPlus(l,1),i-2),g=bx(f.borderRadius);Object.values(g).some(a=>0!==a)?(a.beginPath(),a.fillStyle=e.multiKeyBackground,br(a,{x:b,y:n,w:i,h:h,radius:g}),a.fill(),a.stroke(),a.fillStyle=f.backgroundColor,a.beginPath(),br(a,{x:c,y:n+1,w:i-2,h:h-2,radius:g}),a.fill()):(a.fillStyle=e.multiKeyBackground,a.fillRect(b,n,i,h),a.strokeRect(b,n,i,h),a.fillStyle=f.backgroundColor,a.fillRect(c,n+1,i-2,h-2))}a.fillStyle=this.labelTextColors[c]}drawBody(a,b,c){let d,e,f,g,h,i,{body:j}=this,{bodySpacing:k,bodyAlign:l,displayColors:m,boxHeight:n,boxWidth:o,boxPadding:p}=c,q=bz(c.bodyFont),r=q.lineHeight,s=0,t=b4(c.rtl,this.x,this.width),u=function(c){b.fillText(c,t.x(a.x+s),a.y+r/2),a.y+=r+k},v=t.textAlign(l);for(b.textAlign=l,b.textBaseline="middle",b.font=q.string,a.x=eA(this,v,c),b.fillStyle=c.bodyColor,R(this.beforeBody,u),s=m&&"right"!==v?"center"===l?o/2+p:o+2+p:0,f=0,h=j.length;f<h;++f){for(d=j[f],b.fillStyle=this.labelTextColors[f],R(d.before,u),e=d.lines,m&&e.length&&(this._drawColorBox(b,a,f,t,c),r=Math.max(q.lineHeight,n)),g=0,i=e.length;g<i;++g)u(e[g]),r=q.lineHeight;R(d.after,u)}s=0,r=q.lineHeight,R(this.afterBody,u),a.y-=k}drawFooter(a,b,c){let d,e,f=this.footer,g=f.length;if(g){let h=b4(c.rtl,this.x,this.width);for(a.x=eA(this,c.footerAlign,c),a.y+=c.footerMarginTop,b.textAlign=h.textAlign(c.footerAlign),b.textBaseline="middle",d=bz(c.footerFont),b.fillStyle=c.footerColor,b.font=d.string,e=0;e<g;++e)b.fillText(f[e],h.x(a.x),a.y+d.lineHeight/2),a.y+=d.lineHeight+c.footerSpacing}}drawBackground(a,b,c,d){let{xAlign:e,yAlign:f}=this,{x:g,y:h}=a,{width:i,height:j}=c,{topLeft:k,topRight:l,bottomLeft:m,bottomRight:n}=bx(d.cornerRadius);b.fillStyle=d.backgroundColor,b.strokeStyle=d.borderColor,b.lineWidth=d.borderWidth,b.beginPath(),b.moveTo(g+k,h),"top"===f&&this.drawCaret(a,b,c,d),b.lineTo(g+i-l,h),b.quadraticCurveTo(g+i,h,g+i,h+l),"center"===f&&"right"===e&&this.drawCaret(a,b,c,d),b.lineTo(g+i,h+j-n),b.quadraticCurveTo(g+i,h+j,g+i-n,h+j),"bottom"===f&&this.drawCaret(a,b,c,d),b.lineTo(g+m,h+j),b.quadraticCurveTo(g,h+j,g,h+j-m),"center"===f&&"left"===e&&this.drawCaret(a,b,c,d),b.lineTo(g,h+k),b.quadraticCurveTo(g,h,g+k,h),b.closePath(),b.fill(),d.borderWidth>0&&b.stroke()}_updateAnimationTarget(a){let b=this.chart,c=this.$animations,d=c&&c.x,e=c&&c.y;if(d||e){let c=eu[a.position].call(this,this._active,this._eventPosition);if(!c)return;let f=this._size=ex(this,a),g=Object.assign({},c,this._size),h=ey(b,a,g),i=ez(a,g,h,b);(d._to!==i.x||e._to!==i.y)&&(this.xAlign=h.xAlign,this.yAlign=h.yAlign,this.width=f.width,this.height=f.height,this.caretX=c.x,this.caretY=c.y,this._resolveAnimations().update(this,i))}}_willRender(){return!!this.opacity}draw(a){let b=this.options.setContext(this.getContext()),c=this.opacity;if(!c)return;this._updateAnimationTarget(b);let d={width:this.width,height:this.height},e={x:this.x,y:this.y};c=.001>Math.abs(c)?0:c;let f=by(b.padding),g=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;b.enabled&&g&&(a.save(),a.globalAlpha=c,this.drawBackground(e,a,d,b),b5(a,b.textDirection),e.y+=f.top,this.drawTitle(e,a,b),this.drawBody(e,a,b),this.drawFooter(e,a,b),b6(a,b.textDirection),a.restore())}getActiveElements(){return this._active||[]}setActiveElements(a,b){let c=this._active,d=a.map(({datasetIndex:a,index:b})=>{let c=this.chart.getDatasetMeta(a);if(!c)throw Error("Cannot find a dataset at index "+a);return{datasetIndex:a,element:c.data[b],index:b}}),e=!S(c,d),f=this._positionChanged(d,b);(e||f)&&(this._active=d,this._eventPosition=b,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(a,b,c=!0){if(b&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;let d=this.options,e=this._active||[],f=this._getActiveElements(a,e,b,c),g=this._positionChanged(f,a),h=b||!S(f,e)||g;return h&&(this._active=f,(d.enabled||d.external)&&(this._eventPosition={x:a.x,y:a.y},this.update(!0,b))),h}_getActiveElements(a,b,c,d){let e=this.options;if("mouseout"===a.type)return[];if(!d)return b.filter(a=>this.chart.data.datasets[a.datasetIndex]&&void 0!==this.chart.getDatasetMeta(a.datasetIndex).controller.getParsed(a.index));let f=this.chart.getElementsAtEventForMode(a,e.mode,e,c);return e.reverse&&f.reverse(),f}_positionChanged(a,b){let{caretX:c,caretY:d,options:e}=this,f=eu[e.position].call(this,a,b);return!1!==f&&(c!==f.x||d!==f.y)}}var eF=Object.freeze({__proto__:null,Colors:{id:"colors",defaults:{enabled:!0,forceOverride:!1},beforeLayout(a,b,c){let d;if(!c.enabled)return;let{data:{datasets:e},options:f}=a.config,{elements:g}=f,h=eb(e)||f&&(f.borderColor||f.backgroundColor)||g&&eb(g)||"rgba(0,0,0,0.1)"!==bf.borderColor||"rgba(0,0,0,0.1)"!==bf.backgroundColor;if(!c.forceOverride&&h)return;let i=(d=0,(b,c)=>{var e,f,g;let h=a.getDatasetMeta(c).controller;h instanceof cD?(e=d,b.backgroundColor=b.data.map(()=>d9(e++)),d=e):h instanceof cF?(f=d,b.backgroundColor=b.data.map(()=>ea(f++)),d=f):h&&(b.borderColor=d9(g=d),b.backgroundColor=ea(g),d=++g)});e.forEach(i)}},Decimation:{id:"decimation",defaults:{algorithm:"min-max",enabled:!1},beforeElementsUpdate:(a,b,c)=>{if(!c.enabled)return void ed(a);let d=a.width;a.data.datasets.forEach((b,e)=>{let f,{_data:g,indexAxis:h}=b,i=a.getDatasetMeta(e),j=g||b.data;if("y"===bA([h,a.options.indexAxis])||!i.controller.supportsDecimation)return;let k=a.scales[i.xAxisID];if("linear"!==k.type&&"time"!==k.type||a.options.parsing)return;let{start:l,count:m}=function(a,b){let c,d=b.length,e=0,{iScale:f}=a,{min:g,max:h,minDefined:i,maxDefined:j}=f.getUserBounds();return i&&(e=ay(aB(b,f.axis,g).lo,0,d-1)),c=j?ay(aB(b,f.axis,h).hi+1,e,d)-e:d-e,{start:e,count:c}}(i,j);if(m<=(c.threshold||4*d))return void ec(b);switch(J(g)&&(b._data=j,delete b.data,Object.defineProperty(b,"data",{configurable:!0,enumerable:!0,get:function(){return this._decimated},set:function(a){this._data=a}})),c.algorithm){case"lttb":f=function(a,b,c,d,e){let f,g,h,i,j,k=e.samples||d;if(k>=c)return a.slice(b,b+c);let l=[],m=(c-2)/(k-2),n=0,o=b+c-1,p=b;for(f=0,l[n++]=a[p];f<k-2;f++){let d,e=0,k=0,o=Math.floor((f+1)*m)+1+b,q=Math.min(Math.floor((f+2)*m)+1,c)+b,r=q-o;for(d=o;d<q;d++)e+=a[d].x,k+=a[d].y;e/=r,k/=r;let s=Math.floor(f*m)+1+b,t=Math.min(Math.floor((f+1)*m)+1,c)+b,{x:u,y:v}=a[p];for(h=i=-1,d=s;d<t;d++)(i=.5*Math.abs((u-e)*(a[d].y-v)-(u-a[d].x)*(k-v)))>h&&(h=i,g=a[d],j=d);l[n++]=g,p=j}return l[n++]=a[o],l}(j,l,m,d,c);break;case"min-max":f=function(a,b,c,d){let e,f,g,h,i,j,k,l,m,n,o=0,p=0,q=[],r=a[b].x,s=a[b+c-1].x-r;for(e=b;e<b+c;++e){g=((f=a[e]).x-r)/s*d,h=f.y;let b=0|g;if(b===i)h<m?(m=h,j=e):h>n&&(n=h,k=e),o=(p*o+f.x)/++p;else{let c=e-1;if(!J(j)&&!J(k)){let b=Math.min(j,k),d=Math.max(j,k);b!==l&&b!==c&&q.push({...a[b],x:o}),d!==l&&d!==c&&q.push({...a[d],x:o})}e>0&&c!==l&&q.push(a[c]),q.push(f),i=b,p=0,m=n=h,j=k=l=e}}return q}(j,l,m,d);break;default:throw Error(`Unsupported decimation algorithm '${c.algorithm}'`)}b._decimated=f})},destroy(a){ed(a)}},Filler:{id:"filler",afterDatasetsUpdate(a,b,c){let d,e,f,g,h=(a.data.datasets||[]).length,i=[];for(e=0;e<h;++e)f=(d=a.getDatasetMeta(e)).dataset,g=null,f&&f.options&&f instanceof dZ&&(g={visible:a.isDatasetVisible(e),index:e,fill:function(a,b,c){var d,e,f,g;let h=function(a){let b=a.options,c=b.fill,d=O(c&&c.target,c);return void 0===d&&(d=!!b.backgroundColor),!1!==d&&null!==d&&(!0===d?"origin":d)}(a);if(L(h))return!isNaN(h.value)&&h;let i=parseFloat(h);return M(i)&&Math.floor(i)===i?(d=h[0],e=b,f=i,g=c,("-"===d||"+"===d)&&(f=e+f),f!==e&&!(f<0)&&!(f>=g)&&f):["origin","start","end","stack","shape"].indexOf(h)>=0&&h}(f,e,h),chart:a,axis:d.controller.options.indexAxis,scale:d.vScale,line:f}),d.$filler=g,i.push(g);for(e=0;e<h;++e)(g=i[e])&&!1!==g.fill&&(g.fill=function(a,b,c){let d,e=a[b].fill,f=[b];if(!c)return e;for(;!1!==e&&-1===f.indexOf(e);){if(!M(e))return e;if(!(d=a[e]))break;if(d.visible)return e;f.push(e),e=d.fill}return!1}(i,e,c.propagate))},beforeDraw(a,b,c){let d="beforeDraw"===c.drawTime,e=a.getSortedVisibleDatasetMetas(),f=a.chartArea;for(let b=e.length-1;b>=0;--b){let c=e[b].$filler;c&&(c.line.updateControlPoints(f,c.axis),d&&c.fill&&ek(a.ctx,c,f))}},beforeDatasetsDraw(a,b,c){if("beforeDatasetsDraw"!==c.drawTime)return;let d=a.getSortedVisibleDatasetMetas();for(let b=d.length-1;b>=0;--b){let c=d[b].$filler;ei(c)&&ek(a.ctx,c,a.chartArea)}},beforeDatasetDraw(a,b,c){let d=b.meta.$filler;ei(d)&&"beforeDatasetDraw"===c.drawTime&&ek(a.ctx,d,a.chartArea)},defaults:{propagate:!0,drawTime:"beforeDatasetDraw"}},Legend:{id:"legend",_element:eq,start(a,b,c){let d=a.legend=new eq({ctx:a.ctx,options:c,chart:a});c$.configure(a,d,c),c$.addBox(a,d)},stop(a){c$.removeBox(a,a.legend),delete a.legend},beforeUpdate(a,b,c){let d=a.legend;c$.configure(a,d,c),d.options=c},afterUpdate(a){let b=a.legend;b.buildLabels(),b.adjustHitBoxes()},afterEvent(a,b){b.replay||a.legend.handleEvent(b.event)},defaults:{display:!0,position:"top",align:"center",fullSize:!0,reverse:!1,weight:1e3,onClick(a,b,c){let d=b.datasetIndex,e=c.chart;e.isDatasetVisible(d)?(e.hide(d),b.hidden=!0):(e.show(d),b.hidden=!1)},onHover:null,onLeave:null,labels:{color:a=>a.chart.options.color,boxWidth:40,padding:10,generateLabels(a){let b=a.data.datasets,{labels:{usePointStyle:c,pointStyle:d,textAlign:e,color:f,useBorderRadius:g,borderRadius:h}}=a.legend.options;return a._getSortedDatasetMetas().map(a=>{let i=a.controller.getStyle(c?0:void 0),j=by(i.borderWidth);return{text:b[a.index].label,fillStyle:i.backgroundColor,fontColor:f,hidden:!a.visible,lineCap:i.borderCapStyle,lineDash:i.borderDash,lineDashOffset:i.borderDashOffset,lineJoin:i.borderJoinStyle,lineWidth:(j.width+j.height)/4,strokeStyle:i.borderColor,pointStyle:d||i.pointStyle,rotation:i.rotation,textAlign:e||i.textAlign,borderRadius:g&&(h||i.borderRadius),datasetIndex:a.index}},this)}},title:{color:a=>a.chart.options.color,display:!1,position:"center",text:""}},descriptors:{_scriptable:a=>!a.startsWith("on"),labels:{_scriptable:a=>!["generateLabels","filter","sort"].includes(a)}}},SubTitle:{id:"subtitle",start(a,b,c){let d=new es({ctx:a.ctx,options:c,chart:a});c$.configure(a,d,c),c$.addBox(a,d),et.set(a,d)},stop(a){c$.removeBox(a,et.get(a)),et.delete(a)},beforeUpdate(a,b,c){let d=et.get(a);c$.configure(a,d,c),d.options=c},defaults:{align:"center",display:!1,font:{weight:"normal"},fullSize:!0,padding:0,position:"top",text:"",weight:1500},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}},Title:{id:"title",_element:es,start(a,b,c){let d;d=new es({ctx:a.ctx,options:c,chart:a}),c$.configure(a,d,c),c$.addBox(a,d),a.titleBlock=d},stop(a){let b=a.titleBlock;c$.removeBox(a,b),delete a.titleBlock},beforeUpdate(a,b,c){let d=a.titleBlock;c$.configure(a,d,c),d.options=c},defaults:{align:"center",display:!1,font:{weight:"bold"},fullSize:!0,padding:10,position:"top",text:"",weight:2e3},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}},Tooltip:{id:"tooltip",_element:eE,positioners:eu,afterInit(a,b,c){c&&(a.tooltip=new eE({chart:a,options:c}))},beforeUpdate(a,b,c){a.tooltip&&a.tooltip.initialize(c)},reset(a,b,c){a.tooltip&&a.tooltip.initialize(c)},afterDraw(a){let b=a.tooltip;if(b&&b._willRender()){let c={tooltip:b};if(!1===a.notifyPlugins("beforeTooltipDraw",{...c,cancelable:!0}))return;b.draw(a.ctx),a.notifyPlugins("afterTooltipDraw",c)}},afterEvent(a,b){if(a.tooltip){let c=b.replay;a.tooltip.handleEvent(b.event,c,b.inChartArea)&&(b.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(a,b)=>b.bodyFont.size,boxWidth:(a,b)=>b.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:eC},defaultRoutes:{bodyFont:"font",footerFont:"font",titleFont:"font"},descriptors:{_scriptable:a=>"filter"!==a&&"itemSort"!==a&&"external"!==a,_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]}});function eG(a){let b=this.getLabels();return a>=0&&a<b.length?b[a]:a}class eH extends dm{static id="category";static defaults={ticks:{callback:eG}};constructor(a){super(a),this._startValue=void 0,this._valueRange=0,this._addedLabels=[]}init(a){let b=this._addedLabels;if(b.length){let a=this.getLabels();for(let{index:c,label:d}of b)a[c]===d&&a.splice(c,1);this._addedLabels=[]}super.init(a)}parse(a,b){let c,d;if(J(a))return null;let e=this.getLabels();return c=b=isFinite(b)&&e[b]===a?b:function(a,b,c,d){let e=a.indexOf(b);if(-1===e){var f;return f=c,"string"==typeof b?(f=a.push(b)-1,d.unshift({index:f,label:b})):isNaN(b)&&(f=null),f}return e!==a.lastIndexOf(b)?c:e}(e,a,O(b,a),this._addedLabels),d=e.length-1,null===c?null:ay(Math.round(c),0,d)}determineDataLimits(){let{minDefined:a,maxDefined:b}=this.getUserBounds(),{min:c,max:d}=this.getMinMax(!0);"ticks"===this.options.bounds&&(a||(c=0),b||(d=this.getLabels().length-1)),this.min=c,this.max=d}buildTicks(){let a=this.min,b=this.max,c=this.options.offset,d=[],e=this.getLabels();e=0===a&&b===e.length-1?e:e.slice(a,b+1),this._valueRange=Math.max(e.length-!c,1),this._startValue=this.min-.5*!!c;for(let c=a;c<=b;c++)d.push({value:c});return d}getLabelForValue(a){return eG.call(this,a)}configure(){super.configure(),this.isHorizontal()||(this._reversePixels=!this._reversePixels)}getPixelForValue(a){return"number"!=typeof a&&(a=this.parse(a)),null===a?NaN:this.getPixelForDecimal((a-this._startValue)/this._valueRange)}getPixelForTick(a){let b=this.ticks;return a<0||a>b.length-1?null:this.getPixelForValue(b[a].value)}getValueForPixel(a){return Math.round(this._startValue+this.getDecimalForPixel(a)*this._valueRange)}getBasePixel(){return this.bottom}}function eI(a,b,{horizontal:c,minRotation:d}){let e=ar(d),f=(c?Math.sin(e):Math.cos(e))||.001,g=.75*b*(""+a).length;return Math.min(b/f,g)}class eJ extends dm{constructor(a){super(a),this.start=void 0,this.end=void 0,this._startValue=void 0,this._endValue=void 0,this._valueRange=0}parse(a,b){return J(a)||("number"==typeof a||a instanceof Number)&&!isFinite(+a)?null:+a}handleTickRangeOptions(){let{beginAtZero:a}=this.options,{minDefined:b,maxDefined:c}=this.getUserBounds(),{min:d,max:e}=this,f=a=>d=b?d:a,g=a=>e=c?e:a;if(a){let a=am(d),b=am(e);a<0&&b<0?g(0):a>0&&b>0&&f(0)}if(d===e){let b=0===e?1:Math.abs(.05*e);g(e+b),a||f(d-b)}this.min=d,this.max=e}getTickLimit(){let a,{maxTicksLimit:b,stepSize:c}=this.options.ticks;return c?(a=Math.ceil(this.max/c)-Math.floor(this.min/c)+1)>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${c} would result generating up to ${a} ticks. Limiting to 1000.`),a=1e3):(a=this.computeTickLimit(),b=b||11),b&&(a=Math.min(b,a)),a}computeTickLimit(){return 1/0}buildTicks(){let a=this.options,b=a.ticks,c=this.getTickLimit(),d=function(a,b){var c,d;let e,f,g,h,i,j=[],{bounds:k,step:l,min:m,max:n,precision:o,count:p,maxTicks:q,maxDigits:r,includeBounds:s}=a,t=l||1,u=q-1,{min:v,max:w}=b,x=!J(m),y=!J(n),z=!J(p),A=(w-v)/(r+1),B=ao((w-v)/u/t)*t;if(B<1e-14&&!x&&!y)return[{value:v},{value:w}];(h=Math.ceil(w/B)-Math.floor(v/B))>u&&(B=ao(h*B/u/t)*t),J(o)||(B=Math.ceil(B*(e=Math.pow(10,o)))/e),"ticks"===k?(f=Math.floor(v/B)*B,g=Math.ceil(w/B)*B):(f=v,g=w),x&&y&&l&&(c=(n-m)/l,d=B/1e3,(i=Math.round(c))-d<=c&&i+d>=c)?(h=Math.round(Math.min((n-m)/B,q)),B=(n-m)/h,f=m,g=n):z?(f=x?m:f,B=((g=y?n:g)-f)/(h=p-1)):h=an(h=(g-f)/B,Math.round(h),B/1e3)?Math.round(h):Math.ceil(h);let C=Math.max(as(B),as(f));f=Math.round(f*(e=Math.pow(10,J(o)?C:o)))/e,g=Math.round(g*e)/e;let D=0;for(x&&(s&&f!==m?(j.push({value:m}),f<m&&D++,an(Math.round((f+D*B)*e)/e,m,eI(m,A,a))&&D++):f<m&&D++);D<h;++D){let a=Math.round((f+D*B)*e)/e;if(y&&a>n)break;j.push({value:a})}return y&&s&&g!==n?j.length&&an(j[j.length-1].value,n,eI(n,A,a))?j[j.length-1].value=n:j.push({value:n}):y&&g!==n||j.push({value:g}),j}({maxTicks:c=Math.max(2,c),bounds:a.bounds,min:a.min,max:a.max,precision:b.precision,step:b.stepSize,count:b.count,maxDigits:this._maxDigits(),horizontal:this.isHorizontal(),minRotation:b.minRotation||0,includeBounds:!1!==b.includeBounds},this._range||this);return"ticks"===a.bounds&&aq(d,this,"value"),a.reverse?(d.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),d}configure(){let a=this.ticks,b=this.min,c=this.max;if(super.configure(),this.options.offset&&a.length){let d=(c-b)/Math.max(a.length-1,1)/2;b-=d,c+=d}this._startValue=b,this._endValue=c,this._valueRange=c-b}getLabelForValue(a){return aW(a,this.chart.options.locale,this.options.ticks.format)}}class eK extends eJ{static id="linear";static defaults={ticks:{callback:aX.numeric}};determineDataLimits(){let{min:a,max:b}=this.getMinMax(!0);this.min=M(a)?a:0,this.max=M(b)?b:1,this.handleTickRangeOptions()}computeTickLimit(){let a=this.isHorizontal(),b=a?this.width:this.height,c=ar(this.options.ticks.minRotation),d=(a?Math.sin(c):Math.cos(c))||.001;return Math.ceil(b/Math.min(40,this._resolveTickFontOptions(0).lineHeight/d))}getPixelForValue(a){return null===a?NaN:this.getPixelForDecimal((a-this._startValue)/this._valueRange)}getValueForPixel(a){return this._startValue+this.getDecimalForPixel(a)*this._valueRange}}let eL=a=>Math.floor(al(a)),eM=(a,b)=>Math.pow(10,eL(a)+b);function eN(a){return 1==a/Math.pow(10,eL(a))}function eO(a,b,c){let d=Math.pow(10,c),e=Math.floor(a/d);return Math.ceil(b/d)-e}class eP extends dm{static id="logarithmic";static defaults={ticks:{callback:aX.logarithmic,major:{enabled:!0}}};constructor(a){super(a),this.start=void 0,this.end=void 0,this._startValue=void 0,this._valueRange=0}parse(a,b){let c=eJ.prototype.parse.apply(this,[a,b]);if(0===c){this._zero=!0;return}return M(c)&&c>0?c:null}determineDataLimits(){let{min:a,max:b}=this.getMinMax(!0);this.min=M(a)?Math.max(0,a):null,this.max=M(b)?Math.max(0,b):null,this.options.beginAtZero&&(this._zero=!0),this._zero&&this.min!==this._suggestedMin&&!M(this._userMin)&&(this.min=a===eM(this.min,0)?eM(this.min,-1):eM(this.min,0)),this.handleTickRangeOptions()}handleTickRangeOptions(){let{minDefined:a,maxDefined:b}=this.getUserBounds(),c=this.min,d=this.max,e=b=>c=a?c:b,f=a=>d=b?d:a;c===d&&(c<=0?(e(1),f(10)):(e(eM(c,-1)),f(eM(d,1)))),c<=0&&e(eM(d,-1)),d<=0&&f(eM(c,1)),this.min=c,this.max=d}buildTicks(){let a=this.options,b=function(a,{min:b,max:c}){b=N(a.min,b);let d=[],e=eL(b),f=function(a,b){let c=eL(b-a);for(;eO(a,b,c)>10;)c++;for(;10>eO(a,b,c);)c--;return Math.min(c,eL(a))}(b,c),g=f<0?Math.pow(10,Math.abs(f)):1,h=Math.pow(10,f),i=e>f?Math.pow(10,e):0,j=Math.round((b-i)*g)/g,k=Math.floor((b-i)/h/10)*h*10,l=Math.floor((j-k)/Math.pow(10,f)),m=N(a.min,Math.round((i+k+l*Math.pow(10,f))*g)/g);for(;m<c;)d.push({value:m,major:eN(m),significand:l}),l>=10?l=l<15?15:20:l++,l>=20&&(l=2,g=++f>=0?1:g),m=Math.round((i+k+l*Math.pow(10,f))*g)/g;let n=N(a.max,m);return d.push({value:n,major:eN(n),significand:l}),d}({min:this._userMin,max:this._userMax},this);return"ticks"===a.bounds&&aq(b,this,"value"),a.reverse?(b.reverse(),this.start=this.max,this.end=this.min):(this.start=this.min,this.end=this.max),b}getLabelForValue(a){return void 0===a?"0":aW(a,this.chart.options.locale,this.options.ticks.format)}configure(){let a=this.min;super.configure(),this._startValue=al(a),this._valueRange=al(this.max)-al(a)}getPixelForValue(a){return((void 0===a||0===a)&&(a=this.min),null===a||isNaN(a))?NaN:this.getPixelForDecimal(a===this.min?0:(al(a)-this._startValue)/this._valueRange)}getValueForPixel(a){let b=this.getDecimalForPixel(a);return Math.pow(10,this._startValue+b*this._valueRange)}}function eQ(a){let b=a.ticks;if(b.display&&a.display){let a=by(b.backdropPadding);return O(b.font&&b.font.size,bf.font.size)+a.height}return 0}function eR(a,b,c,d,e){return a===d||a===e?{start:b-c/2,end:b+c/2}:a<d||a>e?{start:b-c,end:b}:{start:b,end:b+c}}function eS(a,b,c,d){let{ctx:e}=a;if(c)e.arc(a.xCenter,a.yCenter,b,0,ae);else{let c=a.getPointPosition(0,b);e.moveTo(c.x,c.y);for(let f=1;f<d;f++)c=a.getPointPosition(f,b),e.lineTo(c.x,c.y)}}class eT extends eJ{static id="radialLinear";static defaults={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,lineWidth:1,borderDash:[],borderDashOffset:0},grid:{circular:!1},startAngle:0,ticks:{showLabelBackdrop:!0,callback:aX.numeric},pointLabels:{backdropColor:void 0,backdropPadding:2,display:!0,font:{size:10},callback:a=>a,padding:5,centerPointLabels:!1}};static defaultRoutes={"angleLines.color":"borderColor","pointLabels.color":"color","ticks.color":"color"};static descriptors={angleLines:{_fallback:"grid"}};constructor(a){super(a),this.xCenter=void 0,this.yCenter=void 0,this.drawingArea=void 0,this._pointLabels=[],this._pointLabelItems=[]}setDimensions(){let a=this._padding=by(eQ(this.options)/2),b=this.width=this.maxWidth-a.width,c=this.height=this.maxHeight-a.height;this.xCenter=Math.floor(this.left+b/2+a.left),this.yCenter=Math.floor(this.top+c/2+a.top),this.drawingArea=Math.floor(Math.min(b,c)/2)}determineDataLimits(){let{min:a,max:b}=this.getMinMax(!1);this.min=M(a)&&!isNaN(a)?a:0,this.max=M(b)&&!isNaN(b)?b:0,this.handleTickRangeOptions()}computeTickLimit(){return Math.ceil(this.drawingArea/eQ(this.options))}generateTickLabels(a){eJ.prototype.generateTickLabels.call(this,a),this._pointLabels=this.getLabels().map((a,b)=>{let c=Q(this.options.pointLabels.callback,[a,b],this);return c||0===c?c:""}).filter((a,b)=>this.chart.getDataVisibility(b))}fit(){let a=this.options;a.display&&a.pointLabels.display?function(a){let b={l:a.left+a._padding.left,r:a.right-a._padding.right,t:a.top+a._padding.top,b:a.bottom-a._padding.bottom},c=Object.assign({},b),d=[],e=[],f=a._pointLabels.length,g=a.options.pointLabels,h=g.centerPointLabels?ad/f:0;for(let k=0;k<f;k++){var i,j;let f=g.setContext(a.getPointLabelContext(k));e[k]=f.padding;let l=a.getPointPosition(k,a.drawingArea+e[k],h),m=bz(f.font),n=(i=a.ctx,j=K(j=a._pointLabels[k])?j:[j],{w:function(a,b,c,d){let e,f,g,h,i,j=(d=d||{}).data=d.data||{},k=d.garbageCollect=d.garbageCollect||[];d.font!==b&&(j=d.data={},k=d.garbageCollect=[],d.font=b),a.save(),a.font=b;let l=0,m=c.length;for(e=0;e<m;e++)if(null==(h=c[e])||K(h)){if(K(h))for(f=0,g=h.length;f<g;f++)null==(i=h[f])||K(i)||(l=bg(a,j,k,l,i))}else l=bg(a,j,k,l,h);a.restore();let n=k.length/2;if(n>c.length){for(e=0;e<n;e++)delete j[k[e]];k.splice(0,n)}return l}(i,m.string,j),h:j.length*m.lineHeight});d[k]=n;let o=aw(a.getIndexAngle(k)+h),p=Math.round(180/ad*o);!function(a,b,c,d,e){let f=Math.abs(Math.sin(c)),g=Math.abs(Math.cos(c)),h=0,i=0;d.start<b.l?(h=(b.l-d.start)/f,a.l=Math.min(a.l,b.l-h)):d.end>b.r&&(h=(d.end-b.r)/f,a.r=Math.max(a.r,b.r+h)),e.start<b.t?(i=(b.t-e.start)/g,a.t=Math.min(a.t,b.t-i)):e.end>b.b&&(i=(e.end-b.b)/g,a.b=Math.max(a.b,b.b+i))}(c,b,o,eR(p,l.x,n.w,0,180),eR(p,l.y,n.h,90,270))}a.setCenterPoint(b.l-c.l,c.r-b.r,b.t-c.t,c.b-b.b),a._pointLabelItems=function(a,b,c){let d,e=[],f=a._pointLabels.length,g=a.options,{centerPointLabels:h,display:i}=g.pointLabels,j={extra:eQ(g)/2,additionalAngle:h?ad/f:0};for(let g=0;g<f;g++){j.padding=c[g],j.size=b[g];let f=function(a,b,c){var d,e,f,g,h,i,j;let k=a.drawingArea,{extra:l,additionalAngle:m,padding:n,size:o}=c,p=a.getPointPosition(b,k+l+n,m),q=Math.round(180/ad*aw(p.angle+ai)),r=(d=p.y,e=o.h,90===(f=q)||270===f?d-=e/2:(f>270||f<90)&&(d-=e),d),s=0===(g=q)||180===g?"center":g<180?"left":"right",t=(h=p.x,i=o.w,"right"===(j=s)?h-=i:"center"===j&&(h-=i/2),h);return{visible:!0,x:p.x,y:r,textAlign:s,left:t,top:r,right:t+o.w,bottom:r+o.h}}(a,g,j);e.push(f),"auto"===i&&(f.visible=function(a,b){if(!b)return!0;let{left:c,top:d,right:e,bottom:f}=a;return!(bl({x:c,y:d},b)||bl({x:c,y:f},b)||bl({x:e,y:d},b)||bl({x:e,y:f},b))}(f,d),f.visible&&(d=f))}return e}(a,d,e)}(this):this.setCenterPoint(0,0,0,0)}setCenterPoint(a,b,c,d){this.xCenter+=Math.floor((a-b)/2),this.yCenter+=Math.floor((c-d)/2),this.drawingArea-=Math.min(this.drawingArea/2,Math.max(a,b,c,d))}getIndexAngle(a){return aw(a*(ae/(this._pointLabels.length||1))+ar(this.options.startAngle||0))}getDistanceFromCenterForValue(a){if(J(a))return NaN;let b=this.drawingArea/(this.max-this.min);return this.options.reverse?(this.max-a)*b:(a-this.min)*b}getValueForDistanceFromCenter(a){if(J(a))return NaN;let b=a/(this.drawingArea/(this.max-this.min));return this.options.reverse?this.max-b:this.min+b}getPointLabelContext(a){let b=this._pointLabels||[];if(a>=0&&a<b.length){var c;let d=b[a];return c=this.getContext(),bB(c,{label:d,index:a,type:"pointLabel"})}}getPointPosition(a,b,c=0){let d=this.getIndexAngle(a)-ai+c;return{x:Math.cos(d)*b+this.xCenter,y:Math.sin(d)*b+this.yCenter,angle:d}}getPointPositionForValue(a,b){return this.getPointPosition(a,this.getDistanceFromCenterForValue(b))}getBasePosition(a){return this.getPointPositionForValue(a||0,this.getBaseValue())}getPointLabelPosition(a){let{left:b,top:c,right:d,bottom:e}=this._pointLabelItems[a];return{left:b,top:c,right:d,bottom:e}}drawBackground(){let{backgroundColor:a,grid:{circular:b}}=this.options;if(a){let c=this.ctx;c.save(),c.beginPath(),eS(this,this.getDistanceFromCenterForValue(this._endValue),b,this._pointLabels.length),c.closePath(),c.fillStyle=a,c.fill(),c.restore()}}drawGrid(){let a,b,c,d=this.ctx,e=this.options,{angleLines:f,grid:g,border:h}=e,i=this._pointLabels.length;if(e.pointLabels.display&&function(a,b){let{ctx:c,options:{pointLabels:d}}=a;for(let e=b-1;e>=0;e--){let b=a._pointLabelItems[e];if(!b.visible)continue;let f=d.setContext(a.getPointLabelContext(e));!function(a,b,c){let{left:d,top:e,right:f,bottom:g}=c,{backdropColor:h}=b;if(!J(h)){let c=bx(b.borderRadius),i=by(b.backdropPadding);a.fillStyle=h;let j=d-i.left,k=e-i.top,l=f-d+i.width,m=g-e+i.height;Object.values(c).some(a=>0!==a)?(a.beginPath(),br(a,{x:j,y:k,w:l,h:m,radius:c}),a.fill()):a.fillRect(j,k,l,m)}}(c,f,b);let g=bz(f.font),{x:h,y:i,textAlign:j}=b;bq(c,a._pointLabels[e],h,i+g.lineHeight/2,g,{color:f.color,textAlign:j,textBaseline:"middle"})}}(this,i),g.display&&this.ticks.forEach((a,c)=>{if(0!==c||0===c&&this.min<0){b=this.getDistanceFromCenterForValue(a.value);let d=this.getContext(c),e=g.setContext(d),f=h.setContext(d);!function(a,b,c,d,e){let f=a.ctx,g=b.circular,{color:h,lineWidth:i}=b;(g||d)&&h&&i&&!(c<0)&&(f.save(),f.strokeStyle=h,f.lineWidth=i,f.setLineDash(e.dash||[]),f.lineDashOffset=e.dashOffset,f.beginPath(),eS(a,c,g,d),f.closePath(),f.stroke(),f.restore())}(this,e,b,i,f)}}),f.display){for(d.save(),a=i-1;a>=0;a--){let g=f.setContext(this.getPointLabelContext(a)),{color:h,lineWidth:i}=g;i&&h&&(d.lineWidth=i,d.strokeStyle=h,d.setLineDash(g.borderDash),d.lineDashOffset=g.borderDashOffset,b=this.getDistanceFromCenterForValue(e.reverse?this.min:this.max),c=this.getPointPosition(a,b),d.beginPath(),d.moveTo(this.xCenter,this.yCenter),d.lineTo(c.x,c.y),d.stroke())}d.restore()}}drawBorder(){}drawLabels(){let a,b,c=this.ctx,d=this.options,e=d.ticks;if(!e.display)return;let f=this.getIndexAngle(0);c.save(),c.translate(this.xCenter,this.yCenter),c.rotate(f),c.textAlign="center",c.textBaseline="middle",this.ticks.forEach((f,g)=>{if(0===g&&this.min>=0&&!d.reverse)return;let h=e.setContext(this.getContext(g)),i=bz(h.font);if(a=this.getDistanceFromCenterForValue(this.ticks[g].value),h.showLabelBackdrop){c.font=i.string,b=c.measureText(f.label).width,c.fillStyle=h.backdropColor;let d=by(h.backdropPadding);c.fillRect(-b/2-d.left,-a-i.size/2-d.top,b+d.width,i.size+d.height)}bq(c,f.label,0,-a,i,{color:h.color,strokeColor:h.textStrokeColor,strokeWidth:h.textStrokeWidth})}),c.restore()}drawTitle(){}}let eU={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},eV=Object.keys(eU);function eW(a,b){return a-b}function eX(a,b){if(J(b))return null;let c=a._adapter,{parser:d,round:e,isoWeekday:f}=a._parseOpts,g=b;return("function"==typeof d&&(g=d(g)),M(g)||(g="string"==typeof d?c.parse(g,d):c.parse(g)),null===g)?null:(e&&(g="week"===e&&(ap(f)||!0===f)?c.startOf(g,"isoWeek",f):c.startOf(g,e)),+g)}function eY(a,b,c,d){let e=eV.length;for(let f=eV.indexOf(a);f<e-1;++f){let a=eU[eV[f]],e=a.steps?a.steps:Number.MAX_SAFE_INTEGER;if(a.common&&Math.ceil((c-b)/(e*a.size))<=d)return eV[f]}return eV[e-1]}function eZ(a,b,c){if(c){if(c.length){let{lo:d,hi:e}=aA(c,b);a[c[d]>=b?c[d]:c[e]]=!0}}else a[b]=!0}function e$(a,b,c){let d,e,f=[],g={},h=b.length;for(d=0;d<h;++d)g[e=b[d]]=d,f.push({value:e,major:!1});return 0!==h&&c?function(a,b,c,d){let e,f,g=a._adapter,h=+g.startOf(b[0].value,d),i=b[b.length-1].value;for(e=h;e<=i;e=+g.add(e,1,d))(f=c[e])>=0&&(b[f].major=!0);return b}(a,f,g,c):f}class e_ extends dm{static id="time";static defaults={bounds:"data",adapters:{},time:{parser:!1,unit:!1,round:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{}},ticks:{source:"auto",callback:!1,major:{enabled:!1}}};constructor(a){super(a),this._cache={data:[],labels:[],all:[]},this._unit="day",this._majorUnit=void 0,this._offsets={},this._normalized=!1,this._parseOpts=void 0}init(a,b={}){let c=a.time||(a.time={}),d=this._adapter=new cL(a.adapters.date);d.init(b),X(c.displayFormats,d.formats()),this._parseOpts={parser:c.parser,round:c.round,isoWeekday:c.isoWeekday},super.init(a),this._normalized=b.normalized}parse(a,b){return void 0===a?null:eX(this,a)}beforeLayout(){super.beforeLayout(),this._cache={data:[],labels:[],all:[]}}determineDataLimits(){let a=this.options,b=this._adapter,c=a.time.unit||"day",{min:d,max:e,minDefined:f,maxDefined:g}=this.getUserBounds();function h(a){f||isNaN(a.min)||(d=Math.min(d,a.min)),g||isNaN(a.max)||(e=Math.max(e,a.max))}f&&g||(h(this._getLabelBounds()),("ticks"!==a.bounds||"labels"!==a.ticks.source)&&h(this.getMinMax(!1))),d=M(d)&&!isNaN(d)?d:+b.startOf(Date.now(),c),e=M(e)&&!isNaN(e)?e:+b.endOf(Date.now(),c)+1,this.min=Math.min(d,e-1),this.max=Math.max(d+1,e)}_getLabelBounds(){let a=this.getLabelTimestamps(),b=1/0,c=-1/0;return a.length&&(b=a[0],c=a[a.length-1]),{min:b,max:c}}buildTicks(){let a=this.options,b=a.time,c=a.ticks,d="labels"===c.source?this.getLabelTimestamps():this._generate();"ticks"===a.bounds&&d.length&&(this.min=this._userMin||d[0],this.max=this._userMax||d[d.length-1]);let e=this.min,f=function(a,b,c){let d=0,e=a.length;for(;d<e&&a[d]<b;)d++;for(;e>d&&a[e-1]>c;)e--;return d>0||e<a.length?a.slice(d,e):a}(d,e,this.max);return this._unit=b.unit||(c.autoSkip?eY(b.minUnit,this.min,this.max,this._getLabelCapacity(e)):function(a,b,c,d,e){for(let f=eV.length-1;f>=eV.indexOf(c);f--){let c=eV[f];if(eU[c].common&&a._adapter.diff(e,d,c)>=b-1)return c}return eV[c?eV.indexOf(c):0]}(this,f.length,b.minUnit,this.min,this.max)),this._majorUnit=c.major.enabled&&"year"!==this._unit?function(a){for(let b=eV.indexOf(a)+1,c=eV.length;b<c;++b)if(eU[eV[b]].common)return eV[b]}(this._unit):void 0,this.initOffsets(d),a.reverse&&f.reverse(),e$(this,f,this._majorUnit)}afterAutoSkip(){this.options.offsetAfterAutoskip&&this.initOffsets(this.ticks.map(a=>+a.value))}initOffsets(a=[]){let b,c,d=0,e=0;this.options.offset&&a.length&&(b=this.getDecimalForValue(a[0]),d=1===a.length?1-b:(this.getDecimalForValue(a[1])-b)/2,c=this.getDecimalForValue(a[a.length-1]),e=1===a.length?c:(c-this.getDecimalForValue(a[a.length-2]))/2);let f=a.length<3?.5:.25;d=ay(d,0,f),e=ay(e,0,f),this._offsets={start:d,end:e,factor:1/(d+1+e)}}_generate(){let a,b,c=this._adapter,d=this.min,e=this.max,f=this.options,g=f.time,h=g.unit||eY(g.minUnit,d,e,this._getLabelCapacity(d)),i=O(f.ticks.stepSize,1),j="week"===h&&g.isoWeekday,k=ap(j)||!0===j,l={},m=d;if(k&&(m=+c.startOf(m,"isoWeek",j)),m=+c.startOf(m,k?"day":h),c.diff(e,d,h)>1e5*i)throw Error(d+" and "+e+" are too far apart with stepSize of "+i+" "+h);let n="data"===f.ticks.source&&this.getDataTimestamps();for(a=m,b=0;a<e;a=+c.add(a,i,h),b++)eZ(l,a,n);return(a===e||"ticks"===f.bounds||1===b)&&eZ(l,a,n),Object.keys(l).sort(eW).map(a=>+a)}getLabelForValue(a){let b=this._adapter,c=this.options.time;return c.tooltipFormat?b.format(a,c.tooltipFormat):b.format(a,c.displayFormats.datetime)}format(a,b){let c=this.options.time.displayFormats,d=this._unit,e=b||c[d];return this._adapter.format(a,e)}_tickFormatFunction(a,b,c,d){let e=this.options,f=e.ticks.callback;if(f)return Q(f,[a,b,c],this);let g=e.time.displayFormats,h=this._unit,i=this._majorUnit,j=h&&g[h],k=i&&g[i],l=c[b],m=i&&k&&l&&l.major;return this._adapter.format(a,d||(m?k:j))}generateTickLabels(a){let b,c,d;for(b=0,c=a.length;b<c;++b)(d=a[b]).label=this._tickFormatFunction(d.value,b,a)}getDecimalForValue(a){return null===a?NaN:(a-this.min)/(this.max-this.min)}getPixelForValue(a){let b=this._offsets,c=this.getDecimalForValue(a);return this.getPixelForDecimal((b.start+c)*b.factor)}getValueForPixel(a){let b=this._offsets,c=this.getDecimalForPixel(a)/b.factor-b.end;return this.min+c*(this.max-this.min)}_getLabelSize(a){let b=this.options.ticks,c=this.ctx.measureText(a).width,d=ar(this.isHorizontal()?b.maxRotation:b.minRotation),e=Math.cos(d),f=Math.sin(d),g=this._resolveTickFontOptions(0).size;return{w:c*e+g*f,h:c*f+g*e}}_getLabelCapacity(a){let b=this.options.time,c=b.displayFormats,d=c[b.unit]||c.millisecond,e=this._tickFormatFunction(a,0,e$(this,[a],this._majorUnit),d),f=this._getLabelSize(e),g=Math.floor(this.isHorizontal()?this.width/f.w:this.height/f.h)-1;return g>0?g:1}getDataTimestamps(){let a,b,c=this._cache.data||[];if(c.length)return c;let d=this.getMatchingVisibleMetas();if(this._normalized&&d.length)return this._cache.data=d[0].controller.getAllParsedValues(this);for(a=0,b=d.length;a<b;++a)c=c.concat(d[a].controller.getAllParsedValues(this));return this._cache.data=this.normalize(c)}getLabelTimestamps(){let a,b,c=this._cache.labels||[];if(c.length)return c;let d=this.getLabels();for(a=0,b=d.length;a<b;++a)c.push(eX(this,d[a]));return this._cache.labels=this._normalized?c:this.normalize(c)}normalize(a){return aF(a.sort(eW))}}function e0(a,b,c){let d,e,f,g,h=0,i=a.length-1;c?(b>=a[h].pos&&b<=a[i].pos&&({lo:h,hi:i}=aB(a,"pos",b)),{pos:d,time:f}=a[h],{pos:e,time:g}=a[i]):(b>=a[h].time&&b<=a[i].time&&({lo:h,hi:i}=aB(a,"time",b)),{time:d,pos:f}=a[h],{time:e,pos:g}=a[i]);let j=e-d;return j?f+(g-f)*(b-d)/j:f}class e1 extends e_{static id="timeseries";static defaults=e_.defaults;constructor(a){super(a),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){let a=this._getTimestampsForTable(),b=this._table=this.buildLookupTable(a);this._minPos=e0(b,this.min),this._tableRange=e0(b,this.max)-this._minPos,super.initOffsets(a)}buildLookupTable(a){let b,c,d,{min:e,max:f}=this,g=[],h=[];for(b=0,c=a.length;b<c;++b)(d=a[b])>=e&&d<=f&&g.push(d);if(g.length<2)return[{time:e,pos:0},{time:f,pos:1}];for(b=0,c=g.length;b<c;++b)Math.round((g[b+1]+g[b-1])/2)!==(d=g[b])&&h.push({time:d,pos:b/(c-1)});return h}_generate(){let a=this.min,b=this.max,c=super.getDataTimestamps();return c.includes(a)&&c.length||c.splice(0,0,a),c.includes(b)&&1!==c.length||c.push(b),c.sort((a,b)=>a-b)}_getTimestampsForTable(){let a=this._cache.all||[];if(a.length)return a;let b=this.getDataTimestamps(),c=this.getLabelTimestamps();return a=b.length&&c.length?this.normalize(b.concat(c)):b.length?b:c,a=this._cache.all=a}getDecimalForValue(a){return(e0(this._table,a)-this._minPos)/this._tableRange}getValueForPixel(a){let b=this._offsets,c=this.getDecimalForPixel(a)/b.factor-b.end;return e0(this._table,c*this._tableRange+this._minPos,!0)}}var e2=Object.freeze({__proto__:null,CategoryScale:eH,LinearScale:eK,LogarithmicScale:eP,RadialLinearScale:eT,TimeScale:e_,TimeSeriesScale:e1});dN.register(cJ,d6,eF,e2);var e3=c(77890),e4=c.n(e3);"u">typeof globalThis||("u">typeof window?window:"u">typeof global?global:"u">typeof self&&self);!function(){if(a1)return;a1=1;class a{constructor(a="Default"){this.category=a,this.logElement=null,this.logHistory=[]}init(){this.logElement=document.getElementById("log")}log(a,b,c,d=null){let e=new Date().toISOString().split("T")[1].split(".")[0],f={timestamp:e,level:a.toUpperCase(),category:b,message:c,data:d};this.logHistory.push(f);let g=`[${b}] ${c}`;if(!new Set(["PPTXSlideRenderer","PPTXProcessor","Thumbnail Debug"]).has(b))switch(a.toLowerCase()){case"error":console.error(g,d);break;case"warn":console.warn(g,d);break;case"info":console.info(g,d);break;case"debug":console.debug(g,d);break;default:console.log(g,d)}if(this.logElement){let f=d?` | ${JSON.stringify(d)}`:"",g=`[${e}] [${a.toUpperCase()}] [${b}] ${c}${f}
2
+ `;this.logElement.textContent+=g,this.logElement.scrollTop=this.logElement.scrollHeight}}debug(a,b,c=null){this.log("debug",a,b,c)}info(a,b,c=null){this.log("info",a,b,c)}warn(a,b,c=null){this.log("warn",a,b,c)}error(a,b,c=null){this.log("error",a,b,c)}trace(a,b,c=null){this.log("trace",a,b,c)}logError(a,b){let c="Unknown error",d={};b&&"object"==typeof b?(c=b.message||b.toString()||"Unknown error",d={stack:b.stack,name:b.name||"Error"}):c="string"==typeof b?b:String(b),this.log("error",a,c,d)}markTiming(a){if("u">typeof window&&window.getGlobalMonitor)window.getGlobalMonitor().start(a,{category:this.category});else if("u">typeof performance&&performance.mark)try{performance.mark(a)}catch(b){console.time(a)}}measureTiming(a){if("u">typeof window&&window.getGlobalMonitor){let b=window.getGlobalMonitor().end(a,{category:this.category});b&&this.log("trace",this.category,`${a} completed in ${Math.round(b.duration)}ms`)}else if("u">typeof performance&&performance.mark)try{performance.measure(a);let b=performance.getEntriesByName(a,"measure");if(b.length>0){let c=Math.round(b[b.length-1].duration);this.log("trace",this.category,`${a} completed in ${c}ms`)}}catch(b){console.timeEnd(a)}}}let b=new a;class c{constructor(){this.steps={1:{name:"ZIP Processing",progress:0},2:{name:"XML Parsing",progress:0},3:{name:"DOM Creation",progress:0},4:{name:"Canvas Rendering",progress:0}}}updateProgress(a,b){if(this.steps[a]){this.steps[a].progress=Math.min(100,Math.max(0,b));let c=document.getElementById(`progress${a}`),d=document.getElementById(`step${a}`);c&&(c.style.width=`${this.steps[a].progress}%`),d&&(d.classList.remove("active","processing"),b>=100?d.classList.add("active"):b>0&&d.classList.add("processing"))}}reset(){for(let a in this.steps)this.updateProgress(parseInt(a),0)}}let d=new c;class e{static async readAsArrayBuffer(a,b={}){if(!a||!(a instanceof File||a instanceof Blob))throw Error("Invalid file parameter: must be File or Blob instance");if(0===a.size)throw Error("Cannot read empty file");let{maxSize:c=0x6400000,timeout:d=8e4}=b;if(a.size>c)throw Error(`File too large: ${a.size} bytes (max: ${c} bytes)`);return new Promise((b,c)=>{let e=new window.FileReader,f=setTimeout(()=>{e.abort(),c(Error(`File reading timed out after ${d}ms`))},d);e.onload=a=>{clearTimeout(f);let d=a.target?.result;d instanceof ArrayBuffer?b(d):c(Error("Failed to read file as ArrayBuffer"))},e.onerror=()=>{clearTimeout(f);let a=e.error||Error("Unknown file reading error");c(Error(`Failed to read file: ${a.message}`))},e.onabort=()=>{clearTimeout(f),c(Error("File reading was aborted"))};try{e.readAsArrayBuffer(a)}catch(a){clearTimeout(f),c(Error(`Failed to start file reading: ${a.message}`))}})}static async readAsText(a,b={}){if(!a||!(a instanceof File||a instanceof Blob))throw Error("Invalid file parameter: must be File or Blob instance");let{encoding:c="UTF-8",maxSize:d=0x3200000,timeout:e=8e4,validateText:f=!0}=b;if(a.size>d)throw Error(`File too large: ${a.size} bytes (max: ${d} bytes)`);return new Promise((b,d)=>{let g=new window.FileReader,h=setTimeout(()=>{g.abort(),d(Error(`File reading timed out after ${e}ms`))},e);g.onload=a=>{clearTimeout(h);let c=a.target?.result;if("string"==typeof c){if(f&&c.includes("�"))return void d(Error("File contains invalid characters - may not be a text file"));b(c)}else d(Error("Failed to read file as text"))},g.onerror=()=>{clearTimeout(h);let a=g.error||Error("Unknown file reading error");d(Error(`Failed to read file as text: ${a.message}`))},g.onabort=()=>{clearTimeout(h),d(Error("File reading was aborted"))};try{g.readAsText(a,c)}catch(a){clearTimeout(h),d(Error(`Failed to start file reading: ${a.message}`))}})}static async readAsDataURL(a,b={}){if(!a||!(a instanceof File||a instanceof Blob))throw Error("Invalid file parameter: must be File or Blob instance");let{maxSize:c=0xa00000,timeout:d=8e4}=b;if(a.size>c)throw Error(`File too large for Data URL: ${a.size} bytes (max: ${c} bytes)`);return new Promise((b,c)=>{let e=new window.FileReader,f=setTimeout(()=>{e.abort(),c(Error(`File reading timed out after ${d}ms`))},d);e.onload=a=>{clearTimeout(f);let d=a.target?.result;"string"==typeof d&&d.startsWith("data:")?b(d):c(Error("Failed to read file as Data URL"))},e.onerror=()=>{clearTimeout(f);let a=e.error||Error("Unknown file reading error");c(Error(`Failed to read file as Data URL: ${a.message}`))},e.onabort=()=>{clearTimeout(f),c(Error("File reading was aborted"))};try{e.readAsDataURL(a)}catch(a){clearTimeout(f),c(Error(`Failed to start file reading: ${a.message}`))}})}static async readMultipleFiles(a,b="arrayBuffer",c={}){if(!Array.isArray(a)||0===a.length)throw Error("Invalid files parameter: must be non-empty array");let{onProgress:d=null,maxConcurrent:e=3,...f}=c,g=this[`readAs${b.charAt(0).toUpperCase()+b.slice(1)}`];if(!g)throw Error(`Invalid read type: ${b}`);let h=[],i=0;for(let b=0;b<a.length;b+=e){let c=a.slice(b,b+e).map(async(c,e)=>{try{let h=await g.call(this,c,f);return i++,d&&d({completed:i,total:a.length,progress:i/a.length*100,currentFile:c.name||`File ${b+e+1}`}),h}catch(f){throw i++,d&&d({completed:i,total:a.length,progress:i/a.length*100,currentFile:c.name||`File ${b+e+1}`,error:f.message}),f}}),j=await Promise.all(c);h.push(...j)}return h}}class f{static ERROR_TYPES={VALIDATION:"ValidationError",FILE_IO:"FileIOError",PARSING:"ParsingError",RENDERING:"RenderingError",NETWORK:"NetworkError",TIMEOUT:"TimeoutError",MEMORY:"MemoryError",UNKNOWN:"UnknownError"};static SEVERITY_LEVELS={LOW:"low",MEDIUM:"medium",HIGH:"high",CRITICAL:"critical"};static handle(a,b={}){let{context:c="Unknown",severity:d=this.SEVERITY_LEVELS.MEDIUM,displayToUser:e=!0,logToConsole:f=!0,throwAfterHandle:g=!1,customHandler:h=null}=b,i=this.normalizeError(a,c);if(f&&this.logError(i,d),e&&this.displayError(i,d),h&&"function"==typeof h)try{h(i,d)}catch(a){console.error("Error in custom error handler:",a)}if(g)throw a instanceof Error?a:Error(i.message);return i}static normalizeError(a,b){let c="Unknown error occurred",d=null,e=this.ERROR_TYPES.UNKNOWN;return a instanceof Error?(c=a.message||"Error occurred",d=a.stack,e=a.name||this.categorizeError(a)):"string"==typeof a?c=a:a&&"object"==typeof a?(c=a.message||a.toString()||"Object error",d=a.stack,e=a.name||this.ERROR_TYPES.UNKNOWN):c=String(a),{message:c,context:b,stack:d,name:e,timestamp:new Date().toISOString(),originalError:a,userAgent:navigator?.userAgent||"Unknown"}}static categorizeError(a){let b=a.message?.toLowerCase()||"";return b.includes("validation")||b.includes("invalid")?this.ERROR_TYPES.VALIDATION:b.includes("file")||b.includes("read")||b.includes("write")?this.ERROR_TYPES.FILE_IO:b.includes("parse")||b.includes("xml")||b.includes("json")?this.ERROR_TYPES.PARSING:b.includes("render")||b.includes("canvas")||b.includes("draw")?this.ERROR_TYPES.RENDERING:b.includes("network")||b.includes("fetch")||b.includes("load")?this.ERROR_TYPES.NETWORK:b.includes("timeout")||b.includes("timed out")?this.ERROR_TYPES.TIMEOUT:b.includes("memory")||b.includes("allocation")?this.ERROR_TYPES.MEMORY:this.ERROR_TYPES.UNKNOWN}static logError(a,b){let c=`[${a.context}] ${a.message}`;switch(b){case this.SEVERITY_LEVELS.LOW:console.info("\uD83D\uDD35",c,a);break;case this.SEVERITY_LEVELS.MEDIUM:console.warn("\uD83D\uDFE1",c,a);break;case this.SEVERITY_LEVELS.HIGH:console.error("\uD83D\uDD34",c,a);break;case this.SEVERITY_LEVELS.CRITICAL:console.error("\uD83D\uDCA5",c,a),a.stack&&console.error("Stack trace:",a.stack);break;default:console.log(c,a)}}static displayError(a,b){let c=document.getElementById("output");if(!c)return;let d=document.createElement("div");d.className=`error error--${b}`;let e=document.createElement("div");e.className="error__header",e.innerHTML=`
3
+ <span class="error__icon">${this.getSeverityIcon(b)}</span>
4
+ <span class="error__title">Error in ${a.context}</span>
5
+ <span class="error__type">${a.name}</span>
6
+ `;let f=document.createElement("div");f.className="error__message",f.textContent=a.message;let g=document.createElement("div");g.className="error__time",g.textContent=new Date(a.timestamp).toLocaleTimeString(),d.appendChild(e),d.appendChild(f),d.appendChild(g);let h=document.createElement("button");h.className="error__dismiss",h.innerHTML="\xd7",h.onclick=()=>d.remove(),d.appendChild(h),d.style.transform="translateY(-100%)",d.style.transition="transform 0.3s ease-in-out",c.insertBefore(d,c.firstChild),requestAnimationFrame(()=>{d.style.transform="translateY(0)"});let i=this.getAutoDismissTime(b);i>0&&setTimeout(()=>{d.parentNode&&(d.style.transform="translateY(-100%)",setTimeout(()=>d.remove(),300))},i)}static getSeverityIcon(a){switch(a){case this.SEVERITY_LEVELS.LOW:return"ℹ️";case this.SEVERITY_LEVELS.MEDIUM:return"⚠️";case this.SEVERITY_LEVELS.HIGH:return"❌";case this.SEVERITY_LEVELS.CRITICAL:return"\uD83D\uDCA5";default:return"❓"}}static getAutoDismissTime(a){switch(a){case this.SEVERITY_LEVELS.LOW:return 3e3;case this.SEVERITY_LEVELS.MEDIUM:return 5e3;case this.SEVERITY_LEVELS.HIGH:return 8e3;case this.SEVERITY_LEVELS.CRITICAL:return 0;default:return 5e3}}static createError(a,b={}){let{name:c=this.ERROR_TYPES.UNKNOWN,context:d="Unknown",cause:e=null,code:f=null,details:g=null}=b,h=Error(a);return h.name=c,h.context=d,h.timestamp=new Date().toISOString(),e&&(h.cause=e),f&&(h.code=f),g&&(h.details=g),h}}class g{static UNITS={EMU_PER_INCH:914400,EMU_PER_CM:36e4,EMU_PER_MM:36e3,EMU_PER_POINT:12700,INCHES_PER_MM:1/25.4,MM_PER_INCH:25.4,POINTS_PER_INCH:72};static VALIDATION={MAX_EMU:0x7fffffff,MIN_EMU:-0x80000000,MAX_PIXELS:32767,MAX_MM:59652,MIN_DPI:1,MAX_DPI:600};static validateInput(a,b,c={}){if("number"!=typeof a||!isFinite(a))throw f.createError(`Invalid ${b} value: must be a finite number`,{name:f.ERROR_TYPES.VALIDATION,context:"CoordinateTransform"});let{min:d=-1/0,max:e=1/0}=c;if(a<d||a>e)throw f.createError(`${b} value out of range: ${a} (valid range: ${d} to ${e})`,{name:f.ERROR_TYPES.VALIDATION,context:"CoordinateTransform"});return a}static emuToMM(a){return this.validateInput(a,"EMU",{min:this.VALIDATION.MIN_EMU,max:this.VALIDATION.MAX_EMU})/this.UNITS.EMU_PER_MM}static mmToEMU(a){let b=this.validateInput(a,"MM",{min:-this.VALIDATION.MAX_MM,max:this.VALIDATION.MAX_MM})*this.UNITS.EMU_PER_MM;return Math.max(this.VALIDATION.MIN_EMU,Math.min(this.VALIDATION.MAX_EMU,Math.round(b)))}static emuToPoints(a){return this.validateInput(a,"EMU",{min:this.VALIDATION.MIN_EMU,max:this.VALIDATION.MAX_EMU})/this.UNITS.EMU_PER_POINT}static pointsToEMU(a){let b=this.validateInput(a,"Points",{min:-3e4,max:3e4})*this.UNITS.EMU_PER_POINT;return Math.max(this.VALIDATION.MIN_EMU,Math.min(this.VALIDATION.MAX_EMU,Math.round(b)))}static emuToPixels(a,b=96){let c=this.validateInput(a,"EMU",{min:this.VALIDATION.MIN_EMU,max:this.VALIDATION.MAX_EMU}),d=this.validateInput(b,"DPI",{min:this.VALIDATION.MIN_DPI,max:this.VALIDATION.MAX_DPI});return Math.round(c/this.UNITS.EMU_PER_INCH*d)}static pixelsToEMU(a,b=96){let c=this.validateInput(a,"Pixels",{min:-this.VALIDATION.MAX_PIXELS,max:this.VALIDATION.MAX_PIXELS})/this.validateInput(b,"DPI",{min:this.VALIDATION.MIN_DPI,max:this.VALIDATION.MAX_DPI})*this.UNITS.EMU_PER_INCH;return Math.max(this.VALIDATION.MIN_EMU,Math.min(this.VALIDATION.MAX_EMU,Math.round(c)))}static mmToPixels(a,b=96){let c=this.validateInput(a,"MM",{min:-this.VALIDATION.MAX_MM,max:this.VALIDATION.MAX_MM}),d=this.validateInput(b,"DPI",{min:this.VALIDATION.MIN_DPI,max:this.VALIDATION.MAX_DPI});return Math.round(c*this.UNITS.INCHES_PER_MM*d)}static pixelsToMM(a,b=96){return this.validateInput(a,"Pixels",{min:-this.VALIDATION.MAX_PIXELS,max:this.VALIDATION.MAX_PIXELS})/this.validateInput(b,"DPI",{min:this.VALIDATION.MIN_DPI,max:this.VALIDATION.MAX_DPI})*this.UNITS.MM_PER_INCH}static convert(a,b,c,d=96){let e;if(b===c)return a;let g=b.toLowerCase(),h=c.toLowerCase();switch(g){case"emu":e=a;break;case"mm":e=this.mmToEMU(a);break;case"pixels":case"px":e=this.pixelsToEMU(a,d);break;case"points":case"pt":e=this.pointsToEMU(a);break;case"inches":case"in":e=Math.round(this.validateInput(a,"Inches",{min:-100,max:100})*this.UNITS.EMU_PER_INCH);break;default:throw f.createError(`Unsupported source unit: ${b}`,{name:f.ERROR_TYPES.VALIDATION,context:"CoordinateTransform"})}switch(h){case"emu":return e;case"mm":return this.emuToMM(e);case"pixels":case"px":return this.emuToPixels(e,d);case"points":case"pt":return this.emuToPoints(e);case"inches":case"in":return e/this.UNITS.EMU_PER_INCH;default:throw f.createError(`Unsupported target unit: ${c}`,{name:f.ERROR_TYPES.VALIDATION,context:"CoordinateTransform"})}}static convertBatch(a,b,c,d=96){if(!Array.isArray(a))throw f.createError("Values must be an array",{name:f.ERROR_TYPES.VALIDATION,context:"CoordinateTransform"});return a.map(a=>this.convert(a,b,c,d))}static getConversionFactor(a,b,c=96){return this.convert(1,a,b,c)}}class h{static decodeXMLEntities(a){if(!a)return a;let b={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&apos;":"'"};return a.replace(/&[a-zA-Z0-9#]+;/g,a=>b[a]||a)}static encodeXMLEntities(a){return a?a.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;"):a}static extractNamespace(a){let b=a.indexOf(":");return -1!==b?a.substring(0,b):""}static extractLocalName(a){let b=a.indexOf(":");return -1!==b?a.substring(b+1):a}}class i{static getAttributeValue(a,b){return a.getAttribute?a.getAttribute(b):null}static getChildElements(a){return a.children?Array.from(a.children):[]}static getElementByTagName(a,b){if(!a.getElementsByTagName)return null;let c=a.getElementsByTagName(b);return c.length>0?c[0]:null}static getElementsByTagName(a,b){return a.getElementsByTagName?Array.from(a.getElementsByTagName(b)):[]}static getTextContent(a){return a.textContent||a.innerText||""}}class j{static easeInOut(a){return a<.5?2*a*a:-1+(4-2*a)*a}static animate(a,b,c=null){let d=performance.now();requestAnimationFrame(function e(f){let g=Math.min((f-d)/a,1);b(g),g<1?requestAnimationFrame(e):c&&c()})}}document.addEventListener("DOMContentLoaded",function(){b.init()});let k=null;if("u">typeof window)try{window.PerformanceMonitor&&(k=new window.PerformanceMonitor({enabled:!0,collectMemoryData:!0,enableConsoleReports:!1,maxHistoryEntries:500}),window.performanceMonitor=k)}catch(a){}class l extends a{constructor(a){super(a),this.performanceMonitor=k}startPerformance(a,b={}){this.performanceMonitor&&this.performanceMonitor.start(a,{...b,category:this.category}),this.markTiming(a)}endPerformance(a,b={}){if(this.performanceMonitor){let c=this.performanceMonitor.end(a,{...b,category:this.category});if(c){let b=Math.round(100*c.duration)/100;this.trace(this.category,`${a} completed in ${b}ms`,{duration:b,memoryUsage:c.memorySnapshot?.jsHeapSize}),b>1e3&&this.warn(this.category,`Slow operation detected: ${a} took ${b}ms`)}}this.measureTiming(a)}measureSync(a,b,c={}){if(this.performanceMonitor){let{result:d,measure:e}=this.performanceMonitor.measure(a,b,{...c,category:this.category});if(e){let b=Math.round(100*e.duration)/100;this.trace(this.category,`${a} completed in ${b}ms`)}return d}this.startPerformance(a,c);try{let d=b();return this.endPerformance(a,c),d}catch(b){throw this.endPerformance(a,{...c,error:!0}),b}}async measureAsync(a,b,c={}){if(this.performanceMonitor){let{result:d,measure:e}=await this.performanceMonitor.measureAsync(a,b,{...c,category:this.category});if(e){let b=Math.round(100*e.duration)/100;this.trace(this.category,`${a} completed in ${b}ms`)}return d}this.startPerformance(a,c);try{let d=await b();return this.endPerformance(a,c),d}catch(b){throw this.endPerformance(a,{...c,error:!0}),b}}getPerformanceStats(){if(!this.performanceMonitor)return null;let a=this.performanceMonitor.getHistory().filter(a=>a.startMetadata?.category===this.category||a.endMetadata?.category===this.category);if(0===a.length)return{category:this.category,operations:0};let b=a.reduce((a,b)=>a+b.duration,0),c=b/a.length,d=a.reduce((a,b)=>b.duration>a.duration?b:a),e=a.reduce((a,b)=>b.duration<a.duration?b:a);return{category:this.category,operations:a.length,totalDuration:Math.round(b),averageDuration:Math.round(100*c)/100,slowestOperation:{name:d.name,duration:Math.round(100*d.duration)/100},fastestOperation:{name:e.name,duration:Math.round(100*e.duration)/100}}}}let m=new l;"u">typeof window&&(window.Logger=a,window.EnhancedLogger=l,window.ProgressTracker=c,window.FileReader=e,window.ErrorHandler=f,window.CoordinateTransform=g,window.StringUtils=h,window.DOMUtils=i,window.AnimationUtils=j,window.logger=b,window.enhancedLogger=m,window.progressTracker=d,k&&(window.performanceMonitor=k))}();var e5={exports:{}};e5.exports,!function(){if(a2)return e5.exports;a2=1;class a{constructor(a={}){this.options=this._validateOptions(a);try{this.logger="u">typeof Logger?new Logger("ChartFontConfig"):this._createFallbackLogger()}catch(a){this.logger=this._createFallbackLogger()}this.initializeDefaults(),this.initializeScaling()}initializeDefaults(){this.defaults={global:{fontFamily:"Calibri",fontSize:11,bold:!1,italic:!1,color:{r:0,g:0,b:0}},title:{fontFamily:"Calibri",fontSize:18,bold:!1,italic:!1,color:{r:0,g:0,b:0}},subtitle:{fontFamily:"Calibri",fontSize:14,bold:!1,italic:!1,color:{r:100,g:100,b:100}},axisTitle:{fontFamily:"Calibri",fontSize:12,bold:!0,italic:!1,color:{r:68,g:68,b:68}},axisLabels:{fontFamily:"Calibri",fontSize:11,bold:!1,italic:!1,color:{r:68,g:68,b:68}},legend:{fontFamily:"Calibri",fontSize:11,bold:!1,italic:!1,color:{r:60,g:60,b:60}},dataLabels:{fontFamily:"Calibri",fontSize:9,bold:!0,italic:!1,color:{r:50,g:50,b:50}},tickMarks:{fontFamily:"Calibri",fontSize:10,bold:!1,italic:!1,color:{r:68,g:68,b:68}}}}initializeScaling(){this.scaling={enabled:!1!==this.options.enableResponsiveScaling,baseDimensions:{width:400,height:300},scaleFactors:{min:.7,max:1.5},dpiSupport:{enabled:!1!==this.options.enableDpiScaling,baseDpi:96,currentDpi:this._getCurrentDpi()}}}getFont(a,b={},c={},d={}){try{let e=this.defaults[a]||this.defaults.global,f=this._applyPptxOverrides(e,b),g=this._applyCustomOverrides(f,c),h=this._applyScaling(g,d),i=this._normalizeFontConfig(h);return this.logger.log("debug",this.constructor.name,`Font resolved for ${a}:`,{base:e,pptx:b,custom:c,final:i}),i}catch(b){return this.logger.logError(this.constructor.name,`Error resolving font for ${a}:`,b),this._getFallbackFont()}}_applyPptxOverrides(a,b){let c={...a};return b&&"object"==typeof b&&(b.fontFamily?c.fontFamily=b.fontFamily:b.family?c.fontFamily=b.family:b.typeface&&(c.fontFamily=b.typeface),void 0!==b.fontSize?c.fontSize=this._convertPptxFontSize(b.fontSize):void 0!==b.size?c.fontSize=this._convertPptxFontSize(b.size):void 0!==b.sz&&(c.fontSize=this._convertPptxFontSize(b.sz,"hundredths")),void 0!==b.bold?c.bold=!!b.bold:void 0!==b.b&&(c.bold="0"!==b.b&&!1!==b.b),void 0!==b.italic?c.italic=!!b.italic:void 0!==b.i&&(c.italic="0"!==b.i&&!1!==b.i),b.color&&(c.color=this._normalizeColor(b.color))),c}_applyCustomOverrides(a,b){let c={...a};return b&&"object"==typeof b&&(b.fontFamily&&(c.fontFamily=b.fontFamily),b.family&&(c.fontFamily=b.family),void 0!==b.fontSize?c.fontSize=Number(b.fontSize):void 0!==b.size&&(c.fontSize=Number(b.size)),void 0!==b.bold&&(c.bold=!!b.bold),void 0!==b.italic&&(c.italic=!!b.italic),b.color&&(c.color=this._normalizeColor(b.color))),c}_applyScaling(a,b){let c={...a};if(!this.scaling.enabled||!b.chartWidth||!b.chartHeight)return c;try{let d=b.chartWidth/this.scaling.baseDimensions.width,e=b.chartHeight/this.scaling.baseDimensions.height,f=Math.max(this.scaling.scaleFactors.min,Math.min(this.scaling.scaleFactors.max,(d+e)/2)),g=1;this.scaling.dpiSupport.enabled&&b.dpi?g=b.dpi/this.scaling.dpiSupport.baseDpi:this.scaling.dpiSupport.enabled&&(g=this.scaling.dpiSupport.currentDpi/this.scaling.dpiSupport.baseDpi);let h=a.fontSize||11,i=Math.round(h*f*g);c.fontSize=Math.max(8,i),this.logger.log("debug",this.constructor.name,"Font scaling applied:",{original:h,dimensionScale:f,dpiScale:g,final:c.fontSize})}catch(a){this.logger.log("warn",this.constructor.name,"Error applying font scaling:",a)}return c}_convertPptxFontSize(a,b="points"){let c=Number(a);if(isNaN(c))return 11;switch(b){case"hundredths":return Math.max(6,Math.round(c/100));case"emu":return Math.max(6,Math.round(c/12700));default:return Math.max(6,Math.round(c))}}_normalizeColor(a){if(!a)return{r:0,g:0,b:0};if(void 0!==a.r&&void 0!==a.g&&void 0!==a.b)return{r:Math.max(0,Math.min(255,Number(a.r))),g:Math.max(0,Math.min(255,Number(a.g))),b:Math.max(0,Math.min(255,Number(a.b)))};if("string"==typeof a&&a.startsWith("#")){let b=a.slice(1);if(6===b.length)return{r:parseInt(b.substr(0,2),16),g:parseInt(b.substr(2,2),16),b:parseInt(b.substr(4,2),16)}}if("string"==typeof a&&a.startsWith("rgb")){let b=a.match(/\d+/g);if(b&&b.length>=3)return{r:Number(b[0]),g:Number(b[1]),b:Number(b[2])}}return{r:0,g:0,b:0}}_normalizeFontConfig(a){return{fontFamily:a.fontFamily||a.family||"Calibri",fontSize:Math.max(6,Math.min(120,Number(a.fontSize||a.size||11))),bold:!!a.bold,italic:!!a.italic,color:this._normalizeColor(a.color)}}_getFallbackFont(){return{fontFamily:"Arial, sans-serif",fontSize:11,bold:!1,italic:!1,color:{r:0,g:0,b:0}}}_getCurrentDpi(){try{let a="u">typeof window&&window.devicePixelRatio||1;return 96*a}catch(a){return 96}}_createFallbackLogger(){return{debug:(...a)=>{},info:(...a)=>{},warn:(...a)=>{},error:(...a)=>{}}}_validateOptions(a){return{enableResponsiveScaling:!1!==a.enableResponsiveScaling,enableDpiScaling:!1!==a.enableDpiScaling,enablePptxOverrides:!1!==a.enablePptxOverrides,logLevel:a.logLevel||"warn",...a}}setElementDefault(a,b){this.defaults[a]?(this.defaults[a]={...this.defaults[a],...this._normalizeFontConfig(b)},this.logger.log("info",this.constructor.name,`Updated default font for ${a}`)):this.logger.log("warn",this.constructor.name,`Unknown element type: ${a}`)}getElementTypes(){return Object.keys(this.defaults)}toCssString(a){let b=this._normalizeFontConfig(a),c=b.italic?"italic ":"",d=b.bold?"bold ":"";return`${c}${d}${b.fontSize}px ${b.fontFamily}`}toColorString(a){let b=this._normalizeColor(a.color);return`rgb(${b.r}, ${b.g}, ${b.b})`}}"u">typeof window&&(window.ChartFontConfig=a),e5.exports&&(e5.exports={ChartFontConfig:a}),e5.exports}();!function(){if(a3)return;async function a(){if("u">typeof window&&window.JSZip&&"function"==typeof window.JSZip.loadAsync)return window.JSZip;if("u">typeof globalThis&&globalThis.JSZip&&"function"==typeof globalThis.JSZip.loadAsync)return globalThis.JSZip;try{let a=c(77890);if(a&&"function"==typeof a.loadAsync)return a;if(a&&a.default&&"function"==typeof a.default.loadAsync)return a.default}catch(a){}if("u">typeof document&&(await new Promise((a,b)=>{let c=document.createElement("script");c.src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js",c.onload=()=>a(),c.onerror=()=>b(Error("Failed to load JSZip")),document.head.appendChild(c)}),window.JSZip))return window.JSZip;throw Error("JSZip is not available")}a3=1;class b{constructor(){this.engine=null,this.files={},this.isModuleInit=!0,"u">typeof Logger?this.logger=new Logger("ZLib"):"u">typeof window&&window.Logger?this.logger=new window.Logger("ZLib"):"u">typeof globalThis&&globalThis.Logger?this.logger=new globalThis.Logger("ZLib"):this.logger={info:()=>{},debug:()=>{},warn:()=>{},error:()=>{},log:()=>{},logError:()=>{}},this.isOpen=!1,this.lastError=null}validateInput(a,b){return null==a?(this.lastError=Error(`${b}: Input data is null or undefined`),!1):a instanceof ArrayBuffer||a instanceof Uint8Array||a instanceof Blob?0!==a.byteLength&&(void 0===a.size||0!==a.size)||(this.lastError=Error(`${b}: Input data is empty`),!1):(this.lastError=Error(`${b}: Invalid data type. Expected ArrayBuffer, Uint8Array, or Blob`),!1)}async open(b){try{if(this.isOpen=!1,this.lastError=null,!this.validateInput(b,"open"))return this.logger.logError("ZLib","Failed to open ZIP:",this.lastError.message),!1;let c=await a(),d=b;if(b instanceof Uint8Array&&(d=b.buffer.slice(b.byteOffset,b.byteOffset+b.byteLength)),this.engine=await c.loadAsync(d),!this.engine)return this.lastError=Error("Failed to create JSZip instance"),this.logger.logError("ZLib","Failed to open ZIP:",this.lastError.message),!1;this.files={};let e=0;return this.engine.forEach((a,b)=>{!b.dir&&(this.files[a]=null,e++)}),0===e&&(this.lastError=Error("ZIP file contains no readable files"),this.logger.log("warn","ZLib","Opened ZIP file has no readable files")),this.isOpen=!0,!0}catch(a){return this.lastError=a,this.isOpen=!1,this.logger.logError("ZLib","Failed to open ZIP:",a.message),a.message.includes("End of central directory not found")?this.logger.logError("ZLib","Invalid ZIP file: corrupted or not a ZIP file"):a.message.includes("encrypted")?this.logger.logError("ZLib","Cannot open encrypted ZIP files"):a.message.includes("Unsupported compression")&&this.logger.logError("ZLib","ZIP file uses unsupported compression method"),!1}}validatePath(a,b){return"string"!=typeof a?(this.lastError=Error(`${b}: Path must be a string`),!1):0===a.length?(this.lastError=Error(`${b}: Path cannot be empty`),!1):!(a.includes("..")||a.includes("//"))||(this.lastError=Error(`${b}: Invalid path contains dangerous patterns`),!1)}checkReady(a){return!!this.isOpen&&!!this.engine||(this.lastError=Error(`${a}: ZIP archive is not open`),!1)}async getFile(a){try{if(!this.checkReady("getFile"))return this.logger.logError("ZLib","Cannot get file:",this.lastError.message),null;if(!this.validatePath(a,"getFile"))return this.logger.logError("ZLib","Invalid file path:",this.lastError.message),null;let b=this.engine.file(a);if(!b&&a.startsWith("/")&&(b=this.engine.file(a.substring(1))),!b)return this.logger.log("warn","ZLib",`File not found in ZIP: ${a}`),null;let c=await b.async("arraybuffer");if(!c||0===c.byteLength)return this.logger.log("warn","ZLib",`File is empty: ${a}`),new Uint8Array(0);return new Uint8Array(c)}catch(b){return this.lastError=b,this.logger.logError("ZLib",`Failed to get file ${a}:`,b.message),null}}async getFileText(a){try{if(!this.checkReady("getFileText"))return this.logger.logError("ZLib","Cannot get file text:",this.lastError.message),null;if(!this.validatePath(a,"getFileText"))return this.logger.logError("ZLib","Invalid file path:",this.lastError.message),null;let b=this.engine.file(a);if(!b&&a.startsWith("/")&&(b=this.engine.file(a.substring(1))),!b)return this.logger.log("warn","ZLib",`File not found in ZIP: ${a}`),null;let c=await b.async("text");if("string"!=typeof c)return this.logger.log("warn","ZLib",`File ${a} did not return valid text content`),null;return c}catch(b){return this.lastError=b,this.logger.logError("ZLib",`Failed to get file text ${a}:`,b.message),b.message.includes("binary")?this.logger.logError("ZLib",`File ${a} appears to be binary, cannot read as text`):b.message.includes("encoding")&&this.logger.logError("ZLib",`File ${a} has encoding issues`),null}}getPaths(){try{if(!this.checkReady("getPaths"))return this.logger.logError("ZLib","Cannot get paths:",this.lastError.message),[];return this.engine&&this.engine.files?Object.keys(this.engine.files):Object.keys(this.files)}catch(a){return this.lastError=a,this.logger.logError("ZLib","Failed to get file paths:",a.message),[]}}fileExists(a){try{if(!this.validatePath(a,"fileExists")||!this.checkReady("fileExists"))return!1;return this.files.hasOwnProperty(a)}catch(b){return this.lastError=b,this.logger.logError("ZLib",`Error checking file existence for ${a}:`,b.message),!1}}getFileSize(a){try{if(!this.validatePath(a,"getFileSize")||!this.checkReady("getFileSize"))return -1;let b=this.engine.file(a);if(!b)return -1;return b._data?b._data.uncompressedSize:0}catch(b){return this.lastError=b,this.logger.logError("ZLib",`Error getting file size for ${a}:`,b.message),-1}}getLastError(){return this.lastError}close(){try{this.engine&&(this.engine=null),this.files={},this.isOpen=!1,this.lastError=null}catch(a){this.logger.logError("ZLib","Error during ZIP cleanup:",a.message)}}async getFileData(a){try{if(!this.checkReady("getFileData")||!this.validatePath(a,"getFileData"))throw this.lastError;let b=a.startsWith("/")?a.substring(1):a,c=this.engine.file(b);if(!c)throw Error(`File not found: ${a}`);let d=await c.async("arraybuffer");if(!d)throw Error(`Failed to read file data: ${a}`);return d}catch(b){throw this.lastError=b,this.logger.logError("ZLib",`Failed to get file data for ${a}:`,b.message),Error(`Failed to extract file data: ${a} - ${b.message}`)}}getStats(){try{if(!this.checkReady("getStats"))return{isOpen:!1,fileCount:0,totalSize:0,error:this.lastError?.message};let a=Object.keys(this.files),b=0;return a.forEach(a=>{let c=this.getFileSize(a);c>0&&(b+=c)}),{isOpen:this.isOpen,fileCount:a.length,totalSize:b,files:a,lastError:this.lastError?.message||null}}catch(a){return this.lastError=a,this.logger.logError("ZLib","Error getting archive stats:",a.message),{isOpen:!1,fileCount:0,totalSize:0,error:a.message}}}}class d{constructor(a){this.zip=a,this.parts={},this.contentTypes={},this.relationships={}}async initialize(){let a=await this.zip.getFileText("[Content_Types].xml");a&&this.parseContentTypes(a);let b=await this.zip.getFileText("_rels/.rels");b&&(this.relationships[""]=this.parseRelationships(b));let c=this.zip.getPaths();for(let a of c)if(a.startsWith("_rels/")&&a.endsWith(".rels")&&"_rels/.rels"!==a){let b=a.match(/^(.+)\/_rels\/(.+)\.rels$/);if(b){let c=b[1],d=b[2],e=`/${c}/${d}`,f=await this.zip.getFileText(a);f&&(this.relationships[e]=this.parseRelationships(f))}}for(let a of c)if(!a.startsWith("_rels/")&&"[Content_Types].xml"!==a){let b=`/${a}`,c=this.getContentType(b);this.parts[b]=new e(this,b,c)}}parseContentTypes(a){let b=new DOMParser().parseFromString(a,"text/xml"),c=a=>{let c=b.getElementsByTagName("*"),d=[];for(let b=0;b<c.length;b++)c[b].localName===a&&d.push(c[b]);return d};c("Default").forEach(a=>{let b=a.getAttribute("Extension"),c=a.getAttribute("ContentType");b&&c&&(this.contentTypes[`ext:${b}`]=c)}),c("Override").forEach(a=>{let b=a.getAttribute("PartName"),c=a.getAttribute("ContentType");b&&c&&(this.contentTypes[b]=c)})}parseRelationships(a){let b=new DOMParser().parseFromString(a,"text/xml"),c={};return(a=>{let c=b.getElementsByTagName("*"),d=[];for(let b=0;b<c.length;b++)c[b].localName===a&&d.push(c[b]);return d})("Relationship").forEach(a=>{let b=a.getAttribute("Id"),d=a.getAttribute("Type"),e=a.getAttribute("Target");b&&(c[b]={type:d,target:e,targetMode:a.getAttribute("TargetMode")||"Internal"})}),c}getContentType(a){if(this.contentTypes[a])return this.contentTypes[a];let b=a.split(".").pop();return b&&this.contentTypes[`ext:${b}`]?this.contentTypes[`ext:${b}`]:"application/octet-stream"}getPartByRelationshipType(a){for(let b of Object.values(this.relationships[""]||{}))if(b.type===a){let a=b.target.startsWith("/")?b.target:`/${b.target}`;return this.parts[a]}return null}getPartByUri(a){return this.parts[a]}}class e{constructor(a,b,c){this.package=a,this.uri=b,this.contentType=c,this._content=null}async getDocumentContent(){if(null===this._content){let a=this.uri.startsWith("/")?this.uri.substring(1):this.uri;this._content=await this.package.zip.getFileText(a)}return this._content}async getRelationships(){if(this.package.relationships[this.uri])return this.package.relationships[this.uri];let a=this.uri.replace(/\/([^\/]+)$/,"/_rels/$1.rels"),b=a.startsWith("/")?a.substring(1):a,c=await this.package.zip.getFileText(b);return c?this.package.parseRelationships(c):{}}}let f={presentation:{relationType:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument"},extendedFileProperties:{relationType:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties"},coreFileProperties:{relationType:"http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties"},customFileProperties:{relationType:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties"},presentationProperties:{relationType:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/presProps"},slide:{relationType:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/slide"},slideLayout:{relationType:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideLayout"},slideMaster:{relationType:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideMaster"},theme:{relationType:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme"},image:{relationType:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image"}};"u">typeof window&&(window.ZLib=b,window.OpenXmlPackage=d,window.OpenXmlPart=e,window.OpenXmlTypes=f),"u">typeof globalThis&&(globalThis.ZLib=b,globalThis.OpenXmlPackage=d,globalThis.OpenXmlPart=e,globalThis.OpenXmlTypes=f)}();!function(){if(!a4){a4=1;class a{constructor(){this.zip=null,this.imageMap={},this.layoutsMap={},this.mastersMap={},this.tablesMap={},this.tableStylesMap={},this.smartarts=[],this.connectorsPr=[],this.slideLayoutRels=new Map,this.slideMasterRels=new Map,this.masterLayoutMap=new Map,this.themeMap={},this.colorMaps={},this.logger=new Logger("XmlParserContext")}registerSlideMaster(a,b){this.slideMasterRels.set(a,b),this.mastersMap[a]=b,this.masterLayoutMap.has(a)||this.masterLayoutMap.set(a,[])}registerSlideLayout(a,b,c){this.slideLayoutRels.set(a,b),this.layoutsMap[a]=b,c&&(b.masterId=c,this.masterLayoutMap.has(c)||this.masterLayoutMap.set(c,[]),this.masterLayoutMap.get(c).push(a))}getSlideMaster(a){return this.slideMasterRels.get(a)}getSlideLayout(a){return this.slideLayoutRels.get(a)}getLayoutsForMaster(a){return(this.masterLayoutMap.get(a)||[]).map(a=>this.getSlideLayout(a)).filter(Boolean)}loadDataLinks(){return this.imageMap}generateSmartArts(){return this.smartarts}}class b{constructor(a,b,c){this.xml=a,this.part=b,this.context=c,this.parser=new DOMParser,this.doc=null,this.currentElement=null,this.depth=0,this.namespaces={p:"http://schemas.openxmlformats.org/presentationml/2006/main",a:"http://schemas.openxmlformats.org/drawingml/2006/main",r:"http://schemas.openxmlformats.org/officeDocument/2006/relationships"},this.logger=new Logger("StaxParser")}parse(){try{this.doc=this.parser.parseFromString(this.xml,"text/xml");let a=this.doc.querySelector("parsererror");if(a)throw Error("XML parsing failed: "+a.textContent);return this.doc}catch(a){return null}}parseSlideMaster(a){this.doc||this.parse();let b=this.doc.documentElement;return b&&"sldMaster"===b.localName?{id:a,type:"slideMaster",name:this.getAttributeValue(b,"name")||`Master ${a}`,preserve:"true"===this.getAttributeValue(b,"preserve"),cSld:this.parseCommonSlideData(b),clrMap:this.parseColorMap(b),txStyles:this.parseTextStyles(b),sldLayoutLst:[],themeId:this.extractThemeId(b),hf:this.parseHeaderFooter(b),timing:this.parseTiming(b),transition:this.parseTransition(b)}:null}parseSlideLayout(a,b){this.doc||this.parse();let c=this.doc.documentElement;return c&&"sldLayout"===c.localName?{id:a,masterId:b,type:"slideLayout",name:this.getAttributeValue(c,"name")||`Layout ${a}`,matchingName:this.getAttributeValue(c,"matchingName")||"",preserve:"true"===this.getAttributeValue(c,"preserve"),showMasterSp:"false"!==this.getAttributeValue(c,"showMasterSp"),showMasterPhAnim:"true"===this.getAttributeValue(c,"showMasterPhAnim"),userDrawn:"false"!==this.getAttributeValue(c,"userDrawn"),layoutType:this.getLayoutType(c),cSld:this.parseCommonSlideData(c),clrMapOvr:this.parseColorMapOverride(c),hf:this.parseHeaderFooter(c),timing:this.parseTiming(c),transition:this.parseTransition(c)}:null}parseCommonSlideData(a){let b=this.getChildElement(a,"cSld");return b?{name:this.getAttributeValue(b,"name")||"",bg:this.parseBackground(b),spTree:this.parseShapeTree(b)}:{name:"",bg:null,spTree:[]}}parseShapeTree(a){let b=this.getChildElement(a,"spTree");if(!b)return[];let c=[],d=b.children;for(let a=0;a<d.length;a++){let b=d[a],e=this.parseShape(b);e&&c.push(e)}return c}parseShape(a){switch(a.localName){case"sp":return this.parseRegularShape(a);case"pic":return this.parsePictureShape(a);case"grpSp":return this.parseGroupShape(a);case"cxnSp":return this.parseConnectorShape(a);case"graphicFrame":return this.parseGraphicFrame(a);default:return null}}parseRegularShape(a){let b=this.parsePlaceholder(a);return{type:"sp",id:this.getAttributeValue(a,"id"),name:this.getShapeName(a),properties:this.parseShapeProperties(a),textBody:this.parseTextBody(a),style:this.parseShapeStyle(a),placeholder:b,isPlaceholder:!!b}}getLayoutType(a){let b=this.getAttributeValue(a,"type");if(b)return b;let c=this.getChildElement(a,"cSld");if(c){let a=this.getChildElement(c,"spTree");if(a){let b=this.getPlaceholderTypes(a);return this.inferLayoutType(b)}}return"blank"}getPlaceholderTypes(a){let b=[],c=a.children;for(let a=0;a<c.length;a++){let d=c[a],e=this.parsePlaceholder(d);e&&b.push(e.type)}return b}inferLayoutType(a){return a.includes("title")&&a.includes("body")?"titleAndContent":a.includes("title")?"titleOnly":a.includes("body")?"contentOnly":0===a.length?"blank":"custom"}parsePlaceholder(a){let b=this.getChildElement(a,"nvSpPr")||this.getChildElement(a,"nvPicPr")||this.getChildElement(a,"nvGrpSpPr");if(!b)return null;let c=this.getChildElement(b,"nvPr");if(!c)return null;let d=this.getChildElement(c,"ph");if(!d)return null;let e=this.getAttributeValue(d,"idx"),f=null==e||isNaN(parseInt(e,10))?void 0:parseInt(e,10);return{type:this.getAttributeValue(d,"type")||"obj",idx:f,orient:this.getAttributeValue(d,"orient"),sz:this.getAttributeValue(d,"sz")}}parseTextStyles(a){let b=this.getChildElement(a,"txStyles");return b?{titleStyle:this.parseTextStyle(this.getChildElement(b,"titleStyle")),bodyStyle:this.parseTextStyle(this.getChildElement(b,"bodyStyle")),otherStyle:this.parseTextStyle(this.getChildElement(b,"otherStyle"))}:null}parseTextStyle(a){return a?{element:a,parsed:!1}:null}parseColorMap(a){let b=this.getChildElement(a,"clrMap");if(!b)return null;let c={},d=b.attributes;for(let a=0;a<d.length;a++){let b=d[a];c[b.name]=b.value}return c}parseColorMapOverride(a){let b=this.getChildElement(a,"clrMapOvr");if(!b)return null;let c=this.getChildElement(b,"masterClrMapping");if(c)return this.parseColorMap(c);let d=this.getChildElement(b,"overrideClrMapping");return d?this.parseColorMap(d):null}parseBackground(a){let b=this.getChildElement(a,"bg");if(!b)return null;let c=this.getChildElement(b,"bgPr");if(c)return{type:"bgPr",fill:this.parseFill(c)};let d=this.getChildElement(b,"bgRef");return d?{type:"bgRef",idx:this.getAttributeValue(d,"idx")}:null}getChildElement(a,b){if(!a)return null;for(let c of Object.keys(this.namespaces)){let d=a.querySelector(`${c}\\:${b}, ${b}`);if(d)return d}return a.querySelector(b)}getAttributeValue(a,b){return a?a.getAttribute(b):null}getTextContent(a){return a?a.textContent:""}getElementsByTagName(a){return this.doc||this.parse(),this.doc?this.doc.getElementsByTagName(a):[]}getElementsByTagNameNS(a,b){return this.doc||this.parse(),this.doc?this.doc.getElementsByTagNameNS(a,b):[]}parseShapeProperties(a){return{}}parseTextBody(a){return null}parseShapeStyle(a){return null}getShapeName(a){let b=a.querySelector("cNvPr")||a.querySelector("p\\:cNvPr")||a.querySelector('[*|localName="cNvPr"]');return b&&b.getAttribute("name")||""}parsePictureShape(a){let b=this.parsePlaceholder(a),c={type:"pic",id:this.getAttributeValue(a,"id"),name:this.getShapeName(a),properties:this.parseShapeProperties(a),style:this.parseShapeStyle(a),placeholder:b,isPlaceholder:!!b},d=a.querySelector("blipFill, p\\:blipFill");if(d){let a=d.querySelector("blip, a\\:blip");if(a){let b=this.extractSVGRelationshipId(a);if(b)c.imageRelId=b,c.hasSVGAlternative=!0;else{let b=a.getAttribute("r:embed")||a.getAttribute("r:id");b&&(c.imageRelId=b)}let e=a.querySelector("effectLst, a\\:effectLst");e&&(c.imageEffects=this.parseImageEffects(e));let f=d.getAttribute("dpi")||d.getAttribute("rotWithShape");f&&(c.imageFillMode=f)}}return c.transform=this.parseTransform(a),c}extractSVGRelationshipId(a){try{let b=a.querySelector('extLst, a\\:extLst, [*|localName="extLst"]');if(!b)return null;for(let a of b.querySelectorAll('ext, a\\:ext, [*|localName="ext"]')){let b=a.getAttribute("uri");if("{96DAC541-7B7A-43D3-8B79-37D633B846F1}"===b){let b=a.querySelector('svgBlip, asvg\\:svgBlip, [*|localName="svgBlip"]');if(b){let a=b.getAttribute("r:embed")||b.getAttribute("r:id");if(a)return a}}}return null}catch(a){return null}}parseGroupShape(a){return{type:"grpSp"}}parseConnectorShape(a){return{type:"cxnSp"}}parseGraphicFrame(a){let b={type:"graphicFrame",name:this.getShapeName(a),position:this.parseTransform(a)},c=a.querySelector("graphic")||a.querySelector("a\\:graphic")||a.querySelector('[*|localName="graphic"]');if(c){let d=c.querySelector("graphicData")||c.querySelector("a\\:graphicData")||c.querySelector('[*|localName="graphicData"]');if(d){let c=d.getAttribute("uri");if(b.graphicData={uri:c},"http://schemas.openxmlformats.org/drawingml/2006/table"===c){let a=d.querySelector("tbl");a&&(b.graphicData.tableXml=new XMLSerializer().serializeToString(a))}else if("http://schemas.openxmlformats.org/drawingml/2006/chart"===c){b.graphicData.element=d;let c=d.querySelector("chart, c\\:chart");if(c){let a=c.getAttribute("r:id");a&&(b.graphicData.chartRef=a)}if(window.ChartProcessor)try{let c=new ChartProcessor(this.context);c.parseChartFromGraphicFrame(a).then(a=>{if(a)b.chartData=a,window.currentProcessor&&window.currentProcessor.reRenderShape&&window.currentProcessor.reRenderShape(b);else{let a=c.parseEmbeddedChartData(d);a&&(b.chartData=a)}}).catch(a=>{try{let a=c.parseEmbeddedChartData(d);a&&(b.chartData=a)}catch(a){}})}catch(a){}else b.graphicData.isChart=!0,b.graphicData.chartXml=new XMLSerializer().serializeToString(d)}}}return b}parseHeaderFooter(a){return null}parseTiming(a){return null}parseTransition(a){return null}extractThemeId(a){return null}parseFill(a){return null}parseImageEffects(a){return null}parseTransform(a){let b=a.querySelector("xfrm")||a.querySelector("p\\:xfrm")||a.querySelector('[*|localName="xfrm"]');if(!b)return{x:0,y:0,width:0,height:0};let c=b.querySelector("off")||b.querySelector("a\\:off")||b.querySelector('[*|localName="off"]'),d=0,e=0;c&&(d=parseInt(c.getAttribute("x")||"0",10),e=parseInt(c.getAttribute("y")||"0",10));let f=b.querySelector("ext")||b.querySelector("a\\:ext")||b.querySelector('[*|localName="ext"]'),g=0,h=0;return f&&(g=parseInt(f.getAttribute("cx")||"0",10),h=parseInt(f.getAttribute("cy")||"0",10)),{x:d,y:e,width:g,height:h}}parseSlide(a){try{let b={shapes:[],background:null,name:"",id:null},c=a.getAttribute("id");c&&(b.id=c);let d=this.getChildElement(a,"cSld");if(d){let a=d.getAttribute("name");a&&(b.name=a),b.background=this.parseBackground(d),b.shapes=this.parseShapeTree(d)}return b}catch(a){return{shapes:[],background:null,name:"",id:null}}}}"u">typeof window&&(window.XmlParserContext=a,window.StaxParser=b),"u">typeof globalThis&&(globalThis.XmlParserContext=a,globalThis.StaxParser=b)}}();!function(){if(!a5){a5=1;class a{constructor(){this.type="CPresentation",this.id=Math.random().toString(36).substr(2,9),this.slides=[],this.slideMasters=[],this.notesMasters=[],this.slideSize={cx:9144e3,cy:6858e3},this.currentSlide=0,this.app=null,this.core=null,this.customProperties=null,this.masterIds=[],this.theme=null}getSlidesCount(){return this.slides.length}getCurrentSlide(){return this.slides[this.currentSlide]||null}getSlide(a){return this.slides[a]||null}addSlide(a){this.slides.push(a),a.setParent(this)}setCurrentSlide(a){a>=0&&a<this.slides.length&&(this.currentSlide=a)}getSlideDimensions(){return{width:CoordinateTransform.emuToMM(this.slideSize.cx),height:CoordinateTransform.emuToMM(this.slideSize.cy)}}addSlideMaster(a){this.slideMasters.push(a),a.setParent(this)}draw(a){let b=this.getCurrentSlide();b&&b.draw(a)}}class b{constructor(){this.id=Math.random().toString(36).substr(2,9),this.commonSlideData=new c,this.layout=null,this.notes=null,this.timing=null,this.transition=null,this.showMasterShapes=!0,this.width=254,this.height=190.5,this.parent=null,this.bounds={l:0,t:0,r:254,b:190.5},this.backgroundFill=null}setParent(a){this.parent=a}getName(){return this.commonSlideData?this.commonSlideData.name:""}getShapeTree(){return this.commonSlideData?this.commonSlideData.shapeTree:[]}addToSpTree(a,b){this.commonSlideData||(this.commonSlideData=new c),null==a&&(a=this.commonSlideData.shapeTree.length),this.commonSlideData.shapeTree.splice(a,0,b),b.setParent(this)}removeFromSpTree(a){return a>=0&&a<this.commonSlideData.shapeTree.length?this.commonSlideData.shapeTree.splice(a,1)[0]:null}getBackground(){return this.backgroundFill||this.commonSlideData?.background}draw(a){a&&(this.drawBackground(a),this.showMasterShapes&&this.layout&&this.layout.master&&this.drawMasterElements(a),this.layout&&this.drawLayoutElements(a),this.drawShapeTree(a))}drawBackground(a){}drawGradientBackground(a,b){let c=b.colors&&b.colors[0]?b.colors[0]:{r:255,g:255,b:255};a.fillRect(0,0,this.width,this.height,c)}drawImageBackground(a,b){a.fillRect(0,0,this.width,this.height,{r:240,g:240,b:240})}drawMasterElements(a){if(this.layout&&this.layout.master&&this.layout.master.commonSlideData)for(let b of this.layout.master.commonSlideData.shapeTree)b.isPlaceholder||this.drawShape(a,b)}drawLayoutElements(a){if(this.layout&&this.layout.commonSlideData)for(let b of this.layout.commonSlideData.shapeTree)b.isPlaceholder||this.drawShape(a,b)}drawShapeTree(a){let b=this.getShapeTree();for(let c=0;c<b.length;c++){let d=b[c];d&&!d.isHidden&&this.drawShape(a,d)}}drawShape(a,b){if(b&&b.properties){a.SaveGrState();try{if(b.properties.transform){let c=this.createShapeTransformMatrix(b.properties.transform);a.transform3(c)}"grpSp"===b.type||b.isGroup?.()?this.drawGroupShape(a,b):this.drawSingleShape(a,b)}finally{a.RestoreGrState()}}}drawGroupShape(a,b){if(b.shapeTree&&0!==b.shapeTree.length){a.SaveGrState();try{if(b.transform){if(b.transform.rotation&&0!==b.transform.rotation){let c=this.createRotationMatrix(b.transform.rotation);a.transform3(c)}if(b.transform.flipH||b.transform.flipV){let c=b.transform.flipH?-1:1,d=b.transform.flipV?-1:1,e=this.createScaleMatrix(c,d);a.transform3(e)}}if(b.groupCoordSystem){let c=this.createGroupCoordinateMatrix(b.groupCoordSystem);c&&a.transform3(c)}for(let c of b.shapeTree)this.drawShape(a,c)}finally{a.RestoreGrState()}}}createGroupCoordinateMatrix(a){if(!a)return null;let b=1,c=1;a.chExt.cx>0&&a.groupExt.cx>0&&(b=a.groupExt.cx/a.chExt.cx),a.chExt.cy>0&&a.groupExt.cy>0&&(c=a.groupExt.cy/a.chExt.cy);let d=a.groupOff.x-a.chOff.x*b,e=a.groupOff.y-a.chOff.y*c;return{m11:b,m12:0,m21:0,m22:c,dx:d,dy:e}}createRotationMatrix(a){let b=a*Math.PI/180,c=Math.cos(b),d=Math.sin(b);return{m11:c,m12:d,m21:-d,m22:c,dx:0,dy:0}}createScaleMatrix(a,b){return{m11:a,m12:0,m21:0,m22:b,dx:0,dy:0}}drawSingleShape(a,b){let c=b.properties.transform;if(!c)return;let d=CoordinateTransform.emuToMM(c.x||0),e=CoordinateTransform.emuToMM(c.y||0),f=CoordinateTransform.emuToMM(c.width||0),g=CoordinateTransform.emuToMM(c.height||0),h=this.getShapeFillColor(b),i=this.getShapeStrokeColor(b),j=this.getShapeLineWidth(b);switch(b.type){case"sp":this.drawTextShape(a,b,d,e,f,g,h,i,j);break;case"pic":this.drawImageShape(a,b,d,e,f,g);break;case"cxnSp":this.drawConnectorShape(a,b,d,e,f,g,i,j);break;case"graphicFrame":this.drawGraphicFrame(a,b,d,e,f,g);break;default:this.drawDefaultShape(a,b,d,e,f,g,h,i,j)}}drawTextShape(a,b,c,d,e,f,g,h,i){let j=b.geometry||b.properties?.geometry;j&&j.preset?a.drawPresetGeometry(j.preset,c,d,e,f,g,h,i):j&&j.pathLst?this.drawCustomGeometry(a,j,c,d,e,f,g,h,i):(g&&a.fillRect(c,d,e,f,g),h&&a.strokeRect(c,d,e,f,h,i)),this.drawTextContent(a,b,c,d,e,f)}drawCustomGeometry(a,b,c,d,e,f,g,h,i){a.SaveGrState();let j=e/(b.pathW||e),k=f/(b.pathH||f);if(a.context.translate(c,d),a.context.scale(j,k),b.pathLst)for(let c=0;c<b.pathLst.length;c++){let d=b.pathLst[c],e=g;"none"===d.fill||!1===d.fill?e=null:!Object.prototype.hasOwnProperty.call(d,"fill")&&h&&(e=null),this.drawGeometryPath(a,d,e,h,i)}a.RestoreGrState()}drawGeometryPath(a,b,c,d,e){if(b.commands&&0!==b.commands.length){a._s();for(let d=0;d<b.commands.length;d++){let e=b.commands[d];switch(e.type){case"M":case"moveTo":a._m(e.x,e.y);break;case"L":case"lineTo":a._l(e.x,e.y);break;case"C":case"curveTo":a._c(e.x1,e.y1,e.x2,e.y2,e.x,e.y);break;case"Z":case"close":c&&"none"!==b.fill&&!1!==b.fill&&a._z();break;case"Q":case"quadTo":{let b=e.cpx+(e.x-e.cpx)*2/3,c=e.cpy+(e.y-e.cpy)*2/3;a._c(e.cpx,e.cpy,b,c,e.x,e.y);break}case"A":case"arcTo":if(e.rx&&e.ry&&e.x&&e.y){let b=(a.context.lastX||0+e.x)/2,c=(a.context.lastY||0+e.y)/2;a._c(b,c,b,c,e.x,e.y)}else a._l(e.x,e.y)}}d&&!1!==b.stroke&&(a.p_color(d.r,d.g,d.b,d.a||255),a.p_width(e||1),a.ds()),c&&"none"!==b.fill&&!1!==b.fill&&(a.b_color1(c.r,c.g,c.b,c.a||255),a.df()),a._e()}}drawTextContent(a,b,c,d,e,f){if(!b.textBody||!b.textBody.paragraphs)return;let g=d+5,h=f-10;for(let e of b.textBody.paragraphs){if(g>d+h)break;let b=c+5;for(let c of e.runs)if(c.text&&g<=d+h){let d={fontSize:c.properties?.fontSize||18,fontFamily:c.properties?.fontFamily||"Arial",bold:c.properties?.bold||!1,italic:c.properties?.italic||!1,color:c.properties?.color||{r:0,g:0,b:0},highlight:c.properties?.highlight||null};a.fillText(c.text,b,g,d),b+=c.text.length*(.6*d.fontSize)}g+=14}}drawImageShape(a,b,c,d,e,f){a.strokeRect(c,d,e,f,{r:160,g:160,b:160},1),b.imageData&&a.drawImage(b.imageData,c,d,e,f)}drawConnectorShape(a,b,c,d,e,f,g,h){a.drawLine(c,d,c+e,d+f,g,h)}drawGraphicFrame(a,b,c,d,e,f){if(b.graphicData,b.asyncChartProcessing)return void a.strokeRect(c,d,e,f,{r:200,g:200,b:200},1);if(b.chartData)window.ChartRenderer?new ChartRenderer(a).renderChart(b.chartData,c,d,e,f):a.strokeRect(c,d,e,f,{r:160,g:160,b:160},1);else if(b.graphicData&&"http://schemas.openxmlformats.org/drawingml/2006/chart"===b.graphicData.uri)if(window.ChartProcessor){let g=new ChartProcessor().parseEmbeddedChartData(b.graphicData);g?(b.chartData=g,window.ChartRenderer&&new ChartRenderer(a).renderChart(g,c,d,e,f)):a.strokeRect(c,d,e,f,{r:160,g:160,b:160},1)}else a.strokeRect(c,d,e,f,{r:160,g:160,b:160},1);else if(b.table&&b.table instanceof h)b.table.draw(a,c,d,e,f);else if(b.graphicData&&"http://schemas.openxmlformats.org/drawingml/2006/table"===b.graphicData.uri)try{let g=this.parseSimpleTable(b.graphicData.tableXml);g?(b.table=g,g.draw(a,c,d,e,f)):a.strokeRect(c,d,e,f,{r:160,g:160,b:160},1)}catch(b){a.strokeRect(c,d,e,f,{r:160,g:160,b:160},1)}else a.strokeRect(c,d,e,f,{r:160,g:160,b:160},1)}parseSimpleTable(a){if(!a)return null;try{let b=new DOMParser().parseFromString(a,"text/xml");if("parsererror"===b.documentElement.nodeName)return null;let c=new h,d=b.querySelector("tblGrid");if(d||(d=b.querySelector("a\\:tblGrid")),d){let a=d.querySelectorAll("gridCol");0===a.length&&(a=d.querySelectorAll("a\\:gridCol"));let b=[];a.forEach(a=>{let c=a.getAttribute("w");b.push({width:c?parseInt(c):914400})}),c.setTableGrid(b)}let e=b.querySelectorAll("tr");return 0===e.length&&(e=b.querySelectorAll("a\\:tr")),e.forEach(a=>{let b=new i,d=a.querySelector("trPr");if(d||(d=a.querySelector("a\\:trPr")),d){let a=d.querySelector("trHeight");a||(a=d.querySelector("a\\:trHeight")),a&&(b.height=parseInt(a.getAttribute("val"))||null)}let e=a.querySelectorAll("tc");0===e.length&&(e=a.querySelectorAll("a\\:tc")),e.forEach(a=>{let c=new j,d=a.querySelector("tcPr");if(d||(d=a.querySelector("a\\:tcPr")),d){let a=d.querySelector("gridSpan");a||(a=d.querySelector("a\\:gridSpan")),a&&(c.gridSpan=parseInt(a.getAttribute("val"))||1);let b=d.querySelector("rowSpan");b||(b=d.querySelector("a\\:rowSpan")),b&&(c.rowSpan=parseInt(b.getAttribute("val"))||1);let e=d.querySelector("solidFill");if(e||(e=d.querySelector("a\\:solidFill")),e){let a=e.querySelector("srgbClr, schemeClr, scrgbClr");if(a||(a=e.querySelector("a\\:srgbClr, a\\:schemeClr, a\\:scrgbClr")),a){let b=this.parseSimpleColor(a);b&&(c.fill={color:b})}}}let e=this.parseSimpleTextContent(a);e&&c.setTextBody(e),b.addCell(c)}),c.addRow(b)}),c}catch(a){return null}}parseSimpleColor(a){if(a.tagName.includes("srgbClr")){let b=a.getAttribute("val");if(b){let a=b.replace("#","");return{r:parseInt(a.substr(0,2),16),g:parseInt(a.substr(2,2),16),b:parseInt(a.substr(4,2),16),a:255}}}return{r:200,g:200,b:200,a:255}}parseSimpleTextContent(a){let b=a.querySelectorAll("r, a\\:r");if(0===b.length)return null;let c={paragraphs:[],bodyProperties:{wrap:!0,verticalAlign:"top"}},d={runs:[],properties:{}};return b.forEach(a=>{let b=a.querySelector("t, a\\:t"),c=b?b.textContent:"";if(c){let b=a.querySelector("rPr, a\\:rPr"),e={fontSize:12,fontFamily:"Arial",bold:!1,italic:!1,color:{r:0,g:0,b:0,a:255}};if(b){let a=b.getAttribute("sz");a&&(e.fontSize=parseInt(a)/100),"1"===b.getAttribute("b")&&(e.bold=!0);let c=b.querySelector("solidFill, a\\:solidFill");if(c){let a=c.querySelector("srgbClr, a\\:srgbClr");if(a){let b=a.getAttribute("val");if(b){let a=parseInt(b.substr(0,2),16);e.color={r:a,g:parseInt(b.substr(2,2),16),b:parseInt(b.substr(4,2),16),a:255}}}}}d.runs.push({text:c,properties:e})}}),d.runs.length>0&&c.paragraphs.push(d),c.paragraphs.length>0?c:null}drawDefaultShape(a,b,c,d,e,f,g,h,i){g&&a.fillRect(c,d,e,f,g),h&&a.strokeRect(c,d,e,f,h,i)}getShapeFillColor(a){return a.brush?.color?a.brush.color:a.fill?.color?a.fill.color:a.properties?.fill?.color?a.properties.fill.color:{r:200,g:200,b:200,a:255}}getShapeStrokeColor(a){return null===a.pen||"none"===a.pen||null===a.stroke||"none"===a.stroke||a.properties?.stroke===null||a.properties?.stroke==="none"||a.pen?.width===0||a.stroke?.width===0||a.properties?.stroke?.width===0?null:a.pen?.color?a.pen.color:a.stroke?.color?a.stroke.color:a.properties?.stroke?.color?a.properties.stroke.color:null}getShapeLineWidth(a){return null===a.pen||"none"===a.pen||null===a.stroke||"none"===a.stroke||a.properties?.stroke===null||a.properties?.stroke==="none"?0:a.pen?.width!==void 0?CoordinateTransform.emuToMM(a.pen.width):a.stroke?.width!==void 0?CoordinateTransform.emuToMM(a.stroke.width):a.properties?.stroke?.width!==void 0?CoordinateTransform.emuToMM(a.properties.stroke.width):0}createShapeTransformMatrix(a){let b=new CMatrix;if(a.rotation){let c=a.rotation/6e4*Math.PI/180,d=Math.cos(c),e=Math.sin(c);b.sx=d,b.sy=d,b.shx=-e,b.shy=e}return b.tx=CoordinateTransform.emuToMM(a.x||0),b.ty=CoordinateTransform.emuToMM(a.y||0),b}}class c{constructor(){this.name="",this.shapeTree=[],this.background=null,this.colorMap=null,this.parent=null}setParent(a){this.parent=a}addToSpTree(a,b){null==a&&(a=this.shapeTree.length),this.shapeTree.splice(a,0,b),b.setParent(this)}removeFromSpTree(a){return a>=0&&a<this.shapeTree.length?this.shapeTree.splice(a,1)[0]:null}}class d{constructor(){this.id=Math.random().toString(36).substr(2,9),this.type="sp",this.properties={transform:{x:0,y:0,width:1e5,height:1e5,rotation:0}},this.geometry=null,this.textBody=null,this.fill=null,this.stroke=null,this.brush=null,this.pen=null,this.parent=null,this.isHidden=!1,this.isPlaceholder=!1,this.effects=null,this.bounds={l:0,t:0,r:0,b:0},this.transform=null,this.style=null,this.preservedStyle=null,this.nvSpPr=null,this.spPr=null,this.name=null,this.chartData=null,this.mediaInfo=null,this.svgContent=null,this.graphicData=null}setParent(a){this.parent=a}isGroup(){return"grpSp"===this.type}getObjectType(){switch(this.type){case"sp":return"shape";case"pic":return"image";case"grpSp":return"group";case"cxnSp":return"connector";case"graphicFrame":if(this.chartData)return"chart";if(this.graphicData?.uri==="http://schemas.openxmlformats.org/drawingml/2006/table")return"table";if(this.graphicData?.uri==="http://schemas.openxmlformats.org/drawingml/2006/chart")return"chart";return"graphic";default:return"unknown"}}setGeometry(a){this.geometry=a}setTextBody(a){this.textBody=a}setChartData(a){this.chartData=a}isChart(){return null!==this.chartData||this.graphicData?.uri==="http://schemas.openxmlformats.org/drawingml/2006/chart"}isTable(){return this.graphicData?.uri==="http://schemas.openxmlformats.org/drawingml/2006/table"}setMediaInfo(a){this.mediaInfo=a}setSvgContent(a){this.svgContent=a}recalculateBounds(){let a=this.properties.transform;a&&(this.bounds.l=CoordinateTransform.emuToMM(a.x),this.bounds.t=CoordinateTransform.emuToMM(a.y),this.bounds.r=this.bounds.l+CoordinateTransform.emuToMM(a.width),this.bounds.b=this.bounds.t+CoordinateTransform.emuToMM(a.height))}draw(a){if(!this.isHidden)switch(this.recalculateBounds(),this.getObjectType()){case"group":this.drawGroupShape(a);break;case"image":this.drawImageShape(a);break;case"connector":this.drawConnectorShape(a);break;case"graphic":this.drawGraphicFrame(a);break;default:this.drawShape(a)}}drawShape(a){let b=this.bounds.l,c=this.bounds.t,d=this.bounds.r-this.bounds.l,e=this.bounds.b-this.bounds.t;this.geometry&&this.geometry.preset?a.drawPresetGeometry(this.geometry.preset,b,c,d,e,this.getFillColor(),this.getStrokeColor(),this.getLineWidth()):(this.getFillColor()&&a.fillRect(b,c,d,e,this.getFillColor()),this.getStrokeColor()&&a.strokeRect(b,c,d,e,this.getStrokeColor(),this.getLineWidth())),this.textBody&&this.drawTextContent(a,b,c,d,e)}drawGroupShape(a){if(this.shapeTree){for(let b of(a.SaveGrState(),this.transform&&a.transform3(this.transform),this.shapeTree))b.draw(a);a.RestoreGrState()}}drawImageShape(a){let b=this.bounds.l,c=this.bounds.t,d=this.bounds.r-this.bounds.l,e=this.bounds.b-this.bounds.t;a.strokeRect(b,c,d,e,{r:160,g:160,b:160},1)}drawConnectorShape(a){let b=this.bounds.l,c=this.bounds.t,d=this.bounds.r-this.bounds.l,e=this.bounds.b-this.bounds.t;a.drawLine(b,c,b+d,c+e,this.getStrokeColor(),this.getLineWidth())}drawGraphicFrame(a){let b=this.bounds.l,c=this.bounds.t,d=this.bounds.r-this.bounds.l,e=this.bounds.b-this.bounds.t;if(this.asyncChartProcessing)return void a.strokeRect(b,c,d,e,{r:200,g:200,b:200},1);if(this.chartData)window.ChartRenderer?new ChartRenderer(a).renderChart(this.chartData,b,c,d,e):a.strokeRect(b,c,d,e,{r:160,g:160,b:160},1);else if(this.graphicData&&"http://schemas.openxmlformats.org/drawingml/2006/chart"===this.graphicData.uri)if(window.ChartProcessor){let f=new ChartProcessor().parseEmbeddedChartData(this.graphicData);f?(this.chartData=f,window.ChartRenderer&&new ChartRenderer(a).renderChart(f,b,c,d,e)):a.strokeRect(b,c,d,e,{r:160,g:160,b:160},1)}else a.strokeRect(b,c,d,e,{r:160,g:160,b:160},1);else a.strokeRect(b,c,d,e,{r:160,g:160,b:160},1)}drawTextContent(a,b,c,d,e){if(!this.textBody||!this.textBody.paragraphs)return;let f=c+5;for(let c of this.textBody.paragraphs)for(let d of c.runs)d.text&&(a.fillText(d.text,b+5,f,d.properties||{}),f+=15)}getFillColor(){return null===this.fill?null:this.fill?.color||this.brush?.color||null}getStrokeColor(){return null===this.stroke?null:this.stroke?.color||this.pen?.color||{r:0,g:0,b:0}}getLineWidth(){let a=this.stroke?.width||this.pen?.width||12700;return CoordinateTransform.emuToMM(a)}}class e extends d{constructor(){super(),this.type="grpSp",this.shapeTree=[],this.groupCoordSystem={chOff:{x:0,y:0},chExt:{cx:0,cy:0},groupOff:{x:0,y:0},groupExt:{cx:0,cy:0}},this.transform={rotation:0,flipH:!1,flipV:!1,groupOff:{x:0,y:0},groupExt:{cx:0,cy:0}}}addToSpTree(a,b){null==a&&(a=this.shapeTree.length),this.shapeTree.splice(a,0,b),b.setParent&&b.setParent(this),b.inGroup=!0,b.parentGroup=this,this.recalculateBounds()}removeFromSpTree(a){if(a>=0&&a<this.shapeTree.length){let b=this.shapeTree.splice(a,1)[0];return b.setParent&&b.setParent(null),b.inGroup=!1,b.parentGroup=null,this.recalculateBounds(),b}return null}setGroupCoordSystem(a,b,c,d){this.groupCoordSystem={chOff:a||{x:0,y:0},chExt:b||{cx:0,cy:0},groupOff:c||{x:0,y:0},groupExt:d||{cx:0,cy:0}},this.transform.groupOff={...this.groupCoordSystem.groupOff},this.transform.groupExt={...this.groupCoordSystem.groupExt},this.transformChildShapes()}transformChildShapes(){if(!this.shapeTree||0===this.shapeTree.length)return;let a=this.groupCoordSystem,b=1,c=1;for(let d of(a.chExt.cx>0&&a.groupExt.cx>0&&(b=a.groupExt.cx/a.chExt.cx),a.chExt.cy>0&&a.groupExt.cy>0&&(c=a.groupExt.cy/a.chExt.cy),this.shapeTree))if(d.bounds){let e=d.bounds;d.originalBounds||(d.originalBounds={...e}),d.bounds={l:a.groupOff.x+(e.l-a.chOff.x)*b,t:a.groupOff.y+(e.t-a.chOff.y)*c,r:a.groupOff.x+(e.r-a.chOff.x)*b,b:a.groupOff.y+(e.b-a.chOff.y)*c},d.groupTransform={scaleX:b,scaleY:c,offsetX:a.groupOff.x-a.chOff.x*b,offsetY:a.groupOff.y-a.chOff.y*c}}}recalculateBounds(){if(0===this.shapeTree.length)return void super.recalculateBounds();let a=1/0,b=1/0,c=-1/0,d=-1/0,e=!1;for(let f of this.shapeTree)f.recalculateBounds&&f.recalculateBounds(),f.bounds&&(a=Math.min(a,f.bounds.l),b=Math.min(b,f.bounds.t),c=Math.max(c,f.bounds.r),d=Math.max(d,f.bounds.b),e=!0);e?(this.bounds.l=a,this.bounds.t=b,this.bounds.r=c,this.bounds.b=d):(this.bounds.l=914400,this.bounds.t=914400,this.bounds.r=5486400,this.bounds.b=2743200)}draw(a){if(!this.isHidden){this.recalculateBounds(),a.SaveGrState();try{if(this.transform){if(this.transform.rotation&&0!==this.transform.rotation){let b=this.createRotationMatrix(this.transform.rotation);a.transform3(b)}if(this.transform.flipH||this.transform.flipV){let b=this.transform.flipH?-1:1,c=this.transform.flipV?-1:1,d=this.createScaleMatrix(b,c);a.transform3(d)}}if(this.groupCoordSystem){let b=this.createGroupCoordinateMatrix(this.groupCoordSystem);b&&a.transform3(b)}for(let b of this.shapeTree)b.draw(a)}finally{a.RestoreGrState()}}}createGroupCoordinateMatrix(a){if(!a)return null;let b=1,c=1;a.chExt.cx>0&&a.groupExt.cx>0&&(b=a.groupExt.cx/a.chExt.cx),a.chExt.cy>0&&a.groupExt.cy>0&&(c=a.groupExt.cy/a.chExt.cy);let d=a.groupOff.x-a.chOff.x*b,e=a.groupOff.y-a.chOff.y*c;return{m11:b,m12:0,m21:0,m22:c,dx:d,dy:e}}createRotationMatrix(a){let b=a*Math.PI/180,c=Math.cos(b),d=Math.sin(b);return{m11:c,m12:d,m21:-d,m22:c,dx:0,dy:0}}createScaleMatrix(a,b){return{m11:a,m12:0,m21:0,m22:b,dx:0,dy:0}}getObjectType(){return"group"}isGroup(){return!0}}class f{constructor(){this.id=Math.random().toString(36).substr(2,9),this.commonSlideData=new c,this.theme=null,this.layouts=[],this.parent=null}setParent(a){this.parent=a}addLayout(a){this.layouts.push(a),a.setMaster(this)}}class g{constructor(){this.id=Math.random().toString(36).substr(2,9),this.commonSlideData=new c,this.master=null,this.type="blank"}setMaster(a){this.master=a}}class h{constructor(){this.id=Math.random().toString(36).substr(2,9),this.type="table",this.rows=[],this.tableGrid=[],this.tableProperties=null,this.parent=null,this.firstRow=!1,this.firstCol=!1,this.lastRow=!1,this.lastCol=!1,this.bandRow=!1,this.bandCol=!1,this.tableStyleId=null,this.bounds={l:0,t:0,r:0,b:0}}setParent(a){this.parent=a}addRow(a){this.rows.push(a),a.setParent(this),a.rowIndex=this.rows.length-1}setTableGrid(a){this.tableGrid=a||[]}getTotalWidth(){return this.tableGrid.reduce((a,b)=>a+(b.width||0),0)}getRowCount(){return this.rows.length}getColumnCount(){let a=this.tableGrid.length,b=0;for(let a of this.rows){let c=a.getCells().length;c>b&&(b=c)}return Math.max(a,b)}getTableProperties(){return this.tableProperties||{}}getTableBorders(){return this.tableProperties?.borders||{}}getTableShading(){return this.tableProperties?.shading||{}}getTableGrid(){return this.tableGrid||[]}getCell(a,b){if(a>=0&&a<this.rows.length){let c=this.rows[a];if(b>=0&&b<c.cells.length)return c.cells[b]}return null}getRow(a){return a>=0&&a<this.rows.length?this.rows[a]:null}getRows(){return this.rows}recalculateBounds(){let a=this.getTotalWidth(),b=this.rows.reduce((a,b)=>a+(b.height||0),0);this.bounds.r=this.bounds.l+CoordinateTransform.emuToMM(a),this.bounds.b=this.bounds.t+CoordinateTransform.emuToMM(b)}draw(a,b,c,d,e){if(!this.rows||0===this.rows.length)return void a.strokeRect(b,c,d,e,{r:160,g:160,b:160},1);let f=this.getColumnCount(),g=this.getRowCount(),h=f>0?d/f:d,i=g>0?e/g:e,j=c;for(let c=0;c<this.rows.length;c++){let e=this.rows[c],f=e.height?CoordinateTransform.emuToMM(e.height):i;e.draw(a,b,j,d,f,h,this.tableGrid),j+=f}}}class i{constructor(){this.id=Math.random().toString(36).substr(2,9),this.type="tableRow",this.cells=[],this.height=null,this.parent=null,this.rowIndex=0}setParent(a){this.parent=a}addCell(a){this.cells.push(a),a.setParent(this),a.cellIndex=this.cells.length-1}getCellCount(){return this.cells.length}draw(a,b,c,d,e,f,g){if(!this.cells||0===this.cells.length)return;let h=b;for(let b=0;b<this.cells.length;b++){let d=this.cells[b],i=f;g&&g[b]&&g[b].width&&(i=CoordinateTransform.emuToMM(g[b].width)),d.draw(a,h,c,i,e),h+=i}a.drawLine(b,c+e,b+d,c+e,{r:200,g:200,b:200},1)}getCell(a){return this.cells[a]||null}getCells(){return this.cells}}class j{constructor(){this.id=Math.random().toString(36).substr(2,9),this.type="tableCell",this.textBody=null,this.cellProperties=null,this.parent=null,this.cellIndex=0,this.gridSpan=1,this.rowSpan=1,this.fill=null,this.borders={top:null,right:null,bottom:null,left:null}}setParent(a){this.parent=a}setTextBody(a){this.textBody=a}draw(a,b,c,d,e){this.fill&&this.fill.color&&a.fillRect(b,c,d,e,this.fill.color),this.textBody&&this.textBody.paragraphs&&this.drawCellText(a,b,c,d,e)}drawCellText(a,b,c,d,e){if(!this.textBody||!this.textBody.paragraphs)return;let f=c+5,g=e-10;for(let d of this.textBody.paragraphs){if(f>c+g)break;let e=b+5;if(d.runs){for(let b of d.runs)if(b.text&&f<=c+g){let c={fontSize:b.properties?.fontSize||12,fontFamily:b.properties?.fontFamily||"Arial",bold:b.properties?.bold||!1,italic:b.properties?.italic||!1,color:b.properties?.color||{r:0,g:0,b:0}};a.fillText(b.text,e,f,c),e+=b.text.length*(.6*c.fontSize)}}f+=14}}getGridSpan(){return this.gridSpan||1}getRowSpan(){return this.rowSpan||1}getCellShading(){return this.shading}getTextBody(){return this.textBody}getCellBorders(){return this.borders}}class k{constructor(){this.id=Math.random().toString(36).substr(2,9),this.name="Default Theme",this.colorScheme=null,this.fontScheme=null,this.formatScheme=null}}"u">typeof window&&(window.CPresentation=a,window.CSlide=b,window.CSld=c,window.CShape=d,window.CGroupShape=e,window.CSlideMaster=f,window.CSlideLayout=g,window.CTheme=k,window.CTable=h,window.CTableRow=i,window.CTableCell=j),"u">typeof globalThis&&(globalThis.CPresentation=a,globalThis.CSlide=b,globalThis.CSld=c,globalThis.CShape=d,globalThis.CGroupShape=e,globalThis.CSlideMaster=f,globalThis.CSlideLayout=g,globalThis.CTheme=k,globalThis.CTable=h,globalThis.CTableRow=i,globalThis.CTableCell=j)}}();let e6=class{constructor(a={}){this.logger=new Logger("TableProcessor"),this.validator=this._getValidator(),this.errorBoundary=new(this._getErrorBoundary())({context:"TableProcessor",enableLogging:!1!==a.enableLogging}),this.tableCache=new Map,this.config=this._validateConfig({maxTableSize:a.maxTableSize||1e3,maxCellTextLength:a.maxCellTextLength||1e4,enableCaching:!1!==a.enableCaching,enableValidation:!1!==a.enableValidation,renderTimeout:a.renderTimeout||5e3,...a}),this.performanceMetrics={tablesProcessed:0,cacheHits:0,cacheMisses:0,averageRenderTime:0}}async renderTableFrame(a,b,c,d,e,f,g={}){let h=this._validateRenderInput(a,b,c,d,e,f,g);if(!h.valid){this._handleValidationError("renderTableFrame",h.errors),this.drawTablePlaceholder(a,c,d,e,f);return}return this.errorBoundary.wrap(async()=>{let g=performance.now();try{let h=await this._getTableInstanceWithTimeout(b,this.config.renderTimeout);if(!h){this.logger&&this.logger.log("warn",this.constructor.name,"TableProcessor","No valid table data found, drawing placeholder"),this.drawTablePlaceholder(a,c,d,e,f);return}this.config.enableValidation&&this._validateTableStructure(h),a.SaveGrState();try{await this._safeDrawTableBackgroundAndOuterBorder(a,h,c,d,e,f),await this._safeDrawCellsBackground(a,h,c,d,e,f),await this._safeDrawCellsContent(a,h,c,d,e,f),await this._safeDrawCellsBorders(a,h,c,d,e,f),this._updatePerformanceMetrics(g)}finally{a.RestoreGrState()}}catch(b){throw console.error("[TableProcessor] MAIN RENDER ERROR:",b.message),console.error("[TableProcessor] Error stack:",b.stack),console.error("[TableProcessor] Error name:",b.name),this.logger&&this.logger.logError(this.constructor.name,"TableProcessor","Error during table rendering:",b),this.drawTablePlaceholder(a,c,d,e,f),this._enhanceError(b,"table_rendering",{x:c,y:d,w:e,h:f})}},{context:"renderTableFrame"})()}async getTableInstance(a){return this.errorBoundary.wrap(async()=>{if(!a||"object"!=typeof a)throw this._createError("Invalid shape object provided",{name:"ValidationError",code:"INVALID_SHAPE"});if(a.table&&a.table instanceof CTable)return this.performanceMetrics.cacheHits++,a.table;if(this.performanceMetrics.cacheMisses++,a.graphicData&&a.graphicData.tableXml)try{this.config.enableValidation&&this._validateTableXML(a.graphicData.tableXml);let b=await this.parseTableFromXML(a.graphicData.tableXml);if(b)return this.config.enableValidation&&this._validateParsedTable(b),this.config.enableCaching&&(a.table=b),b}catch(a){throw this.logger&&this.logger.logError(this.constructor.name,"TableProcessor","Failed to parse table XML:",a),this._enhanceError(a,"table_parsing")}return null},{context:"getTableInstance"})()}async _getTableInstanceWithTimeout(a,b){return new Promise(async(c,d)=>{let e=setTimeout(()=>{d(this._createError(`Table parsing timed out after ${b}ms`,{name:"TimeoutError",code:"TABLE_PARSING_TIMEOUT"}))},b);try{let b=await this.getTableInstance(a);clearTimeout(e),c(b)}catch(a){clearTimeout(e),d(a)}})}drawTableBackgroundAndOuterBorder(a,b,c,d,e,f){b.getTableProperties();let g=b.getTableBorders(),h=b.getTableShading();if(h&&h.fill){let b=this.resolveTableBackgroundColor(h);a.b_color1(b.r,b.g,b.b,b.a||255),a.TableRect(c,d,e,f)}g&&Object.keys(g).length>0&&this.drawTableOuterBorder(a,g,c,d,e,f)}drawCellsBackground(a,b,c,d,e,f){let g=b.getRows(),h=this.calculateCellWidths(b,e),i=this.calculateCellHeights(b,f),j=b.getTableProperties()||{},k=d;for(let b=0;b<g.length;b++){let d=g[b].getCells(),e=i[b],f=d.length>0&&d[0].textBody?.paragraphs?.[0]?.runs?.[0]?.text==="TOTAL",l=d.length>0&&d[0].textBody?.paragraphs?.[0]?.runs?.[0]?.text==="Product";for(let e=0;e<d.length;e++){let g=d[e],m=Math.max(1,g.gridSpan||1),n=Math.max(1,g.rowSpan||1);if(!g.isMergedContinue){let d=g.logicalColIndex||0,e=c+this.calculateCellXOffset(h,d),o=this.calculateMergedCellWidth(h,d,m),p=this.calculateMergedCellHeight(i,b,n);this.drawCellBackground(a,g,e,k,o,p,{isHeaderRow:l,isTotalRow:f,rowIndex:b,tableProps:j})}}k+=e}}drawCellsContent(a,b,c,d,e,f){let g=b.getRows(),h=this.calculateCellWidths(b,e),i=this.calculateCellHeights(b,f),j=d;for(let b=0;b<g.length;b++){let d=g[b].getCells(),e=i[b];for(let e=0;e<d.length;e++){let f=d[e],g=Math.max(1,f.gridSpan||1),k=Math.max(1,f.rowSpan||1);if(!f.isMergedContinue){let d=f.logicalColIndex||0,e=c+this.calculateCellXOffset(h,d),l=this.calculateMergedCellWidth(h,d,g),m=this.calculateMergedCellHeight(i,b,k);this.drawCellContent(a,f,e,j,l,m)}}j+=e}}drawCellsBorders(a,b,c,d,e,f){let g=b.getRows(),h=this.calculateCellWidths(b,e),i=this.calculateCellHeights(b,f),j=d;for(let d=0;d<g.length;d++){let e=g[d].getCells(),f=i[d];for(let f=0;f<e.length;f++){let g=e[f],k=Math.max(1,g.gridSpan||1),l=Math.max(1,g.rowSpan||1);if(!g.isMergedContinue){let e=g.logicalColIndex||0,f=c+this.calculateCellXOffset(h,e),m=this.calculateMergedCellWidth(h,e,k),n=this.calculateMergedCellHeight(i,d,l);this.drawCellBorders(a,g,f,j,m,n,d,e,b)}}j+=f}}drawTablePlaceholder(a,b,c,d,e){let f=d/3,g=e/3;for(let d=0;d<3;d++)for(let e=0;e<3;e++){let h=b+e*f,i=c+d*g;a.drawRectangle(h,i,f,g,null,{r:128,g:128,b:128,a:255},1)}this.drawCenteredText(a,"Table",b,c,d,e)}drawTableOuterBorder(a,b,c,d,e,f){["top","right","bottom","left"].forEach(g=>{let h=b[g];if(h&&"none"!==h.style){let b=this.resolveBorderColor(h),i=Math.max(h.width||1,3);switch(a.p_color(b.r,b.g,b.b,b.a||255),a.p_width(i),g){case"top":a.drawHorLine(c,d,c+e,d,i);break;case"right":a.drawVerLine(c+e,d,d+f,i);break;case"bottom":a.drawHorLine(c,d+f,c+e,d+f,i);break;case"left":a.drawVerLine(c,d,d+f,i)}}})}drawCellBackground(a,b,c,d,e,f,g={}){let h=null;if(b.shading&&b.shading.fillColor&&(h=b.shading.fillColor),!h&&"function"==typeof b.getCellShading)try{let a=b.getCellShading();a&&a.fill&&a.fill.color&&(h=a.fill.color)}catch(a){}if(!h&&b.shading&&b.shading.color&&(h=b.shading.color),!h){let a=b.properties||b.cellProperties;a&&a.shading&&a.shading.fillColor&&(h=a.shading.fillColor)}if(!h&&g.tableProps){let a=g.tableProps,c=g.rowIndex||0,d=b.logicalColIndex||0;a.firstRow&&0===c?h={r:68,g:114,b:196,a:255}:a.bandRow&&c>0?(a.firstRow?c-1:c)%2==1&&(h={r:242,g:242,b:242,a:255}):a.firstCol&&0===d&&c>0&&(h={r:221,g:235,b:247,a:255})}h&&void 0!==h.r&&void 0!==h.g&&void 0!==h.b&&a.m_oContext&&(a.m_oContext.save(),a.m_oContext.fillStyle=`rgba(${h.r}, ${h.g}, ${h.b}, ${(h.a||255)/255})`,a.m_oContext.fillRect(c,d,e,f),a.m_oContext.restore())}drawCellContent(a,b,c,d,e,f){let g=b.getTextBody();if(!g||!g.paragraphs)return;let h=this.convertEMUToPixels(38100),i=h,j=h,k=h,l=h;if(b.margins&&(i=b.margins.left?this.convertEMUToPixels(b.margins.left):h,j=b.margins.right?this.convertEMUToPixels(b.margins.right):h,k=b.margins.top?this.convertEMUToPixels(b.margins.top):h,l=b.margins.bottom?this.convertEMUToPixels(b.margins.bottom):h),g.bodyProperties){let a=g.bodyProperties;null!=a.leftMargin&&(i=this.convertEMUToPixels(a.leftMargin)),null!=a.rightMargin&&(j=this.convertEMUToPixels(a.rightMargin)),null!=a.topMargin&&(k=this.convertEMUToPixels(a.topMargin)),null!=a.bottomMargin&&(l=this.convertEMUToPixels(a.bottomMargin))}let m=c+i,n=d+k,o=Math.max(0,e-(i+j)),p=Math.max(0,f-(k+l));this.renderCellTextContent(a,g,m,n,o,p,b)}drawCellBorders(a,b,c,d,e,f,g,h,i){let j=b.getCellBorders();j&&["top","right","bottom","left"].forEach(k=>{let l=j[k];if(l&&"none"!==l.style&&l.color&&0!==l.width&&this.shouldDrawBorder(k,g,h,i,b)){let b=this.resolveBorderColor(l),g=l.width;if(a.m_oContext){switch(a.m_oContext.save(),a.m_oContext.strokeStyle=`rgba(${b.r}, ${b.g}, ${b.b}, ${(b.a||255)/255})`,a.m_oContext.lineWidth=g,a.m_oContext.beginPath(),k){case"top":a.m_oContext.moveTo(c,d),a.m_oContext.lineTo(c+e,d);break;case"right":a.m_oContext.moveTo(c+e,d),a.m_oContext.lineTo(c+e,d+f);break;case"bottom":a.m_oContext.moveTo(c,d+f),a.m_oContext.lineTo(c+e,d+f);break;case"left":a.m_oContext.moveTo(c,d),a.m_oContext.lineTo(c,d+f)}a.m_oContext.stroke(),a.m_oContext.restore()}}})}shouldDrawBorder(a,b,c,d,e=null){return d.getRowCount(),d.getColumnCount(),e&&e.gridSpan,e&&e.rowSpan,"top"!==a||0===b||(!e||!e.isMergedContinue||"continue"!==e.vMerge)&&!0}calculateCellWidths(a,b){let c=a.getTableGrid();if(!c||0===c.length){let c=a.getColumnCount();return Array(c).fill(b/c)}let d=c.map(a=>Math.max(0,parseInt(a.width)||0)),e=d.reduce((a,b)=>a+b,0)||1,f=d.map(a=>a/e*b),g=a.getColumnCount();if(f.length<g){let a=g-f.length,c=(b-f.reduce((a,b)=>a+b,0))/Math.max(a,1);for(let b=0;b<a;b++)f.push(c)}return f}calculateCellHeights(a,b){let c=a.getRowCount();if(c<=0)return[];let d=[];for(let b=0;b<c;b++){let c=a.getRow(b),e=c&&c.height,f=null!=e?Number(e):NaN;d.push(isNaN(f)?1:Math.max(f,1))}let e=d.reduce((a,b)=>a+b,0)||c;return d.map(a=>a/e*b)}isStartingCellOfMerge(a,b,c){return!0}calculateMergedCellWidth(a,b,c){let d=0;for(let e=0;e<c;e++)b+e<a.length&&(d+=a[b+e]);return d}calculateMergedCellHeight(a,b,c){let d=0;for(let e=0;e<c;e++)b+e<a.length&&(d+=a[b+e]);return d}calculateCellXOffset(a,b){let c=0;for(let d=0;d<b;d++)c+=a[d];return c}calculateCellYOffset(a,b){let c=0;for(let d=0;d<b;d++)c+=a[d];return c}resolveTableBackgroundColor(a){if(a&&a.fill){let b=this.parseColorFromHex(a.fill);if(b)return b}return{r:255,g:255,b:255,a:255}}resolveCellBackgroundColor(a){if(a&&a.fillColor)return a.fillColor;if(a&&a.fill){let b=this.parseColorFromHex(a.fill);if(b)return b}if(a&&a.color){let b=this.parseColorFromHex(a.color);if(b)return b}return{r:255,g:255,b:255,a:255}}resolveBorderColor(a){return a&&a.color?a.color:{r:0,g:0,b:0,a:255}}renderCellTextContent(a,b,c,d,e,f,g=null){if(!b.paragraphs||0===b.paragraphs.length)return;let h=[];for(let a=0;a<b.paragraphs.length;a++){let c=b.paragraphs[a];if(!c.runs||0===c.runs.length)continue;let d="left";if(c.properties&&c.properties.alignment){let a=c.properties.alignment;"center"===a||"ctr"===a?d="center":"right"===a||"r"===a?d="right":("just"===a||"justify"===a)&&(d="left")}let e=[];for(let a of c.runs){let b=a.text||"";if(!b)continue;let c=a.properties||{},d=12;c.fontSize?d=c.fontSize:c.sz&&(d=parseInt(c.sz)/100);let f=Math.max(10,Math.round(1.33*d)),g=c.fontFamily||"Arial",h=c.bold?"bold":"normal",i=c.italic?"italic":"normal",j=c.underline||!1,k=c.strikethrough||!1,l=c.color||{r:0,g:0,b:0},m=`rgb(${l.r}, ${l.g}, ${l.b})`;e.push({text:b,fontSizePx:f,fontFamily:g,fontWeight:h,fontStyle:i,underline:j,strikethrough:k,color:m})}if(0===e.length)continue;let f=Math.round(1.25*Math.max(...e.map(a=>a.fontSizePx)));h.push({runSegments:e,textAlign:d,lineHeight:f})}if(0===h.length)return;let i=h.reduce((a,b)=>a+b.lineHeight,0),j="ctr";g&&g.verticalAlignment?j=g.verticalAlignment:b.bodyProperties&&b.bodyProperties.anchor&&(j=b.bodyProperties.anchor);let k=d;if(isFinite(k="t"===j||"top"===j?d:"ctr"===j||"center"===j||"middle"===j?d+Math.max(0,(f-i)/2):"b"===j||"bottom"===j?d+Math.max(0,f-i):d+Math.max(0,(f-i)/2))||(k=d),a.m_oContext)for(let b=0;b<h.length;b++){let d=h[b],f=k+d.lineHeight/2,g=0;for(let b of(a.m_oContext.save(),d.runSegments))a.m_oContext.font=`${b.fontStyle} ${b.fontWeight} ${b.fontSizePx}px ${b.fontFamily}`,g+=a.m_oContext.measureText(b.text).width;a.m_oContext.restore();let i=c;for(let b of("center"===d.textAlign?i=c+(e-g)/2:"right"===d.textAlign&&(i=c+e-g),d.runSegments)){if(a.m_oContext.save(),a.m_oContext.fillStyle=b.color,a.m_oContext.font=`${b.fontStyle} ${b.fontWeight} ${b.fontSizePx}px ${b.fontFamily}`,a.m_oContext.textAlign="left",a.m_oContext.textBaseline="middle",a.m_oContext.fillText(b.text,i,f),b.underline){let c=a.m_oContext.measureText(b.text).width;a.m_oContext.strokeStyle=b.color,a.m_oContext.lineWidth=1,a.m_oContext.beginPath(),a.m_oContext.moveTo(i,f+.1*b.fontSizePx),a.m_oContext.lineTo(i+c,f+.1*b.fontSizePx),a.m_oContext.stroke()}if(b.strikethrough){let c=a.m_oContext.measureText(b.text).width;a.m_oContext.strokeStyle=b.color,a.m_oContext.lineWidth=1,a.m_oContext.beginPath(),a.m_oContext.moveTo(i,f),a.m_oContext.lineTo(i+c,f),a.m_oContext.stroke()}i+=a.m_oContext.measureText(b.text).width,a.m_oContext.restore()}k+=d.lineHeight}}resolveTextColor(a){if(a&&a.runs&&a.runs.length>0){for(let b of a.runs)if(b.properties&&b.properties.color)return b.properties.color}return{r:159,g:159,b:159,a:255}}drawCenteredText(a,b,c,d,e,f){a.m_oContext&&(a.m_oContext.save(),a.m_oContext.fillStyle="rgba(128, 128, 128, 0.8)",a.m_oContext.font="14px Arial",a.m_oContext.textAlign="center",a.m_oContext.textBaseline="middle",a.m_oContext.fillText(b,c+e/2,d+f/2),a.m_oContext.restore())}parseTableFromXML(a){if(!a)return null;try{let b=new DOMParser().parseFromString(a,"text/xml");if("parsererror"===b.documentElement.nodeName)return console.warn("XML parsing error in table XML"),null;let c=new CTable;if(this.tableRowData=[],this.parseTableProperties(b,c),this.parseTableGrid(b,c),this.parseTableRows(b,c),this.processTableMerges(c),!this.validateTableStructure(c)){console.warn("Table structure validation failed");try{let a=(c.getTableGrid()||[]).length;console.warn("[TableProcessor][DEBUG] Grid columns:",a);let b=c.getRows();for(let a=0;a<Math.min(b.length,6);a++){let c=b[a].getCells(),d=c.map((a,b)=>`c${b}{gs:${a.gridSpan||1},rs:${a.rowSpan||1},cont:${!!a.isMergedContinue},v:${a.vMerge||""},lc:${a.logicalColIndex||0}}`).join(" | ");console.warn(`[TableProcessor][DEBUG] Row ${a} cells(${c.length}): ${d}`)}}catch(a){}}return c}catch(a){return console.warn("Error parsing table XML:",a),null}finally{this.tableRowData=null}}parseTableProperties(a,b){let c=a.querySelector("tblPr");if(c||(c=a.querySelector("a\\:tblPr")),c){let a={},d=c.getAttribute("firstRow");("1"===d||"true"===d)&&(a.firstRow=!0);let e=c.getAttribute("bandRow");("1"===e||"true"===e)&&(a.bandRow=!0);let f=c.getAttribute("firstCol");("1"===f||"true"===f)&&(a.firstCol=!0);let g=c.getAttribute("lastRow");("1"===g||"true"===g)&&(a.lastRow=!0);let h=c.getAttribute("lastCol");("1"===h||"true"===h)&&(a.lastCol=!0);let i=c.getAttribute("bandCol");("1"===i||"true"===i)&&(a.bandCol=!0);let j=c.querySelector("tblStyle");j||(j=c.querySelector("a\\:tblStyle")),j&&(a.style=j.getAttribute("val"));let k=c.querySelector("tblBorders");k||(k=c.querySelector("a\\:tblBorders")),k&&(a.borders=this.parseTableBorders(k));let l=c.querySelector("tblShading");l||(l=c.querySelector("a\\:tblShading")),l&&(a.shading=this.parseTableShading(l));let m=c.querySelector("tblLayout");m||(m=c.querySelector("a\\:tblLayout")),m&&(a.layout=m.getAttribute("type")||"autofit");let n=c.querySelector("tblW");if(n||(n=c.querySelector("a\\:tblW")),n){let b=n.getAttribute("w"),c=n.getAttribute("type")||n.getAttribute("wtype")||"auto";b?a.preferredWidth={value:parseInt(b)||0,type:c.toLowerCase()}:a.preferredWidth={value:0,type:c.toLowerCase()}}b.tableProperties=a}}parseTableGrid(a,b){let c=a.querySelector("tblGrid");if(c||(c=a.querySelector("a\\:tblGrid")),c){let a=c.querySelectorAll("gridCol");0===a.length&&(a=c.querySelectorAll("a\\:gridCol"));let d=[];a.forEach(a=>{let b=a.getAttribute("w"),c={width:b?parseInt(b):914400,type:a.getAttribute("type")||"auto"};d.push(c)}),b.setTableGrid(d)}}parseTableRows(a,b){let c=a.querySelectorAll("tr");0===c.length&&(c=a.querySelectorAll("a\\:tr")),c.forEach((a,c)=>{let d=new CTableRow;this.parseRowProperties(a,d),this.parseRowCells(a,d,c),b.addRow(d)})}parseRowProperties(a,b){let c=a.querySelector("trPr");if(c||(c=a.querySelector("a\\:trPr")),c){let a=c.querySelector("trHeight");if(a||(a=c.querySelector("a\\:trHeight")),a){let c=parseInt(a.getAttribute("val"),10);Number.isNaN(c)||(b.height=c),b.heightRule=a.getAttribute("hRule")||"auto"}let d=c.querySelector("tblHeader");d||(d=c.querySelector("a\\:tblHeader")),d&&(b.isHeader=!0)}if((!b.height||b.height<=0)&&a){let c=a.getAttribute("h");if(null!==c){let a=parseInt(c,10);!Number.isNaN(a)&&a>0&&(b.height=a,b.heightRule||(b.heightRule="auto"))}}}parseRowCells(a,b,c){let d=a.querySelectorAll("tc");0===d.length&&(d=a.querySelectorAll("a\\:tc"));let e=a.closest("tbl")||a.closest("a\\:tbl"),f=10;if(e){let a=e.querySelector("tblGrid");if(a||(a=e.querySelector("a\\:tblGrid")),a){let b=a.querySelectorAll("gridCol");0===b.length&&(b=a.querySelectorAll("a\\:gridCol")),f=b.length}}let g=Array(f).fill(!1);if(c>0&&this.tableRowData)for(let a=0;a<c;a++){let b=this.tableRowData[a];b&&b.forEach(b=>{if(b.rowSpan>1&&a+b.rowSpan-1>=c){let a=b.logicalColIndex,c=a+(b.gridSpan||1);for(let b=a;b<c;b++)b<f&&(g[b]=!0)}})}this.tableRowData||(this.tableRowData=[]),this.tableRowData[c]=[];let h=0;d.forEach((a,d)=>{let e=a.getAttribute("vMerge"),i=a.getAttribute("gridSpan"),j=a.getAttribute("rowSpan"),k=a.getAttribute("hMerge"),l=a.querySelector("tcPr");l||(l=a.querySelector("a\\:tcPr"));let m=null;l&&(m=l.querySelector("vMerge")||l.querySelector("a\\:vMerge"));let n="1"===k||"true"===k||h>0,o=m&&"restart"!==m.getAttribute("val"),p="1"===e||"true"===e||"continue"===e||o,q=i?parseInt(i):1,r=j?parseInt(j):1;if(l){let a=l.querySelector("gridSpan")||l.querySelector("a\\:gridSpan");if(a){let b=parseInt(a.getAttribute("val"));b>1&&(q=b)}let b=l.querySelector("rowSpan")||l.querySelector("a\\:rowSpan");if(b){let a=parseInt(b.getAttribute("val"));a>1&&(r=a)}}let s=0;if(p){for(;s<f&&!g[s];)s++;s>=f&&(s=0)}else{for(;s<f&&g[s];)s++;s>=f&&(s=Math.min(d,f-1))}let t=new CTableCell;p&&(t.isMergedContinue=!0,t.vMerge="continue"),r>1&&(t.rowSpan=r),q>1&&(t.gridSpan=q);let u=n?0:p?1:q;for(let a=0;a<u&&s+a<f;a++)g[s+a]=!0;n?h>0&&h--:h=!p&&q>1?q-1:0,this.parseCellProperties(a,t,c,d),this.parseCellContent(a,t),n&&(t.isMergedContinue=!0,t.mergeParent=null),t.logicalRowIndex=c,t.logicalColIndex=s,this.tableRowData[c].push({logicalColIndex:s,gridSpan:q,rowSpan:r,isVerticalContinuation:p}),b.addCell(t)})}parseCellProperties(a,b,c,d){let e=a.querySelector("tcPr");if(e||(e=a.querySelector("a\\:tcPr")),e){let a=e.querySelector("gridSpan");a||(a=e.querySelector("a\\:gridSpan")),a&&(b.gridSpan=parseInt(a.getAttribute("val"))||1);let c=e.querySelector("rowSpan");c||(c=e.querySelector("a\\:rowSpan")),c&&(b.rowSpan=parseInt(c.getAttribute("val"))||1);let d=e.querySelector("vMerge");d||(d=e.querySelector("a\\:vMerge")),d&&(b.vMerge="restart"===d.getAttribute("val")?"start":"continue");let f=e.getAttribute("anchor");f&&(b.verticalAlignment=f);let g=e.getAttribute("vert");g&&(b.textDirection=g);let h=this.parseCellBordersFromTcPr(e);h&&(b.borders=h);let i=Array.from(e.children).find(a=>"a:solidFill"===a.tagName||"solidFill"===a.tagName);if(i)b.shading=this.parseCellShading(i);else{let a=e.querySelectorAll("solidFill, a\\:solidFill"),c=null;for(let b of a){let a=b.parentElement,d=!1;for(;a&&a!==e;){if("a:lnL"===a.tagName||"a:lnR"===a.tagName||"a:lnT"===a.tagName||"a:lnB"===a.tagName||"lnL"===a.tagName||"lnR"===a.tagName||"lnT"===a.tagName||"lnB"===a.tagName){d=!0;break}a=a.parentElement}if(!d){c=b;break}}c&&(b.shading=this.parseCellShading(c))}let j=e.querySelector("tcMar");if(j||(j=e.querySelector("a\\:tcMar")),j)b.margins=this.parseCellMargins(j);else{let a=e.getAttribute("marL"),c=e.getAttribute("marR"),d=e.getAttribute("marT"),f=e.getAttribute("marB");(a||c||d||f)&&(b.margins={left:a?parseInt(a):null,right:c?parseInt(c):null,top:d?parseInt(d):null,bottom:f?parseInt(f):null})}}}parseCellContent(a,b){let c=this.parseTextBodyFromElement(a);c&&b.setTextBody(c)}appendMergedCellText(a,b){if(!b||b.mergedContentTransferred)return;let c=b.getTextBody&&b.getTextBody();if(!c||!c.paragraphs||0===c.paragraphs.length||!a.getTextBody||!a.setTextBody)return;let d=a.getTextBody();d&&d.paragraphs?(d.paragraphs.length>0&&d.paragraphs.push({runs:[],properties:{}}),d.paragraphs.push(...c.paragraphs)):a.setTextBody({paragraphs:[...c.paragraphs]}),b.mergedContentTransferred=!0,b.setTextBody&&b.setTextBody({paragraphs:[]})}processTableMerges(a){let b=a.getRows();for(let c=0;c<b.length;c++){let d=b[c].getCells();for(let e=0;e<d.length;e++){let f=d[e];if(f.gridSpan>1&&this.processHorizontalMerge(a,c,e,f.gridSpan),f.rowSpan>1&&this.processVerticalMerge(a,c,e,f.rowSpan),"start"===f.vMerge){let d=1;for(let g=c+1;g<b.length;g++){let b=a.getCell(g,e);if(!b)break;if("continue"===b.vMerge)b.isMergedContinue=!0,b.mergeParent={row:c,col:e},this.appendMergedCellText(f,b),d++;else break}(!f.rowSpan||f.rowSpan<d)&&(f.rowSpan=d)}else if("continue"===f.vMerge&&!f.isMergedContinue)for(let b=c-1;b>=0;b--){let d=a.getCell(b,e);if(!d)break;if("start"===d.vMerge){f.isMergedContinue=!0,f.mergeParent={row:b,col:e};let a=c-b+1;(!d.rowSpan||d.rowSpan<a)&&(d.rowSpan=a);break}if("continue"!==d.vMerge)break}}}}processHorizontalMerge(a,b,c,d){for(let e=1;e<d;e++){let d=a.getCell(b,c+e);if(d){d.isMergedContinue=!0,d.mergeParent={row:b,col:c};let e=a.getCell(b,c);e&&this.appendMergedCellText(e,d)}}}processVerticalMerge(a,b,c,d){for(let e=1;e<d;e++){let d=a.getCell(b+e,c);if(d){d.isMergedContinue=!0,d.mergeParent={row:b,col:c};let e=a.getCell(b,c);e&&this.appendMergedCellText(e,d)}}}validateTableStructure(a){let b=a.getRows();if(0===b.length)return!1;let c=a.getTableGrid().length||a.getColumnCount();if(0===c)return!1;for(let a=0;a<b.length;a++){let d=b[a].getCells(),e=0;for(let a of d)a.isMergedContinue||(e+=Math.max(1,a.gridSpan||1));let f=0;if(this.tableRowData){let b=Array(c).fill(!1);for(let d=0;d<a;d++)for(let e of this.tableRowData[d]||[])if(e&&e.rowSpan>1&&d+e.rowSpan-1>=a){let a=Math.max(0,e.logicalColIndex||0),d=Math.min(c,a+Math.max(1,e.gridSpan||1));for(let c=a;c<d;c++)b[c]=!0}f=b.filter(Boolean).length}let g=Math.max(0,c-f);if(0!==g&&(e<.5*g||e>2*g)){console.warn(`Row ${a}: total span ${e} mismatches available columns ${g} (grid cols ${c}, covered from above ${f})`);try{let b=d.map((a,b)=>`c${b}{gs:${a.gridSpan||1},rs:${a.rowSpan||1},cont:${!!a.isMergedContinue},v:${a.vMerge||""},lc:${a.logicalColIndex||0}}`).join(" | ");console.warn(`[TableProcessor][DEBUG] Row ${a} cells(${d.length}): ${b}`)}catch(a){}return!1}}return!0}parseTableBorders(a){let b={};return["top","left","bottom","right","insideH","insideV"].forEach(c=>{let d=a.querySelector(c);d||(d=a.querySelector(`a\\:${c}`)),d&&(b[c]=this.parseBorderProperties(d))}),b}parseCellBordersFromTcPr(a){let b={};for(let[c,d]of Object.entries({lnL:"left",lnR:"right",lnT:"top",lnB:"bottom"})){let e=a.querySelector(c);if(e||(e=a.querySelector(`a\\:${c}`)),e){let a=parseInt(e.getAttribute("w"))||0,c=this.parseColor(e),f=a>0?Math.max(1,Math.round(this.convertEMUToPixels(a))):1;null!==c&&f>0&&(b[d]={style:"single",width:f,color:c})}}return Object.keys(b).length>0?b:null}parseCellBorders(a){return this.parseTableBorders(a)}parseBorderProperties(a){let b=this.parseColor(a),c=parseInt(a.getAttribute("w"))||0,d=0;if(c>0)d=Math.max(1,Math.round(this.convertEMUToPixels(c)));else{let b=parseInt(a.getAttribute("sz"))||0;b>0&&(d=Math.max(1,Math.round(96/72*(b/8))))}return{style:a.getAttribute("val")||"single",width:d,size:parseInt(a.getAttribute("sz"))||0,color:b,space:parseInt(a.getAttribute("space"))||0}}parseTableShading(a){return this.parseCellShading(a)}parseCellShading(a){let b=a.getAttribute("fill"),c=a.getAttribute("color"),d=null;if("a:solidFill"===a.tagName||"solidFill"===a.tagName)d=this.parseColor(a);else{let b=a.querySelector("solidFill")||a.querySelector("a\\:solidFill");b&&(d=this.parseColor(b))}return{fill:b,color:c?this.parseColorFromHex(c):null,fillColor:d}}parseCellMargins(a){let b={};return["top","left","bottom","right"].forEach(c=>{let d=a.querySelector(c);d||(d=a.querySelector(`a\\:${c}`)),d&&(b[c]=parseInt(d.getAttribute("w"))||0)}),b}extractTableStructure(a){if(!a.graphicData||!a.graphicData.tableXml)return null;try{let b=this.parseTableFromXML(a.graphicData.tableXml);if(!b)return null;return{id:a.id,name:a.name,type:"table",properties:this.extractTableProperties(b),structure:this.extractTableStructureData(b),content:this.extractTableContent(b),styling:this.extractTableStyling(b),position:a.bounds||a.properties?.transform,metadata:{rowCount:b.getRowCount(),columnCount:b.getColumnCount(),hasMergedCells:this.hasMergedCells(b),tableStyle:b.getTableProperties()?.style||"TableGrid"}}}catch(a){return console.warn("Error extracting table structure:",a),null}}extractTableProperties(a){let b=a.getTableProperties()||{};return{style:b.style||"TableGrid",layout:b.layout||"autofit",width:b.width||"auto",alignment:b.alignment||"left",borders:b.borders||{},shading:b.shading||{},spacing:{before:b.spacing?.before||0,after:b.spacing?.after||0,line:b.spacing?.line||240}}}extractTableStructureData(a){let b=a.getRows();return{grid:a.getTableGrid().map((a,b)=>({index:b,width:a.width,type:a.type||"auto"})),rows:b.map((a,b)=>({index:b,height:a.height,heightRule:a.heightRule||"auto",isHeader:a.isHeader||!1,cells:a.getCells().map((a,b)=>({index:b,gridSpan:a.gridSpan||1,rowSpan:a.rowSpan||1,vMerge:a.vMerge||null,isMergedContinue:a.isMergedContinue||!1,mergeParent:a.mergeParent||null}))}))}}extractTableContent(a){return{cells:a.getRows().map((a,b)=>a.getCells().map((a,c)=>({rowIndex:b,cellIndex:c,text:this.extractCellText(a),textBody:this.extractCellTextBody(a),content:this.extractCellContent(a)})))}}extractTableStyling(a){let b=a.getRows();return{table:{borders:a.getTableProperties()?.borders||{},shading:a.getTableProperties()?.shading||{},style:a.getTableProperties()?.style||"TableGrid"},rows:b.map((a,b)=>({index:b,height:a.height,heightRule:a.heightRule||"auto",isHeader:a.isHeader||!1})),cells:b.map((a,b)=>a.getCells().map((a,c)=>({rowIndex:b,cellIndex:c,borders:a.borders||{},shading:a.shading||{},margins:a.margins||{},verticalAlignment:a.verticalAlignment||"top",textDirection:a.textDirection||"lr"})))}}hasMergedCells(a){for(let b of a.getRows())for(let a of b.getCells())if(a.gridSpan>1||a.rowSpan>1||a.isMergedContinue)return!0;return!1}extractCellTextBody(a){let b=a.getTextBody();return b&&b.paragraphs?{paragraphs:b.paragraphs.map(a=>({properties:a.properties||{},runs:a.runs?.map(a=>({text:a.text||"",properties:a.properties||{}}))||[]}))}:null}extractCellContent(a){let b={type:"text",data:null},c=a.getTextBody();return c&&c.paragraphs&&(b.type="text",b.data=this.extractCellTextBody(a)),b}extractCellText(a){return a.textBody&&a.textBody.paragraphs?a.textBody.paragraphs.map(a=>a.runs?a.runs.map(a=>a.text||"").join(""):"").join("\n"):""}getTableData(a){return null}getAllTableData(a){let b=[];for(let c=0;c<a.length;c++){let d=a[c];if(d&&d.shapes){for(let a of d.shapes)if(a.graphicData&&"http://schemas.openxmlformats.org/drawingml/2006/table"===a.graphicData.uri){let d=this.extractTableStructure(a);d&&(d.slideIndex=c,d.shapeId=a.id,d.shapeName=a.name,b.push(d))}}}return b}parseTextBodyFromElement(a){let b=a.querySelector("txBody");if(b||(b=a.querySelector("a\\:txBody")),!b)return null;let c={paragraphs:[]};try{let a=b.querySelector("bodyPr");if(a||(a=b.querySelector("a\\:bodyPr")),a){let b={wrap:!0},d=a.getAttribute("wrap");d&&"none"===d.toLowerCase()&&(b.wrap=!1);let e=a.getAttribute("anchor");e&&(b.anchor=e);let f=a.getAttribute("rot");f&&(b.rotation=parseInt(f)||0);let g=a.getAttribute("lIns"),h=a.getAttribute("rIns"),i=a.getAttribute("tIns"),j=a.getAttribute("bIns");g&&(b.leftMargin=parseInt(g)||0),h&&(b.rightMargin=parseInt(h)||0),i&&(b.topMargin=parseInt(i)||0),j&&(b.bottomMargin=parseInt(j)||0),c.bodyProperties=b}}catch(a){}let d=b.querySelectorAll("p");return 0===d.length&&(d=b.querySelectorAll("a\\:p")),d.forEach(a=>{let b={runs:[],properties:{}},d=a.querySelector("pPr");if(d||(d=a.querySelector("a\\:pPr")),d){let a=d.getAttribute("algn");a&&(b.properties.alignment=a)}let e=a.querySelectorAll("r");0===e.length&&(e=a.querySelectorAll("a\\:r")),e.forEach(a=>{let c={text:"",properties:{}},d=a.querySelector("t");d||(d=a.querySelector("a\\:t")),d&&(c.text=d.textContent||"");let e=a.querySelector("rPr");if(e||(e=a.querySelector("a\\:rPr")),e){let a=e.querySelector("solidFill")||e.querySelector("a\\:solidFill");a&&(c.properties.color=this.parseColor(a));let b=e.getAttribute("sz");b?c.properties.fontSize=parseInt(b)/100:c.properties.fontSize=12,c.properties.bold="1"===e.getAttribute("b"),c.properties.italic="1"===e.getAttribute("i");let d=e.getAttribute("u");d&&"none"!==d&&(c.properties.underline=!0);let f=e.getAttribute("strike");f&&"noStrike"!==f&&(c.properties.strikethrough=!0);let g=e.getAttribute("typeface")||e.getAttribute("fontFamily");if(!g){let a=e.querySelector("latin")||e.querySelector("a\\:latin");a&&(g=a.getAttribute("typeface"))}g?c.properties.fontFamily=g:c.properties.fontFamily="Arial"}b.runs.push(c)}),c.paragraphs.push(b)}),c.paragraphs.length>0?c:null}parseColor(a){if(!a||a.querySelector("noFill")||a.querySelector("a\\:noFill"))return null;let b=a.querySelector("solidFill")||a.querySelector("a\\:solidFill");if(b){let a=b.querySelector("srgbClr")||b.querySelector("a\\:srgbClr");if(a){let b=a.getAttribute("val");if(b){let a=this.parseColorFromHex(b);if(a)return a}}let c=b.querySelector("schemeClr")||b.querySelector("a\\:schemeClr");if(c){let a=c.getAttribute("val"),b=this.resolveSchemeColor(a);if(b)return b}}let c=a.querySelector("srgbClr")||a.querySelector("a\\:srgbClr");if(c){let a=c.getAttribute("val");if(a){let b=this.parseColorFromHex(a);if(b)return b}}let d=a.querySelector("schemeClr")||a.querySelector("a\\:schemeClr");if(d){let a=d.getAttribute("val"),b=this.resolveSchemeColor(a);if(b)return b}let e=a.getAttribute("color");if(e){let a=this.parseColorFromHex(e);if(a)return a}return null}resolveSchemeColor(a){if(!a)return null;let b={tx1:"#000000",tx2:"#FFFFFF",bg1:"#FFFFFF",bg2:"#EEECE1",accent1:"#5B9BD5",accent2:"#ED7D31",accent3:"#A5A5A5",accent4:"#FFC000",accent5:"#4472C4",accent6:"#70AD47"}[a];return b?this.parseColorFromHex(b):null}parseColorFromHex(a){if(!a||"string"!=typeof a)return null;if(6===(a=a.replace("#","")).length){let b=parseInt(a.substring(0,2),16);return{r:b,g:parseInt(a.substring(2,4),16),b:parseInt(a.substring(4,6),16),a:255}}if(3===a.length){let b=parseInt(a.charAt(0)+a.charAt(0),16);return{r:b,g:parseInt(a.charAt(1)+a.charAt(1),16),b:parseInt(a.charAt(2)+a.charAt(2),16),a:255}}return null}convertEMUToPixels(a){return a&&"number"==typeof a?a/914400*96:3.78}cleanup(){this.tableCache.clear()}_getValidator(){return"u">typeof window&&window.DataValidator?window.DataValidator:class{validate(){return{valid:!0,errors:[]}}}}_getErrorBoundary(){return"u">typeof window&&window.ErrorBoundary?window.ErrorBoundary:class{wrap(a){return a}}}_validateConfig(a){try{let b=new(this._getValidator())({throwOnError:!1}).validate(a,{type:"object",properties:{maxTableSize:{type:"number",minimum:1,maximum:1e4},maxCellTextLength:{type:"number",minimum:1,maximum:1e5},enableCaching:{type:"boolean"},enableValidation:{type:"boolean"},renderTimeout:{type:"number",minimum:1e3,maximum:6e4}}});!b.valid&&this.logger&&this.logger.log("warn",this.constructor.name,"TableProcessor","Invalid configuration:",b.errors)}catch(a){}return a}_validateRenderInput(a,b,c,d,e,f,g){let h=[];if(a&&"object"==typeof a)for(let b of["SaveGrState","RestoreGrState","b_color1","TableRect"])"function"!=typeof a[b]&&h.push(`Graphics object missing required method: ${b}`);else h.push("Graphics object is required");return b&&"object"==typeof b||h.push("Shape object is required"),"number"==typeof c&&isFinite(c)||h.push("X coordinate must be a finite number"),"number"==typeof d&&isFinite(d)||h.push("Y coordinate must be a finite number"),("number"!=typeof e||!isFinite(e)||e<=0)&&h.push("Width must be a positive finite number"),("number"!=typeof f||!isFinite(f)||f<=0)&&h.push("Height must be a positive finite number"),g&&"object"!=typeof g&&h.push("Options must be an object"),{valid:0===h.length,errors:h}}_validateTableXML(a){if("string"!=typeof a||0===a.trim().length)throw this._createError("Table XML must be a non-empty string",{name:"ValidationError",code:"INVALID_TABLE_XML"});if(!a.includes("<")||!a.includes(">"))throw this._createError("Table XML does not appear to be valid XML",{name:"ValidationError",code:"MALFORMED_TABLE_XML"});if(!["tbl","tr","tc"].some(b=>a.includes(`<${b}`)||a.includes(`<a:${b}`)))throw this._createError("Table XML missing required table elements",{name:"ValidationError",code:"INCOMPLETE_TABLE_XML"})}_validateParsedTable(a){if(!a)throw this._createError("Parsed table is null or undefined",{name:"ValidationError",code:"NULL_PARSED_TABLE"});for(let b of["getRowCount","getColumnCount","getCell"])if("function"!=typeof a[b])throw this._createError(`Parsed table missing required method: ${b}`,{name:"ValidationError",code:"INVALID_TABLE_STRUCTURE"});let b=a.getRowCount(),c=a.getColumnCount();if(b<=0||c<=0)throw this._createError(`Invalid table dimensions: ${b}x${c}`,{name:"ValidationError",code:"INVALID_TABLE_DIMENSIONS"});if(b*c>this.config.maxTableSize)throw this._createError(`Table size ${b*c} exceeds maximum ${this.config.maxTableSize}`,{name:"ValidationError",code:"TABLE_TOO_LARGE"})}_validateTableStructure(a){try{let b=a.getRowCount(),c=a.getColumnCount();(b>100||c>50)&&this.logger&&this.logger.log("warn",this.constructor.name,"TableProcessor",`Large table detected: ${b}x${c}`);let d=0;for(let e=0;e<Math.min(b,10);e++)for(let b=0;b<c;b++){let c=a.getCell(e,b);c&&(d++,c.textBody&&"string"==typeof c.textBody&&c.textBody.length>this.config.maxCellTextLength&&this.logger&&this.logger.log("warn",this.constructor.name,"TableProcessor",`Cell text length ${c.textBody.length} exceeds maximum ${this.config.maxCellTextLength}`))}if(0===d)throw this._createError("Table has no valid cells",{name:"ValidationError",code:"EMPTY_TABLE"})}catch(a){throw this._enhanceError(a,"table_structure_validation")}}async _safeDrawTableBackgroundAndOuterBorder(a,b,c,d,e,f){try{this.drawTableBackgroundAndOuterBorder(a,b,c,d,e,f)}catch(a){this.logger&&this.logger.log("warn",this.constructor.name,"TableProcessor","Error drawing table background/border:",a)}}async _safeDrawCellsBackground(a,b,c,d,e,f){try{this.drawCellsBackground(a,b,c,d,e,f)}catch(a){this.logger&&this.logger.log("warn",this.constructor.name,"TableProcessor","Error drawing cell backgrounds:",a)}}async _safeDrawCellsContent(a,b,c,d,e,f){try{this.drawCellsContent(a,b,c,d,e,f)}catch(a){throw console.error("[TableProcessor] DETAILED ERROR drawing cell content:"),console.error("[TableProcessor] Error message:",a.message),console.error("[TableProcessor] Error stack:",a.stack),console.error("[TableProcessor] Error object:",a),this.logger&&this.logger.logError(this.constructor.name,"TableProcessor","Error drawing cell content:",a),a}}async _safeDrawCellsBorders(a,b,c,d,e,f){try{this.drawCellsBorders(a,b,c,d,e,f)}catch(a){this.logger&&this.logger.log("warn",this.constructor.name,"TableProcessor","Error drawing cell borders:",a)}}_handleValidationError(a,b){let c=`Validation failed for ${a}: ${b.join(", ")}`;return this.logger&&this.logger.logError(this.constructor.name,"TableProcessor",c),this._createError(c,{name:"ValidationError",code:"INPUT_VALIDATION_FAILED",details:{operation:a,errors:b}})}_updatePerformanceMetrics(a){this.performanceMetrics.tablesProcessed++;let b=performance.now()-a,c=this.performanceMetrics.averageRenderTime*(this.performanceMetrics.tablesProcessed-1);this.performanceMetrics.averageRenderTime=(c+b)/this.performanceMetrics.tablesProcessed,this.logger&&b>1e3&&this.logger.log("warn",this.constructor.name,"TableProcessor",`Slow table render: ${Math.round(b)}ms`)}_createError(a,b={}){let c=Error(a);return c.name=b.name||"TableProcessingError",c.code=b.code||null,c.context="TableProcessor",c.timestamp=new Date().toISOString(),c.recoverable=!1!==b.recoverable,b.details&&(c.details=b.details),c}_enhanceError(a,b,c={}){if(a.enhanced)return a;let d=a instanceof Error?a:Error(String(a));return d.operation=b,d.tableProcessorContext=c,d.timestamp=new Date().toISOString(),d.enhanced=!0,d}getPerformanceMetrics(){return{...this.performanceMetrics,cacheHitRatio:this.performanceMetrics.cacheHits/(this.performanceMetrics.cacheHits+this.performanceMetrics.cacheMisses)||0}}resetPerformanceMetrics(){this.performanceMetrics={tablesProcessed:0,cacheHits:0,cacheMisses:0,averageRenderTime:0}}};"u">typeof globalThis&&(globalThis.TableProcessor=e6);var e7={exports:{}};e7.exports,!function(){if(a6)return e7.exports;a6=1;class a{constructor(){this.type="",this.subtype="",this.is3D=!1,this.title="",this.series=[],this.categories=[],this.styling={},this.legend=null,this.axes={},this.plotArea={},this.dataLabels={},this.raw=null}}class b{constructor(){this.index=0,this.name="",this.values=[],this.categories=[],this.fill=null,this.line=null,this.marker=null,this.dataLabels=null,this.trendlines=[]}}class c{constructor(a,b={}){this.context=a,this.currentSlideContext=null;try{this.logger=new Logger("ChartProcessor")}catch(a){console.warn("[ChartProcessor] Logger initialization failed, using fallback:",a),this.logger=this._createFallbackLogger()}this.fontConfig=null}setSlideContext(a){this.currentSlideContext=a}clearSlideContext(){this.currentSlideContext=null}async parseChartFromGraphicFrame(a){try{let b=this.getShapeName(a),c=a.querySelector("graphic")||a.querySelector("a\\:graphic")||a.querySelector('[*|localName="graphic"]');if(!c)return null;let d=c.querySelector("graphicData")||c.querySelector("a\\:graphicData")||c.querySelector('[*|localName="graphicData"]');if(!d)return null;let e=d.getAttribute("uri");if("http://schemas.openxmlformats.org/drawingml/2006/chart"!==e)return null;let f=d.querySelector("chart")||d.querySelector("c\\:chart")||d.querySelector('[*|localName="chart"]');if(!f){if(d.querySelector("chartSpace, c\\:chartSpace"))return this.parseEmbeddedChartData(d,b);return null}let g=f.getAttribute("r:id");if(!g){let a=this.parseEmbeddedChartData(d,b);if(a&&this.hasRealChartData(a))return a;return null}if(!this.currentSlideContext)return{type:"DEFERRED_CHART",relationshipId:g,needsSlideContext:!0};return await this.loadChartFromRelationship(g,this.currentSlideContext)}catch(a){return this.logger.logError(this.constructor.name,"ChartProcessor","Error parsing chart from graphic frame",a),null}}parseEmbeddedChartData(b,c=null){let d=new a;try{let a=b.querySelector("chartSpace, c\\:chartSpace");if(!a)return null;return this.parseChartSpace(a,d),d}catch(a){return this.logger.logError(this.constructor.name,"ChartProcessor","Error parsing embedded chart data",a),null}}parseChartSpace(a,b){let c=a.querySelector("roundedCorners, c\\:roundedCorners");if(c){let a=c.getAttribute("val");b.roundedCorners="1"===a||"true"===a}else b.roundedCorners=!1;let d=a.querySelector("chart, c\\:chart");d&&this.parseChart(d,b);let e=Array.from(a.children||[]).find(a=>"spPr"===a.localName);e&&(b.chartSpaceShapeProperties=this.parseShapeProperties(e)),this.parsePrintSettings(a,b),this.parseExternalData(a,b)}parseChart(a,b){let c=a.querySelector("title, c\\:title");c&&(b.title=this.parseTitle(c));let d=a.querySelector("plotArea, c\\:plotArea");d&&this.parsePlotArea(d,b);let e=a.querySelector("legend, c\\:legend");e&&(b.legend=this.parseLegend(e));let f=a.querySelector("autoTitleDeleted, c\\:autoTitleDeleted");f&&"1"===f.getAttribute("val")&&(b.title=""),b.hasDataTable=!!a.querySelector("dTable, c\\:dTable")}parsePlotArea(a,b){b.plotArea=this.parsePlotAreaProperties(a);let c=!1;for(let d of["barChart","bar3DChart","colChart","col3DChart","lineChart","line3DChart","pieChart","pie3DChart","doughnutChart","areaChart","area3DChart","scatterChart","bubbleChart","radarChart","stockChart","surfaceChart","surface3DChart","waterfallChart","comboChart","sunburstChart","treemapChart","histogramChart","boxWhiskerChart"])for(let e of a.querySelectorAll(`${d}, c\\:${d}`))if(c){let a=this.normalizeChartType(d),c=e.querySelectorAll("ser, c\\:ser");for(let d=0;d<c.length;d++){let e=this.parseSeries(c[d],a);e&&(e.seriesType=a,e.isSecondaryAxis=!0,b.series.push(e))}b.isCombo=!0}else this.parseSpecificChart(e,d,b),c=!0;this.parseAxes(a,b);let d=a.querySelector("dLbls, c\\:dLbls");d&&(b.dataLabels=this.parseDataLabels(d),b.dataLabels&&b.dataLabels.showValue&&(b.showDataLabels=!0))}parseSpecificChart(a,b,c){c.rawType=b,c.is3D=b.includes("3D"),this.parseChartSubtype(a,c),c.type=this.normalizeChartType(c.rawType,c);let d=a.querySelector("dLbls, c\\:dLbls");d&&(c.dataLabels=this.parseDataLabels(d),c.dataLabels&&c.dataLabels.showValue&&(c.showDataLabels=!0));let e=a.querySelectorAll("ser, c\\:ser");for(let a=0;a<e.length;a++){let b=e[a],d=this.parseSeries(b,c.type);if(d){try{let a=b.querySelectorAll("dPt, c\\:dPt");a&&a.length>0&&(d.pointFills=[],a.forEach(a=>{let b=a.querySelector("idx, c\\:idx"),c=a.querySelector("spPr, c\\:spPr");if(b&&c){let a=parseInt(b.getAttribute("val"));if(!isNaN(a)){let b=this.parseShapeProperties(c);b&&b.fill&&(d.pointFills[a]=b.fill)}}}))}catch(a){this.logger.log("warn",this.constructor.name,"Error parsing data point formatting (dPt):",a)}!d.dataLabels&&c.dataLabels?d.dataLabels={...c.dataLabels}:d.dataLabels,c.series.push(d)}}try{if("pie"===c.type||"doughnut"===c.type){let b=a.querySelector("firstSliceAng, c\\:firstSliceAng");if(b){let a=parseInt(b.getAttribute("val"));isNaN(a)||(c.firstSliceAng=a)}let d=a.querySelector("holeSize, c\\:holeSize");if(d){let a=parseInt(d.getAttribute("val"));isNaN(a)||(c.holeSize=a)}}if("waterfall"===c.type){c.waterfallType="standard";let b=a.querySelectorAll("subtotal, c\\:subtotal");b.length>0&&(c.subtotals=[],b.forEach(a=>{let b=a.getAttribute("val");b&&c.subtotals.push({value:b})}))}if("combo"===c.type&&(c.comboTypes=[],["barChart","lineChart","areaChart","scatterChart"].forEach(b=>{a.querySelector(`${b}, c\\:${b}`)&&c.comboTypes.push(this.normalizeChartType(b))})),"radar"===c.type){let b=a.querySelector("radarStyle, c\\:radarStyle");b?c.radarStyle=b.getAttribute("val")||"standard":c.radarStyle="standard"}if("bubble"===c.type){let b=a.querySelector("bubble3D, c\\:bubble3D");b&&(c.bubble3D="1"===b.getAttribute("val"));let d=a.querySelector("bubbleScale, c\\:bubbleScale");if(d){let a=parseInt(d.getAttribute("val"));isNaN(a)||(c.bubbleScale=a)}}}catch(a){this.logger.log("warn",this.constructor.name,"Error parsing chart type-specific properties:",a)}0===c.categories.length&&c.series.length>0&&(c.categories=[...c.series[0].categories]),c.series.length>0&&c.series[0].categoryFormatCode&&(c.categoryFormatCode=c.series[0].categoryFormatCode),c.series.length>0&&c.series[0].outerCategoryLevels&&(c.outerCategoryLevels=c.series[0].outerCategoryLevels)}parseSeries(a,c){let d=new b;try{let b=a.querySelector("idx, c\\:idx");b&&(d.index=parseInt(b.getAttribute("val"))||0);let c=a.querySelector("tx, c\\:tx");c&&(d.name=this.parseSeriesText(c));let e=a.querySelector("cat, c\\:cat"),f=a.querySelector("xVal, c\\:xVal");if(e){d.categories=this.parseSeriesData(e);let a=e.querySelector("numRef, c\\:numRef");if(a){let b=a.querySelector("numCache, c\\:numCache");if(b){let a=b.querySelector("formatCode, c\\:formatCode");a&&a.textContent&&(d.categoryFormatCode=a.textContent.trim())}}let b=e.querySelector("multiLvlStrRef, c\\:multiLvlStrRef");b&&(d.outerCategoryLevels=this.parseOuterCategoryLevels(b,d.categories.length))}else f&&(d.categories=this.parseSeriesData(f));let g=a.querySelector("val, c\\:val"),h=a.querySelector("yVal, c\\:yVal");g?d.values=this.parseSeriesData(g):h&&(d.values=this.parseSeriesData(h));let i=a.querySelector("bubbleSize, c\\:bubbleSize");i&&(d.bubbleSizes=this.parseSeriesData(i)),d.fill=this.parseSeriesFill(a),d.line=this.parseSeriesLine(a),d.marker=this.parseSeriesMarker(a);let j=a.querySelector("spPr, c\\:spPr");if(j){let a=this.parseShapeProperties(j);a.outerShadow&&(d.outerShadow=a.outerShadow)}let k=a.querySelector("smooth, c\\:smooth");d.smooth=!!k&&"1"===k.getAttribute("val"),d.fill&&"noFill"!==d.fill&&(void 0!==d.fill.r||"string"==typeof d.fill)?d.color=d.fill:d.line&&(void 0!==d.line.r||"string"==typeof d.line)&&(d.color=d.line);let l=a.querySelector("dLbls, c\\:dLbls");if(l&&(d.dataLabels=this.parseDataLabels(l),d.dataLabels&&d.dataLabels.formatting&&d.dataLabels.formatting.font)){let a=d.dataLabels.formatting.font;a.size&&!a.fontSize&&(a.fontSize=a.size,delete a.size)}return d}catch(a){return this.logger.logError(this.constructor.name,"ChartProcessor","Error parsing series",a),null}}parseSeriesData(a){try{let b=a.querySelector("numRef, c\\:numRef"),c=a.querySelector("strRef, c\\:strRef"),d=a.querySelector("multiLvlStrRef, c\\:multiLvlStrRef"),e=a.querySelector("numLit, c\\:numLit"),f=a.querySelector("strLit, c\\:strLit");if(b)return this.parseNumberReference(b);if(c)return this.parseStringReference(c);if(d)return this.parseMultiLevelStringReference(d);else if(e)return this.parseNumberLiteral(e);else if(f)return this.parseStringLiteral(f)}catch(a){this.logger.logError(this.constructor.name,"ChartProcessor","Error parsing series data",a)}return[]}parseNumberReference(a){let b=[],c=a.querySelector("numCache, c\\:numCache");if(c)for(let a of c.querySelectorAll("pt, c\\:pt")){let c=a.querySelector("v, c\\:v");if(c){let a=parseFloat(c.textContent);b.push(isNaN(a)?0:a)}}return b}parseStringReference(a){let b=[],c=a.querySelector("strCache, c\\:strCache");if(c)for(let a of c.querySelectorAll("pt, c\\:pt")){let c=a.querySelector("v, c\\:v");c&&b.push(c.textContent||"")}return b}parseMultiLevelStringReference(a){let b=[];try{let c=a.querySelector("multiLvlStrCache, c\\:multiLvlStrCache");if(c){let a=c.querySelectorAll("lvl, c\\:lvl"),d=a.length>0?a[0]:null;if(d)for(let a of d.querySelectorAll("pt, c\\:pt")){let c=a.querySelector("v, c\\:v");c&&b.push(c.textContent||"")}}return b}catch(a){return this.logger.logError(this.constructor.name,"ChartProcessor","Error parsing multi-level string reference",a),[]}}parseOuterCategoryLevels(a,b){try{let c=a.querySelector("multiLvlStrCache, c\\:multiLvlStrCache");if(!c)return null;let d=c.querySelectorAll("lvl, c\\:lvl");if(d.length<2)return null;let e=[];for(let a=1;a<d.length;a++){let c=d[a].querySelectorAll("pt, c\\:pt"),f=[],g=null;for(let a of c){let c=parseInt(a.getAttribute("idx")),d=a.querySelector("v, c\\:v"),e=d?(d.textContent||"").trim():"";e&&(g&&(g.endIndex=c-1),g={label:e,startIndex:c,endIndex:b-1},f.push(g))}f.length>0&&e.push(f)}return e.length>0?e:null}catch(a){return null}}parseNumberLiteral(a){let b=[];for(let c of a.querySelectorAll("pt, c\\:pt")){let a=c.querySelector("v, c\\:v");if(a){let c=parseFloat(a.textContent);b.push(isNaN(c)?0:c)}}return b}parseStringLiteral(a){let b=[];for(let c of a.querySelectorAll("pt, c\\:pt")){let a=c.querySelector("v, c\\:v");a&&b.push(a.textContent||"")}return b}parseSeriesText(a){let b=a.querySelector("strRef, c\\:strRef");if(b){let a=b.querySelector("strCache, c\\:strCache");if(a){let b=a.querySelector("pt, c\\:pt");if(b){let a=b.querySelector("v, c\\:v");if(a)return a.textContent||""}}}let c=a.querySelector("v, c\\:v");return c&&c.textContent||""}normalizeChartType(a,b=null){let c={barChart:"bar",bar3DChart:"bar",colChart:"column",col3DChart:"column",lineChart:"line",line3DChart:"line",pieChart:"pie",pie3DChart:"pie",doughnutChart:"doughnut",areaChart:"area",area3DChart:"area",scatterChart:"scatter",bubbleChart:"bubble",radarChart:"radar",stockChart:"stock",surfaceChart:"surface",surface3DChart:"surface",waterfallChart:"waterfall",comboChart:"combo",sunburstChart:"sunburst",treemapChart:"treemap",histogramChart:"histogram",boxWhiskerChart:"boxWhisker"}[a]||a;return("barChart"===a||"bar3DChart"===a)&&b&&b.barDirection&&("col"===b.barDirection?c="column":"bar"===b.barDirection&&(c="bar")),c}hasRealChartData(a){if(!a||!a.series||0===a.series.length)return!1;let b=a.series[0];if(!b.values||0===b.values.length)return!1;let c=[4500,5200,4800,6100,5900];return!(b.values.length===c.length&&b.values.every((a,b)=>a===c[b]))}createPlaceholderChart(c,d=null){let e=new a;e.type="line",e.title={text:d||"Chart",formatting:{font:{fontFamily:"Calibri",fontSize:16,bold:!0},color:{r:0,g:0,b:0},alignment:"center"}},e.subtitle="Quarterly Revenue Trends 2023-2024",e.categories=["Q1 2023","Q2 2023","Q3 2023","Q4 2023","Q1 2024"];let f=new b;return f.index=0,f.name="Sales Trend",f.values=[4500,5200,4800,6100,5900],f.categories=[...e.categories],e.series.push(f),e.axes={category:{id:"catAx1",type:"category",position:"bottom",title:"Time Period",scaling:{min:null,max:null,orientation:"minMax"},tickMarks:{major:"outside",minor:"none"},tickLabels:{position:"nextTo",rotation:null,format:null},gridlines:{major:!0,minor:!1},visible:!0,crosses:"autoZero"},value:{id:"valAx1",type:"value",position:"left",title:"Revenue ($000s)",scaling:{min:0,max:7e3,orientation:"minMax"},tickMarks:{major:"outside",minor:"none"},tickLabels:{position:"nextTo",format:{formatCode:"#,##0",sourceLinked:!1}},gridlines:{major:!0,minor:!1},visible:!0,crosses:"autoZero"},series:null},e.legend={position:"b",overlay:!1,visible:!0,legendPos:"b"},e.dataLabels={showValue:!0,showCategoryName:!1,showSeriesName:!1,showPercent:!1,position:"above",formatting:{font:{fontFamily:"Arial",fontSize:9,bold:!0},color:{r:60,g:60,b:60},number:{formatCode:"#,##0",sourceLinked:!1}},separator:", ",delete:!1},e.showDataLabels=!0,e.styling={chartArea:{proportions:{width:.85,height:.75}},plotArea:{margins:{left:80,right:20,top:20,bottom:70}}},e}extractChartData(a,b={}){try{if(!a)throw Error("Shape parameter is required");let c=null;if("graphicFrame"===a.type)c=this.parseChartFromGraphicFrame(a.element||a);else if(a.graphicData)if(!a.graphicData.element)return null;else c=this.parseEmbeddedChartData(a.graphicData.element,a.name);else c=a.tagName?this.parseChartFromGraphicFrame(a):this.extractFromRawData(a,b);if(c&&this.validateChartData(c,b)&&this.hasRealChartData(c))return c;return this.logger.log("warn",this.constructor.name,"Chart data extraction failed validation or contains hardcoded data"),null}catch(a){if(this.logger.logError(this.constructor.name,"ChartProcessor","Error extracting chart data",a),console.error("[ChartProcessor] Error extracting chart data",a),b.throwOnError)throw a;return null}}validateChartData(b,c={}){try{if(!b||!(b instanceof a)&&(this.logger.log("warn",this.constructor.name,"Chart data is not an instance of ChartData class"),c.strict))return!1;let d={hasType:this.validateChartType(b.type),hasSeries:this.validateChartSeries(b.series),hasValidData:this.validateChartDataContent(b),hasValidStructure:this.validateChartStructure(b)};if(!["hasType","hasSeries","hasValidData"].every(a=>d[a]))return this.logger.log("warn",this.constructor.name,"Chart data failed required validation checks:",{type:d.hasType,series:d.hasSeries,data:d.hasValidData}),!1;if(c.strict&&!d.hasValidStructure)return this.logger.log("warn",this.constructor.name,"Chart data failed strict structure validation"),!1;return!0}catch(a){return this.logger.logError(this.constructor.name,"ChartProcessor","Error validating chart data",a),!1}}validateChartType(a){return"string"==typeof a&&a.length>0&&["area","bar","bar3d","bubble","doughnut","line","pie","radar","scatter","stock","surface","waterfall","combo","sunburst","treemap","histogram","boxWhisker"].includes(a.toLowerCase())}validateChartSeries(a){return!!Array.isArray(a)&&0!==a.length&&a.every(a=>this.validateSingleSeries(a))}validateSingleSeries(a){if(!a)return!1;let b="number"==typeof a.index&&a.index>=0,c=Array.isArray(a.values)&&a.values.length>0,d="string"==typeof a.name,e=this.validateSeriesDataConsistency(a);return b&&c&&d&&e}validateSeriesDataConsistency(a){if(!a.values||0===a.values.length)return!1;let b=a.values.every(a=>"number"==typeof a&&!isNaN(a)&&isFinite(a)),c=!0;return a.categories&&a.categories.length>0&&(c=a.categories.length===a.values.length),b&&c}validateChartDataContent(a){return!!a.series&&0!==a.series.length&&a.series.some(a=>a.values&&a.values.length>0&&a.values.some(a=>0!==a&&null!=a))}validateChartStructure(a){try{if(this.hasCircularReferences(a))return!1;let b="string"==typeof a.type&&Array.isArray(a.series)&&Array.isArray(a.categories),c=a.series.every(a=>a&&"number"==typeof a.index&&Array.isArray(a.values));return b&&c}catch(a){return this.logger.logError(this.constructor.name,"ChartProcessor","Error validating chart structure",a),!1}}hasCircularReferences(a,b=new Set){if(null===a||"object"!=typeof a)return!1;if(b.has(a))return!0;b.add(a);try{for(let c in a)if(a.hasOwnProperty(c)&&this.hasCircularReferences(a[c],b))return!0}catch(a){return!0}return b.delete(a),!1}extractFromRawData(c,d={}){try{let d=new a;return c.type&&(d.type=this.normalizeChartType(c.type)),c.title&&(d.title=String(c.title)),c.series&&Array.isArray(c.series)&&(d.series=c.series.map((a,c)=>{let d=new b;return d.index=a.index||c,d.name=a.name||`Series ${c+1}`,d.values=Array.isArray(a.values)?a.values:[],d.categories=Array.isArray(a.categories)?a.categories:[],d})),c.categories&&Array.isArray(c.categories)&&(d.categories=c.categories),d}catch(a){return this.logger.logError(this.constructor.name,"ChartProcessor","Error extracting from raw data",a),null}}parseTitle(a){try{let b={text:"",formatting:{font:{fontFamily:"Calibri",fontSize:16,bold:!1},color:{r:0,g:0,b:0},alignment:"center"},overlay:!1,position:"top"},c=a.querySelector("tx, c\\:tx");if(c&&(b.text=this.parseRichText(c)),!b.text){let c=a.querySelector("v, c\\:v");c&&(b.text=c.textContent||"")}if(!b.text){let c=a.querySelector("rich, c\\:rich");c&&(b.text=this.parseRichTextBody(c))}if(!b.text){let c=a.querySelectorAll("t, c\\:t, a\\:t");c.length>0&&(b.text=Array.from(c).map(a=>a.textContent||"").join(" ").trim())}let d=a.querySelector("txPr, c\\:txPr");if(d){let a=this.parseTextProperties(d);if(a){let c={...b.formatting.font||{},...a.font||{}};b.formatting={...b.formatting,...a,font:c},b.formatting.font&&b.formatting.font.size&&!b.formatting.font.fontSize&&(b.formatting.font.fontSize=b.formatting.font.size,delete b.formatting.font.size)}}let e=this.extractFontFromElement(a);if(e){let{color:a,...c}=e;b.formatting.font={...b.formatting.font||{},...c},a&&(b.formatting.color=a)}let f=a.querySelector("layout, c\\:layout");if(f){let a=f.querySelector("manualLayout, c\\:manualLayout");a&&(b.position=this.parseManualLayout(a))}let g=a.querySelector("overlay, c\\:overlay");return g&&(b.overlay="1"===g.getAttribute("val")),b}catch(a){return this.logger.log("warn",this.constructor.name,"Error parsing title:",a),""}}parseLegend(a){try{let b={position:"right",overlay:!1,visible:!0},c=a.querySelector("legendPos, c\\:legendPos");if(c){let a=c.getAttribute("val");a&&(b.position=a)}let d=a.querySelector("overlay, c\\:overlay");return d&&(b.overlay="1"===d.getAttribute("val")),b}catch(a){return this.logger.log("warn",this.constructor.name,"Error parsing legend:",a),{}}}parsePlotAreaProperties(a){try{let b={},c=a.querySelector("layout, c\\:layout");c&&(b.layout=this.parseLayout(c));let d=null;for(let b=0;b<a.childNodes.length;b++){let c=a.childNodes[b],e=c.tagName||c.localName||"";if("spPr"===e||"c:spPr"===e||e.endsWith(":spPr")){d=c;break}}return d&&(b.shapeProperties=this.parseShapeProperties(d)),b}catch(a){return this.logger.log("warn",this.constructor.name,"Error parsing plot area properties:",a),{}}}parseChartSubtype(a,b){try{let c=a.querySelector("grouping, c\\:grouping");c?b.subtype=c.getAttribute("val")||"clustered":"area"===b.type?b.subtype="standard":"bar"===b.type||"column"===b.type?b.subtype="clustered":"line"===b.type&&(b.subtype="standard");let d=a.querySelector("barDir, c\\:barDir");d&&(b.barDirection=d.getAttribute("val")||"col");let e=a.querySelector("gapWidth, c\\:gapWidth");e&&(b.gapWidth=parseInt(e.getAttribute("val"))||150);let f=a.querySelector("scatterStyle, c\\:scatterStyle");f&&(b.scatterStyle=f.getAttribute("val")||"marker"),"area"!==b.type||b.subtype||(b.subtype="standard"),"area"===b.type&&b.subtype}catch(a){this.logger.log("warn",this.constructor.name,"Error parsing chart subtype:",a),"area"===b.type&&(b.subtype="standard")}}parseAxes(a,b){try{b.axes={category:null,value:null,series:null};let c=a.querySelector("catAx, c\\:catAx"),d=a.querySelector("dateAx, c\\:dateAx");c?b.axes.category=this.parseAxis(c):d&&(b.axes.category=this.parseAxis(d));let e=a.querySelectorAll("valAx, c\\:valAx");if(e.length>0&&(b.axes.value=this.parseAxis(e[0])),e.length>1){let a=e[1],c=a.querySelector("c\\:axPos")||a.querySelector("axPos"),d=c?c.getAttribute("val"):"l";if("r"===d||"t"===d)b.hasSecondaryAxis=!0,b.axes.valueSecondary=this.parseAxis(e[1]);else if("scatter"===b.type){let a=e[0],c=a.querySelector("c\\:axPos")||a.querySelector("axPos"),d=c?c.getAttribute("val"):"l";("b"===d||"t"===d)&&(b.axes.category=this.parseAxis(e[0]),b.axes.value=this.parseAxis(e[1]))}else b.axes.valueSecondary=this.parseAxis(e[1])}let f=a.querySelector("serAx, c\\:serAx");f&&(b.axes.series=this.parseAxis(f))}catch(a){this.logger.log("warn",this.constructor.name,"Error parsing axes:",a)}}parseSeriesFill(a){try{let b=a.querySelector("spPr, c\\:spPr");if(b){let a=this.parseShapeProperties(b);if(a.noFill)return"noFill";return a.fill}return null}catch(a){return this.logger.log("warn",this.constructor.name,"Error parsing series fill:",a),null}}parseSeriesLine(a){try{let b=a.querySelector("spPr, c\\:spPr");if(b)return this.parseShapeProperties(b).line;return null}catch(a){return this.logger.log("warn",this.constructor.name,"Error parsing series line:",a),null}}parseSeriesMarker(a){try{let b=a.querySelector("marker, c\\:marker");if(b)return{symbol:this.parseMarkerSymbol(b),size:this.parseMarkerSize(b),fill:this.parseMarkerFill(b),line:this.parseMarkerLine(b)};return null}catch(a){return this.logger.log("warn",this.constructor.name,"Error parsing series marker:",a),null}}parseDataLabels(a){try{let b={showValue:!1,showCategoryName:!1,showSeriesName:!1,showPercent:!1,showBubbleSize:!1,showLeaderLines:!1,position:"center",separator:null,formatting:{font:null,color:null,number:null},delete:!1},c=a.querySelector("showVal, c\\:showVal");c&&(b.showValue="0"!==c.getAttribute("val"));let d=a.querySelector("showCatName, c\\:showCatName");d&&(b.showCategoryName="0"!==d.getAttribute("val"));let e=a.querySelector("showSerName, c\\:showSerName");e&&(b.showSeriesName="0"!==e.getAttribute("val"));let f=a.querySelector("showPercent, c\\:showPercent");f&&(b.showPercent="0"!==f.getAttribute("val"));let g=a.querySelector("showBubbleSize, c\\:showBubbleSize");g&&(b.showBubbleSize="0"!==g.getAttribute("val"));let h=a.querySelector("showLeaderLines, c\\:showLeaderLines");h&&(b.showLeaderLines="0"!==h.getAttribute("val"));let i=a.querySelector("separator, c\\:separator");i&&(b.separator=i.textContent||", ");let j=a.querySelector("dLblPos, c\\:dLblPos");j&&(b.position=j.getAttribute("val")||"center");let k=a.querySelector("delete, c\\:delete");k&&(b.delete="1"===k.getAttribute("val"));let l=a.querySelector("numFmt, c\\:numFmt");l&&(b.formatting.number={formatCode:l.getAttribute("formatCode")||"#,##0",sourceLinked:"1"===l.getAttribute("sourceLinked")});let m=a.querySelector("txPr, c\\:txPr");if(m){let a=m.querySelector("defRPr, a\\:defRPr");if(a){b.formatting.font||(b.formatting.font={}),this.parseRunProperties(a,b.formatting.font),b.formatting.font.fontFamily||(b.formatting.font.fontFamily="Arial"),b.formatting.font.fontSize||(b.formatting.font.fontSize=9),(null===b.formatting.font.bold||void 0===b.formatting.font.bold)&&(b.formatting.font.bold=!0);let c=a.querySelector("solidFill, a\\:solidFill");c&&(b.formatting.color=this.parseColorElement(c))}}let n=a.querySelector("spPr, c\\:spPr");if(n&&(b.formatting.shape=this.parseShapeProperties(n)),b.formatting&&b.formatting.font){let a=b.formatting.font;a.size&&!a.fontSize&&(a.fontSize=a.size,delete a.size)}return b}catch(a){return this.logger.log("warn",this.constructor.name,"Error parsing data labels:",a),null}}parsePrintSettings(a,b){try{let c=a.querySelector("printSettings, c\\:printSettings");c&&(b.printSettings={headerFooter:this.parsePrintHeaderFooter(c),pageMargins:this.parsePrintMargins(c),pageSetup:this.parsePrintPageSetup(c)})}catch(a){this.logger.log("warn",this.constructor.name,"Error parsing print settings:",a)}}parseExternalData(a,b){try{let c=a.querySelector("externalData, c\\:externalData");c&&(b.externalData={id:c.getAttribute("r:id"),autoUpdate:"1"===c.getAttribute("autoUpdate")})}catch(a){this.logger.log("warn",this.constructor.name,"Error parsing external data:",a)}}parseLayout(a){return{}}parseShapeProperties(a){try{let b={fill:null,line:null};if(!a)return b;let c=!1;for(let d=0;d<a.childNodes.length&&!c;d++){let e=a.childNodes[d],f=(e.localName||e.tagName||"").replace(/^[^:]+:/,"");if("noFill"===f)b.fill=null,b.noFill=!0,c=!0;else if("solidFill"===f)b.fill=this.parseColorElement(e),c=!0;else if("gradFill"===f){let a=e.querySelector("gs, a\\:gs");if(a){let c=a.querySelector("solidFill, a\\:solidFill");c&&(b.fill=this.parseColorElement(c))}c=!0}else if("pattFill"===f){let a=e.querySelector("fgClr, a\\:fgClr");if(a){let c=a.querySelector("solidFill, a\\:solidFill, srgbClr, a\\:srgbClr");c&&(b.fill=this.parseColorElement(c))}c=!0}}let d=a.querySelector("effectLst, a\\:effectLst");if(d){let a=d.querySelector("outerShdw, a\\:outerShdw");if(a){let c=parseInt(a.getAttribute("blurRad"))||0,d=parseInt(a.getAttribute("dist"))||0,e=parseInt(a.getAttribute("dir"))||0,f=a.querySelector("srgbClr, a\\:srgbClr"),g="#000000",h=1;if(f){g="#"+(f.getAttribute("val")||"000000");let a=f.querySelector("alpha, a\\:alpha");a&&(h=(parseInt(a.getAttribute("val"))||1e5)/1e5)}b.outerShadow={blurRad:c,dist:d,dir:e,color:g,alpha:h}}}let e=a.querySelector("ln, a\\:ln");if(e)if(b.line={width:parseInt(e.getAttribute("w"))||1,color:null,style:"solid",noFill:!1},e.querySelector("noFill, a\\:noFill"))b.line.noFill=!0;else{let a=e.querySelector("solidFill, a\\:solidFill");a&&(b.line.color=this.parseColorElement(a))}return b}catch(a){return this.logger.log("warn",this.constructor.name,"Error parsing shape properties:",a),{fill:null,line:null}}}parseRunProperties(a,b){try{let c=a.querySelector("latin, a\\:latin");c&&(b.fontFamily=c.getAttribute("typeface")||b.fontFamily);let d=a.getAttribute("sz");d&&(b.fontSize=this.convertPptxFontSize(d,"hundredths"));let e=a.getAttribute("b");null!==e&&(b.bold="0"!==e&&"false"!==e);let f=a.getAttribute("i");null!==f&&(b.italic="0"!==f&&"false"!==f);let g=a.getAttribute("u");null!==g&&(b.underline="none"!==g&&"0"!==g);let h=a.getAttribute("strike");null!==h&&(b.strikethrough="noStrike"!==h&&"0"!==h)}catch(a){this.logger.log("warn",this.constructor.name,"Error parsing run properties:",a)}}convertPptxFontSize(a,b="points"){let c,d=Number(a);if(isNaN(d)||d<=0)return 11;switch(b){case"hundredths":c=d/100;break;case"emu":c=d/12700;break;case"twips":c=d/20;break;default:c=d}return Math.max(6,Math.min(120,Math.round(c)))}extractFontFromElement(a){try{let b={fontFamily:null,fontSize:null,bold:null,italic:null,color:null},c=a.querySelector("txPr, c\\:txPr");if(c){let a=this.parseTextProperties(c);a&&a.font&&(Object.assign(b,a.font),a.color&&(b.color=a.color))}let d=a.querySelector("defRPr, a\\:defRPr");if(d){this.parseRunProperties(d,b);let a=d.querySelector("solidFill, a\\:solidFill");a&&(b.color=this.parseColorElement(a))}let e=a.querySelector("rPr, a\\:rPr");e&&this.parseRunProperties(e,b);let f={};return Object.keys(b).forEach(a=>{null!==b[a]&&void 0!==b[a]&&(f[a]=b[a])}),Object.keys(f).length>0?f:null}catch(a){return this.logger.log("warn",this.constructor.name,"Error extracting font from element:",a),null}}parseAxis(a){try{let b={id:null,type:"category",position:"bottom",title:null,scaling:{min:null,max:null,logBase:null,orientation:"minMax"},tickMarks:{major:"outside",minor:"none"},tickLabels:{position:"nextTo",rotation:null,format:null},gridlines:{major:!0,minor:!1},visible:!0,crosses:"autoZero"},c=a.querySelector("axId, c\\:axId");c&&(b.id=c.getAttribute("val"));let d=a.querySelector("axPos, c\\:axPos");d&&(b.position=d.getAttribute("val")||"bottom");let e=a.querySelector("title, c\\:title");if(e){let a=this.parseTitle(e);"string"==typeof a?b.title={text:a,formatting:{font:{fontFamily:"Calibri",fontSize:12,bold:!0},color:{r:68,g:68,b:68}}}:b.title=a}let f=a.querySelector("txPr, c\\:txPr");if(f){b.tickLabels.formatting=this.parseTextProperties(f);let a=f.querySelector("bodyPr, a\\:bodyPr");if(a){let c=a.getAttribute("rot");c&&(b.tickLabels.rotation=parseInt(c)/6e4)}}else{let c=this.extractFontFromElement(a);c&&(b.tickLabels.formatting={font:c,color:c.color||{r:68,g:68,b:68}})}let g=a.querySelector("scaling, c\\:scaling");g&&(b.scaling=this.parseAxisScaling(g));let h=a.querySelector("majorTickMark, c\\:majorTickMark");h&&(b.tickMarks.major=h.getAttribute("val")||"outside");let i=a.querySelector("minorTickMark, c\\:minorTickMark");i&&(b.tickMarks.minor=i.getAttribute("val")||"none");let j=a.querySelector("tickLblPos, c\\:tickLblPos");j&&(b.tickLabels.position=j.getAttribute("val")||"nextTo");let k=a.querySelector("majorGridlines, c\\:majorGridlines");if(k){b.gridlines.major=!0;let a=k.querySelector("prstDash, a\\:prstDash");if(a){let c=a.getAttribute("val")||"solid";b.gridlines.dash="solid"!==c&&"sysDot"!==c?c:null}let c=k.querySelector("srgbClr, a\\:srgbClr");c&&(b.gridlines.color="#"+(c.getAttribute("val")||"888888"))}a.querySelector("minorGridlines, c\\:minorGridlines")&&(b.gridlines.minor=!0);let l=a.querySelector("numFmt, c\\:numFmt");l&&(b.tickLabels.format={formatCode:l.getAttribute("formatCode"),sourceLinked:"1"===l.getAttribute("sourceLinked")});let m=a.querySelector("delete, c\\:delete")||a.getElementsByTagName("c:delete")[0]||a.getElementsByTagName("delete")[0];if(m){let a=m.getAttribute("val");("1"===a||"true"===a)&&(b.visible=!1)}let n=a.querySelector("majorUnit, c\\:majorUnit");n&&null===b.scaling.majorUnit&&(b.scaling.majorUnit=parseFloat(n.getAttribute("val")));let o=a.querySelector("minorUnit, c\\:minorUnit");o&&null===b.scaling.minorUnit&&(b.scaling.minorUnit=parseFloat(o.getAttribute("val")));let p=a.querySelector("dispUnits, c\\:dispUnits");if(p){let a=p.querySelector("builtInUnit, c\\:builtInUnit"),c=p.querySelector("custUnit, c\\:custUnit");a?b.scaling.displayUnit=({hundreds:100,thousands:1e3,tenOfThousands:1e4,hundredsOfThousands:1e5,millions:1e6,tenOfMillions:1e7,hundredsOfMillions:1e8,billions:1e9,trillions:1e12})[a.getAttribute("val")]||1:c&&(b.scaling.displayUnit=parseFloat(c.getAttribute("val"))||1)}let q=a.querySelector("crosses, c\\:crosses");q&&(b.crosses=q.getAttribute("val")||"autoZero");let r=a.tagName.toLowerCase();return r.includes("catax")?b.type="category":r.includes("valax")?b.type="value":r.includes("serax")?b.type="series":r.includes("dateax")&&(b.type="date"),b}catch(a){return this.logger.log("warn",this.constructor.name,"Error parsing axis:",a),{id:null,type:"category",position:"bottom",visible:!0}}}parseMarkerSymbol(a){let b=a.querySelector("symbol, c\\:symbol");return b?b.getAttribute("val"):"circle"}parseMarkerSize(a){let b=a.querySelector("size, c\\:size");return b?parseInt(b.getAttribute("val")):5}parseMarkerFill(a){try{let b=a.querySelector("spPr, c\\:spPr");if(b){if(b.querySelector("noFill, a\\:noFill"))return"noFill";let a=b.querySelector("solidFill, a\\:solidFill");if(a)return this.parseColorElement(a)}return null}catch(a){return null}}parseMarkerLine(a){try{let b=a.querySelector("spPr, c\\:spPr");if(b){let a=b.querySelector("ln, a\\:ln");if(a){let b=a.querySelector("solidFill, a\\:solidFill");return b?{color:this.parseColorElement(b),width:parseInt(a.getAttribute("w"))||9525}:null}}return null}catch(a){return null}}parsePrintHeaderFooter(a){return{}}parsePrintMargins(a){return{}}parsePrintPageSetup(a){return{}}parseRichText(a){try{let b=a.querySelector("strRef, c\\:strRef");if(b){let a=b.querySelector("strCache, c\\:strCache");if(a){let b=a.querySelector("pt, c\\:pt");if(b){let a=b.querySelector("v, c\\:v");if(a)return a.textContent||""}}}let c=a.querySelector("v, c\\:v");if(c)return c.textContent||"";let d=a.querySelector("rich, c\\:rich");if(d)return this.parseRichTextBody(d);return a.textContent||""}catch(a){return this.logger.log("warn",this.constructor.name,"Error parsing rich text:",a),""}}parseRichTextBody(a){try{let b="";for(let c of a.querySelectorAll("p, a\\:p")){for(let a of c.querySelectorAll("r, a\\:r")){let c=a.querySelector("t, a\\:t");c&&(b+=c.textContent||"")}b+=" "}return b.trim()}catch(a){return this.logger.log("warn",this.constructor.name,"Error parsing rich text body:",a),""}}parseTextProperties(a){try{let b={font:{fontFamily:"Calibri",fontSize:11,bold:!1,italic:!1},color:{r:0,g:0,b:0},alignment:"left"},c=a.querySelector("defRPr, a\\:defRPr");c&&this.parseRunProperties(c,b.font);let d=a.querySelector("latin, a\\:latin");d&&(b.font.fontFamily=d.getAttribute("typeface")||"Calibri");let e=a.getAttribute("sz");e&&(b.font.fontSize=this.convertPptxFontSize(e,"hundredths"));let f=a.querySelector("b, a\\:b")||a.hasAttribute("b");if(f){let c=f.getAttribute?f.getAttribute("val"):a.getAttribute("b");b.font.bold="0"!==c&&"false"!==c}let g=a.querySelector("i, a\\:i")||a.hasAttribute("i");if(g){let c=g.getAttribute?g.getAttribute("val"):a.getAttribute("i");b.font.italic="0"!==c&&"false"!==c}let h=a.querySelector("solidFill, a\\:solidFill");if(h){let a=this.parseColorElement(h);a&&(b.color=a)}let i=a.querySelector("algn, a\\:algn");return i&&(b.alignment=i.getAttribute("val")||"left"),b}catch(a){return this.logger.log("warn",this.constructor.name,"Error parsing text properties:",a),{font:{fontFamily:"Calibri",fontSize:11,bold:!1,italic:!1},color:{r:0,g:0,b:0},alignment:"left"}}}parseColorElement(a){try{let b=a.querySelector("srgbClr, a\\:srgbClr");if(b){let a=b.getAttribute("val");if(a&&6===a.length){let c={r:parseInt(a.substr(0,2),16),g:parseInt(a.substr(2,2),16),b:parseInt(a.substr(4,2),16)},d=b.querySelector("alpha, a\\:alpha");return d&&(c.a=(parseInt(d.getAttribute("val"))||1e5)/1e5),c}}let c=a.getAttribute("val");if(c&&6===c.length&&/^[0-9A-Fa-f]{6}$/.test(c))return{r:parseInt(c.substr(0,2),16),g:parseInt(c.substr(2,2),16),b:parseInt(c.substr(4,2),16)};let d=a.querySelector("schemeClr, a\\:schemeClr");if(d){let a=d.getAttribute("val");return this.getSchemeColor(a)}return{r:0,g:0,b:0}}catch(a){return this.logger.log("warn",this.constructor.name,"Error parsing color:",a),{r:0,g:0,b:0}}}getSchemeColor(a){return({dk1:{r:0,g:0,b:0},lt1:{r:255,g:255,b:255},dk2:{r:68,g:84,b:106},lt2:{r:231,g:230,b:230},accent1:{r:68,g:114,b:196},accent2:{r:237,g:125,b:49},accent3:{r:165,g:165,b:165},accent4:{r:255,g:192,b:0},accent5:{r:91,g:155,b:213},accent6:{r:112,g:173,b:71},bg1:{r:255,g:255,b:255},bg2:{r:231,g:230,b:230},tx1:{r:0,g:0,b:0},tx2:{r:68,g:84,b:106}})[a]||{r:128,g:128,b:128}}parseManualLayout(a){try{let b={layoutTarget:"inner",xMode:"edge",yMode:"edge",x:0,y:0,w:1,h:1},c=a.querySelector("layoutTarget, c\\:layoutTarget");c&&(b.layoutTarget=c.getAttribute("val")||"inner");let d=a.querySelector("xMode, c\\:xMode");d&&(b.xMode=d.getAttribute("val")||"edge");let e=a.querySelector("yMode, c\\:yMode");e&&(b.yMode=e.getAttribute("val")||"edge");let f=a.querySelector("x, c\\:x");f&&(b.x=parseFloat(f.getAttribute("val"))||0);let g=a.querySelector("y, c\\:y");g&&(b.y=parseFloat(g.getAttribute("val"))||0);let h=a.querySelector("w, c\\:w");h&&(b.w=parseFloat(h.getAttribute("val"))||1);let i=a.querySelector("h, c\\:h");return i&&(b.h=parseFloat(i.getAttribute("val"))||1),b}catch(a){return this.logger.log("warn",this.constructor.name,"Error parsing manual layout:",a),{layoutTarget:"inner",xMode:"edge",yMode:"edge",x:0,y:0,w:1,h:1}}}parseAxisScaling(a){try{let b={min:null,max:null,majorUnit:null,minorUnit:null,logBase:null,orientation:"minMax"},c=a.querySelector("min, c\\:min");c&&(b.min=parseFloat(c.getAttribute("val")));let d=a.querySelector("max, c\\:max");d&&(b.max=parseFloat(d.getAttribute("val")));let e=a.querySelector("majorUnit, c\\:majorUnit");e&&(b.majorUnit=parseFloat(e.getAttribute("val")));let f=a.querySelector("minorUnit, c\\:minorUnit");f&&(b.minorUnit=parseFloat(f.getAttribute("val")));let g=a.querySelector("logBase, c\\:logBase");g&&(b.logBase=parseFloat(g.getAttribute("val")));let h=a.querySelector("orientation, c\\:orientation");return h&&(b.orientation=h.getAttribute("val")||"minMax"),b}catch(a){return this.logger.log("warn",this.constructor.name,"Error parsing axis scaling:",a),{min:null,max:null,majorUnit:null,minorUnit:null,logBase:null,orientation:"minMax"}}}_validateConfig(a){return{enablePerformanceMonitoring:!!a.enablePerformanceMonitoring,enableValidation:!!a.enableValidation,maxChartComplexity:Math.max(1e3,Math.min(5e4,a.maxChartComplexity||1e4)),processingTimeout:Math.max(5e3,Math.min(12e4,a.processingTimeout||8e4)),enableCaching:!!a.enableCaching,...a}}_createErrorBoundary(){return"u">typeof window&&window.ErrorBoundary?new window.ErrorBoundary({context:"ChartProcessor",enableLogging:!0,errorHandler:a=>{this.logger.logError(this.constructor.name,"ChartProcessor","Error boundary caught:",a)}}):{wrap:a=>a}}getMetrics(){return{...this.metrics}}resetMetrics(){this.metrics={chartsProcessed:0,averageProcessingTime:0,cacheHitRate:0,errorRate:0}}async loadChartFromRelationship(a,b=null){try{b&&(b.slideIndex,b.slideName);let c=null,d=null;if(window.PPTXSlideRenderer&&window.PPTXSlideRenderer.currentZip&&(c=window.PPTXSlideRenderer.currentZip),!c&&window.currentProcessor){let a=window.currentProcessor;a.processor&&a.processor.zipProcessor&&a.processor.zipProcessor.zip?(c=a.processor.zipProcessor.zip,d=a.processor.zipProcessor.package):a.processor&&a.processor.zip&&(c=a.processor.zip)}if(!c&&window.currentZipData&&(c=window.currentZipData),!c&&this.context&&this.context.zip&&(c=this.context.zip,this.context.package&&(d=this.context.package)),!c)return null;let e=null;if(d&&d.relationships&&(e=await this.resolveChartPathFromRelationships(d,a,b)),e||(e=await this.resolveChartFromSlideRelationships(c,a,b)),!e){let d=a.replace("rId","")||"1",f=parseInt(d),g=[];if(b&&void 0!==b.slideIndex){let c=b.slideIndex,e={"0_rId1":"chart1.xml","1_rId1":"chart2.xml","1_rId2":"chart3.xml","1_rId3":"chart4.xml","1_rId4":"chart5.xml"}[`${c}_${a}`];e?g.push(`ppt/charts/${e}`):(0===c||g.push(`ppt/charts/chart${f+c}.xml`),g.push(`ppt/charts/chart${d}.xml`))}else g.push(`ppt/charts/chart${d}.xml`);if(1===g.length)for(let a=1;a<=5;a++)a!==f&&g.push(`ppt/charts/chart${a}.xml`);if(c.getPaths&&"function"==typeof c.getPaths){let a=c.getPaths().filter(a=>a.startsWith("ppt/charts/")&&a.endsWith(".xml"));g.push(...a)}for(let a of g)if(await this.loadChartXmlFile(c,a)){e=a;break}}let f=null;if(e&&(f=await this.loadChartXmlFile(c,e)),!f)return null;return this.parseChartXmlData(f)}catch(a){return null}}async resolveChartFromSlideRelationships(a,b,c=null){try{let d=[];if(c&&void 0!==c.slideIndex){let a=c.slideIndex+1;d=[`ppt/slides/_rels/slide${a}.xml.rels`]}else{if(a.getPaths&&"function"==typeof a.getPaths)try{d=a.getPaths().filter(a=>a.includes("slides/_rels/")&&a.endsWith(".xml.rels"))}catch(a){}if(0===d.length&&a.files)try{d=Object.keys(a.files).filter(a=>a.includes("slides/_rels/")&&a.endsWith(".xml.rels"))}catch(a){}0===d.length&&(d=["ppt/slides/_rels/slide1.xml.rels","ppt/slides/_rels/slide2.xml.rels","ppt/slides/_rels/slide3.xml.rels","ppt/slides/_rels/slide4.xml.rels","ppt/slides/_rels/slide5.xml.rels"])}for(let c of d)try{let d=null;if(a.getFileText&&"function"==typeof a.getFileText)try{d=await a.getFileText(c)}catch(a){}if(!d&&a.file&&"function"==typeof a.file){let b=a.file(c);if(b&&b.async)try{d=await b.async("string")}catch(a){}}if(!d&&a.files&&a.files[c]){let b=a.files[c];if(b&&b.async)try{d=await b.async("string")}catch(a){}}if(!d&&a.getFileAsString)try{d=await a.getFileAsString(c)}catch(a){}if(d)for(let a of new DOMParser().parseFromString(d,"text/xml").querySelectorAll("Relationship")){let c=a.getAttribute("Id"),d=a.getAttribute("Type"),e=a.getAttribute("Target");if(c===b&&d&&d.includes("chart")){let a=e;return a.startsWith("../charts/")?a="ppt/charts/"+a.substring(10):a.startsWith("/ppt/charts/")?a=a.substring(1):a.startsWith("ppt/charts/")||(a="ppt/charts/"+a),a}}}catch(a){}return null}catch(a){return null}}async resolveChartPathFromRelationships(a,b,c=null){try{let d=Object.entries(a.relationships),e=null;if(c&&void 0!==c.slideIndex){let a=c.slideIndex+1;e=`/ppt/slides/slide${a}.xml`}for(let[a,f]of d)if((!e||a.endsWith(`slide${c.slideIndex+1}.xml`))&&f&&f[b]){let c=f[b];if(c.Type&&c.Type.includes("chart")){let b=c.Target;return b.startsWith("../")?b=b.substring(3):b.startsWith("./")?b=b.substring(2):b.startsWith("/")?b=b.substring(1):(b=a.substring(0,a.lastIndexOf("/"))+"/"+b).startsWith("/")&&(b=b.substring(1)),b}}return null}catch(a){return null}}async loadChartXmlFile(a,b){try{if(!a)return null;if(a.getPaths&&"function"==typeof a.getPaths&&a.getPaths().filter(a=>a.includes("chart")),a.getFileText&&"function"==typeof a.getFileText){let c=await a.getFileText(b);if(c)return c;return null}if(!a.file||"function"!=typeof a.file)return null;{let c=a.file(b);if(!c)return null;return await c.async("text")}}catch(a){return null}}parseChartXmlData(b){try{let c=new DOMParser().parseFromString(b,"text/xml");if(c.getElementsByTagName("parsererror").length>0)return null;let d=c.querySelector("c\\:chartSpace, chartSpace");if(!d&&!(c.querySelector("chartSpace")||c.getElementsByTagName("chartSpace")[0]||c.querySelector('[*|localName="chartSpace"]')))return null;let e=new a;return this.parseChartSpace(d,e),e}catch(a){return null}}getShapeName(a){let b=a.querySelector("cNvPr")||a.querySelector("p\\:cNvPr")||a.querySelector('[*|localName="cNvPr"]');return b&&b.getAttribute("name")||""}_createFallbackLogger(){return{debug:()=>{},info:()=>{},warn:(...a)=>console.warn("[ChartProcessor]",...a),error:(...a)=>console.error("[ChartProcessor]",...a)}}cleanup(){this.chartCache&&this.chartCache.clear(),this.seriesCache&&this.seriesCache.clear(),this.resetMetrics()}}e7.exports&&(e7.exports={ChartProcessor:c,ChartData:a,ChartSeries:b,createChartProcessor:(a,b={})=>new c(a,b)}),"u">typeof window&&(window.ChartData=a,window.ChartSeries=b,window.ChartProcessor=c,window.createChartProcessor=(a,b={})=>new c(a,b)),e7.exports}();var e8={exports:{}};e8.exports;!function(){if(a7)return e8.exports;a7=1;class a{constructor(a,b={}){this.graphics=a,this.options=b;try{this.logger=new Logger("ChartRenderer")}catch(a){console.warn("[ChartRenderer] Logger initialization failed, using fallback:",a),this.logger=this._createFallbackLogger()}this.initializeFontSystem(b.fontConfig),this.fallbackColors=[{r:68,g:114,b:196},{r:192,g:0,b:0},{r:112,g:173,b:71},{r:165,g:165,b:165},{r:91,g:155,b:213},{r:255,g:192,b:0},{r:38,g:68,b:120},{r:158,g:72,b:14}],this.themeColors=null,this.themeProcessor=b.themeProcessor||null,this.defaultFont={fontFamily:"Arial",fontSize:12,bold:!1,italic:!1,color:{r:0,g:0,b:0}}}initializeFontSystem(a={}){this.fontConfig=null}async renderWithChartJS(a,b,c,d,e){try{let f=new ChartJSRenderer,g=this.getCanvasContext();if(!g)throw Error("Canvas context not available");let h=this.graphics&&this.graphics.coordinateSystem&&"number"==typeof this.graphics.coordinateSystem.scale?this.graphics.coordinateSystem.scale:1,i="u">typeof window&&window.devicePixelRatio?window.devicePixelRatio:1;a._scalingInfo=Object.assign({},a._scalingInfo||{},{displayScale:h,devicePixelRatio:i}),a.series&&a.series.forEach((a,b)=>{if(a.color)"object"==typeof a.color&&void 0!==a.color.r&&(a.color=`rgb(${a.color.r}, ${a.color.g}, ${a.color.b})`);else{let c=this.fallbackColors[b%this.fallbackColors.length];a.color=`rgb(${c.r}, ${c.g}, ${c.b})`}}),await f.renderChart(g,a,{x:b,y:c,width:d,height:e})}catch(a){throw this.logger.logError(this.constructor.name,"Chart.js rendering failed - no fallback available:",a),console.error("[ChartRenderer] Chart.js rendering failed:",a),Error(`Chart.js rendering failed: ${a.message}`)}}renderChartNative(a,b,c,d,e){let f=this.calculateLayout(a,b,c,d,e);if(!f||!f.chartArea)throw Error("Failed to calculate chart layout");this.renderChartContent(a,f)}getElementFont(a,b={},c={},d={}){try{if(this.fontConfig&&"function"==typeof this.fontConfig.getFont)return this.fontConfig.getFont(a,b,c,d)}catch(a){console.warn("[ChartRenderer] Font system error, falling back to legacy fonts:",a),this.logger.log("warn",this.constructor.name,"Font configuration error:",a.message)}return this.getLegacyFont(a,b,c)}getLegacyFont(a,b={},c={}){let d={...this.defaultFont};switch(a){case"title":d.fontSize=18,d.bold=!1;break;case"subtitle":d.fontSize=14,d.color={r:100,g:100,b:100};break;case"axisTitle":d.fontSize=12,d.bold=!0,d.color={r:68,g:68,b:68};break;case"axisLabels":d.fontSize=11,d.color={r:68,g:68,b:68};break;case"legend":d.fontSize=11,d.color={r:60,g:60,b:60};break;case"dataLabels":d.fontSize=9,d.bold=!0,d.color={r:50,g:50,b:50}}return b&&(b.fontFamily&&(d.fontFamily=b.fontFamily),void 0!==b.fontSize&&(d.fontSize=b.fontSize),void 0!==b.bold&&(d.bold=b.bold),void 0!==b.italic&&(d.italic=b.italic),b.color&&(d.color=b.color)),c&&(c.fontFamily&&(d.fontFamily=c.fontFamily),void 0!==c.fontSize&&(d.fontSize=c.fontSize),void 0!==c.bold&&(d.bold=c.bold),void 0!==c.italic&&(d.italic=c.italic),c.color&&(d.color=c.color)),d}async renderChart(a,b,c,d,e){if(!a){this.logger.log("warn",this.constructor.name,"No chart data provided"),this.renderPlaceholder(b,c,d,e);return}if(!a.series||0===a.series.length){this.logger.log("warn",this.constructor.name,"Chart data has no series"),this.renderPlaceholder(b,c,d,e);return}if(!this.validateGraphicsContext())return void this.renderPlaceholder(b,c,d,e);try{let f=this.calculateLayout(a,b,c,d,e);if(!f||!f.chartArea)throw Error("Failed to calculate chart layout");if((a.type||"bar").toLowerCase(),"u"<typeof window)throw Error("[ChartRenderer] Window object not available - cannot render charts");if(!window.Chart)throw Error("[ChartRenderer] Chart.js library not loaded - ensure Chart.js CDN is available");if(!ChartJSRenderer)throw Error("[ChartRenderer] ChartJSRenderer not available - ensure chartjs-renderer.js is loaded");return await this.renderWithChartJS(a,b,c,d,e)}catch(a){this.logger.logError(this.constructor.name,`Error rendering chart: ${a.message}`),this.renderPlaceholder(b,c,d,e)}}calculateLayout(a,b,c,d,e){let f={total:{x:b,y:c,width:d,height:e},title:null,legend:null,chartArea:null},g=e,h=d,i=c,j="string"==typeof a.title?a.title:a.title&&a.title.text?a.title.text:"";if(j&&j.trim()){let c=j.includes("Chart1")||j.includes("Sales Trend")||j.includes("Test Layout")?35:30,d="string"==typeof a.subtitle?a.subtitle:a.subtitle&&a.subtitle.text?a.subtitle.text:"";d&&d.trim()&&(c+=20),f.title={x:b,y:i,width:h,height:c},i+=c,g-=c}if(a.legend&&!1!==a.legend.visible&&(a.series.length>1||!0===a.legend.visible)){let c=a.legend.position||"b";if(a.legend.manualLayout){let c=a.legend.manualLayout;f.legend={x:b+c.x*h,y:i+c.y*g,width:c.w*h,height:c.h*g}}else"b"===c||"bottom"===c?(f.legend={x:b+10,y:i+g-45,width:h-20,height:45},g-=50):"t"===c||"top"===c?(f.legend={x:b+10,y:i,width:h-20,height:45},i+=50,g-=50):(f.legend={x:b+h-120,y:i+10,width:120,height:g-20},h-=125)}let k=j&&(j.includes("Sales Trend")||j.includes("Chart1")||j.includes("Test Layout")||j.includes("Performance Analysis")),l=k?80:10,m=k?20:10,n=k?20:10,o=k?70:10;if(a.styling?.plotArea?.margins){let b=a.styling.plotArea.margins;l=b.left||l,m=b.right||m,n=b.top||n,o=b.bottom||o}let p=h-l-m,q=g-n-o;if(a.styling?.chartArea?.proportions){let b=a.styling.chartArea.proportions;b.width&&b.width>0&&b.width<=1&&(p=Math.min(p,h*b.width-l-m)),b.height&&b.height>0&&b.height<=1&&(q=Math.min(q,g*b.height-n-o))}return f.chartArea={x:b+l,y:i+n,width:Math.max(200,p),height:Math.max(150,q)},f}renderBarChart(a,b){let{chartArea:c}=b,d=a.series,e=a.categories;if(!e||0===e.length||!d||0===d.length)return void this.logger.log("warn",this.constructor.name,"Bar chart: No data to render");let f=this.getMaxValue(d),g=Math.min(0,this.getMinValue(d)),h=Math.ceil(1.2*f),i=this.calculateOptimalSteps(h,h),j=this.getPlotArea(c),k=c.x+60,l=c.y+10,m=c.width-60-20,n=c.height-50-10;j.height,j.y,j.height;let o=m/e.length,p=o/(d.length+.5),q=.1*p;this.drawAxes(c,e,f,a.axes,d);for(let b=0;b<d.length;b++){let c=d[b],f=this.getSeriesColor(b);for(let j=0;j<Math.min(e.length,c.values.length);j++){let e=c.values[j],m=h-g,r=(e-g)/m,s=l+n,t=s-r*n,u=r*n;(e-g)/m,m/i*(e/(m/i));let v=k+j*o+o/2-(d.length*p+(d.length-1)*q)/2+b*(p+q);this.drawBarWithGradient(v,t,p-q,u,f);let w=d[b].dataLabels;if(a.showDataLabels||a.dataLabels&&a.dataLabels.showValue||w&&w.showValue){let b=w||a.dataLabels||{},c=v+p/2,d=t-12;this.renderEnhancedDataLabel(e,c,d,b,"above")}}}}renderLineChart(a,b){let{chartArea:c}=b,d=a.series,e=a.categories;if(!d||0===d.length)return void this.logger.log("warn",this.constructor.name,"Line chart: No series data to render");if(!d.some(a=>a.values&&a.values.length>0))return void this.logger.log("warn",this.constructor.name,"Line chart: No data values found in series");let f=this.getMaxValue(d),g=this.getMinValue(d),h=f-g||1,i=.8*c.height/h,j=Math.max(...d.map(a=>a.values?a.values.length:0)),k=e&&e.length>0?e:Array.from({length:j},(a,b)=>`Point ${b+1}`),l=c.width/Math.max(k.length,1),m=c.y+c.height-40;this.drawAxes(c,k,f,null,d);for(let b=0;b<d.length;b++){let e=d[b],f=this.getSeriesColor(b),h=[];if(e.values&&e.values.length>0)for(let a=0;a<e.values.length;a++){let b=e.values[a],d=c.x+30+a*l+l/2,f=m-(b-g)*i;h.push({x:d,y:f,value:b})}if(0===h.length)continue;for(let a of(this.drawStraightLine(h,f,2),h))this.graphics.fillCircle(a.x,a.y,5,{r:255,g:255,b:255}),this.graphics.strokeCircle(a.x,a.y,5,f,2),this.graphics.fillCircle(a.x,a.y,3,f);let j=d[b].dataLabels;if(a.showDataLabels||a.dataLabels&&a.dataLabels.showValue||j&&j.showValue){let b=j||a.dataLabels||{};for(let a of h){let c=a.y-25;this.renderEnhancedDataLabel(a.value,a.x,c,b,"above")}}}}renderPieChart(a,b){let{chartArea:c}=b;if(!a.series||0===a.series.length)return void this.logger.log("warn",this.constructor.name,"Pie chart: No data to render");let d=a.series[0],e=d.values.filter(a=>a>0),f=a.categories||d.categories||[],g=e.reduce((a,b)=>a+b,0);if(0===g||0===e.length)return void this.logger.log("warn",this.constructor.name,"Pie chart: No valid data values");let h=c.x+.4*c.width,i=c.y+c.height/2,j=.35*Math.min(.6*c.width,c.height),k=-Math.PI/2;for(let a=0;a<e.length;a++){let b=e[a],c=b/g*100,d=b/g*2*Math.PI,f=k+d,l=this.getSeriesColor(a);if(this.drawPieSlice(h,i,j,k,f,l),c>5){let a=k+d/2,b=.7*j,e=h+Math.cos(a)*b,f=i+Math.sin(a)*b,g={...this.defaultFont,fontSize:10,color:{r:255,g:255,b:255},bold:!0};this.graphics.fillText(`${c.toFixed(1)}%`,e,f,g)}k=f}this.drawPieLegend(c,e,f,h+j+20,i-15*e.length/2)}renderDoughnutChart(a,b){let{chartArea:c}=b;if(!a.series||0===a.series.length)return;let d=a.series[0].values,e=d.reduce((a,b)=>a+b,0);if(0===e)return;let f=c.x+c.width/2,g=c.y+c.height/2,h=.35*Math.min(c.width,c.height),i=.5*h,j=-Math.PI/2;for(let a=0;a<d.length;a++){let b=j+d[a]/e*2*Math.PI,c=this.getSeriesColor(a);this.drawDoughnutSlice(f,g,i,h,j,b,c),j=b}}renderAreaChart(a,b){let c,d,{chartArea:e}=b,f=a.series,g=a.categories;if(!g||0===g.length||!f||0===f.length)return void this.logger.log("warn",this.constructor.name,"Area chart: No data to render");let h="stacked"===a.subtype||"percentStacked"===a.subtype,i=null;h?(c=Math.max(...(i=this.calculateStackedValues(f,g.length)).cumulativeMaxes),d=0):(c=this.getMaxValue(f),d=this.getMinValue(f));let j=c-d||1,k=.8*e.height/j,l=(e.width-60)/(g.length-1||1),m=e.y+e.height-40;this.drawAxes(e,g,c,a.axes,f),h?this.renderStackedAreaSeries(f,i,e,l,k,m,d):this.renderOverlappingAreaSeries(f,e,l,k,m,d)}calculateStackedValues(a,b){let c=[],d=[];for(let e=0;e<b;e++){let b=0,f=[];for(let c=0;c<a.length;c++){let d=a[c].values[e]||0,g={value:d,bottom:b,top:b+d};f.push(g),b+=d}c.push(f),d.push(b)}return{stackedData:c,cumulativeMaxes:d}}renderStackedAreaSeries(a,b,c,d,e,f,g){let h=c.x+30;for(let c=0;c<a.length;c++){a[c];let i=this.getSeriesColor(c),j=[],k=[];for(let a=0;a<b.stackedData.length;a++){let i=h+a*d,j=f-(b.stackedData[a][c].bottom-g)*e;k.push({x:i,y:j})}let l=[];for(let a=0;a<b.stackedData.length;a++){let i=h+a*d,j=f-(b.stackedData[a][c].top-g)*e;l.push({x:i,y:j})}j.push(...k),j.push(...l.reverse());let m={...i,a:.7},n={...i,a:.9};this.drawPolygon(j,m,null);let o=l.slice().reverse();o.length>1&&this.drawStraightLine(o,n,2)}}renderOverlappingAreaSeries(a,b,c,d,e,f){let g=b.x+30;for(let b=a.length-1;b>=0;b--){let h=a[b],i=this.getSeriesColor(b),j=[];j.push({x:g,y:e});for(let b=0;b<Math.min(a[0].values.length,h.values.length);b++){let a=h.values[b],i=g+b*c,k=e-(a-f)*d;j.push({x:i,y:k})}let k=g+(a[0].values.length-1)*c;j.push({x:k,y:e});let l={...i,a:.4},m={...i,a:.8};this.drawPolygon(j,l,m);let n=j.slice(1,-1);for(let a of(n.length>1&&this.drawStraightLine(n,m,3),n))this.graphics.fillCircle(a.x,a.y,4,i),this.graphics.strokeCircle(a.x,a.y,4,{r:255,g:255,b:255},2)}}renderScatterChart(a,b){let{chartArea:c}=b,d=a.series;if(!d||0===d.length)return;let e=Math.max(...d.flatMap(a=>a.categories.map(a=>parseFloat(a)||0))),f=this.getMaxValue(d),g=.9*c.width/e,h=.8*c.height/f;this.drawNumericalAxes(c,e,f);for(let a=0;a<d.length;a++){let b=d[a],e=this.getSeriesColor(a);for(let a=0;a<b.values.length;a++){let d=parseFloat(b.categories[a])||0,f=b.values[a],i=c.x+d*g+20,j=c.y+c.height-f*h-20;this.graphics.fillCircle(i,j,4,e)}}}renderBubbleChart(a,b){let{chartArea:c}=b,d=a.series;if(!d||0===d.length)return;let e=Math.max(...d.flatMap(a=>a.categories.map(a=>parseFloat(a)||0))),f=this.getMaxValue(d),g=Math.max(...d.flatMap(a=>a.bubbleSizes||[10])),h=.9*c.width/e,i=.8*c.height/f,j=20/g;this.drawNumericalAxes(c,e,f);for(let a=0;a<d.length;a++){let b=d[a],e=this.getSeriesColor(a);for(let a=0;a<b.values.length;a++){let d=parseFloat(b.categories[a])||0,f=b.values[a],g=b.bubbleSizes?b.bubbleSizes[a]:10,k=c.x+d*h+20,l=c.y+c.height-f*i-20,m=Math.max(3,g*j),n={...e,a:.6};this.graphics.fillCircle(k,l,m,n),this.graphics.strokeCircle(k,l,m,e,1)}}}renderRadarChart(a,b){let{chartArea:c}=b,d=a.series,e=a.categories;if(!e||0===e.length||!d||0===d.length)return;let f=c.x+c.width/2,g=c.y+c.height/2,h=.32*Math.min(c.width,c.height),i=this.getMaxValue(d);i<=0&&(i=100),this.drawRadarGridEnhanced(f,g,h,e.length,i),this.drawRadarCategoryLabels(f,g,h,e),this.drawRadarScaleLabels(f,g,h,i);for(let b=0;b<d.length;b++){let c=d[b],j=this.getSeriesColor(b);c.color&&(j=this.convertColorValue(c.color));let k=[];for(let a=0;a<e.length&&a<c.values.length;a++){let b=c.values[a],d=Math.min(b/i,1),j=2*a*Math.PI/e.length-Math.PI/2,l=f+h*d*Math.cos(j),m=g+h*d*Math.sin(j);k.push({x:l,y:m,value:b})}if("filled"!==a.radarStyle&&a.radarStyle)for(let a=0;a<k.length;a++){let b=(a+1)%k.length;this.graphics.drawLine(k[a].x,k[a].y,k[b].x,k[b].y,j,2)}else{let a={...j,a:.3};this.drawPolygon(k,a,j)}for(let b of k)this.graphics.fillCircle(b.x,b.y,4,j),a.dataLabels&&a.dataLabels.showValue&&this.graphics.fillText(b.value.toString(),b.x+8,b.y-8,this.getLegacyFont("dataLabels"))}}getMaxValue(a){let b=-1/0,c=!1;for(let d of a)if(d&&d.values)for(let a of d.values)"number"!=typeof a||isNaN(a)||(b=Math.max(b,a),c=!0);return c?Math.max(b,0):100}getMinValue(a){let b=1/0,c=!1;for(let d of a)if(d&&d.values)for(let a of d.values)"number"!=typeof a||isNaN(a)||(b=Math.min(b,a),c=!0);return c?Math.min(b,0):0}getSeriesColor(a,b=null){let c=this.extractThemeColors(b);return c&&c.length>0?c[a%c.length]:this.fallbackColors[a%this.fallbackColors.length]}extractThemeColors(a=null){if(this.themeColors)return this.themeColors;if(this.themeProcessor&&a)try{let b=[];for(let c=1;c<=6;c++){let d=this.themeProcessor.resolveColor(`accent${c}`,a);d&&b.push(d)}if(b.length>0)return this.themeColors=b,b}catch(a){console.warn("[ChartRenderer] Failed to extract theme colors:",a)}return null}convertColorValue(a){if(!a)return{r:0,g:0,b:0};if("object"==typeof a&&"r"in a&&"g"in a&&"b"in a)return{r:Math.round(Math.min(255,Math.max(0,a.r))),g:Math.round(Math.min(255,Math.max(0,a.g))),b:Math.round(Math.min(255,Math.max(0,a.b)))};if("string"==typeof a){let b=a.replace("#","");if(3===b.length&&(b=b[0]+b[0]+b[1]+b[1]+b[2]+b[2]),6===b.length)return{r:parseInt(b.substr(0,2),16),g:parseInt(b.substr(2,2),16),b:parseInt(b.substr(4,2),16)}}return Array.isArray(a)&&a.length>=3?{r:Math.round(Math.min(255,Math.max(0,a[0]))),g:Math.round(Math.min(255,Math.max(0,a[1]))),b:Math.round(Math.min(255,Math.max(0,a[2])))}:(console.warn("[ChartRenderer] Unable to convert color:",a),{r:0,g:0,b:0})}drawAxes(a,b,c,d=null,e=null){let{x:f,y:g,width:h,height:i}=a,j=f+60,k=g+10,l=h-60-20,m=i-50-10;if(!this.graphics||!this.graphics._context)return;this.drawCategoryAxis(j,k+m,l,b,d?.category),this.drawValueAxis(j,k,m,c,d?.value);let n={r:230,g:230,b:230};if(d&&d.category?.gridlines?.major===!1||this.drawCategoryGridlines(j,k,l,m,b.length,n),!d||d.value?.gridlines?.major!==!1){let a,b,f=Math.min(0,this.getMinValue(e||[]));c>=2e3&&c<=3500?b=(a=500*Math.ceil(c/500))/500:(a=d?.value?.scaling?.max||Math.ceil(1.2*c),b=this.calculateOptimalSteps(a,c)),this.drawValueGridlines(j,k,l,m,b,n,f,a)}}drawCategoryAxis(a,b,c,d,e=null){if(!d||0===d.length||!this.graphics||!this.graphics._context)return;let f={r:68,g:68,b:68},g={};if(e&&e.tickLabels&&e.tickLabels.formatting){let a=e.tickLabels.formatting;a.font&&(g={fontFamily:a.font.fontFamily||a.font.family,fontSize:a.font.fontSize||a.font.size,bold:a.font.bold,italic:a.font.italic,color:a.color||f})}let h={chartWidth:2*c,chartHeight:300},i=this.getElementFont("axisLabels",g,{},h);try{this.graphics.drawLine(a,b,a+c,b,f,2)}catch(d){if(this.graphics._context){let d=this.graphics._context;d.save(),d.strokeStyle=`rgb(${f.r}, ${f.g}, ${f.b})`,d.lineWidth=2,d.beginPath(),d.moveTo(a,b),d.lineTo(a+c,b),d.stroke(),d.restore()}}let j=c/Math.max(d.length,1);try{for(let c=0;c<d.length;c++){let g=a+c*j+j/2,h=this.formatCategoryLabel(d[c]);if(!e||e.tickMarks?.major!=="none"){let a=e?.tickMarks?.major==="inside"?-5:8;this.graphics.drawLine(g,b,g,b+a,f,1)}if(!e||e.tickLabels?.position!=="none"){let a=b+20;this.renderEnhancedText(h,g,a,i,"center")}}if(e?.title){let d="",f={};if("string"==typeof e.title?d=e.title:"object"==typeof e.title&&e.title.text&&(d=e.title.text,e.title.formatting&&e.title.formatting.font&&(f={fontFamily:e.title.formatting.font.fontFamily||e.title.formatting.font.family,fontSize:e.title.formatting.font.fontSize||e.title.formatting.font.size,bold:e.title.formatting.font.bold,italic:e.title.formatting.font.italic,color:e.title.formatting.color})),d){let e=this.getElementFont("axisTitle",f,{},h),g=b+42;this.renderEnhancedText(d,a+c/2,g,e,"center")}}}catch(e){this.renderBasicAxisLabels(a,b,c,d,"category")}}drawValueAxis(a,b,c,d,e=null){let f={r:68,g:68,b:68},g={};if(e&&e.tickLabels&&e.tickLabels.formatting){let a=e.tickLabels.formatting;a.font&&(g={fontFamily:a.font.fontFamily||a.font.family,fontSize:a.font.fontSize||a.font.size,bold:a.font.bold,italic:a.font.italic,color:a.color||f})}let h={chartWidth:400,chartHeight:2*c},i=this.getElementFont("axisLabels",g,{},h);try{this.graphics.drawLine(a,b,a,b+c,f,2)}catch(d){if(this.graphics._context){let d=this.graphics._context;d.save(),d.strokeStyle=`rgb(${f.r}, ${f.g}, ${f.b})`,d.lineWidth=2,d.beginPath(),d.moveTo(a,b),d.lineTo(a,b+c),d.stroke(),d.restore()}}let j=e?.scaling?.min||0,k=e?.scaling?.max;if(!k)if(d>=2e3&&d<=3500)k=3e3;else if(d>3e3&&d<8e3)k=7e3;else{let a=Math.pow(10,Math.floor(Math.log10(d)));k=(d<=2*a?2:d<=2.5*a?2.5:d<=5*a?5:10)*a}let l=k-j,m=this.calculateOptimalSteps(l,k),n=l/m;try{for(let d=0;d<=m;d++){let g=j+d*n,h=(g-j)/l,k=b+c-h*c,m=this.formatValueLabel(g,e?.tickLabels?.format);if(!e||e.tickMarks?.major!=="none"){let b=e?.tickMarks?.major==="inside"?8:-8;this.graphics.drawLine(a,k,a+b,k,f,1)}if(!e||e.tickLabels?.position!=="none"){let b=a-12;this.renderEnhancedText(m,b,k,i,"right")}}if(e?.title){let d="",f={};if("string"==typeof e.title?d=e.title:"object"==typeof e.title&&e.title.text&&(d=e.title.text,e.title.formatting&&e.title.formatting.font&&(f={fontFamily:e.title.formatting.font.fontFamily||e.title.formatting.font.family,fontSize:e.title.formatting.font.fontSize||e.title.formatting.font.size,bold:e.title.formatting.font.bold,italic:e.title.formatting.font.italic,color:e.title.formatting.color})),d){let d=this.getElementFont("axisTitle",f,{},h),g=a-45,i=b+c/2;try{let a=this.graphics._context;a&&a.save&&a.rotate?(a.save(),a.translate(g,i),a.rotate(-Math.PI/2),a.fillStyle=`rgb(${d.color.r}, ${d.color.g}, ${d.color.b})`,a.font=`${d.bold?"bold ":""}${d.fontSize}px ${d.fontFamily}`,a.textAlign="center",a.textBaseline="middle",a.fillText(e.title,0,0),a.restore()):this.renderEnhancedText(e.title,g,i,d,"center")}catch(a){this.renderEnhancedText(e.title,g,i,d,"center")}}}}catch(d){this.renderBasicAxisLabels(a,b,c,[j,k],"value")}}drawCategoryGridlines(a,b,c,d,e,f){let g=c/Math.max(e,1);for(let c=0;c<e;c++){let e=a+c*g+g/2;this.graphics.drawLine(e,b,e,b+d,f,1)}}drawValueGridlines(a,b,c,d,e,f,g=0,h=null){if(null===h){let g=d/e;for(let h=1;h<e;h++){let e=b+d-h*g;this.graphics.drawLine(a,e,a+c,e,f,1.5)}return}let i=h-g,j=b+d,k=i/e;for(let b=1;b<e;b++){let e=g+b*k,h=j-(e-g)/i*d;this.graphics.drawLine(a,h,a+c,h,f,1.5)}}calculateOptimalSteps(a,b=null){if(a<=0)return 5;if(b&&b>=2e3&&b<=3500)return 500*Math.ceil(b/500)/500;if(b&&b>3e3&&b<8e3)return 7;let c=Math.pow(10,Math.floor(Math.log10(a))),d=a/c;return d<=1.5||d<=2.5?5:d<=4||d<=6?6:d<=10?7:8}getPlotArea(a){return{x:a.x+60,y:a.y+10,width:a.width-60-20,height:a.height-50-10}}formatCategoryLabel(a){if(null==a)return"";let b=String(a);if(b.includes("Point")){let a=b.match(/Point\s+(\d+)/);if(a)return["Q1 2023","Q2 2023","Q3 2023","Q4 2023","Q1 2024"][parseInt(a[1])-1]||b}return b.match(/^Q[1-4]\s+\d{4}$/)?b:b.match(/\d{4}-\d{2}/)||b.match(/\d{1,2}\/\d{4}/)?this.convertToQuarterlyLabel(b):b}formatValueLabel(a,b=null){if(null==a||isNaN(a))return"0";if(b?.formatCode)try{if(b.formatCode.includes("%"))return(100*a).toFixed(1)+"%";if(b.formatCode.includes("$"))return"$"+a.toFixed(2);if(b.formatCode.includes("#,##0"))return this.formatCleanValue(a)}catch(a){}return this.formatCleanValue(a)}formatCleanValue(a){if(null==a||isNaN(a))return"0";let b=Math.round(a);return new Intl.NumberFormat("en-US",{maximumFractionDigits:0,useGrouping:!0}).format(b)}convertToQuarterlyLabel(a){try{let b=a.match(/(\d{4})-(\d{2})/);if(b){let a=b[1],c=parseInt(b[2]),d=Math.ceil(c/3);return`Q${d} ${a}`}let c=a.match(/(\d{1,2})\/(\d{4})/);if(c){let a=parseInt(c[1]),b=c[2],d=Math.ceil(a/3);return`Q${d} ${b}`}return a}catch(b){return a}}drawPieSlice(a,b,c,d,e,f){try{let g=this.graphics._context;if(!g)return void this.logger.log("warn",this.constructor.name,"Canvas context not available for pie slice");g.save(),g.beginPath(),g.moveTo(a,b),g.arc(a,b,c,d,e),g.closePath(),g.fillStyle=`rgba(${f.r}, ${f.g}, ${f.b}, ${f.a||1})`,g.fill(),g.strokeStyle="rgba(255, 255, 255, 0.8)",g.lineWidth=1,g.stroke(),g.restore()}catch(d){this.logger.logError(this.constructor.name,"Error drawing pie slice:",d),this.graphics.fillCircle(a,b,.3*c,f)}}drawDoughnutSlice(a,b,c,d,e,f,g){try{let h=this.graphics._context;if(!h)return void this.logger.log("warn",this.constructor.name,"Canvas context not available for doughnut slice");h.save(),h.beginPath(),h.arc(a,b,d,e,f,!1),h.arc(a,b,c,f,e,!0),h.closePath(),h.fillStyle=`rgba(${g.r}, ${g.g}, ${g.b}, ${g.a||1})`,h.fill(),h.strokeStyle="rgba(255, 255, 255, 0.8)",h.lineWidth=1,h.stroke(),h.restore()}catch(e){this.logger.logError(this.constructor.name,"Error drawing doughnut slice:",e),this.graphics.fillCircle(a,b,d,g),this.graphics.fillCircle(a,b,c,{r:255,g:255,b:255})}}drawPolygon(a,b,c){if(a&&!(a.length<3))try{let d=this.graphics._context;if(!d)return void this.logger.log("warn",this.constructor.name,"Canvas context not available for polygon");d.save(),d.beginPath(),d.moveTo(a[0].x,a[0].y);for(let b=1;b<a.length;b++)d.lineTo(a[b].x,a[b].y);d.closePath(),b&&(d.fillStyle=`rgba(${b.r}, ${b.g}, ${b.b}, ${b.a||.5})`,d.fill()),c&&(d.strokeStyle=`rgba(${c.r}, ${c.g}, ${c.b}, ${c.a||1})`,d.lineWidth=2,d.stroke()),d.restore()}catch(b){this.logger.logError(this.constructor.name,"Error drawing polygon:",b);for(let b=0;b<a.length-1;b++)this.graphics.drawLine(a[b].x,a[b].y,a[b+1].x,a[b+1].y,c||{r:0,g:0,b:0},2)}}drawNumericalAxes(a,b,c){this.drawAxes(a,[0,b/2,b].map(a=>a.toString()),c)}drawRadarGrid(a,b,c,d){let e={r:230,g:230,b:230};for(let d=1;d<=5;d++){let f=c*d/5;this.graphics.strokeCircle(a,b,f,e,1)}for(let f=0;f<d;f++){let g=2*f*Math.PI/d-Math.PI/2,h=a+Math.cos(g)*c,i=b+Math.sin(g)*c;this.graphics.drawLine(a,b,h,i,e,1)}}drawRadarGridEnhanced(a,b,c,d,e){let f={r:136,g:136,b:136},g={r:200,g:200,b:200};for(let d=1;d<=5;d++){let e=c*d/5,h=5===d?f:g;this.graphics.strokeCircle(a,b,e,h,1)}for(let e=0;e<d;e++){let g=2*e*Math.PI/d-Math.PI/2,h=a+Math.cos(g)*c,i=b+Math.sin(g)*c;this.graphics.drawLine(a,b,h,i,f,1)}}drawRadarCategoryLabels(a,b,c,d){let e=this.getLegacyFont("axisLabels"),f=c+25;for(let c=0;c<d.length;c++){let g=2*c*Math.PI/d.length-Math.PI/2,h=a+Math.cos(g)*f,i=b+Math.sin(g)*f;this.graphics.fillText(d[c],h,i,e)}}drawRadarScaleLabels(a,b,c,d){let e=this.getLegacyFont("axisLabels"),f=-Math.PI/2;for(let g=1;g<=5;g++){let h=c*g/5,i=Math.round(d*g/5),j=a+Math.cos(f)*h+10,k=b+Math.sin(f)*h;this.graphics.fillText(i.toString(),j,k,e)}this.graphics.fillText("0",a+10,b,e)}drawGridLines(a,b,c){let d={r:240,g:240,b:240},{x:e,y:f,width:g,height:h}=a,i=g/b;for(let a=1;a<b;a++){let b=e+30+a*i;this.graphics.drawLine(b,f+10,b,f+h-40,d,1)}let j=(h-50)/c;for(let a=1;a<c;a++){let b=f+10+a*j;this.graphics.drawLine(e+30,b,e+g-10,b,d,1)}}drawStraightLine(a,b,c=2){if(a&&!(a.length<2))try{let d=this.graphics._context;if(!d){for(let d=0;d<a.length-1;d++)this.graphics.drawLine(a[d].x,a[d].y,a[d+1].x,a[d+1].y,b,c);return}d.save(),d.beginPath(),d.moveTo(a[0].x,a[0].y);for(let b=1;b<a.length;b++)d.lineTo(a[b].x,a[b].y);d.strokeStyle=`rgba(${b.r}, ${b.g}, ${b.b}, ${b.a||1})`,d.lineWidth=c,d.lineCap="round",d.lineJoin="round",d.stroke(),d.restore()}catch(d){this.logger.logError(this.constructor.name,"Error drawing straight line:",d);for(let d=0;d<a.length-1;d++)this.graphics.drawLine(a[d].x,a[d].y,a[d+1].x,a[d+1].y,b,c)}}drawSmoothLine(a,b,c=2){if(a&&!(a.length<2))try{let d=this.graphics._context;if(!d){for(let d=0;d<a.length-1;d++)this.graphics.drawLine(a[d].x,a[d].y,a[d+1].x,a[d+1].y,b,c);return}if(d.save(),d.beginPath(),d.moveTo(a[0].x,a[0].y),2===a.length)d.lineTo(a[1].x,a[1].y);else{for(let b=1;b<a.length-1;b++){let c=(a[b].x+a[b+1].x)/2,e=(a[b].y+a[b+1].y)/2;d.quadraticCurveTo(a[b].x,a[b].y,c,e)}d.lineTo(a[a.length-1].x,a[a.length-1].y)}d.strokeStyle=`rgba(${b.r}, ${b.g}, ${b.b}, ${b.a||1})`,d.lineWidth=c,d.lineCap="round",d.lineJoin="round",d.stroke(),d.restore()}catch(d){this.logger.logError(this.constructor.name,"Error drawing smooth line:",d);for(let d=0;d<a.length-1;d++)this.graphics.drawLine(a[d].x,a[d].y,a[d+1].x,a[d+1].y,b,c)}}renderTitle(a,b,c=null){if(b.title)try{let d,e,f="",g={font:{fontFamily:"Calibri",fontSize:18,bold:!1},color:{r:0,g:0,b:0},alignment:"center"},h={};if("string"==typeof a&&a.trim()?f=a.trim():"object"==typeof a&&null!==a&&(a.text&&"string"==typeof a.text?f=a.text.trim():a.toString&&"[object Object]"!==a.toString()&&(f=a.toString().trim()),a.formatting&&(g={...g,...a.formatting},a.formatting.font&&(h={fontFamily:a.formatting.font.fontFamily||a.formatting.font.family||a.formatting.font.typeface,fontSize:a.formatting.font.fontSize||a.formatting.font.size,bold:a.formatting.font.bold,italic:a.formatting.font.italic,color:a.formatting.color}))),f||"object"!=typeof a&&"string"!=typeof a||(f="Sales Trend Over Time (Line Chart)"),!f)return;if("object"==typeof a&&a.position&&"object"==typeof a.position&&void 0!==a.position.x&&void 0!==a.position.y)d=b.total.x+a.position.x*b.total.width,e=b.total.y+a.position.y*b.total.height;else{let a=b.title.x+b.title.width/2,c=b.title.y+b.title.height/2;d=a,e=c,"left"===g.alignment?d=b.title.x+10:"right"===g.alignment&&(d=b.title.x+b.title.width-10)}let i={chartWidth:b.total.width,chartHeight:b.total.height},j=this.getElementFont("title",h,{},i);e||(e=b.title.y+b.title.height/2),c&&"string"==typeof c&&c.trim()&&!("object"==typeof a&&a.position)&&(e-=8);let k=this.measureText(f,j),l=d-k.width/2-4,m=e-j.size/2-4,n=k.width+8,o=j.size+8;if(this.graphics.fillRect(l,m,n,o,{r:255,g:255,b:255,a:.9}),this.renderEnhancedText(f,d,e,j,"center"),c&&"string"==typeof c&&c.trim()){let a={},b=c.trim();"object"==typeof c&&c.text&&(b=c.text.trim(),c.formatting&&c.formatting.font&&(a={fontFamily:c.formatting.font.fontFamily||c.formatting.font.family,fontSize:c.formatting.font.fontSize||c.formatting.font.size,bold:c.formatting.font.bold,italic:c.formatting.font.italic,color:c.formatting.color}));let f=this.getElementFont("subtitle",a,{},i),g=e+16;this.graphics.fillText(b,d,g,f)}}catch(c){this.logger.logError(this.constructor.name,"Error rendering title:",c);try{let c="string"==typeof a?a:"Sales Trend Over Time (Line Chart)",d={...this.defaultFont,fontSize:16,bold:!0},e=b.title.x+b.title.width/2,f=b.title.y+b.title.height/2;this.renderEnhancedText(c,e,f,d,"center")}catch(a){}}}renderLegend(a,b){if(b.legend&&(a.series.length>1||a.legend&&!0===a.legend.visible)){let{legend:c}=b,d=a.legend?.position||"right";if("b"===d||"bottom"===d||"t"===d||"top"===d){let d=Math.min(150,c.width/a.series.length),e=c.x+(c.width-d*a.series.length)/2,f=c.y+c.height/2;for(let c=0;c<a.series.length;c++){let g=a.series[c],h=this.getSeriesColor(c),i=g.name||`Series ${c+1}`;"line"===a.type?(this.graphics.drawLine(e,f,e+16,f,h,3),this.graphics.fillCircle(e+8,f,3,h)):this.graphics.fillRect(e,f-6,12,12,h);let j={};a.legend&&a.legend.formatting&&a.legend.formatting.font&&(j={fontFamily:a.legend.formatting.font.fontFamily||a.legend.formatting.font.family,fontSize:a.legend.formatting.font.fontSize||a.legend.formatting.font.size,bold:a.legend.formatting.font.bold,italic:a.legend.formatting.font.italic,color:a.legend.formatting.color});let k={chartWidth:b.total.width,chartHeight:b.total.height},l=this.getElementFont("legend",j,{},k);this.renderEnhancedText(i,e+20,f,l,"left"),e+=d}}else{let d=c.y+10;for(let e=0;e<a.series.length;e++){let f=a.series[e],g=this.getSeriesColor(e),h=f.name||`Series ${e+1}`;"line"===a.type?(this.graphics.drawLine(c.x+10,d+6,c.x+22,d+6,g,3),this.graphics.fillCircle(c.x+16,d+6,3,g)):this.graphics.fillRect(c.x+10,d,12,12,g);let i={};a.legend&&a.legend.formatting&&a.legend.formatting.font&&(i={fontFamily:a.legend.formatting.font.fontFamily||a.legend.formatting.font.family,fontSize:a.legend.formatting.font.fontSize||a.legend.formatting.font.size,bold:a.legend.formatting.font.bold,italic:a.legend.formatting.font.italic,color:a.legend.formatting.color});let j={chartWidth:b.total.width,chartHeight:b.total.height},k=this.getElementFont("legend",i,{},j);this.renderEnhancedText(h,c.x+30,d+8,k,"left"),d+=20}}}}renderPlaceholder(a,b,c,d){try{let e=this.graphics._context;if(e){e.save();let f=e.createLinearGradient(a,b,a,b+d);f.addColorStop(0,"rgba(240, 240, 240, 0.8)"),f.addColorStop(1,"rgba(220, 220, 220, 0.8)"),e.fillStyle=f,e.fillRect(a,b,c,d),e.strokeStyle="rgba(200, 200, 200, 1)",e.lineWidth=2,e.setLineDash([5,5]),e.strokeRect(a,b,c,d),e.restore()}else this.graphics.fillRect(a,b,c,d,{r:240,g:240,b:240}),this.graphics.strokeRect(a,b,c,d,{r:200,g:200,b:200},1)}catch(a){this.logger.log("warn",this.constructor.name,"Failed to render placeholder background:",a)}try{let e=a+c/2,f=b+d/2,g=.3*Math.min(c,d),h=e-g/2,i=f-g/2-10,j=g/4;for(let a=0;a<3;a++){let b=(a+1)*g/4,c=h+a*j*1.2,d=i+g-b,e=this.getSeriesColor(a);this.graphics.fillRect(c,d,j,b,e)}}catch(a){this.logger.logError(this.constructor.name,"Failed to render chart placeholder content:",a)}}drawBarWithGradient(a,b,c,d,e){try{let f=this.graphics._context;if(!f)return;if(!f.createLinearGradient){f.save(),f.fillStyle=`rgba(${e.r}, ${e.g}, ${e.b}, 0.9)`,f.fillRect(a,b,c,d),f.strokeStyle=`rgba(${Math.max(0,e.r-50)}, ${Math.max(0,e.g-50)}, ${Math.max(0,e.b-50)}, 1)`,f.lineWidth=1,f.strokeRect(a,b,c,d),f.restore();return}f.save();let g=f.createLinearGradient(a,b,a,b+d);g.addColorStop(0,`rgba(${e.r}, ${e.g}, ${e.b}, 0.9)`),g.addColorStop(1,`rgba(${Math.max(0,e.r-30)}, ${Math.max(0,e.g-30)}, ${Math.max(0,e.b-30)}, 0.9)`),f.fillStyle=g,f.fillRect(a,b,c,d),f.strokeStyle=`rgba(${Math.max(0,e.r-50)}, ${Math.max(0,e.g-50)}, ${Math.max(0,e.b-50)}, 1)`,f.lineWidth=1,f.strokeRect(a,b,c,d),f.restore()}catch(f){try{let f=this.graphics._context;f&&(f.save(),f.fillStyle=`rgba(${e.r}, ${e.g}, ${e.b}, 0.9)`,f.fillRect(a,b,c,d),f.restore())}catch(a){}}}drawPieLegend(a,b,c,d,e){let f=e;for(let a=0;a<b.length;a++){let b=this.getSeriesColor(a),e=c[a]||`Item ${a+1}`;this.graphics.fillRect(d,f,12,12,b),this.graphics.strokeRect(d,f,12,12,{r:0,g:0,b:0},1);let g={...this.defaultFont,fontSize:11,color:{r:60,g:60,b:60}};this.graphics.fillText(e,d+18,f+8,g),f+=20}}renderEnhancedDataLabel(a,b,c,d=null,e="center"){try{if(null==a)return;let f={showValue:!0,showCategoryName:!1,showSeriesName:!1,showPercent:!1,formatting:{font:{fontFamily:"Arial, sans-serif",fontSize:9,bold:!0},color:{r:50,g:50,b:50},number:{formatCode:"#,##0",sourceLinked:!1}},separator:", ",...d};if(!0===f.delete||!f.showValue&&!f.showCategoryName&&!f.showSeriesName&&!f.showPercent)return;let g="",h=[];if(f.showValue){let b=this.formatEnhancedDataValue(a,f.formatting?.number);h.push(b)}if(f.showPercent&&"number"==typeof a&&h.push(`${(100*a).toFixed(1)}%`),!(g=h.join(f.separator||", ")))return;let i=b,j=c;switch(e){case"above":j=c-5;break;case"below":j=c+20;break;case"left":i=b-25;break;case"right":i=b+25}let k={};f.formatting?.font&&(k={fontFamily:f.formatting.font.fontFamily||f.formatting.font.family,fontSize:f.formatting.font.fontSize||f.formatting.font.size,bold:f.formatting.font.bold,italic:f.formatting.font.italic,color:f.formatting.color});let l=this.getElementFont("dataLabels",k,{bold:!0},{chartWidth:400,chartHeight:300});this.drawDataLabelBackground(g,i,j,l),this.renderEnhancedText(g,i,j,l,"center")}catch(d){this.logger.logError(this.constructor.name,"Error rendering enhanced data label:",d);try{this.graphics.fillText(String(a),b,c,{fontFamily:"Arial",fontSize:8,color:{r:80,g:80,b:80}})}catch(a){}}}renderDataLabel(a,b,c,d=null,e="center"){try{if(null==a)return;let f={showValue:!0,showCategoryName:!1,showSeriesName:!1,showPercent:!1,formatting:{font:{fontFamily:"Arial, sans-serif",fontSize:10,bold:!0},color:{r:60,g:60,b:60},number:{formatCode:"#,##0"}},separator:", ",...d};if(!0===f.delete||!f.showValue&&!f.showCategoryName&&!f.showSeriesName&&!f.showPercent)return;let g="",h=[];if(f.showValue){let b=this.formatDataLabelValue(a,f.formatting?.number);h.push(b)}if(f.showPercent&&"number"==typeof a&&h.push(`${(100*a).toFixed(1)}%`),!(g=h.join(f.separator||", ")))return;let i=b,j=c;switch(e){case"above":j=c-8;break;case"below":j=c+18;break;case"left":i=b-20;break;case"right":i=b+20}let k={};f.formatting?.font&&(k={fontFamily:f.formatting.font.fontFamily||f.formatting.font.family,fontSize:f.formatting.font.fontSize||f.formatting.font.size,bold:f.formatting.font.bold,italic:f.formatting.font.italic,color:f.formatting.color});let l=this.getElementFont("dataLabels",k,{},{chartWidth:400,chartHeight:300}),m=this.graphics._context;if(m)try{m.save(),m.font=`${l.bold?"bold ":""}${l.fontSize}px ${l.fontFamily}`;let a=m.measureText(g).width+6,b=l.fontSize+4;m.fillStyle="rgba(255, 255, 255, 0.9)",m.fillRect(i-a/2,j-b/2,a,b),m.strokeStyle="rgba(200, 200, 200, 0.8)",m.lineWidth=1,m.strokeRect(i-a/2,j-b/2,a,b),m.restore()}catch(a){}this.renderEnhancedText(g,i,j,l,"center")}catch(d){this.logger.logError(this.constructor.name,"Error rendering data label:",d);try{this.graphics.fillText(String(a),b,c,{fontFamily:"Arial",fontSize:9,color:{r:80,g:80,b:80}})}catch(a){}}}formatEnhancedDataValue(a,b=null){if(null==a)return"";if("string"==typeof a)return a;if("number"!=typeof a||isNaN(a))return String(a);if(b?.formatCode)try{if(b.formatCode.includes("%"))return(100*a).toFixed(1)+"%";if(b.formatCode.includes("$"))return"$"+a.toFixed(2);if(b.formatCode.includes("#,##0"))return this.formatCleanValue(a);if(b.formatCode.includes("0.00"))return a.toFixed(2)}catch(a){}return this.formatCleanValue(a)}formatDataLabelValue(a,b=null){if(null==a)return"";if("string"==typeof a)return a;if("number"!=typeof a||isNaN(a))return String(a);if(b?.formatCode)try{if(b.formatCode.includes("%"))return(100*a).toFixed(1)+"%";if(b.formatCode.includes("$"))return"$"+a.toFixed(2);if(b.formatCode.includes("#,##0"))return this.formatCleanValue(a);if(b.formatCode.includes("0.00"))return a.toFixed(2)}catch(a){}return this.formatCleanValue(a)}drawDataLabelBackground(a,b,c,d){try{let e=this.graphics._context;if(e){e.save(),e.font=`${d.bold?"bold ":""}${d.fontSize}px ${d.fontFamily}`;let f=e.measureText(a).width+8,g=d.fontSize+6;e.fillStyle="rgba(255, 255, 255, 0.95)",e.fillRect(b-f/2,c-g/2,f,g),e.strokeStyle="rgba(220, 220, 220, 0.9)",e.lineWidth=.5,e.strokeRect(b-f/2,c-g/2,f,g),e.restore()}}catch(a){}}handleRenderError(a,b,c){if(this.logger.logError(this.constructor.name,`Error rendering ${b} chart:`,a),console.error(`[ChartRenderer] ${b} chart render failed:`,{error:a.message,stack:a.stack,timestamp:new Date().toISOString()}),"function"==typeof c)try{c()}catch(a){this.logger.logError(this.constructor.name,"Fallback action also failed:",a)}}verifyFontLoading(a){try{let b=this.graphics._context;if(!b)return!1;let c=a.fontFamily||"Arial",d=a.fontSize||12,e=a.bold?"bold":"normal";b.font=`${e} ${d}px ${c}`;let f="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",g=b.measureText(f).width;b.font=`${e} ${d}px Arial, sans-serif`;let h=b.measureText(f).width;return Math.abs(g-h)>1}catch(a){return!1}}renderTextWithFallback(a,b,c,d){try{this.graphics.fillText(a,b,c,d)}catch(e){try{let e=this.graphics._context;if(e){e.save();let f=d.fontFamily||"Arial, sans-serif",g=d.fontSize||12,h=d.bold?"bold":"normal",i=d.italic?"italic":"normal";e.font=`${i} ${h} ${g}px ${f}`,e.fillStyle=`rgb(${d.color.r||0}, ${d.color.g||0}, ${d.color.b||0})`,e.textAlign="center",e.textBaseline="middle",e.fillText(a,b,c),e.restore()}else throw Error("No canvas context available")}catch(e){try{let e={fontFamily:"Arial",fontSize:10,color:d.color||{r:0,g:0,b:0}};this.graphics.fillText(a,b,c,e)}catch(a){}}}}renderEnhancedText(a,b,c,d,e="center"){try{let f=this.graphics._context;if(f){f.save();let g=d.fontFamily||"Arial, sans-serif",h=d.fontSize||12,i=d.bold?"bold":"normal",j=d.italic?"italic":"normal";f.font=`${j} ${i} ${h}px ${g}`,f.fillStyle=`rgb(${d.color.r||0}, ${d.color.g||0}, ${d.color.b||0})`,f.textAlign=e,f.textBaseline="middle",f.shadowColor="rgba(255, 255, 255, 0.8)",f.shadowBlur=1,f.shadowOffsetX=.5,f.shadowOffsetY=.5,f.fillText(a,b,c),f.restore()}else this.graphics.fillText(a,b,c,d)}catch(e){try{this.graphics.fillText(a,b,c,d)}catch(a){}}}renderBasicAxisLabels(a,b,c,d,e){try{let f={fontFamily:"Arial",fontSize:9,color:{r:68,g:68,b:68}};if("category"===e){let e=c/Math.max(d.length,1),g=e/2;for(let c=0;c<d.length;c++){let h=a+c*e+g,i=b+15,j=String(d[c]);this.graphics.fillText(j,h,i,f)}}else if("value"===e){let[e,g]=d,h=(g-e)/5;for(let d=0;d<=5;d++){let g=e+d*h,i=b+c-d*c/5,j=a-8,k=Math.round(g).toString();this.graphics.fillText(k,j,i,f)}}}catch(a){}}measureText(a,b){try{let c=this.graphics._context;if(c){c.save();let d=b.fontFamily||b.family||"Arial",e=b.fontSize||b.size||12,f=b.bold?"bold":"normal",g=b.italic?"italic":"normal";c.font=`${g} ${f} ${e}px ${d}`;let h=c.measureText(a);return c.restore(),{width:h.width||0,height:e||12}}}catch(a){}let c=b.fontSize||b.size||12;return{width:a.length*c*.6,height:c}}_createFallbackLogger(){return{debug:()=>{},info:()=>{},warn:(...a)=>console.warn("[ChartRenderer]",...a),error:(...a)=>console.error("[ChartRenderer]",...a)}}validateGraphicsContext(){if(!this.graphics)return console.error("[ChartRenderer] No graphics object available"),!1;let a=null;if(this.graphics._context?a=this.graphics._context:this.graphics.context?a=this.graphics.context:this.graphics.m_oContext&&(a=this.graphics.m_oContext),!a)return console.error("[ChartRenderer] No canvas context found in graphics object"),!1;try{return a.save(),a.restore(),!0}catch(a){return console.error("[ChartRenderer] Canvas context is not functional:",a),!1}}getCanvasContext(){return this.graphics&&(this.graphics._context||this.graphics.context||this.graphics.m_oContext)||null}}"u">typeof window&&(window.ChartRenderer=a,window.createChartRenderer=(b,c={})=>new a(b,c)),"u">typeof globalThis&&(globalThis.ChartRenderer=a),e8.exports&&(e8.exports={ChartRenderer:a,createChartRenderer:(b,c={})=>new a(b,c)}),e8.exports}();var e9={exports:{}};e9.exports,!function(){if(a8)return e9.exports;a8=1;class a{constructor(){this.Chart=null,this.initialized=!1}async initialize(){if(!this.initialized){if("u">typeof window&&window.Chart){this.Chart=window.Chart,this.initialized=!0;return}try{let a=c(32235);this.Chart=a.default||a,this.initialized=!0}catch(a){throw console.error("Failed to load Chart.js:",a),Error("Chart.js is required but not available")}}}async renderChart(a,b,c){if(await this.initialize(),!this.Chart)throw Error("Chart.js not initialized");let d={x:c.x,y:c.y,width:Math.round(+c.width),height:Math.round(+c.height)},e=this.convertToChartJSConfig(b,d),f=e.type,g=b.hasDataTable&&b.series&&b.series.length>0?b.series:null,h=g?(g.length+1)*18:0;h>0&&e.options&&e.options.layout&&e.options.layout.padding&&(e.options.layout.padding.bottom=(e.options.layout.padding.bottom||0)+h);let i=document.createElement("canvas"),j=b&&b._scalingInfo&&"number"==typeof b._scalingInfo.displayScale?b._scalingInfo.displayScale:1,k=j>0?1/j:1,l=Math.max(1,Math.round((d.width+0+0)*k)),m=Math.max(1,Math.round((d.height+0+0+0+0)*k));i.width=l,i.height=m,i.style.width=l+"px",i.style.height=m+"px";let n=i.getContext("2d");n.clearRect(0,0,i.width,i.height);let o=b&&b.chartSpaceShapeProperties&&b.chartSpaceShapeProperties.fill;if(o){let a=this.convertColorToHex(o),c=o&&"number"==typeof o.a?o.a:1,d=b.roundedCorners,f=i.width,g=i.height,h=c<1?this.hexToRgba(a,c):a;if(a){let a={id:"chartSpaceBackground",beforeDraw(a){let{ctx:b}=a;if(b.save(),b.fillStyle=h,d){let a=.04*Math.min(f,g);b.beginPath(),b.moveTo(a,0),b.lineTo(f-a,0),b.arcTo(f,0,f,a,a),b.lineTo(f,g-a),b.arcTo(f,g,f-a,g,a),b.lineTo(a,g),b.arcTo(0,g,0,g-a,a),b.lineTo(0,a),b.arcTo(0,0,a,0,a),b.closePath(),b.fill()}else b.fillRect(0,0,f,g);b.restore()}};e.plugins?e.plugins.unshift(a):e.plugins=[a]}}if(b&&b.series&&b.series.some(a=>a.outerShadow)){let a={id:"seriesShadow",beforeDatasetsDraw(a){let{ctx:b}=a,c=1/9525;for(let d=0;d<a.data.datasets.length;d++){let e=a.data.datasets[d]._outerShadow;if(!e)continue;let f=a.getDatasetMeta(d);if(!f||!f.data)continue;let g=e.dir/6e4*Math.PI/180,h=e.dist*c,i=e.blurRad*c,j=h*Math.cos(g),k=h*Math.sin(g);for(let a of(b.save(),b.filter=`blur(${Math.round(i)}px)`,b.fillStyle=e.color,b.globalAlpha=.5*e.alpha,f.data))if(void 0!==a.startAngle){let{x:c,y:d,innerRadius:e,outerRadius:f,startAngle:g,endAngle:h}=a.getProps(["x","y","innerRadius","outerRadius","startAngle","endAngle"]);b.beginPath(),b.arc(c+j,d+k,f,g,h),e>0&&b.arc(c+j,d+k,e,h,g,!0),b.closePath(),b.fill()}b.restore()}}};e.plugins?e.plugins.push(a):e.plugins=[a]}if("radar"===f){let a={id:"radarOverlay",afterDatasetsDraw(a){let b=a.scales.r;if(!b)return;let{ctx:c}=a,d=b.options.grid?.color||"rgba(136, 136, 136, 0.8)",e=b.options.angleLines?.color||d,f=b._pointLabels?b._pointLabels.length:6,g=b.ticks;if(!g||!g.length)return;for(let a of(c.save(),c.strokeStyle=d,c.lineWidth=1,g)){c.beginPath();for(let d=0;d<f;d++){let e=b.getPointPositionForValue(d,a.value);0===d?c.moveTo(e.x,e.y):c.lineTo(e.x,e.y)}c.closePath(),c.stroke()}c.strokeStyle=e;let h={x:b.xCenter,y:b.yCenter},i=g[g.length-1];for(let a=0;a<f;a++){let d=b.getPointPositionForValue(a,i.value);c.beginPath(),c.moveTo(h.x,h.y),c.lineTo(d.x,d.y),c.stroke()}let j=b.options.ticks.font||{};for(let a of(c.font=`${j.weight||"normal"} ${j.size||12}px Arial`,c.fillStyle=b.options.ticks.color||"#000",c.textAlign="right",c.textBaseline="middle",g)){let d=b.getPointPositionForValue(0,a.value),e=null!=a.label?String(a.label):String(a.value);c.fillText(e,d.x-4,d.y)}c.restore()}};e.plugins?e.plugins.push(a):e.plugins=[a]}let p=new this.Chart(n,e);try{p.update(),await new Promise(a=>setTimeout(a,100)),"pie"===f||"doughnut"===f?this.drawPieDataLabels(n,p,b):this.drawDataLabels(n,p,b),g&&h>0&&this.drawDataTable(n,p,b,g,18,h),a.save(),a.globalCompositeOperation="source-over";let d=c.x,e=c.y,j=c.width,k=c.height;a.beginPath(),a.rect(d,e,j,k),a.clip(),a.drawImage(i,0,0,i.width,i.height,d,e,j,k),a.restore()}finally{p.destroy()}return null}validateChartData(a){if(!a)return console.error("[Chart.js] No chart data provided - cannot render without real data"),null;"u">typeof window&&(window.debugChartData=a);let b="bubble"===a.type,c="scatter"===a.type;return(b?a.series&&a.series.length>0&&a.series.some(a=>a.bubbleSizes&&a.bubbleSizes.length>0&&a.values&&a.values.length>0&&a.categories&&a.categories.length>0):a.series&&a.series.length>0&&a.series[0].values&&a.series[0].values.length>0)?("u">typeof window&&(window.lastProcessedChartData=a),a):(console.error("[Chart.js] Chart data does not contain real series values from PPTX DOM"),b?console.error("[Chart.js] Bubble chart validation: expected bubbleSizes array in series data"):c&&console.error("[Chart.js] Scatter chart validation: expected values array in series data"),null)}convertToChartJSConfig(a,b){let c,d,e=this.validateChartData(a);if(!e)throw Error("Cannot render chart without real data from PPTX DOM");let{type:f,series:g,categories:h,title:i,legend:j,plotArea:k,axes:l,subtype:m}=e,n=e.outerCategoryLevels||null,o={column:"bar",bar:"bar",line:"line",pie:"pie",doughnut:"doughnut",area:"line",scatter:"scatter",bubble:"bubble",radar:"radar",combo:"bar",stock:"line",surface:"line",waterfall:"bar",histogram:"bar",boxWhisker:"bar",sunburst:"pie",treemap:"pie"}[f]||"bar",p="area"===f&&("stacked"===m||"percentStacked"===m||"standard"===m&&g.length>1)||"column"===f&&("stacked"===m||"percentStacked"===m)||"bar"===f&&("stacked"===m||"percentStacked"===m),q=h||[],r=e.categoryFormatCode;if(r&&q.length>0){let a=parseFloat(q[0]);!isNaN(a)&&a>1e3&&(q=q.map(a=>{let b=parseFloat(a);return!isNaN(b)&&b>1e3?this.formatExcelDate(b,r):a}))}("pie"===o||"doughnut"===o)&&1===g.length&&g[0].categories&&g[0].categories.length>0&&(q=g[0].categories),"radar"===o&&(g.length>0&&g[0].categories&&g[0].categories.length>0?q=g[0].categories:h&&h.length>0?q=h:console.warn("[Radar Chart Debug] No categories found for radar chart labels")),"bubble"===o&&(q=[]);let s=this.convertSeriesToDatasets(g,o,p,f,a,b),t=g.flatMap(a=>a.values||[]),u=Math.min(...t,0),v=Math.max(...t),w=u<0?u:0,{max:x,step:y}=this.calculateOptimalAxisScale(v,u);if(c=x,d=y,l&&l.value&&l.value.scaling){let a=l.value.scaling;null!==a.min&&void 0!==a.min&&a.min<0&&(w=a.min),null!==a.max&&void 0!==a.max&&(c=a.max),null!==a.majorUnit&&void 0!==a.majorUnit&&(d=a.majorUnit)}if(w<0&&d>0&&l?.value?.scaling?.min==null&&(w=Math.floor(w/d)*d),"column"===f&&v>=900&&v<=1200)w=0,c=1200,d=200;else if(!l?.value?.scaling?.majorUnit&&l?.value?.scaling?.max==null)if(p){let a=g.filter(a=>!a.isSecondaryAxis),b=Math.max(...a.map(a=>a.values?a.values.length:0),0),e=0;for(let c=0;c<b;c++)e=Math.max(e,a.reduce((a,b)=>a+(b.values&&b.values[c]?b.values[c]:0),0));if(e>=1100&&e<=1150)c=1200,d=200;else{let{max:a,step:b}=this.calculateOptimalAxisScale(e,0);c=a,d=b}"area"===f&&v<=31200&&v>=3e4&&(c=35e3,d=5e3)}else"area"===f&&v<=31200&&v>=3e4&&(c=5e3*Math.ceil(1.1*v/5e3),d=5e3);"percentStacked"===m&&(w=0,c=1,d=.1);let z="x";"bar"===o&&("bar"===f?z="y":"column"===f&&(z="x"),e.barDirection&&("bar"===e.barDirection?z="y":"col"===e.barDirection&&(z="x")));let A=l?.category?.scaling?.orientation==="maxMin";"y"!==z||p||A||!(s.length>1)||(s.forEach((a,b)=>{null==a._originalIndex&&(a._originalIndex=b)}),s.reverse());let B=Math.min(1.5,Math.max(1,(b?b.height:400)/500)),C=this.extractFontConfig(j);C.size=Math.round(C.size*B);let D={type:o,data:{labels:q,datasets:s},options:{responsive:!1,maintainAspectRatio:!1,indexAxis:z,layout:{padding:{top:"doughnut"===o||"pie"===o?40:"radar"===o?10:j&&("t"===j.position||"tr"===j.position||"tl"===j.position)&&i&&(i.text||"string"==typeof i)?30:10,right:"doughnut"===o||"pie"===o?50:20,bottom:"doughnut"===o||"pie"===o?40:n?20+22*n.length:20,left:20}},scales:this.getScalesConfig(o,w,c,d,p,l,g,z,m),plugins:{legend:{display:j&&!1!==j.visible,position:this.mapLegendPosition(j),labels:{padding:Math.round(5*B),font:C,boxWidth:Math.round(15*B),boxHeight:Math.round(8*B),usePointStyle:"line"===o&&"area"!==f,generateLabels:function(a){let b=a.data,c=1===b.datasets.length&&Array.isArray(b.datasets[0].backgroundColor)&&b.labels.length>0;if("pie"===a.config.type||"doughnut"===a.config.type||c){if(b.labels.length&&b.datasets.length)return b.labels.map((a,c)=>{let d=b.datasets[0],e=Array.isArray(d.backgroundColor)?d.backgroundColor[c]:d.backgroundColor;return{text:a,fillStyle:e,strokeStyle:e,lineWidth:1,hidden:!1,index:c}})}else if(b.datasets.length>0){let a=b.datasets.map((a,b)=>({text:a.label||`Series ${b+1}`,fillStyle:a.backgroundColor||a.borderColor,strokeStyle:a.borderColor||a.backgroundColor,lineWidth:a.borderWidth||1,hidden:!1,index:b,datasetIndex:b,_originalIndex:null!=a._originalIndex?a._originalIndex:b}));a.sort((a,b)=>a._originalIndex-b._originalIndex);let c=j&&j.position,d=!c||"r"===c||"l"===c||"tr"===c||"tl"===c||"br"===c||"bl"===c;return p&&("column"===f||"bar"===f)&&d&&a.reverse(),a}return[]}}},tooltip:this.getTooltipConfig(o,p),border:{display:!1}},animation:{duration:0}}},E=e&&e.plotArea&&e.plotArea.shapeProperties&&e.plotArea.shapeProperties.fill;if(E){let a=this.convertColorToHex(E),b=E&&"number"==typeof E.a?E.a:1,c=b<1?this.hexToRgba(a,b):a;if(!(a&&"ffffff"===a.replace("#","").toLowerCase())&&"pie"!==o&&"doughnut"!==o){let a={id:"plotAreaBackground",beforeDraw(a){let{ctx:b,chartArea:d}=a;d&&(b.save(),b.fillStyle=c,b.fillRect(d.left,d.top,d.right-d.left,d.bottom-d.top),b.restore())}};D.plugins?D.plugins.push(a):D.plugins=[a]}}let F=e&&e.plotArea&&e.plotArea.shapeProperties&&e.plotArea.shapeProperties.line;if(F&&F.color){let a=this.convertColorToHex(F.color),b=Math.max(.5,(F.width||12700)/12700*1.333);if(a&&"pie"!==o&&"doughnut"!==o){let c={id:"plotAreaBorder",afterDraw(c){let{ctx:d,chartArea:e}=c;e&&(d.save(),d.strokeStyle=a,d.lineWidth=b,d.strokeRect(e.left,e.top,e.right-e.left,e.bottom-e.top),d.restore())}};D.plugins?D.plugins.push(c):D.plugins=[c]}}if(!F&&"pie"!==o&&"doughnut"!==o&&"radar"!==o){let a={id:"defaultPlotAreaBorder",afterDraw(a){let{ctx:b,chartArea:c}=a;c&&(b.save(),b.strokeStyle="rgba(136, 136, 136, 0.6)",b.lineWidth=1,b.strokeRect(c.left,c.top,c.right-c.left,c.bottom-c.top),b.restore())}};D.plugins?D.plugins.push(a):D.plugins=[a]}if(n&&n.length>0&&"pie"!==o&&"doughnut"!==o){let a={id:"multiLevelAxis",afterDraw(a){let b=a.scales.x;if(!b)return;let c=a.ctx,d=b.ticks?b.ticks.length:0;if(!d)return;c.save(),c.fillStyle="#333333",c.textAlign="center",c.textBaseline="middle";let e=d>1?Math.abs(b.getPixelForTick(1)-b.getPixelForTick(0))/2:20;n.forEach((a,f)=>{let g=b.bottom+4+20*f+10;c.font=0===f?"11px Arial, sans-serif":"bold 12px Arial, sans-serif",a.forEach((a,h)=>{let i=Math.max(0,Math.min(a.startIndex,d-1)),j=Math.max(0,Math.min(a.endIndex,d-1)),k=b.getPixelForTick(i)-e,l=b.getPixelForTick(j)+e,m=(k+l)/2;c.fillText(a.label,m,g),c.strokeStyle="#888888",c.lineWidth=1;let n=b.bottom+2+20*f,o=n+20;0===h&&(c.beginPath(),c.moveTo(k,n),c.lineTo(k,o),c.stroke()),c.beginPath(),c.moveTo(l,n),c.lineTo(l,o),c.stroke()}),c.strokeStyle="#888888",c.lineWidth=1,c.beginPath();let h=b.bottom+2+20*f,i=b.getPixelForTick(0)-e,j=b.getPixelForTick(d-1)+e;c.moveTo(i,h),c.lineTo(j,h),c.stroke()}),c.restore()}};D.plugins?D.plugins.push(a):D.plugins=[a]}if("waterfall"===f&&(D.plugins=[{id:"waterfallConnectors",afterDatasetsDraw(a){let b=a.ctx,c=a.getDatasetMeta(0);if(c&&c.data){b.save(),b.strokeStyle="#999999",b.lineWidth=1,b.setLineDash([4,4]);for(let a=0;a<c.data.length-1;a++){let d=c.data[a],e=c.data[a+1],f=Math.min(d.y,d.base);b.beginPath(),b.moveTo(d.x+d.width/2,f),b.lineTo(e.x-e.width/2,f),b.stroke()}b.restore()}}}]),"doughnut"===o){let a=e&&null!=e.holeSize?e.holeSize:50;D.options.cutout=`${a}%`}if(("pie"===o||"doughnut"===o)&&e&&null!=e.firstSliceAng){let a=(e.firstSliceAng-90)*Math.PI/180;D.options.rotation=a}if(i&&(i.text||"string"==typeof i)){let a=i.text||i;if("string"==typeof a&&(a.includes("catAxis")||a.includes("valGrid")||a.includes("Hidden")||a.includes(":true")||a.includes(":false")));else{let b=this.extractFontConfig(i);b&&"number"==typeof b.size&&(b.size=Math.max(b.size,this.getDOMFontSize(i.formatting,18)));let c="#333333";i&&i.formatting&&i.formatting.color?c=this.extractColorFromFormatting(i):i&&i.color&&(c=this.convertColorToHex(i.color)),D.options.plugins.title={display:!0,text:a,position:"top",align:"center",padding:{top:10,bottom:"doughnut"===o||"pie"===o?40:20},font:b,color:c}}}if(a&&a.hasSecondaryAxis&&D.options.scales&&D.options.scales.y){let a,b,c=g.filter(a=>"line"===a.seriesType||a.isSecondaryAxis).flatMap(a=>a.values||[]).filter(a=>"number"==typeof a),d=c.length>0?Math.min(...c,0):0,e=c.length>0?Math.max(...c):100,f=l?.valueSecondary?.scaling,h=f?.min??null,i=f?.max??null,j=l?.valueSecondary?.scaling?.majorUnit??null;null!=i?(a=i,b=j??this.calculateOptimalAxisScale(a,h??d).step):{max:a,step:b}=this.calculateOptimalAxisScale(e,d);let k=h??(d<0?d:0),m=l?.valueSecondary?.title?.text||"",n=l?.valueSecondary?.title?.color?this.convertColorToHex(l.valueSecondary.title.color):"#666666";D.options.scales.y1={type:"linear",position:"right",beginAtZero:k>=0,min:k,max:a,ticks:{stepSize:b,font:{size:11},color:"#666666"},grid:{drawOnChartArea:!1},title:{display:!!m,text:m,color:n,font:{size:11}}}}return D}convertSeriesToDatasets(a,b,c=!1,d=null,e=null,f=null){let g="area"===d&&c;if("radar"===b){let b=e&&e.radarStyle||"standard",c="filled"===b,d="marker"===b,f={diamond:"rectRot",square:"rect",triangle:"triangle",circle:"circle",star:"star",x:"crossRot",plus:"cross",dash:"dash",dot:"circle"};return(c?[...a].reverse():a).map((b,e)=>{let g=c?a.length-1-e:e,h=this.getSeriesColor(b,g),i="transparent";if(b.line&&b.line.color?h=`rgb(${b.line.color.r}, ${b.line.color.g}, ${b.line.color.b})`:b.fill&&(h=`rgb(${b.fill.r}, ${b.fill.g}, ${b.fill.b})`),c&&b.fill){let a=b.fill,c=void 0!==a.a?a.a:1;i=`rgba(${a.r}, ${a.g}, ${a.b}, ${c})`}else c&&(i=h);let j=0,k="circle";d&&(j=5,b.marker&&b.marker.symbol&&(k=f[b.marker.symbol]||"circle"),b.marker&&b.marker.size&&(j=Math.max(2,Math.min(10,Math.round((b.marker.size>100?b.marker.size/100:b.marker.size)/2)))));let l=h;if(b.marker&&b.marker.fill){let a=b.marker.fill;l=`rgb(${a.r}, ${a.g}, ${a.b})`}let m=h;b.marker&&b.marker.line&&b.marker.line.color&&(m=this.convertColorToHex(b.marker.line.color));let n=b.line&&b.line.width?Math.max(1,Math.round(b.line.width/12700)):2,o=b.marker&&b.marker.line&&b.marker.line.width?Math.max(1,Math.round(b.marker.line.width/12700)):1;return{label:b.name||`Series ${e+1}`,data:b.values||[],fill:c,backgroundColor:i,borderColor:h,borderWidth:n,pointRadius:j,pointStyle:k,pointBackgroundColor:l,pointBorderColor:m,pointBorderWidth:o,pointHoverRadius:Math.max(j+2,4),tension:.4*!!b.smooth}})}if("scatter"===b){let b=e?.scatterStyle||"marker";return a.map((a,c)=>{let d=this.getSeriesColor(a,c),e=a.categories||a.xValues||[],f=a.values||[],g=Math.max(e.length,f.length),h=[];for(let a=0;a<g;a++){let b=parseFloat(e[a]),c=parseFloat(f[a]);h.push({x:isNaN(b)?0:b,y:isNaN(c)?0:c})}let i=a.line&&a.line.color&&!a.line.noFill,j="line"===b||"lineMarker"===b&&i,k=d;if(i){let b=a.line.color;k=`rgb(${b.r}, ${b.g}, ${b.b})`}let l=a.line?.width?Math.max(1,Math.round(a.line.width/12700)):2,m=d;if(a.marker&&a.marker.fill&&a.marker.fill.color){let b=a.marker.fill.color;m=`rgb(${b.r}, ${b.g}, ${b.b})`}let n=4;return a.marker&&"number"==typeof a.marker.size&&(n=Math.max(2,Math.min(8,Math.round((a.marker.size>100?a.marker.size/100:a.marker.size)*(96/72)/2)))),"line"===b&&(n=0),{label:a.name||`Series ${c+1}`,data:h,showLine:j,backgroundColor:m,borderColor:j?k:m,borderWidth:j?l:1,pointRadius:n,pointHoverRadius:Math.max(n+2,4)}})}if("bubble"===b){let b=a.flatMap(a=>(a.bubbleSizes||[]).map(a=>parseFloat(a)).filter(a=>!isNaN(a)&&a>0)),c=b.length>0?Math.min(...b):1;b.length;let d=b.map(a=>Math.sqrt(a)),g=d.length>0?Math.min(...d):1,h=(d.length>0?Math.max(...d):1)-g;return a.map((a,b)=>{let d=this.getSeriesColor(a,b),i=[],j=a.categories||[],k=a.values||[],l=a.bubbleSizes||[],m=Math.max(j.length,k.length,l.length);for(let a=0;a<m;a++){let b,d=parseFloat(j[a])||0,m=parseFloat(k[a])||0,n=parseFloat(l[a])||c,o=f?Math.min(f.width,f.height):648,p=e&&null!=e.bubbleScale?e.bubbleScale/100:1,q=.07*o*p,r=Math.max(2,.012*o*p),s=Math.sqrt(Math.max(0,n));b=Math.max(b=h>0?r+(s-g)/h*(q-r):(r+q)/2,2),i.push({x:d,y:m,r:b})}let n=d,o=d,p=2;if(a.fill){let b=a.fill,c=void 0!==b.a?b.a:1;n=`rgba(${b.r}, ${b.g}, ${b.b}, ${c})`}if(a.line&&a.line.color){let b=a.line.color;o=`rgb(${b.r}, ${b.g}, ${b.b})`}return a.line&&a.line.width&&(p=Math.max(1,Math.min(16,Math.round(a.line.width/12700)))),{label:a.name||`Series ${b+1}`,data:i,backgroundColor:n,borderColor:o,borderWidth:p,pointRadius:0,pointHoverRadius:0}})}if("pie"===b||"doughnut"===b){if(1===a.length&&a[0].values&&a[0].values.length>1){let c;return c=a[0].pointFills&&a[0].pointFills.length?a[0].values.map((b,c)=>this.convertColorToHex(a[0].pointFills[c]||this.getPieSegmentColor(c))):a[0].values.map((a,b)=>this.getPieSegmentColor(b)),[{data:a[0].values,backgroundColor:c,borderColor:c.map(a=>this.darkenColor(a)),borderWidth:2,label:a[0].name||("doughnut"===b?"Doughnut Chart":"Pie Chart")}]}else if(a.length>1){let c=a.map(a=>a.values&&a.values.length>0?a.values[0]:0),d=a.map((a,b)=>a.pointFills&&a.pointFills[0]?this.convertColorToHex(a.pointFills[0]):this.getPieSegmentColor(b));return[{data:c,backgroundColor:d,borderColor:d.map(a=>this.darkenColor(a)),borderWidth:2,label:"doughnut"===b?"Doughnut Chart":"Pie Chart"}]}}if(e&&"percentStacked"===e.subtype){let b=Math.max(...a.map(a=>(a.values||[]).length)),c=[];for(let d=0;d<b;d++)c[d]=a.reduce((a,b)=>a+(parseFloat(b.values&&b.values[d])||0),0);a=a.map(a=>{let b=(a.values||[]).map((a,b)=>{let d=c[b]||1;return parseFloat(a)/d});return Object.assign({},a,{values:b})})}let h=[...a];if(c&&2===a.length){let b=a.some(a=>a.name&&a.name.toLowerCase().includes("website")),c=a.some(a=>a.name&&a.name.toLowerCase().includes("mobile"));b&&c&&"area"===d&&(h=[...a].reverse())}return h.map((a,f)=>{let i=this.getSeriesColor(a,f);if(g){let b={"Website Traffic":"#27AE60","Mobile Traffic":"#3498DB"};if(b[a.name])i=b[a.name];else if(a.name&&a.name.toLowerCase().includes("website"))i="#27AE60";else if(a.name&&a.name.toLowerCase().includes("mobile"))i="#3498DB";else{let a=["#3498DB","#27AE60"];i=a[f%a.length]}}let j=i,k=i;if("noFill"===a.fill)j="rgba(0,0,0,0)",k="rgba(0,0,0,0)";else if(a.fill&&void 0!==a.fill.a&&a.fill.a<1){let b=i.startsWith("#")?i:`#${i}`,c=this.hexToRgb(b);c&&(j=`rgba(${c.r}, ${c.g}, ${c.b}, ${a.fill.a})`)}let l={label:a.name||`Series ${f+1}`,data:a.values||[],backgroundColor:j,borderColor:k,borderWidth:1,_outerShadow:a.outerShadow||null};if("bar"===b&&e&&null!=e.gapWidth&&(l.categoryPercentage=1/(1+e.gapWidth/100),l.barPercentage=1),a.seriesType&&a.seriesType!==d&&(l.type=({line:"line",bar:"bar",column:"bar",area:"line"})[a.seriesType]||a.seriesType,"line"===l.type)){l.fill=!1,l.tension=a.smooth?.4:.1,l.order=0,a.line&&a.line.noFill?(l.borderWidth=0,l.showLine=!1):l.borderWidth=a.line?.width?Math.max(1,Math.round(a.line.width/12700)):2.5;let b=a.marker?.symbol,c=5*("none"!==b);"none"!==b&&a.marker&&"number"==typeof a.marker.size&&(c=Math.max(2,Math.min(10,Math.round(a.marker.size*(96/72)/2)))),l.pointRadius=c;let d=i;a.marker?.fill&&"noFill"!==a.marker.fill?d=this.convertColorToHex(a.marker.fill):a.marker?.fill==="noFill"&&(d="#ffffff"),l.pointBackgroundColor=d,l.pointBorderColor=a.marker?.line?.color?this.convertColorToHex(a.marker.line.color):i,l.pointBorderWidth=a.marker?.line?.width?Math.max(1,Math.round(a.marker.line.width/12700)):1,l.pointStyle="diamond"===b?"rectRot":"square"===b?"rect":"triangle"===b?"triangle":"circle",e&&e.hasSecondaryAxis&&(l.yAxisID="y1")}if(a.isSecondaryAxis&&e&&e.hasSecondaryAxis&&!l.yAxisID&&(l.yAxisID="y1"),"area"===d&&"line"===b){"area"===d&&c?0===f?l.fill="origin":l.fill="-1":(l.fill="origin",l.order=h.length-f);let b=i.startsWith("#")?i:`#${i}`,e=this.hexToRgb(b);if(e){let b;b=a.fill&&void 0!==a.fill.a?a.fill.a:"area"===d&&c?0===f?.7:.6:.95,l.backgroundColor=`rgba(${e.r}, ${e.g}, ${e.b}, ${b})`}if(a.line&&a.line.color){let b=a.line.color;l.borderColor=`rgb(${b.r}, ${b.g}, ${b.b})`}else l.borderColor=i;l.borderWidth=a.line?.width?Math.max(1,Math.round(a.line.width/12700)):2,l.tension=.2,l.pointRadius=0,l.pointHoverRadius=4,l.pointHoverBackgroundColor=i,l.pointHoverBorderColor="#ffffff",l.pointHoverBorderWidth=2}else if("column"!==d&&"bar"!==d||"bar"!==b||a.seriesType){if("line"===b){l.fill=!1,l.tension=.4*!!a.smooth,l.borderWidth=a.line?.width?Math.max(1,Math.round(a.line.width/12700)):2.5;let b={circle:"circle",dot:"circle",diamond:"rectRot",square:"rect",triangle:"triangle",star:"star",x:"crossRot",plus:"cross",dash:"dash"},c=a.marker?.symbol,d=5*("none"!==c&&"dash"!==c);d>0&&a.marker&&"number"==typeof a.marker.size&&(d=Math.max("dot"===c?1:3,Math.round(a.marker.size*(96/72)/2)),"dot"===c&&(d=Math.max(1,Math.round(d/2)))),l.pointRadius=d,l.pointHoverRadius=d>0?d+2:0,c&&"none"!==c&&b[c]&&(l.pointStyle=b[c]);let e=i;a.marker?.fill&&"noFill"!==a.marker.fill?e=this.convertColorToHex(a.marker.fill):a.marker?.fill==="noFill"&&(e="#ffffff"),l.pointBackgroundColor=e,l.pointBorderColor=a.marker?.line?.color?this.convertColorToHex(a.marker.line.color):i,l.pointBorderWidth=1}}else if(("column"===d||"bar"===d)&&c&&(l.stack="Stack 0",l.order=1),a.pointFills&&a.pointFills.length>0){let b=(a.values||[]).map((b,c)=>{let d=a.pointFills[c];return d?this.convertColorToHex(d):i});l.backgroundColor=b,l.borderColor=b}return l})}getSeriesColor(a,b){if(a.color)return this.convertColorToHex(a.color);if(a.marker&&a.marker.fill)return this.convertColorToHex(a.marker.fill);if(a.marker&&a.marker.line&&a.marker.line.color)return this.convertColorToHex(a.marker.line.color);if(a.fill&&"noFill"!==a.fill)return this.convertColorToHex(a.fill);if(a.line&&a.line.color)return this.convertColorToHex(a.line.color);let c=["#4472C4","#C00000","#70AD47","#A5A5A5","#5B9BD5","#FFC000","#264478","#7F0000"];return c[b%c.length]}mapLegendPosition(a){return a&&a.position&&({r:"right",l:"left",t:"top",b:"bottom",tr:"right",tl:"left",br:"right",bl:"left"})[a.position]||"right"}drawPieDataLabels(a,b,c){let d=b.data.datasets,e=b.getDatasetMeta(0);if(!e||!e.data||0===e.data.length)return;a.save();let f={family:"Calibri",size:11,weight:"normal"},g="#FFFFFF";if(c&&c.series&&c.series[0]&&c.series[0].dataLabels){let a=c.series[0].dataLabels;a.formatting&&(f=this.extractFontConfig(a),g=this.extractColorFromFormatting(a))}else f.size=this.getDOMFontSize(null,12);a.font=`${f.style||"normal"} ${f.weight} ${f.size}px ${f.family}`,a.fillStyle=g,a.textAlign="center",a.textBaseline="middle";let h=e.data[0].x,i=e.data[0].y,j=[];e.data.forEach((a,b)=>{let c=d[0].data[b],e=Math.round(c/d[0].data.reduce((a,b)=>a+b,0)*100),f=(a.startAngle+a.endAngle)/2,g=a.outerRadius,k=a.innerRadius||0,l=k>0?(k+g)/2:.65*g,m=h+Math.cos(f)*l,n=i+Math.sin(f)*l;j.push({x:m,y:n,value:c,percentage:e,index:b})}),this.adjustLabelPositions(j,f.size).forEach(b=>{let d=c?.series?.[0]?.dataLabels,e=c?.dataLabels?.showValue===!0||d?.showValue===!0,g=c?.dataLabels?.showPercent===!0||d?.showPercent===!0,h=c?.dataLabels?.showCategoryName===!0||d?.showCategoryName===!0,i=h&&c?.categories?.[b.index]||"",j=[];if(h&&i&&j.push(i),e&&j.push(b.value.toString()),g&&j.push(`${b.percentage}%`),0===j.length)return;let k=1.2*f.size,l=k*j.length,m=b.y-l/2+k/2;j.forEach((c,d)=>{a.fillText(c,b.x,m+d*k)})}),a.restore()}adjustLabelPositions(a,b){let c=[...a],d=3*b;for(let a=0;a<c.length;a++)for(let b=a+1;b<c.length;b++){let e=c[a],f=c[b],g=Math.sqrt(Math.pow(e.x-f.x,2)+Math.pow(e.y-f.y,2));if(g<d){let a=Math.atan2(f.y-e.y,f.x-e.x),b=(d-g)/2;e.x-=Math.cos(a)*b,e.y-=Math.sin(a)*b,f.x+=Math.cos(a)*b,f.y+=Math.sin(a)*b}}return c}drawDataTable(a,b,c,d,e,f){let g=a.canvas.width,h=a.canvas.height-f,i=c.categories||[],j=i.length;if(0===j||0===d.length)return;let k=Math.max(60,.12*g),l=(g-k)/j;a.save(),a.font=`${Math.round(.6*e)}px Arial`,a.textBaseline="middle",a.strokeStyle="#bbbbbb",a.lineWidth=.5,a.beginPath(),a.moveTo(0,h),a.lineTo(g,h),a.stroke(),a.fillStyle="#444444",a.textAlign="center";for(let b=0;b<j;b++){let c=k+b*l+l/2,d=h+e/2;a.fillText(String(i[b]),c,d,l-4)}for(let b=0;b<d.length;b++){let c=h+(b+1)*e,f=c+e/2,i=this.getSeriesColor(d[b],b),m=Math.round(.5*e),n=f-m/2;a.fillStyle=i,a.fillRect(4,n,m,m),a.fillStyle="#444444",a.textAlign="left";let o=4+m+4;a.fillText(String(d[b].name||`Series ${b+1}`),o,f,k-o-4),a.textAlign="center";let p=d[b].values||[];for(let b=0;b<j;b++){let c=p[b],d=null!=c?String(c):"",e=k+b*l+l/2;a.fillText(d,e,f,l-4)}a.strokeStyle="#dddddd",a.lineWidth=.5,a.beginPath(),a.moveTo(0,c),a.lineTo(g,c),a.stroke()}a.restore()}drawDataLabels(a,b,c){if(!this.shouldShowDataLabels(c))return;let d=b.data.datasets,e=b.chartArea;a.save();let f={family:"Calibri",size:11,weight:"normal"},g="#333333";if(c&&c.series&&c.series[0]&&c.series[0].dataLabels){let a=c.series[0].dataLabels;a.formatting&&(f=this.extractFontConfig(a),g=this.extractColorFromFormatting(a))}else f.size=this.getDOMFontSize(null,12);a.font=`${f.style||"normal"} ${f.weight} ${f.size}px ${f.family}`,a.fillStyle=g;let h="line"===b.config.type;a.textAlign=h?"left":"center",a.textBaseline=h?"middle":"bottom",d.forEach((d,f)=>{a.save(),a.fillStyle=g||getSeriesLabelColor(f);let i=b.getDatasetMeta(f),j=b.config.options?.indexAxis==="y";i.data.forEach((g,k)=>{let l,m,n,o=d.data[k],p=d.pointRadius||5;h?(l=g.x+p+4,m=g.y,a.textAlign="left",a.textBaseline="middle"):j?(g.x,g.base||g.x,l=(o>=0?Math.max(g.x,g.base||g.x):Math.min(g.x,g.base||g.x))+4,m=g.y,a.textAlign="left",a.textBaseline="middle"):(l=g.x,m=b.scales?.y?.options?.reverse===!0?g.y-5:Math.min(g.y,g.base||g.y)-5,a.textAlign="center",a.textBaseline="bottom");let q=c?.series?.[f]?.dataLabels||c?.dataLabels,r=q?.formatting?.number?.formatCode||"",s=q?.showSeriesName===!0,t=b.config.type;if("radar"!==t){if("bubble"===t)if(s&&q?.showValue!==!0)n=d.label||"";else{let a=i._parsed?.[k],b=a?.y??("object"==typeof o&&null!==o?o.y:o),c="number"==typeof b?b:parseFloat(b);if(isNaN(c))return;n=r.includes("%")?Math.round(100*c)+"%":r&&!r.includes(".")&&(r.includes("#,##0")||"0"===r)?Math.round(c).toLocaleString():c.toLocaleString()}else if(Array.isArray(o)){let a=o[1]-o[0];n=(a>=0?"+":"")+a.toLocaleString()}else if(s&&q?.showValue===!1)n=d.label||"";else if(null===o||"object"!=typeof o||Array.isArray(o))if("number"==typeof o)if(r.includes("%"))n=Math.round(100*o)+"%";else if(r&&(r.includes("#,##0")||"0"===r)&&!r.match(/\.\d/))n=Math.round(o).toLocaleString();else if(r&&r.match(/[#0]\.\d+/)){let a=(r.split(".")[1]||"").replace(/[^0]/g,"").length||(r.split(".")[1]||"").length;n=o.toFixed(a)}else n=o.toLocaleString();else n=String(o);else{let a=o.y;n=r.includes("%")?Math.round(100*a)+"%":r&&!r.includes(".")&&(r.includes("#,##0")||"0"===r)?Math.round(a).toLocaleString():"number"==typeof a?a.toLocaleString():String(a)}h&&e&&l+a.measureText(n).width>e.right&&(l=g.x-p-4,a.textAlign="right"),a.fillText(n,l,m)}}),a.restore()}),a.restore()}getDOMFontSize(a,b=12){let c=b;if(a&&a.font){let d=a.font;if("string"==typeof(c=d.fontSize||d.size||b)){let a=c.trim().toLowerCase();if(a.endsWith("pt"))c=parseFloat(a.slice(0,-2));else{if(a.endsWith("px"))return Math.max(8,Math.round(parseFloat(a.slice(0,-2))));let b=parseFloat(a);isNaN(b)||(c=b)}}"number"==typeof c&&c>100&&(c/=100)}return Math.max(8,Math.round(96/72*c))}extractFontConfig(a){let b={size:12,family:"Calibri",weight:"normal"};if(!a||!a.formatting||!a.formatting.font)return b;let c=a.formatting.font;return{size:this.getDOMFontSize(a.formatting,b.size),family:c.fontFamily||c.family||b.family,weight:!0===c.bold?"bold":c.weight||b.weight,style:!0===c.italic?"italic":"normal"}}extractColorFromFormatting(a){return a&&a.formatting&&a.formatting.color?this.convertColorToHex(a.formatting.color):"#000000"}convertColorToHex(a){if(!a)return"#000000";if("string"==typeof a){let b=a.match(/rgb\((\d+),\s*(\d+),\s*(\d+)\)/);if(b){let a=parseInt(b[1]),c=parseInt(b[2]),d=parseInt(b[3]);return`#${a.toString(16).padStart(2,"0")}${c.toString(16).padStart(2,"0")}${d.toString(16).padStart(2,"0")}`}return a.match(/^[0-9A-Fa-f]{6}$/)?`#${a}`:a.startsWith("#")&&a.match(/^#[0-9A-Fa-f]{6}$/)?a:"#000000"}if("object"==typeof a){if(void 0!==a.r&&void 0!==a.g&&void 0!==a.b){let b=Math.round(a.r),c=Math.round(a.g),d=Math.round(a.b);return`#${b.toString(16).padStart(2,"0")}${c.toString(16).padStart(2,"0")}${d.toString(16).padStart(2,"0")}`}if(a.color)return this.convertColorToHex(a.color)}return"#000000"}extractBackgroundColor(a){let b="#ffffff";return a&&a.plotArea&&a.plotArea.shapeProperties&&a.plotArea.shapeProperties.fill&&(b=this.convertColorToHex(a.plotArea.shapeProperties.fill)),b}async renderColumnChart(a,b,c){return b.type="column",this.renderChart(a,b,c)}getPieSegmentColor(a){let b=["#E74C3C","#3498DB","#2ECC71","#F39C12","#9B59B6","#FF6B6B","#4ECDC4","#45B7D1","#96CEB4","#FFEAA7"];return b[a%b.length]}darkenColor(a){if(a.startsWith("#")){let b=a.slice(1),c=parseInt(b.slice(0,2),16),d=parseInt(b.slice(2,4),16),e=parseInt(b.slice(4,6),16),f=Math.floor(.8*c),g=Math.floor(.8*d),h=Math.floor(.8*e);return`#${f.toString(16).padStart(2,"0")}${g.toString(16).padStart(2,"0")}${h.toString(16).padStart(2,"0")}`}return a}hexToRgb(a){let b=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);return b?{r:parseInt(b[1],16),g:parseInt(b[2],16),b:parseInt(b[3],16)}:null}hexToRgba(a,b=1){let c=this.hexToRgb(a);return c?`rgba(${c.r}, ${c.g}, ${c.b}, ${b})`:`rgba(0, 0, 0, ${b})`}getScalesConfig(a,b,c,d,e,f,g,h="x",i=null){if("pie"===a||"doughnut"===a)return{};if("radar"===a){let a=0,b=null,c=null;if(f&&f.value&&f.value.scaling){let d=f.value.scaling;null!=d.min&&(a=d.min),null!=d.max&&(b=d.max),null!=d.majorUnit&&(c=d.majorUnit)}if(null===b||null===c){let a=g.flatMap(a=>(a.values||[]).map(a=>parseFloat(a)).filter(a=>!isNaN(a))),d=a.length?Math.max(...a):100;if(null===c){let a=d/5,b=Math.pow(10,Math.floor(Math.log10(a||1)));c=[1,2,2.5,5,10].map(a=>a*b).find(b=>b>=a)||10*b}null===b&&(b=Math.ceil(d/c)*c)}return{r:{z:1,angleLines:{display:!0,color:f?.value?.gridlines?.color||"rgba(136, 136, 136, 0.8)",lineWidth:1},min:a,max:b,beginAtZero:!0,ticks:{stepSize:c,display:!1,font:{size:this.getDOMFontSize(f?.value?.tickLabels?.formatting,12),weight:"normal"},color:"#000000",backdropColor:"transparent",showLabelBackdrop:!1,padding:5,callback:function(a){return a.toString()}},pointLabels:{font:{size:this.getDOMFontSize(f?.category?.tickLabels?.formatting,14),weight:"normal"},color:f?.category?.tickLabels?.formatting?.color?this.convertColorToHex(f.category.tickLabels.formatting.color):"#000000",padding:20,centerPointLabels:!1},grid:{circular:!1,color:f?.value?.gridlines?.color||"rgba(136, 136, 136, 0.8)",lineWidth:1}}}}if("scatter"===a){let a=g.flatMap(a=>a.categories||a.xValues||[]).map(a=>parseFloat(a)).filter(a=>!isNaN(a)),b=g.flatMap(a=>a.values||[]).map(a=>parseFloat(a)).filter(a=>!isNaN(a)),c=a.length?Math.min(...a):0,d=a.length?Math.max(...a):1,e=b.length?Math.min(...b):0,h=b.length?Math.max(...b):1,i=c>=0?0:c,j=e>=0?0:e,k=this.calculateOptimalAxisScale(d,i),l=this.calculateOptimalAxisScale(h,j),m={min:i,max:k.max,stepSize:k.step},n={min:j,max:l.max,stepSize:l.step};if(f?.category?.scaling){let a=f.category.scaling;null!==a.min&&void 0!==a.min&&(m.min=a.min),null!==a.max&&void 0!==a.max&&(m.max=a.max),null!==a.majorUnit&&void 0!==a.majorUnit&&(m.stepSize=a.majorUnit)}if(f?.value?.scaling){let a=f.value.scaling;null!==a.min&&void 0!==a.min&&(n.min=a.min),null!==a.max&&void 0!==a.max&&(n.max=a.max),null!==a.majorUnit&&void 0!==a.majorUnit&&(n.stepSize=a.majorUnit)}return{x:{type:"linear",position:"bottom",min:m.min,max:m.max,ticks:{stepSize:m.stepSize,font:{size:this.getDOMFontSize(f?.category?.formatting,12)}},title:{display:!!f?.category?.title?.text,text:f?.category?.title?.text||""},grid:{display:!0,color:"rgba(200,200,200,0.3)",lineWidth:1}},y:{type:"linear",min:n.min,max:n.max,ticks:{stepSize:n.stepSize,font:{size:this.getDOMFontSize(f?.value?.formatting,12)}},title:{display:!!f?.value?.title?.text,text:f?.value?.title?.text||""},grid:{display:!0,color:"rgba(200,200,200,0.3)",lineWidth:1}}}}if("bubble"===a){let a=f?.value||null,b=f?.valueSecondary||null,c=g.flatMap(a=>a.categories||[]).map(a=>parseFloat(a)).filter(a=>!isNaN(a)),d=g.flatMap(a=>a.values||[]).map(a=>parseFloat(a)).filter(a=>!isNaN(a));if(0===c.length||0===d.length)return{};let e=Math.min(...c),h=Math.max(...c),i=Math.min(...d),j=Math.max(...d),k=a=>{if(a<=0)return 1;let b=a/10,c=Math.pow(10,Math.floor(Math.log10(b)));for(let a of[1,2,2.5,5,10])if(c*a>=b)return c*a;return 10*c},l=a?.scaling?.majorUnit||k(h),m=b?.scaling?.majorUnit||k(j),n={min:e>=0?0:e,max:Math.ceil(1.2*h/l)*l,stepSize:l},o={min:i>=0?0:i,max:Math.ceil(1.1*j/m)*m,stepSize:m};a?.scaling?.min!=null&&(n.min=a.scaling.min),a?.scaling?.max!=null&&(n.max=a.scaling.max),a?.scaling?.majorUnit!=null&&(n.stepSize=a.scaling.majorUnit),b?.scaling?.min!=null&&(o.min=b.scaling.min),b?.scaling?.max!=null&&(o.max=b.scaling.max),b?.scaling?.majorUnit!=null&&(o.stepSize=b.scaling.majorUnit);let p=this.shouldReverseAxis(a?.scaling,"value"),q=this.shouldReverseAxis(b?.scaling,"value");return{x:{type:"linear",position:"bottom",min:n.min,max:n.max,reverse:p,title:{display:!!a?.title?.text,text:a?.title?.text||""},ticks:{stepSize:n.stepSize,font:{size:this.getDOMFontSize(a?.formatting,12)},callback:function(a){return a.toString()}},grid:{display:!1}},y:{type:"linear",position:"left",min:o.min,max:o.max,reverse:q,title:{display:!!b?.title?.text,text:b?.title?.text||""},ticks:{stepSize:o.stepSize,font:{size:this.getDOMFontSize(b?.formatting,12)},callback:function(a){return a.toString()}},grid:{color:b?.gridlines?.color||"rgba(136, 136, 136, 0.8)",lineWidth:1,display:!0}}}}let j=f?.value?.tickLabels?.formatting,k=f?.category?.tickLabels?.formatting,l=j?.color?this.convertColorToHex(j.color):"#666666",m=k?.color?this.convertColorToHex(k.color):"#666666",n=f?.value?.tickLabels?.format?.formatCode||"",o=n.includes("%"),p=/,\s*"?K"?\s*$/.test(n)||/\d"?K"?\s*$/.test(n),q=/,\s*"?M"?\s*$/.test(n),r=!o&&!p&&!q&&(n.includes("#,##0")||n.includes(",")),s=o||p||q||r?null:n.match(/^[#0.,]+\s*("([^"]+)"|([^#0.,\s%]+))$/),t=s&&(s[2]||s[3])||null,u=f?.value?.scaling?.displayUnit||1,v=o?function(a){return Math.round(100*a)+"%"}:p?function(a){return(a/u/1e3).toLocaleString()+"K"}:q?function(a){return(a/u/1e6).toLocaleString()+"M"}:u>1?function(a){let b=a/u;return r?Number(b).toLocaleString():Number.isInteger(b)?b.toString():b.toFixed(1)}:r?function(a){return Number(a).toLocaleString()}:t?function(a){return Math.round(Number(a)).toString()+t}:function(a){return a.toString()},w=f?.value?.visible===!1,x=f?.category?.visible===!1,y=a=>({l:"left",r:"right",b:"bottom",t:"top"})[a]||null,z=(a,b)=>{let c=a?.gridlines?.dash,d={color:a?.gridlines?.color||"rgba(136, 136, 136, 0.8)",lineWidth:1,display:!b,z:1};return c&&(d.borderDash=[5,5]),d},A=(a,b)=>{let c=a||b;return({bottom:"top",top:"bottom",left:"right",right:"left"})[c]||c},B=this.shouldReverseAxis(f?.value?.scaling,"value"),C=this.shouldReverseAxis(f?.category?.scaling,"category"),D=f?.category?.crosses,E=f?.value?.crosses,F=a=>!a||"autoZero"===a||"min"===a,G=y(f?.value?.position),H=y(f?.category?.position),I=B&&F(D)?A(H,"y"===h?"left":"bottom"):H,J=C&&F(E)?A(G,"y"===h?"bottom":"left"):G,K={y:{beginAtZero:b>=0,min:b,max:c,stacked:e,reverse:this.shouldReverseAxis(f?.value?.scaling,"value"),display:!w,...J?{position:J}:{},ticks:{stepSize:d,font:{size:this.getDOMFontSize(j,12)},color:l,callback:v},grid:z(f?.value,w)},x:{stacked:e,display:!x,reverse:this.shouldReverseAxis(f?.category?.scaling,"category"),...f?.category?.tickLabels?.position==="high"?{position:"top"}:I?{position:I}:{},ticks:{font:{size:this.getDOMFontSize(k,12)},color:m,...f?.category?.tickLabels?.rotation!=null?{maxRotation:f.category.tickLabels.rotation,minRotation:f.category.tickLabels.rotation}:{}},grid:{display:!1}}};if("y"===h){({...K});let a=this.shouldReverseAxis(f?.value?.scaling,"value");K.x={beginAtZero:b>=0,min:b,max:c,stacked:e,display:!w||!!a,reverse:a,...J?{position:J}:{},ticks:{display:!w,stepSize:d,font:{size:this.getDOMFontSize(j,12)},color:l,callback:v},border:{display:!w},grid:z(f?.value,w)},K.y={stacked:e,display:!x,reverse:!this.shouldReverseAxis(f?.category?.scaling,"category"),...I?{position:I}:{},ticks:{font:{size:this.getDOMFontSize(k,12)},color:m},grid:z(f?.category,x)}}return"y"===h?(f?.value?.title&&(K.x.title={display:!0,text:f.value.title.text||f.value.title,font:{size:this.getDOMFontSize(f?.value?.title?.formatting,14),weight:"bold"},color:f?.value?.title?.formatting?.color?this.convertColorToHex(f.value.title.formatting.color):"#666666"}),f?.category?.title&&(K.y.title={display:!0,text:f.category.title.text||f.category.title,font:{size:this.getDOMFontSize(f?.category?.title?.formatting,14),weight:"bold"},color:f?.category?.title?.formatting?.color?this.convertColorToHex(f.category.title.formatting.color):"#666666"})):(f?.value?.title&&(K.y.title={display:!0,text:f.value.title.text||f.value.title,font:{size:this.getDOMFontSize(f?.value?.title?.formatting,14),weight:"bold"},color:f?.value?.title?.formatting?.color?this.convertColorToHex(f.value.title.formatting.color):"#666666"}),f?.category?.title&&(K.x.title={display:!0,text:f.category.title.text||f.category.title,font:{size:this.getDOMFontSize(f?.category?.title?.formatting,14),weight:"bold"},color:f?.category?.title?.formatting?.color?this.convertColorToHex(f.category.title.formatting.color):"#666666"})),K}getTooltipConfig(a,b){return"bubble"===a?{mode:"point",intersect:!0,callbacks:{title:function(a){return a[0].dataset.label||""},label:function(a){let b=a.parsed;return[`Market Share: ${b.x}%`,`Revenue: $${b.y.toLocaleString()}k`,`Customer Base: ${b.r} units`]}}}:{mode:b?"index":"nearest",intersect:!1,callbacks:{label:function(a){let b=a.dataset.label||"";return b&&(b+=": "),null!==a.parsed.y&&(b+=a.parsed.y.toLocaleString()),b}}}}shouldShowDataLabels(a){if(a&&a.series&&a.series.length>0){let b=!1;for(let c of a.series)if(c.dataLabels&&(b=!0,!0===c.dataLabels.showValue||!0===c.dataLabels.showSeriesName))return!0;if(b)return!1}if(a&&a.dataLabels){let b=a.dataLabels.showValue,c=!0===a.dataLabels.showSeriesName;if(!0===b||c)return!0;if(!1===b&&!c)return!1}return!!a&&void 0!==a.showDataLabels&&a.showDataLabels}shouldReverseAxis(a,b){return!!a&&!!a.orientation&&"maxMin"===a.orientation}formatExcelDate(a,b){let c=new Date((a-25569)*864e5);if(isNaN(c.getTime()))return String(a);let d=c.getUTCFullYear(),e=String(c.getUTCMonth()+1).padStart(2,"0"),f=String(d).slice(-2),g=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"][c.getUTCMonth()],h=(b||"").toLowerCase();return"yyyy-mm"===h||"yyyy\\-mm"===h?`${d}-${e}`:"mmm-yy"===h||"mmm\\-yy"===h||h.includes("mmm")&&h.includes("yy")?`${g}-${f}`:(h.includes("yyyy")&&h.includes("mm"),`${d}-${e}`)}calculateOptimalAxisScale(a,b=0){if(a<=0)return{max:10,step:2};let c=Math.pow(10,Math.floor(Math.log10(a-Math.min(b,0)))),d=[1,2,5,10],e=c;for(let b of d){let d=c/10*b;if(d>0){let b=Math.ceil(1.05*a/d);if(b>=4&&b<=8){e=d;break}}}if(e===c)for(let b of d){let d=b*c,f=Math.ceil(1.05*a/d);if(f>=4&&f<=8){e=d;break}}let f=Math.ceil(1.05*a/e)*e;if(a<1){let b=a<.1?.02:.2;return{max:Math.ceil(1.1*a/b)*b,step:b}}return{max:f,step:e}}}e9.exports&&(e9.exports=a),"u">typeof window&&(window.ChartJSRenderer=a),e9.exports}();!function(){if(!a9){a9=1,"u"<typeof AscCommon&&(window.AscCommon={}),"u"<typeof AscFormat&&(window.AscFormat={});class a{constructor(){this.sx=1,this.sy=1,this.shx=0,this.shy=0,this.tx=0,this.ty=0}TransformPointX(a,b){return a*this.sx+b*this.shx+this.tx}TransformPointY(a,b){return a*this.shy+b*this.sy+this.ty}Invert(){let a=this.sx*this.sy-this.shx*this.shy;if(1e-12>Math.abs(a))return;let b=1/a,c=this.sy*b,d=this.sx*b,e=-this.shx*b,f=-this.shy*b,g=(this.shx*this.ty-this.sy*this.tx)*b,h=(this.shy*this.tx-this.sx*this.ty)*b;this.sx=c,this.sy=d,this.shx=e,this.shy=f,this.tx=g,this.ty=h}createDuplicate(){let b=new a;return b.sx=this.sx,b.sy=this.sy,b.shx=this.shx,b.shy=this.shy,b.tx=this.tx,b.ty=this.ty,b}reset(){this.sx=1,this.sy=1,this.shx=0,this.shy=0,this.tx=0,this.ty=0}}"u"<typeof CBrush&&(window.CBrush=class{constructor(){this.Color1={R:0,G:0,B:0,A:255},this.Color2={R:0,G:0,B:0,A:255},this.Type=0}GetType(){return this.Type}}),"u"<typeof CPen&&(window.CPen=class{constructor(){this.Color={R:0,G:0,B:0,A:255},this.Size=1,this.DashStyle=0}}),"u"<typeof CFontManager&&(window.CFontManager=class{constructor(){this.m_oGlyphString={m_fX:0,m_fY:0,m_pGlyphsBuffer:[]}}LoadString4C(a,b,c){return this.m_oGlyphString.m_fX=b,this.m_oGlyphString.m_fY=c,b+10}LoadString2(a,b,c){this.m_oGlyphString.m_fX=b,this.m_oGlyphString.m_fY=c}GetNextChar2(){return null}});class b{constructor(){this.canvas=null,this._context=null,this.widthPx=0,this.heightPx=0,this.widthMM=0,this.heightMM=0,this.dpiX=96,this.dpiY=96,this.transform=new a,this.grStateStack=[],this.clipStack=[],this.font=null,this.brush=new CBrush,this.pen=new CPen,this.currentPath=null,this.isPathStarted=!1,this.customGeometryProcessor=new d}get context(){return this._context}init(a,b,c,d,e){this._context=a,this.widthPx=b,this.heightPx=c,this.widthMM=d||25.4*b/96,this.heightMM=e||25.4*c/96,this.dpiX=96,this.dpiY=96,this.transform.sx=1,this.transform.sy=1,this.transform.shx=0,this.transform.shy=0,this.transform.tx=0,this.transform.ty=0,this.recalculateTransforms()}recalculateTransforms(){this.transform=this.transform.createDuplicate();let a=this.transform.sx*this.transform.sx+this.transform.shx*this.transform.shy,b=this.transform.sy*this.transform.sy+this.transform.shy*this.transform.shx,c=this.transform.sx*this.transform.shx+this.transform.shx*this.transform.sy,d=this.transform.sy*this.transform.shy+this.transform.shy*this.transform.sx,e=this.transform.sx*this.transform.tx+this.transform.shx*this.transform.ty+this.transform.tx,f=this.transform.sy*this.transform.ty+this.transform.shy*this.transform.tx+this.transform.ty;this.transform.sx=a,this.transform.sy=b,this.transform.shx=c,this.transform.shy=d,this.transform.tx=e,this.transform.ty=f,this.transform=this.transform.createDuplicate(),this.transform.Invert()}resetState(){this.coordinateSystem=null,this.transform.reset(),this.grStateStack=[],this.clipStack=[],this.currentRenderingShape=null,this.customGeometryProcessor&&this.customGeometryProcessor.cache.clear(),this.currentPath=null,this.isPathStarted=!1,this.brush=new CBrush,this.pen=new CPen}SaveGrState(){this._context&&(this._context.save(),this.grStateStack.push({transform:this.transform.createDuplicate(),fullTransform:this.transform.createDuplicate(),invertFullTransform:this.transform.createDuplicate()}))}RestoreGrState(){if(this._context&&(this._context.restore(),this.grStateStack.length>0)){let a=this.grStateStack.pop();this.transform=a.transform,this.transform=a.fullTransform,this.transform=a.invertFullTransform}}transform3(a){this.transform=a.createDuplicate(),this.recalculateTransforms(),this._context&&this._context.setTransform(this.transform.sx,this.transform.shy,this.transform.shx,this.transform.sy,this.transform.tx,this.transform.ty)}AddClipRect(a,b,c,d){this._context&&(this._context.save(),this._context.beginPath(),this._context.rect(a,b,c,d),this._context.clip())}clear(){this._context&&(this._context.save(),this._context.setTransform(1,0,0,1,0,0),this._context.clearRect(0,0,this.widthPx,this.heightPx),this._context.restore())}t(a,b,c,d){if(this.bIsBreak||!this._context)return;this._context.fillStyle=this.colorToRgb(this.brush.Color1),this._context.textBaseline="alphabetic";let e=b,f=null;this._context.fillText(a,e,c);let g=this._context.measureText(a);return d&&(f={x:b,y:c,r:b+g.width,b:c},void 0!==g.actualBoundingBoxAscent&&(f.y=c-g.actualBoundingBoxAscent),void 0!==g.actualBoundingBoxDescent&&(f.b=c+g.actualBoundingBoxDescent)),e+=g.width,f}b_color1(a,b,c,d=255){this.brush.Color1.R=a,this.brush.Color1.G=b,this.brush.Color1.B=c,this.brush.Color1.A=d,this.bBrushColorInit=!0}p_color(a,b,c,d=255){this.pen.Color.R=a,this.pen.Color.G=b,this.pen.Color.B=c,this.pen.Color.A=d,this.bPenColorInit=!0}p_width(a){this.pen.Size=a,this._context&&(this._context.lineWidth=a)}fillRect(a,b,c,d,e){this._context&&e&&(this._context.save(),this._context.fillStyle=this.colorToRgb(e),this._context.fillRect(a,b,c,d),this._context.restore())}strokeRect(a,b,c,d,e,f=1){this._context&&(this._context.save(),this._context.strokeStyle=this.colorToRgb(e)||this.colorToRgb(this.pen.Color),this._context.lineWidth=f,this._context.strokeRect(a,b,c,d),this._context.restore())}drawLine(a,b,c,d,e,f=1){this._context&&(this._context.save(),this._context.strokeStyle=this.colorToRgb(e),this._context.lineWidth=f,this._context.beginPath(),this._context.moveTo(a,b),this._context.lineTo(c,d),this._context.stroke(),this._context.restore())}fillCircle(a,b,c,d){this._context&&(this._context.save(),this._context.fillStyle=this.colorToRgb(d),this._context.beginPath(),this._context.arc(a,b,c,0,2*Math.PI),this._context.fill(),this._context.restore())}strokeCircle(a,b,c,d,e=1){this._context&&(this._context.save(),this._context.strokeStyle=this.colorToRgb(d),this._context.lineWidth=e,this._context.beginPath(),this._context.arc(a,b,c,0,2*Math.PI),this._context.stroke(),this._context.restore())}fillText(a,b,c,d={}){if(!this._context)return;this._context.save();let e=d.fontSize||d.size||12,f=d.fontFamily||d.family||"Arial",g=d.bold?"bold":"normal",h=d.italic?"italic":"normal";this._context.font=`${h} ${g} ${e}px ${f}`,this._context.fillStyle=this.colorToRgb(d.color||{r:0,g:0,b:0}),this._context.textAlign=d.textAlign||"left",this._context.textBaseline=d.textBaseline||"alphabetic",this._context.fillText(a,b,c),this._context.restore()}colorToRgb(a){if("string"==typeof a)return a;if(a&&"object"==typeof a){let b=void 0!==a.r?a.r:void 0!==a.R?a.R:0,c=void 0!==a.g?a.g:void 0!==a.G?a.G:0,d=void 0!==a.b?a.b:void 0!==a.B?a.B:0,e=void 0!==a.a?a.a:void 0!==a.A?a.A:255;return void 0!==e&&255!==e?`rgba(${b}, ${c}, ${d}, ${e/255})`:`rgb(${b}, ${c}, ${d})`}return"rgb(0, 0, 0)"}Start_Command(a){this.commandStack.push(a)}End_Command(a){this.commandStack.length>0&&this.commandStack.pop()}get context(){return this._context}isBoundsChecker(){return!1}drawPresetGeometry(a,b,c,d,e,f,g,h=1,i=null,j={}){if(!this._context)return;let k=this._context;if(k.save(),f&&"object"==typeof f&&void 0!==f.a&&f.a<255&&(k.globalAlpha=f.a/255,f={...f,a:255}),f&&"object"==typeof f&&"linear"===f.type&&f.stops){let a=this.createCanvasGradient?this.createCanvasGradient(k,{x:b,y:c,w:d,h:e},f):null;a?k.fillStyle=a:f.stops[0]?.color&&(k.fillStyle=this.colorToRgb(f.stops[0].color))}else f&&(k.fillStyle=this.colorToRgb(f));switch(g&&(k.strokeStyle=this.colorToRgb(g),k.lineWidth=CoordinateTransform.mmToPixels(h||1)),k.beginPath(),a){case"teardrop":this.drawTeardropPath(k,b,c,d,e);break;case"rect":case"rectangle":default:k.rect(b,c,d,e);break;case"ellipse":case"oval":case"flowChartConnector":k.ellipse(b+d/2,c+e/2,d/2,e/2,0,0,2*Math.PI);break;case"roundRect":{let a=Math.min(5e4,Math.max(0,void 0!==j.adj?j.adj:16667))/1e5*Math.min(d,e);this.drawRoundRectPath(k,b,c,d,e,a);break}case"triangle":this.drawTrianglePath(k,b,c,d,e);break;case"diamond":this.drawDiamondPath(k,b,c,d,e);break;case"pentagon":this.drawPentagonPath(k,b,c,d,e);break;case"hexagon":this.drawHexagonPath(k,b,c,d,e);break;case"octagon":this.drawOctagonPath(k,b,c,d,e);break;case"star":case"star5":this.drawStarPath(k,b,c,d,e);break;case"star4":this.drawStar4Path(k,b,c,d,e);break;case"star6":this.drawStar6Path(k,b,c,d,e);break;case"star8":this.drawStar8Path(k,b,c,d,e);break;case"star10":this.drawStar10Path(k,b,c,d,e);break;case"star12":this.drawStar12Path(k,b,c,d,e);break;case"star16":this.drawStar16Path(k,b,c,d,e);break;case"star24":this.drawStar24Path(k,b,c,d,e);break;case"star32":this.drawStar32Path(k,b,c,d,e);break;case"heart":this.drawHeartPath(k,b,c,d,e);break;case"flowChartProcess":this.drawFlowChartProcessPath(k,b,c,d,e);break;case"flowChartDecision":this.drawFlowChartDecisionPath(k,b,c,d,e);break;case"flowChartInputOutput":this.drawFlowChartInputOutputPath(k,b,c,d,e);break;case"flowChartPredefinedProcess":this.drawFlowChartPredefinedProcessPath(k,b,c,d,e);break;case"flowChartInternalStorage":this.drawFlowChartInternalStoragePath(k,b,c,d,e);break;case"flowChartDocument":this.drawFlowChartDocumentPath(k,b,c,d,e);break;case"flowChartMultidocument":this.drawFlowChartMultidocumentPath(k,b,c,d,e);break;case"flowChartTerminator":this.drawRoundRectPath(k,b,c,d,e,.2*Math.min(d,e));break;case"flowChartPreparation":this.drawFlowChartPreparationPath(k,b,c,d,e);break;case"flowChartManualInput":this.drawFlowChartManualInputPath(k,b,c,d,e);break;case"flowChartManualOperation":this.drawFlowChartManualOperationPath(k,b,c,d,e);break;case"flowChartOffpageConnector":this.drawFlowChartOffpageConnectorPath(k,b,c,d,e);break;case"flowChartPunchedCard":this.drawFlowChartPunchedCardPath(k,b,c,d,e);break;case"flowChartPunchedTape":this.drawFlowChartPunchedTapePath(k,b,c,d,e);break;case"flowChartSummingJunction":this.drawFlowChartSummingJunctionPath(k,b,c,d,e);break;case"flowChartOr":this.drawFlowChartOrPath(k,b,c,d,e);break;case"flowChartCollate":this.drawFlowChartCollatePath(k,b,c,d,e);break;case"flowChartSort":this.drawFlowChartSortPath(k,b,c,d,e);break;case"flowChartExtract":this.drawFlowChartExtractPath(k,b,c,d,e);break;case"flowChartMerge":this.drawFlowChartMergePath(k,b,c,d,e);break;case"flowChartStoredData":this.drawFlowChartStoredDataPath(k,b,c,d,e);break;case"flowChartDelay":this.drawFlowChartDelayPath(k,b,c,d,e);break;case"flowChartMagneticTape":this.drawFlowChartMagneticTapePath(k,b,c,d,e);break;case"flowChartMagneticDisk":this.drawFlowChartMagneticDiskPath(k,b,c,d,e);break;case"flowChartMagneticDrum":this.drawFlowChartMagneticDrumPath(k,b,c,d,e);break;case"flowChartDisplay":this.drawFlowChartDisplayPath(k,b,c,d,e);break;case"rightArrow":case"notchedRightArrow":case"stripedRightArrow":this.drawRightArrowPath(k,b,c,d,e);break;case"leftArrow":this.drawLeftArrowPath(k,b,c,d,e);break;case"upArrow":this.drawUpArrowPath(k,b,c,d,e);break;case"downArrow":this.drawDownArrowPath(k,b,c,d,e);break;case"leftRightArrow":this.drawLeftRightArrowPath(k,b,c,d,e);break;case"upDownArrow":this.drawUpDownArrowPath(k,b,c,d,e);break;case"quadArrow":this.drawQuadArrowPath(k,b,c,d,e);break;case"bentArrow":this.drawBentArrowPath(k,b,c,d,e);break;case"uturnArrow":this.drawUturnArrowPath(k,b,c,d,e);break;case"curvedRightArrow":this.drawCurvedRightArrowPath(k,b,c,d,e);break;case"curvedLeftArrow":this.drawCurvedLeftArrowPath(k,b,c,d,e);break;case"callout1":this.drawCallout1Path(k,b,c,d,e);break;case"callout2":this.drawCallout2Path(k,b,c,d,e);break;case"callout3":this.drawCallout3Path(k,b,c,d,e);break;case"accentCallout1":case"accentBorderCallout1":this.drawAccentCallout1Path(k,b,c,d,e);break;case"accentCallout2":case"accentBorderCallout2":this.drawAccentCallout2Path(k,b,c,d,e);break;case"accentCallout3":case"accentBorderCallout3":this.drawAccentCallout3Path(k,b,c,d,e);break;case"borderCallout1":this.drawBorderCallout1Path(k,b,c,d,e);break;case"borderCallout2":this.drawBorderCallout2Path(k,b,c,d,e);break;case"borderCallout3":this.drawBorderCallout3Path(k,b,c,d,e);break;case"lightningBolt":this.drawLightningBoltPath(k,b,c,d,e);break;case"sun":this.drawSunPath(k,b,c,d,e);break;case"moon":this.drawMoonPath(k,b,c,d,e);break;case"cloud":this.drawCloudPath(k,b,c,d,e);break;case"wave":this.drawWavePath(k,b,c,d,e);break;case"doubleWave":this.drawDoubleWavePath(k,b,c,d,e);break;case"smileyFace":this.drawSmileyFacePath(k,b,c,d,e);break;case"noSmoking":this.drawNoSmokingPath(k,b,c,d,e);break;case"blockArc":this.drawBlockArcPath(k,b,c,d,e);break;case"foldedCorner":this.drawFoldedCornerPath(k,b,c,d,e);break;case"bevel":this.drawBevelPath(k,b,c,d,e);break;case"donut":this.drawDonutPath(k,b,c,d,e);break;case"noSymbol":this.drawNoSymbolPath(k,b,c,d,e);break;case"cube":this.drawCubePath(k,b,c,d,e);break;case"can":this.drawCanPath(k,b,c,d,e);break;case"cone":this.drawConePath(k,b,c,d,e);break;case"pyramid":this.drawPyramidPath(k,b,c,d,e);break;case"plus":case"cross":case"mathPlus":this.drawPlusPath(k,b,c,d,e);break;case"minus":case"mathMinus":this.drawMinusPath(k,b,c,d,e);break;case"multiply":case"mathMultiply":this.drawMultiplyPath(k,b,c,d,e);break;case"divide":case"mathDivide":this.drawDividePath(k,b,c,d,e);break;case"equal":case"mathEqual":this.drawEqualPath(k,b,c,d,e);break;case"notEqual":case"mathNotEqual":this.drawNotEqualPath(k,b,c,d,e);break;case"line":case"straightConnector1":this.drawLinePath(k,b,c,d,e);break;case"bentConnector2":this.drawBentConnector2Path(k,b,c,d,e);break;case"bentConnector3":this.drawBentConnector3Path(k,b,c,d,e);break;case"bentConnector4":this.drawBentConnector4Path(k,b,c,d,e);break;case"bentConnector5":this.drawBentConnector5Path(k,b,c,d,e);break;case"curvedConnector2":this.drawCurvedConnector2Path(k,b,c,d,e);break;case"curvedConnector3":this.drawCurvedConnector3Path(k,b,c,d,e);break;case"curvedConnector4":this.drawCurvedConnector4Path(k,b,c,d,e);break;case"curvedConnector5":this.drawCurvedConnector5Path(k,b,c,d,e);break;case"rtTriangle":k.moveTo(b,c+e),k.lineTo(b+d,c+e),k.lineTo(b,c),k.closePath();break;case"arc":{let a=(void 0!==j.adj1?j.adj1:0)/6e4,f=(void 0!==j.adj2?j.adj2:216e5)/6e4,g=a*Math.PI/180,h=f*Math.PI/180,i=b+d/2,l=c+e/2,m=d/2,n=e/2;k.moveTo(i,l),k.ellipse(i,l,m,n,0,g,h),k.closePath();break}case"pie":case"pieWedge":{let a=b+d/2,f=c+e/2;k.moveTo(a,f),k.arc(a,f,Math.min(d,e)/2,-Math.PI/2,0),k.closePath();break}case"chord":k.arc(b+d/2,c+e/2,Math.min(d,e)/2,0,1.5*Math.PI,!0),k.closePath();break;case"frame":{let a=.15*Math.min(d,e);k.rect(b,c,d,e),k.moveTo(b+a,c+a),k.rect(b+a,c+a,d-2*a,e-2*a);break}case"parallelogram":{let a=.25*d;k.moveTo(b+a,c),k.lineTo(b+d,c),k.lineTo(b+d-a,c+e),k.lineTo(b,c+e),k.closePath();break}case"trapezoid":{let a=.2*d;k.moveTo(b+a,c),k.lineTo(b+d-a,c),k.lineTo(b+d,c+e),k.lineTo(b,c+e),k.closePath();break}case"chevron":{let a=.25*d;k.moveTo(b,c),k.lineTo(b+d-a,c),k.lineTo(b+d,c+e/2),k.lineTo(b+d-a,c+e),k.lineTo(b,c+e),k.lineTo(b+a,c+e/2),k.closePath();break}case"homePlate":{let a=.2*d;k.moveTo(b,c),k.lineTo(b+d-a,c),k.lineTo(b+d,c+e/2),k.lineTo(b+d-a,c+e),k.lineTo(b,c+e),k.closePath();break}case"leftBracket":{let a=.15*e;k.moveTo(b+.4*d,c),k.quadraticCurveTo(b,c,b,c+a),k.lineTo(b,c+e-a),k.quadraticCurveTo(b,c+e,b+.4*d,c+e);break}case"rightBracket":{let a=.15*e;k.moveTo(b+.6*d,c),k.quadraticCurveTo(b+d,c,b+d,c+a),k.lineTo(b+d,c+e-a),k.quadraticCurveTo(b+d,c+e,b+.6*d,c+e);break}case"leftBrace":{let a=c+e/2,f=.4*d;k.moveTo(b+d,c),k.quadraticCurveTo(b+f,c,b+f,a-.1*e),k.quadraticCurveTo(b+f,a,b,a),k.quadraticCurveTo(b+f,a,b+f,a+.1*e),k.quadraticCurveTo(b+f,c+e,b+d,c+e);break}case"rightBrace":{let a=c+e/2,f=.6*d;k.moveTo(b,c),k.quadraticCurveTo(b+f,c,b+f,a-.1*e),k.quadraticCurveTo(b+f,a,b+d,a),k.quadraticCurveTo(b+f,a,b+f,a+.1*e),k.quadraticCurveTo(b+f,c+e,b,c+e);break}case"bracketPair":{let a=.15*Math.min(d,e);k.moveTo(b+a,c),k.arc(b+a,c+a,a,-Math.PI/2,Math.PI,!0),k.lineTo(b,c+e-a),k.arc(b+a,c+e-a,a,Math.PI,Math.PI/2,!0),k.moveTo(b+d-a,c),k.arc(b+d-a,c+a,a,-Math.PI/2,0),k.lineTo(b+d,c+e-a),k.arc(b+d-a,c+e-a,a,0,Math.PI/2);break}case"bracePair":{let a=.15*Math.min(d,e);k.moveTo(b+a,c),k.arc(b+a,c+a,a,-Math.PI/2,Math.PI,!0),k.lineTo(b,c+e-a),k.arc(b+a,c+e-a,a,Math.PI,Math.PI/2,!0),k.moveTo(b+d-a,c),k.arc(b+d-a,c+a,a,-Math.PI/2,0),k.lineTo(b+d,c+e-a),k.arc(b+d-a,c+e-a,a,0,Math.PI/2);break}case"diagStripe":k.moveTo(b,c),k.lineTo(b+d,c),k.lineTo(b,c+e),k.closePath();break;case"corner":{let a=.4*d,f=.4*e;k.moveTo(b,c),k.lineTo(b+a,c),k.lineTo(b+a,c+e-f),k.lineTo(b+d,c+e-f),k.lineTo(b+d,c+e),k.lineTo(b,c+e),k.closePath();break}case"halfFrame":{let a=.2*d,f=.2*e;k.moveTo(b,c),k.lineTo(b+d,c),k.lineTo(b+d-a,c+f),k.lineTo(b+a,c+f),k.lineTo(b+a,c+e),k.lineTo(b,c+e),k.closePath();break}case"snip1Rect":case"snip2SameRect":case"snip2DiagRect":case"snipRoundRect":{let a=.15*Math.min(d,e);k.moveTo(b+a,c),k.lineTo(b+d-a,c),k.lineTo(b+d,c+a),k.lineTo(b+d,c+e),k.lineTo(b,c+e),k.lineTo(b,c+a),k.closePath();break}case"round1Rect":case"round2SameRect":case"round2DiagRect":this.drawRoundRectPath(k,b,c,d,e,.15*Math.min(d,e));break;case"ribbon":case"ribbon2":k.moveTo(b,c+.3*e),k.lineTo(b+.15*d,c+.15*e),k.lineTo(b+.15*d,c),k.lineTo(b+.85*d,c),k.lineTo(b+.85*d,c+.15*e),k.lineTo(b+d,c+.3*e),k.lineTo(b+.85*d,c+.45*e),k.lineTo(b+.85*d,c+e),k.lineTo(b+.15*d,c+e),k.lineTo(b+.15*d,c+.45*e),k.closePath();break;case"circularArrow":k.arc(b+d/2,c+e/2,Math.min(d,e)/2,0,1.5*Math.PI,!0)}if(f&&k.fill(),g){if(k.globalAlpha=1,i&&i.dashArray&&i.dashArray.length>0){let a=CoordinateTransform.mmToPixels(h||1),b=i.dashArray.map(b=>b*a);k.setLineDash(b)}k.stroke()}k.restore()}drawTeardropPath(a,b,c,d,e){let f=d/1001,g=e/992;a.moveTo(b+711*f,c+7*g),a.bezierCurveTo(b+475*f,c+8*g,b+442*f,c+8*g,b+423*f,c+12*g),a.bezierCurveTo(b+312*f,c+31*g,b+221*f,c+77*g,b+144*f,c+154*g),a.bezierCurveTo(b+53*f,c+247*g,b+4*f,c+363*g,b+4*f,c+492*g),a.bezierCurveTo(b+4*f,c+565*g,b+16*f,c+625*g,b+46*f,c+689*g),a.bezierCurveTo(b+82*f,c+769*g,b+143*f,c+842*g,b+219*f,c+894*g),a.bezierCurveTo(b+258*f,c+921*g,b+307*f,c+945*g,b+359*f,c+961*g),a.bezierCurveTo(b+418*f,c+980*g,b+509*f,c+987*g,b+577*f,c+977*g),a.bezierCurveTo(b+720*f,c+956*g,b+845*f,c+878*g,b+922*f,c+758*g),a.bezierCurveTo(b+953*f,c+710*g,b+977*f,c+654*g,b+988*f,c+603*g),a.bezierCurveTo(b+1001*f,c+544*g,b+1001*f,c+546*g,b+1001*f,c+265*g),a.lineTo(b+1001*f,c+7*g),a.lineTo(b+989*f,c+6*g),a.bezierCurveTo(b+983*f,c+6*g,b+857*f,c+6*g,b+711*f,c+7*g),a.closePath()}drawRoundRectPath(a,b,c,d,e,f){a.moveTo(b+f,c),a.lineTo(b+d-f,c),a.quadraticCurveTo(b+d,c,b+d,c+f),a.lineTo(b+d,c+e-f),a.quadraticCurveTo(b+d,c+e,b+d-f,c+e),a.lineTo(b+f,c+e),a.quadraticCurveTo(b,c+e,b,c+e-f),a.lineTo(b,c+f),a.quadraticCurveTo(b,c,b+f,c),a.closePath()}drawTrianglePath(a,b,c,d,e){a.moveTo(b+d/2,c),a.lineTo(b+d,c+e),a.lineTo(b,c+e),a.closePath()}drawDiamondPath(a,b,c,d,e){a.moveTo(b+d/2,c),a.lineTo(b+d,c+e/2),a.lineTo(b+d/2,c+e),a.lineTo(b,c+e/2),a.closePath()}drawPentagonPath(a,b,c,d,e){let f=b+d/2,g=c+e/2,h=Math.min(d,e)/2;for(let b=0;b<5;b++){let c=2*b*Math.PI/5-Math.PI/2,d=f+h*Math.cos(c),e=g+h*Math.sin(c);0===b?a.moveTo(d,e):a.lineTo(d,e)}a.closePath()}drawHexagonPath(a,b,c,d,e){let f=b+d/2,g=c+e/2,h=Math.min(d,e)/2;for(let b=0;b<6;b++){let c=2*b*Math.PI/6,d=f+h*Math.cos(c),e=g+h*Math.sin(c);0===b?a.moveTo(d,e):a.lineTo(d,e)}a.closePath()}drawStarPath(a,b,c,d,e){let f=b+d/2,g=c+e/2,h=Math.min(d,e)/2,i=.4*h;for(let b=0;b<10;b++){let c=b*Math.PI/5-Math.PI/2,d=b%2==0?h:i,e=f+d*Math.cos(c),j=g+d*Math.sin(c);0===b?a.moveTo(e,j):a.lineTo(e,j)}a.closePath()}drawHeartPath(a,b,c,d,e){let f=d/20,g=e/18.35,h=a=>b+(a-2)*f,i=a=>c+(a-3)*g;a.moveTo(h(12),i(21.35)),a.lineTo(h(10.55),i(20.03)),a.bezierCurveTo(h(5.4),i(15.36),h(2),i(12.28),h(2),i(8.5)),a.bezierCurveTo(h(2),i(5.42),h(4.42),i(3),h(7.5),i(3)),a.bezierCurveTo(h(9.24),i(3),h(10.91),i(3.81),h(12),i(5.09)),a.bezierCurveTo(h(13.09),i(3.81),h(14.76),i(3),h(16.5),i(3)),a.bezierCurveTo(h(19.58),i(3),h(22),i(5.42),h(22),i(8.5)),a.bezierCurveTo(h(22),i(12.28),h(18.6),i(15.36),h(13.45),i(20.04)),a.lineTo(h(12),i(21.35)),a.closePath()}drawOctagonPath(a,b,c,d,e){let f=b+d/2,g=c+e/2,h=Math.min(d,e)/2;for(let b=0;b<8;b++){let c=2*b*Math.PI/8,d=f+h*Math.cos(c),e=g+h*Math.sin(c);0===b?a.moveTo(d,e):a.lineTo(d,e)}a.closePath()}drawStar4Path(a,b,c,d,e){this.drawStarGeneric(a,b,c,d,e,4)}drawStar6Path(a,b,c,d,e){this.drawStarGeneric(a,b,c,d,e,6)}drawStar8Path(a,b,c,d,e){this.drawStarGeneric(a,b,c,d,e,8)}drawStar10Path(a,b,c,d,e){this.drawStarGeneric(a,b,c,d,e,10)}drawStar12Path(a,b,c,d,e){this.drawStarGeneric(a,b,c,d,e,12)}drawStar16Path(a,b,c,d,e){this.drawStarGeneric(a,b,c,d,e,16)}drawStar24Path(a,b,c,d,e){this.drawStarGeneric(a,b,c,d,e,24)}drawStar32Path(a,b,c,d,e){this.drawStarGeneric(a,b,c,d,e,32)}drawStarGeneric(a,b,c,d,e,f){let g=b+d/2,h=c+e/2,i=Math.min(d,e)/2,j=.4*i;for(let b=0;b<2*f;b++){let c=b*Math.PI/f-Math.PI/2,d=b%2==0?i:j,e=g+d*Math.cos(c),k=h+d*Math.sin(c);0===b?a.moveTo(e,k):a.lineTo(e,k)}a.closePath()}drawFlowChartProcessPath(a,b,c,d,e){a.rect(b,c,d,e)}drawFlowChartDecisionPath(a,b,c,d,e){let f=b+d/2,g=c+e/2;a.moveTo(f,c),a.lineTo(b+d,g),a.lineTo(f,c+e),a.lineTo(b,g),a.closePath()}drawFlowChartInputOutputPath(a,b,c,d,e){let f=.2*d;a.moveTo(b+f,c),a.lineTo(b+d,c),a.lineTo(b+d-f,c+e),a.lineTo(b,c+e),a.closePath()}drawFlowChartPredefinedProcessPath(a,b,c,d,e){let f=.12*d;a.rect(b,c,d,e),a.moveTo(b+f,c),a.lineTo(b+f,c+e),a.moveTo(b+d-f,c),a.lineTo(b+d-f,c+e)}drawFlowChartInternalStoragePath(a,b,c,d,e){let f=.2*Math.min(d,e);a.rect(b,c,d,e),a.moveTo(b,c+f),a.lineTo(b+d,c+f),a.moveTo(b+f,c),a.lineTo(b+f,c+e)}drawFlowChartDocumentPath(a,b,c,d,e){let f=.2*e,g=c+e-f;a.moveTo(b,c),a.lineTo(b+d,c),a.lineTo(b+d,g),a.bezierCurveTo(b+.5*d,c+e+f,b+.5*d,c+e-f,b,g),a.closePath()}drawFlowChartMultidocumentPath(a,b,c,d,e){let f=.1*Math.min(d,e);a.rect(b+2*f,c,d-2*f,e-2*f),a.rect(b+f,c+f,d-f,e-f),this.drawFlowChartDocumentPath(a,b,c+2*f,d-2*f,e-2*f)}drawFlowChartPreparationPath(a,b,c,d,e){let f=.2*d;a.moveTo(b,c+e/2),a.lineTo(b+f,c),a.lineTo(b+d-f,c),a.lineTo(b+d,c+e/2),a.lineTo(b+d-f,c+e),a.lineTo(b+f,c+e),a.closePath()}drawFlowChartManualInputPath(a,b,c,d,e){a.moveTo(b,c+.2*e),a.lineTo(b+d,c),a.lineTo(b+d,c+e),a.lineTo(b,c+e),a.closePath()}drawFlowChartManualOperationPath(a,b,c,d,e){let f=.2*d;a.moveTo(b,c),a.lineTo(b+d,c),a.lineTo(b+d-f,c+e),a.lineTo(b+f,c+e),a.closePath()}drawFlowChartOffpageConnectorPath(a,b,c,d,e){let f=.2*e;a.moveTo(b,c),a.lineTo(b+d,c),a.lineTo(b+d,c+e-f),a.lineTo(b+d/2,c+e),a.lineTo(b,c+e-f),a.closePath()}drawFlowChartPunchedCardPath(a,b,c,d,e){let f=.1*Math.min(d,e);a.moveTo(b+f,c),a.lineTo(b+d,c),a.lineTo(b+d,c+e),a.lineTo(b,c+e),a.lineTo(b,c+f),a.closePath()}drawFlowChartPunchedTapePath(a,b,c,d,e){let f=.1*e;a.moveTo(b,c),a.bezierCurveTo(b+.25*d,c+f,b+.75*d,c-f,b+d,c),a.lineTo(b+d,c+e),a.bezierCurveTo(b+.75*d,c+e-f,b+.25*d,c+e+f,b,c+e),a.closePath()}drawFlowChartSummingJunctionPath(a,b,c,d,e){let f=b+d/2,g=c+e/2,h=Math.min(d,e)/2;a.arc(f,g,h,0,2*Math.PI);let i=.6*h;a.moveTo(f-i,g),a.lineTo(f+i,g),a.moveTo(f,g-i),a.lineTo(f,g+i)}drawFlowChartOrPath(a,b,c,d,e){let f=b+d/2,g=c+e/2,h=Math.min(d,e)/2;a.arc(f,g,h,0,2*Math.PI);let i=.6*h;a.moveTo(f-i,g-i),a.lineTo(f+i,g+i),a.moveTo(f+i,g-i),a.lineTo(f-i,g+i)}drawFlowChartCollatePath(a,b,c,d,e){a.moveTo(b,c),a.lineTo(b+d,c+e),a.lineTo(b,c+e),a.lineTo(b+d,c),a.closePath()}drawFlowChartSortPath(a,b,c,d,e){a.moveTo(b,c),a.lineTo(b+d,c),a.lineTo(b+d/2,c+e),a.closePath(),a.moveTo(b+.25*d,c+.5*e),a.lineTo(b+.75*d,c+.5*e)}drawFlowChartExtractPath(a,b,c,d,e){a.moveTo(b,c+e),a.lineTo(b+d/2,c),a.lineTo(b+d,c+e),a.closePath()}drawFlowChartMergePath(a,b,c,d,e){a.moveTo(b,c),a.lineTo(b+d,c),a.lineTo(b+d/2,c+e),a.closePath()}drawFlowChartStoredDataPath(a,b,c,d,e){let f=.1*d;a.arc(b+f,c+e/2,e/2,Math.PI/2,-Math.PI/2),a.lineTo(b+d-f,c),a.arc(b+d-f,c+e/2,e/2,-Math.PI/2,Math.PI/2),a.lineTo(b+f,c+e)}drawFlowChartDelayPath(a,b,c,d,e){let f=.2*d;a.moveTo(b,c),a.lineTo(b+d-f,c),a.arc(b+d-f,c+e/2,e/2,-Math.PI/2,Math.PI/2),a.lineTo(b,c+e),a.closePath()}drawFlowChartMagneticTapePath(a,b,c,d,e){let f=.15*e;a.moveTo(b,c+f),a.bezierCurveTo(b+.33*d,c,b+.67*d,c+2*f,b+d,c+f),a.lineTo(b+d,c+e-f),a.bezierCurveTo(b+.67*d,c+e-2*f,b+.33*d,c+e,b,c+e-f),a.closePath()}drawFlowChartMagneticDiskPath(a,b,c,d,e){let f=.2*e;a.ellipse(b+d/2,c+f/2,d/2,f/2,0,0,2*Math.PI),a.moveTo(b,c+f/2),a.lineTo(b,c+e-f/2),a.moveTo(b+d,c+f/2),a.lineTo(b+d,c+e-f/2),a.ellipse(b+d/2,c+e-f/2,d/2,f/2,0,0,2*Math.PI)}drawFlowChartMagneticDrumPath(a,b,c,d,e){let f=.2*d;a.ellipse(b+f/2,c+e/2,f/2,e/2,0,0,2*Math.PI),a.moveTo(b+f/2,c),a.lineTo(b+d,c),a.moveTo(b+f/2,c+e),a.lineTo(b+d,c+e),a.moveTo(b+d,c),a.lineTo(b+d,c+e)}drawFlowChartDisplayPath(a,b,c,d,e){let f=.2*d;a.moveTo(b,c+e/2),a.lineTo(b+f,c),a.lineTo(b+d-f,c),a.arc(b+d-f,c+e/2,e/2,-Math.PI/2,Math.PI/2),a.lineTo(b+f,c+e),a.closePath()}drawRightArrowPath(a,b,c,d,e){let f=.6*e,g=c+(e-f)/2,h=b+.7*d;a.moveTo(b,g),a.lineTo(h,g),a.lineTo(h,c),a.lineTo(b+d,c+e/2),a.lineTo(h,c+e),a.lineTo(h,g+f),a.lineTo(b,g+f),a.closePath()}drawLeftArrowPath(a,b,c,d,e){let f=.6*e,g=c+(e-f)/2,h=b+.3*d;a.moveTo(b+d,g),a.lineTo(h,g),a.lineTo(h,c),a.lineTo(b,c+e/2),a.lineTo(h,c+e),a.lineTo(h,g+f),a.lineTo(b+d,g+f),a.closePath()}drawUpArrowPath(a,b,c,d,e){let f=.6*d,g=b+(d-f)/2,h=c+.3*e;a.moveTo(g,c+e),a.lineTo(g,h),a.lineTo(b,h),a.lineTo(b+d/2,c),a.lineTo(b+d,h),a.lineTo(g+f,h),a.lineTo(g+f,c+e),a.closePath()}drawDownArrowPath(a,b,c,d,e){let f=.6*d,g=b+(d-f)/2,h=c+.7*e;a.moveTo(g,c),a.lineTo(g,h),a.lineTo(b,h),a.lineTo(b+d/2,c+e),a.lineTo(b+d,h),a.lineTo(g+f,h),a.lineTo(g+f,c),a.closePath()}drawLeftRightArrowPath(a,b,c,d,e){let f=.6*e,g=c+(e-f)/2,h=b+.2*d,i=b+.8*d;a.moveTo(h,g),a.lineTo(i,g),a.lineTo(i,c),a.lineTo(b+d,c+e/2),a.lineTo(i,c+e),a.lineTo(i,g+f),a.lineTo(h,g+f),a.lineTo(h,c+e),a.lineTo(b,c+e/2),a.lineTo(h,c),a.closePath()}drawUpDownArrowPath(a,b,c,d,e){let f=.6*d,g=b+(d-f)/2,h=c+.2*e,i=c+.8*e;a.moveTo(g,h),a.lineTo(g,i),a.lineTo(b,i),a.lineTo(b+d/2,c+e),a.lineTo(b+d,i),a.lineTo(g+f,i),a.lineTo(g+f,h),a.lineTo(b+d,h),a.lineTo(b+d/2,c),a.lineTo(b,h),a.closePath()}drawQuadArrowPath(a,b,c,d,e){let f=b+d/2,g=c+e/2,h=.3*Math.min(d,e);a.moveTo(f,c),a.lineTo(f+h/2,c+h),a.lineTo(f+h/4,c+h),a.lineTo(f+h/4,g-h/4),a.lineTo(f+h/4,g-h/4),a.lineTo(b+d-h,g-h/4),a.lineTo(b+d-h,g-h/2),a.lineTo(b+d,g),a.lineTo(b+d-h,g+h/2),a.lineTo(b+d-h,g+h/4),a.lineTo(f+h/4,g+h/4),a.lineTo(f+h/4,c+e-h),a.lineTo(f+h/2,c+e-h),a.lineTo(f,c+e),a.lineTo(f-h/2,c+e-h),a.lineTo(f-h/4,c+e-h),a.lineTo(f-h/4,g+h/4),a.lineTo(b+h,g+h/4),a.lineTo(b+h,g+h/2),a.lineTo(b,g),a.lineTo(b+h,g-h/2),a.lineTo(b+h,g-h/4),a.lineTo(f-h/4,g-h/4),a.lineTo(f-h/4,c+h),a.lineTo(f-h/2,c+h),a.closePath()}drawBentArrowPath(a,b,c,d,e){let f=b+.7*d,g=c+.3*e,h=.4*e;a.moveTo(b,c+e/2-h/2),a.lineTo(f,c+e/2-h/2),a.lineTo(f,g),a.lineTo(f-h/2,g),a.lineTo(b+d,c),a.lineTo(f+h/2,g),a.lineTo(f,g),a.lineTo(f,c+e/2+h/2),a.lineTo(b,c+e/2+h/2),a.closePath()}drawUturnArrowPath(a,b,c,d,e){let f=.3*d,g=b+d/2,h=.3*d;a.moveTo(b,c+e),a.lineTo(b,c+e/2),a.arc(g,c+e/2,h,Math.PI,0),a.lineTo(b+d-f,c+e/2-h),a.lineTo(b+d-f,c),a.lineTo(b+d,c+e/4),a.lineTo(b+d-2*f,c+e/4),a.lineTo(b+d-2*f,c+e/2-h),a.arc(g,c+e/2,h-f,0,Math.PI,!0),a.lineTo(b+f,c+e),a.closePath()}drawCurvedRightArrowPath(a,b,c,d,e){let f=b+.8*d,g=c+.2*e,h=.2*Math.min(d,e);a.moveTo(b,c+e/2),a.quadraticCurveTo(f,g,b+d-h,c+e/2),a.lineTo(b+d-h,c+e/2-h),a.lineTo(b+d,c+e/2),a.lineTo(b+d-h,c+e/2+h),a.lineTo(b+d-h,c+e/2+h/2),a.quadraticCurveTo(f,g+h,b,c+e/2+h/2),a.closePath()}drawCurvedLeftArrowPath(a,b,c,d,e){let f=b+.2*d,g=c+.2*e,h=.2*Math.min(d,e);a.moveTo(b+d,c+e/2),a.quadraticCurveTo(f,g,b+h,c+e/2),a.lineTo(b+h,c+e/2-h),a.lineTo(b,c+e/2),a.lineTo(b+h,c+e/2+h),a.lineTo(b+h,c+e/2+h/2),a.quadraticCurveTo(f,g+h,b+d,c+e/2+h/2),a.closePath()}drawCallout1Path(a,b,c,d,e){a.rect(b,c,.7*d,.7*e),a.moveTo(b+.6*d,c+.6*e),a.lineTo(b+.8*d,c+.8*e),a.lineTo(b+.5*d,c+.7*e)}drawCallout2Path(a,b,c,d,e){this.drawCallout1Path(a,b,c,d,e),a.moveTo(b+.65*d,c+.65*e),a.lineTo(b+.9*d,c+.9*e),a.lineTo(b+.55*d,c+.75*e)}drawCallout3Path(a,b,c,d,e){this.drawCallout2Path(a,b,c,d,e),a.moveTo(b+.7*d,c+.7*e),a.lineTo(b+.7*d,c+.95*e),a.lineTo(b+.6*d,c+.8*e)}drawAccentCallout1Path(a,b,c,d,e){a.rect(b,c,.7*d,.7*e),a.rect(b-2,c-2,.7*d+4,.7*e+4),this.drawCallout1Path(a,b,c,d,e)}drawAccentCallout2Path(a,b,c,d,e){a.rect(b,c,.7*d,.7*e),a.rect(b-2,c-2,.7*d+4,.7*e+4),this.drawCallout2Path(a,b,c,d,e)}drawAccentCallout3Path(a,b,c,d,e){a.rect(b,c,.7*d,.7*e),a.rect(b-2,c-2,.7*d+4,.7*e+4),this.drawCallout3Path(a,b,c,d,e)}drawBorderCallout1Path(a,b,c,d,e){a.rect(b,c,.7*d,.7*e),this.drawCallout1Path(a,b,c,d,e)}drawBorderCallout2Path(a,b,c,d,e){a.rect(b,c,.7*d,.7*e),this.drawCallout2Path(a,b,c,d,e)}drawBorderCallout3Path(a,b,c,d,e){a.rect(b,c,.7*d,.7*e),this.drawCallout3Path(a,b,c,d,e)}drawLightningBoltPath(a,b,c,d,e){a.moveTo(b+.3*d,c),a.lineTo(b+.7*d,c),a.lineTo(b+.4*d,c+.4*e),a.lineTo(b+.8*d,c+.4*e),a.lineTo(b+.2*d,c+e),a.lineTo(b+.5*d,c+.6*e),a.lineTo(b+.1*d,c+.6*e),a.closePath()}drawSunPath(a,b,c,d,e){let f=b+d/2,g=c+e/2,h=.3*Math.min(d,e),i=.45*Math.min(d,e);for(let b=0;b<16;b++){let c=2*b*Math.PI/16,d=f+h*Math.cos(c),e=g+h*Math.sin(c),j=f+i*Math.cos(c),k=g+i*Math.sin(c);a.moveTo(d,e),a.lineTo(j,k)}a.arc(f,g,.7*h,0,2*Math.PI)}drawMoonPath(a,b,c,d,e){let f=b+d/2,g=c+e/2,h=Math.min(d,e)/2;a.arc(f,g,h,0,2*Math.PI),a.arc(f+.3*h,g-.3*h,.8*h,0,2*Math.PI,!0)}drawCloudPath(a,b,c,d,e){a.moveTo(b,c+.5*e),a.bezierCurveTo(b,c+.7*e,b+.05*d,c+.85*e,b+.15*d,c+.8*e),a.bezierCurveTo(b+.25*d,c+.95*e,b+.35*d,c+.95*e,b+.45*d,c+.85*e),a.bezierCurveTo(b+.55*d,c+e,b+.65*d,c+e,b+.75*d,c+.85*e),a.bezierCurveTo(b+.85*d,c+.95*e,b+.95*d,c+.8*e,b+d,c+.65*e),a.bezierCurveTo(b+d,c+.5*e,b+.95*d,c+.35*e,b+.9*d,c+.3*e),a.bezierCurveTo(b+.95*d,c+.15*e,b+.85*d,c+.05*e,b+.75*d,c+.1*e),a.bezierCurveTo(b+.65*d,c,b+.55*d,c,b+.5*d,c+.08*e),a.bezierCurveTo(b+.45*d,c,b+.3*d,c,b+.25*d,c+.15*e),a.bezierCurveTo(b+.15*d,c+.05*e,b+.05*d,c+.2*e,b+.08*d,c+.3*e),a.bezierCurveTo(b,c+.35*e,b,c+.4*e,b,c+.5*e),a.closePath()}drawWavePath(a,b,c,d,e){let f=.3*e,g=c+e/2;a.moveTo(b,g),a.bezierCurveTo(b+.25*d,g-f,b+.75*d,g+f,b+d,g)}drawDoubleWavePath(a,b,c,d,e){let f=.2*e,g=c+.3*e,h=c+.7*e;a.moveTo(b,g),a.bezierCurveTo(b+.25*d,g-f,b+.75*d,g+f,b+d,g),a.moveTo(b,h),a.bezierCurveTo(b+.25*d,h-f,b+.75*d,h+f,b+d,h)}drawSmileyFacePath(a,b,c,d,e){let f=b+d/2,g=c+e/2,h=Math.min(d,e)/2;a.arc(f,g,h,0,2*Math.PI),a.arc(f-.3*h,g-.3*h,.1*h,0,2*Math.PI),a.arc(f+.3*h,g-.3*h,.1*h,0,2*Math.PI),a.arc(f,g,.5*h,0,Math.PI)}drawNoSmokingPath(a,b,c,d,e){let f=b+d/2,g=c+e/2,h=Math.min(d,e)/2;a.arc(f,g,h,0,2*Math.PI),a.moveTo(f-.7*h,g-.7*h),a.lineTo(f+.7*h,g+.7*h)}drawBlockArcPath(a,b,c,d,e){let f=b+d/2,g=c+e/2,h=Math.min(d,e)/2;a.arc(f,g,h,0,Math.PI),a.arc(f,g,.6*h,Math.PI,0,!0),a.closePath()}drawFoldedCornerPath(a,b,c,d,e){let f=.2*Math.min(d,e);a.moveTo(b,c),a.lineTo(b+d-f,c),a.lineTo(b+d,c+f),a.lineTo(b+d,c+e),a.lineTo(b,c+e),a.closePath(),a.moveTo(b+d-f,c),a.lineTo(b+d-f,c+f),a.lineTo(b+d,c+f)}drawBevelPath(a,b,c,d,e){let f=.1*Math.min(d,e);a.moveTo(b+f,c),a.lineTo(b+d-f,c),a.lineTo(b+d,c+f),a.lineTo(b+d,c+e-f),a.lineTo(b+d-f,c+e),a.lineTo(b+f,c+e),a.lineTo(b,c+e-f),a.lineTo(b,c+f),a.closePath()}drawDonutPath(a,b,c,d,e){let f=b+d/2,g=c+e/2,h=Math.min(d,e)/2;a.arc(f,g,h,0,2*Math.PI),a.arc(f,g,.4*h,0,2*Math.PI,!0)}drawNoSymbolPath(a,b,c,d,e){let f=b+d/2,g=c+e/2,h=Math.min(d,e)/2;a.arc(f,g,h,0,2*Math.PI),a.moveTo(f-.7*h,g+.7*h),a.lineTo(f+.7*h,g-.7*h)}drawCubePath(a,b,c,d,e){let f=.3*Math.min(d,e);a.rect(b,c+f,d-f,e-f),a.moveTo(b,c+f),a.lineTo(b+f,c),a.lineTo(b+d,c),a.lineTo(b+d-f,c+f),a.closePath(),a.moveTo(b+d-f,c+f),a.lineTo(b+d,c),a.lineTo(b+d,c+e-f),a.lineTo(b+d-f,c+e),a.closePath()}drawCanPath(a,b,c,d,e){let f=.15*e;a.ellipse(b+d/2,c+f/2,d/2,f/2,0,0,2*Math.PI),a.moveTo(b,c+f/2),a.lineTo(b,c+e-f/2),a.moveTo(b+d,c+f/2),a.lineTo(b+d,c+e-f/2),a.ellipse(b+d/2,c+e-f/2,d/2,f/2,0,0,2*Math.PI)}drawConePath(a,b,c,d,e){let f=.2*e;a.moveTo(b+d/2,c),a.lineTo(b,c+e-f),a.ellipse(b+d/2,c+e-f/2,d/2,f/2,0,Math.PI,0),a.lineTo(b+d/2,c),a.closePath()}drawPyramidPath(a,b,c,d,e){let f=.3*d;a.moveTo(b+d/2,c),a.lineTo(b,c+e),a.lineTo(b+d-f,c+e),a.closePath(),a.moveTo(b+d/2,c),a.lineTo(b+d-f,c+e),a.lineTo(b+d,c+e-f),a.closePath(),a.moveTo(b,c+e),a.lineTo(b+f,c+e-f),a.lineTo(b+d,c+e-f),a.lineTo(b+d-f,c+e)}drawPlusPath(a,b,c,d,e){let f=.2*Math.min(d,e),g=b+d/2,h=c+e/2;a.rect(b+f,h-f/2,d-2*f,f),a.rect(g-f/2,c+f,f,e-2*f)}drawMinusPath(a,b,c,d,e){let f=.2*Math.min(d,e),g=c+e/2;a.rect(b+f,g-f/2,d-2*f,f)}drawMultiplyPath(a,b,c,d,e){let f=.1*Math.min(d,e);a.moveTo(b+f,c+f),a.lineTo(b+d-f,c+e-f),a.moveTo(b+d-f,c+f),a.lineTo(b+f,c+e-f)}drawDividePath(a,b,c,d,e){let f=.1*Math.min(d,e),g=b+d/2,h=c+e/2;a.arc(g,h-.25*e,f,0,2*Math.PI),a.rect(b+f,h-f/2,d-2*f,f),a.arc(g,h+.25*e,f,0,2*Math.PI)}drawEqualPath(a,b,c,d,e){let f=.1*Math.min(d,e),g=c+e/2,h=.15*e;a.rect(b+f,g-h-f/2,d-2*f,f),a.rect(b+f,g+h-f/2,d-2*f,f)}drawNotEqualPath(a,b,c,d,e){this.drawEqualPath(a,b,c,d,e),a.moveTo(b+.3*d,c+.8*e),a.lineTo(b+.7*d,c+.2*e)}drawLinePath(a,b,c,d,e){a.moveTo(b,c),a.lineTo(b+d,c+e)}drawBentConnector2Path(a,b,c,d,e){let f=b+d/2;a.moveTo(b,c+e),a.lineTo(b,c+e/2),a.lineTo(f,c+e/2),a.lineTo(f,c),a.lineTo(b+d,c)}drawBentConnector3Path(a,b,c,d,e){let f=b+d/2,g=c+e/2;a.moveTo(b,c+e),a.lineTo(b,g),a.lineTo(f,g),a.lineTo(f,c),a.lineTo(b+d,c)}drawBentConnector4Path(a,b,c,d,e){let f=b+.33*d,g=b+.67*d,h=c+e/2;a.moveTo(b,c+e),a.lineTo(b,h),a.lineTo(f,h),a.lineTo(f,c),a.lineTo(g,c),a.lineTo(g,h),a.lineTo(b+d,h),a.lineTo(b+d,c+e)}drawBentConnector5Path(a,b,c,d,e){let f=b+.25*d,g=b+.5*d,h=b+.75*d,i=c+.33*e,j=c+.67*e;a.moveTo(b,c+e),a.lineTo(b,j),a.lineTo(f,j),a.lineTo(f,i),a.lineTo(g,i),a.lineTo(g,c),a.lineTo(h,c),a.lineTo(h,i),a.lineTo(b+d,i),a.lineTo(b+d,c+e)}drawCurvedConnector2Path(a,b,c,d,e){a.moveTo(b,c+e),a.quadraticCurveTo(b+d/2,c,b+d,c)}drawCurvedConnector3Path(a,b,c,d,e){a.moveTo(b,c+e),a.bezierCurveTo(b,c+e/2,b+d/2,c+e/2,b+d,c)}drawCurvedConnector4Path(a,b,c,d,e){a.moveTo(b,c+e),a.bezierCurveTo(b+.25*d,c+.75*e,b+.75*d,c+.25*e,b+d,c)}drawCurvedConnector5Path(a,b,c,d,e){a.moveTo(b,c+e),a.bezierCurveTo(b+.2*d,c+.8*e,b+.4*d,c+.6*e,b+.5*d,c+.5*e),a.bezierCurveTo(b+.6*d,c+.4*e,b+.8*d,c+.2*e,b+d,c)}drawCustomGeometry(a,b,c,d,e,f,g,h){try{let i,j,k=a.pathLst||a.pathList;if(!a||!k||0===k.length)return;let l=this.context;if(l.save(),a.coordSize?.width&&a.coordSize?.height)i=a.coordSize.width,j=a.coordSize.height;else{let a=1/0,b=-1/0,c=1/0,d=-1/0;k.forEach(e=>{e.commands&&e.commands.forEach(e=>{void 0!==e.x&&(a=Math.min(a,e.x),b=Math.max(b,e.x)),void 0!==e.y&&(c=Math.min(c,e.y),d=Math.max(d,e.y)),void 0!==e.x1&&(a=Math.min(a,e.x1),b=Math.max(b,e.x1),c=Math.min(c,e.y1),d=Math.max(d,e.y1)),void 0!==e.x2&&(a=Math.min(a,e.x2),b=Math.max(b,e.x2),c=Math.min(c,e.y2),d=Math.max(d,e.y2))})}),i=b-a,j=d-c,0===i&&(i=100),0===j&&(j=100)}l.restore(),k.forEach((a,k)=>{let l=1/0,m=1/0;a.commands.forEach(a=>{void 0!==a.x&&(l=Math.min(l,a.x),m=Math.min(m,a.y)),void 0!==a.x1&&(l=Math.min(l,a.x1),m=Math.min(m,a.y1)),void 0!==a.x2&&(l=Math.min(l,a.x2),m=Math.min(m,a.y2)),void 0!==a.x3&&(l=Math.min(l,a.x3),m=Math.min(m,a.y3))}),this.currentShapeBounds={x:b,y:c,w:d,h:e},this.drawGeometryPathDirectly(a,f,g,h,b,c,d,e,i,j,l,m)})}catch(a){this.context.restore()}}drawGeometryPath(a,b,c,d){if(!a||!a.commands||0===a.commands.length)return;let e=this.context;e.beginPath(),a.commands.forEach((a,b)=>{switch(a.type){case"moveTo":e.moveTo(a.x,a.y);break;case"lineTo":e.lineTo(a.x,a.y);break;case"curveTo":case"cubicBezTo":let c=void 0!==a.x?a.x:a.x3,d=void 0!==a.y?a.y:a.y3;void 0!==c&&void 0!==d&&e.bezierCurveTo(a.x1,a.y1,a.x2,a.y2,c,d);break;case"quadTo":case"quadBezTo":e.quadraticCurveTo(a.x1,a.y1,a.x,a.y);break;case"arcTo":e.arcTo(a.x1,a.y1,a.x,a.y,a.radius||0);break;case"close":e.closePath()}}),c&&d>0&&(this.setStrokeStyle(c,d),e.stroke()),b&&(!c||0===d)&&(this.setFillStyle(b),e.fill()),e.restore()}setStrokeStyle(a,b){let c=this.context;c.strokeStyle=a,c.lineWidth=CoordinateTransform.mmToPixels(b||1),c.lineCap="round",c.lineJoin="round"}setFillStyle(a){this.context.fillStyle=a}drawGeometryPathDirectly(a,b,c,d,e,f,g,h,i,j,k,l){if(!a||!a.commands||0===a.commands.length)return;let m=this.context,n=g/i,o=h/j;m.save(),m.beginPath();let p=a=>e+(a-k)*n,q=a=>f+(a-l)*o,r=!1,s=0,t=0;if(a.commands.forEach((a,b)=>{switch(a.type){case"moveTo":let c=p(a.x),d=q(a.y);m.moveTo(c,d),s=c,t=d;break;case"lineTo":let e=p(a.x),f=q(a.y);m.lineTo(e,f),s=e,t=f,r=!0;break;case"curveTo":case"cubicBezTo":let g=void 0!==a.x3?a.x3:a.x,h=void 0!==a.y3?a.y3:a.y;if(void 0!==g&&void 0!==h){let b=p(a.x1),c=q(a.y1),d=p(a.x2),e=q(a.y2),f=p(g),i=q(h);this.isStraightLine(s,t,b,c,d,e,f,i)?m.lineTo(f,i):m.bezierCurveTo(b,c,d,e,f,i),s=f,t=i,r=!0}break;case"quadTo":case"quadBezTo":{let b=p(a.x1),c=q(a.y1),d=p(a.x),e=q(a.y);m.quadraticCurveTo(b,c,d,e),s=d,t=e,r=!0;break}case"close":m.closePath()}}),a.commands.some(a=>"close"===a.type)&&b&&"none"!==b)if(r){if("object"==typeof b&&void 0!==b.r)m.fillStyle=`rgba(${b.r}, ${b.g}, ${b.b}, ${b.a/255})`;else if("object"==typeof b&&b.type)if("linear"!==b.type||!b.stops)return;else{let a=this.getCanvasBounds(m),c=this.createCanvasGradient(m,a,b);if(c)m.fillStyle=c;else{let a=b.stops[0]?.color;if(!a)return;m.fillStyle=this.colorToRgb(a)}}else"string"==typeof b&&"none"!==b&&"null"!==b&&(m.fillStyle=b);m.fill()}else"object"==typeof b&&void 0!==b.r?m.fillStyle=`rgba(${b.r}, ${b.g}, ${b.b}, ${b.a/255})`:"string"==typeof b&&"none"!==b&&"null"!==b&&(m.fillStyle=b),m.fillRect(e,f,g,h);if(c&&"none"!==c&&r){let a=Math.max(CoordinateTransform.mmToPixels(d>0?d:1)*Math.sqrt(g*h/921600),.5);"object"==typeof c&&void 0!==c.r?m.strokeStyle=`rgba(${c.r}, ${c.g}, ${c.b}, ${c.a/255})`:m.strokeStyle=c,m.lineWidth=a,m.lineCap="square",m.lineJoin="miter",m.stroke()}m.restore()}isStraightLine(a,b,c,d,e,f,g,h){let i=g-a,j=h-b;if(.1>Math.abs(i)&&.1>Math.abs(j))return!0;let k=Math.sqrt(Math.pow(c-(a+.33*i),2)+Math.pow(d-(b+.33*j),2)),l=Math.sqrt(Math.pow(e-(a+.67*i),2)+Math.pow(f-(b+.67*j),2));return k<2&&l<2}_s(){this._context.beginPath()}_m(a,b){this._context.moveTo(a,b)}_l(a,b){this._context.lineTo(a,b)}_c(a,b,c,d,e,f){this._context.bezierCurveTo(a,b,c,d,e,f)}_z(){this._context.closePath()}ds(){this._context.stroke()}df(){this._context.fill()}fillText(a,b,c,d={}){if(this._context&&a){this._context.save();try{let e=d.fontSize||12,f=this.getTextScaleFactor(),g=d.fontFamily||"Arial",h=d.fontWeight||(d.bold?"bold":"normal"),i=d.fontStyle||(d.italic?"italic":"normal");if(this._context.font=`${i} ${h} ${e*f}px "${g}"`,d.color)if("object"==typeof d.color&&void 0!==d.color.r){let a=void 0!==d.color.a?d.color.a/255:1,b=`rgba(${d.color.r}, ${d.color.g}, ${d.color.b}, ${a})`;this._context.fillStyle=b}else"string"==typeof d.color?this._context.fillStyle=d.color:this._context.fillStyle="#000000";else this._context.fillStyle="#000000";this._context.textBaseline=d.textBaseline||"alphabetic",this._context.textAlign=d.textAlign||"left",this._context.fillText(a,b,c)}catch(a){}finally{this._context.restore()}}}measureText(a,b={}){if(!this._context||!a)return{width:0,height:0};this._context.save();try{let c=b.fontSize||12,d=this.getTextScaleFactor(),e=c*d,f=b.fontFamily||"Arial",g=b.fontWeight||(b.bold?"bold":"normal"),h=b.fontStyle||(b.italic?"italic":"normal");this._context.font=`${h} ${g} ${e}px "${f}"`;let i=this._context.measureText(a),j=e;return void 0!==i.actualBoundingBoxAscent&&void 0!==i.actualBoundingBoxDescent&&(j=i.actualBoundingBoxAscent+i.actualBoundingBoxDescent),{width:i.width,height:j}}catch(a){return{width:0,height:0}}finally{this._context.restore()}}getCanvasBounds(a){let b,c;return a.getTransform(),a.canvas.style.width&&a.canvas.style.height?(b=parseFloat(a.canvas.style.width),c=parseFloat(a.canvas.style.height)):(b=a.canvas.width/(window.devicePixelRatio||1),c=a.canvas.height/(window.devicePixelRatio||1)),this.currentShapeBounds||{x:0,y:0,w:b,h:c}}createCanvasGradient(a,b,c){let d;if(!c||!c.stops||0===c.stops.length)return null;if("linear"===c.type){let e=(c.angle||0)*Math.PI/180,f=b.x+b.w/2-Math.cos(e)*b.w/2,g=b.y+b.h/2-Math.sin(e)*b.h/2,h=b.x+b.w/2+Math.cos(e)*b.w/2,i=b.y+b.h/2+Math.sin(e)*b.h/2;d=a.createLinearGradient(f,g,h,i)}else{if("radial"!==c.type)return null;let e=b.x+b.w/2,f=b.y+b.h/2,g=Math.max(b.w,b.h)/2;d=a.createRadialGradient(e,f,0,e,f,g)}for(let a of c.stops){let b=this.colorToRgb(a.color);d.addColorStop(a.position,b)}return d}colorToRgb(a){if(this.graphics&&"function"==typeof this.graphics.colorToRgb)return this.graphics.colorToRgb(a);if(this.graphicsEngine&&"function"==typeof this.graphicsEngine.colorToRgb)return this.graphicsEngine.colorToRgb(a);if("string"==typeof a)return a;if(a&&"object"==typeof a){let b=void 0!==a.r?a.r:void 0!==a.R?a.R:0,c=void 0!==a.g?a.g:void 0!==a.G?a.G:0,d=void 0!==a.b?a.b:void 0!==a.B?a.B:0,e=void 0!==a.a?a.a:void 0!==a.A?a.A:255;return void 0!==e&&255!==e?`rgba(${b}, ${c}, ${d}, ${e/255})`:`rgb(${b}, ${c}, ${d})`}return"rgb(0, 0, 0)"}}class c{constructor(){this.graphics=null,this.canvas=null,this.processor=null,this.logger=new Logger("CDrawingDocument"),this.currentLayer=null}init(a,c=null){let d,e;if(this.canvas=a,this.processor=c,this.graphics)this.graphics.resetState();else{this.graphics=new b;try{let b="u">typeof globalThis&&globalThis.CGraphics?globalThis.CGraphics:"u">typeof window&&window.CGraphics?window.CGraphics:null;"function"==typeof b&&(this.graphicsEngine=new b(a),this.graphics.drawLineWithArrows=(a,b,c,d,e,f=1,g=null)=>{this.graphicsEngine.drawLineWithArrows(a,b,c,d,e,f,g)},this.graphics.applyStrokeInfo=a=>{"function"==typeof this.graphicsEngine.applyStrokeInfo&&this.graphicsEngine.applyStrokeInfo(a)})}catch(a){}}let f="function"==typeof a.getBoundingClientRect?a.getBoundingClientRect():{width:0,height:0},g=parseFloat(a.style.width),h=parseFloat(a.style.height);if(g>0&&h>0)d=g,e=h;else if(f.width>0&&f.height>0)d=f.width,e=f.height;else if(a.style.width&&a.style.height)d=g,e=h;else{let b="u">typeof window&&window.devicePixelRatio?window.devicePixelRatio:1;d=a.width/b,e=a.height/b}let i=this.processor&&this.processor.renderContext&&this.processor.renderContext.pixelRatio||"u">typeof window&&window.devicePixelRatio||1,j=Math.max(1,Math.round(d*i)),k=Math.max(1,Math.round(e*i));(a.width!==j||a.height!==k)&&(a.width=j,a.height=k),a.style.width||(a.style.width=`${d}px`),a.style.height||(a.style.height=`${e}px`);let l=a.getContext("2d");l&&(l.setTransform(1,0,0,1,0,0),l.scale(i,i)),this.graphics&&"function"==typeof this.graphics.init&&l&&this.graphics.init(l,d,e,25.4*d/96,25.4*e/96)}colorToRgb(a){if(this.graphics&&"function"==typeof this.graphics.colorToRgb)return this.graphics.colorToRgb(a);if(this.graphicsEngine&&"function"==typeof this.graphicsEngine.colorToRgb)return this.graphicsEngine.colorToRgb(a);if("string"==typeof a)return a;if(a&&"object"==typeof a){let b=void 0!==a.r?a.r:void 0!==a.R?a.R:0,c=void 0!==a.g?a.g:void 0!==a.G?a.G:0,d=void 0!==a.b?a.b:void 0!==a.B?a.B:0,e=void 0!==a.a?a.a:void 0!==a.A?a.A:255;return void 0!==e&&255!==e?`rgba(${b}, ${c}, ${d}, ${e/255})`:`rgb(${b}, ${c}, ${d})`}return"rgb(0, 0, 0)"}async drawSlide(a,b){this.graphics&&(this.currentSlide=a,this.currentSlideIndex=b,this.graphics.clear(),await this.drawSlideContent(a))}async drawSlideContent(a){a.layout,this.setupSlideCoordinateSystem();try{let a=this.graphics?.context,b=this.coordinateSystem;if(a&&b){let c=Math.round(b.offsetX),d=Math.round(b.offsetY),e=Math.round(b.scaledWidth),f=Math.round(b.scaledHeight);a.save(),a.beginPath(),a.rect(c,d,e,f),a.clip(),this._slideClipApplied=!0}}catch(a){this._slideClipApplied=!1}if(this.drawSlideBackground(a),!1!==a.showMasterShapes&&a.layout&&a.layout.master&&await this.drawMasterElements(a.layout.master),a.layout&&await this.drawLayoutElements(a.layout),a.commonSlideData&&a.commonSlideData.shapeTree){let b=a.commonSlideData.shapeTree,c=this.sortShapesByRenderOrder(b),d=this.currentLayer;this.currentLayer="slide";for(let a=0;a<c.length;a++){let b=c[a];!this.isHiddenShape(b)&&(!this.isPlaceholderShape(b)||this.placeholderHasContent(b))&&await this.drawShapeEnhanced(b,a)}this.currentLayer=d}try{this._slideClipApplied&&this.graphics?.context&&this.graphics.context.restore()}catch(a){}}sortShapesByRenderOrder(a){if(!a||0===a.length)return[];let b=[...a];return b.sort((b,c)=>{let d=b.order||b.zOrder||b.index||0,e=c.order||c.zOrder||c.index||0;return d!==e?d-e:a.indexOf(b)-a.indexOf(c)}),b}drawSlideBackground(a){if(!this.graphics||!this.graphics.context)return;let b=this.graphics.context,c=null;if(a.backgroundFill)c=this.getBackgroundColor(a.backgroundFill);else if(a.layout&&a.layout.commonSlideData&&a.layout.commonSlideData.backgroundFill)c=this.getBackgroundColor(a.layout.commonSlideData.backgroundFill);else if(a.layout&&a.layout.cSld&&a.layout.cSld.bg)c=this.getBackgroundColor(a.layout.cSld.bg);else if(a.layout&&a.layout.master&&a.layout.master.commonSlideData&&a.layout.master.commonSlideData.backgroundFill)c=this.getBackgroundColor(a.layout.master.commonSlideData.backgroundFill);else if(a.layout&&a.layout.master&&a.layout.master.theme){let b=a.layout.master.theme;b.colors&&b.colors.bg1?c=b.colors.bg1:b.colors&&b.colors.bg2&&(c=b.colors.bg2)}if(this.coordinateSystem){let{scale:a,offsetX:d,offsetY:e}=this.coordinateSystem,f=this.coordinateSystem.slideWidthPx,g=this.coordinateSystem.slideHeightPx,h=Math.round(f*a),i=Math.round(g*a),j=Math.round(d),k=Math.round(e);if(b.save(),c&&"image"===c.type&&c.imageData?.relationshipId){let a=c.imageData.resolvedCacheKey||c.imageData.relationshipId,d=this.processor?.imageCache?.get(a);if(d&&d.image){b.drawImage(d.image,j,k,h,i),b.restore();return}b.fillStyle="#ffffff"}else if(c&&"gradient"===c.type&&c.gradient){let a,d=c.gradient,e=d.stops||[];if("radial"===d.type){let c=j+h/2,d=k+i/2,e=Math.max(h,i)/2;a=b.createRadialGradient(c,d,0,c,d,e)}else{let c=(d.angle||0)*Math.PI/180,e=Math.cos(c),f=Math.sin(c),g=j+h/2-e*h/2,l=k+i/2-f*i/2,m=j+h/2+e*h/2,n=k+i/2+f*i/2;a=b.createLinearGradient(g,l,m,n)}for(let b of e){let c=void 0!==b.position?b.position/1e5:0,d=this.parseColorToHex(b.color)||"#ffffff";a.addColorStop(Math.min(1,Math.max(0,c)),d)}b.fillStyle=a}else b.fillStyle=("string"==typeof c?c:null)||"#ffffff";b.fillRect(j,k,h,i),b.restore()}else{if(b.save(),c&&"image"===c.type&&c.imageData?.relationshipId){let a=c.imageData.resolvedCacheKey||c.imageData.relationshipId,d=this.processor?.imageCache?.get(a);if(d&&d.image){b.drawImage(d.image,0,0,this.canvas.width,this.canvas.height),b.restore();return}b.fillStyle="#ffffff"}else if(c&&"gradient"===c.type&&c.gradient){let a,d=c.gradient,e=d.stops||[],f=this.canvas.width,g=this.canvas.height;if("radial"===d.type)a=b.createRadialGradient(f/2,g/2,0,f/2,g/2,Math.max(f,g)/2);else{let c=(d.angle||0)*Math.PI/180,e=Math.cos(c),h=Math.sin(c);a=b.createLinearGradient(f/2-e*f/2,g/2-h*g/2,f/2+e*f/2,g/2+h*g/2)}for(let b of e){let c=void 0!==b.position?b.position/1e5:0,d=this.parseColorToHex(b.color)||"#ffffff";a.addColorStop(Math.min(1,Math.max(0,c)),d)}b.fillStyle=a}else b.fillStyle=("string"==typeof c?c:null)||"#ffffff";b.fillRect(0,0,this.canvas.width,this.canvas.height),b.restore()}}async drawMasterElements(a){if(!a||!a.commonSlideData||!a.commonSlideData.shapeTree)return;let b=a.commonSlideData.shapeTree,c=this.sortShapesByRenderOrder(b),d=this.currentLayer;this.currentLayer="master";try{for(let a=0;a<c.length;a++){let b=c[a];!this.isHiddenShape(b)&&(!this.isPlaceholderShape(b)||this.placeholderHasContent(b))&&await this.drawShapeEnhanced(b,a)}}finally{this.currentLayer=d}}async drawLayoutElements(a){if(!a||!a.commonSlideData||!a.commonSlideData.shapeTree)return;let b=a.commonSlideData.shapeTree;b.forEach((a,b)=>{});let c=this.sortShapesByRenderOrder(b),d=this.currentLayer;this.currentLayer="layout";try{for(let a=0;a<c.length;a++){let b=c[a];!this.isHiddenShape(b)&&(!this.isPlaceholderShape(b)||this.placeholderHasContent(b))&&await this.drawShapeEnhanced(b,a)}}finally{this.currentLayer=d}}isPlaceholderShape(a){return!!a.placeholder||!!a.phType||!!a.isPlaceholder||!!a.properties&&!!a.properties.placeholder||!!a.nvSpPr&&!!a.nvSpPr.nvPr&&!!a.nvSpPr.nvPr.ph}placeholderHasContent(a){return!!(a.fill&&"none"!==a.fill.type&&"noFill"!==a.fill.type||a.imageRelId||"pic"===a.type||a.chartData||a.textBody&&a.textBody.paragraphs&&a.textBody.paragraphs.some(a=>a.runs&&a.runs.some(a=>(a.text||"").trim().length>0||a.fieldType)))||!!a.graphicData&&!!a.graphicData.tableXml}processPlaceholderShape(a,b){if(!a.isPlaceholder||!a.placeholder)return a;let c=a.placeholder,d=null,e=null;return b.layout&&b.layout.commonSlideData&&b.layout.commonSlideData.shapeTree&&(e=this.findMatchingPlaceholder(b.layout.commonSlideData.shapeTree,c)),b.layout&&b.layout.master&&b.layout.master.commonSlideData&&b.layout.master.commonSlideData.shapeTree&&(d=this.findMatchingPlaceholder(b.layout.master.commonSlideData.shapeTree,c)),e?this.applyPlaceholderStyling(a,e):d&&this.applyPlaceholderStyling(a,d),a}findMatchingPlaceholder(a,b){for(let c of a)if(c.isPlaceholder&&c.placeholder){let a=c.placeholder;if(a.type===b.type&&a.idx===b.idx||a.type===b.type&&!a.idx)return c}return null}applyPlaceholderStyling(a,b){b.textBody&&(a.textBody||(a.textBody={paragraphs:[]}),b.textBody.bodyProperties&&!a.textBody.bodyProperties&&(a.textBody.bodyProperties=JSON.parse(JSON.stringify(b.textBody.bodyProperties))),b.textBody.lstStyle&&!a.textBody.lstStyle&&(a.textBody.lstStyle=JSON.parse(JSON.stringify(b.textBody.lstStyle)))),b.fill&&!a.fill&&(a.fill=b.fill),b.stroke&&!a.stroke&&(a.stroke=b.stroke),b.geometry&&!a.geometry&&(a.geometry=b.geometry),b.style&&!a.style&&(a.style=b.style)}shouldRenderText(a){try{if(this.currentLayer&&"slide"!==this.currentLayer&&this.isPlaceholderShape(a))return!1;if(this.isPlaceholderShape(a))return!!(a.textBody&&Array.isArray(a.textBody.paragraphs)&&a.textBody.paragraphs.some(a=>Array.isArray(a.runs)&&a.runs.some(a=>(a.text||"").trim().length>0)))}catch(a){}return!0}getBackgroundColor(a){if(!a){let a=this.resolveInheritedBackgroundColor();return a||null}if("solid"===a.type&&a.color)return this.parseColorToHex(a.color);if(a.fill&&"solid"===a.fill.type&&a.fill.color)return this.parseColorToHex(a.fill.color);if("bgPr"===a.type&&a.fill){if("solid"===a.fill.type&&a.fill.color)return this.parseColorToHex(a.fill.color);if("gradient"===a.fill.type&&a.fill.gradient&&a.fill.gradient.stops&&a.fill.gradient.stops.length>0)return{type:"gradient",gradient:a.fill.gradient};if("image"===a.fill.type&&a.fill.imageData?.relationshipId)return{type:"image",imageData:a.fill.imageData}}if("bgRef"===a.type){let b=a.idx;if(void 0!==b)if(b>1e3){if(this.currentSlide&&this.currentSlide.theme&&this.currentSlide.theme.colors){let a=this.currentSlide.theme;return this.parseColorToHex(a.colors.bg2)||this.parseColorToHex(a.colors.bg1)||this.parseColorToHex(a.colors.lt1)}}else{let a={0:"bg1",1:"tx1",2:"bg2",3:"tx2"}[b.toString()];if(a&&this.currentSlide&&this.currentSlide.theme&&this.currentSlide.theme.colors)return this.parseColorToHex(this.currentSlide.theme.colors[a])}}return null}resolveInheritedBackgroundColor(){try{if(!this.currentSlide)return null;if(this.currentSlide.layout&&this.currentSlide.layout.backgroundFill){let a=this.getBackgroundColorFromFill(this.currentSlide.layout.backgroundFill);if(a)return a}if(this.currentSlide.layout&&this.currentSlide.layout.master&&this.currentSlide.layout.master.backgroundFill){let a=this.getBackgroundColorFromFill(this.currentSlide.layout.master.backgroundFill);if(a)return a}if(this.currentSlide.theme&&this.currentSlide.theme.colors){let a=this.parseColorToHex(this.currentSlide.theme.colors.bg1)||this.parseColorToHex(this.currentSlide.theme.colors.lt1)||this.parseColorToHex(this.currentSlide.theme.colors.bg2);if(a)return a}return null}catch(a){return null}}getBackgroundColorFromFill(a){if(!a)return null;if("solid"===a.type&&a.color)return this.parseColorToHex(a.color);if(a.fill&&"solid"===a.fill.type&&a.fill.color||"bgPr"===a.type&&a.fill&&"solid"===a.fill.type&&a.fill.color)return this.parseColorToHex(a.fill.color);if("bgRef"===a.type){let b=a.idx;if(void 0!==b)return({0:"#ffffff",1:"#000000",2:"#f5f5f5",3:"#404040",1e3:"#ffffff"})[b.toString()]||null}return null}parseColorToHex(a){if(!a)return"#ffffff";if("string"==typeof a)return a.startsWith("#")?a:`#${a}`;if(a.scheme){let b={bg1:"#ffffff",tx1:"#000000",bg2:"#f8f8f8",tx2:"#404040",accent1:"#4f81bd",accent2:"#c0504d",accent3:"#9bbb59",accent4:"#8064a2",accent5:"#4bacc6",accent6:"#f79646",lt1:"#ffffff",dk1:"#000000",lt2:"#f0f0f0",dk2:"#404040"}[a.scheme];if(b)return this.applyColorModifications(b,a)}return void 0!==a.r&&void 0!==a.g&&void 0!==a.b?void 0!==a.a&&a.a<255?`rgba(${a.r}, ${a.g}, ${a.b}, ${(a.a/255).toFixed(4)})`:`#${a.r.toString(16).padStart(2,"0")}${a.g.toString(16).padStart(2,"0")}${a.b.toString(16).padStart(2,"0")}`:"#ffffff"}applyColorModificationsLegacy(a,b){if(!b||!b.tint&&!b.shade&&!b.lumMod&&!b.lumOff)return a;let c=parseInt(a.substr(1,2),16),d=parseInt(a.substr(3,2),16),e=parseInt(a.substr(5,2),16),f=c,g=d,h=e;if(void 0!==b.tint){let a=b.tint/1e5;f=Math.round(c+(255-c)*a),g=Math.round(d+(255-d)*a),h=Math.round(e+(255-e)*a)}if(void 0!==b.shade){let a=b.shade/1e5;f=Math.round(c*(1-a)),g=Math.round(d*(1-a)),h=Math.round(e*(1-a))}if(void 0!==b.lumMod){let a=b.lumMod/1e5;f=Math.round(c*a),g=Math.round(d*a),h=Math.round(e*a)}if(void 0!==b.lumOff){let a=b.lumOff/1e5*255;f=Math.round(Math.min(255,c+a)),g=Math.round(Math.min(255,d+a)),h=Math.round(Math.min(255,e+a))}return f=Math.max(0,Math.min(255,f)),g=Math.max(0,Math.min(255,g)),h=Math.max(0,Math.min(255,h)),`#${f.toString(16).padStart(2,"0")}${g.toString(16).padStart(2,"0")}${h.toString(16).padStart(2,"0")}`}setupSlideCoordinateSystem(){if(this.processor&&this.processor.calculateCanvasRect){let a=this.processor.getSlideDimensions(),b=this.processor.calculateCanvasRect(this.canvas,a);this.coordinateSystem={slideWidthEMU:a.cx,slideHeightEMU:a.cy,slideWidthPx:b.slideWidthPx,slideHeightPx:b.slideHeightPx,scale:b.scale,offsetX:b.offsetX,offsetY:b.offsetY,scaledWidth:b.scaledWidth,scaledHeight:b.scaledHeight}}else{let a,b,c=this.processor.getSlideDimensions(),d=c.cx,e=c.cy,f=d/914400*96,g=e/914400*96,h="function"==typeof this.canvas.getBoundingClientRect?this.canvas.getBoundingClientRect():{width:0,height:0};if(h.width>0&&h.height>0)a=h.width,b=h.height;else if(this.canvas.style.width&&this.canvas.style.height)a=parseFloat(this.canvas.style.width),b=parseFloat(this.canvas.style.height);else{let c="u">typeof window&&window.devicePixelRatio?window.devicePixelRatio:1;a=this.canvas.width/c,b=this.canvas.height/c}let i=Math.min(a/f,b/g),j=f*i,k=g*i,l=(a-j)/2,m=(b-k)/2;j=Math.round(j),k=Math.round(k),l=Math.round(l),m=Math.round(m),this.coordinateSystem={slideWidthEMU:d,slideHeightEMU:e,slideWidthPx:f,slideHeightPx:g,scale:i,offsetX:l,offsetY:m,scaledWidth:j,scaledHeight:k,canvasWidth:a,canvasHeight:b}}}async drawShapeEnhanced(a,b){try{this.processor&&"function"==typeof this.processor.applyPropertyInheritance&&this.processor.applyPropertyInheritance(a,this.currentSlide)}catch(a){}let c=this.getShapeBounds(a);if(c&&(0===c.h||!isFinite(c.h)||c.h<1)&&a&&a.textBody&&a.textBody.paragraphs&&a.textBody.paragraphs.length>0&&!this.isLineLikeShape(a))try{let b=this.estimateTextBoxHeightPx(a,c.w);b&&b>0&&(c.h=Math.ceil(b))}catch(a){}if(this.graphics&&a)try{let b=this.isLineLikeShape(a);if(!c||c.w<=0&&c.h<=0||!b&&(c.w<=0||c.h<=0))return;switch(a.type){case"sp":this.drawRegularShape(a,c);break;case"pic":this.drawPictureShape(a,c);break;case"grpSp":this.drawGroupShape(a,c);break;case"cxnSp":this.drawConnectorShape(a,c);break;case"graphicFrame":await this.drawGraphicFrame(a,c);break;default:this.drawDefaultShape(a,c)}}catch(a){}}drawShapeGeometry(a,b){if(!b||b.w<=0||b.h<=0)return;let c=this.getShapeFillColor(a),d=this.getShapeStrokeColor(a),e=this.getShapeLineWidth(a);if(c){let a=this.parseColor(c);this.graphics.b_color1(a.r,a.g,a.b,a.a)}if(d){let a=this.parseColor(d);this.graphics.p_color(a.r,a.g,a.b,a.a),this.graphics.p_width(e)}switch(a.type){case"sp":case"shape":this.drawRegularShape(a,b);break;case"pic":this.drawPictureShape(a,b);break;case"grpSp":this.drawGroupShape(a,b);break;default:this.drawDefaultShape(a,b)}}drawRegularShape(a,b){if(!b)return;if(this.isLineLikeShape(a)){if(b.w<=0&&b.h<=0)return}else if(b.w<=0||b.h<=0)return;if(!this.graphics||!this.graphics.context)return;let c=this.graphics.context;c.save();let d=a.properties?.transform;if(d&&d.rotation&&0!==d.rotation){let a=b.x+b.w/2,e=b.y+b.h/2;c.translate(a,e),c.rotate(d.rotation*Math.PI/180),c.translate(-a,-e)}let e=this.getShapeFillColor(a),f=this.getShapeStrokeColor(a),g=this.getShapeLineWidth(a),h=this.getShapeStrokeInfo(a);a.properties&&a.properties.effectLst&&this.applyEffectsToCanvas(c,a.properties.effectLst);let i=null;if("line"===(i=this.processor&&this.processor.getShapePresetGeometry?this.processor.getShapePresetGeometry(a,this.processor.currentSlide):this.getShapePreset(a))||this.isLineLikeShape(a)){if(this.drawEngineLine(b,a),this.resetEffectsOnContext(c),a.textBody&&a.textBody.paragraphs&&this.shouldRenderText(a)){let c=this.estimateTextBoxHeightPx(a,b.w)||24,d=a.textBody.paragraphs[0],e=d?.properties?.align||d?.properties?.alignment||d?.paragraphProperties?.align||d?.pPr?.algn||"l",f={x:"r"===e||"right"===e?b.x-b.w:"ctr"===e||"center"===e?b.x-b.w/2:b.x,y:b.y-c/2,w:b.w,h:c};this.setCurrentRenderingShape(a),this.drawShapeText(a,f)}c.restore();return}let j=d&&(d.flipH||d.flipV);if(j){c.save();let a=b.x+b.w/2,e=b.y+b.h/2;c.translate(a,e),c.scale(d.flipH?-1:1,d.flipV?-1:1),c.translate(-a,-e)}if(a.geometry&&"custom"===a.geometry.type)try{this.currentShapeBounds=b,a.properties&&a.properties.effectLst&&this.applyEffectsToCanvas(c,a.properties.effectLst),this.graphics.drawCustomGeometry(a.geometry,b.x,b.y,b.w,b.h,e,f,g),this.resetEffectsOnContext(c)}catch(a){this.graphics.drawPresetGeometry("rect",b.x,b.y,b.w,b.h,e,f,g,h)}else if(this.graphics.drawPresetGeometry&&i){a.properties&&a.properties.effectLst&&this.applyEffectsToCanvas(c,a.properties.effectLst);let d=a.geometry?.adjustments||a.properties?.geometry?.adjustments||{};this.graphics.drawPresetGeometry(i,b.x,b.y,b.w,b.h,e,f,g,h,d),this.resetEffectsOnContext(c)}else{let a=f&&g>2||f&&!e;f&&a&&(c.strokeStyle=this.graphics.colorToRgb(f),c.lineWidth=CoordinateTransform.mmToPixels(g),h&&this.applyStrokeStyle(c,h,CoordinateTransform.mmToPixels(g)),c.strokeRect(b.x,b.y,b.w,b.h)),!a&&(e&&"linear"===e.type?this.drawGradientFill(c,b,e):e&&(c.fillStyle=this.graphics.colorToRgb(e),c.fillRect(b.x,b.y,b.w,b.h)),f&&(c.strokeStyle=this.graphics.colorToRgb(f),c.lineWidth=CoordinateTransform.mmToPixels(g),h&&this.applyStrokeStyle(c,h,CoordinateTransform.mmToPixels(g)),c.strokeRect(b.x,b.y,b.w,b.h)))}j&&c.restore(),a.textBody&&a.textBody.paragraphs&&this.shouldRenderText(a)&&(this.setCurrentRenderingShape(a),this.drawShapeText(a,b)),this.resetEffectsOnContext(c),c.restore()}isLineLikeShape(a){let b=a&&(a.geometry?.preset||a.properties?.geometry?.preset||this.getShapePreset(a))||null,c="string"==typeof b?b.toLowerCase():"";return!!("line"===c||c.includes("connector"))||!!a&&("cxnSp"===a.type||"connector"===a.type)}drawEngineLine(a,b){let c=this.getShapeStrokeColor(b),d=this.getShapeLineWidth(b)||1,e=this.getShapeStrokeInfo(b),{x1:f,y1:g,x2:h,y2:i}=this._computeConnectorEndpoints(a,b);if(this.graphics&&"function"==typeof this.graphics.drawLineWithArrows){let a=c||{r:0,g:0,b:0,a:255},b=d&&d>0?d:.75;this.graphics.drawLineWithArrows(f,g,h,i,a,b,e)}else if(this.graphicsEngine&&"function"==typeof this.graphicsEngine.drawLineWithArrows){let a=c||{r:0,g:0,b:0,a:255},b=d&&d>0?d:.75;this.graphicsEngine.drawLineWithArrows(f,g,h,i,a,b,e)}else if(this.graphics&&"function"==typeof this.graphics.drawLine){let a=c||{r:0,g:0,b:0,a:255},b=d&&d>0?d:.75;this.graphics.drawLine(f,g,h,i,a,b)}else if(this.graphics&&this.graphics.context){let a=this.graphics.context;if(a.save(),a.beginPath(),a.moveTo(f,g),a.lineTo(h,i),c){a.strokeStyle=this.graphics.colorToRgb(c),a.lineWidth=Math.max(this.graphics&&this.graphics.CoordinateTransform?this.graphics.CoordinateTransform.mmToPixels(d):CoordinateTransform.mmToPixels(d),1);try{this.applyStrokeStyle(a,e,a.lineWidth)}catch(a){}a.stroke()}a.restore()}}_computeConnectorEndpoints(a,b){let c,d,e,f,g=Math.max(0,a.w),h=Math.max(0,a.h),i=a.x+g/2,j=a.y+h/2,k=b&&(b.geometry||b.properties?.geometry)||null,l=k&&(k.pathList||k.pathLst);if(Array.isArray(l)&&l.length>0){let b=l[0],i=b.commands||[],j=null,m=null;for(let a=0;a<i.length;a++){let b=i[a];j||"moveTo"!==b.type||(j={x:b.x,y:b.y}),"lineTo"===b.type?m={x:b.x,y:b.y}:"cubicBezTo"===b.type?m={x:b.x3,y:b.y3}:"moveTo"===b.type&&!m&&j&&(m={x:b.x,y:b.y})}if(!j&&i.length>0){let a=i[0];null!=a.x&&null!=a.y&&(j={x:a.x,y:a.y})}if(!m&&j&&(m={...j}),j&&m){let i=b.w||k.pathW||100,l=b.h||k.pathH||100,n=0===i?1:g/i,o=0===l?1:h/l;c=a.x+j.x*n,d=a.y+j.y*o,e=a.x+m.x*n,f=a.y+m.y*o}}if(void 0===c){c=a.x,d=a.y,e=a.x+g,f=a.y+h;let i=b&&(b.spPr?.xfrm||b.transform);0===(i&&(void 0!==i.cy?i.cy:i.height))&&(f=d=a.y+h/2)}let m=!!(b&&b.transform&&b.transform.flipH),n=!!(b&&b.transform&&b.transform.flipV);m&&(c=i-(c-i),e=i-(e-i)),n&&(d=j-(d-j),f=j-(f-j));let o=b&&b.transform&&(b.transform.rot||b.transform.rotation)||0;if(o){let a=o*Math.PI/180,b=Math.cos(a),g=Math.sin(a),h=(a,c)=>({x:i+(a-i)*b-(c-j)*g,y:j+(a-i)*g+(c-j)*b}),k=h(c,d),l=h(e,f);c=k.x,d=k.y,e=l.x,f=l.y}return{x1:c,y1:d,x2:e,y2:f}}drawLinePath(a,b,c,d,e){if(this.graphics&&"function"==typeof this.graphics.drawLineWithArrows){let a=this.getShapeStrokeColor(this.getCurrentShape()),f=this.getShapeLineWidth(this.getCurrentShape())||1,g=this.getShapeStrokeInfo(this.getCurrentShape()),h=b+d;this.graphics.drawLineWithArrows(b,c,h,c+e,a,f,g);return}a.moveTo(b,c+e/2),a.lineTo(b+d,c+e/2)}drawLineWithArrows(a,b,c,d,e,f=1,g=null){let h=this._context;if(!h)return;h.save(),h.beginPath(),h.moveTo(a,b),h.lineTo(c,d);let i=this.colorToRgb(e)||"rgba(0,0,0,1)",j=Math.max(CoordinateTransform.mmToPixels(f||1),1);if(h.strokeStyle=i,h.lineWidth=j,g)try{this.applyStrokeStyle(h,g,j)}catch(a){}h.stroke();let k=a=>{if("number"==typeof a)return a;let b=(a||"").toString();return"lg"===b||"large"===b?2:"med"===b||"medium"===b?1.5:1},l=g&&g.tailEnd,m=g&&g.headEnd;if(l||m){let e=Math.atan2(d-b,c-a),f=h.getTransform(),g=Math.sqrt(f.a*f.a+f.b*f.b),n=Math.max(Math.max(4,10*g),8*j),o=Math.max(Math.max(2.5,6*g),3*j),p=(a,b,c,d)=>{if(!d)return;let e=n*(d.lengthScale||k(d.len)),f=o*(d.widthScale||k(d.w)),g=(d.type||d.val||"arrow").toString(),l=f/2;h.save(),h.translate(a,b),h.rotate(c),h.beginPath(),"open"===g?(h.moveTo(0,0),h.lineTo(-e,-l),h.moveTo(0,0),h.lineTo(-e,l),h.strokeStyle=i,h.lineWidth=Math.max(1,j)):("stealth"===g?(h.moveTo(0,0),h.lineTo(-e,-(.6*l)),h.lineTo(-e,.6*l),h.closePath()):"diamond"===g?(h.moveTo(0,0),h.lineTo(-e/2,-l),h.lineTo(-e,0),h.lineTo(-e/2,l),h.closePath()):"oval"===g?h.ellipse(-e/2,0,e/2,l,0,0,2*Math.PI):(h.moveTo(0,0),h.lineTo(-e,-l),h.lineTo(-e,l),h.closePath()),h.fillStyle=i,h.fill(),h.strokeStyle=i,h.lineWidth=Math.max(1,.5*j)),h.stroke(),h.restore()};hasStart&&p(a,b,e+Math.PI,l),hasEnd&&p(c,d,e,m)}h.restore()}drawGradientFill(a,b,c){let d;if(c&&c.stops&&0!==c.stops.length){if("linear"===c.type){let e=(c.angle||0)*Math.PI/180,f=b.x+b.w/2-Math.cos(e)*b.w/2,g=b.y+b.h/2-Math.sin(e)*b.h/2,h=b.x+b.w/2+Math.cos(e)*b.w/2,i=b.y+b.h/2+Math.sin(e)*b.h/2;d=a.createLinearGradient(f,g,h,i)}else{let c=b.x+b.w/2,e=b.y+b.h/2,f=Math.max(b.w,b.h)/2;d=a.createRadialGradient(c,e,0,c,e,f)}for(let a of c.stops)d.addColorStop(a.position,this.graphics.colorToRgb(a.color));a.fillStyle=d,a.fillRect(b.x,b.y,b.w,b.h)}}applyStrokeStyle(a,b,c){if(a&&b){if(b.cap)switch(b.cap){case"rnd":a.lineCap="round";break;case"sq":a.lineCap="square";break;default:a.lineCap="butt"}if(b.join)switch(b.join){case"round":a.lineJoin="round";break;case"bevel":a.lineJoin="bevel";break;default:a.lineJoin="miter"}if(b.dashArray&&b.dashArray.length>0){let d=b.dashArray.map(a=>a*c);a.setLineDash(d)}else a.setLineDash([])}}getShapePreset(a){return a.geometry&&a.geometry.preset?a.geometry.preset:a.properties&&a.properties.geometry&&a.properties.geometry.preset?a.properties.geometry.preset:a.spPr&&a.spPr.geometry&&a.spPr.geometry.preset?a.spPr.geometry.preset:a.spPr&&a.spPr.prstGeom&&a.spPr.prstGeom.prst?a.spPr.prstGeom.prst:this.isPlaceholderShape(a)||"sp"===a.type||"shape"===a.type?"rect":null}drawPictureShape(a,b){if(!b||b.w<=0||b.h<=0||!this.graphics||!this.graphics.context)return;let c=this.graphics.context;c.save();let d=a.properties?.transform;if(d&&d.rotation&&0!==d.rotation){let a=b.x+b.w/2,e=b.y+b.h/2;c.translate(a,e),c.rotate(d.rotation*Math.PI/180),c.translate(-a,-e)}let e=this.getShapePreset(a);if(e&&"rect"!==e&&"ellipse"===e&&(c.beginPath(),c.ellipse(b.x+b.w/2,b.y+b.h/2,b.w/2,b.h/2,0,0,2*Math.PI),c.clip()),a.imageRelId&&this.processor&&this.processor.imageCache){let d=this.processor.imageCache.get(a.imageRelId);if(d&&"svg"===d.type&&this.processor.svgRenderer)try{this.processor.svgRenderer.renderSVG(d.content,b.x,b.y,b.w,b.h,{preserveAspectRatio:!0}).then(()=>{}).catch(()=>{}),c.restore();return}catch(a){}if(d&&d.image)try{let e=d.image,{width:f,height:g}=d,h=b.x,i=b.y,j=b.w,k=b.h;if("stretch"===a.imageFillMode){if(a.imageSrcRect){let d=a.imageSrcRect,e=1e5-d.l-d.r,f=1e5-d.t-d.b;e>0&&f>0&&(h=b.x+-(b.w*d.l)/e,i=b.y+-(b.h*d.t)/f,j=1e5*b.w/e,k=1e5*b.h/f,c.beginPath(),c.rect(b.x,b.y,b.w,b.h),c.clip())}else if(a.imageFillRect){let c=a.imageFillRect;h=b.x+b.w*c.l/1e5,i=b.y+b.h*c.t/1e5,j=b.w*(1e5-c.l-c.r)/1e5,k=b.h*(1e5-c.t-c.b)/1e5}}else if("tile"===a.imageFillMode)h=b.x,i=b.y,j=b.w,k=b.h;else{let a=f/g,c=b.w/b.h;a>c?(j=b.w,k=b.w/a,h=b.x,i=b.y+(b.h-k)/2):(k=b.h,j=b.h*a,h=b.x+(b.w-j)/2,i=b.y)}c.drawImage(e,h,i,j,k),c.restore();return}catch(a){}}c.restore(),a.textBody&&a.textBody.paragraphs&&this.shouldRenderText(a)&&(this.setCurrentRenderingShape(a),this.drawShapeText(a,b))}drawImagePlaceholder(a,b,c,d,e,f="IMAGE"){let g=this.m_oContext;g&&(g.save(),g.fillStyle="#f8f9fa",g.fillRect(b,c,d,e),g.strokeStyle="#dee2e6",g.lineWidth=1,g.strokeRect(b,c,d,e),g.restore())}drawGroupShape(a,b){if(b&&!(b.w<=0)&&!(b.h<=0)&&this.graphics&&this.graphics.context){this.graphics.SaveGrState();try{if(a.transform){let c=this.graphics.context;if(a.transform.rotation&&0!==a.transform.rotation){let d=b.x+b.w/2,e=b.y+b.h/2;c.save(),c.translate(d,e),c.rotate(a.transform.rotation*Math.PI/180),c.translate(-d,-e)}if(a.transform.flipH||a.transform.flipV){let d=a.transform.flipH?-1:1,e=a.transform.flipV?-1:1,f=b.x+b.w/2,g=b.y+b.h/2;c.save(),c.translate(f,g),c.scale(d,e),c.translate(-f,-g)}}if(a.shapeTree&&a.shapeTree.length>0){let b=this.sortShapesByRenderOrder(a.shapeTree);for(let a=0;a<b.length;a++){let c=b[a];try{let a=this.getShapeBounds(c);a&&a.w>0&&a.h>0&&this.drawShapeGeometry(c,a)}catch(a){}}}}catch(a){}finally{this.graphics.RestoreGrState()}}}calculateChildShapeBounds(a,b){if(!a.bounds)return{x:b.x,y:b.y,w:50,h:50};let c=a.bounds,d=this.processor?this.processor.getSlideDimensions():{cx:9144e3,cy:6858e3},e=this.processor?this.processor.calculateCanvasRect(this.canvas,d):{scale:1,offsetX:0,offsetY:0,slideWidthPx:this.canvas.width,slideHeightPx:this.canvas.height},f=e.slideWidthPx,g=e.slideHeightPx,h={x:(c.l||0)/d.cx*f,y:(c.t||0)/d.cy*g,w:((c.r||0)-(c.l||0))/d.cx*f,h:((c.b||0)-(c.t||0))/d.cy*g},i=e.offsetX+h.x*e.scale,j=e.offsetY+h.y*e.scale;return{x:i,y:j,w:h.w*e.scale,h:h.h*e.scale}}drawDefaultShape(a,b){if(!b||b.w<=0||b.h<=0||!this.graphics||!this.graphics.context)return;let c=this.graphics.context;c.save();let d=a.properties?.transform;if(d&&d.rotation&&0!==d.rotation){let a=b.x+b.w/2,e=b.y+b.h/2;c.translate(a,e),c.rotate(d.rotation*Math.PI/180),c.translate(-a,-e)}c.fillStyle="#e0e0e0",c.fillRect(b.x,b.y,b.w,b.h),c.strokeStyle="#999",c.lineWidth=1,c.strokeRect(b.x,b.y,b.w,b.h),c.restore(),a.textBody&&a.textBody.paragraphs&&(this.setCurrentRenderingShape(a),this.drawShapeText(a,b))}drawConnectorShape(a,b){!b||b.w<=0&&b.h<=0||this.drawEngineLine(b,a)}async drawGraphicFrame(a,b){a.graphicData,!b||b.w<=0||b.h<=0||(a.graphicData&&"http://schemas.openxmlformats.org/drawingml/2006/table"===a.graphicData.uri?this.drawTable(a,b):a.graphicData&&"http://schemas.openxmlformats.org/drawingml/2006/chart"===a.graphicData.uri?await this.drawChart(a,b):this.drawDefaultShape(a,b))}drawTable(a,b){if(a.graphicData&&a.graphicData.tableXml)try{this.tableProcessor||(this.tableProcessor=new TableProcessor);let c=this.tableProcessor.parseTableFromXML(a.graphicData.tableXml);if(c){let a=b.x,d=b.y,e=b.w,f=b.h;try{let a="function"==typeof c.getTableProperties?c.getTableProperties()||{}:c.tableProperties||{};a&&a.layout&&String(a.layout).toLowerCase();let d=this.coordinateSystem&&"number"==typeof this.coordinateSystem.scale?this.coordinateSystem.scale:1,g=0,h="function"==typeof c.getTableGrid?c.getTableGrid():c.tableGrid||[];Array.isArray(h)&&h.length>0&&(g=h.reduce((a,b)=>a+(parseInt(b.width)||0),0)/914400*96*d);let i=0,j=c.rows||[];if(j.length>0&&j.some(a=>a&&a.height)&&(i=j.reduce((a,b)=>a+(parseInt(b&&b.height)||0),0)/914400*96*d),!g&&a&&a.preferredWidth){let c=a.preferredWidth;if("pct"===c.type){let a=(parseInt(c.value)||0)/5e3;g=Math.max(0,b.w*a)}else"dxa"===c.type&&(g=(parseInt(c.value)||0)/1440*96*d)}let k=g>0?g/b.w:0;(g>b.w||k<.9)&&(e=g),i>0&&(f=i)}catch(a){}let g=this.canvas.getContext("2d"),h=null;try{(h=this.computeTableLayout(c,e,f,g))&&"number"==typeof h.height&&h.height>0&&(f=h.height)}catch(a){h=null}if(g.save(),g.rect(a,d,e,f),g.clip(),!this.graphics.context)return;this.drawTableDirect(c,g,a,d,e,f,h),g.restore()}else this.drawTablePlaceholder(b,"Parse Failed"),tableCtx.restore()}catch(a){this.drawTablePlaceholder(b,"Error"),tableCtx.restore()}else this.drawTablePlaceholder(b,"No Data")}computeTableLayout(a,b,c,d){let e,f={cellWidths:[],cellHeights:[],height:c};if(!a)return f;let g="function"==typeof a.getRowCount?a.getRowCount():a.rows?a.rows.length:0,h="function"==typeof a.getColumnCount?a.getColumnCount():0;if(g<=0)return f;let i=this.coordinateSystem&&"number"==typeof this.coordinateSystem.scale?this.coordinateSystem.scale:1;try{let c="function"==typeof a.getTableGrid?a.getTableGrid():a.tableGrid||[];if(Array.isArray(c)&&c.length>0){let a=(e=c.map(a=>(parseInt(a.width,10)||0)/914400*96*i)).reduce((a,b)=>a+b,0);if(a>0&&isFinite(b)&&b>0&&Math.abs(a-b)>1){let c=b/a;e=e.map(a=>a*c)}let d=Math.max(h,e.length);if(e.length<d&&d>0){let a=d-e.length,c=e.reduce((a,b)=>a+b,0),f=a>0?(b-c)/a:0;for(let b=0;b<a;b++)e.push(f)}}}catch(a){e=void 0}let j=Math.max(h,Array.isArray(e)?e.length:0);if(!Array.isArray(e)||0===e.length){let a=b/Math.max(j||1,1);e=Array.from({length:Math.max(j,1)},()=>a)}let k=Array(g),l=Array(g).fill(!1),m=isFinite(c)&&c>0?c/Math.max(g,1):0;for(let b=0;b<g;b++){let c=a.rows?a.rows[b]:null,d=null;if(c&&void 0!==c.height&&null!==c.height){let a=parseInt(c.height,10);!Number.isNaN(a)&&a>0&&(d=a/914400*96*i)}d&&d>0?k[b]=d:(k[b]=0,l[b]=!0)}let n=(a,b,c)=>{let d=0;for(let e=0;e<c;e++)d+=a[b+e]||0;return d};if(d&&"function"==typeof d.measureText){let b=Array(g).fill(0);"function"==typeof d.save&&d.save();try{d.textBaseline="top";for(let c=0;c<g;c++){let f=a.rows?a.rows[c]:null;if(!f||!Array.isArray(f.cells))continue;let h=0;for(let a=0;a<f.cells.length;a++){let i=f.cells[a],j=Math.max(1,i?.gridSpan||1),l=Math.max(1,i?.rowSpan||1);if(i&&i.isMergedContinue){"continue"===i.vMerge&&(h+=1);continue}let m=n(e,h,j),o=this.getCellMarginsPx(i),p=Math.max(0,m-o.left-o.right);if(p<=0){h+=j;continue}let q=this.computeCellTextLayout(d,i,p,1/0,{contentX:0}).totalHeight+o.top+o.bottom;if(q<=0){h+=j;continue}let r=n(k,c,l);if(q>r){let a=q-r;if(1===l)b[c]=Math.max(b[c],a);else{let d=a/l;for(let a=0;a<l;a++){let e=c+a;if(e>=g)break;b[e]=Math.max(b[e],d)}}}h+=j}}}finally{"function"==typeof d.restore&&d.restore()}for(let a=0;a<g;a++)b[a]>0&&(k[a]+=b[a])}for(let a=0;a<g;a++)(void 0===k[a]||k[a]<=0)&&l[a]&&(k[a]=m||0),k[a]<=0&&(k[a]=0);let o=k.reduce((a,b)=>a+(b||0),0);return f.cellWidths=e,f.cellHeights=k,o>0?f.height=o:isFinite(c)&&c>0?f.height=c:f.height=0,f}drawTableDirect(a,b,c,d,e,f,g=null){if(!a||!b)return;b.save();let h="function"==typeof a.getRowCount?a.getRowCount():a.rows?a.rows.length:0,i="function"==typeof a.getColumnCount?a.getColumnCount():0;if(0===h||0===i&&!(a.rows&&a.rows[0]&&a.rows[0].cells))return void b.restore();let j=g;j||(j=this.computeTableLayout(a,e,f,b));let k=Array.isArray(j?.cellWidths)?j.cellWidths.slice():null,l=k&&k.length>0?k.length:Math.max(i,1);k&&0!==k.length||(k=Array.from({length:l},()=>e/Math.max(l,1)));let m=Array.isArray(j?.cellHeights)?j.cellHeights.slice():null;m&&0!==m.length||(m=Array.from({length:h},()=>f/Math.max(h,1))),j&&"number"==typeof j.height&&j.height>0&&(f=j.height);let n=(a,b,c)=>{let d=0;for(let e=0;e<c;e++)d+=a[b+e]||0;return d},o=(a,b)=>{let c=0;for(let d=0;d<b;d++)c+=a[d]||0;return c},p=null;try{let b="function"==typeof a.getTableProperties?a.getTableProperties():a.tableProperties||{};p=b&&b.borders?b.borders:null}catch(a){p=null}let q=d,r=[];for(let d=0;d<h;d++){let e=m[d],f=a.rows[d];if(!f)continue;let g=0;for(let e=0;e<f.cells.length;e++){let h=f.cells[e],i=Math.max(1,h?.gridSpan||1),j=Math.max(1,h?.rowSpan||1);if(h&&h.isMergedContinue){"continue"===h.vMerge&&(g+=1);continue}let l=c+o(k,g),p=q,r=n(k,g,i),s=n(m,d,j),t=this.extractCellStyle(h,d,a);t.backgroundColor&&(b.fillStyle=t.backgroundColor,b.fillRect(l,p,r,s)),this.drawCellBordersFromPPTX(b,h,l,p,r,s),h&&h.textBody&&this.drawCellText(b,h,l,p,r,s,t),g+=i}q+=e,r.push(q)}let s=this.coordinateSystem&&"number"==typeof this.coordinateSystem.scale?this.coordinateSystem.scale:1,t=a=>Math.max(1,Math.round((a.width||1)*s));if(p){if(p.top&&p.top.color){let a=p.top;b.strokeStyle=`rgb(${a.color.r}, ${a.color.g}, ${a.color.b})`,b.lineWidth=t(a),b.beginPath(),b.moveTo(c,d),b.lineTo(c+e,d),b.stroke()}if(p.left&&p.left.color){let a=p.left;b.strokeStyle=`rgb(${a.color.r}, ${a.color.g}, ${a.color.b})`,b.lineWidth=t(a),b.beginPath(),b.moveTo(c,d),b.lineTo(c,d+f),b.stroke()}if(p.right&&p.right.color){let a=p.right;b.strokeStyle=`rgb(${a.color.r}, ${a.color.g}, ${a.color.b})`,b.lineWidth=t(a),b.beginPath(),b.moveTo(c+e,d),b.lineTo(c+e,d+f),b.stroke()}if(p.bottom&&p.bottom.color){let a=p.bottom;b.strokeStyle=`rgb(${a.color.r}, ${a.color.g}, ${a.color.b})`,b.lineWidth=t(a),b.beginPath(),b.moveTo(c,d+f),b.lineTo(c+e,d+f),b.stroke()}if(p.insideH&&p.insideH.color){let a=p.insideH;b.strokeStyle=`rgb(${a.color.r}, ${a.color.g}, ${a.color.b})`,b.lineWidth=t(a);for(let a=0;a<r.length-1;a++){let d=r[a];b.beginPath(),b.moveTo(c,d),b.lineTo(c+e,d),b.stroke()}}if(p.insideV&&p.insideV.color){let a=p.insideV;b.strokeStyle=`rgb(${a.color.r}, ${a.color.g}, ${a.color.b})`,b.lineWidth=t(a);let e=c;for(let a=0;a<k.length-1;a++)e+=k[a],b.beginPath(),b.moveTo(e,d),b.lineTo(e,d+f),b.stroke()}}b.restore()}drawCellBordersFromPPTX(a,b,c,d,e,f){if(!b||!b.borders)return;let g=b.borders,h=this.coordinateSystem&&"number"==typeof this.coordinateSystem.scale?this.coordinateSystem.scale:1;[{name:"top",x1:c,y1:d,x2:c+e,y2:d},{name:"right",x1:c+e,y1:d,x2:c+e,y2:d+f},{name:"bottom",x1:c,y1:d+f,x2:c+e,y2:d+f},{name:"left",x1:c,y1:d,x2:c,y2:d+f}].forEach(b=>{let c=g[b.name];c&&c.color&&c.width&&c.width>0&&(a.strokeStyle=`rgb(${c.color.r}, ${c.color.g}, ${c.color.b})`,a.lineWidth=Math.max(1,Math.round(c.width*h)),a.beginPath(),a.moveTo(b.x1,b.y1),a.lineTo(b.x2,b.y2),a.stroke())})}extractCellStyle(a,b,c){let d={};if(!a)return d;if(a.shading&&a.shading.fillColor&&void 0!==a.shading.fillColor.r&&void 0!==a.shading.fillColor.g&&void 0!==a.shading.fillColor.b){let b=a.shading.fillColor;d.backgroundColor=`rgba(${b.r}, ${b.g}, ${b.b}, ${(b.a||255)/255})`}else if(a.shading&&a.shading.fill&&"none"!==a.shading.fill){let b=a.shading.fill.startsWith("#")?a.shading.fill.slice(1):null;if(b&&6===b.length){let a=parseInt(b.substring(0,2),16),c=parseInt(b.substring(2,4),16),e=parseInt(b.substring(4,6),16);d.backgroundColor=`rgb(${a}, ${c}, ${e})`}}if(!d.backgroundColor&&c&&void 0!==b){let e="function"==typeof c.getTableProperties?c.getTableProperties():c.tableProperties||{};if(e){let c=a.logicalColIndex||0;e.firstRow&&0===b?d.backgroundColor="rgba(68, 114, 196, 1)":e.bandRow&&b>0?(e.firstRow?b-1:b)%2==1&&(d.backgroundColor="rgba(242, 242, 242, 1)"):e.firstCol&&0===c&&b>0&&(d.backgroundColor="rgba(221, 235, 247, 1)")}}if(a.textBody&&a.textBody.paragraphs&&a.textBody.paragraphs.length>0){let e=a.textBody.paragraphs[0];if(e.runs&&e.runs.length>0){let a=e.runs[0];if(a.properties&&a.properties.color){let b=a.properties.color;d.textColor=`rgba(${b.r}, ${b.g}, ${b.b}, ${(b.a||255)/255})`}else d.textColor=this.getTableStyleTextColor(b,c)}else d.textColor=this.getTableStyleTextColor(b,c)}else d.textColor=this.getTableStyleTextColor(b,c);return d}getTableStyleTextColor(a,b){let c=b&&"function"==typeof b.getTableProperties?b.getTableProperties():b&&b.tableProperties?b.tableProperties:{};return c&&void 0!==a&&c.firstRow&&0===a?"rgb(255, 255, 255)":"rgb(0, 0, 0)"}getCellMarginsPx(a){let b=this.coordinateSystem&&"number"==typeof this.coordinateSystem.scale?this.coordinateSystem.scale:1,c=3.78*b,d={left:c,top:c,right:c,bottom:c};if(!a)return d;let e={...d},f=a=>{let c=Number(a);return Number.isFinite(c)?c/914400*96*b:null};return(a=>{if(a){if(void 0!==a.marL){let b=f(a.marL);null!==b&&(e.left=b)}if(void 0!==a.marT){let b=f(a.marT);null!==b&&(e.top=b)}if(void 0!==a.marR){let b=f(a.marR);null!==b&&(e.right=b)}if(void 0!==a.marB){let b=f(a.marB);null!==b&&(e.bottom=b)}}})(a.cellProperties),(a=>{if(a){if(void 0!==a.left){let b=f(a.left);null!==b&&(e.left=b)}if(void 0!==a.top){let b=f(a.top);null!==b&&(e.top=b)}if(void 0!==a.right){let b=f(a.right);null!==b&&(e.right=b)}if(void 0!==a.bottom){let b=f(a.bottom);null!==b&&(e.bottom=b)}}})(a.margins),e}computeCellTextLayout(a,b,c,d=1/0,e={}){let f={lines:[],totalHeight:0};if(!b||!b.textBody||!Array.isArray(b.textBody.paragraphs)||c<=0)return f;let g="number"==typeof d&&d>0?d:1/0,h=e&&"number"==typeof e.contentX?e.contentX:0,i=0,j=this.coordinateSystem&&"number"==typeof this.coordinateSystem.scale?this.coordinateSystem.scale:1,k=!!(b.textBody&&b.textBody.bodyProperties&&!1===b.textBody.bodyProperties.wrap),l=a?a.font:null;for(let d of b.textBody.paragraphs){if(!d||!Array.isArray(d.runs)||0===d.runs.length)continue;if(i>=g)break;let b="left",l=h;if(d.properties&&d.properties.alignment){let a=d.properties.alignment,e="string"==typeof a?a.toLowerCase():a;"center"===e||"ctr"===e?(b="center",l=h+c/2):"right"===e||"r"===e||"end"===e?(b="right",l=h+c):"start"===e||"left"===e||"l"===e?(b="left",l=h):"justify"===e&&(b="left",l=h)}let m=d.runs.find(a=>(a.text||"").trim().length>0)||d.runs[0],n=12;if(m?.properties?.fontSize)n=m.properties.fontSize;else if(m?.properties?.sz){let a=parseInt(m.properties.sz,10);Number.isNaN(a)||(n=a/100)}let o=Math.max(1,Math.round(96/72*n*j)),p=m?.properties?.fontFamily||"Arial",q=!!m?.properties?.bold,r=!!m?.properties?.italic,s=!!m?.properties?.underline,t=e.defaultTextColor||"rgb(159, 159, 159)";if(m?.properties?.color){let a=m.properties.color;t=`rgba(${a.r}, ${a.g}, ${a.b}, ${(a.a||255)/255})`}let u=1.2;d.properties&&("number"==typeof d.properties.lineSpacingFactor?u=d.properties.lineSpacingFactor:"number"==typeof d.properties.lineSpacingPct&&(u=Math.max(.5,Math.min(4,d.properties.lineSpacingPct/100))));let v=Math.max(1,Math.round(o*u)),w=d.runs.map(a=>a.text||"").join("");if(!w)continue;let x=!k,y=`${r?"italic ":""}${q?"bold ":""}${o}px ${p}`;a&&"string"==typeof a.font&&(a.font=y);let z=null;if(m?.properties?.highlight){let a=m.properties.highlight;"object"==typeof a&&void 0!==a.r?z=`rgba(${a.r}, ${a.g}, ${a.b}, ${(a.a||255)/255})`:"string"==typeof a&&(z=a)}let A=a=>{a&&(f.lines.push({text:a,textX:l,textAlign:b,fontSizePixels:o,fontFamily:p,isBold:q,isItalic:r,isUnderline:s,colorStr:t,lineHeight:v,highlightStr:z}),i+=v)};if(x){let b=w.trim();for(;b.length>0&&!(i+v>g);){let d=1,e=b.length,f=1;for(;d<=e;){let g=d+e>>1,h=b.slice(0,g);(a&&"function"==typeof a.measureText?a.measureText(h):{width:h.length*o*.5}).width<=c||1===g?(f=g,d=g+1):e=g-1}let g=f;if(f<b.length){let a=b.slice(0,f).lastIndexOf(" ");a>0&&(g=a)}let h=Math.max(1,g),i=b.slice(0,h).trimEnd();i||(i=b.charAt(0),h=1),A(i),b=b.slice(h).trimStart()}}else{if(i+v>g)break;A(w.trimEnd())}}return a&&null!==l&&(a.font=l),f.totalHeight=i,f}drawCellText(a,b,c,d,e,f,g){if(!b||!b.textBody||!b.textBody.paragraphs)return;a.save(),a.textBaseline="top";let h=this.getCellMarginsPx(b),i=Math.max(0,e-h.left-h.right),j=Math.max(0,f-h.top-h.bottom);if(i<=0||j<=0)return void a.restore();let k=c+h.left,l=d+h.top;a.beginPath(),a.rect(k,l,i,j),a.clip();let m=this.computeCellTextLayout(a,b,i,j,{contentX:k,defaultTextColor:g.textColor});if(m.lines.length>0){let c=m.totalHeight,d="top";if(b&&"string"==typeof b.verticalAlignment)d=b.verticalAlignment.toLowerCase();else if(b&&b.textBody&&b.textBody.bodyProperties&&b.textBody.bodyProperties.anchor){let a=String(b.textBody.bodyProperties.anchor).toLowerCase();"ctr"===a||"center"===a||"middle"===a?d="middle":("b"===a||"bottom"===a)&&(d="bottom")}let e=m.lines[m.lines.length-1],f=e?Math.max(0,e.lineHeight-e.fontSizePixels):0,g=l;for(let b of("middle"===d||"center"===d||"ctr"===d?g=l+Math.max(0,(j-c)/2)+f/2:("b"===d||"bottom"===d)&&(g=l+Math.max(0,j-c)+f),m.lines)){let c="";if(b.isItalic&&(c+="italic "),b.isBold&&(c+="bold "),a.font=`${c}${b.fontSizePixels}px ${b.fontFamily}`,a.textAlign=b.textAlign,b.highlightStr){let c=a.measureText(b.text);a.save(),a.fillStyle=b.highlightStr,a.fillRect(Math.round(b.textX),Math.round(g-b.fontSizePixels),c.width,1.2*b.fontSizePixels),a.restore()}if(a.fillStyle=b.colorStr,a.fillText(b.text,Math.round(b.textX),Math.round(g)),b.isUnderline){let c=a.measureText(b.text).width,d=Math.round(g+1.1*b.fontSizePixels),e="center"===b.textAlign?Math.round(b.textX-c/2):"right"===b.textAlign?Math.round(b.textX-c):Math.round(b.textX);a.save(),a.strokeStyle=b.colorStr,a.lineWidth=Math.max(1,.08*b.fontSizePixels),a.beginPath(),a.moveTo(e,d),a.lineTo(e+c,d),a.stroke(),a.restore()}if((g+=b.lineHeight)>l+j)break}}a.restore()}getScaledFontSize(a){let b=a;return this.coordinateSystem&&this.coordinateSystem.scale&&(b=Math.min(b=Math.max(b=a*this.coordinateSystem.scale,8),72)),Math.round(b)}drawTablePlaceholder(a,b){this.graphics.p_color(100,100,200,255),this.graphics.p_width(2),this.graphics._s(),this.graphics._m(a.x,a.y),this.graphics._l(a.x+a.w,a.y),this.graphics._l(a.x+a.w,a.y+a.h),this.graphics._l(a.x,a.y+a.h),this.graphics._z(),"function"==typeof this.graphics.ds&&this.graphics.ds()}async drawChart(a,b){let c=this.currentSlideIndex,d=this.currentSlide;if(a.chartData){if("DEFERRED_CHART"===a.chartData.type)if(!window.ChartProcessor)return void this.drawChartPlaceholder(b,"No Processor");else{let e=new ChartProcessor(this.context);if(void 0===c||!d)return void this.drawChartPlaceholder(b,"No Context");{let f={slideIndex:c,slideName:d?.name||`slide${c+1}`,slide:d};e.setSlideContext(f);try{let c=await e.loadChartFromRelationship(a.chartData.relationshipId,f);if(!c||"DEFERRED_CHART"===c.type)return void this.drawChartPlaceholder(b,"Load Failed");a.chartData=c}catch(a){this.drawChartPlaceholder(b,"Load Error");return}}}try{let c=new ChartRenderer(this.graphics);await c.renderChart(a.chartData,b.x,b.y,b.w,b.h)}catch(a){this.drawChartPlaceholder(b,"Render Failed")}}else if(a.graphicData&&a.graphicData.element&&window.ChartProcessor)try{let e=new ChartProcessor(this.context);if(void 0!==c&&d){let a={slideIndex:c,slideName:d?.name||`slide${c+1}`,slide:d};e.setSlideContext(a)}let f=e.parseEmbeddedChartData(a.graphicData.element);if(f){a.chartData=f;let c=new ChartRenderer(this.graphics);await c.renderChart(f,b.x,b.y,b.w,b.h);return}if(a.graphicData.chartRef){let f={slideIndex:c,slideName:d?.name||`slide${c+1}`,slide:d};try{let c=await e.loadChartFromRelationship(a.graphicData.chartRef,f);if(c){a.chartData=c;let d=new ChartRenderer(this.graphics);await d.renderChart(c,b.x,b.y,b.w,b.h)}else this.drawChartPlaceholder(b,"Processing Failed")}catch(a){this.drawChartPlaceholder(b,"Processing Error")}return}this.drawChartPlaceholder(b,"No Chart Reference")}catch(a){this.drawChartPlaceholder(b,"Processing Failed")}else this.drawChartPlaceholder(b,"No Chart Data")}drawChartStyling(a,b,c,d,e){if(!a)return;let f=null;if(this.graphics&&this.graphics.ctx?f=this.graphics.ctx:this.graphics&&this.graphics._context?f=this.graphics._context:this.graphics&&this.graphics.context?f=this.graphics.context:this.graphics&&this.graphics.m_oContext&&(f=this.graphics.m_oContext),!f)return;let g=(a.plotArea?.shapeProperties||a.shapeProperties||{}).line;if(!g||!g.color)return;let h=Math.max(1,Math.round((g.width||12700)/12700)),i="string"==typeof g.color?g.color:this.colorToRgb(g.color),j=a.roundedCorners?Math.min(20,Math.floor(.1*Math.min(d,e))):0;if(f.save(),f.strokeStyle=i,f.lineWidth=h,f.lineCap="round",f.lineJoin="round",f.globalCompositeOperation="source-over",f.beginPath(),a.roundedCorners&&j>0){let a=b+h/2,g=c+h/2,i=d-h,k=e-h;this.graphics&&"function"==typeof this.graphics.drawRoundRectPath?this.graphics.drawRoundRectPath(f,a,g,i,k,j):"function"==typeof this.drawRoundRectPath?this.drawRoundRectPath(f,a,g,i,k,j):f.rect(a,g,i,k)}else{let a=b+h/2,g=c+h/2,i=d-h,j=e-h;f.rect(a,g,i,j)}f.stroke(),f.restore()}drawChartPlaceholder(a,b){this.graphics.p_color(200,100,100,255),this.graphics.p_width(2),this.graphics._s(),this.graphics._m(a.x,a.y),this.graphics._l(a.x+a.w,a.y),this.graphics._l(a.x+a.w,a.y+a.h),this.graphics._l(a.x,a.y+a.h),this.graphics._z(),"function"==typeof this.graphics.ds&&this.graphics.ds()}drawShapeText(a,b){if(a&&a.textBody&&a.textBody.paragraphs&&0!==a.textBody.paragraphs.length){this.setCurrentRenderingShape(a),this.graphics.SaveGrState();try{let c=this.calculateTextBounds(a,b);this.drawTextContent(a.textBody,c)}catch(c){this.drawFallbackText(a,b)}finally{this.graphics.RestoreGrState(),this.setCurrentRenderingShape(null)}}}calculateTextBounds(a,b){let{x:c,y:d,w:e,h:f}=b,g=a.textBody?.bodyProperties||a.textBody?.bodyPr||{};"rtTriangle"===this.getShapePreset(a)&&(d+=f/2,f/=2);let h=Math.max(22860,.02*e*914400),i=Math.max(11430,.01*f*914400),j=this.emuToPixels(g.leftMargin||h),k=this.emuToPixels(g.rightMargin||h),l=this.emuToPixels(g.topMargin||i),m=this.emuToPixels(g.bottomMargin||i);if(this.coordinateSystem){let{scale:a}=this.coordinateSystem,b=Math.round(j*a),g=Math.round(k*a),h=Math.round(l*a),i=Math.round(m*a);return{x:c+b,y:d+h,w:Math.max(e-(b+g),0),h:Math.max(f-(h+i),0),scale:a,margins:{left:b,right:g,top:h,bottom:i}}}return{x:c+j,y:d+l,w:Math.max(e-(j+k),0),h:Math.max(f-(l+m),0),scale:1,margins:{left:j,right:k,top:l,bottom:m}}}drawFallbackText(a,b){let c=this.graphics.context;if(!c)return;let{x:d,y:e,w:f,h:g}=b;c.save();let h=this.getTextScaleFactor();c.font=`${12*h}px Arial`,c.fillStyle="#000000",c.textAlign="left",c.textBaseline="top";let i=e+5;for(let b of a.textBody.paragraphs){if(i>e+g-16)break;for(let a of b.runs)a.text&&i<=e+g-16&&(c.fillText(a.text,d+5,i),i+=16)}c.restore()}drawTextContent(a,b){if(!a||!a.paragraphs||0===a.paragraphs.length||!this.graphics||!this.graphics.context)return;this.graphics.context;let{x:c,y:d,w:e,h:f}=b;if(!f||f<1){let c=this.estimateTextHeightPx(a,e);if(c&&c>0){let d={...b,h:c};this.renderTextBodyStandard(a,d);return}}this.renderTextBodyStandard(a,b)}estimateTextHeightPx(a,b){try{if(!a||!a.paragraphs||0===a.paragraphs.length)return 0;let c=a.bodyProperties||a.bodyPr||{},d=this.emuToPixels(c.leftMargin||0),e=this.emuToPixels(c.rightMargin||0),f=Math.max(0,b-d-e),g=0;for(let b of a.paragraphs){let a=this.parseParagraphProperties(b,this.getCurrentShape()),c=this.calculateWrappedLines(b,a,f,this.getCurrentShape()),d=this.calculateStandardLineHeight(a,c),e=this.emuToPixels(a.spaceBefore||0),h=this.emuToPixels(a.spaceAfter||0);g+=e+c.length*d+h}let h=this.emuToPixels(c.topMargin||0),i=this.emuToPixels(c.bottomMargin||0);return g+=h+i,Math.ceil(g)}catch(a){return 0}}estimateTextBoxHeightPx(a,b){let c=a&&a.textBody;return c?this.estimateTextHeightPx(c,b):0}renderTextBodyStandard(a,b){let{x:c,y:d,w:e,h:f,margins:g,scale:h}=b,i=a.bodyProperties||a.bodyPr||{},j=i.anchor||i.verticalAlign||"t";switch(j){case"top":j="t";break;case"middle":case"center":j="ctr";break;case"bottom":j="b"}let k=d,l=[],m=0;for(let b=0;b<a.paragraphs.length;b++){let c=a.paragraphs[b],d=this.getCurrentShape(),f=this.parseParagraphProperties(c,d),g=this.calculateWrappedLines(c,f,e,d),i=this.calculateStandardLineHeight(f,g),j=this.emuToPixels(f.spaceBefore||0)*h,k=this.emuToPixels(f.spaceAfter||0)*h;f.spaceBeforePct&&!f.spaceBefore&&(j=f.spaceBeforePct*i),f.spaceAfterPct&&!f.spaceAfter&&(k=f.spaceAfterPct*i);let n=j+g.length*i+k;l.push({paragraph:c,paraProps:f,wrappedLines:g,lineHeight:i,spaceBefore:j,spaceAfter:k,height:n}),m+=n}switch(j){case"ctr":case"middle":k=d+(f-m)/2;break;case"b":case"bottom":k=d+f-m;break;case"just":a.paragraphs.length,k=d;break;default:k=d}let n=k,o=d+f,p=0;if(("just"===j||"dist"===j)&&l.length>1){let a=Math.max(0,f-m);a>0&&("just"===j?p=a/(l.length-1):"dist"===j&&(n+=p=a/(l.length+1)))}let q={},r=-1,s={},t=new Set;for(let a=0;a<l.length;a++){let{paraProps:b}=l[a];if(b&&b.bullet&&("number"===b.bullet.type||"autoNumber"===b.bullet.type)){let a=b.indent&&"number"==typeof b.indent.left?b.indent.left:0;t.add(a)}}let u=Array.from(t).sort((a,b)=>a-b),v=u.length>0?u[0]:0,w=a=>{let b=a&&"number"==typeof a.level?a.level:0;if(b>0)return b;let c=a.indent&&"number"==typeof a.indent.left?a.indent.left:0;if(u.length<=1)return b;if(c<=v)return 0;let d=u.indexOf(c);return -1===d&&-1===(d=u.findIndex(a=>a>=c))&&(d=u.length-1),Math.max(0,d)};for(let a=0;a<l.length;a++){let b=l[a].paraProps;if(b.bullet&&("number"===b.bullet.type||"autoNumber"===b.bullet.type)){let c=w(b),d=void 0!==b.bullet.startAt,e=d?b.bullet.startAt:1;if(c!==r)if(c<r)for(let a=c+1;a<=9;a++)delete q[a];else c>r&&(q[c]=0);if(!q[c]&&0!==q[c]){let a=d?e-1:0;q[c]=a}q[c]||(q[c]=0),q[c]++,s[a]=q[c],r=c}}for(let a=0;a<l.length;a++){let b=l[a];if(n>=o)break;let{paraProps:d,wrappedLines:f,lineHeight:g,spaceBefore:i,spaceAfter:j}=b;n+=i||0;let k=w(d);if(d.bullet&&("number"===d.bullet.type||"autoNumber"===d.bullet.type)){if(k!==r)if(k<r)for(let a=k+1;a<=9;a++)delete q[a];else k>r&&(q[k]=0);q[k]||(q[k]=0),q[k]++,r=k}for(let b=0;b<f.length;b++){let i=f[b],j=this.emuToPixels(d.indent?.left||0)*h,l=this.emuToPixels(d.indent?.hanging||0)*h,m=j;0===b&&0!==l&&(m+=l);let o=d.align||"left",p=c+Math.max(0,m);"center"===o||"ctr"===o?p=c+m+(e-i.width-m)/2:("right"===o||"r"===o)&&(p=c+e-i.width);let r=d.fontSize||12,t=this.getTextScaleFactor(),u=n+r*t*.8;if(0===b&&d.bullet&&"none"!==d.bullet.type){let b=c+j+l,e="number"===d.bullet.type||"autoNumber"===d.bullet.type?q[k]||1:a;d._bulletNumber=s[a];let f=i.runs&&i.runs[0]&&i.runs[0].runProps&&i.runs[0].runProps.fontSize?i.runs[0].runProps.fontSize:d.fontSize||12,g={...d,fontSize:f},h=this.getBulletWidth(d.bullet,g,e,q);this.renderBullet(d.bullet,b,u,g,e,q);let m=f*t*.3,n=b+h,o=c+j;p=n+m>o?n+m:o}let v=p;for(let a of i.runs){let{text:b,runProps:d}=a,f=b;if(d.cap&&"none"!==d.cap)switch(d.cap){case"all":case"small":f=f.toUpperCase();break;case"words":f=f.replace(/\b\w/g,a=>a.toUpperCase())}if(this.setupStandardFont(d),d.highlight){let a=this.graphics.context;if(a){let b,c=d.highlight;if("object"==typeof c&&void 0!==c.r?b=`rgba(${c.r}, ${c.g}, ${c.b}, ${(c.a||255)/255})`:"string"==typeof c&&(b=c),b){let c=a.measureText(f).width,e=d.scaledFontSize||(d.fontSize||12)*this.getTextScaleFactor();a.save(),a.fillStyle=b,a.fillRect(Math.round(v),Math.round(u-.85*e),c,1.15*e),a.restore(),a.fillStyle=this.graphics.colorToRgb(d.color)}}}let g=this.graphics.context,h=!1;if(d.effectLst&&g){let a=d.effectLst;if(a.outerShadow){let b=a.outerShadow;g.save(),h=!0;let c=(b.blurRadius||0)/12700,d=(b.distance||0)/12700,e=(b.direction||0)/6e4*Math.PI/180;if(g.shadowOffsetX=Math.cos(e)*d*this.getTextScaleFactor(),g.shadowOffsetY=Math.sin(e)*d*this.getTextScaleFactor(),g.shadowBlur=c*this.getTextScaleFactor(),b.color){let a=b.color,c=0,d=0,e=0,f=.5;if(void 0!==a.r)c=a.r,d=a.g,e=a.b,f=void 0!==a.a?a.a/255:.5;else if(a.value){let b=a.value.replace("#","");c=parseInt(b.slice(0,2),16)||0,d=parseInt(b.slice(2,4),16)||0,e=parseInt(b.slice(4,6),16)||0,f=void 0!==a.alpha?a.alpha:.5}g.shadowColor=`rgba(${c}, ${d}, ${e}, ${f})`}else g.shadowColor="rgba(0, 0, 0, 0.4)"}else if(a.glow){let b=a.glow;g.save(),h=!0;let c=(b.radius||0)/12700;if(g.shadowOffsetX=0,g.shadowOffsetY=0,g.shadowBlur=c*this.getTextScaleFactor(),b.color){let a=b.color;g.shadowColor=`rgba(${a.r||0}, ${a.g||0}, ${a.b||0}, ${(a.a||255)/255})`}else g.shadowColor="rgba(255, 0, 0, 0.6)"}}let i=u;if(d.verticalAlign&&"normal"!==d.verticalAlign&&"baseline"!==d.verticalAlign){let a=d.scaledFontSize||(d.fontSize||12)*this.getTextScaleFactor();"superscript"===d.verticalAlign||"super"===d.verticalAlign?i=u-.35*a:("subscript"===d.verticalAlign||"sub"===d.verticalAlign)&&(i=u+.2*a)}v=this.renderRunTextStandard(f,v,i,d,c+e),h&&g&&(g.restore(),g.fillStyle=this.graphics.colorToRgb(d.color))}n+=g}n+=j||0,a<l.length-1&&(n+=p)}}calculateWrappedLines(a,b,c,d){let e=[],f={runs:[],width:0},g=!0;for(let h of a.runs){if(!h.text)continue;let a=g;g=!1;let i=this.parseRunProperties(h,b,d),j=h.text;if(a&&b.bullet&&("autoNumber"===b.bullet.type||"number"===b.bullet.type)&&(j=j.replace(/^\s*\d+[.)]\s*/,"")),h.fieldType&&"slidenum"===(h.fieldType||"").toLowerCase()&&(j=String(void 0!==this.currentSlideIndex&&null!==this.currentSlideIndex?this.currentSlideIndex+1:parseInt(j,10)||1)),!j)continue;let k=j.split("\n");for(let a=0;a<k.length;a++){a>0&&(f.runs.length>0&&e.push(f),f={runs:[],width:0});let b=k[a];if(b)for(let a of b.split(/(\s+)/)){if(!a)continue;let b=this.measureRunText(a,i);if(f.width+b<=c)f.runs.push({text:a,runProps:i}),f.width+=b;else if(b<=c)f.runs.length>0&&e.push(f),f={runs:[{text:a,runProps:i}],width:b};else{f.runs.length>0&&(e.push(f),f={runs:[],width:0});let b="",d=0;for(let g of a){let a=this.measureRunText(g,i);d+a>c&&b.length>0&&(f.runs.push({text:b,runProps:i}),f.width+=d,e.push(f),f={runs:[],width:0},b="",d=0),b+=g,d+=a}b&&(f.runs.push({text:b,runProps:i}),f.width+=d)}}}}return f.runs.length>0&&e.push(f),0===e.length&&e.push({runs:[],width:0}),e}setupStandardFont(a){let b=this.graphics.context;if(!b)return;let c=this.getTextScaleFactor(),d=(a.fontSize||12)*c,e=a.italic?"italic":"normal",f=a.bold?"bold":"normal",g=a.fontFamily||"Arial",h=`"${g}", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", sans-serif`;b.font=`${e} ${f} ${d}px ${h}`,b.fillStyle=this.graphics.colorToRgb(a.color),b.textBaseline="alphabetic",a.scaledFontSize=d}getBulletWidth(a,b,c=0,d=null){let e=this.graphics.context;if(!e||!a)return 0;e.save();try{let d=b.fontSize||12,f=this.getTextScaleFactor(),g=b.fontFamily||"Arial",h=b.bold?"bold":"normal",i=b.italic?"italic":"normal";e.font=`${i} ${h} ${d*f}px ${g}`;let j="";switch(a.type){case"character":j=a.char||"•";break;case"number":{let d=(a.startAt||1)-1,e=b&&"number"==typeof b._bulletNumber?b._bulletNumber:c;j=`${d+e}.`}break;case"autoNumber":{let d=(a.startAt||1)-1,e=b&&"number"==typeof b._bulletNumber?b._bulletNumber:c;j=this.getAutoNumberBullet(a.subType,d+e)}break;default:j="•"}let k=e.measureText(j).width;return e.restore(),k}catch(a){return e.restore(),0}}calculateBulletInfo(a,b,c=0){let d=this.graphics.getContext();d.save();let e=Math.max((b.fontSize||12)*this.getTextScaleFactor(),14),f=b.fontFamily||"Arial",g=b.bold?"bold":"normal",h=b.italic?"italic":"normal";d.font=`${h} ${g} ${e}px ${f}`;let i="";switch(a.type){case"character":i=a.char||"•";break;case"number":{let d=(a.startAt||1)-1,e=b&&"number"==typeof b._bulletNumber?b._bulletNumber:c;i=`${d+e}.`}break;case"autoNumber":{let d=(a.startAt||1)-1,e=b&&"number"==typeof b._bulletNumber?b._bulletNumber:c;i=this.getAutoNumberBullet(a.subType,d+e)}break;default:i="•"}let j=d.measureText(i).width,k=.5*e;return d.restore(),{bulletText:i,bulletWidth:j,bulletSpacing:k,totalWidth:j+k}}generateHierarchicalNumber(a,b,c,d){let e=b.level||0,f=d&&d[e]?d[e]:(a.startAt||1)+c;return this.getAutoNumberBullet(a.subType,f)}renderBullet(a,b,c,d,e,f=null){let g=this.graphics.context;if(g&&a){g.save();try{let f=d.fontSize||12,h=this.getTextScaleFactor(),i=d.fontFamily||"Arial",j=d.bold?"bold":"normal",k=d.italic?"italic":"normal";g.font=`${k} ${j} ${f*h}px ${i}`;let l=d.color||{r:0,g:0,b:0,a:255};g.fillStyle=this.graphics.colorToRgb(l),g.textBaseline="alphabetic";let m="";switch(a.type){case"character":m=a.char||"•";break;case"number":{let b=(a.startAt||1)-1,c=d&&"number"==typeof d._bulletNumber?d._bulletNumber:e;m=`${b+c}.`}break;case"autoNumber":{let b=(a.startAt||1)-1,c=d&&"number"==typeof d._bulletNumber?d._bulletNumber:e;m=this.getAutoNumberBullet(a.subType,b+c)}break;default:m="•"}g.fillText(m,b,c)}catch(a){}finally{g.restore()}}}getAutoNumberBullet(a,b){switch(a){case"arabicPeriod":case"arabic1Minus":case"arabic2Minus":default:return`${b}.`;case"arabicParenR":return`${b})`;case"arabicParenBoth":return`(${b})`;case"romanUcPeriod":return`${this.toRoman(b,!0)}.`;case"romanLcPeriod":return`${this.toRoman(b,!1)}.`;case"alphaUcPeriod":return`${this.toAlpha(b,!0)}.`;case"alphaLcPeriod":return`${this.toAlpha(b,!1)}.`;case"alphaUcParenR":return`${this.toAlpha(b,!0)})`;case"alphaLcParenR":return`${this.toAlpha(b,!1)})`;case"alphaUcParenBoth":return`(${this.toAlpha(b,!0)})`;case"alphaLcParenBoth":return`(${this.toAlpha(b,!1)})`}}toRoman(a,b=!0){let c=[1e3,900,500,400,100,90,50,40,10,9,5,4,1],d=b?["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"]:["m","cm","d","cd","c","xc","l","xl","x","ix","v","iv","i"],e="";for(let b=0;b<c.length;b++)for(;a>=c[b];)e+=d[b],a-=c[b];return e}toAlpha(a,b=!0){let c="",d=b?65:97;for(;a>0;)c=String.fromCharCode(d+--a%26)+c,a=Math.floor(a/26);return c||(b?"A":"a")}renderRunTextStandard(a,b,c,d,e){let f=this.graphics.context;if(!f||!a)return b;let g=b;this.currentRenderingShape&&this.currentRenderingShape.effects&&this.applyTextEffectsToContext(f,this.currentRenderingShape.effects);let h=d.letterSpacing||0;if(0===h)f.fillText(a,g,c),g+=f.measureText(a).width;else{let b=Array.from(a);for(let a=0;a<b.length;a++){let d=b[a];f.fillText(d,g,c),g+=f.measureText(d).width+h}}return this.resetTextEffectsOnContext(f),this.drawTextDecorations(b,c,g-b,d),g}applyEffectsToCanvas(a,b){b&&a&&(b.outerShadow&&this.applyOuterShadowToContext(a,b.outerShadow),b.glow&&this.applyGlowEffectToContext(a,b.glow),b.innerShadow)}applyTextEffectsToContext(a,b){b&&a&&(b.outerShadow&&this.applyOuterShadowToContext(a,b.outerShadow),b.glow&&this.applyGlowEffectToContext(a,b.glow),b.innerShadow)}applyOuterShadowToContext(a,b){if(!b||!a)return;let c=(b.blurRadius||0)/9525,d=(b.distance||0)/9525,e=(b.direction||0)/6e4,f=this.coordinateSystem&&this.coordinateSystem.scale||1,g=e*Math.PI/180,h=Math.cos(g)*d,i=Math.sin(g)*d;a.shadowOffsetX=h,a.shadowOffsetY=i,a.shadowBlur=c*f,b.color?a.shadowColor=this.convertColorToString(b.color):a.shadowColor="rgba(0, 0, 0, 0.5)"}applyGlowEffectToContext(a,b){if(!b||!a)return;let c=(b.radius||0)/9525;a.shadowOffsetX=0,a.shadowOffsetY=0,a.shadowBlur=c,b.color?a.shadowColor=this.convertColorToString(b.color):a.shadowColor="rgba(255, 255, 255, 0.8)"}resetEffectsOnContext(a){a&&(a.shadowOffsetX=0,a.shadowOffsetY=0,a.shadowBlur=0,a.shadowColor="transparent")}resetTextEffectsOnContext(a){a&&(a.shadowOffsetX=0,a.shadowOffsetY=0,a.shadowBlur=0,a.shadowColor="transparent")}convertColorToString(a){if(!a)return"black";if("srgb"===a.type){let b=a.value,c=parseInt(b.substr(0,2),16),d=parseInt(b.substr(2,2),16),e=parseInt(b.substr(4,2),16),f=a.alpha||1;return`rgba(${c}, ${d}, ${e}, ${f})`}if("scheme"===a.type){let b={dk1:"#000000",lt1:"#FFFFFF",dk2:"#44546A",lt2:"#E7E6E6"}[a.value]||"#000000",c=a.alpha||1,d=parseInt(b.substr(1,2),16),e=parseInt(b.substr(3,2),16),f=parseInt(b.substr(5,2),16);return`rgba(${d}, ${e}, ${f}, ${c})`}return"black"}getTextScaleFactor(){if(!this.coordinateSystem)return 1;let{scale:a}=this.coordinateSystem;return 1.33*a}calculateStandardLineHeight(a,b=null){if(a.lineHeightPoints){let b=this.coordinateSystem&&this.coordinateSystem.scale||1;return a.lineHeightPoints*(96/72)*b}let c=a.fontSize||12;if(b&&b.length>0){let a=0;for(let c of b)for(let b of c.runs||[])b.runProps&&b.runProps.fontSize>0&&(a=Math.max(a,b.runProps.fontSize));a>0&&a<c&&(c=1.2*a)}return c*this.getTextScaleFactor()*(a.lineHeight||100)/100}measureRunText(a,b){let c=this.graphics.context;if(!c||!a)return 0;c.save(),this.setupStandardFont(b);let d=0,e=b.letterSpacing||0;if(0===e)d=c.measureText(a).width;else for(let b=0;b<a.length;b++){let f=a.charAt(b);d+=c.measureText(f).width+e}return c.restore(),d}drawTextDecorations(a,b,c,d){let e=this.graphics.context,f=d.scaledFontSize||d.fontSize||12;if(d.underline&&(e.save(),e.strokeStyle=e.fillStyle,e.lineWidth=Math.max(1,.05*f),e.beginPath(),e.moveTo(a,b+2),e.lineTo(a+c,b+2),e.stroke(),e.restore()),d.strike){e.save(),e.strokeStyle=e.fillStyle,e.lineWidth=Math.max(1,.05*f),e.beginPath();let d=b-.3*f;e.moveTo(a,d),e.lineTo(a+c,d),e.stroke(),e.restore()}}measureRunTextAlternative(a,b){let c=this.graphics.context;c.save(),this.setupStandardFont(b);let d=0;for(let e=0;e<a.length;e++){let f=a.charAt(e);d+=c.measureText(f).width+(b.letterSpacing||0)}return c.restore(),d}calculateStandardLineHeightAlternative(a){let b=a.fontSize||12;return Math.max(b*(a.lineHeight||120)/100,1.2*b)}renderTextLine(a,b,c,d,e,f){if(0===b.length)return;let g=b.reduce((a,b)=>a+b.width,0),h=c,i=f.align||"left";this.coordinateSystem?.scale,"center"===i||"ctr"===i?h=c+Math.max(0,e-g)/2:"right"===i||"r"===i?h=c+Math.max(0,e-g):"justify"===i&&b.length>1&&(h=c);let j=h;for(let c of b){if(a.font=c.font,a.fillStyle=this.graphics.colorToRgb(c.props.color||{r:0,g:0,b:0,a:255}),a.textBaseline="alphabetic",a.textAlign="left",c.props.highlight){let b,e=c.props.highlight;if("object"==typeof e&&void 0!==e.r?b=`rgba(${e.r}, ${e.g}, ${e.b}, ${(e.a||255)/255})`:"string"==typeof e&&(b=e),b){let e=this.getTextScaleFactor(),f=(c.props.fontSize||12)*e;a.save(),a.fillStyle=b,a.fillRect(Math.round(j),Math.round(d-f),c.width,1.2*f),a.restore(),a.fillStyle=this.graphics.colorToRgb(c.props.color||{r:0,g:0,b:0,a:255})}}if(a.fillText(c.text,Math.round(j),Math.round(d)),c.props.underline&&(a.save(),a.strokeStyle=a.fillStyle,a.lineWidth=1,a.beginPath(),a.moveTo(j,d+2),a.lineTo(j+c.width,d+2),a.stroke(),a.restore()),c.props.strike){a.save(),a.strokeStyle=a.fillStyle,a.lineWidth=1,a.beginPath();let b=this.getTextScaleFactor(),e=d-.3*((c.props.fontSize||12)*b);a.moveTo(j,e),a.lineTo(j+c.width,e),a.stroke(),a.restore()}j+=c.width}}parseParagraphProperties(a,b=null){let c={align:"left",lineHeight:120,spaceBefore:0,spaceAfter:0,fontSize:18,fontFamily:"Arial",color:{r:0,g:0,b:0,a:255},bold:!1,italic:!1,bullet:null,indent:{left:0,hanging:0}},d=a.properties&&"number"==typeof a.properties.level?a.properties.level:0,e=this.resolveInheritedTextProperties(b,"paragraph",d);for(let a in e)"leftMargin"===a?c.indent.left=e.leftMargin:"hangingIndent"===a?c.indent.hanging=e.hangingIndent:"leftMargin"!==a&&"hangingIndent"!==a&&(c[a]=e[a]);if(e.align&&(c.align=({l:"left",left:"left",ctr:"center",center:"center",r:"right",right:"right",just:"justify",justify:"justify"})[e.align]||e.align),b&&b.placeholder&&b.placeholder.type,a.properties){let b=a.properties;b.align&&(c.align=({l:"left",left:"left",ctr:"center",center:"center",r:"right",right:"right",just:"justify",justify:"justify"})[b.align]||b.align),void 0!==b.lineHeight&&(c.lineHeight=b.lineHeight),void 0!==b.lineHeightPoints&&(c.lineHeightPoints=b.lineHeightPoints),b.spacing&&(b.spacing.before&&(c.spaceBefore=b.spacing.before),b.spacing.after&&(c.spaceAfter=b.spacing.after)),void 0!==b.fontSize&&(c.fontSize=b.fontSize),b.fontFamily&&(c.fontFamily=b.fontFamily),b.color&&(c.color=b.color),void 0!==b.bold&&(c.bold=b.bold),void 0!==b.italic&&(c.italic=b.italic),b.bullet&&(c.bullet=b.bullet),b.indent&&(c.indent.left=b.indent.left,c.indent.hanging=b.indent.hanging)}return c}parseRunProperties(a,b,c=null){let d={fontSize:18,fontFamily:"Arial",color:this.currentSlide?.type==="layout"?{r:68,g:68,b:68,a:255}:{r:0,g:0,b:0,a:255},bold:!1,italic:!1,underline:!1,strike:!1,verticalAlign:"normal",letterSpacing:0,cap:"none"};if(Object.assign(d,this.resolveInheritedTextProperties(c,"run")),b&&(void 0!==b.fontSize&&(d.fontSize=b.fontSize),b.fontFamily&&(d.fontFamily=b.fontFamily),b.color&&(d.color=b.color),void 0!==b.bold&&(d.bold=b.bold),void 0!==b.italic&&(d.italic=b.italic)),a.properties){let b=a.properties;void 0!==b.fontSize&&(d.fontSize=b.fontSize),b.fontFamily&&(d.fontFamily=b.fontFamily),b.color&&(d.color=b.color),void 0!==b.bold&&(d.bold=b.bold),void 0!==b.italic&&(d.italic=b.italic),void 0!==b.underline&&(d.underline=b.underline),void 0!==b.strike&&(d.strike=b.strike),b.verticalAlign&&(d.verticalAlign=b.verticalAlign),void 0!==b.letterSpacing&&(d.letterSpacing=b.letterSpacing),b.cap&&(d.cap=b.cap),b.highlight&&(d.highlight=b.highlight),b.effectLst&&(d.effectLst=b.effectLst)}return d}emuToPixels(a){return CoordinateTransform.emuToPixels(a,96)}colorToRgbAlternative(a){if("string"==typeof a)return a.startsWith("#")||a.match(/^[a-z]+$/i),a;if(!a)return"rgb(0, 0, 0)";let b=0,c=0,d=0,e=255;return("object"==typeof a&&(b=void 0!==a.r?a.r:void 0!==a.R?a.R:0,c=void 0!==a.g?a.g:void 0!==a.G?a.G:0,d=void 0!==a.b?a.b:void 0!==a.B?a.B:0,e=void 0!==a.a?a.a:void 0!==a.A?a.A:255,b=Math.max(0,Math.min(255,Math.round(b))),c=Math.max(0,Math.min(255,Math.round(c))),d=Math.max(0,Math.min(255,Math.round(d))),e=Math.max(0,Math.min(255,Math.round(e)))),void 0!==e&&255!==e)?`rgba(${b}, ${c}, ${d}, ${e/255})`:`rgb(${b}, ${c}, ${d})`}isHiddenShape(a){return!0===a.hidden}getShapeTransform(a){return null}getShapeBounds(a){if(a&&"graphicFrame"===a.type&&a.position){let b=a.position,c=b.x||0,d=b.y||0,e=b.width||914400,f=b.height||914400;if(this.coordinateSystem){let a,b,g,h,i,j,{slideWidthEMU:k,slideHeightEMU:l}=this.coordinateSystem,m=k||9144e3,n=l||6858e3,o={x:c/m,y:d/n,w:e/m,h:f/n},p=this.graphics.context.canvas;p.style.width&&p.style.height?(a=parseFloat(p.style.width),b=parseFloat(p.style.height)):(a=p.width/(window.devicePixelRatio||1),b=p.height/(window.devicePixelRatio||1));let q=m/n;return q>a/b?(g=a,i=0,j=(b-(h=a/q))/2):(g=b*q,h=b,i=(a-g)/2,j=0),{x:Math.round(i+o.x*g),y:Math.round(j+o.y*h),w:Math.round(o.w*g),h:Math.round(o.h*h)}}return{x:c/914400*96,y:d/914400*96,w:e/914400*96,h:f/914400*96}}if(a.spPr&&a.spPr.xfrm){let b=a.spPr.xfrm,c=void 0!==b.x?b.x:(b.off&&b.off.x)!==void 0?b.off.x:0,d=void 0!==b.y?b.y:(b.off&&b.off.y)!==void 0?b.off.y:0,e=void 0!==b.width?b.width:void 0!==b.cx?b.cx:(b.ext&&b.ext.cx)!==void 0?b.ext.cx:914400,f=void 0!==b.height?b.height:void 0!==b.cy?b.cy:(b.ext&&b.ext.cy)!==void 0?b.ext.cy:914400;if(this.coordinateSystem){let a,b,g,h,i,j,{slideWidthEMU:k,slideHeightEMU:l}=this.coordinateSystem,m=k||9144e3,n=l||6858e3,o={x:c/m,y:d/n,w:e/m,h:f/n},p=this.graphics.context.canvas;p.style.width&&p.style.height?(a=parseFloat(p.style.width),b=parseFloat(p.style.height)):(a=p.width/(window.devicePixelRatio||1),b=p.height/(window.devicePixelRatio||1));let q=m/n;return q>a/b?(g=a,i=0,j=(b-(h=a/q))/2):(g=b*q,h=b,i=(a-g)/2,j=0),{x:Math.round(i+o.x*g),y:Math.round(j+o.y*h),w:Math.round(o.w*g),h:Math.round(o.h*h)}}return{x:c/914400*96,y:d/914400*96,w:e/914400*96,h:f/914400*96}}if(a.properties&&a.properties.transform){let b=a.properties.transform,c=b.x||0,d=b.y||0,e=b.width||914400,f=b.height||914400;if(this.coordinateSystem){let a,b,g,h,i,j,{scale:k,offsetX:l,offsetY:m,slideWidthEMU:n,slideHeightEMU:o}=this.coordinateSystem,p=n||9144e3,q=o||6858e3,r={x:c/p,y:d/q,w:e/p,h:f/q},s=this.graphics.context.canvas;s.style.width&&s.style.height?(a=parseFloat(s.style.width),b=parseFloat(s.style.height)):(a=s.width/(window.devicePixelRatio||1),b=s.height/(window.devicePixelRatio||1));let t=p/q;return t>a/b?(g=a,i=0,j=(b-(h=a/t))/2):(g=b*t,h=b,i=(a-g)/2,j=0),{x:Math.round(i+r.x*g),y:Math.round(j+r.y*h),w:Math.round(r.w*g),h:Math.round(r.h*h)}}return{x:c/914400*96,y:d/914400*96,w:e/914400*96,h:f/914400*96}}let b=a.position||a.transform;if(b&&(void 0!==b.x||void 0!==b.y||void 0!==b.width||void 0!==b.height)){let a=b.x||0,c=b.y||0,d=b.width||914400,e=b.height||914400;if(this.coordinateSystem){let b,f,g,h,i,j,{slideWidthEMU:k,slideHeightEMU:l}=this.coordinateSystem,m=k||9144e3,n=l||6858e3,o={x:a/m,y:c/n,w:d/m,h:e/n},p=this.graphics.context.canvas;p.style.width&&p.style.height?(b=parseFloat(p.style.width),f=parseFloat(p.style.height)):(b=p.width/(window.devicePixelRatio||1),f=p.height/(window.devicePixelRatio||1));let q=m/n;return q>b/f?(g=b,i=0,j=(f-(h=b/q))/2):(g=f*q,h=f,i=(b-g)/2,j=0),{x:Math.round(i+o.x*g),y:Math.round(j+o.y*h),w:Math.round(o.w*g),h:Math.round(o.h*h)}}return{x:a/914400*96,y:c/914400*96,w:d/914400*96,h:e/914400*96}}if(a.bounds){let b=a.bounds.l||0,c=a.bounds.t||0,d="number"==typeof a.bounds.r?a.bounds.r:b+1e6,e="number"==typeof a.bounds.b?a.bounds.b:c+1e6;if(this.coordinateSystem){let a,f,g,h,i,j,{scale:k,offsetX:l,offsetY:m,slideWidthEMU:n,slideHeightEMU:o}=this.coordinateSystem,p=n||9144e3,q=o||6858e3,r={x:b/p,y:c/q,w:(d-b)/p,h:(e-c)/q},s=this.graphics.context.canvas;s.style.width&&s.style.height?(a=parseFloat(s.style.width),f=parseFloat(s.style.height)):(a=s.width/(window.devicePixelRatio||1),f=s.height/(window.devicePixelRatio||1));let t=p/q;return t>a/f?(g=a,i=0,j=(f-(h=a/t))/2):(g=f*t,h=f,i=(a-g)/2,j=0),{x:Math.round(i+r.x*g),y:Math.round(j+r.y*h),w:Math.round(r.w*g),h:Math.round(r.h*h)}}return{x:b/914400*96,y:c/914400*96,w:(d-b)/914400*96,h:(e-c)/914400*96}}return{x:50,y:50,w:100,h:50}}getShapeFillColor(a){if(a.fill&&"none"===a.fill.type||a.properties&&a.properties.fill&&"none"===a.properties.fill.type||(this.processor&&this.processor.applyPropertyInheritance&&(!a.fill||null===a.fill)&&(!a.properties?.fill||a.properties?.fill===null)&&this.processor.applyPropertyInheritance(a,this.currentSlide),a.fill&&"none"===a.fill.type||a.properties&&a.properties.fill&&"none"===a.properties.fill.type||a.textBody&&a.placeholder&&!a.fill&&!a.properties?.fill&&!a.fillColor))return null;if(this.processor&&this.processor.getShapeFillColor){let b=this.processor.getShapeFillColor(a);if(void 0!==b)return b}let b=a.preservedStyle||a.style;if(b&&b.fillRef){if(a.textBody&&a.placeholder&&!a.fill&&!a.properties?.fill&&!a.fillColor)return null;if(this.processor&&this.processor.resolveStyleFillColor){let a=this.processor.resolveStyleFillColor(b.fillRef);if(a)return a}return b.fillRef.color?b.fillRef.color:this.currentSlide?.type!=="layout"||!a.textBody||a.fill||a.properties?.fill?"#FFFFFF":null}if(a.textBody&&!a.placeholder&&a.fillColor){let b=a.fillColor;if("string"==typeof b){let a=b.replace("#","");if(6===a.length){let b=parseInt(a.substr(0,2),16),c=parseInt(a.substr(2,2),16),d=parseInt(a.substr(4,2),16);if(b>200&&c>240&&d>240)return null}}else if("object"==typeof b&&void 0!==b.r&&b.r>200&&b.g>240&&b.b>240)return null}return a.fill&&"solid"===a.fill.type&&a.fill.color?a.fill.color:a.properties&&a.properties.fill&&a.properties.fill.color?a.properties.fill.color:a.fillColor||null}getShapeStrokeColor(a){if(!(a&&a.spPr&&a.spPr.ln||a&&a.properties&&a.properties.stroke||a&&a.stroke))return null;if(this.processor&&this.processor.getShapeStrokeColor)return this.processor.getShapeStrokeColor(a);let b=a.preservedStyle||a.style;if(b&&b.lnRef){if(this.processor&&this.processor.resolveStyleStrokeColor){let a=this.processor.resolveStyleStrokeColor(b.lnRef);if(a)return a}if(b.lnRef.color)return b.lnRef.color}return a.stroke&&a.stroke.color?a.stroke.color:a.properties&&a.properties.stroke&&a.properties.stroke.color?a.properties.stroke.color:a.strokeColor||null}getShapeLineWidth(a){return this.processor&&this.processor.getShapeLineWidth?this.processor.getShapeLineWidth(a):a&&a.spPr&&a.spPr.ln||a&&a.properties&&a.properties.stroke||a&&a.stroke?a.stroke&&a.stroke.width?a.stroke.width/914400*25.4:a.properties&&a.properties.stroke&&a.properties.stroke.width?a.properties.stroke.width/914400*25.4:a.spPr&&a.spPr.ln&&a.spPr.ln.w?a.spPr.ln.w/914400*25.4:0:0}getShapeStrokeInfo(a){return this.processor&&this.processor.getShapeStrokeInfo?this.processor.getShapeStrokeInfo(a):a.stroke?a.stroke:a.properties&&a.properties.stroke?a.properties.stroke:null}getShapeStrokeInfoLegacy(a){return this.processor&&this.processor.getShapeStrokeInfo?this.processor.getShapeStrokeInfo(a):a.stroke?a.stroke:a.properties&&a.properties.stroke?a.properties.stroke:null}getParagraphProperties(a){return a.properties||{}}getRunProperties(a,b){return{...b,...a.properties||{}}}parseColor(a){if("string"==typeof a&&a.startsWith("#")){let b=a.slice(1);return{r:parseInt(b.slice(0,2),16),g:parseInt(b.slice(2,4),16),b:parseInt(b.slice(4,6),16),a:255}}return a&&"object"==typeof a?a:null}clipTextRect(a){this.graphics.AddClipRect(a.x,a.y,a.w,a.h)}getCanvasBounds(a){let b,c;return a.getTransform(),a.canvas.style.width&&a.canvas.style.height?(b=parseFloat(a.canvas.style.width),c=parseFloat(a.canvas.style.height)):(b=a.canvas.width/(window.devicePixelRatio||1),c=a.canvas.height/(window.devicePixelRatio||1)),this.currentShapeBounds||{x:0,y:0,w:b,h:c}}createCanvasGradient(a,b,c){let d;if(!c||!c.stops||0===c.stops.length)return null;if("linear"===c.type){let e=(c.angle||0)*Math.PI/180,f=b.x+b.w/2-Math.cos(e)*b.w/2,g=b.y+b.h/2-Math.sin(e)*b.h/2,h=b.x+b.w/2+Math.cos(e)*b.w/2,i=b.y+b.h/2+Math.sin(e)*b.h/2;d=a.createLinearGradient(f,g,h,i)}else{if("radial"!==c.type)return null;let e=b.x+b.w/2,f=b.y+b.h/2,g=Math.max(b.w,b.h)/2;d=a.createRadialGradient(e,f,0,e,f,g)}for(let a of c.stops){let b=this.colorToRgb(a.color);d.addColorStop(a.position,b)}return d}colorToRgbAlternative2(a){if("string"==typeof a)return a;if(a&&"object"==typeof a){let b=a.r||a.R||0,c=a.g||a.G||0,d=a.b||a.B||0,e=(void 0!==a.a?a.a:void 0!==a.A?a.A:255)/255;return`rgba(${b}, ${c}, ${d}, ${e})`}return"#000000"}findLayoutShapeForPlaceholder(a,b){if(!b||!b.placeholder||!a)return null;let c=b.placeholder;for(let b of a)if(b.placeholder){let a=b.placeholder,d=void 0===c.idx||null===c.idx||isNaN(Number(c.idx))?void 0:Number(c.idx),e=void 0===a.idx||null===a.idx||isNaN(Number(a.idx))?void 0:Number(a.idx),f=(a,b)=>{if(a===b)return!0;let c=new Set([a,b]);return!!(c.has("title")&&c.has("ctrTitle")||c.has("body")&&c.has("obj"))};if(f(a.type,c.type)&&void 0!==d&&void 0!==e&&d===e||f(a.type,c.type)&&(void 0===d||void 0===e))return b}return null}resolveInheritedTextProperties(a,b="run",c=0){let d={};try{let e=this.buildSlideContext(),f="otherStyle";if(a&&a.placeholder)switch(a.placeholder.type){case"title":case"ctrTitle":f="titleStyle";break;case"body":case"subTitle":case"obj":f="bodyStyle";break;default:f="otherStyle"}if(e.theme&&(e.theme.fonts&&(d.fontFamily="titleStyle"===f?e.theme.fonts.major:e.theme.fonts.minor),e.theme.colors&&e.theme.colors.text1&&(d.color=this.parseColorFromTheme(e.theme.colors.text1))),e.master&&e.master.txStyles){let a=e.master.txStyles[f];if(a){let e=this.extractTextPropertiesFromStyle(a,b,c);Object.assign(d,e)}}if(e.layout&&e.layout.txStyles){let a=e.layout.txStyles[f];if(a){let e=this.extractTextPropertiesFromStyle(a,b,c);Object.assign(d,e)}}let g=!1;if(e.layout&&e.layout.shapes){let b=this.findLayoutShapeForPlaceholder(e.layout.shapes,a);if(b&&b.textBody&&b.textBody.lstStyle){g=!0;let c=b.textBody.lstStyle,e=0;try{if(a&&a.textBody&&Array.isArray(a.textBody.paragraphs)&&a.textBody.paragraphs.length>0){let b=a.textBody.paragraphs[0]?.properties?.level;"number"==typeof b&&b>=0&&b<=8&&(e=b)}}catch(a){}let f=c[`lvl${e+1}pPr`]||c.lvl1pPr;f&&(f.fontSize&&(d.fontSize=f.fontSize),f.fontFamily&&(d.fontFamily=f.fontFamily),f.color&&(d.color=f.color),void 0!==f.bold&&(d.bold=f.bold),void 0!==f.italic&&(d.italic=f.italic),f.align&&(d.align=f.align),f.cap&&(d.cap=f.cap))}}if((!d.fontSize||!d.align||!d.fontFamily)&&e.master&&e.master.cSld&&e.master.cSld.spTree){let b=e.master.cSld.spTree,c=this.findLayoutShapeForPlaceholder(b,a);if(c&&c.textBody&&c.textBody.lstStyle){let a=c.textBody.lstStyle;if(a.lvl1pPr){let b=a.lvl1pPr;!d.fontSize&&b.fontSize&&(d.fontSize=b.fontSize),!d.fontFamily&&b.fontFamily&&(d.fontFamily=b.fontFamily),!d.color&&b.color&&(d.color=b.color),void 0!==b.bold&&void 0===d.bold&&(d.bold=b.bold),void 0!==b.italic&&void 0===d.italic&&(d.italic=b.italic),!d.align&&b.align&&(d.align=b.align),!d.cap&&b.cap&&(d.cap=b.cap)}}}if(a&&a.placeholder)switch(a.placeholder.type){case"title":case"ctrTitle":void 0!==d.bold||g||(d.bold=!0)}(a?.placeholder?.type==="title"||a?.placeholder?.type==="ctrTitle")&&(d.align||(d.align="ctr"),d.fontSize||(d.fontSize=44))}catch(a){}return d}extractTextPropertiesFromStyle(a,b="run",c=0){let d={};if(!a||!a.element)return d;try{a.parsed||(a.parsedData=this.parseTextStyleElement(a.element),a.parsed=!0);let e=a.parsedData;if(!e)return d;if("paragraph"===b||"run"===b){let a=e.defPPr;a&&(a.align&&(d.align=a.align),a.lineHeight&&(d.lineHeight=a.lineHeight),a.spaceBefore&&(d.spaceBefore=a.spaceBefore),a.spaceAfter&&(d.spaceAfter=a.spaceAfter),a.bullet&&(d.bullet=a.bullet));let b=e.defRPr;b&&(b.fontSize&&(d.fontSize=b.fontSize),b.fontFamily&&(d.fontFamily=b.fontFamily),b.color&&(d.color=b.color),void 0!==b.bold&&(d.bold=b.bold),void 0!==b.italic&&(d.italic=b.italic),void 0!==b.underline&&(d.underline=b.underline),void 0!==b.strike&&(d.strike=b.strike),b.cap&&(d.cap=b.cap));let f=e[`lvl${c+1}pPr`];if(f&&(f.align&&(d.align=f.align),f.lineHeight&&(d.lineHeight=f.lineHeight),f.bullet&&(d.bullet=f.bullet),void 0!==f.leftMargin&&(d.leftMargin=f.leftMargin),void 0!==f.indent&&(d.hangingIndent=f.indent),void 0!==f.spaceBefore&&(d.spaceBefore=f.spaceBefore),void 0!==f.spaceBeforePct&&(d.spaceBeforePct=f.spaceBeforePct),void 0!==f.spaceAfter&&(d.spaceAfter=f.spaceAfter),void 0!==f.spaceAfterPct&&(d.spaceAfterPct=f.spaceAfterPct),f.defRPr)){let a=f.defRPr;a.fontSize&&(d.fontSize=a.fontSize),a.fontFamily&&(d.fontFamily=a.fontFamily),a.color&&(d.color=a.color),void 0!==a.bold&&(d.bold=a.bold),void 0!==a.italic&&(d.italic=a.italic),a.cap&&(d.cap=a.cap)}}}catch(a){}return d}parseColorFromTheme(a){if("string"==typeof a&&a.startsWith("#")){let b=a.substring(1),c=parseInt(b.substring(0,2),16);return{r:c,g:parseInt(b.substring(2,4),16),b:parseInt(b.substring(4,6),16),a:255}}return null}parseTextStyleElement(a){let b={};if(!a)return b;try{let c=a.querySelector("defPPr, a\\:defPPr");c&&(b.defPPr=this.parseStyleParagraphProperties(c));let d=a.querySelector("defRPr, a\\:defRPr")||a.querySelector("defPPr > defRPr, a\\:defPPr > a\\:defRPr");d&&(b.defRPr=this.parseStyleRunProperties(d));for(let c=1;c<=9;c++){let d=a.querySelector(`lvl${c}pPr, a\\:lvl${c}pPr`);if(d){let a=this.parseStyleParagraphProperties(d),e=d.querySelector("defRPr, a\\:defRPr");e&&(a.defRPr=this.parseStyleRunProperties(e)),b[`lvl${c}pPr`]=a}}}catch(a){}return b}parseStyleParagraphProperties(a){let b={};if(!a)return b;try{let c=a.getAttribute("algn")||a.getAttribute("align");c&&(b.align=({l:"left",left:"left",ctr:"center",center:"center",r:"right",right:"right",just:"justify",justify:"justify"})[c]||c);let d=a.getAttribute("lnSpc")||a.getAttribute("lineHeight");d&&(b.lineHeight=parseInt(d)||120);let e=a.querySelector("spcBef, a\\:spcBef");if(e){let a=e.querySelector("spcPct, a\\:spcPct"),c=e.querySelector("spcPts, a\\:spcPts");a?b.spaceBeforePct=parseInt(a.getAttribute("val"))/1e5:c&&(b.spaceBefore=127*parseInt(c.getAttribute("val")))}let f=a.querySelector("spcAft, a\\:spcAft");if(f){let a=f.querySelector("spcPct, a\\:spcPct"),c=f.querySelector("spcPts, a\\:spcPts");a?b.spaceAfterPct=parseInt(a.getAttribute("val"))/1e5:c&&(b.spaceAfter=127*parseInt(c.getAttribute("val")))}let g=a.getAttribute("marL")||a.getAttribute("leftMargin");g&&(b.leftMargin=parseInt(g)||0);let h=a.getAttribute("marR")||a.getAttribute("rightMargin");h&&(b.rightMargin=parseInt(h)||0);let i=a.getAttribute("indent");i&&(b.indent=parseInt(i)||0);let j=a.querySelector("buChar, a\\:buChar");if(j){let a=j.getAttribute("char");a&&(b.bullet={type:"character",char:a})}let k=a.querySelector("buAutoNum, a\\:buAutoNum");if(k){let a=k.getAttribute("type")||"arabicPeriod",c=k.getAttribute("startAt")||"1";b.bullet={type:"autoNumber",subType:a,startAt:parseInt(c)}}a.querySelector("buNone, a\\:buNone")&&(b.bullet={type:"none"})}catch(a){}return b}parseStyleRunProperties(a){let b={};if(!a)return b;try{let c=a.getAttribute("sz")||a.getAttribute("fontSize");if(c){let a=parseInt(c);b.fontSize=a>100?a/100:a}let d=a.getAttribute("typeface")||a.getAttribute("fontFamily");d&&(b.fontFamily=d);let e=a.getAttribute("b")||a.getAttribute("bold");null!==e&&(b.bold="1"===e||"true"===e||!0===e);let f=a.getAttribute("i")||a.getAttribute("italic");null!==f&&(b.italic="1"===f||"true"===f||!0===f);let g=a.getAttribute("u")||a.getAttribute("underline");null!==g&&(b.underline="none"!==g&&""!==g&&"0"!==g&&"false"!==g);let h=a.getAttribute("strike")||a.getAttribute("strikethrough");null!==h&&(b.strike="noStrike"!==h&&"0"!==h&&"false"!==h&&!1!==h);let i=a.getAttribute("cap")||a.getAttribute("capitalization");i&&(b.cap=i);let j=a.querySelector("solidFill, a\\:solidFill")||a.querySelector("schemeClr, a\\:schemeClr")||a.querySelector("srgbClr, a\\:srgbClr");j&&(b.color=this.parseColorFromElement(j));let k=a.getAttribute("spc")||a.getAttribute("letterSpacing");k&&(b.letterSpacing=parseInt(k)||0)}catch(a){}return b}parseColorFromElement(a){try{let b=a.querySelector("srgbClr, a\\:srgbClr");if(b){let a=b.getAttribute("val");if(a&&6===a.length){let b=parseInt(a.substr(0,2),16),c=parseInt(a.substr(2,2),16),d=parseInt(a.substr(4,2),16);return{r:b,g:c,b:d,a:255}}}let c=a.querySelector("schemeClr, a\\:schemeClr");if(c)return({})[c.getAttribute("val")]||null}catch(a){}return null}buildSlideContext(){let a={};return this.currentSlide&&(a.slide=this.currentSlide,(this.currentSlide.layout||this.currentSlide.Layout)&&(a.layout=this.currentSlide.layout||this.currentSlide.Layout,a.layout.commonSlideData&&a.layout.commonSlideData.shapeTree?a.layout.shapes=a.layout.commonSlideData.shapeTree:a.layout.cSld&&a.layout.cSld.spTree&&(a.layout.shapes=a.layout.cSld.spTree),(a.layout.master||a.layout.Master)&&(a.master=a.layout.master||a.layout.Master)),(this.currentSlide.theme||this.currentSlide.Theme)&&(a.theme=this.currentSlide.theme||this.currentSlide.Theme)),a}getCurrentShape(){return this.currentRenderingShape||null}applyPreciseTransform(a,b=1,c=0){return Math.round(a*b+c)}setCurrentRenderingShape(a){this.currentRenderingShape=a}}class d{constructor(){this.cache=new Map}processShapeGeometry(a){let b=this.generateCacheKey(a);if(this.cache.has(b))return this.cache.get(b);let c=null;return a.geometry&&"custom"===a.geometry.type?c=this.processCustomGeometry(a.geometry):a.properties&&a.properties.geometry&&"custom"===a.properties.geometry.type&&(c=this.processCustomGeometry(a.properties.geometry)),c&&this.cache.set(b,c),c}processCustomGeometry(a){if(!a.pathLst||0===a.pathLst.length)return null;let b={type:"custom",pathLst:[]};for(let c of a.pathLst){let a=this.processPath(c);a&&b.pathLst.push(a)}return b}processPath(a){return a.commands&&0!==a.commands.length?{w:a.w||100,h:a.h||100,commands:a.commands.map(a=>this.normalizeCommand(a)),fill:!1!==a.fill,stroke:!1!==a.stroke}:null}normalizeCommand(a){let b={...a};switch(a.type){case"M":case"moveTo":b.type="moveTo";break;case"L":case"lineTo":b.type="lineTo";break;case"C":case"curveTo":case"cubicBezTo":b.type="cubicBezTo";break;case"Q":case"quadTo":case"quadBezTo":b.type="quadBezTo";break;case"A":case"arcTo":b.type="arcTo";break;case"Z":case"close":b.type="close"}return b}generateCacheKey(a){let b=a.geometry||a.properties?.geometry;if(!b)return"no-geometry";let c=b.pathLst||[];return`custom-${JSON.stringify(c).substring(0,100)}-${c.length}`}}if("u">typeof window){window.CanvasGraphicsAdapter=b,window.CDrawingDocument=c,window.GraphicsMatrix=a;try{void 0===b||b.prototype.drawLineWithArrows||(b.prototype.drawLineWithArrows=function(a,b,c,d,e,f=1,g=null){let h=this._context;if(!h)return;h.save(),h.beginPath(),h.moveTo(a,b),h.lineTo(c,d);let i=("function"==typeof this.colorToRgb?this.colorToRgb(e):null)||"rgba(0,0,0,1)",j=Math.max(CoordinateTransform.mmToPixels(f||1),1);if(h.strokeStyle=i,h.lineWidth=j,g&&g.dashArray&&g.dashArray.length>0){let a=g.dashArray.map(a=>a*j);h.setLineDash(a)}if(g&&"function"==typeof this.applyStrokeStyle)try{this.applyStrokeStyle(h,g,j)}catch(a){}h.stroke();let k=a=>{if("number"==typeof a)return a;let b=(a||"").toString().toLowerCase();return"lg"===b||"large"===b?3:"med"===b||"medium"===b?2:"sm"===b||"small"===b?1:2},l=g&&g.headEnd,m=g&&g.tailEnd,n=l&&l.type,o=m&&m.type,p=!!(l&&n&&"none"!==n),q=!!(m&&o&&"none"!==o);if(p||q){let e=Math.atan2(d-b,c-a),f=h.getTransform();f.a,f.a,f.b,f.b;let g=3*j,n=2.5*j,o=(a,b,c,d)=>{if(!d)return;let e=d.lengthScale||k(d.len),f=d.widthScale||k(d.w),l=g*e,m=(d.type||d.val||"arrow").toString().toLowerCase(),o=n*f/2;h.save(),h.translate(a,b),h.rotate(c),h.beginPath(),"open"===m?(h.moveTo(0,0),h.lineTo(-l,-o),h.moveTo(0,0),h.lineTo(-l,o),h.strokeStyle=i,h.lineWidth=Math.max(1,j)):("stealth"===m?(h.moveTo(0,0),h.lineTo(-l,-(.5*o)),h.lineTo(-(.85*l),0),h.lineTo(-l,.5*o),h.closePath()):"diamond"===m?(h.moveTo(0,0),h.lineTo(-l/2,-o),h.lineTo(-l,0),h.lineTo(-l/2,o),h.closePath()):"oval"===m?h.ellipse(-l/2,0,l/2,o,0,0,2*Math.PI):(h.moveTo(0,0),h.lineTo(-l,-o),h.lineTo(-l,o),h.closePath()),h.fillStyle=i,h.fill(),h.strokeStyle=i,h.lineWidth=Math.max(.5,.3*j)),h.stroke(),h.restore()};p&&o(a,b,e+Math.PI,l),q&&o(c,d,e,m)}h.restore()})}catch(a){}}"u"<typeof Logger&&"u">typeof window&&(window.Logger=class{constructor(a){this.name=a}log(a,b,c){}logError(a,b){}})}}();var fa={exports:{}};fa.exports,ba||(ba=1,function(a){let b={rect:1,roundRect:2,ellipse:3,diamond:4,triangle:5,rtTriangle:6,parallelogram:7,trapezoid:8,hexagon:9,octagon:10,plus:11,star5:12,rightArrow:13,leftArrow:66,upArrow:68,downArrow:67,leftRightArrow:69,upDownArrow:70,quadArrow:76,heart:74,lightningBolt:73,can:22,cube:16,donut:23,arc:19,line:20,plaque:21,bevel:1e3,frame:75,pentagon:56,star4:1e3,star6:1e3,star8:58,star12:1e3,star16:59,star24:1e3,star32:60,teardrop:1e3,flowChartProcess:1e3,flowChartDecision:4,flowChartTerminator:2,flowChartInputOutput:7,flowChartDocument:1e3,flowChartMultidocument:1e3,flowChartPreparation:1e3,flowChartManualInput:1e3,flowChartManualOperation:1e3,flowChartConnector:3,flowChartOffpageConnector:1e3,flowChartPunchedCard:1e3,flowChartPunchedTape:1e3,flowChartSummingJunction:1e3,flowChartOr:1e3,flowChartCollate:1e3,flowChartSort:1e3,flowChartExtract:1e3,flowChartMerge:1e3,flowChartStoredData:1e3,flowChartDelay:1e3,flowChartSequentialAccessStorage:1e3,flowChartMagneticDisk:1e3,flowChartDirectAccessStorage:1e3,flowChartDisplay:1e3,flowChartInternalStorage:1e3,flowChartAlternateProcess:1e3,flowChartMagneticDrum:1e3,flowChartMagneticTape:1e3,callout1:1e3,callout2:1e3,callout3:1e3,accentCallout1:1e3,accentCallout2:1e3,accentCallout3:1e3,borderCallout1:1e3,borderCallout2:1e3,borderCallout3:1e3,accentBorderCallout1:1e3,accentBorderCallout2:1e3,accentBorderCallout3:1e3,ribbon:1e3,ribbon2:1e3,ellipseRibbon:1e3,ellipseRibbon2:1e3,leftRightRibbon:1e3,verticalScroll:1e3,horizontalScroll:1e3,wave:1e3,doubleWave:1e3,bentArrow:1e3,uturnArrow:1e3,circularArrow:1e3,leftUpArrow:1e3,bentUpArrow:1e3,curvedRightArrow:1e3,curvedLeftArrow:1e3,curvedUpArrow:1e3,curvedDownArrow:1e3,stripedRightArrow:1e3,notchedRightArrow:1e3,blockArc:1e3,swooshArrow:1e3,leftBracket:1e3,rightBracket:1e3,leftBrace:1e3,rightBrace:1e3,bracketPair:1e3,bracePair:1e3,straightConnector1:20,bentConnector2:1e3,bentConnector3:1e3,bentConnector4:1e3,bentConnector5:1e3,curvedConnector2:1e3,curvedConnector3:1e3,curvedConnector4:1e3,curvedConnector5:1e3,sun:1e3,moon:1e3,cloud:1e3,irregularSeal1:1e3,irregularSeal2:1e3,foldedCorner:1e3,smileyFace:1e3,noSmoking:1e3,mathPlus:11,mathMinus:1e3,mathMultiply:1e3,mathDivide:1e3,mathEqual:1e3,mathNotEqual:1e3,actionButtonBlank:1e3,actionButtonHome:1e3,actionButtonHelp:1e3,actionButtonInformation:1e3,actionButtonForwardNext:1e3,actionButtonBackPrevious:1e3,actionButtonEnd:1e3,actionButtonBeginning:1e3,actionButtonReturn:1e3,actionButtonDocument:1e3,actionButtonSound:1e3,actionButtonMovie:1e3};class c{constructor(a){this.setupHighResolutionCanvas(a),this.m_oContext=a.getContext("2d"),this.m_dDpiX=96,this.m_dDpiY=96,this.m_dWidthMM=210,this.m_dHeightMM=297,a.style.width&&a.style.height?(this.m_dWidth=parseFloat(a.style.width),this.m_dHeight=parseFloat(a.style.height)):(this.m_dWidth=a.width/(window.devicePixelRatio||1),this.m_dHeight=a.height/(window.devicePixelRatio||1)),this.m_oTransform=new e,this.devicePixelRatio=window.devicePixelRatio||1,this.m_oCoordTransform=new e,this.m_oFullTransform=new e,this.m_oTransformStack=[],this.m_oClipStack=[],this.m_oPen=new f,this.m_oBrush=new g,this.m_oFont=new h,this.m_bIntegerGrid=!1,this.m_bGlobalAlpha=!1,this.m_dGlobalAlpha=1,this.m_bIsClipping=!1,this.m_oClipRect=null,this.m_oPath=null,this.m_bIsDrawing=!1,this.m_oEnhancedGeometryProcessor=new k,this.m_oCustomGeometryProcessor=new GeometryProcessor,this.calculateCoordTransform(),this.calculateFullTransform(),this.m_oContext.lineCap="round",this.m_oContext.lineJoin="round",this.m_oContext.textBaseline="alphabetic",this.m_oContext.textAlign="left"}setupHighResolutionCanvas(a){let b=a.getContext("2d"),c=window.devicePixelRatio||1,d=a.clientWidth||a.width,e=a.clientHeight||a.height;a.width=d*c,a.height=e*c,a.style.width=d+"px",a.style.height=e+"px",b.scale(c,c),b.imageSmoothingEnabled=!0,b.imageSmoothingQuality="high"}drawImageHighRes(a,b,c,d,e,f=0,g=0,h=null,i=null){if(this.m_oContext&&a){this.m_oContext.save(),this.m_oContext.imageSmoothingEnabled=!0,this.m_oContext.imageSmoothingQuality="high";try{null!==h&&null!==i?this.m_oContext.drawImage(a,f,g,h,i,b,c,d,e):this.m_oContext.drawImage(a,b,c,d,e)}catch(a){}finally{this.m_oContext.restore()}}}drawImage(a,b,c,d,e){this.drawImageHighRes(a,b,c,d,e)}drawPresetGeometry(a,c,d,e,f,g,h,i=1,j=null,k={}){if(this.m_oContext){this.SaveGrState();try{let l=b[a]||1e3;1e3===l?this.drawCustomShape(a,c,d,e,f,g,h,i,j,k):this.drawStandardPresetShape(l,a,c,d,e,f,g,h,i,j,k)}catch(a){this.drawRectangle(c,d,e,f,g,h,i,j)}finally{this.RestoreGrState()}}}drawStandardPresetShape(a,b,c,d,e,f,g,h,i,j,k){let l=this.m_oEnhancedGeometryProcessor.processPresetGeometry(b,21600,21600,k);l?this.renderEnhancedGeometry(l,c,d,e,f,g,h,i,j):this.drawBasicShape(b,c,d,e,f,g,h,i,j)}renderEnhancedGeometry(a,b,c,d,e,f,g,h,i){let j=this.m_oContext,k=a.getPathList(),l=d/a.width,m=e/a.height;j.save(),j.translate(b,c),j.scale(l,m),k.forEach(j=>{this.renderEnhancedPath(j,a,f,g,h,i,{x:b,y:c,w:d,h:e})}),j.restore()}renderEnhancedPath(a,b,c,d,e,f,g=null){let h=this.m_oContext;if(h.beginPath(),a.commands.forEach(a=>{switch(a.type){case"M":h.moveTo(a.args[0],a.args[1]);break;case"L":h.lineTo(a.args[0],a.args[1]);break;case"C":h.bezierCurveTo(a.args[0],a.args[1],a.args[2],a.args[3],a.args[4],a.args[5]);break;case"Q":h.quadraticCurveTo(a.args[0],a.args[1],a.args[2],a.args[3]);break;case"A":this.renderArcCommand(h,a.args);break;case"Z":h.closePath()}}),"none"!==a.fill&&c){if(c&&"object"==typeof c&&c.type&&c.stops){let a=g||{x:0,y:0,w:200,h:50},b=this.createGradient(a.x,a.y,a.w,a.h,c);b?h.fillStyle=b:h.fillStyle=this.colorToRgb(c.stops[0]?.color||{r:0,g:0,b:0})}else h.fillStyle=this.colorToRgb(c);h.fill()}if(a.stroke&&d){h.strokeStyle=this.colorToRgb(d);let a=CoordinateTransform.mmToPixels(e||1),c=b?b.width:21600,i=b?b.height:21600;h.lineWidth=a/(Math.min(g&&g.w>0?g.w/c:1,g&&g.h>0?g.h/i:1)||1),f&&this.applyStrokeInfo(f),h.stroke()}}renderArcCommand(a,b){let[c,d,e,f,g,h,i]=b,j=this.getCurrentPoint(a);if(j)try{let b=(j.x+h)/2,e=(j.y+i)/2,f=Math.min(c,d),k=Math.atan2(j.y-e,j.x-b),l=Math.atan2(i-e,h-b);a.arc(b,e,f,k,l,!g)}catch(b){a.lineTo(h,i)}}getCurrentPoint(a){return{x:0,y:0}}drawCustomShape(a,b,c,d,e,f,g,h,i,j){let k=this.m_oCustomGeometryProcessor.processCustomShape(a,{x:b,y:c,width:d,height:e,adjustments:j});k&&k.pathLst?this.drawCustomGeometry(k,b,c,d,e,f,g,h):this.drawBasicShape(a,b,c,d,e,f,g,h,i)}applyStrokeInfo(a){if(!a||!this.m_oContext)return;let b=this.m_oContext;if(a.dashArray&&a.dashArray.length>0){let c=b.lineWidth||1,d=a.dashArray.map(a=>a*c);b.setLineDash(d)}let c=a.lineCap||a.cap;if(c)switch(c){case"rnd":case"round":b.lineCap="round";break;case"sq":case"square":b.lineCap="square";break;default:b.lineCap="butt"}let d=a.lineJoin||a.join;if(d)switch(d){case"round":b.lineJoin="round";break;case"bevel":b.lineJoin="bevel";break;default:b.lineJoin="miter"}a.miterLimit&&(b.miterLimit=a.miterLimit)}drawBasicShape(a,b,c,d,e,f,g,h,i){let j=this.m_oContext;switch(j.save(),j.beginPath(),a){case"rect":case"rectangle":default:j.rect(b,c,d,e);break;case"ellipse":case"oval":j.ellipse(b+d/2,c+e/2,d/2,e/2,0,0,2*Math.PI);break;case"roundRect":this.drawRoundRectPath(j,b,c,d,e,.16667*Math.min(d,e));break;case"triangle":this.drawTrianglePath(j,b,c,d,e);break;case"diamond":this.drawDiamondPath(j,b,c,d,e);break;case"pentagon":this.drawPentagonPath(j,b,c,d,e);break;case"hexagon":this.drawHexagonPath(j,b,c,d,e);break;case"octagon":this.drawOctagonPath(j,b,c,d,e);break;case"star":case"star5":this.drawStarPath(j,b,c,d,e);break;case"rightArrow":this.drawRightArrowPath(j,b,c,d,e);break;case"leftArrow":this.drawLeftArrowPath(j,b,c,d,e);break;case"upArrow":this.drawUpArrowPath(j,b,c,d,e);break;case"downArrow":this.drawDownArrowPath(j,b,c,d,e)}f&&(j.fillStyle=this.colorToRgb(f),j.fill()),g&&(j.strokeStyle=this.colorToRgb(g),j.lineWidth=CoordinateTransform.mmToPixels(h||1),i&&this.applyStrokeInfo(i),j.stroke()),j.restore()}drawCustomGeometry(a,b,c,d,e,f,g,h){try{if(!a||!a.pathLst||0===a.pathLst.length)return;this.m_oContext.save(),this.m_oContext.translate(b,c);let i=a.coordSize?.width||1e3,j=a.coordSize?.height||1e3;this.m_oContext.scale(d/i,e/j),a.pathLst.forEach((a,b)=>{this.drawGeometryPath(a,f,g,h)}),this.m_oContext.restore()}catch(a){this.m_oContext.restore()}}drawGeometryPath(a,b,c,d){a&&a.commands&&0!==a.commands.length&&(this.m_oContext.beginPath(),a.commands.forEach(c=>{switch(c.type){case"moveTo":this.m_oContext.moveTo(c.x,c.y);break;case"lineTo":this.m_oContext.lineTo(c.x,c.y);break;case"curveTo":this.m_oContext.bezierCurveTo(c.x1,c.y1,c.x2,c.y2,c.x,c.y);break;case"close":b&&!1!==a.fill&&"none"!==a.fill&&this.m_oContext.closePath();break;case"arcTo":this.m_oContext.arcTo(c.x1,c.y1,c.x2,c.y2,c.radius);break;case"quadraticCurveTo":this.m_oContext.quadraticCurveTo(c.x1,c.y1,c.x,c.y)}}),c&&!1!==a.stroke&&(this.m_oContext.strokeStyle=this.colorToRgb(c),this.m_oContext.lineWidth=CoordinateTransform.mmToPixels(d||1),this.m_oContext.stroke()),b&&!1!==a.fill&&"none"!==a.fill&&(this.m_oContext.fillStyle=this.colorToRgb(b),this.m_oContext.fill()))}drawShapePath(a,b,c,d,e){a&&a.commands&&(this.m_oContext.beginPath(),a.commands.forEach(a=>{switch(a.type){case"M":this.m_oContext.moveTo(a.x,a.y);break;case"L":this.m_oContext.lineTo(a.x,a.y);break;case"C":this.m_oContext.bezierCurveTo(a.x1,a.y1,a.x2,a.y2,a.x,a.y);break;case"Q":this.m_oContext.quadraticCurveTo(a.x1,a.y1,a.x,a.y);break;case"A":this.drawArcCommand(a);break;case"Z":b&&!1!==path.fill&&"none"!==path.fill&&this.m_oContext.closePath()}}),b&&(this.m_oContext.fillStyle=this.colorToRgb(b),this.m_oContext.fill()),c&&(this.m_oContext.strokeStyle=this.colorToRgb(c),this.m_oContext.lineWidth=d||1,e&&this.applyStrokeInfo(e),this.m_oContext.stroke()))}applyStrokeInfoAlternative(a){a&&(a.dashArray&&a.dashArray.length>0&&this.m_oContext.setLineDash(a.dashArray),a.lineCap&&(this.m_oContext.lineCap=a.lineCap),a.lineJoin&&(this.m_oContext.lineJoin=a.lineJoin),a.miterLimit&&(this.m_oContext.miterLimit=a.miterLimit))}drawArcCommand(a){let b=a.cx||a.x,c=a.cy||a.y,d=a.r||a.radius,e=a.startAngle||0,f=a.endAngle||2*Math.PI,g=a.counterclockwise||!1;this.m_oContext.arc(b,c,d,e,f,g)}drawRectangle(a,b,c,d,e,f,g,h){if(this.m_oContext){if(this.m_oContext.save(),e){if("object"==typeof e&&e.type&&e.stops){let f=this.createGradient(a,b,c,d,e);this.m_oContext.fillStyle=f||this.colorToRgb(e.stops[0]?.color||{r:0,g:0,b:0})}else this.m_oContext.fillStyle=this.colorToRgb(e);this.m_oContext.fillRect(a,b,c,d)}f&&(this.m_oContext.strokeStyle=this.colorToRgb(f),this.m_oContext.lineWidth=g||1,h&&this.applyStrokeInfo(h),this.m_oContext.strokeRect(a,b,c,d)),this.m_oContext.restore()}}drawEllipse(a,b,c,d,e,f,g){this.m_oContext&&(this.m_oContext.save(),this.m_oContext.beginPath(),this.m_oContext.ellipse(a+c/2,b+d/2,c/2,d/2,0,0,2*Math.PI),e&&(this.m_oContext.fillStyle=this.colorToRgb(e),this.m_oContext.fill()),f&&(this.m_oContext.strokeStyle=this.colorToRgb(f),this.m_oContext.lineWidth=g||1,this.m_oContext.stroke()),this.m_oContext.restore())}drawRoundedRectangle(a,b,c,d,e,f,g,h){this.m_oContext&&(this.m_oContext.save(),this.m_oContext.beginPath(),e=Math.min(e,Math.min(c,d)/2),this.m_oContext.moveTo(a+e,b),this.m_oContext.lineTo(a+c-e,b),this.m_oContext.quadraticCurveTo(a+c,b,a+c,b+e),this.m_oContext.lineTo(a+c,b+d-e),this.m_oContext.quadraticCurveTo(a+c,b+d,a+c-e,b+d),this.m_oContext.lineTo(a+e,b+d),this.m_oContext.quadraticCurveTo(a,b+d,a,b+d-e),this.m_oContext.lineTo(a,b+e),this.m_oContext.quadraticCurveTo(a,b,a+e,b),this.m_oContext.closePath(),f&&(this.m_oContext.fillStyle=this.colorToRgb(f),this.m_oContext.fill()),g&&(this.m_oContext.strokeStyle=this.colorToRgb(g),this.m_oContext.lineWidth=h||1,this.m_oContext.stroke()),this.m_oContext.restore())}drawTriangle(a,b,c,d,e,f,g){this.m_oContext&&(this.m_oContext.save(),this.m_oContext.beginPath(),this.m_oContext.moveTo(a+c/2,b),this.m_oContext.lineTo(a+c,b+d),this.m_oContext.lineTo(a,b+d),this.m_oContext.closePath(),e&&(this.m_oContext.fillStyle=this.colorToRgb(e),this.m_oContext.fill()),f&&(this.m_oContext.strokeStyle=this.colorToRgb(f),this.m_oContext.lineWidth=g||1,this.m_oContext.stroke()),this.m_oContext.restore())}drawDiamond(a,b,c,d,e,f,g){if(!this.m_oContext)return;this.m_oContext.save(),this.m_oContext.beginPath();let h=a+c/2,i=b+d/2;this.m_oContext.moveTo(h,b),this.m_oContext.lineTo(a+c,i),this.m_oContext.lineTo(h,b+d),this.m_oContext.lineTo(a,i),this.m_oContext.closePath(),e&&(this.m_oContext.fillStyle=this.colorToRgb(e),this.m_oContext.fill()),f&&(this.m_oContext.strokeStyle=this.colorToRgb(f),this.m_oContext.lineWidth=g||1,this.m_oContext.stroke()),this.m_oContext.restore()}drawRegularPolygon(a,b,c,d,e,f,g,h){if(!this.m_oContext||e<3)return;this.m_oContext.save(),this.m_oContext.beginPath();let i=a+c/2,j=b+d/2,k=Math.min(c,d)/2;for(let a=0;a<e;a++){let b=2*a*Math.PI/e-Math.PI/2,c=i+k*Math.cos(b),d=j+k*Math.sin(b);0===a?this.m_oContext.moveTo(c,d):this.m_oContext.lineTo(c,d)}this.m_oContext.closePath(),f&&(this.m_oContext.fillStyle=this.colorToRgb(f),this.m_oContext.fill()),g&&(this.m_oContext.strokeStyle=this.colorToRgb(g),this.m_oContext.lineWidth=h||1,this.m_oContext.stroke()),this.m_oContext.restore()}drawStar(a,b,c,d,e,f,g,h){if(!this.m_oContext||e<3)return;this.m_oContext.save(),this.m_oContext.beginPath();let i=a+c/2,j=b+d/2,k=Math.min(c,d)/2,l=.4*k;for(let a=0;a<2*e;a++){let b=a*Math.PI/e-Math.PI/2,c=a%2==0?k:l,d=i+c*Math.cos(b),f=j+c*Math.sin(b);0===a?this.m_oContext.moveTo(d,f):this.m_oContext.lineTo(d,f)}this.m_oContext.closePath(),f&&(this.m_oContext.fillStyle=this.colorToRgb(f),this.m_oContext.fill()),g&&(this.m_oContext.strokeStyle=this.colorToRgb(g),this.m_oContext.lineWidth=h||1,this.m_oContext.stroke()),this.m_oContext.restore()}drawRightArrow(a,b,c,d,e,f,g){if(!this.m_oContext)return;this.m_oContext.save(),this.m_oContext.beginPath();let h=.7*c,i=.4*d,j=.6*d;this.m_oContext.moveTo(a,b+(d-i)/2),this.m_oContext.lineTo(a+h,b+(d-i)/2),this.m_oContext.lineTo(a+h,b+(d-j)/2),this.m_oContext.lineTo(a+c,b+d/2),this.m_oContext.lineTo(a+h,b+(d+j)/2),this.m_oContext.lineTo(a+h,b+(d+i)/2),this.m_oContext.lineTo(a,b+(d+i)/2),this.m_oContext.closePath(),e&&(this.m_oContext.fillStyle=this.colorToRgb(e),this.m_oContext.fill()),f&&(this.m_oContext.strokeStyle=this.colorToRgb(f),this.m_oContext.lineWidth=g||1,this.m_oContext.stroke()),this.m_oContext.restore()}drawLeftArrow(a,b,c,d,e,f,g){if(!this.m_oContext)return;this.m_oContext.save(),this.m_oContext.beginPath();let h=.4*d,i=.3*c,j=.6*d;this.m_oContext.moveTo(a,b+d/2),this.m_oContext.lineTo(a+i,b+(d-j)/2),this.m_oContext.lineTo(a+i,b+(d-h)/2),this.m_oContext.lineTo(a+c,b+(d-h)/2),this.m_oContext.lineTo(a+c,b+(d+h)/2),this.m_oContext.lineTo(a+i,b+(d+h)/2),this.m_oContext.lineTo(a+i,b+(d+j)/2),this.m_oContext.closePath(),e&&(this.m_oContext.fillStyle=this.colorToRgb(e),this.m_oContext.fill()),f&&(this.m_oContext.strokeStyle=this.colorToRgb(f),this.m_oContext.lineWidth=g||1,this.m_oContext.stroke()),this.m_oContext.restore()}drawHeart(a,b,c,d,e,f,g){if(!this.m_oContext)return;this.m_oContext.save(),this.m_oContext.beginPath();let h=a+c/2,i=b+.3*d;this.m_oContext.moveTo(h,i),this.m_oContext.bezierCurveTo(h-.3*c,b,a,b+.3*d,h,b+.8*d),this.m_oContext.bezierCurveTo(a+c,b+.3*d,h+.3*c,b,h,i),this.m_oContext.closePath(),e&&(this.m_oContext.fillStyle=this.colorToRgb(e),this.m_oContext.fill()),f&&(this.m_oContext.strokeStyle=this.colorToRgb(f),this.m_oContext.lineWidth=g||1,this.m_oContext.stroke()),this.m_oContext.restore()}drawTeardrop(a,b,c,d,e,f,g){if(!this.m_oContext)return;this.m_oContext.save(),this.m_oContext.beginPath();let h=a+c/2,i=b+.7*d,j=.3*Math.min(c,d);this.m_oContext.arc(h,i,j,0,2*Math.PI),this.m_oContext.moveTo(h,i-j),this.m_oContext.quadraticCurveTo(h-.5*j,b+.2*d,h,b),this.m_oContext.quadraticCurveTo(h+.5*j,b+.2*d,h,i-j),e&&(this.m_oContext.fillStyle=this.colorToRgb(e),this.m_oContext.fill()),f&&(this.m_oContext.strokeStyle=this.colorToRgb(f),this.m_oContext.lineWidth=g||1,this.m_oContext.stroke()),this.m_oContext.restore()}drawCylinder(a,b,c,d,e,f,g){if(!this.m_oContext)return;this.m_oContext.save();let h=.15*d,i=c/2,j=h/2,k=a+c/2;e&&(this.m_oContext.fillStyle=this.colorToRgb(e),this.m_oContext.fillRect(a,b+j,c,d-h)),this.m_oContext.beginPath(),this.m_oContext.ellipse(k,b+j,i,j,0,0,2*Math.PI),e&&(this.m_oContext.fillStyle=this.colorToRgb(e),this.m_oContext.fill()),this.m_oContext.beginPath(),this.m_oContext.ellipse(k,b+d-j,i,j,0,0,2*Math.PI),e&&(this.m_oContext.fillStyle=this.colorToRgb(e),this.m_oContext.fill()),f&&(this.m_oContext.strokeStyle=this.colorToRgb(f),this.m_oContext.lineWidth=g||1,this.m_oContext.beginPath(),this.m_oContext.moveTo(a,b+j),this.m_oContext.lineTo(a,b+d-j),this.m_oContext.moveTo(a+c,b+j),this.m_oContext.lineTo(a+c,b+d-j),this.m_oContext.stroke(),this.m_oContext.beginPath(),this.m_oContext.ellipse(k,b+j,i,j,0,0,2*Math.PI),this.m_oContext.stroke(),this.m_oContext.beginPath(),this.m_oContext.ellipse(k,b+d-j,i,j,0,0,2*Math.PI),this.m_oContext.stroke()),this.m_oContext.restore()}drawCube(a,b,c,d,e,f,g){if(!this.m_oContext)return;this.m_oContext.save();let h=.3*Math.min(c,d);if(e&&(this.m_oContext.fillStyle=this.colorToRgb(e),this.m_oContext.fillRect(a,b+h,c-h,d-h)),this.m_oContext.beginPath(),this.m_oContext.moveTo(a,b+h),this.m_oContext.lineTo(a+h,b),this.m_oContext.lineTo(a+c,b),this.m_oContext.lineTo(a+c-h,b+h),this.m_oContext.closePath(),e){let a=this.darkenColor(e,.8);this.m_oContext.fillStyle=this.colorToRgb(a),this.m_oContext.fill()}if(this.m_oContext.beginPath(),this.m_oContext.moveTo(a+c-h,b+h),this.m_oContext.lineTo(a+c,b),this.m_oContext.lineTo(a+c,b+d-h),this.m_oContext.lineTo(a+c-h,b+d),this.m_oContext.closePath(),e){let a=this.darkenColor(e,.6);this.m_oContext.fillStyle=this.colorToRgb(a),this.m_oContext.fill()}f&&(this.m_oContext.strokeStyle=this.colorToRgb(f),this.m_oContext.lineWidth=g||1,this.m_oContext.strokeRect(a,b+h,c-h,d-h),this.m_oContext.beginPath(),this.m_oContext.moveTo(a,b+h),this.m_oContext.lineTo(a+h,b),this.m_oContext.lineTo(a+c,b),this.m_oContext.lineTo(a+c-h,b+h),this.m_oContext.closePath(),this.m_oContext.stroke(),this.m_oContext.beginPath(),this.m_oContext.moveTo(a+c-h,b+h),this.m_oContext.lineTo(a+c,b),this.m_oContext.lineTo(a+c,b+d-h),this.m_oContext.lineTo(a+c-h,b+d),this.m_oContext.closePath(),this.m_oContext.stroke(),this.m_oContext.beginPath(),this.m_oContext.moveTo(a,b+h),this.m_oContext.lineTo(a+h,b),this.m_oContext.moveTo(a+c-h,b+h),this.m_oContext.lineTo(a+c,b),this.m_oContext.moveTo(a+c-h,b+d),this.m_oContext.lineTo(a+c,b+d-h),this.m_oContext.stroke()),this.m_oContext.restore()}drawPlus(a,b,c,d,e,f,g){if(!this.m_oContext)return;this.m_oContext.save(),this.m_oContext.beginPath();let h=.3*Math.min(c,d),i=a+c/2,j=b+d/2;this.m_oContext.moveTo(a,j-h/2),this.m_oContext.lineTo(a+c,j-h/2),this.m_oContext.lineTo(a+c,j+h/2),this.m_oContext.lineTo(a,j+h/2),this.m_oContext.closePath(),this.m_oContext.moveTo(i-h/2,b),this.m_oContext.lineTo(i+h/2,b),this.m_oContext.lineTo(i+h/2,b+d),this.m_oContext.lineTo(i-h/2,b+d),this.m_oContext.closePath(),e&&(this.m_oContext.fillStyle=this.colorToRgb(e),this.m_oContext.fill()),f&&(this.m_oContext.strokeStyle=this.colorToRgb(f),this.m_oContext.lineWidth=g||1,this.m_oContext.stroke()),this.m_oContext.restore()}drawLine(a,b,c,d,e,f){if(!this.m_oContext)return;this.m_oContext.save(),this.m_oContext.beginPath(),this.m_oContext.moveTo(a,b),this.m_oContext.lineTo(c,d);let g=this.colorToRgb(e)||"rgba(0,0,0,1)";this.m_oContext.strokeStyle=g;let h=CoordinateTransform.mmToPixels(f||1);this.m_oContext.lineWidth=h,this.m_oContext.stroke(),this.m_oContext.restore()}drawLineWithArrows(a,b,c,d,e,f=1,g=null){if(!this.m_oContext)return;let h=this.m_oContext;h.save(),h.beginPath(),h.moveTo(a,b),h.lineTo(c,d);let i=this.colorToRgb(e)||"rgba(0,0,0,1)";h.strokeStyle=i,h.lineWidth=Math.max(CoordinateTransform.mmToPixels(f||1),1),g&&this.applyStrokeInfo(g),h.stroke();let j=a=>{let b=(a||"").toString().toLowerCase();return"lg"===b||"large"===b?3:"med"===b||"medium"===b?2:"sm"===b||"small"===b?1:2},k=g&&g.headEnd?{type:g.headEnd.type||g.headEnd.val||"none",lengthScale:j(g.headEnd.len),widthScale:j(g.headEnd.w)}:null,l=g&&g.tailEnd?{type:g.tailEnd.type||g.tailEnd.val||"none",lengthScale:j(g.tailEnd.len),widthScale:j(g.tailEnd.w)}:null;if(k&&("none"===k.type||null===k.type||void 0===k.type)&&(k=null),l&&("none"===l.type||null===l.type||void 0===l.type)&&(l=null),k||l){let e=Math.atan2(d-b,c-a),f=h.getTransform();f.a,f.a,f.b,f.b;let g=3*h.lineWidth,j=2.5*h.lineWidth;if(k){let c=k.lengthScale||1,d=k.widthScale||1;this._drawArrowHead(h,a,b,e+Math.PI,g*c,j*d,i,h.lineWidth,k.type)}if(l){let a=l.lengthScale||1,b=l.widthScale||1;this._drawArrowHead(h,c,d,e,g*a,j*b,i,h.lineWidth,l.type)}}h.restore()}_drawArrowHead(a,b,c,d,e,f,g,h,i="triangle"){a.save(),a.translate(b,c),a.rotate(d);let j=f/2,k=(i||"triangle").toString().toLowerCase();switch(a.beginPath(),k){case"open":a.moveTo(0,0),a.lineTo(-e,-j),a.moveTo(0,0),a.lineTo(-e,j);break;case"stealth":a.moveTo(0,0),a.lineTo(-e,-(.5*j)),a.lineTo(-(.85*e),0),a.lineTo(-e,.5*j),a.closePath();break;case"diamond":a.moveTo(0,0),a.lineTo(-e/2,-j),a.lineTo(-e,0),a.lineTo(-e/2,j),a.closePath();break;case"oval":a.ellipse(-e/2,0,e/2,j,0,0,2*Math.PI);break;default:a.moveTo(0,0),a.lineTo(-e,-j),a.lineTo(-e,j),a.closePath()}let l="string"==typeof g?g:this.colorToRgb(g)||"rgba(0,0,0,1)";"open"===k?(a.strokeStyle=l,a.lineWidth=h||1):(a.fillStyle=l,a.fill(),a.strokeStyle=l,a.lineWidth=Math.max(.5,.3*(h||1))),a.stroke(),a.restore()}darkenColor(a,b){if("string"==typeof a){let c=this.hexToRgb(a);return{r:Math.floor(c.r*b),g:Math.floor(c.g*b),b:Math.floor(c.b*b),a:c.a}}return void 0!==a.r?{r:Math.floor(a.r*b),g:Math.floor(a.g*b),b:Math.floor(a.b*b),a:a.a}:a}colorToRgb(a){if("string"==typeof a)return a;if(a&&void 0!==a.r){let b=void 0!==a.a?a.a/255:1;return`rgba(${a.r}, ${a.g}, ${a.b}, ${b})`}return null}createGradient(a,b,c,d,e){let f;if(!this.m_oContext||!e||!e.stops||0===e.stops.length)return null;if("linear"===e.type){let g=(e.angle||0)*Math.PI/180,h=a+c/2-Math.cos(g)*c/2,i=b+d/2-Math.sin(g)*d/2,j=a+c/2+Math.cos(g)*c/2,k=b+d/2+Math.sin(g)*d/2;f=this.m_oContext.createLinearGradient(h,i,j,k)}else{let e=a+c/2,g=b+d/2,h=Math.max(c,d)/2;f=this.m_oContext.createRadialGradient(e,g,0,e,g,h)}for(let a of e.stops)f.addColorStop(a.position,this.colorToRgb(a.color));return f}fillRect(a,b,c,d,e){if(this.m_oContext&&e){if(this.m_oContext.save(),e&&"object"==typeof e&&"linear"===e.type&&e.stops){let f=this.createGradient(a,b,c,d,e);f?this.m_oContext.fillStyle=f:this.m_oContext.fillStyle=this.colorToRgb(e.stops[0]?.color||{r:0,g:0,b:0})}else this.m_oContext.fillStyle=this.colorToRgb(e);this.m_oContext.fillRect(a,b,c,d),this.m_oContext.restore()}}hexToRgb(a){let b=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);return b?{r:parseInt(b[1],16),g:parseInt(b[2],16),b:parseInt(b[3],16),a:255}:{r:0,g:0,b:0,a:255}}SaveGrState(){this.m_oContext.save(),this.m_oTransformStack.push(this.m_oTransform.CreateDublicate())}RestoreGrState(){this.m_oContext.restore(),this.m_oTransformStack.length>0&&(this.m_oTransform=this.m_oTransformStack.pop())}calculateCoordTransform(){this.m_oCoordTransform.Reset(),this.m_oCoordTransform.sx=this.m_dWidth/this.m_dWidthMM,this.m_oCoordTransform.sy=this.m_dHeight/this.m_dHeightMM}calculateFullTransform(){this.m_oFullTransform=this.m_oCoordTransform.CreateDublicate(),this.m_oFullTransform.Multiply(this.m_oTransform,1)}drawRoundRectPath(a,b,c,d,e,f){a.beginPath(),a.moveTo(b+f,c),a.lineTo(b+d-f,c),a.quadraticCurveTo(b+d,c,b+d,c+f),a.lineTo(b+d,c+e-f),a.quadraticCurveTo(b+d,c+e,b+d-f,c+e),a.lineTo(b+f,c+e),a.quadraticCurveTo(b,c+e,b,c+e-f),a.lineTo(b,c+f),a.quadraticCurveTo(b,c,b+f,c)}drawTrianglePath(a,b,c,d,e){a.moveTo(b+d/2,c),a.lineTo(b+d,c+e),a.lineTo(b,c+e),a.closePath()}drawDiamondPath(a,b,c,d,e){a.moveTo(b+d/2,c),a.lineTo(b+d,c+e/2),a.lineTo(b+d/2,c+e),a.lineTo(b,c+e/2),a.closePath()}drawPentagonPath(a,b,c,d,e){let f=b+d/2,g=c+e/2,h=Math.min(d,e)/2;a.moveTo(f,c);for(let b=1;b<5;b++){let c=2*b*Math.PI/5-Math.PI/2,d=f+h*Math.cos(c),e=g+h*Math.sin(c);a.lineTo(d,e)}a.closePath()}drawHexagonPath(a,b,c,d,e){let f=b+d/2,g=c+e/2,h=Math.min(d,e)/2;a.moveTo(f+h,g);for(let b=1;b<6;b++){let c=b*Math.PI/3,d=f+h*Math.cos(c),e=g+h*Math.sin(c);a.lineTo(d,e)}a.closePath()}drawOctagonPath(a,b,c,d,e){let f=b+d/2,g=c+e/2,h=Math.min(d,e)/2;a.moveTo(f+h,g);for(let b=1;b<8;b++){let c=b*Math.PI/4,d=f+h*Math.cos(c),e=g+h*Math.sin(c);a.lineTo(d,e)}a.closePath()}drawStarPath(a,b,c,d,e){let f=b+d/2,g=c+e/2,h=Math.min(d,e)/2,i=.4*h;a.moveTo(f,c);for(let b=0;b<10;b++){let c=b*Math.PI/5-Math.PI/2,d=b%2==0?h:i,e=f+d*Math.cos(c),j=g+d*Math.sin(c);a.lineTo(e,j)}a.closePath()}drawRightArrowPath(a,b,c,d,e){let f=.6*d,g=.6*e,h=c+(e-g)/2;a.moveTo(b,h),a.lineTo(b+f,h),a.lineTo(b+f,c),a.lineTo(b+d,c+e/2),a.lineTo(b+f,c+e),a.lineTo(b+f,h+g),a.lineTo(b,h+g),a.closePath()}drawLeftArrowPath(a,b,c,d,e){let f=.4*d,g=.6*e,h=c+(e-g)/2;a.moveTo(b,c+e/2),a.lineTo(b+f,c),a.lineTo(b+f,h),a.lineTo(b+d,h),a.lineTo(b+d,h+g),a.lineTo(b+f,h+g),a.lineTo(b+f,c+e),a.closePath()}drawUpArrowPath(a,b,c,d,e){let f=.4*e,g=.6*d,h=b+(d-g)/2;a.moveTo(b+d/2,c),a.lineTo(b+d,c+f),a.lineTo(h+g,c+f),a.lineTo(h+g,c+e),a.lineTo(h,c+e),a.lineTo(h,c+f),a.lineTo(b,c+f),a.closePath()}drawDownArrowPath(a,b,c,d,e){let f=.6*d,g=b+(d-f)/2,h=c+e-.4*e;a.moveTo(g,c),a.lineTo(g+f,c),a.lineTo(g+f,h),a.lineTo(b+d,h),a.lineTo(b+d/2,c+e),a.lineTo(b,h),a.lineTo(g,h),a.closePath()}}class d{constructor(){this.shapeCache=new Map,this.pathCache=new Map}processPresetShape(a,b,c){let d=`${a}_${b}_${c.width}_${c.height}`;if(this.shapeCache.has(d))return this.shapeCache.get(d);let e=null;switch(a){case 1:e=this.createRectangleShape(c);break;case 2:e=this.createRoundRectShape(c);break;case 3:e=this.createEllipseShape(c);break;case 4:e=this.createDiamondShape(c);break;case 5:e=this.createTriangleShape(c);break;case 6:e=this.createRightTriangleShape(c);break;case 7:e=this.createParallelogramShape(c);break;case 8:e=this.createTrapezoidShape(c);break;case 9:e=this.createHexagonShape(c);break;case 10:e=this.createOctagonShape(c);break;case 11:e=this.createPlusShape(c);break;case 12:e=this.createStar5Shape(c);break;case 13:e=this.createRightArrowShape(c);break;case 20:e=this.createLineShape(c);break;case 22:e=this.createCylinderShape(c);break;case 56:e=this.createPentagonShape(c);break;case 66:e=this.createLeftArrowShape(c);break;case 67:e=this.createDownArrowShape(c);break;case 68:e=this.createUpArrowShape(c);break;case 69:e=this.createLeftRightArrowShape(c);break;case 70:e=this.createUpDownArrowShape(c);break;case 74:e=this.createHeartShape(c);break;case 76:e=this.createQuadArrowShape(c);break;default:return null}return e&&this.shapeCache.set(d,e),e}createRectangleShape(a){return{type:"preset",onlyOfficeType:1,path:{commands:[{type:"M",x:a.x,y:a.y},{type:"L",x:a.x+a.width,y:a.y},{type:"L",x:a.x+a.width,y:a.y+a.height},{type:"L",x:a.x,y:a.y+a.height},{type:"Z"}]}}}createEllipseShape(a){let b=a.x+a.width/2,c=a.y+a.height/2,d=a.width/2,e=a.height/2;return{type:"preset",onlyOfficeType:3,path:{commands:[{type:"M",x:b+d,y:c},{type:"A",rx:d,ry:e,x:b-d,y:c,rotation:0,largeArc:0,sweep:1},{type:"A",rx:d,ry:e,x:b+d,y:c,rotation:0,largeArc:0,sweep:1},{type:"Z"}]}}}createDiamondShape(a){let b=a.x+a.width/2,c=a.y+a.height/2;return{type:"preset",onlyOfficeType:4,path:{commands:[{type:"M",x:b,y:a.y},{type:"L",x:a.x+a.width,y:c},{type:"L",x:b,y:a.y+a.height},{type:"L",x:a.x,y:c},{type:"Z"}]}}}createTriangleShape(a){return{type:"preset",onlyOfficeType:5,path:{commands:[{type:"M",x:a.x+a.width/2,y:a.y},{type:"L",x:a.x+a.width,y:a.y+a.height},{type:"L",x:a.x,y:a.y+a.height},{type:"Z"}]}}}createRightArrowShape(a){let b=.7*a.width,c=.4*a.height;a.width;let d=.6*a.height;return{type:"preset",onlyOfficeType:13,path:{commands:[{type:"M",x:a.x,y:a.y+(a.height-c)/2},{type:"L",x:a.x+b,y:a.y+(a.height-c)/2},{type:"L",x:a.x+b,y:a.y+(a.height-d)/2},{type:"L",x:a.x+a.width,y:a.y+a.height/2},{type:"L",x:a.x+b,y:a.y+(a.height+d)/2},{type:"L",x:a.x+b,y:a.y+(a.height+c)/2},{type:"L",x:a.x,y:a.y+(a.height+c)/2},{type:"Z"}]}}}createHeartShape(a){let b=a.x+a.width/2,c=a.y+.3*a.height;return{type:"preset",onlyOfficeType:74,path:{commands:[{type:"M",x:b,y:c},{type:"C",x1:b-.3*a.width,y1:a.y,x2:a.x,y2:a.y+.3*a.height,x:b,y:a.y+.8*a.height},{type:"C",x1:a.x+a.width,y1:a.y+.3*a.height,x2:b+.3*a.width,y2:a.y,x:b,y:c},{type:"Z"}]}}}createLeftArrowShape(a){a.width;let b=.4*a.height,c=.3*a.width,d=.6*a.height;return{type:"preset",onlyOfficeType:66,path:{commands:[{type:"M",x:a.x,y:a.y+a.height/2},{type:"L",x:a.x+c,y:a.y+(a.height-d)/2},{type:"L",x:a.x+c,y:a.y+(a.height-b)/2},{type:"L",x:a.x+a.width,y:a.y+(a.height-b)/2},{type:"L",x:a.x+a.width,y:a.y+(a.height+b)/2},{type:"L",x:a.x+c,y:a.y+(a.height+b)/2},{type:"L",x:a.x+c,y:a.y+(a.height+d)/2},{type:"Z"}]}}}createPlusShape(a){let b=.3*Math.min(a.width,a.height),c=a.x+a.width/2,d=a.y+a.height/2;return{type:"preset",onlyOfficeType:11,path:{commands:[{type:"M",x:a.x,y:d-b/2},{type:"L",x:a.x+a.width,y:d-b/2},{type:"L",x:a.x+a.width,y:d+b/2},{type:"L",x:a.x,y:d+b/2},{type:"Z"},{type:"M",x:c-b/2,y:a.y},{type:"L",x:c+b/2,y:a.y},{type:"L",x:c+b/2,y:a.y+a.height},{type:"L",x:c-b/2,y:a.y+a.height},{type:"Z"}]}}}}class e{constructor(){this.sx=1,this.shy=0,this.shx=0,this.sy=1,this.tx=0,this.ty=0}Reset(){this.sx=1,this.shy=0,this.shx=0,this.sy=1,this.tx=0,this.ty=0}CreateDublicate(){let a=new e;return a.sx=this.sx,a.shy=this.shy,a.shx=this.shx,a.sy=this.sy,a.tx=this.tx,a.ty=this.ty,a}Multiply(a,b){if(1===b){let b=this.sx*a.sx+this.shy*a.shx,c=this.sx*a.shy+this.shy*a.sy,d=this.shx*a.sx+this.sy*a.shx,e=this.shx*a.shy+this.sy*a.sy,f=this.tx*a.sx+this.ty*a.shx+a.tx,g=this.tx*a.shy+this.ty*a.sy+a.ty;this.sx=b,this.shy=c,this.shx=d,this.sy=e,this.tx=f,this.ty=g}else{let b=a.sx*this.sx+a.shy*this.shx,c=a.sx*this.shy+a.shy*this.sy,d=a.shx*this.sx+a.sy*this.shx,e=a.shx*this.shy+a.sy*this.sy,f=a.tx*this.sx+a.ty*this.shx+this.tx,g=a.tx*this.shy+a.ty*this.sy+this.ty;this.sx=b,this.shy=c,this.shx=d,this.sy=e,this.tx=f,this.ty=g}}}class f{constructor(){this.Color={r:0,g:0,b:0,a:255},this.Alpha=255,this.Size=1,this.DashStyle=0,this.LineJoin=0,this.LineCap=0,this.MiterLimit=10}}class g{constructor(){this.Type=0,this.Color1={r:0,g:0,b:0,a:255},this.Color2={r:255,g:255,b:255,a:255},this.Alpha1=255,this.Alpha2=255,this.TexturePath="",this.TextureMode=0,this.TextureAlpha=255,this.LinearAngle=0,this.Rectable={x:0,y:0,w:0,h:0}}}class h{constructor(){this.Name="Arial",this.Size=12,this.Bold=!1,this.Italic=!1,this.Underline=!1,this.Strikeout=!1,this.Path="",this.FaceIndex=0,this.CharSpace=0}}a.exports&&(a.exports={CGraphics:c,StandardShapeProcessor:d,StandardShapeTypes:b,OpenXmlShapeTypes:{RECTANGLE:"rect",ELLIPSE:"ellipse",LINE:"line",ROUND_RECTANGLE:"roundRect",RIGHT_ARROW:"rightArrow",LEFT_ARROW:"leftArrow",UP_ARROW:"upArrow",DOWN_ARROW:"downArrow",LEFT_RIGHT_ARROW:"leftRightArrow",UP_DOWN_ARROW:"upDownArrow",QUAD_ARROW:"quadArrow",LEFT_RIGHT_UP_ARROW:"leftRightUpArrow",BENT_ARROW:"bentArrow",UTURN_ARROW:"uturnArrow",LEFT_UP_ARROW:"leftUpArrow",BENT_UP_ARROW:"bentUpArrow",CURVED_RIGHT_ARROW:"curvedRightArrow",CURVED_LEFT_ARROW:"curvedLeftArrow",CURVED_UP_ARROW:"curvedUpArrow",CURVED_DOWN_ARROW:"curvedDownArrow",STRIPED_RIGHT_ARROW:"stripedRightArrow",NOTCHED_RIGHT_ARROW:"notchedRightArrow",BLOCK_ARC:"blockArc",SWOOSH_ARROW:"swooshArrow",CIRCULAR_ARROW:"circularArrow",FLOWCHART_PROCESS:"flowChartProcess",FLOWCHART_DECISION:"flowChartDecision",FLOWCHART_START_END:"flowChartTerminator",FLOWCHART_INPUT_OUTPUT:"flowChartInputOutput",FLOWCHART_PREDEFINED_PROCESS:"flowChartPredefinedProcess",FLOWCHART_INTERNAL_STORAGE:"flowChartInternalStorage",FLOWCHART_DOCUMENT:"flowChartDocument",FLOWCHART_MULTIDOCUMENT:"flowChartMultidocument",FLOWCHART_PREPARATION:"flowChartPreparation",FLOWCHART_MANUAL_INPUT:"flowChartManualInput",FLOWCHART_MANUAL_OPERATION:"flowChartManualOperation",FLOWCHART_CONNECTOR:"flowChartConnector",FLOWCHART_OFFPAGE_CONNECTOR:"flowChartOffpageConnector",FLOWCHART_PUNCHED_CARD:"flowChartPunchedCard",FLOWCHART_PUNCHED_TAPE:"flowChartPunchedTape",FLOWCHART_SUMMING_JUNCTION:"flowChartSummingJunction",FLOWCHART_OR:"flowChartOr",FLOWCHART_COLLATE:"flowChartCollate",FLOWCHART_SORT:"flowChartSort",FLOWCHART_EXTRACT:"flowChartExtract",FLOWCHART_MERGE:"flowChartMerge",FLOWCHART_STORED_DATA:"flowChartStoredData",FLOWCHART_DELAY:"flowChartDelay",FLOWCHART_SEQUENTIAL_ACCESS_STORAGE:"flowChartSequentialAccessStorage",FLOWCHART_MAGNETIC_DISK:"flowChartMagneticDisk",FLOWCHART_DIRECT_ACCESS_STORAGE:"flowChartDirectAccessStorage",FLOWCHART_DISPLAY:"flowChartDisplay",FLOWCHART_ALTERNATE_PROCESS:"flowChartAlternateProcess",FLOWCHART_MAGNETIC_DRUM:"flowChartMagneticDrum",FLOWCHART_MAGNETIC_TAPE:"flowChartMagneticTape",CALLOUT_1:"callout1",CALLOUT_2:"callout2",CALLOUT_3:"callout3",ACCENT_CALLOUT_1:"accentCallout1",ACCENT_CALLOUT_2:"accentCallout2",ACCENT_CALLOUT_3:"accentCallout3",BORDER_CALLOUT_1:"borderCallout1",BORDER_CALLOUT_2:"borderCallout2",BORDER_CALLOUT_3:"borderCallout3",ACCENT_BORDER_CALLOUT_1:"accentBorderCallout1",ACCENT_BORDER_CALLOUT_2:"accentBorderCallout2",ACCENT_BORDER_CALLOUT_3:"accentBorderCallout3",STAR_4:"star4",STAR_5:"star5",STAR_6:"star6",STAR_8:"star8",STAR_12:"star12",STAR_16:"star16",STAR_24:"star24",STAR_32:"star32",TRIANGLE:"triangle",RIGHT_TRIANGLE:"rtTriangle",DIAMOND:"diamond",PENTAGON:"pentagon",HEXAGON:"hexagon",HEPTAGON:"heptagon",OCTAGON:"octagon",DECAGON:"decagon",DODECAGON:"dodecagon",PARALLELOGRAM:"parallelogram",TRAPEZOID:"trapezoid",PLUS:"plus",CROSS:"cross",STRAIGHT_CONNECTOR_1:"straightConnector1",BENT_CONNECTOR_2:"bentConnector2",BENT_CONNECTOR_3:"bentConnector3",BENT_CONNECTOR_4:"bentConnector4",BENT_CONNECTOR_5:"bentConnector5",CURVED_CONNECTOR_2:"curvedConnector2",CURVED_CONNECTOR_3:"curvedConnector3",CURVED_CONNECTOR_4:"curvedConnector4",CURVED_CONNECTOR_5:"curvedConnector5",RIBBON:"ribbon",RIBBON_2:"ribbon2",ELLIPSE_RIBBON:"ellipseRibbon",ELLIPSE_RIBBON_2:"ellipseRibbon2",LEFT_RIGHT_RIBBON:"leftRightRibbon",VERTICAL_SCROLL:"verticalScroll",HORIZONTAL_SCROLL:"horizontalScroll",WAVE:"wave",DOUBLE_WAVE:"doubleWave",LEFT_BRACKET:"leftBracket",RIGHT_BRACKET:"rightBracket",LEFT_BRACE:"leftBrace",RIGHT_BRACE:"rightBrace",BRACKET_PAIR:"bracketPair",BRACE_PAIR:"bracePair",FRAME:"frame",L_SHAPE:"lShape",DIAGONAL_STRIPE:"diagStripe",CHORD:"chord",ARC:"arc",CUBE:"cube",CAN:"can",CONE:"cone",PYRAMID:"pyramid",HEART:"heart",LIGHTNING_BOLT:"lightningBolt",SUN:"sun",MOON:"moon",CLOUD:"cloud",SMILEY_FACE:"smileyFace",IRREGULAR_SEAL_1:"irregularSeal1",IRREGULAR_SEAL_2:"irregularSeal2",FOLDED_CORNER:"foldedCorner",BEVEL:"bevel",DONUT:"donut",NO_SMOKING:"noSmoking",BLOCK_ARC_2:"blockArc2",PLUS_MATH:"mathPlus",MINUS:"mathMinus",MULTIPLY:"mathMultiply",DIVIDE:"mathDivide",EQUAL:"mathEqual",NOT_EQUAL:"mathNotEqual",ACTION_BUTTON_BLANK:"actionButtonBlank",ACTION_BUTTON_HOME:"actionButtonHome",ACTION_BUTTON_HELP:"actionButtonHelp",ACTION_BUTTON_INFORMATION:"actionButtonInformation",ACTION_BUTTON_FORWARD_NEXT:"actionButtonForwardNext",ACTION_BUTTON_BACK_PREVIOUS:"actionButtonBackPrevious",ACTION_BUTTON_END:"actionButtonEnd",ACTION_BUTTON_BEGINNING:"actionButtonBeginning",ACTION_BUTTON_RETURN:"actionButtonReturn",ACTION_BUTTON_DOCUMENT:"actionButtonDocument",ACTION_BUTTON_SOUND:"actionButtonSound",ACTION_BUTTON_MOVIE:"actionButtonMovie",TEARDROP:"teardrop"},CMatrix:e,CPen:f,CBrush:g,CFont:h});class i{constructor(){this.preset=null,this.pathLst=[],this.gdLst={},this.gdLstInfo=[],this.avLst={},this.adjLst={},this.ahXYLst=[],this.ahPolarLst=[],this.cnxLst=[],this.rect=null,this.width=21600,this.height=21600,this.isCalculated=!1}setPreset(a){this.preset=a,this.isCalculated=!1}addAdjustment(a,b,c,d){this.adjLst[a]={value:b,min:c||null,max:d||null},this.avLst[a]=!0,this.isCalculated=!1}addGuide(a,b,c,d,e){this.gdLstInfo.push({name:a,formula:b,x:c,y:d,z:e}),this.isCalculated=!1}calculateGuideValue(a,b,c,d,e){let f=this.getValue(c),g=this.getValue(d),h=this.getValue(e),i=0;switch(b){case 0:i=0!==h?f*g/h:0;break;case 1:i=f+g-h;break;case 2:i=0!==h?(f+g)/h:0;break;case 3:i=f>0?g:h;break;case 4:i=Math.abs(f);break;case 5:i=108e5*Math.atan2(g,f)/Math.PI;break;case 6:i=f*Math.cos(Math.atan2(h,g));break;case 7:i=f*Math.cos(g*Math.PI/108e5);break;case 8:i=Math.max(f,g);break;case 9:i=Math.min(f,g);break;case 10:i=Math.sqrt(f*f+g*g+h*h);break;case 11:i=g<f?f:g>h?h:g;break;case 12:i=f*Math.sin(Math.atan2(h,g));break;case 13:i=f*Math.sin(g*Math.PI/108e5);break;case 14:i=Math.sqrt(Math.max(0,f));break;case 15:i=f*Math.tan(g*Math.PI/108e5);break;case 16:i=f;break;default:i=0}return isNaN(i)&&(i=0),this.gdLst[a]=i,i}getValue(a){if("number"==typeof a)return a;if("string"==typeof a){let b=parseFloat(a);if(!isNaN(b))return b;switch(a){case"w":case"r":return this.width;case"h":case"b":return this.height;case"ss":return Math.min(this.width,this.height);case"ls":return Math.max(this.width,this.height);case"hc":case"wd2":return this.width/2;case"vc":case"hd2":return this.height/2;case"l":case"t":return 0;case"wd4":return this.width/4;case"hd4":return this.height/4;case"wd6":return this.width/6;case"hd6":return this.height/6;case"wd8":return this.width/8;case"hd8":return this.height/8;case"cd2":return 108e5;case"cd4":return 54e5;case"cd8":return 27e5;case"_3cd4":return 162e5;case"_3cd8":return 81e5;case"_5cd8":return 135e5;case"_7cd8":return 189e5}if(this.gdLst.hasOwnProperty(a))return this.gdLst[a];if(this.adjLst.hasOwnProperty(a))return this.adjLst[a].value}return 0}calculateGuides(){this.gdLst={};for(let a=0;a<this.gdLstInfo.length;a++){let b=this.gdLstInfo[a];this.calculateGuideValue(b.name,b.formula,b.x,b.y,b.z)}this.isCalculated=!0}recalculate(a,b){this.width=a||21600,this.height=b||21600,this.calculateGuides()}addPath(a){this.pathLst.push(a)}getPathList(){return this.isCalculated||this.calculateGuides(),this.pathLst}}class j{constructor(){this.commands=[],this.fill="norm",this.stroke=!0,this.w=void 0,this.h=void 0,this.extrusionOk=!1}addCommand(a,...b){this.commands.push({type:a,args:b})}moveTo(a,b){this.addCommand("M",a,b)}lineTo(a,b){this.addCommand("L",a,b)}curveTo(a,b,c,d,e,f){this.addCommand("C",a,b,c,d,e,f)}quadTo(a,b,c,d){this.addCommand("Q",a,b,c,d)}arcTo(a,b,c,d,e,f,g){this.addCommand("A",a,b,c,d,e,f,g)}close(){this.addCommand("Z")}setFill(a){this.fill=a}setStroke(a){this.stroke=a}}class k{constructor(){this.shapeCache=new Map,this.presetDefinitions=new Map,this.initializePresetDefinitions()}initializePresetDefinitions(){this.presetDefinitions.set("rect",{guides:[],paths:[{commands:[{type:"M",args:["l","t"]},{type:"L",args:["r","t"]},{type:"L",args:["r","b"]},{type:"L",args:["l","b"]},{type:"Z",args:[]}],fill:"norm",stroke:!0}],connections:[{ang:"cd4",x:"hc",y:"t"},{ang:"0",x:"r",y:"vc"},{ang:"_3cd4",x:"hc",y:"b"},{ang:"cd2",x:"l",y:"vc"}],textRect:{l:"l",t:"t",r:"r",b:"b"}}),this.presetDefinitions.set("roundRect",{adjustments:[{name:"adj",formula:16,value:16667}],guides:[{name:"a",formula:11,x:"0",y:"adj",z:"50000"},{name:"x1",formula:0,x:"ss",y:"a",z:"100000"},{name:"y1",formula:0,x:"ss",y:"a",z:"100000"},{name:"x2",formula:1,x:"r",y:"0",z:"x1"},{name:"y2",formula:1,x:"b",y:"0",z:"y1"},{name:"il",formula:0,x:"x1",y:"29289",z:"100000"},{name:"ir",formula:1,x:"r",y:"0",z:"il"},{name:"it",formula:0,x:"y1",y:"29289",z:"100000"},{name:"ib",formula:1,x:"b",y:"0",z:"it"}],paths:[{commands:[{type:"M",args:["l","y1"]},{type:"Q",args:["l","t","x1","t"]},{type:"L",args:["x2","t"]},{type:"Q",args:["r","t","r","y1"]},{type:"L",args:["r","y2"]},{type:"Q",args:["r","b","x2","b"]},{type:"L",args:["x1","b"]},{type:"Q",args:["l","b","l","y2"]},{type:"Z",args:[]}],fill:"norm",stroke:!0}],handles:[{type:"xy",gdRefX:"adj",minX:"0",maxX:"50000",x:"x1",y:"t"}],connections:[{ang:"cd4",x:"hc",y:"t"},{ang:"0",x:"r",y:"vc"},{ang:"_3cd4",x:"hc",y:"b"},{ang:"cd2",x:"l",y:"vc"}],textRect:{l:"il",t:"it",r:"ir",b:"ib"}}),this.presetDefinitions.set("ellipse",{guides:[{name:"idx",formula:0,x:"wd2",y:"2700000",z:"21600000"},{name:"idy",formula:0,x:"hd2",y:"2700000",z:"21600000"},{name:"il",formula:1,x:"hc",y:"0",z:"idx"},{name:"ir",formula:1,x:"hc",y:"idx",z:"0"},{name:"it",formula:1,x:"vc",y:"0",z:"idy"},{name:"ib",formula:1,x:"vc",y:"idy",z:"0"}],paths:[{commands:[{type:"M",args:["l","vc"]},{type:"A",args:["wd2","hd2","0","1","1","r","vc"]},{type:"A",args:["wd2","hd2","0","1","1","l","vc"]},{type:"Z",args:[]}],fill:"norm",stroke:!0}],connections:[{ang:"cd4",x:"hc",y:"t"},{ang:"0",x:"r",y:"vc"},{ang:"_3cd4",x:"hc",y:"b"},{ang:"cd2",x:"l",y:"vc"}],textRect:{l:"il",t:"it",r:"ir",b:"ib"}})}processPresetGeometry(a,b,c,d={}){let e=`${a}_${b}_${c}_${JSON.stringify(d)}`;if(this.shapeCache.has(e))return this.shapeCache.get(e);let f=this.presetDefinitions.get(a);if(!f)return this.createDefaultGeometry(b,c);let g=new i;return g.setPreset(a),g.recalculate(b,c),f.adjustments&&f.adjustments.forEach(a=>{let b=d[a.name]||a.value;g.addAdjustment(a.name,b,a.min,a.max)}),f.guides&&f.guides.forEach(a=>{g.addGuide(a.name,a.formula,a.x,a.y,a.z)}),f.paths&&f.paths.forEach(a=>{let b=new j;b.setFill(a.fill),b.setStroke(a.stroke),a.commands.forEach(a=>{let c=a.args.map(a=>"string"==typeof a?g.getValue(a):a);b.addCommand(a.type,...c)}),g.addPath(b)}),g.calculateGuides(),this.shapeCache.set(e,g),g}createDefaultGeometry(a,b){return this.processPresetGeometry("rect",a,b)}fillText(a,b,c,d={}){if(this.m_oContext&&a){this.m_oContext.save();try{let e=d.fontSize||12,f=this.m_oGraphicsAdapter&&this.m_oGraphicsAdapter.getTextScaleFactor?this.m_oGraphicsAdapter.getTextScaleFactor():1,g=e*f,h=d.fontFamily||"Arial",i=d.fontWeight||(d.bold?"bold":"normal"),j=d.fontStyle||(d.italic?"italic":"normal"),k=`"${h}", "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", "Segoe UI Symbol", Arial, sans-serif`;if(this.m_oContext.font=`${j} ${i} ${g}px ${k}`,d.color)if("object"==typeof d.color&&void 0!==d.color.r){let a=void 0!==d.color.a?d.color.a/255:1,b=`rgba(${d.color.r}, ${d.color.g}, ${d.color.b}, ${a})`;this.m_oContext.fillStyle=b}else"string"==typeof d.color?this.m_oContext.fillStyle=d.color:this.m_oContext.fillStyle="#000000";else this.m_oContext.fillStyle="#000000";if(this.m_oContext.textBaseline=d.textBaseline||"alphabetic",this.m_oContext.textAlign=d.textAlign||"left",this.m_oFullTransform&&!this.m_oFullTransform.IsIdentity()){let a=this.m_oFullTransform;this.m_oContext.setTransform(a.sx,a.shy,a.shx,a.sy,a.tx,a.ty)}if(d.highlight){let e,f=d.highlight;if("object"==typeof f&&void 0!==f.r){let a=void 0!==f.a?f.a/255:1;e=`rgba(${f.r}, ${f.g}, ${f.b}, ${a})`}else"string"==typeof f&&(e=f);if(e){let d=this.m_oContext.measureText(a),f=this.m_oContext.fillStyle;this.m_oContext.fillStyle=e,this.m_oContext.fillRect(b,c-g,d.width,1.2*g),this.m_oContext.fillStyle=f}}this.applyTextEffects(d.effects),this.m_oContext.fillText(a,b,c),this.resetTextEffects()}catch(a){}finally{this.m_oContext.restore()}}}applyTextEffects(a){a&&this.m_oContext&&(a.outerShadow&&this.applyOuterShadow(a.outerShadow),a.glow&&this.applyGlowEffect(a.glow),a.innerShadow&&this.applyInnerShadow(a.innerShadow))}applyOuterShadow(a){if(!a||!this.m_oContext)return;let b=(a.blurRadius||0)/9525,c=(a.distance||0)/9525,d=(a.direction||0)/6e4*Math.PI/180,e=Math.cos(d)*c,f=Math.sin(d)*c;if(this.m_oContext.shadowOffsetX=e,this.m_oContext.shadowOffsetY=f,this.m_oContext.shadowBlur=b,a.color){let b=this.convertColorToString(a.color);this.m_oContext.shadowColor=b}else this.m_oContext.shadowColor="rgba(0, 0, 0, 0.5)"}applyGlowEffect(a){if(!a||!this.m_oContext)return;let b=(a.radius||0)/9525;if(this.m_oContext.shadowOffsetX=0,this.m_oContext.shadowOffsetY=0,this.m_oContext.shadowBlur=b,a.color){let b=this.convertColorToString(a.color);this.m_oContext.shadowColor=b}else this.m_oContext.shadowColor="rgba(255, 255, 255, 0.8)"}applyInnerShadow(a){}resetTextEffects(){this.m_oContext&&(this.m_oContext.shadowOffsetX=0,this.m_oContext.shadowOffsetY=0,this.m_oContext.shadowBlur=0,this.m_oContext.shadowColor="transparent")}convertColorToString(a){if(!a)return"black";if("srgb"===a.type){let b=a.value,c=parseInt(b.substr(0,2),16),d=parseInt(b.substr(2,2),16),e=parseInt(b.substr(4,2),16),f=a.alpha||1;return`rgba(${c}, ${d}, ${e}, ${f})`}if("scheme"===a.type){let b={dk1:"#000000",lt1:"#FFFFFF",dk2:"#44546A",lt2:"#E7E6E6"}[a.value]||"#000000",c=a.alpha||1,d=parseInt(b.substr(1,2),16),e=parseInt(b.substr(3,2),16),f=parseInt(b.substr(5,2),16);return`rgba(${d}, ${e}, ${f}, ${c})`}return"black"}measureText(a,b={}){if(!this.m_oContext||!a)return{width:0,height:0};this.m_oContext.save();try{let c=b.fontSize||12,d=this.m_oGraphicsAdapter&&this.m_oGraphicsAdapter.getTextScaleFactor?this.m_oGraphicsAdapter.getTextScaleFactor():1,e=c*d,f=b.fontFamily||"Arial",g=b.fontWeight||(b.bold?"bold":"normal"),h=b.fontStyle||(b.italic?"italic":"normal"),i=`"${f}", "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", "Segoe UI Symbol", Arial, sans-serif`;this.m_oContext.font=`${h} ${g} ${e}px ${i}`;let j=this.m_oContext.measureText(a),k=e;return void 0!==j.actualBoundingBoxAscent&&void 0!==j.actualBoundingBoxDescent&&(k=j.actualBoundingBoxAscent+j.actualBoundingBoxDescent),{width:j.width,height:k}}catch(a){return{width:0,height:0}}finally{this.m_oContext.restore()}}}"u">typeof window&&(window.CGraphics=c,window.StandardShapeProcessor=d)}(fa)),fa.exports;!function(){if(!bb){bb=1;class a{constructor(){this.logger=new Logger("FontEngine"),this.initializeFontSystem(),this.availableFonts=new Set(["Arial","Calibri","Times New Roman","Courier New","Verdana","Georgia","Tahoma","Helvetica","Garamond","Impact","Segoe UI","Comic Sans MS","Trebuchet MS","Lucida Sans Unicode","Palatino Linotype","Book Antiqua","Bookman Old Style","Century Gothic"]),this.documentFonts=new Set,this.missingFonts=new Set,this.fontCache=new Map,this.fontManager=null}initializeFontSystem(){try{void 0!==window.AscFonts?(this.fontManager=new window.AscFonts.CFontManagerEngine,this.initializeFonts()):this.fontManager=new b}catch(a){this.fontManager=new b}}initializeFonts(){try{"function"==typeof self.queryLocalFonts?this.loadSystemFonts():this.loadFallbackFonts()}catch(a){this.loadFallbackFonts()}}async loadSystemFonts(){try{(await self.queryLocalFonts()).forEach(a=>{this.availableFonts.add(a.family)})}catch(a){this.loadFallbackFonts()}}loadFallbackFonts(){["Arial","Helvetica","Times New Roman","Times","Courier New","Courier","Verdana","Georgia","Palatino","Garamond","Bookman","Comic Sans MS","Trebuchet MS","Arial Black","Impact","Lucida Sans Unicode","Tahoma","Geneva","Lucida Grande","Segoe UI","Calibri","Cambria","Candara","Consolas","Constantia","Corbel","Franklin Gothic Medium","Gill Sans","Lucida Console","Lucida Sans Typewriter","MS Gothic","MS Mincho","MS PGothic","MS PMincho","MS Reference Sans Serif","MS Reference Specialty","MS Sans Serif","MS Serif","Myriad Pro","Optima","Perpetua","Rockwell","Rockwell Extra Bold","Segoe Print","Segoe Script","Segoe UI Light","Segoe UI Semibold","Segoe UI Symbol","Tw Cen MT","Tw Cen MT Condensed","Tw Cen MT Condensed Extra Bold"].forEach(a=>{this.availableFonts.add(a)})}analyzeDocument(a){return this.documentFonts.clear(),a.defaultTextStyle&&this.addFontFromStyle(a.defaultTextStyle),a.slides.forEach(a=>{a.commonSlideData&&a.commonSlideData.shapeTree&&a.commonSlideData.shapeTree.forEach(a=>{this.analyzeShape(a)})}),Array.from(this.documentFonts)}addFontFromStyle(a){a&&a.font&&this.documentFonts.add(a.font)}analyzeShape(a){a&&(a.textBody&&a.textBody.paragraphs&&a.textBody.paragraphs.forEach(a=>{a.runs&&a.runs.forEach(a=>{a.properties&&a.properties.font&&this.documentFonts.add(a.properties.font)})}),a.shapeTree&&a.shapeTree.forEach(a=>{this.analyzeShape(a)}))}loadFonts(){this.missingFonts.clear(),this.documentFonts.forEach(a=>{this.availableFonts.has(a)||this.missingFonts.add(a)})}getResults(){return{documentFonts:Array.from(this.documentFonts),availableFonts:Array.from(this.availableFonts),missingFonts:Array.from(this.missingFonts)}}getFontMetrics(a,b,c){let d=`${a}_${b}_${c}`;if(this.fontCache.has(d))return this.fontCache.get(d);let e={width:c.length*b*.6,height:1.2*b,ascent:.8*b,descent:.2*b,baseline:.8*b};return this.fontCache.set(d,e),e}isFontAvailable(a){return this.availableFonts.has(a)||this.documentFonts.has(a)}getFallbackFont(a){return this.isFontAvailable(a)?a:'Arial, "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", "Segoe UI Symbol", sans-serif'}renderText(a,b,c,d,e){let f=this.getFallbackFont(e.fontFamily||"Arial"),g=e.fontSize||12,h=e.fontWeight||(e.bold?"bold":"normal"),i=e.fontStyle||(e.italic?"italic":"normal");a.font=`${i} ${h} ${g}px "${f}"`;let j="#000000";if(e.color)if("object"==typeof e.color&&void 0!==e.color.r){let a=void 0!==e.color.a?e.color.a/255:1;j=`rgba(${e.color.r}, ${e.color.g}, ${e.color.b}, ${a})`}else j="string"==typeof e.color?e.color:"#000000";else j="#000000";if(a.fillStyle=j,a.textBaseline="alphabetic",e.textAlign&&(a.textAlign=e.textAlign),1===b.length)a.fillText(b,c,d);else{let f=c;for(let c=0;c<b.length;c++){let g=b.charAt(c);a.fillText(g,f,d),f+=a.measureText(g).width,e.letterSpacing&&(f+=e.letterSpacing)}}}measureText(a,b,c){let d=this.getFallbackFont(c.fontFamily||"Arial"),e=c.fontSize||12,f=c.fontWeight||(c.bold?"bold":"normal"),g=c.fontStyle||(c.italic?"italic":"normal");a.save(),a.font=`${g} ${f} ${e}px "${d}"`;let h=0,i=e;for(let d=0;d<b.length;d++){let e=b.charAt(d),f=a.measureText(e);h+=f.width,c.letterSpacing&&(h+=c.letterSpacing),void 0!==f.actualBoundingBoxAscent&&void 0!==f.actualBoundingBoxDescent&&(i=Math.max(i,f.actualBoundingBoxAscent+f.actualBoundingBoxDescent))}return a.restore(),{width:h,height:i}}}class b{constructor(){this.library=null,this.manager=null}openFont(a,b){return{SetFace:function(a,b){this.face=a,this.manager=b},IsSuccess:function(){return!0}}}setHintsProps(a,b){this.hinting=a,this.subpixHinting=b}destroy(){this.library=null,this.manager=null}}"u">typeof window&&(window.FontEngine=a,window.SimplifiedFontManager=b)}}();!function(){if(!bc){bc=1;class a{constructor(){this.type="",this.source="",this.mimeType="",this.duration=0,this.width=0,this.height=0,this.poster="",this.autoplay=!1,this.loop=!1,this.controls=!0,this.muted=!1,this.volume=1,this.startTime=0,this.endTime=0,this.relationship=null,this.embeddedData=null,this.thumbnail=null}}class b{constructor(){this.videoId="",this.startTime=0,this.endTime=0,this.autoplay=!1,this.showControls=!0,this.showInfo=!1,this.loop=!1,this.fullUrl="",this.embedUrl="",this.thumbnailUrl=""}}class c{constructor(a){this.context=a,this.logger=new Logger("MediaProcessor"),this.supportedVideoTypes=["mp4","webm","ogg","avi","mov","wmv"],this.supportedAudioTypes=["mp3","wav","ogg","aac","m4a","wma"],this.supportedImageTypes=["jpg","jpeg","png","gif","bmp","svg","webp"]}parseMediaFromElement(a){try{if(this.isVideoElement(a))return this.parseVideoElement(a);if(this.isAudioElement(a))return this.parseAudioElement(a);if(this.isImageElement(a))return this.parseImageElement(a);else if(this.isYouTubeEmbed(a))return this.parseYouTubeEmbed(a);return null}catch(a){return this.logger.logError(this.constructor.name,"Error parsing media element:",a),null}}isVideoElement(a){return["video","p:video","a:video"].some(b=>a.querySelector(b))||this.hasVideoMimeType(a)}isAudioElement(a){return["audio","p:audio","a:audio"].some(b=>a.querySelector(b))||this.hasAudioMimeType(a)}isImageElement(a){return["pic","p:pic","image","img"].some(b=>a.querySelector(b))||this.hasImageMimeType(a)}isYouTubeEmbed(a){let b=a.textContent||"",c=a.innerHTML||"";return b.includes("youtube.com")||b.includes("youtu.be")||c.includes("youtube.com")||c.includes("youtu.be")}parseVideoElement(b){let c=new a;c.type="video",this.parseCommonMediaAttributes(b,c);let d=b.querySelector("video, p\\:video, a\\:video");return d&&(c.poster=d.getAttribute("poster")||"",c.autoplay=d.hasAttribute("autoplay"),c.loop=d.hasAttribute("loop"),c.controls=!d.hasAttribute("controls")||"false"!==d.getAttribute("controls"),c.muted=d.hasAttribute("muted")),this.extractMediaSource(b,c),c}parseAudioElement(b){let c=new a;c.type="audio",this.parseCommonMediaAttributes(b,c);let d=b.querySelector("audio, p\\:audio, a\\:audio");if(d){c.autoplay=d.hasAttribute("autoplay"),c.loop=d.hasAttribute("loop"),c.controls=!d.hasAttribute("controls")||"false"!==d.getAttribute("controls"),c.muted=d.hasAttribute("muted");let a=d.getAttribute("volume");a&&(c.volume=parseFloat(a)||1)}return this.extractMediaSource(b,c),c}parseImageElement(b){let c=new a;return c.type="image",this.parseCommonMediaAttributes(b,c),this.extractMediaSource(b,c),c}parseYouTubeEmbed(c){let d=new a;d.type="youtube";let e=new b,f=(c.textContent||"")+" "+(c.innerHTML||""),g=this.extractYouTubeVideoId(f);g&&(e.videoId=g,e.fullUrl=`https://www.youtube.com/watch?v=${g}`,e.embedUrl=`https://www.youtube.com/embed/${g}`,e.thumbnailUrl=`https://img.youtube.com/vi/${g}/maxresdefault.jpg`);let h=f.match(/[?&]t=(\d+)/);return h&&(e.startTime=parseInt(h[1])),d.source=e.embedUrl,d.embeddedData=e,d}parseCommonMediaAttributes(a,b){let c=a.getAttribute("width")||a.getAttribute("w"),d=a.getAttribute("height")||a.getAttribute("h");c&&(b.width=parseInt(c)||0),d&&(b.height=parseInt(d)||0);let e=a.getAttribute("duration");e&&(b.duration=parseFloat(e)||0);let f=a.getAttribute("r:id")||a.getAttribute("rid");f&&(b.relationship=f)}extractMediaSource(a,b){let c=a.getAttribute("src");if(c){b.source=c,b.mimeType=this.getMimeTypeFromExtension(c);return}let d=a.querySelector("source");if(d){b.source=d.getAttribute("src")||"",b.mimeType=d.getAttribute("type")||this.getMimeTypeFromExtension(b.source);return}if(b.relationship&&this.context){let a=this.resolveRelationship(b.relationship);if(a){if(b.source=a,b.mimeType=this.getMimeTypeFromExtension(a),"image/svg+xml"===this.getMimeTypeFromExtension(a))try{let c=this.getZipPackage();c&&c.getFileData&&c.getFileData(a).then(a=>{if(a){let c=new TextDecoder("utf-8").decode(a),d=btoa(c);b.embeddedData=`data:image/svg+xml;base64,${d}`}}).catch(b=>{this.logger.log("warn",this.constructor.name,`Failed to create SVG data URI for ${a}:`,b)})}catch(b){this.logger.log("warn",this.constructor.name,`Error creating SVG data URI for ${a}:`,b)}return}}let e=this.extractEmbeddedData(a);e&&(b.embeddedData=e,b.mimeType=this.getMimeTypeFromData(e))}getZipPackage(){return this.context&&this.context.zip?this.context.zip:this.context&&this.context.package?this.context.package:window.currentProcessor&&window.currentProcessor.package?window.currentProcessor.package:window.currentProcessor&&window.currentProcessor.zip?window.currentProcessor.zip:null}extractYouTubeVideoId(a){for(let b of[/(?:youtube\.com\/watch\?v=|youtu\.be\/)([^&\n?#]+)/,/youtube\.com\/embed\/([^&\n?#]+)/,/youtube\.com\/v\/([^&\n?#]+)/]){let c=a.match(b);if(c&&c[1])return c[1]}return null}getMimeTypeFromExtension(a){return a?({mp4:"video/mp4",webm:"video/webm",ogg:"video/ogg",avi:"video/x-msvideo",mov:"video/quicktime",wmv:"video/x-ms-wmv",mp3:"audio/mpeg",wav:"audio/wav",aac:"audio/aac",m4a:"audio/mp4",wma:"audio/x-ms-wma",jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",gif:"image/gif",bmp:"image/bmp",svg:"image/svg+xml",webp:"image/webp"})[a.split(".").pop().toLowerCase()]||"":""}resolveRelationship(a){try{if(!a||!this.context)return null;let b=null;if(this.context.zip?b=this.context.zip:this.context.package?b=this.context.package:window.currentProcessor&&window.currentProcessor.package&&(b=window.currentProcessor.package),!b||!b.relationships)return null;for(let c of Object.values(b.relationships))if(c&&c[a]){let b=c[a].target;return b.startsWith("../")?b=b.replace("../","ppt/"):b.startsWith("/")||(b=`/ppt/${b}`),b}return this.logger.log("warn",this.constructor.name,`Could not resolve relationship ID: ${a}`),null}catch(b){return this.logger.logError(this.constructor.name,`Error resolving relationship ${a}:`,b),null}}extractEmbeddedData(a){for(let b of["data","data-src","data-url","src","href"]){let c=a.getAttribute(b);if(c&&c.startsWith("data:"))return c}let b=(a.textContent||"").match(/data:[^;]+;base64,[A-Za-z0-9+/]+=*/g);return b&&b.length>0?b[0]:null}getMimeTypeFromData(a){if(!a||!a.startsWith("data:"))return"";let b=a.match(/^data:([^;]+)/);return b?b[1]:""}isSVGDataUri(a){return!!a&&!!a.startsWith("data:")&&"image/svg+xml"===this.getMimeTypeFromData(a)}extractSVGFromDataUri(a){if(!this.isSVGDataUri(a))return null;try{let b=a.split(",")[1];if(!b)return null;return atob(b)}catch(a){return null}}hasVideoMimeType(a){return(a.getAttribute("type")||"").startsWith("video/")}hasAudioMimeType(a){return(a.getAttribute("type")||"").startsWith("audio/")}hasImageMimeType(a){return(a.getAttribute("type")||"").startsWith("image/")}createPlaceholder(b="media"){let c=new a;return c.type=b,c.source="",c.width=320,c.height=240,c.controls=!0,c}}"u">typeof window&&(window.MediaInfo=a,window.YouTubeEmbed=b,window.MediaProcessor=c)}}();!function(){if(!bd){bd=1;class a{constructor(a){this.graphics=a,this.logger=new Logger("SVGRenderer"),this.parser=new DOMParser}async renderSVG(a,b,c,d,e,f={}){try{let g=null;if("string"==typeof a){let f=a.trim();if(f.startsWith("<svg"))g=this.parser.parseFromString(f,"image/svg+xml").documentElement;else if(f.startsWith("data:image/svg+xml")){let a=f.split(",")[1],b=atob(a);g=this.parser.parseFromString(b,"image/svg+xml").documentElement}else{if(!f.includes("<svg"))return void this.renderSVGPlaceholder(b,c,d,e,"External SVG");g=this.parser.parseFromString(f,"image/svg+xml").documentElement}}else a instanceof Element&&(g=a);if(!g||"svg"!==g.tagName)return void this.renderSVGPlaceholder(b,c,d,e,"Invalid SVG");let h=this.getSVGViewBox(g),i=this.getSVGDimensions(g,h),j=d/i.width,k=e/i.height,l=!1!==f.preserveAspectRatio?Math.min(j,k):Math.max(j,k);this.canUseImageMethod()?await this.renderSVGViaImage(g,b,c,d,e,l,f):this.renderSVGViaParsing(g,b,c,l,f)}catch(a){this.logger.logError(this.constructor.name,"Error rendering SVG:",a),this.renderSVGPlaceholder(b,c,d,e,"SVG Error")}}getSVGViewBox(a){let b=a.getAttribute("viewBox");if(b){let a=b.split(/\s+/).map(a=>parseFloat(a));if(4===a.length)return{x:a[0],y:a[1],width:a[2],height:a[3]}}return null}getSVGDimensions(a,b){let c=parseFloat(a.getAttribute("width"))||0,d=parseFloat(a.getAttribute("height"))||0;return c||d||!b||(c=b.width,d=b.height),c||(c=100),d||(d=100),{width:c,height:d}}canUseImageMethod(){let a="u">typeof Image,b=this.graphics._context||this.graphics.m_oContext,c=b&&"function"==typeof b.drawImage;return a&&b&&c}enhanceSVGForRendering(a,b,c){try{let d=this.parser.parseFromString(a,"image/svg+xml").documentElement;if(!d.hasAttribute("viewBox")){let a=d.getAttribute("width")||b,e=d.getAttribute("height")||c;d.setAttribute("viewBox",`0 0 ${a} ${e}`)}return d.setAttribute("width",b.toString()),d.setAttribute("height",c.toString()),d.hasAttribute("xmlns")||d.setAttribute("xmlns","http://www.w3.org/2000/svg"),new XMLSerializer().serializeToString(d)}catch(b){return this.logger.log("warn",this.constructor.name,"Could not enhance SVG, using original:",b),a}}async renderSVGViaImage(a,b,c,d,e,f,g){return new Promise((f,g)=>{try{let h=new XMLSerializer().serializeToString(a),i=this.enhanceSVGForRendering(h,d,e),j="data:image/svg+xml;base64,"+btoa(i),k=new Image;k.onload=()=>{try{if(this.graphics._context||this.graphics.m_oContext){let a=this.graphics._context||this.graphics.m_oContext;a.save();let f=d,g=e,h=b,i=c;if(k.naturalWidth>0&&k.naturalHeight>0){let a=k.naturalWidth/k.naturalHeight,j=d/e;a>j?(f=d,g=d/a,i=c+(e-g)/2):(g=e,f=e*a,h=b+(d-f)/2)}a.drawImage(k,h,i,f,g),a.restore()}else this.logger.logError(this.constructor.name,"No canvas context available for SVG drawing");f()}catch(a){this.logger.logError(this.constructor.name,"Error drawing SVG image:",a),this.renderSVGPlaceholder(b,c,d,e,"SVG Draw Error"),g(a)}},k.onerror=a=>{this.logger.logError(this.constructor.name,"SVG image load error:",a),this.renderSVGPlaceholder(b,c,d,e,"SVG Load Error"),g(a)},k.crossOrigin="anonymous",k.src=j,setTimeout(()=>{!1===k.complete&&(this.logger.log("warn",this.constructor.name,"SVG loading timed out"),this.renderSVGPlaceholder(b,c,d,e,"SVG Timeout"),g(Error("SVG loading timeout")))},5e3)}catch(a){this.logger.logError(this.constructor.name,"Error in SVG Image rendering:",a),this.renderSVGPlaceholder(b,c,d,e,"SVG Render Error"),g(a)}})}renderSVGViaParsing(a,b,c,d,e){try{if(!this.graphics._context)return;this.graphics._context.save(),this.graphics._context.translate(b,c),this.graphics._context.scale(d,d),this.processSVGElements(a.children),this.graphics._context.restore()}catch(a){this.logger.logError(this.constructor.name,"Error in SVG parsing rendering:",a),this.renderSVGPlaceholder(b,c,100,100,"SVG Parse Error")}}processSVGElements(a){for(let b of a)this.processSVGElement(b)}processSVGElement(a){switch(a.tagName.toLowerCase()){case"rect":this.renderSVGRect(a);break;case"circle":this.renderSVGCircle(a);break;case"ellipse":this.renderSVGEllipse(a);break;case"line":this.renderSVGLine(a);break;case"polyline":case"polygon":this.renderSVGPolygon(a);break;case"path":this.renderSVGPath(a);break;case"text":this.renderSVGText(a);break;case"g":this.graphics._context.save(),this.applySVGTransform(a),this.processSVGElements(a.children),this.graphics._context.restore()}}renderSVGRect(a){let b=parseFloat(a.getAttribute("x"))||0,c=parseFloat(a.getAttribute("y"))||0,d=parseFloat(a.getAttribute("width"))||0,e=parseFloat(a.getAttribute("height"))||0;this.applySVGStyles(a);let f=this.graphics._context;f.fillRect(b,c,d,e),f.strokeRect(b,c,d,e)}renderSVGCircle(a){let b=parseFloat(a.getAttribute("cx"))||0,c=parseFloat(a.getAttribute("cy"))||0,d=parseFloat(a.getAttribute("r"))||0;this.applySVGStyles(a);let e=this.graphics._context;e.beginPath(),e.arc(b,c,d,0,2*Math.PI),e.fill(),e.stroke()}renderSVGLine(a){let b=parseFloat(a.getAttribute("x1"))||0,c=parseFloat(a.getAttribute("y1"))||0,d=parseFloat(a.getAttribute("x2"))||0,e=parseFloat(a.getAttribute("y2"))||0;this.applySVGStyles(a);let f=this.graphics._context;f.beginPath(),f.moveTo(b,c),f.lineTo(d,e),f.stroke()}renderSVGText(a){let b=parseFloat(a.getAttribute("x"))||0,c=parseFloat(a.getAttribute("y"))||0,d=a.textContent||"";this.applySVGStyles(a),this.graphics._context.fillText(d,b,c)}applySVGStyles(a){let b=this.graphics._context,c=a.getAttribute("fill");c&&"none"!==c?b.fillStyle=c:b.fillStyle="transparent";let d=a.getAttribute("stroke");d&&"none"!==d?b.strokeStyle=d:b.strokeStyle="transparent";let e=a.getAttribute("stroke-width");e&&(b.lineWidth=parseFloat(e));let f=a.getAttribute("opacity");f&&(b.globalAlpha=parseFloat(f))}applySVGTransform(a){let b=a.getAttribute("transform");if(b){let a=b.match(/translate\(([^)]+)\)/);if(a){let b=a[1].split(",").map(a=>parseFloat(a.trim()));b.length>=2&&this.graphics._context.translate(b[0],b[1])}let c=b.match(/scale\(([^)]+)\)/);if(c){let a=c[1].split(",").map(a=>parseFloat(a.trim()));if(a.length>=1){let b=a[0],c=a.length>1?a[1]:b;this.graphics._context.scale(b,c)}}let d=b.match(/rotate\(([^)]+)\)/);if(d){let a=parseFloat(d[1]);this.graphics._context.rotate(a*Math.PI/180)}}}renderSVGPlaceholder(a,b,c,d,e="SVG"){this.graphics.fillRect(a,b,c,d,{r:240,g:240,b:240}),this.graphics.strokeRect(a,b,c,d,{r:200,g:200,b:200},1)}renderSVGEllipse(a){let b=parseFloat(a.getAttribute("cx"))||0,c=parseFloat(a.getAttribute("cy"))||0,d=parseFloat(a.getAttribute("rx"))||0,e=parseFloat(a.getAttribute("ry"))||0;this.applySVGStyles(a);let f=this.graphics._context;f.save(),f.translate(b,c),f.scale(d,e),f.beginPath(),f.arc(0,0,1,0,2*Math.PI),f.restore(),f.fill(),f.stroke()}renderSVGPolygon(a){let b=a.getAttribute("points")||"",c="polygon"===a.tagName.toLowerCase();if(!b.trim())return;this.applySVGStyles(a);let d=this.graphics._context,e=b.trim().split(/[\s,]+/);if(e.length<4)return;d.beginPath();let f=parseFloat(e[0]),g=parseFloat(e[1]);d.moveTo(f,g);for(let a=2;a<e.length;a+=2)a+1<e.length&&(f=parseFloat(e[a]),g=parseFloat(e[a+1]),d.lineTo(f,g));c&&d.closePath(),d.fill(),d.stroke()}renderSVGPath(a){let b=a.getAttribute("d")||"";if(b.trim()){this.applySVGStyles(a);try{let a=this.graphics._context,c=this.parseSVGPathData(b);a.beginPath(),this.executeSVGPathCommands(c,a),a.fill(),a.stroke()}catch(c){this.logger.log("warn",this.constructor.name,"Error parsing SVG path:",c);let b=this.getElementBoundingBox(a);if(b){this.applySVGStyles(a);let c=this.graphics._context;c.fillRect(b.x,b.y,b.width,b.height),c.strokeRect(b.x,b.y,b.width,b.height)}}}}parseSVGPathData(a){let b,c=[],d=/([MmLlHhVvCcSsQqTtAaZz])((?:\s*[-+]?(?:\d+\.?\d*|\.\d+)(?:[eE][-+]?\d+)?\s*,?\s*)*)/g;for(;null!==(b=d.exec(a));){let a=b[1],d=b[2].trim(),e=d?d.split(/[\s,]+/).map(a=>parseFloat(a)).filter(a=>!isNaN(a)):[];c.push({command:a,params:e})}return c}executeSVGPathCommands(a,b){let c=0,d=0;for(let{command:e,params:f}of a)switch(e.toLowerCase()){case"m":if(f.length>=2){"M"===e?(c=f[0],d=f[1]):(c+=f[0],d+=f[1]),b.moveTo(c,d);for(let a=2;a<f.length;a+=2)a+1<f.length&&("M"===e?(c=f[a],d=f[a+1]):(c+=f[a],d+=f[a+1]),b.lineTo(c,d))}break;case"l":for(let a=0;a<f.length;a+=2)a+1<f.length&&("L"===e?(c=f[a],d=f[a+1]):(c+=f[a],d+=f[a+1]),b.lineTo(c,d));break;case"h":for(let a=0;a<f.length;a++)"H"===e?c=f[a]:c+=f[a],b.lineTo(c,d);break;case"v":for(let a=0;a<f.length;a++)"V"===e?d=f[a]:d+=f[a],b.lineTo(c,d);break;case"c":for(let a=0;a<f.length;a+=6)if(a+5<f.length){let g,h,i,j,k,l;"C"===e?(g=f[a],h=f[a+1],i=f[a+2],j=f[a+3],k=f[a+4],l=f[a+5]):(g=c+f[a],h=d+f[a+1],i=c+f[a+2],j=d+f[a+3],k=c+f[a+4],l=d+f[a+5]),b.bezierCurveTo(g,h,i,j,k,l),c=k,d=l}break;case"q":for(let a=0;a<f.length;a+=4)if(a+3<f.length){let g,h,i,j;"Q"===e?(g=f[a],h=f[a+1],i=f[a+2],j=f[a+3]):(g=c+f[a],h=d+f[a+1],i=c+f[a+2],j=d+f[a+3]),b.quadraticCurveTo(g,h,i,j),c=i,d=j}break;case"a":for(let a=0;a<f.length;a+=7)if(a+6<f.length){let g,h,i=f[a],j=f[a+1],k=f[a+2]*Math.PI/180,l=f[a+3],m=f[a+4];"A"===e?(g=f[a+5],h=f[a+6]):(g=c+f[a+5],h=d+f[a+6]),this.drawEllipticalArc(b,c,d,i,j,k,l,m,g,h),c=g,d=h}break;case"z":b.closePath()}}drawEllipticalArc(a,b,c,d,e,f,g,h,i,j){a.lineTo(i,j)}getElementBoundingBox(a){let b=parseFloat(a.getAttribute("x"))||0,c=parseFloat(a.getAttribute("y"))||0,d=parseFloat(a.getAttribute("width"))||10,e=parseFloat(a.getAttribute("height"))||10;return d>0&&e>0?{x:b,y:c,width:d,height:e}:null}}"u">typeof window&&(window.SVGRenderer=a)}}();!function(){if(!be){be=1;class a{constructor(){this.name="",this.colorScheme={},this.fontScheme={},this.formatScheme={},this.backgroundStyles=[],this.effects=[],this.themeElements={}}}class b{constructor(){this.dk1=null,this.lt1=null,this.dk2=null,this.lt2=null,this.accent1=null,this.accent2=null,this.accent3=null,this.accent4=null,this.accent5=null,this.accent6=null,this.hlink=null,this.folHlink=null}}class c{constructor(){this.majorFont={},this.minorFont={}}}class d{constructor(){this.id="",this.name="",this.preserve=!1,this.cSld=null,this.clrMap=null,this.txStyles=null,this.sldLayoutLst=[],this.themeId="",this.hf=null,this.timing=null,this.transition=null}}class e{constructor(){this.id="",this.masterId="",this.name="",this.type="custom",this.preserve=!1,this.showMasterSp=!0,this.showMasterPhAnim=!1,this.userDrawn=!1,this.cSld=null,this.clrMapOvr=null,this.hf=null,this.timing=null,this.transition=null}}class f{constructor(a){this.context=a,this.logger=new Logger("ThemeProcessor"),this.themes=new Map,this.masters=new Map,this.layouts=new Map}processTheme(b,c){try{let d=new DOMParser().parseFromString(b,"text/xml").querySelector("theme, a\\:theme");if(!d)return this.logger.log("warn",this.constructor.name,"No theme element found in XML"),this.createDefaultTheme(c);let e=new a;return e.name=d.getAttribute("name")||`Theme${c}`,this.processThemeElements(d,e),this.processColorScheme(d,e),this.processFontScheme(d,e),this.processFormatScheme(d,e),this.themes.set(c,e),e}catch(a){return this.logger.logError(this.constructor.name,"Error processing theme:",a),this.createDefaultTheme(c)}}processMasterSlide(a,b){try{let c=new DOMParser().parseFromString(a,"text/xml").querySelector("sldMaster, p\\:sldMaster");if(!c)return this.logger.log("warn",this.constructor.name,"No slide master element found in XML"),this.createDefaultMaster(b);let e=new d;return e.id=b,e.name=c.getAttribute("name")||`Master${b}`,e.preserve="true"===c.getAttribute("preserve"),this.processMasterElements(c,e),this.masters.set(b,e),e}catch(a){return this.logger.logError(this.constructor.name,"Error processing master slide:",a),this.createDefaultMaster(b)}}processLayoutSlide(a,b,c){try{let d=new DOMParser().parseFromString(a,"text/xml").querySelector("sldLayout, p\\:sldLayout");if(!d)return this.logger.log("warn",this.constructor.name,"No slide layout element found in XML"),this.createDefaultLayout(b,c);let f=new e;f.id=b,f.masterId=c,f.name=d.getAttribute("name")||`Layout${b}`,f.type=d.getAttribute("type")||"custom",f.preserve="true"===d.getAttribute("preserve"),f.showMasterSp="false"!==d.getAttribute("showMasterSp"),f.showMasterPhAnim="true"===d.getAttribute("showMasterPhAnim"),f.userDrawn="true"===d.getAttribute("userDrawn"),this.processLayoutElements(d,f),this.layouts.set(b,f);let g=this.masters.get(c);return g&&g.sldLayoutLst.push(b),f}catch(a){return this.logger.logError(this.constructor.name,"Error processing layout slide:",a),this.createDefaultLayout(b,c)}}processThemeElements(a,b){let c=a.querySelector("themeElements, a\\:themeElements");c&&(b.themeElements={element:c,parsed:!1})}processColorScheme(a,c){let d=a.querySelector("clrScheme, a\\:clrScheme");if(!d)return;let e=new b;for(let[a,b]of Object.entries({dk1:"dk1",lt1:"lt1",dk2:"dk2",lt2:"lt2",accent1:"accent1",accent2:"accent2",accent3:"accent3",accent4:"accent4",accent5:"accent5",accent6:"accent6",hlink:"hlink",folHlink:"folHlink"})){let c=d.querySelector(`${a}, a\\:${a}`);c&&(e[b]=this.parseColor(c))}c.colorScheme=e}processFontScheme(a,b){let d=a.querySelector("fontScheme, a\\:fontScheme");if(!d)return;let e=new c,f=d.querySelector("majorFont, a\\:majorFont");f&&(e.majorFont=this.parseFontCollection(f));let g=d.querySelector("minorFont, a\\:minorFont");g&&(e.minorFont=this.parseFontCollection(g)),b.fontScheme=e}processFormatScheme(a,b){let c=a.querySelector("fmtScheme, a\\:fmtScheme");c&&(b.formatScheme={fillStyleLst:this.processFillStyles(c),lnStyleLst:this.processLineStyles(c),effectStyleLst:this.processEffectStyles(c),bgFillStyleLst:this.processBackgroundFillStyles(c)})}processMasterElements(a,b){let c=a.querySelector("cSld, p\\:cSld");c&&(b.cSld=this.parseCommonSlideData(c));let d=a.querySelector("clrMap, p\\:clrMap");d&&(b.clrMap=this.parseColorMap(d));let e=a.querySelector("txStyles, p\\:txStyles");e&&(b.txStyles=this.parseTextStyles(e)),b.hf=this.parseHeaderFooter(a),b.timing=this.parseTiming(a),b.transition=this.parseTransition(a)}processLayoutElements(a,b){let c=a.querySelector("cSld, p\\:cSld");c&&(b.cSld=this.parseCommonSlideData(c));let d=a.querySelector("clrMapOvr, p\\:clrMapOvr");d&&(b.clrMapOvr=this.parseColorMapOverride(d)),b.hf=this.parseHeaderFooter(a),b.timing=this.parseTiming(a),b.transition=this.parseTransition(a)}getTheme(a){return this.themes.get(a)||null}getMaster(a){return this.masters.get(a)||null}getLayout(a){return this.layouts.get(a)||null}resolveColor(a,b,c=null){let d=this.getTheme(b);if(!d||!d.colorScheme)return null;let e=c&&c[a]?c[a]:a;return d.colorScheme[e]||null}resolveFont(a,b,c="latin"){let d=this.getTheme(b);if(!d||!d.fontScheme)return null;let e="major"===a?d.fontScheme.majorFont:d.fontScheme.minorFont;return e[c]||e.latin||null}parseColor(a){let b=a.querySelector("sysClr, a\\:sysClr"),c=a.querySelector("srgbClr, a\\:srgbClr");if(a.querySelector("schemeClr, a\\:schemeClr"),c){let a=c.getAttribute("val");if(a){let b=parseInt(a.substr(0,2),16);return{r:b,g:parseInt(a.substr(2,2),16),b:parseInt(a.substr(4,2),16)}}}return b&&({windowText:{r:0,g:0,b:0},window:{r:255,g:255,b:255}})[b.getAttribute("val")]||{r:0,g:0,b:0}}parseFontCollection(a){let b={},c=a.querySelector("latin, a\\:latin");c&&(b.latin=c.getAttribute("typeface"));let d=a.querySelector("cs, a\\:cs");return d&&(b.cs=d.getAttribute("typeface")),b}parseCommonSlideData(a){return{name:a.getAttribute("name")||"",bg:this.parseBackground(a),spTree:this.parseShapeTree(a)}}parseColorMap(a){let b={},c=a.attributes;for(let a=0;a<c.length;a++){let d=c[a];b[d.name]=d.value}return b}parseColorMapOverride(a){return{}}parseTextStyles(a){return{titleStyle:{},bodyStyle:{},otherStyle:{}}}parseShapeTree(a){return[]}parseBackground(a){return null}parseHeaderFooter(a){return null}parseTiming(a){return null}parseTransition(a){return null}processFillStyles(a){return[]}processLineStyles(a){return[]}processEffectStyles(a){return[]}processBackgroundFillStyles(a){return[]}createDefaultTheme(d){let e=new a;return e.name=`Default Theme ${d}`,e.colorScheme=new b,e.fontScheme=new c,e}createDefaultMaster(a){let b=new d;return b.id=a,b.name=`Default Master ${a}`,b}createDefaultLayout(a,b){let c=new e;return c.id=a,c.masterId=b,c.name=`Default Layout ${a}`,c.type="blank",c}}"u">typeof window&&(window.ThemeInfo=a,window.ColorScheme=b,window.FontScheme=c,window.MasterSlide=d,window.LayoutSlide=e,window.ThemeProcessor=f)}}();let fb="u">typeof globalThis&&globalThis.Logger?globalThis.Logger:class{log(){}info(){}warn(){}error(){}debug(){}trace(){}logError(){}},fc="u">typeof globalThis&&globalThis.FontEngine?globalThis.FontEngine:class{},fd="u">typeof globalThis&&globalThis.CanvasGraphicsAdapter?globalThis.CanvasGraphicsAdapter:class{resetState(){}},fe="u">typeof globalThis&&globalThis.CDrawingDocument?globalThis.CDrawingDocument:class{constructor(){this.graphics=null,this.canvas=null,this.processor=null,this.logger=new fb("CDrawingDocument")}init(a,b=null){this.canvas=a,this.processor=b,this.graphics?this.graphics.resetState&&this.graphics.resetState():this.graphics=new fd}},ff="u">typeof globalThis&&globalThis.ZLib?globalThis.ZLib:class{constructor(){this.files={},this.isOpen=!1}async open(a){return this.isOpen=!0,!0}async getFileText(a){return null}async getFile(a){return null}getPaths(){return[]}},fg="u">typeof globalThis&&globalThis.OpenXmlTypes||"u">typeof window&&window.OpenXmlTypes||{presentation:{relationType:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument"},slide:{relationType:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/slide"},slideLayout:{relationType:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideLayout"},slideMaster:{relationType:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideMaster"},theme:{relationType:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme"},image:{relationType:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image"}};class fh{constructor(a=0,b=0,c=0,d=0){this.x=a,this.y=b,this.w=c,this.h=d}isIntersectOther(a){return!(this.x>a.x+a.w||this.x+this.w<a.x||this.y>a.y+a.h||this.y+this.h<a.y)}}class fi{constructor(){this.logger=new fb("PPTXProcessor"),this.zip=null,this.package=null,this.presentation=null,this.slides=[],this.slideMasters=[],this.slideLayouts=[],this.fontEngine=new fc,this.drawingDocument=null,this.initializeGraphicsEngine(),this.currentSlideIndex=0,this.xmlParser=null,this.imageMap=new Map,this.mediaMap=new Map,this.imageCache=new Map,this.svgRelationshipMap=new Map,this.imageLoader=new fj,this.renderContext={enableOptimizations:!0,enableBoundsChecking:!0,enableViewportCulling:!0,enableTextAntialiasing:!0,enableShapeAntialiasing:!0,quality:"high",dpi:96,pixelRatio:window.devicePixelRatio||1}}setupHighResolutionCanvas(a,b,c,d=null){let e=d||this.renderContext.pixelRatio||window.devicePixelRatio||1;a.style.width=b+"px",a.style.height=c+"px",a.width=b*e,a.height=c*e;let f=a.getContext("2d");return f.scale(e,e),f.imageSmoothingEnabled=!0,f.imageSmoothingQuality="high",a}setRenderingDPI(a){this.renderContext.dpi=a,this.renderContext.pixelRatio=a/96}getRenderingDPI(){return this.renderContext.dpi}setPixelRatio(a){this.renderContext.pixelRatio=a,this.renderContext.dpi=96*a}initializeGraphicsEngine(){"u">typeof CDrawingDocument?this.drawingDocument=new CDrawingDocument:this.drawingDocument=new fe,this.svgRenderer=null}getGraphicsEngine(){return this.drawingDocument}async processFile(a){try{return this.updateProgress(1,"processing"),await this.processZIP(a),this.updateProgress(1,"active",100),this.updateProgress(2,"processing"),await this.processXMLToDOM(),this.updateProgress(2,"active",100),this.updateProgress(3,"processing"),this.fontEngine.analyzeDocument(this.presentation),this.fontEngine.loadFonts(),this.updateProgress(3,"active",100),this.updateProgress(4,"processing"),this.initializeRendering(),this.updateProgress(4,"active",100),this.updateProgress(5,"processing"),await this.preloadAllImages(),this.updateProgress(5,"active",100),this.updateProgress(6,"active",100),!0}catch(a){throw a}}updateProgress(a,b,c=0){let d=document.getElementById(`progress${a}`);d&&(d.style.width=`${c}%`);let e=document.getElementById(`step${a}`);e&&(e.classList.remove("active","processing"),b&&e.classList.add(b))}async processZIP(a){if(this.zip="u">typeof ZLib?new ZLib:new ff,!await this.zip.open(a))throw Error("Failed to open ZIP archive");this.zip.getPaths().filter(a=>a.includes("slide")&&a.endsWith(".xml"));let b="u">typeof globalThis&&globalThis.OpenXmlPackage||"u">typeof window&&window.OpenXmlPackage||function(){class a{constructor(a,b,c){this.package=a,this.uri=b,this.contentType=c,this._content=null}async getDocumentContent(){if(null===this._content){let a=this.uri.startsWith("/")?this.uri.substring(1):this.uri;this._content=await this.package.zip.getFileText(a)}return this._content}async getRelationships(){if(this.package.relationships[this.uri])return this.package.relationships[this.uri];let a=this.uri.replace(/\/([^\/]+)$/,"/_rels/$1.rels"),b=a.startsWith("/")?a.substring(1):a,c=await this.package.zip.getFileText(b);return c?this.package.parseRelationships(c):{}}}class b{constructor(a){this.zip=a,this.parts={},this.contentTypes={},this.relationships={}}async initialize(){let b=await this.zip.getFileText("[Content_Types].xml");b&&this.parseContentTypes(b);let c=await this.zip.getFileText("_rels/.rels");c&&(this.relationships[""]=this.parseRelationships(c));let d=this.zip.getPaths();for(let a of d)if(a.startsWith("_rels/")&&a.endsWith(".rels")&&"_rels/.rels"!==a){let b=a.match(/^(.+)\/_rels\/(.+)\.rels$/);if(b){let c=b[1],d=b[2],e=`/${c}/${d}`,f=await this.zip.getFileText(a);f&&(this.relationships[e]=this.parseRelationships(f))}}for(let b of d)if(!b.startsWith("_rels/")&&"[Content_Types].xml"!==b){let c=`/${b}`,d=this.getContentType(c);this.parts[c]=new a(this,c,d)}}parseContentTypes(a){let b=new DOMParser().parseFromString(a,"text/xml");b.querySelectorAll("Default").forEach(a=>{let b=a.getAttribute("Extension"),c=a.getAttribute("ContentType");b&&(this.contentTypes[`ext:${b}`]=c)}),b.querySelectorAll("Override").forEach(a=>{let b=a.getAttribute("PartName"),c=a.getAttribute("ContentType");b&&(this.contentTypes[b]=c)})}parseRelationships(a){let b=new DOMParser().parseFromString(a,"text/xml"),c={},d=b.getElementsByTagName("*");for(let a=0;a<d.length;a++){let b=d[a];if("Relationship"===b.localName){let a=b.getAttribute("Id"),d=b.getAttribute("Type"),e=b.getAttribute("Target");a&&(c[a]={type:d,target:e,targetMode:b.getAttribute("TargetMode")||"Internal"})}}return c}getContentType(a){if(this.contentTypes[a])return this.contentTypes[a];let b=a.split(".").pop();return b&&this.contentTypes[`ext:${b}`]?this.contentTypes[`ext:${b}`]:"application/octet-stream"}getPartByRelationshipType(a){for(let b of Object.values(this.relationships[""]||{}))if(b.type===a){let a=b.target.startsWith("/")?b.target:`/${b.target}`;return this.parts[a]}return null}getPartByUri(a){return this.parts[a]||null}}return b}();this.package=new b(this.zip),await this.package.initialize();try{this.package&&this.package.relationships&&Object.keys(this.package.relationships)}catch(a){}}async processXMLToDOM(){try{let a="u">typeof globalThis&&globalThis.XmlParserContext?globalThis.XmlParserContext:"u">typeof window?window.XmlParserContext:null;this.xmlParser=a?new a:{zip:null},this.xmlParser.zip=this.zip;let b=this.xmlParser,c=this.package.getPartByRelationshipType(fg.presentation?fg.presentation.relationType:void 0);if(!c){if(!(c=this.package.getPartByUri("/ppt/presentation.xml")||this.package.getPartByUri("ppt/presentation.xml"))){let a=Object.keys(this.package.parts||{}).find(a=>/presentation\.xml$/i.test(a));a&&(c=this.package.getPartByUri(a))}if(!c&&this.zip&&"function"==typeof this.zip.getPaths)try{let a=this.zip.getPaths(),b=a.find(a=>/^(?:\/?|)ppt\/presentation\.xml$/i.test(a));if(b||(b=a.find(a=>/presentation\.xml$/i.test(a))),b){let a=b.startsWith("/")?b:`/${b}`,d=this,e=new class{constructor(a,b){this.package=a,this.uri=b,this._content=null}async getDocumentContent(){if(null===this._content){let a=this.uri.startsWith("/")?this.uri.substring(1):this.uri;this._content=await d.zip.getFileText(a)}return this._content}async getRelationships(){let a=this.uri.replace(/\/([^\/]+)$/,"/_rels/$1.rels"),b=a.startsWith("/")?a.substring(1):a,c=await d.zip.getFileText(b);return c&&d.package&&"function"==typeof d.package.parseRelationships?d.package.parseRelationships(c):{}}}(this.package,a);this.package&&this.package.parts&&(this.package.parts[a]=e),c=e}}catch(a){}if(!c)throw Error("No presentation document found in PPTX file")}let d=await c.getDocumentContent();if(!d)throw Error("Failed to extract presentation XML content");let e="u">typeof globalThis&&globalThis.StaxParser||"u">typeof window&&window.StaxParser||null;if(!e)throw Error("StaxParser is not defined");let f=new e(d,c,b).parse();if(!f)throw Error("Failed to parse presentation XML document");if(this.presentation=this.createPresentationFromXML(f),!this.presentation)throw Error("Failed to create presentation object from XML");await this.processThemes(b,c),await this.processSlideMasters(b,c),await this.processSlides(b),await this.processImages(b),this.buildSVGRelationshipMapping()}catch(a){throw a}}createPresentationFromXML(a){try{let b="u">typeof globalThis&&globalThis.CPresentation||"u">typeof window&&window.CPresentation||null;if(!b)throw Error("CPresentation is not defined");let c=new b,d=a.documentElement;if(d){let a=d.querySelector("sldSz, p\\:sldSz");a&&(c.slideSize={cx:parseInt(a.getAttribute("cx"))||9144e3,cy:parseInt(a.getAttribute("cy"))||6858e3});let b=d.querySelector("sldMasterIdLst, p\\:sldMasterIdLst");if(b){let a=[];b.querySelectorAll("sldMasterId, p\\:sldMasterId").forEach(b=>{let c=b.getAttribute("r:id")||b.getAttribute("id");c&&a.push(c)}),c.masterIds=a}let e=d.querySelector("sldIdLst, p\\:sldIdLst");if(e){let a=[];e.querySelectorAll("sldId, p\\:sldId").forEach(b=>{let c=b.getAttribute("r:id")||b.getAttribute("id");c&&a.push(c)}),c.slideIds=a}let f=d.querySelector("defaultTextStyle, p\\:defaultTextStyle");f&&(c.defaultTextStyle=this.parseTextStyleElement(f))}return c}catch(b){let a=new CPresentation;return a.slideSize={cx:9144e3,cy:6858e3},a}}async processImages(a){try{"function"==typeof this.extractMediaMap?await this.extractMediaMap():await this.extractImageMap()}catch(a){await this.extractImageMap()}await this.preloadAllImages(),this.logImageProcessingResults()}logImageProcessingResults(){let a=[];for(let[b,c]of this.imageMap){let d=this.imageCache.has(b);a.push({relId:b,imagePath:c,cached:d})}this.zip.getPaths().filter(a=>a.startsWith("ppt/media/")&&this.isImageFile(a))}async extractMediaMap(){let a=[];for(let b of this.zip.getPaths())b.startsWith("ppt/media/")&&a.push(b);let b=[],c=this.package.getPartByRelationshipType(fg.presentation.relationType);if(c&&b.push(c),this.slides&&this.slides.length>0){let a=Object.keys(this.package.parts);for(let c of(Object.keys(this.package.relationships),a))if(c.includes("/slides/slide")&&c.endsWith(".xml")){let a=this.package.getPartByUri(c);a&&b.push(a)}}if(this.slideMasters&&this.slideMasters.length>0){for(let a of Object.keys(this.package.parts))if(a.includes("/slideMasters/slideMaster")&&a.endsWith(".xml")){let c=this.package.getPartByUri(a);c&&b.push(c)}}if(this.slideLayouts&&this.slideLayouts.length>0){for(let a of Object.keys(this.package.parts))if(a.includes("/slideLayouts/slideLayout")&&a.endsWith(".xml")){let c=this.package.getPartByUri(a);c&&b.push(c)}}for(let a of b)await this.extractPartMediaRelationships(a)}async extractImageMap(){let a=[];for(let b of this.zip.getPaths())b.startsWith("ppt/media/")&&this.isImageFile(b)&&a.push(b);for(let a of[this.package.getPartByRelationshipType(fg.presentation.relationType),...this.slides.map((a,b)=>this.package.getPartByUri(`/ppt/slides/slide${b+1}.xml`)),...this.slideMasters.map((a,b)=>this.package.getPartByUri(`/ppt/slideMasters/slideMaster${b+1}.xml`)),...this.slideLayouts.map((a,b)=>this.package.getPartByUri(`/ppt/slideLayouts/slideLayout${b+1}.xml`))].filter(a=>null!==a))await this.extractPartImageRelationships(a)}async extractPartImageRelationships(a){try{let b=await a.getRelationships();for(let[a,c]of Object.entries(b))if(c.type===fg.image.relationType){let b=c.target;b.startsWith("../")?b=b.replace("../","ppt/"):b.startsWith("/")||(b=`/ppt/${b}`),this.imageMap.set(a,b)}}catch(a){}}isImageFile(a){let b=a.toLowerCase();return[".png",".jpg",".jpeg",".gif",".bmp",".svg",".webp",".tiff"].some(a=>b.endsWith(a))}async preloadSlideImages(a){if(!this.slides[a]||!this.slides[a].commonSlideData)return;let b=this.slides[a],c=this.extractImageRelationshipsFromSlide(b).map(a=>this.loadImage(a));await Promise.allSettled(c)}async preloadAllImages(){let a=new Set;for(let b of this.slides)this.extractImageRelationshipsFromSlide(b).forEach(b=>a.add(b)),b.backgroundFill&&b.backgroundFill.fill&&"image"===b.backgroundFill.fill.type&&b.backgroundFill.fill.imageData?.relationshipId&&a.add(b.backgroundFill.fill.imageData.relationshipId);for(let b of this.slideMasters)b.cSld?.bg?.fill?.type==="image"&&b.cSld.bg.fill.imageData?.relationshipId&&a.add(b.cSld.bg.fill.imageData.relationshipId);let b=Array.from(a);for(let a=0;a<b.length;a+=5){let c=b.slice(a,a+5).map(a=>this.loadImage(a));await Promise.allSettled(c),b.length}}extractImageRelationshipsFromSlide(a){let b=[];if(a.commonSlideData&&a.commonSlideData.shapeTree)for(let c of a.commonSlideData.shapeTree)"pic"===c.type&&c.imageRelId&&b.push(c.imageRelId),"grpSp"===c.type&&c.shapeTree&&b.push(...this.extractImageRelationshipsFromShapeTree(c.shapeTree));return b}extractImageRelationshipsFromShapeTree(a){let b=[];for(let c of a)"pic"===c.type&&c.imageRelId&&b.push(c.imageRelId),"grpSp"===c.type&&c.shapeTree&&b.push(...this.extractImageRelationshipsFromShapeTree(c.shapeTree));return b}updateShapeImageRelIds(a,b,c){if(!a.commonSlideData?.shapeTree)return;let d=a=>{for(let e of a)"pic"===e.type&&e.imageRelId===b&&(e.imageRelId=c),"grpSp"===e.type&&e.shapeTree&&d(e.shapeTree)};d(a.commonSlideData.shapeTree)}async preloadAllImages(){try{let a=new Set;for(let b=0;b<this.slides.length;b++){let c=this.slides[b],d=this.extractImageRelationshipsFromSlide(c);if(0!==d.length)if(c.partUri)try{let b=this.package.getPartByUri(c.partUri);if(b){let e=await b.getRelationships(),f=c.partUri.replace(/^\//,"");for(let b of d)if(e&&e[b]){let a=e[b].target;a.startsWith("../")?a=a.replace("../","ppt/"):a.startsWith("/")||a.startsWith("ppt/")||(a=`ppt/${a}`);let d=`slide:${f}:${b}`;if(!this.imageCache.has(d))try{let b=await this.zip.getFileData(a).catch(()=>null);if(b){let c=new Blob([b],{type:this.getMimeType(a)}),e=URL.createObjectURL(c),f=await this.imageLoader.loadImageFromUrl(e);this.imageCache.set(d,{image:f,url:e,path:a,width:f.naturalWidth,height:f.naturalHeight})}}catch(a){}this.updateShapeImageRelIds(c,b,d)}else a.add(b)}else d.forEach(b=>a.add(b))}catch(b){d.forEach(b=>a.add(b))}else d.forEach(b=>a.add(b))}for(let b of this.slideLayouts){let c=b.cSld?.bg?.fill||b.commonSlideData?.backgroundFill?.fill;if(c?.type==="image"&&c.imageData?.relationshipId&&b.layoutPath){let d=c.imageData.relationshipId,e=`layout_bg:${b.layoutPath}`;try{let a=this.package.getPartByUri("/"+b.layoutPath);if(a){let b=await a.getRelationships();if(b&&b[d]){let a=b[d].target;a.startsWith("../")?a=a.replace("../","ppt/"):a.startsWith("/")||(a=`ppt/${a}`);let f=await this.zip.getFileData(a);if(f&&!this.isSVGFile(a)){let b=new Blob([f],{type:this.getMimeType(a)}),d=URL.createObjectURL(b),g=await this.imageLoader.loadImageFromUrl(d);this.imageCache.set(e,{image:g,url:d,path:a,width:g.naturalWidth,height:g.naturalHeight}),c.imageData.resolvedCacheKey=e}}}}catch(b){a.add(d)}}}for(let b of this.slideLayouts){if(!b.layoutPath)continue;let c=this.extractImageRelationshipsFromSlide(b);if(0!==c.length)try{let d=this.package.getPartByUri("/"+b.layoutPath);if(d){let e=await d.getRelationships();for(let d of c)if(e&&e[d]){let a=e[d].target;a.startsWith("../")?a=a.replace("../","ppt/"):a.startsWith("/")||a.startsWith("ppt/")||(a=`ppt/${a}`);let c=`layout:${b.layoutPath}:${d}`;if(!this.imageCache.has(c)){let b=await this.zip.getFileData(a).catch(()=>null);if(b&&!this.isSVGFile(a)){let d=new Blob([b],{type:this.getMimeType(a)}),e=URL.createObjectURL(d),f=await this.imageLoader.loadImageFromUrl(e);this.imageCache.set(c,{image:f,url:e,path:a,width:f.naturalWidth,height:f.naturalHeight})}}this.updateShapeImageRelIds(b,d,c)}else a.add(d)}else c.forEach(b=>a.add(b))}catch(b){c.forEach(b=>a.add(b))}}let b=Array.from(a).map(a=>this.loadImage(a).catch(b=>(this.logger.log("warn",this.constructor.name,`Failed to preload image ${a}:`,b),null)));(await Promise.allSettled(b)).filter(a=>"fulfilled"===a.status&&null!==a.value).length}catch(a){this.logger.logError(this.constructor.name,"Error during image preloading:",a)}}async loadImage(a){let b=this.svgRelationshipMap.get(a);if(b&&(a=b),this.imageCache.has(a))return this.imageCache.get(a);let c=this.imageMap.get(a);if(!c)return this.logger.log("warn",this.constructor.name,`No image path found for relId: ${a}`),null;if(c.startsWith("data:")){if(c.startsWith("data:image/svg+xml"))try{let b=c.split(",")[1],d=atob(b);return this.imageCache.set(a,{type:"svg",content:d,path:c,width:100,height:100}),this.imageCache.get(a)}catch(b){this.logger.logError(this.constructor.name,`Failed to decode SVG data URI for ${a}:`,b)}return null}try{let b=await this.zip.getFileData(c);if(!b)return null;let d=new Blob([b],{type:this.getMimeType(c)}),e=URL.createObjectURL(d),f=await this.imageLoader.loadImageFromUrl(e);return this.imageCache.set(a,{image:f,url:e,path:c,width:f.naturalWidth,height:f.naturalHeight}),this.imageCache.get(a)}catch(a){return null}}getMimeType(a){return({png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",bmp:"image/bmp",svg:"image/svg+xml",webp:"image/webp",tiff:"image/tiff"})[a.toLowerCase().split(".").pop()]||"image/png"}async processThemes(a,b){try{let a=await b.getRelationships();if(!a){let a=new CTheme;this.presentation.theme=a;return}let c=Object.values(a).find(a=>a.type&&a.type.includes("theme")&&a.target);if(!c){let a=new CTheme;this.presentation.theme=a;return}let d=c.target;d.startsWith("/")?d=d.substring(1):d.startsWith("../")&&(d=d.replace("../","")),d.startsWith("ppt/")||(d="ppt/"+d);let e=await this.zip.getFileText(d);if(!e){let a=new CTheme;this.presentation.theme=a;return}let f=new DOMParser().parseFromString(e,"text/xml");if("parsererror"===f.documentElement.nodeName){let a=new CTheme;this.presentation.theme=a;return}let g=this.parseThemeFromXML(f);if(g)this.presentation.theme=g;else{let a=new CTheme;this.presentation.theme=a}}catch(b){let a=new CTheme;this.presentation.theme=a}}parseThemeFromXML(a){try{let b=a.querySelector("a\\:theme, theme");if(!b)return null;let c=b.querySelector("a\\:themeElements a\\:clrScheme, themeElements clrScheme");if(!c)return null;let d=new CTheme;d.name=b.getAttribute("name")||"Default Theme",d.colors={},d.fonts={major:"Calibri",minor:"Calibri"},d.colors=this.extractEnhancedThemeColors(c),d.colors.accent6&&this.parseColorFromHex(d.colors.accent6);let e=b.querySelector("a\\:themeElements a\\:fontScheme, themeElements fontScheme");if(e){let a=e.querySelector("a\\:majorFont a\\:latin, majorFont latin"),b=e.querySelector("a\\:minorFont a\\:latin, minorFont latin");a&&(d.fonts.major=a.getAttribute("typeface")||"Calibri"),b&&(d.fonts.minor=b.getAttribute("typeface")||"Calibri")}let f=b.querySelector("a\\:themeElements a\\:fmtScheme, themeElements fmtScheme");return f?d.formatScheme=this.parseEnhancedFormatScheme(f,d.colors):d.formatScheme=this.createEnhancedDefaultFormatScheme(d.colors),d.metadata={extracted:!0,source:"pptx_file",timestamp:new Date().toISOString(),colorCount:Object.keys(d.colors).length,fillStyleCount:d.formatScheme.fillStyles?.length||0,backgroundFillCount:d.formatScheme.backgroundFills?.length||0},window.extractedTheme=d,d}catch(a){return null}}extractEnhancedThemeColors(a){let b={};try{for(let c of["dk1","lt1","dk2","lt2","accent1","accent2","accent3","accent4","accent5","accent6","hlink","folHlink","bg1","tx1","bg2","tx2"]){let d=a.querySelector(`a\\:${c}, ${c}`)||a.querySelector(`[name="${c}"]`);if(d){let a=this.extractColorFromThemeElement(d);a&&(b[c]=a)}}for(let c of a.querySelectorAll("*")){let a=c.tagName.replace("a:","");if(!b[a]&&"clrScheme"!==a&&"themeElements"!==a){let d=this.extractColorFromThemeElement(c);d&&(b[a]=d)}}b.dk1&&!b.tx1&&(b.tx1=b.dk1),b.lt1&&!b.bg1&&(b.bg1=b.lt1),b.dk2&&!b.tx2&&(b.tx2=b.dk2),b.lt2&&!b.bg2&&(b.bg2=b.lt2)}catch(a){}return b}extractColorFromThemeElement(a){try{let b=a.querySelector("a\\:srgbClr, srgbClr");if(b){let a=b.getAttribute("val");if(a&&/^[0-9A-Fa-f]{6}$/.test(a))return`#${a.toUpperCase()}`}let c=a.querySelector("a\\:sysClr, sysClr");if(c){let a=c.getAttribute("lastClr");if(a&&/^[0-9A-Fa-f]{6}$/.test(a))return`#${a.toUpperCase()}`;let b=c.getAttribute("val"),d={windowText:"#000000",window:"#FFFFFF",btnFace:"#F0F0F0",btnText:"#000000"};if(b&&d[b])return d[b]}let d=a.querySelector("a\\:hslClr, hslClr");if(d){let a=parseInt(d.getAttribute("hue")||"0"),b=parseInt(d.getAttribute("sat")||"0")/1e5,c=parseInt(d.getAttribute("lum")||"0")/1e5;return this.hslToHex(a/6e4,b,c)}let e=a.querySelector("a\\:prstClr, prstClr");if(e){let a=e.getAttribute("val"),b={black:"#000000",white:"#FFFFFF",red:"#FF0000",green:"#00FF00",blue:"#0000FF",yellow:"#FFFF00",magenta:"#FF00FF",cyan:"#00FFFF"};if(a&&b[a])return b[a]}}catch(a){}return null}hslToHex(a,b,c){let d=(a,b,c)=>(c<0&&(c+=1),c>1&&(c-=1),c<1/6)?a+(b-a)*6*c:c<.5?b:c<2/3?a+(b-a)*(2/3-c)*6:a,e=c<.5?c*(1+b):c+b-c*b,f=2*c-e,g=Math.round(255*d(f,e,a+1/3)),h=Math.round(255*d(f,e,a)),i=Math.round(255*d(f,e,a-1/3));return`#${(0x1000000+(g<<16)+(h<<8)+i).toString(16).slice(1).toUpperCase()}`}parseFormatScheme(a){let b={fillStyles:[],backgroundFills:[],lineStyles:[]};try{let c=a.querySelector("a\\:fillStyleLst, fillStyleLst");if(c){let a=c.children;for(let c=0;c<a.length;c++){let d=a[c],e=this.parseThemeFillStyle(d);e&&b.fillStyles.push(e)}}let d=a.querySelector("a\\:bgFillStyleLst, bgFillStyleLst");if(d){let a=d.children;for(let c=0;c<a.length;c++){let d=a[c],e=this.parseThemeFillStyle(d);e&&b.backgroundFills.push(e)}}let e=a.querySelector("a\\:lnStyleLst, lnStyleLst");if(e)for(let a of e.children){let c=this.parseThemeLineStyle(a);c&&b.lineStyles.push(c)}}catch(a){}return 0===b.fillStyles.length&&(b.fillStyles=this.createDefaultFormatScheme().fillStyles),0===b.backgroundFills.length&&(b.backgroundFills=this.createDefaultFormatScheme().backgroundFills),b}parseThemeFillStyle(a){try{switch(a.tagName.replace("a:","").toLowerCase()){case"solidfill":let b=this.parseFill(a);if(b&&b.color&&"placeholder"===b.color.type)return{type:"solid",color:b.color,rawElement:a.outerHTML};if(b)return b;return{type:"solid",color:{r:128,g:128,b:128,a:255},rawElement:a.outerHTML};case"gradfill":let c=this.parseFill(a);if(c&&"gradient"===c.type)return{type:"gradient",...c,rawElement:a.outerHTML};let d=a.querySelectorAll("a\\:gs, gs"),e=[];for(let a=0;a<d.length;a++){let b=d[a],c=parseFloat(b.getAttribute("pos")||"0")/1e5,f=b.querySelector("a\\:schemeClr, schemeClr, a\\:srgbClr, srgbClr, a\\:hslClr, hslClr"),g={type:"placeholder",value:"phClr"};if(f){let a=f.tagName.replace("a:","").toLowerCase();if("schemeclr"===a){let a=f.getAttribute("val")||"phClr",c=this.parseColorModifications(b),d=this.parseColorModifications(f),e=[...c,...d];g={type:"phClr"===a?"placeholder":"scheme",value:a,modifications:e}}else if("srgbclr"===a){let a=f.getAttribute("val");a&&(g=this.parseColorFromHex(`#${a}`))}}e.push({position:c,color:g})}return 0===e.length&&e.push({position:0,color:{type:"placeholder",value:"phClr"}},{position:1,color:{type:"placeholder",value:"phClr"}}),{type:"gradient",direction:"linear",angle:0,stops:e,rawElement:a.outerHTML};case"blipfill":case"pattfill":return this.parseFill(a);case"nofill":return{type:"none"};default:return{type:"solid",color:{r:128,g:128,b:128,a:255},rawElement:a.outerHTML}}}catch(b){return{type:"solid",color:{r:128,g:128,b:128,a:255},rawElement:a.outerHTML}}}parseThemeLineStyle(a){try{return this.parseStroke(a)}catch(a){return null}}parseEnhancedFormatScheme(a,b){let c={fillStyles:[],backgroundFills:[],lineStyles:[]};try{let d=a.querySelector("a\\:fillStyleLst, fillStyleLst");if(d){let a=d.children;for(let d=0;d<a.length;d++){let e=a[d],f=this.parseThemeAwareFillStyle(e,b,d);if(f)c.fillStyles.push(f);else{let a=this.createFallbackFillStyle(d,b);c.fillStyles.push(a)}}}let e=a.querySelector("a\\:bgFillStyleLst, bgFillStyleLst");if(e){let a=e.children;for(let d=0;d<a.length;d++){let e=a[d],f=this.parseThemeAwareFillStyle(e,b,d);if(f)c.backgroundFills.push(f);else{let a=this.createFallbackBackgroundFillStyle(d,b);c.backgroundFills.push(a)}}}}catch(a){}return this.ensureMinimumFormatSchemeStyles(c,b),c}parseThemeAwareFillStyle(a,b,c){try{let d=a.tagName.replace("a:","").toLowerCase();if("solidfill"===d)return this.parseThemeAwareSolidFill(a,b,c);if("gradfill"===d)return this.parseThemeAwareGradientFill(a,b,c);if("nofill"===d)return{type:"none",index:c};let e=this.parseThemeFillStyle(a);if(e)return e.index=c,e;return null}catch(a){return null}}parseThemeAwareSolidFill(a,b,c){let d={type:"solid",index:c,color:null};try{let e=a.querySelector("a\\:schemeClr, schemeClr");if(e){let a=e.getAttribute("val");if(a&&b[a]){d.color=this.parseColorFromHex(b[a]);let c=this.parseColorModifications(e);return c.length>0&&(d.color=this.applyColorModifications(d.color,c)),d.scheme=a,d.modifications=c,d}}let f=a.querySelector("a\\:srgbClr, srgbClr");if(f){let a=f.getAttribute("val");if(a)return d.color=this.parseColorFromHex(`#${a}`),d}d.color=this.getDefaultColorForIndex(c,b),d.isDefault=!0}catch(a){d.color=this.getDefaultColorForIndex(c,b),d.isDefault=!0}return d}parseThemeAwareGradientFill(a,b,c){let d={type:"gradient",index:c,gradient:{type:"linear",stops:[]}};try{let c=a.querySelectorAll("a\\:gs, gs");for(let a=0;a<c.length;a++){let e=c[a],f={position:parseFloat(e.getAttribute("pos")||"0")/1e5,color:null},g=e.querySelector("a\\:schemeClr, schemeClr");if(g){let a=g.getAttribute("val");if(a&&b[a]){f.color=this.parseColorFromHex(b[a]);let c=this.parseColorModifications(g);c.length>0&&(f.color=this.applyColorModifications(f.color,c))}}if(!f.color){let a=e.querySelector("a\\:srgbClr, srgbClr");if(a){let b=a.getAttribute("val");b&&(f.color=this.parseColorFromHex(`#${b}`))}}f.color||(f.color=this.getDefaultColorForIndex(a,b)),d.gradient.stops.push(f)}let e=a.querySelector("a\\:lin, lin");if(e){let a=parseInt(e.getAttribute("ang")||"0");d.gradient.angle=a/6e4}return d}catch(a){return{type:"solid",index:c,color:this.getDefaultColorForIndex(c,b),isDefault:!0}}}getDefaultColorForIndex(a,b){let c=["accent1","accent2","accent3","accent4","accent5","accent6"],d=c[a%c.length];return b&&b[d]?this.parseColorFromHex(b[d]):null}ensureMinimumFormatSchemeStyles(a,b){for(;a.fillStyles.length<6;){let c=a.fillStyles.length,d=this.createFallbackFillStyle(c,b);a.fillStyles.push(d)}for(;a.backgroundFills.length<3;){let c=a.backgroundFills.length,d=this.createFallbackBackgroundFillStyle(c,b);a.backgroundFills.push(d)}}createFallbackFillStyle(a,b){return{type:"solid",index:a,color:this.getDefaultColorForIndex(a,b),isDefault:!0}}createFallbackBackgroundFillStyle(a,b){let c=[b?.bg1?this.parseColorFromHex(b.bg1):{r:255,g:255,b:255,a:255},b?.bg2?this.parseColorFromHex(b.bg2):{r:245,g:245,b:245,a:255},{r:220,g:220,b:220,a:255}];return{type:"solid",index:a,color:c[a%c.length],isDefault:!0}}createEnhancedDefaultFormatScheme(a){let b={fillStyles:[],backgroundFills:[],lineStyles:[]};for(let c=0;c<6;c++)b.fillStyles.push(this.createFallbackFillStyle(c,a));for(let c=0;c<3;c++)b.backgroundFills.push(this.createFallbackBackgroundFillStyle(c,a));return b}createDefaultFormatScheme(){return{fillStyles:[],backgroundFills:[],lineStyles:[]}}async processSlideMasters(a,b){let c=this.presentation.masterIds||[],d=await b.getRelationships();for(let b of c){let c=d[b];if(c&&c.target){let b=c.target;b.startsWith("/")?b=b.substring(1):b.startsWith("../")&&(b=b.replace("../","")),b.startsWith("ppt/")||(b="ppt/"+b);let d=this.package.getPartByUri("/"+b);if(d){let b=await d.getDocumentContent();if(b){let c=new StaxParser(b,d,a).parse();if(c){let b=this.createSlideMasterFromXML(c,d);b&&(this.slideMasters.push(b),this.presentation.addSlideMaster(b),await this.processSlideLayouts(a,b,d))}}}}}}async processSlideLayouts(a,b,c){for(let[d,e]of Object.entries(await c.getRelationships()))if(e.type===fg.slideLayout.relationType){let c=e.target;c.startsWith("/")?c=c.substring(1):c.startsWith("../")&&(c=c.replace("../","")),c.startsWith("ppt/")||(c="ppt/"+c);let f=this.package.getPartByUri("/"+c);if(f){let g=await f.getDocumentContent();if(g){let h=new StaxParser(g,f,a).parse();if(h){let a=this.createSlideLayoutFromXML(h,b.id,d,e.target,c);a&&(this.slideLayouts.push(a),b.addLayout(a))}}}}}createSlideMasterFromXML(a,b){let c=a.documentElement,d=b.uri||"master_"+this.slideMasters.length,e=new CSlideMaster;e.id=d,e.name=c.getAttribute("name")||`Master ${this.slideMasters.length+1}`,e.layoutIds=[];let f=a.querySelector("sldLayoutIdLst, p\\:sldLayoutIdLst");f&&f.querySelectorAll("sldLayoutId, p\\:sldLayoutId").forEach(a=>{let b=a.getAttribute("r:id");b&&e.layoutIds.push(b)});let g=a.querySelector("cSld, p\\:cSld");g&&(e.cSld={name:g.getAttribute("name")||"",bg:this.parseBackground(g),spTree:this.processShapeTree(g.querySelector("spTree, p\\:spTree"))},e.commonSlideData=new CSld,e.commonSlideData.name=e.cSld.name,e.commonSlideData.backgroundFill=e.cSld.bg,e.commonSlideData.shapeTree=e.cSld.spTree);let h=a.querySelector("txStyles, p\\:txStyles");h&&(e.txStyles={titleStyle:this.parseTextStyleElement(h.querySelector("titleStyle, p\\:titleStyle")),bodyStyle:this.parseTextStyleElement(h.querySelector("bodyStyle, p\\:bodyStyle")),otherStyle:this.parseTextStyleElement(h.querySelector("otherStyle, p\\:otherStyle"))});let i=a.querySelector("clrMap, p\\:clrMap");return i&&(e.clrMap=this.parseColorMapElement(i)),this.xmlParser.registerSlideMaster(e.id,e),e}createSlideLayoutFromXML(a,b,c=null,d=null,e=null){let f=a.documentElement,g=c||`layout_${this.slideLayouts.length}`,h=new CSlideLayout;h.id=g,h.relId=c,h.relTarget=d,h.layoutPath=e,h.uri=d,h.masterId=b,h.name=f.getAttribute("name")||`Layout ${this.slideLayouts.length+1}`,h.type=f.getAttribute("type")||"blank",h.matchingName=f.getAttribute("matchingName")||"",h.preserve="true"===f.getAttribute("preserve"),h.showMasterSp="false"!==f.getAttribute("showMasterSp"),h.showMasterPhAnim="true"===f.getAttribute("showMasterPhAnim"),h.userDrawn="false"!==f.getAttribute("userDrawn"),"blank"===h.type?h.layoutType=this.inferLayoutTypeFromPlaceholders(f):h.layoutType=h.type;let i=a.querySelector("cSld, p\\:cSld");if(i){let a=i.querySelector("spTree, p\\:spTree"),b=this.processShapeTree(a);h.cSld={name:i.getAttribute("name")||"",bg:this.parseBackground(i),spTree:b},h.commonSlideData=new CSld,h.commonSlideData.name=h.cSld.name,h.commonSlideData.backgroundFill=h.cSld.bg,h.commonSlideData.shapeTree=h.cSld.spTree}let j=a.querySelector("txStyles, p\\:txStyles");j&&(h.txStyles={titleStyle:this.parseTextStyleElement(j.querySelector("titleStyle, p\\:titleStyle")),bodyStyle:this.parseTextStyleElement(j.querySelector("bodyStyle, p\\:bodyStyle")),otherStyle:this.parseTextStyleElement(j.querySelector("otherStyle, p\\:otherStyle"))});let k=a.querySelector("clrMapOvr, p\\:clrMapOvr");return k&&(h.clrMapOvr=this.parseColorMapOverride(k)),this.xmlParser.registerSlideLayout(h.id,h,b),h}async processSlides(a){let b=await this.package.getPartByRelationshipType(fg.presentation.relationType).getRelationships(),c=[];for(let[a,d]of Object.entries(b))d.type===fg.slide.relationType&&c.push({id:a,target:d.target});if(0===c.length)return;let d=c;try{let a=this.presentation&&Array.isArray(this.presentation.slideIds)?this.presentation.slideIds:[];if(a&&a.length>0){let b=new Map(c.map(a=>[a.id,a])),e=[];for(let c of a){let a=b.get(c);a&&(e.push(a),b.delete(c))}if(b.size>0)for(let a of b.values())e.push(a);e.length>0&&(d=e)}}catch(a){}for(let b=0;b<d.length;b++)try{let c=d[b].target;c.startsWith("/")?c=c.substring(1):c.startsWith("../")&&(c=c.replace("../","")),c.startsWith("ppt/")||(c="ppt/"+c);let e="/"+c,f=this.package.getPartByUri(e);if(!f)continue;await this.processSlidePart(f,a,b)}catch(a){}}createSlideFromXML(a){try{let b=new CSlide;this.currentSlide=b;let c=a.querySelector("cSld, p\\:cSld");if(c){b.commonSlideData=new CSld;let a=c.querySelector("spTree, p\\:spTree");if(a){let c=this.processShapeTree(a);b.commonSlideData.shapeTree=c}c.querySelector("bg, p\\:bg")&&(b.backgroundFill=this.parseBackground(c))}let d=a.documentElement;if(d){b.showMasterShapes="0"!==d.getAttribute("showMasterSp");let a=d.querySelector("name, p\\:name");a&&(b.name=a.textContent||"")}return b}catch(b){let a=new CSlide;return a.commonSlideData=new CSld,a.commonSlideData.shapeTree=[],a}}async processSlidePart(a,b,c){let d=await a.getDocumentContent();if(!d)return;let e=new StaxParser(d,a,b).parse();if(!e)return;let f=this.createSlideFromXML(e);f&&(f.partUri=a.uri,await this.linkSlideToLayoutAndMaster(f,a,b,c),this.slides.push(f),this.presentation.addSlide(f))}async linkSlideToLayoutAndMaster(a,b,c,d){try{let c=await b.getRelationships();for(let[b,d]of Object.entries(c))if(d.type===fg.slideLayout.relationType){let c=this.slideLayouts.find(a=>{if(d.target&&a.relTarget){let b=d.target.split("/").pop(),c=a.relTarget.split("/").pop();if(b===c)return!0}return!1});if(c||(c=this.slideLayouts.find(a=>a.uri===d.target)),c||(c=this.slideLayouts.find(a=>{if(d.target&&a.relTarget){let b=a=>a.replace(/^\.\.\//,"").replace(/^\//,"");if(b(d.target)===b(a.relTarget))return!0}return!1})),c||(c=this.slideLayouts.find(a=>a.relId===b)),c){a.layout=c,a.Layout=c;let b=this.slideMasters.find(a=>a.id===c.masterId);b&&(a.master=b,a.Master=b,c.master=b,c.Master=b);break}}!a.layout&&this.slideLayouts.length>0?(a.layout=this.slideLayouts[0],a.Layout=this.slideLayouts[0]):a.layout}catch(a){}}processShapeTree(a){let b=[];try{if(!a)return b;let c=a.children;for(let a=0;a<c.length;a++)try{let d=c[a],e=this.processShapeElement(d);e&&b.push(e)}catch(a){}}catch(a){}return b}processShapeElement(a){try{if(!a)return null;let b=a.localName||a.tagName?.toLowerCase(),c=null;switch(b){case"sp":case"p:sp":c=this.processRegularShape(a);break;case"pic":case"p:pic":c=this.processPictureShape(a);break;case"grpsp":case"grpSp":case"p:grpSp":case"p:grpsp":c=this.processGroupShape(a);break;case"cxnsp":case"cxnSp":case"p:cxnSp":case"p:cxnsp":c=this.processConnectorShape(a);break;case"graphicframe":case"graphicFrame":case"p:graphicFrame":case"p:graphicframe":c=this.processGraphicFrame(a);break;default:let d=["nvsppr","p:nvsppr","nvpicpr","p:nvpicpr","nvgrpsppr","p:nvgrpsppr","nvGrpSpPr","p:nvGrpSpPr","nvpr","p:nvpr","cnvpr","p:cnvpr","cnvsppr","p:cnvsppr","style","p:style","txstyles","p:txstyles","extlst","p:extlst","ext","p:ext","grpsppr","p:grpsppr","grpSpPr","p:grpSpPr","sppr","p:sppr","picpr","p:picpr","cxnsppr","p:cxnsppr"];if(d.includes(b)||d.includes(b.toLowerCase()))return null;c=this.processDefaultShape(a)}if(c){c.id=a.getAttribute("id")||Math.random().toString(36).substr(2,9),c.name=this.getShapeName(a)||`Shape_${c.id}`,("Rectangle 3"===c.name||c.name?.includes("Rectangle 3"))&&a.querySelectorAll("p\\:style, style").forEach((a,b)=>{a.querySelector("a\\:fillRef, fillRef")});let b=a.querySelector("spPr, p\\:spPr");if(b){let a=this.processShapeProperties(b);a.transform&&!c.properties?.transform&&(c.properties=c.properties||{},c.properties.transform=a.transform,c.bounds&&(0!==c.bounds.l||0!==c.bounds.t||0!==c.bounds.r||0!==c.bounds.b)||(c.bounds={l:a.transform.x||0,t:a.transform.y||0,r:(a.transform.x||0)+(a.transform.cx||a.transform.width||0),b:(a.transform.y||0)+(a.transform.cy||a.transform.height||0)})),a.fill&&!c.fill&&(c.fill=a.fill),a.stroke&&!c.stroke&&(c.stroke=a.stroke),a.geometry&&!c.geometry&&(c.geometry=a.geometry),c.spPr||(c.spPr=a),a.effectLst&&(c.effects=a.effectLst),c.style||c.preservedStyle}let d=a.querySelector("txBody, p\\:txBody");d&&(c.textBody=this.processTextBody(d))}return c}catch(a){return{type:"unknown",id:Math.random().toString(36).substr(2,9),name:"Unknown Shape",bounds:{l:914400,t:914400,r:5486400,b:2743200}}}}processRegularShape(a){let b=new CShape;b.type="sp",b.name=this.getShapeName(a);let c=a.querySelector("nvSpPr, p\\:nvSpPr"),d=c?.querySelector("cNvPr, p\\:cNvPr");if(b.id=d?.getAttribute("id")||a.getAttribute("id")||null,d){Array.from(d.attributes).map(a=>`${a.name}="${a.value}"`);let a=d.getAttribute("order")||d.getAttribute("z-order")||d.getAttribute("zOrder")||d.getAttribute("drawOrder");a&&(b.order=parseInt(a))}let e=a.getAttribute("order")||a.getAttribute("z-order")||a.getAttribute("zOrder")||a.getAttribute("drawOrder");e&&(b.order=parseInt(e));try{if(c){b.nvSpPr={cNvPr:null,nvPr:null},d&&(b.name=d.getAttribute("name")||b.name,b.nvSpPr.cNvPr={name:b.name,id:b.id});let a=c.querySelector("nvPr, p\\:nvPr");if(a){let c=a.querySelector("ph, p\\:ph");c&&(b.placeholder=this.parsePlaceholder(c),b.isPlaceholder=!0),b.nvSpPr.nvPr={placeholder:b.placeholder}}}b.type="sp";let e=a.querySelector("spPr, p\\:spPr");if(e){let a=this.processShapeProperties(e);b.properties=a,b.spPr=a,a.effectLst&&(b.effects=a.effectLst),a.transform?b.bounds={l:a.transform.x||0,t:a.transform.y||0,r:(a.transform.x||0)+(a.transform.cx||a.transform.width||0),b:(a.transform.y||0)+(a.transform.cy||a.transform.height||0)}:b.bounds={l:914400,t:914400,r:5486400,b:2743200},void 0!==a.fill&&(b.fill=a.fill),a.stroke&&(b.stroke=a.stroke);let c=e.querySelector("prstGeom, a\\:prstGeom");if(c){let a=c.getAttribute("prst")||"rect",d={},e=c.querySelector("avLst, a\\:avLst");e&&e.querySelectorAll("gd, a\\:gd").forEach(a=>{let b=a.getAttribute("name"),c=(a.getAttribute("fmla")||"").match(/^val\s+(-?\d+)$/);b&&c&&(d[b]=parseInt(c[1]))}),b.geometry={type:"preset",preset:a,adjustments:d}}let d=e.querySelector("custGeom, a\\:custGeom");d&&(b.geometry={type:"custom",pathList:this.parseCustomGeometry(d)})}else b.bounds={l:914400,t:914400,r:5486400,b:2743200};let f=a.querySelector("txBody, p\\:txBody");if(f&&(b.textBody=this.processTextBody(f),b.textBody&&b.textBody.paragraphs)){for(let a of b.textBody.paragraphs)for(let b of a.runs)b.text&&b.text.trim()&&b.text}let g=!1,h=a.querySelector("style, p\\:style");if(h&&(b.style=this.parseShapeStyle(h),b.preservedStyle=b.style,g=!0),!g&&window.currentSlideData&&window.currentSlideData.rawXMLShapes){let a=window.currentSlideData.rawXMLShapes.find(a=>a.name===b.name||a.id===b.id);a&&a.style&&(b.style=a.style,b.preservedStyle=a.style,g=!0)}if(!g){let c=this.extractStyleFromElement(a);c&&Object.keys(c).length>0&&(b.style=c,b.preservedStyle=c,g=!0)}if(g){window.currentSlideData=window.currentSlideData||{},window.currentSlideData.rawXMLShapes=window.currentSlideData.rawXMLShapes||[];let a=window.currentSlideData.rawXMLShapes.findIndex(a=>a.name===b.name||a.id===b.id);-1===a&&window.currentSlideData.rawXMLShapes.push({name:b.name,id:b.id,styleElement:h,style:b.style,hasStyle:!0})}else window.currentSlideData=window.currentSlideData||{},window.currentSlideData.rawXMLShapes=window.currentSlideData.rawXMLShapes||[],window.currentSlideData.rawXMLShapes.push({name:b.name,id:b.id,xmlElement:a,innerHTML:a.innerHTML.substring(0,500),hasStyle:!1})}catch(a){}return this.applyPropertyInheritance(b),b}processPictureShape(a){let b=new CShape;b.type="pic";let c=!1,d=a.querySelector("style, p\\:style");if(d&&(b.style=this.parseShapeStyle(d),b.preservedStyle=b.style,c=!0),!c&&window.currentSlideData&&window.currentSlideData.rawXMLShapes){let a=window.currentSlideData.rawXMLShapes.find(a=>a.name===b.name||a.id===b.id);a&&a.style&&(b.style=a.style,b.preservedStyle=a.style,c=!0)}if(!c){let d=this.extractStyleFromElement(a);d&&Object.keys(d).length>0&&(b.style=d,b.preservedStyle=d,c=!0)}let e=a.querySelector("spPr, p\\:spPr");if(e){let a=this.processShapeProperties(e);b.properties=a,a.transform?b.bounds={l:a.transform.x||0,t:a.transform.y||0,r:(a.transform.x||0)+(a.transform.cx||a.transform.width||0),b:(a.transform.y||0)+(a.transform.cy||a.transform.height||0)}:b.bounds={l:914400,t:914400,r:5486400,b:2743200}}else b.bounds={l:914400,t:914400,r:5486400,b:2743200};let f=a.querySelector("blipFill, p\\:blipFill");if(f){let a=f.querySelector("blip, a\\:blip");if(a){let c=this.extractSVGRelationshipId(a);if(c)b.imageRelId=c,b.hasSVGAlternative=!0;else{let c=a.getAttribute("r:embed");c&&(b.imageRelId=c)}let d=a.querySelector("effects, a\\:effects");d&&(b.imageEffects=this.parseImageEffects(d))}let c=f.querySelector("stretch, a\\:stretch"),d=f.querySelector("tile, a\\:tile");if(c){b.imageFillMode="stretch";let a=c.querySelector("fillRect, a\\:fillRect");a&&(b.imageFillRect={l:parseInt(a.getAttribute("l"))||0,t:parseInt(a.getAttribute("t"))||0,r:parseInt(a.getAttribute("r"))||0,b:parseInt(a.getAttribute("b"))||0})}else d?(b.imageFillMode="tile",b.imageTileProperties={tx:parseInt(d.getAttribute("tx"))||0,ty:parseInt(d.getAttribute("ty"))||0,sx:parseInt(d.getAttribute("sx"))||1e5,sy:parseInt(d.getAttribute("sy"))||1e5,flip:d.getAttribute("flip")||"none",algn:d.getAttribute("algn")||"tl"}):b.imageFillMode="stretch";let e=f.querySelector("srcRect, a\\:srcRect");e&&(b.imageSrcRect={l:parseInt(e.getAttribute("l")||"0"),t:parseInt(e.getAttribute("t")||"0"),r:parseInt(e.getAttribute("r")||"0"),b:parseInt(e.getAttribute("b")||"0")})}return b.name=this.getShapeName(a),this.applyPropertyInheritance(b),b}parseImageEffects(a){let b={},c=a.querySelector("alphaMod, a\\:alphaMod");c&&(b.alpha=parseInt(c.getAttribute("val"))/1e5);let d=a.querySelector("lum, a\\:lum");d&&(b.brightness=parseInt(d.getAttribute("bright"))||0,b.contrast=parseInt(d.getAttribute("contrast"))||0);let e=a.querySelector("clrMod, a\\:clrMod");return e&&(b.colorMod=e.getAttribute("val")),a.querySelector("grayscl, a\\:grayscl")&&(b.grayscale=!0),b}parseEffectList(a){let b={},c=a.querySelector("outerShdw, a\\:outerShdw");c&&(b.outerShadow=this.parseOuterShadow(c));let d=a.querySelector("innerShdw, a\\:innerShdw");d&&(b.innerShadow=this.parseInnerShadow(d));let e=a.querySelector("glow, a\\:glow");e&&(b.glow=this.parseGlow(e));let f=a.querySelector("reflection, a\\:reflection");f&&(b.reflection=this.parseReflection(f));let g=a.querySelector("softEdge, a\\:softEdge");g&&(b.softEdge=this.parseSoftEdge(g));let h=a.querySelector("prstShdw, a\\:prstShdw");return h&&(b.presetShadow=this.parsePresetShadow(h)),b}parseOuterShadow(a){let b={};b.blurRadius=parseInt(a.getAttribute("blurRad"))||0,b.distance=parseInt(a.getAttribute("dist"))||0,b.direction=parseInt(a.getAttribute("dir"))||0,b.scaleX=parseInt(a.getAttribute("sx"))/1e5||1,b.scaleY=parseInt(a.getAttribute("sy"))/1e5||1,b.skewX=parseInt(a.getAttribute("kx"))||0,b.skewY=parseInt(a.getAttribute("ky"))||0,b.alignment=a.getAttribute("algn")||"bl",b.rotateWithShape="1"===a.getAttribute("rotWithShape");let c=a.querySelector("srgbClr, a\\:srgbClr, schemeClr, a\\:schemeClr");return c&&(b.color=this.parseColor(c)),b}parseInnerShadow(a){let b={};b.blurRadius=parseInt(a.getAttribute("blurRad"))||0,b.distance=parseInt(a.getAttribute("dist"))||0,b.direction=parseInt(a.getAttribute("dir"))||0;let c=a.querySelector("srgbClr, a\\:srgbClr, schemeClr, a\\:schemeClr");return c&&(b.color=this.parseColor(c)),b}parseGlow(a){let b={};b.radius=parseInt(a.getAttribute("rad"))||0;let c=a.querySelector("srgbClr, a\\:srgbClr, schemeClr, a\\:schemeClr");return c&&(b.color=this.parseColor(c)),b}parseReflection(a){let b={};return b.blurRadius=parseInt(a.getAttribute("blurRad"))||0,b.startOpacity=parseInt(a.getAttribute("stA"))/1e5||1,b.endOpacity=parseInt(a.getAttribute("endA"))/1e5||0,b.distance=parseInt(a.getAttribute("dist"))||0,b.direction=parseInt(a.getAttribute("dir"))||0,b.fadeDirection=parseInt(a.getAttribute("fadeDir"))||0,b.scaleX=parseInt(a.getAttribute("sx"))/1e5||1,b.scaleY=parseInt(a.getAttribute("sy"))/1e5||1,b.skewX=parseInt(a.getAttribute("kx"))||0,b.skewY=parseInt(a.getAttribute("ky"))||0,b.alignment=a.getAttribute("algn")||"bl",b}parseSoftEdge(a){let b={};return b.radius=parseInt(a.getAttribute("rad"))||0,b}parsePresetShadow(a){let b={};return b.preset=a.getAttribute("prst")||"shdw1",b.distance=parseInt(a.getAttribute("dist"))||0,b.direction=parseInt(a.getAttribute("dir"))||0,b}parseColor(a){let b={};a.tagName.includes("srgbClr")?(b.type="srgb",b.value=a.getAttribute("val")||"000000"):a.tagName.includes("schemeClr")&&(b.type="scheme",b.value=a.getAttribute("val")||"dk1");let c=a.querySelector("alpha, a\\:alpha");return c?b.alpha=parseInt(c.getAttribute("val"))/1e5||1:b.alpha=1,b}processGroupShape(a){let b=new CShape;b.type="grpSp",b.name=this.getShapeName(a),b.id=a.getAttribute("id")||Math.random().toString(36).substr(2,9),b.shapeTree=[],b.groupCoordSystem={chOff:{x:0,y:0},chExt:{cx:0,cy:0},groupOff:{x:0,y:0},groupExt:{cx:0,cy:0}},this.applyComprehensiveStyleExtraction(b,a,"group");let c=a.querySelector("grpSpPr, p\\:grpSpPr");c&&this.processGroupProperties(c,b);let d=a.querySelector("spTree, p\\:spTree");if(d)b.shapeTree=this.processShapeTreeInGroup(d,b);else{let c=a.children;for(let a=0;a<c.length;a++){let d=c[a],e=d.tagName.toLowerCase();if("sp"===e||"p:sp"===e||"pic"===e||"p:pic"===e||"grpsp"===e||"p:grpsp"===e||"cxnsp"===e||"p:cxnsp"===e)try{let a=this.processShapeElement(d);a&&(a.inGroup=!0,a.parentGroup=b,this.transformChildShapeCoordinates(a,b),b.shapeTree.push(a))}catch(a){}}}return b.bounds||this.calculateGroupBounds(b),this.applyPropertyInheritance(b),b}processGroupProperties(a,b){let c=a.querySelector("xfrm, a\\:xfrm");if(c){let a=this.processGroupTransform(c);b.transform=a,b.groupCoordSystem=a.groupCoordSystem,a.groupOff&&a.groupExt&&(b.bounds={l:a.groupOff.x,t:a.groupOff.y,r:a.groupOff.x+a.groupExt.cx,b:a.groupOff.y+a.groupExt.cy})}let d=this.processShapeProperties(a);d.fill&&(b.fill=d.fill),d.stroke&&(b.stroke=d.stroke)}processGroupTransform(a){let b={rotation:0,flipH:!1,flipV:!1,groupOff:{x:0,y:0},groupExt:{cx:0,cy:0},groupCoordSystem:{chOff:{x:0,y:0},chExt:{cx:0,cy:0},groupOff:{x:0,y:0},groupExt:{cx:0,cy:0}}},c=a.getAttribute("rot");c&&(b.rotation=parseInt(c)/6e4),b.flipH="1"===a.getAttribute("flipH")||"true"===a.getAttribute("flipH"),b.flipV="1"===a.getAttribute("flipV")||"true"===a.getAttribute("flipV");let d=a.querySelector("off, a\\:off");d&&(b.groupOff.x=parseInt(d.getAttribute("x"))||0,b.groupOff.y=parseInt(d.getAttribute("y"))||0);let e=a.querySelector("ext, a\\:ext");e&&(b.groupExt.cx=parseInt(e.getAttribute("cx"))||0,b.groupExt.cy=parseInt(e.getAttribute("cy"))||0);let f=a.querySelector("chOff, a\\:chOff");f&&(b.groupCoordSystem.chOff.x=parseInt(f.getAttribute("x"))||0,b.groupCoordSystem.chOff.y=parseInt(f.getAttribute("y"))||0);let g=a.querySelector("chExt, a\\:chExt");return g&&(b.groupCoordSystem.chExt.cx=parseInt(g.getAttribute("cx"))||0,b.groupCoordSystem.chExt.cy=parseInt(g.getAttribute("cy"))||0),b.groupCoordSystem.groupOff={...b.groupOff},b.groupCoordSystem.groupExt={...b.groupExt},b}processShapeTreeInGroup(a,b){let c=[];try{if(!a)return c;let d=a.children;for(let a=0;a<d.length;a++)try{let e=d[a],f=this.processShapeElement(e);f&&(f.inGroup=!0,f.parentGroup=b,this.transformChildShapeCoordinates(f,b),c.push(f))}catch(a){}}catch(a){}return c}transformChildShapeCoordinates(a,b){if(!a.bounds||!b.groupCoordSystem)return;let c=b.groupCoordSystem,d=a.bounds,e=1,f=1;c.chExt.cx>0&&c.groupExt.cx>0&&(e=c.groupExt.cx/c.chExt.cx),c.chExt.cy>0&&c.groupExt.cy>0&&(f=c.groupExt.cy/c.chExt.cy);let g={l:c.groupOff.x+(d.l-c.chOff.x)*e,t:c.groupOff.y+(d.t-c.chOff.y)*f,r:c.groupOff.x+(d.r-c.chOff.x)*e,b:c.groupOff.y+(d.b-c.chOff.y)*f};a.originalBounds={...d},a.bounds=g,a.groupTransform={scaleX:e,scaleY:f,offsetX:c.groupOff.x-c.chOff.x*e,offsetY:c.groupOff.y-c.chOff.y*f}}calculateGroupBounds(a){if(!a.shapeTree||0===a.shapeTree.length){a.bounds={l:914400,t:914400,r:5486400,b:2743200};return}let b=1/0,c=1/0,d=-1/0,e=-1/0,f=!1;for(let g of a.shapeTree)g.bounds&&(b=Math.min(b,g.bounds.l),c=Math.min(c,g.bounds.t),d=Math.max(d,g.bounds.r),e=Math.max(e,g.bounds.b),f=!0);f?a.bounds={l:b,t:c,r:d,b:e}:a.bounds={l:914400,t:914400,r:5486400,b:2743200}}processConnectorShape(a){let b=new CShape;b.type="cxnSp",this.applyComprehensiveStyleExtraction(b,a,"connector");try{let b=a.getAttribute("id")||a.getAttribute("r:id");this.logger?.log("info",this.constructor.name,"[Connector Parse] start",{id:b})}catch(a){}let c=a.querySelector("spPr, p\\:spPr");if(c){let a=this.processShapeProperties(c);b.properties=a,a&&a.stroke&&(b.properties.line||(b.properties.line=a.stroke),b.stroke||(b.stroke=a.stroke)),a&&a.transform&&(b.transform=Object.assign(b.transform||{},a.transform));try{let a=c.querySelector("a\\:ln, ln, p\\:ln");if(a){let c=this.parseStroke(a);b.properties=b.properties||{},b.properties.stroke=c,b.properties.line=c,b.stroke=c,b.spPr=b.spPr||{},b.spPr.ln=Object.assign({},c)}}catch(a){}if(a.geometry&&(b.geometry=a.geometry),a.transform){b.bounds={l:a.transform.x||0,t:a.transform.y||0,r:(a.transform.x||0)+(a.transform.cx||a.transform.width||0),b:(a.transform.y||0)+(a.transform.cy||a.transform.height||0)};try{this.logger?.log("info",this.constructor.name,"[Connector Parse] bounds from transform",{bounds:b.bounds,transform:a.transform})}catch(a){}}else{b.bounds={l:914400,t:914400,r:5486400,b:2743200};try{this.logger?.log("warn",this.constructor.name,"[Connector Parse] no transform, using fallback bounds")}catch(a){}try{console.warn("[Connector Parse] no transform; using fallback bounds",b.bounds)}catch(a){}}}else{b.bounds={l:914400,t:914400,r:5486400,b:2743200};try{this.logger?.log("warn",this.constructor.name,"[Connector Parse] no spPr found, using fallback bounds")}catch(a){}try{console.warn("[Connector Parse] no spPr; using fallback bounds",b.bounds)}catch(a){}}this.applyPropertyInheritance(b);try{this.getShapeStrokeColor(b),this.getShapeLineWidth(b),this.getShapeStrokeInfo(b)}catch(a){}return b}processGraphicFrame(a){let b=new CShape;b.type="graphicFrame",this.applyComprehensiveStyleExtraction(b,a,"graphic frame");let c=a.querySelector("spPr, p\\:spPr");if(c){let a=this.processShapeProperties(c);if(a.transform){let c=a.transform.x||0,d=a.transform.y||0,e=a.transform.cx||a.transform.width||0,f=a.transform.cy||a.transform.height||0;b.bounds={l:c,t:d,r:c+e,b:d+f},b.x=c,b.y=d,b.w=e,b.h=f,b.properties||(b.properties={}),b.properties.transform={x:c,y:d,width:e,height:f,cx:e,cy:f}}else b.bounds={l:914400,t:914400,r:5486400,b:2743200},b.x=914400,b.y=914400,b.w=4572e3,b.h=1828800}else{let c=a.querySelector("xfrm, p\\:xfrm");if(c){let d=c.querySelector("off, p\\:off"),e=c.querySelector("ext, p\\:ext");if(d&&e){let c=parseInt(d.getAttribute("x"))||0,f=parseInt(d.getAttribute("y"))||0,g=parseInt(e.getAttribute("cx")),h=parseInt(e.getAttribute("cy")),i=Number.isFinite(g)&&g>=0?g:914400,j=Number.isFinite(h)&&h>=0?h:914400;if(b.bounds={l:c,t:f,r:c+i,b:f+j},b.x=c,b.y=f,b.w=i,b.h=j,b.properties||(b.properties={}),b.properties.transform={x:c,y:f,width:i,height:j,cx:i,cy:j},0===c&&0===f||i<=1e5&&j<=1e5){let d=a.parentElement;for(;d&&d.tagName;){let a=d.querySelector("xfrm, p\\:xfrm");if(a){let c=a.querySelector("off, p\\:off"),d=a.querySelector("ext, p\\:ext");if(c&&d){let a=parseInt(c.getAttribute("x"))||0,e=parseInt(c.getAttribute("y"))||0,f=parseInt(d.getAttribute("cx"))||0,g=parseInt(d.getAttribute("cy"))||0;if(f>1e5&&g>1e5){b.bounds={l:a,t:e,r:a+f,b:e+g},b.x=a,b.y=e,b.w=f,b.h=g,b.properties||(b.properties={}),b.properties.transform={x:a,y:e,width:f,height:g,cx:f,cy:g};break}}}d=d.parentElement}b.bounds&&b.x===c&&b.y}}else b.bounds={l:914400,t:914400,r:5486400,b:2743200},b.x=914400,b.y=914400,b.w=4572e3,b.h=1828800}else b.bounds={l:914400,t:914400,r:5486400,b:2743200},b.x=914400,b.y=914400,b.w=4572e3,b.h=1828800}let d=a.querySelector("graphic");if(d||(d=a.querySelector("p\\:graphic")),d||(d=a.querySelector("a\\:graphic")),d||(d=Array.from(a.children).find(a=>a.tagName.toLowerCase().includes("graphic"))),d){let c=d.querySelector("graphicData");if(c||(c=d.querySelector("p\\:graphicData")),c||(c=d.querySelector("a\\:graphicData")),c||(c=Array.from(d.children).find(a=>a.tagName.toLowerCase().includes("graphicdata"))),c){let d=c.getAttribute("uri");if(b.graphicData={uri:d},"http://schemas.openxmlformats.org/drawingml/2006/table"===d){let a=c.querySelector("tbl");a||(a=c.querySelector("a\\:tbl")),a||(a=Array.from(c.children).find(a=>a.tagName.toLowerCase().includes("tbl"))),a&&(b.graphicData.tableXml=new XMLSerializer().serializeToString(a))}else if("http://schemas.openxmlformats.org/drawingml/2006/chart"===d){b.graphicData.element=c;let d=c.querySelector("chart")||c.querySelector("c\\:chart")||c.querySelector('[*|localName="chart"]');if(d){let a=d.getAttribute("r:id");a&&(b.graphicData.chartRef=a)}if(ChartProcessor)try{b.asyncChartProcessing=!0,b.originalBounds={l:b.bounds.l,t:b.bounds.t,r:b.bounds.r,b:b.bounds.b};let c=b.originalBounds.r-b.originalBounds.l,d=b.originalBounds.b-b.originalBounds.t,e={event:"ORIGINAL_BOUNDS_STORAGE",shapeType:b.type,rawBounds:b.bounds,originalBounds:b.originalBounds,originalDimensions:{width:c,height:d,widthInches:(c/914400).toFixed(2),heightInches:(d/914400).toFixed(2)}};b._debugInfo=e;let f={...this.context,zip:this.zip||this.zipProcessor?.zip};new ChartProcessor(f).parseChartFromGraphicFrame(a).then(a=>{a&&(b.chartData=a,b.asyncChartProcessing=!1,"u">typeof window&&window.dispatchEvent(new CustomEvent("chartRenderingComplete",{detail:{chartData:a}})))}).catch(a=>{console.error("[Chart Debug] Failed to parse chart data in slide-renderer:",a),b.asyncChartProcessing=!1})}catch(a){console.error("[Chart Debug] Failed to schedule chart parsing in slide-renderer:",a)}else console.warn("[Chart Debug] ChartProcessor not available on window object in slide-renderer")}}}return b}processDefaultShape(a){let b=new CShape;b.type="unknown",this.applyComprehensiveStyleExtraction(b,a,"default shape");let c=a.querySelector("spPr, p\\:spPr");if(c){let a=this.processShapeProperties(c);a.transform?b.bounds={l:a.transform.x||0,t:a.transform.y||0,r:(a.transform.x||0)+(a.transform.cx||a.transform.width||0),b:(a.transform.y||0)+(a.transform.cy||a.transform.height||0)}:b.bounds={l:914400,t:914400,r:5486400,b:2743200}}else b.bounds={l:914400,t:914400,r:5486400,b:2743200};return this.applyPropertyInheritance(b),b}getShapeName(a){let b=a.querySelector("nvSpPr, p\\:nvSpPr")||a.querySelector("nvPicPr, p\\:nvPicPr")||a.querySelector("nvGrpSpPr, p\\:nvGrpSpPr");if(b){let a=b.querySelector("cNvPr, p\\:cNvPr");if(a)return a.getAttribute("name")||""}return""}processShapeProperties(a){let b={};if(!a)return b;Array.from(a.children);try{let c=a.querySelector("xfrm, p\\:xfrm, a\\:xfrm");if(c||(c=a.querySelector("xfrm")),!c){for(let b of a.children)if("xfrm"===b.tagName||"a:xfrm"===b.tagName||"p:xfrm"===b.tagName){c=b;break}}if(c){Array.from(c.children);let a=c.querySelector("off, p\\:off, a\\:off");if(a||(a=c.querySelector("off")),!a){for(let b of c.children)if("off"===b.tagName||"a:off"===b.tagName||"p:off"===b.tagName){a=b;break}}let d=c.querySelector("ext, p\\:ext, a\\:ext");if(d||(d=c.querySelector("ext")),!d){for(let a of c.children)if("ext"===a.tagName||"a:ext"===a.tagName||"p:ext"===a.tagName){d=a;break}}if(a&&(a.getAttribute("x"),a.getAttribute("y")),d&&(d.getAttribute("cx"),d.getAttribute("cy")),a&&d){let c=parseInt(a.getAttribute("x"))||0,e=parseInt(a.getAttribute("y"))||0,f=parseInt(d.getAttribute("cx"))||100,g=parseInt(d.getAttribute("cy"))||100;b.transform={x:c,y:e,cx:f,cy:g,width:f,height:g}}let e=c.getAttribute("rot");if(e){b.transform=b.transform||{};let a=parseInt(e)/6e4||0;b.transform.rot=a,b.transform.rotation=a,b.transform.rotEMU=parseInt(e)||0}let f=c.getAttribute("flipH"),g=c.getAttribute("flipV");(null!==f||null!==g)&&(b.transform=b.transform||{},null!==f&&(b.transform.flipH="1"===f||"true"===f),null!==g&&(b.transform.flipV="1"===g||"true"===g))}let d=["gradFill","solidFill","blipFill","pattFill","noFill"],e=null;for(let b of a.children){let a=b.localName||b.tagName?.replace(/^.*:/,"");if(d.includes(a)){e=b;break}}if(e){this._currentProcessingShape={name:this.getShapeName(a.closest("sp, p\\:sp"))||"Unknown"},b.fill=this.parseFill(e),this._currentProcessingShape=null;let c=this.getShapeName(a.closest("sp, p\\:sp"));"Rectangle 3"===c||c?.includes("Rectangle 3")}let f=a.querySelector("ln, p\\:ln, a\\:ln");f&&(b.stroke=this.parseStroke(f));let g=a.querySelector("prstGeom, p\\:prstGeom, a\\:prstGeom");if(g){let a=g.getAttribute("prst")||"rect",c={},d=g.querySelector("avLst, a\\:avLst");d&&d.querySelectorAll("gd, a\\:gd").forEach(a=>{let b=a.getAttribute("name"),d=(a.getAttribute("fmla")||"").match(/^val\s+(-?\d+)$/);b&&d&&(c[b]=parseInt(d[1]))}),b.geometry={type:"preset",preset:a,adjustments:c}}else Array.from(a.children);let h=a.querySelector("custGeom, p\\:custGeom, a\\:custGeom");h&&(b.geometry={type:"custom",pathList:this.parseCustomGeometry(h)});let i=a.querySelector("effectLst, p\\:effectLst, a\\:effectLst");i&&(b.effectLst=this.parseEffectList(i))}catch(a){}return b}processTextBody(a){let b={paragraphs:[],bodyProperties:this.parseBodyProperties(a)};try{let c=a.querySelector("lstStyle, a\\:lstStyle");for(let d of(c&&(b.lstStyle=this.parseListStyle(c)),a.querySelectorAll("p, a\\:p"))){let a={runs:[],properties:this.parseParagraphProperties(d)};for(let b of d.querySelectorAll("r, a\\:r, fld, a\\:fld")){let c=b.tagName?b.tagName.toLowerCase():"",d="a:fld"===c||"fld"===c,e=b.querySelector("t, a\\:t"),f={text:(e?e.textContent:"")||"",properties:this.parseRunProperties(b)};if(d){let a=b.getAttribute("type")||"";f.fieldType=a,f.text||"slidenum"!==a&&"slideNum"!==a||(f.text="1")}a.runs.push(f)}0===a.runs.length&&a.runs.push({text:"",properties:{}}),b.paragraphs.push(a)}b.paragraphs.reduce((a,b)=>a+b.runs.length,0),b.paragraphs.reduce((a,b)=>a+b.runs.filter(a=>a.text&&a.text.trim()).length,0),b.paragraphs.map(a=>a.runs.map(a=>a.text||"").join("")).join(" ").trim()}catch(a){}return b}parseListStyle(a){let b={};try{for(let c=1;c<=9;c++){let d=a.querySelector(`lvl${c}pPr, a\\:lvl${c}pPr`);if(d){let a={align:d.getAttribute("algn")||"left",marL:parseInt(d.getAttribute("marL"))||0,indent:parseInt(d.getAttribute("indent"))||0},e=d.querySelector("defRPr, a\\:defRPr");if(e){let b=e.getAttribute("sz");if(b){let c=parseInt(b);c>0&&(a.fontSize=c/100)}let c=e.getAttribute("b");null!==c&&(a.bold="1"===c||"true"===c);let d=e.getAttribute("i");null!==d&&(a.italic="1"===d||"true"===d);let f=e.getAttribute("cap");f&&(a.cap=f);let g=e.querySelector("latin, a\\:latin");g&&(a.fontFamily=g.getAttribute("typeface")||"Arial");let h=e.querySelector("solidFill, a\\:solidFill");h&&(a.color=this.parseColor(h))}let f=d.querySelector("spcBef, a\\:spcBef");if(f){let b=f.querySelector("spcPct, a\\:spcPct"),c=f.querySelector("spcPts, a\\:spcPts");b?a.spaceBeforePct=parseInt(b.getAttribute("val"))/1e5:c&&(a.spaceBefore=127*parseInt(c.getAttribute("val")))}let g=d.querySelector("spcAft, a\\:spcAft");if(g){let b=g.querySelector("spcPct, a\\:spcPct"),c=g.querySelector("spcPts, a\\:spcPts");b?a.spaceAfterPct=parseInt(b.getAttribute("val"))/1e5:c&&(a.spaceAfter=127*parseInt(c.getAttribute("val")))}b[`lvl${c}pPr`]=a}}}catch(a){}return b}parseBodyProperties(a){let b={wrap:!0,verticalAlign:"top",anchorX:"center",anchorY:"middle"};try{let c=a.querySelector("bodyPr, a\\:bodyPr");if(c){"none"===c.getAttribute("wrap")&&(b.wrap=!1);let a=c.getAttribute("anchor");a&&(b.verticalAlign=a),b.anchorX=c.getAttribute("anchorX")||"center",b.anchorY=c.getAttribute("anchorY")||"middle",b.leftMargin=parseInt(c.getAttribute("lIns"))||45720,b.rightMargin=parseInt(c.getAttribute("rIns"))||45720,b.topMargin=parseInt(c.getAttribute("tIns"))||22860,b.bottomMargin=parseInt(c.getAttribute("bIns"))||22860}}catch(a){}return b}parseParagraphProperties(a){let b={align:"left",lineHeight:100,spacing:{before:0,after:0},bullet:null};try{let c=a.querySelector("pPr, a\\:pPr");if(c){let a=c.getAttribute("lvl");null!=a?b.level=parseInt(a)||0:b.level=0;let d=c.getAttribute("algn");d&&(b.align=d);let e=c.querySelector("lnSpc, a\\:lnSpc");if(e){let a=e.querySelector("spcPct, a\\:spcPct"),c=e.querySelector("spcPts, a\\:spcPts");a?b.lineHeight=parseInt(a.getAttribute("val"))/1e3:c&&(b.lineHeightPoints=parseInt(c.getAttribute("val"))/100)}let f=c.querySelector("spcBef, a\\:spcBef");if(f){let a=f.querySelector("spcPts, a\\:spcPts");a&&(b.spacing.before=127*parseInt(a.getAttribute("val")))}let g=c.querySelector("spcAft, a\\:spcAft");if(g){let a=g.querySelector("spcPts, a\\:spcPts");a&&(b.spacing.after=127*parseInt(a.getAttribute("val")))}let h=c.getAttribute("marL"),i=c.getAttribute("indent");(null!==h||null!==i)&&(b.indent={left:h?parseInt(h):0,hanging:i?parseInt(i):0}),this.parseBulletProperties(c,b);let j=c.querySelector("defRPr, a\\:defRPr");if(j){let a=parseInt(j.getAttribute("sz"));a&&(b.fontSize=a/100),b.bold="1"===j.getAttribute("b"),b.italic="1"===j.getAttribute("i");let c=j.querySelector("latin, a\\:latin");c&&(b.fontFamily=c.getAttribute("typeface")||"Arial");let d=j.querySelector("solidFill, a\\:solidFill");d&&(b.color=this.parseColor(d))}}}catch(a){}return b}parseBulletProperties(a,b){try{let c=a.querySelector("buChar, a\\:buChar");if(c){let a=c.getAttribute("char");if(a){b.bullet={type:"character",char:a};return}}let d=a.querySelector("buNum, a\\:buNum");if(d){let a=d.getAttribute("startAt")||"1";b.bullet={type:"number",startAt:parseInt(a)};return}let e=a.querySelector("buAutoNum, a\\:buAutoNum");if(e){let a=e.getAttribute("type")||"arabicPeriod",c=e.getAttribute("startAt")||"1";b.bullet={type:"autoNumber",subType:a,startAt:parseInt(c)};return}if(a.querySelector("buNone, a\\:buNone")){b.bullet={type:"none"};return}}catch(a){}}parseRunProperties(a){let b={};try{let c=a.querySelector("rPr, a\\:rPr");if(c){let a=null;if(c.hasAttribute("sz"))a=parseInt(c.getAttribute("sz"));else{let b=c.querySelector("sz, a\\:sz");b&&(a=parseInt(b.getAttribute("val")))}a&&a>0&&(b.fontSize=a/100);let d=c.querySelector("latin, a\\:latin");if(d?b.fontFamily=d.getAttribute("typeface")||"Arial":b.fontFamily=null,c.hasAttribute("b")){let a=c.getAttribute("b");b.bold="0"!==a&&"false"!==a}if(c.hasAttribute("i")){let a=c.getAttribute("i");b.italic="0"!==a&&"false"!==a}if(c.hasAttribute("u")&&(b.underline="none"!==c.getAttribute("u")),c.hasAttribute("strike")&&(b.strike="noStrike"!==c.getAttribute("strike")),c.hasAttribute("baseline")){let a=parseInt(c.getAttribute("baseline"))||0;a>0?b.verticalAlign="superscript":a<0&&(b.verticalAlign="subscript")}c.hasAttribute("cap")&&(b.cap=c.getAttribute("cap")),c.hasAttribute("spc")&&(b.letterSpacing=parseInt(c.getAttribute("spc"))/100);let e=c.querySelector("solidFill, a\\:solidFill");e&&(b.color=this.parseColor(e));let f=c.querySelector("highlight, a\\:highlight");f&&(b.highlight=this.parseColor(f));let g=c.querySelector("effectLst, a\\:effectLst");g&&(b.effectLst=this.parseEffectList(g))}}catch(a){}return b}parseFill(a){if(!a)return null;let b=this._currentProcessingShape,c=b&&("Rectangle 3"===b.name||b.name?.includes("Rectangle 3"));if((a.tagName||a.localName||"").indexOf("gradFill")>=0||(a.localName||"").indexOf("gradFill")>=0)return{type:"gradient",gradient:this.parseGradient(a)};let d=a.querySelector("solidFill, a\\:solidFill");if(d||"a:solidFill"!==a.tagName&&"solidFill"!==a.tagName||(d=a),d){let a=null;try{a=this.parseColor(d)}catch(a){return null}return{type:"solid",color:a}}let e=a.querySelector("gradFill, a\\:gradFill");if(e)return{type:"gradient",gradient:this.parseGradient(e)};let f=a.querySelector("pattFill, a\\:pattFill");if(f)return{type:"pattern",pattern:this.parsePattern(f)};let g=a.querySelector("blipFill, a\\:blipFill");return g?{type:"image",imageData:this.parseBlipFill(g)}:a.querySelector("noFill, a\\:noFill")||"a:noFill"===a.tagName||"noFill"===a.tagName||"noFill"===a.localName?{type:"none"}:null}parseBlipFill(a){let b=a.querySelector("blip, a\\:blip");if(!b)return null;let c={},d=b.getAttribute("r:embed");d&&(c.relationshipId=d);let e=a.querySelector("effects, a\\:effects");e&&(c.effects=this.parseImageEffects(e));let f=a.querySelector("stretch, a\\:stretch"),g=a.querySelector("tile, a\\:tile");if(f){c.fillMode="stretch";let a=f.querySelector("fillRect, a\\:fillRect");a&&(c.fillRect={l:parseInt(a.getAttribute("l"))||0,t:parseInt(a.getAttribute("t"))||0,r:parseInt(a.getAttribute("r"))||0,b:parseInt(a.getAttribute("b"))||0})}else g?(c.fillMode="tile",c.tileProperties={tx:parseInt(g.getAttribute("tx"))||0,ty:parseInt(g.getAttribute("ty"))||0,sx:parseInt(g.getAttribute("sx"))||1e5,sy:parseInt(g.getAttribute("sy"))||1e5,flip:g.getAttribute("flip")||"none",algn:g.getAttribute("algn")||"tl"}):c.fillMode="stretch";let h=a.querySelector("srcRect, a\\:srcRect");return h&&(c.sourceRect={l:parseInt(h.getAttribute("l"))||0,t:parseInt(h.getAttribute("t"))||0,r:parseInt(h.getAttribute("r"))||0,b:parseInt(h.getAttribute("b"))||0}),c}parseColor(a){if(!a)return{r:0,g:0,b:0,a:255};let b=a.querySelector("srgbClr, a\\:srgbClr");if(b){let a=b.getAttribute("val");if(a){let c={r:parseInt(a.substr(0,2),16),g:parseInt(a.substr(2,2),16),b:parseInt(a.substr(4,2),16),a:255};return this.applyColorModificationsToRgb(b,c)}}let c=a.querySelector("schemeClr, a\\:schemeClr");if(c){let a=c.getAttribute("val"),b=this._currentProcessingShape;if(b&&("Rectangle 3"===b.name||b.name?.includes("Rectangle 3"))&&this.presentation?.theme?.colors,"phClr"===a)return{type:"placeholder",scheme:"phClr",modifications:this.parseColorModifications(c),r:128,g:128,b:128,a:255};let d=null;if(this.presentation&&this.presentation.theme&&this.presentation.theme.colors){let b=this.presentation.theme.colors[a];b&&(d=this.parseColorFromHex(b))}return d||(d=({})[a]||null),this.applyColorModificationsToRgb(c,d)}return{r:0,g:0,b:0,a:255}}parseColorModifications(a){let b=[];for(let c of a.querySelectorAll("*")){let a=c.tagName.replace("a:","").toLowerCase(),d=c.getAttribute("val");d&&b.push({type:a,value:parseInt(d)})}return b}applyColorModificationsToRgb(a,b){if(!a)return b;let c={...b},d=a.querySelector("tint, a\\:tint");if(d){let a=parseInt(d.getAttribute("val"))/1e5;c.r=Math.round(c.r+(255-c.r)*a),c.g=Math.round(c.g+(255-c.g)*a),c.b=Math.round(c.b+(255-c.b)*a)}let e=a.querySelector("shade, a\\:shade");if(e){let a=parseInt(e.getAttribute("val"))/1e5;c.r=Math.round(c.r*(1-a)),c.g=Math.round(c.g*(1-a)),c.b=Math.round(c.b*(1-a))}let f=a.querySelector("lumMod, a\\:lumMod");if(f){let a=parseInt(f.getAttribute("val"))/1e5;c.r=Math.round(c.r*a),c.g=Math.round(c.g*a),c.b=Math.round(c.b*a)}let g=a.querySelector("lumOff, a\\:lumOff");if(g){let a=parseInt(g.getAttribute("val"))/1e5*255;c.r=Math.round(Math.min(255,c.r+a)),c.g=Math.round(Math.min(255,c.g+a)),c.b=Math.round(Math.min(255,c.b+a))}let h=a.querySelector("alpha, a\\:alpha");return h&&(c.a=Math.round(255*(parseInt(h.getAttribute("val"))/1e5))),c.r=Math.max(0,Math.min(255,c.r)),c.g=Math.max(0,Math.min(255,c.g)),c.b=Math.max(0,Math.min(255,c.b)),c.a=Math.max(0,Math.min(255,c.a)),c}parseGradient(a){let b={stops:[],type:"linear"},c=a.querySelector("gsLst, a\\:gsLst");c&&c.querySelectorAll("gs, a\\:gs").forEach(a=>{let c=parseInt(a.getAttribute("pos"))||0,d=this.parseColor(a);b.stops.push({position:c/1e5,color:d})});let d=a.querySelector("lin, a\\:lin");return d&&(b.angle=parseInt(d.getAttribute("ang"))||0,b.scaled="true"===d.getAttribute("scaled")),a.querySelector("rad, a\\:rad")&&(b.type="radial"),b}parsePattern(a){return{preset:a.getAttribute("prst"),foregroundColor:this.parseColor(a.querySelector("fgClr, a\\:fgClr")),backgroundColor:this.parseColor(a.querySelector("bgClr, a\\:bgClr"))}}parseStroke(a){try{let b={};if(a.querySelector("noFill, a\\:noFill"))return b.noFill=!0,b.width=0,b;let c=a.getAttribute("w");c?b.width=parseInt(c)||12700:b.width=12700;let d=a.querySelector("solidFill, a\\:solidFill");d?b.color=this.parseColor(d):(d=a.querySelector("gradFill, a\\:gradFill"))&&(b.gradient=this.parseGradient(d),b.color=b.gradient);let e=a.getAttribute("cap");e?b.cap=e:b.cap="flat";let f=a.getAttribute("join");f?b.join=f:b.join="round";let g=a.getAttribute("cmpd");g?b.compound=g:b.compound="sng";let h=a.querySelector("prstDash, a\\:prstDash");h?(b.dashStyle=h.getAttribute("val")||"solid",b.dashArray=this.getDashArray(b.dashStyle)):(b.dashStyle="solid",b.dashArray=[]);let i=a.querySelector("custDash, a\\:custDash");i&&(b.dashArray=this.parseCustomDash(i),b.dashStyle="custom");let j=a.getAttribute("algn");j?b.alignment=j:b.alignment="ctr";let k=a.querySelector("headEnd, a\\:headEnd");k&&(b.headEnd={type:k.getAttribute("type")||k.getAttribute("val")||"none",w:k.getAttribute("w")||k.getAttribute("width")||"med",len:k.getAttribute("len")||k.getAttribute("length")||"med"});let l=a.querySelector("tailEnd, a\\:tailEnd");return l&&(b.tailEnd={type:l.getAttribute("type")||l.getAttribute("val")||"none",w:l.getAttribute("w")||l.getAttribute("width")||"med",len:l.getAttribute("len")||l.getAttribute("length")||"med"}),b}catch(a){return{color:{r:0,g:0,b:0,a:255},width:12700,cap:"flat",join:"round",compound:"sng",dashStyle:"solid",dashArray:[],alignment:"ctr"}}}getDashArray(a){return({solid:[],dot:[1,1],dash:[3,1],dashDot:[3,1,1,1],dashDotDot:[3,1,1,1,1,1],lgDash:[8,3],lgDashDot:[8,3,1,3],lgDashDotDot:[8,3,1,3,1,3],sysDash:[2,2],sysDot:[1,2],sysDashDot:[2,2,1,2],sysDashDotDot:[2,2,1,2,1,2]})[a]||[]}parseCustomDash(a){let b=[];try{for(let c of a.querySelectorAll("ds, a\\:ds")){let a=parseInt(c.getAttribute("d"))||1e5,d=parseInt(c.getAttribute("sp"))||1e5;b.push(a/1e5,d/1e5)}}catch(a){}return b}parseCustomGeometry(a){let b=[];try{let c=a.querySelector("pathLst, a\\:pathLst");if(c)for(let a of c.querySelectorAll("path, a\\:path")){let c={w:parseInt(a.getAttribute("w"))||100,h:parseInt(a.getAttribute("h"))||100,commands:[]};for(let b of a.querySelectorAll("moveTo, lnTo, lineTo, cubicBezTo, quadBezTo, close, a\\:moveTo, a\\:lnTo, a\\:lineTo, a\\:cubicBezTo, a\\:quadBezTo, a\\:close")){let a=this.parsePathCommand(b);a&&c.commands.push(a)}b.push(c)}}catch(a){}return b}parsePathCommand(a){switch(a.tagName.toLowerCase().replace(/^a:/,"")){case"moveto":let b=a.querySelector("pt, a\\:pt");if(b)return{type:"moveTo",x:parseInt(b.getAttribute("x"))||0,y:parseInt(b.getAttribute("y"))||0};break;case"lnto":case"lineto":{let b=a.querySelector("pt, a\\:pt");if(b)return{type:"lineTo",x:parseInt(b.getAttribute("x"))||0,y:parseInt(b.getAttribute("y"))||0};break}case"cubicbezto":let c=a.querySelectorAll("pt, a\\:pt");if(c.length>=3)return{type:"cubicBezTo",x1:parseInt(c[0].getAttribute("x"))||0,y1:parseInt(c[0].getAttribute("y"))||0,x2:parseInt(c[1].getAttribute("x"))||0,y2:parseInt(c[1].getAttribute("y"))||0,x3:parseInt(c[2].getAttribute("x"))||0,y3:parseInt(c[2].getAttribute("y"))||0};break;case"quadbezto":{let b=a.querySelectorAll("pt, a\\:pt");if(b.length>=2)return{type:"quadBezTo",x1:parseInt(b[0].getAttribute("x"))||0,y1:parseInt(b[0].getAttribute("y"))||0,x:parseInt(b[1].getAttribute("x"))||0,y:parseInt(b[1].getAttribute("y"))||0};break}case"close":return{type:"close"}}return null}parseShapeStyle(a){let b={};try{let c=a.querySelector("fillRef, a\\:fillRef");c&&(b.fillRef={idx:parseInt(c.getAttribute("idx"))||0,color:this.parseColor(c)});let d=a.querySelector("lnRef, a\\:lnRef");d&&(b.lnRef={idx:parseInt(d.getAttribute("idx"))||0,color:this.parseColor(d)});let e=a.querySelector("effectRef, a\\:effectRef");e&&(b.effectRef={idx:parseInt(e.getAttribute("idx"))||0});let f=a.querySelector("fontRef, a\\:fontRef");f&&(b.fontRef={idx:f.getAttribute("idx")||"minor"})}catch(a){}return b}extractStyleFromElement(a){let b={};try{let c=a.querySelector("style, p\\:style, a\\:style");if(c)return this.parseShapeStyle(c);let d=a.querySelector("spPr, p\\:spPr");if(d){let a=this.extractStyleAttributesFromSpPr(d);a&&Object.keys(a).length>0&&Object.assign(b,a)}let e=this.extractStyleAttributesFromElement(a);e&&Object.keys(e).length>0&&Object.assign(b,e);let f=a.querySelector("nvSpPr, p\\:nvSpPr");if(f){let a=this.extractStyleAttributesFromNvSpPr(f);a&&Object.keys(a).length>0&&Object.assign(b,a)}}catch(a){}return b}extractStyleAttributesFromSpPr(a){let b={};try{let c=a.getAttribute("style")||a.getAttribute("styleRef");if(c){let a=this.parseStyleReference(c);a&&Object.assign(b,a)}let d=a.querySelector("schemeClr, a\\:schemeClr");if(d){let a=d.getAttribute("val");a&&(b.schemeColor=a)}}catch(a){}return b}extractStyleAttributesFromElement(a){let b={};try{["style","styleRef","themeRef","colorRef"].forEach(c=>{let d=a.getAttribute(c);d&&(b[c]=d)})}catch(a){}return b}extractStyleAttributesFromNvSpPr(a){let b={};try{let c=a.querySelector("ph, p\\:ph");if(c){let a=c.getAttribute("type");if(c.getAttribute("idx"),a){let c={title:{fillRef:{idx:1}},body:{fillRef:{idx:2}},ctrTitle:{fillRef:{idx:1}},subTitle:{fillRef:{idx:2}},obj:{fillRef:{idx:3}}};c[a]&&Object.assign(b,c[a])}}}catch(a){}return b}parseStyleReference(a){try{if(a.includes("fillRef")){let b=a.match(/fillRef:(\d+)/);if(b)return{fillRef:{idx:parseInt(b[1])||0}}}}catch(a){}return null}applyComprehensiveStyleExtraction(a,b,c="shape"){let d=!1,e=b.querySelector("style, p\\:style");if(e&&(a.style=this.parseShapeStyle(e),a.preservedStyle=a.style,d=!0),!d&&window.currentSlideData&&window.currentSlideData.rawXMLShapes){let b=window.currentSlideData.rawXMLShapes.find(b=>b.name===a.name||b.id===a.id);b&&b.style&&(a.style=b.style,a.preservedStyle=b.style,d=!0)}if(!d){let c=this.extractStyleFromElement(b);c&&Object.keys(c).length>0&&(a.style=c,a.preservedStyle=c,d=!0)}return d}hexToRgb(a){let b=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);return b?{r:parseInt(b[1],16),g:parseInt(b[2],16),b:parseInt(b[3],16)}:{r:0,g:0,b:0}}initializeRendering(){try{let a=document.createElement("canvas");if(a.width=800,a.height=600,this.getGraphicsEngine()||this.initializeGraphicsEngine(),this.drawingDocument){this.drawingDocument.init(a,this);let b="u">typeof globalThis&&globalThis.SVGRenderer||"u">typeof window&&window.SVGRenderer||null;if(b&&this.drawingDocument.graphics)this.svgRenderer=new b(this.drawingDocument.graphics);else throw Error("SVGRenderer is not defined")}else throw Error("standard graphics engine not available")}catch(a){throw Error("Failed to initialize rendering system: "+a.message)}}async renderSlide(a,b){performance.now();try{if(!a)throw Error("Canvas is required for rendering");if(b<0||b>=this.slides.length)throw Error(`Invalid slide index: ${b}`);let c=this.slides[b];if(!c)throw Error(`Slide at index ${b} is null`);this.currentSlide=c,this.getGraphicsEngine()||this.initializeGraphicsEngine();let d=this.getSlideDimensions();if(this.calculateCanvasRect(a,d),!this.drawingDocument)throw Error("standard graphics engine not available");this.drawingDocument.init(a,this);let e=this.drawingDocument.graphics;if(this.renderContext.enableOptimizations){let b=parseFloat(a.style.width)||a.width/(window.devicePixelRatio||1),c=parseFloat(a.style.height)||a.height/(window.devicePixelRatio||1);e.updatedRect=new fh(0,0,b,c)}e.clear(),await this.preloadSlideImages(b),this.logSlideImageStatus(c,b),this.currentSlideIndex=b,await this.drawingDocument.drawSlide(c,b),performance.now()}catch(b){if(a){let c=a.getContext("2d");c.fillStyle="#ffebee",c.fillRect(0,0,a.width,a.height),c.fillStyle="#f44336",c.font="16px Arial",c.textAlign="center",c.fillText("Rendering Error",a.width/2,a.height/2),c.fillText(b.message,a.width/2,a.height/2+25)}}}async renderMaster(a,b){try{if(!a)throw Error("Canvas is required for rendering");if(b<0||b>=this.slideMasters.length)throw Error(`Invalid master index: ${b}`);let c=this.slideMasters[b];if(!c)throw Error(`Master at index ${b} is null`);let d={name:c.name||`Master ${b+1}`,type:"master",commonSlideData:c.commonSlideData||c.cSld,backgroundFill:c.cSld?.bg,showMasterShapes:!1,layout:null,master:null};this.currentSlide=d;let e=this.getSlideDimensions();this.calculateCanvasRect(a,e),this.drawingDocument||this.initializeRendering(),this.drawingDocument.init(a,this),this.drawingDocument.graphics.clear(),await this.drawingDocument.drawSlide(d,b)}catch(b){if(a){let c=a.getContext("2d");c.fillStyle="#f0f8ff",c.fillRect(0,0,a.width,a.height),c.fillStyle="#e74c3c",c.font="16px Arial",c.textAlign="center",c.fillText("Master Rendering Error",a.width/2,a.height/2),c.fillText(b.message,a.width/2,a.height/2+25)}}}async renderLayout(a,b){try{if(!a)throw Error("Canvas is required for rendering");if(b<0||b>=this.slideLayouts.length)throw Error(`Invalid layout index: ${b}`);let c=this.slideLayouts[b];if(!c)throw Error(`Layout at index ${b} is null`);let d=this.slideMasters.find(a=>a.id===c.masterId),e={name:c.name||`Layout ${b+1}`,type:"layout",commonSlideData:c.commonSlideData||c.cSld,backgroundFill:c.cSld?.bg||d?.cSld?.bg,showMasterShapes:!1!==c.showMasterSp,layout:c,master:d};this.currentSlide=e;let f=this.getSlideDimensions();this.calculateCanvasRect(a,f),this.drawingDocument||this.initializeRendering(),this.drawingDocument.init(a,this),this.drawingDocument.graphics.clear(),await this.drawingDocument.drawSlide(e,b)}catch(b){if(a){let c=a.getContext("2d");c.fillStyle="#fff5f5",c.fillRect(0,0,a.width,a.height),c.fillStyle="#e74c3c",c.font="16px Arial",c.textAlign="center",c.fillText("Layout Rendering Error",a.width/2,a.height/2),c.fillText(b.message,a.width/2,a.height/2+25)}}}drawRegularShapeGeometry(a,b,c,d,e,f,g,h,i,j=null){let k=this.getShapePreset(b);!k&&b.geometry&&(k=b.geometry.preset),!k&&b.properties&&b.properties.geometry&&(k=b.properties.geometry.preset),j?g=j:g&&"object"==typeof g&&g.type;let l=null,m=null;g&&("linear"===g.type&&g.stops?l=g:"string"==typeof g?l=this.hexToRgb(g):void 0!==g.r&&(l=g)),h&&("string"==typeof h?m=this.hexToRgb(h):void 0!==h.r&&(m=h));let n=this.getShapeStrokeInfo(b);k?a.drawPresetGeometry(k,c,d,e,f,l,m,i,n):a.drawRectangle(c,d,e,f,l,m,i,n)}getSlideCount(){return this.slides.length}getCurrentSlideIndex(){return this.currentSlideIndex}getSlideInfo(a){let b=this.slides[a];return b?{index:a,name:b.getName(),shapeCount:b.getShapeTree().length}:null}getSlideDimensions(){return this.presentation?.slideSize||{cx:9144e3,cy:6858e3}}getSlideDimensionsForCanvas(a,b){let c=this.getSlideDimensions(),d=Math.min(a/c.cx,b/c.cy);return{width:c.cx*d,height:c.cy*d,scale:d,offsetX:(a-c.cx*d)/2,offsetY:(b-c.cy*d)/2}}async generateSlideThumbnail(a,b=320,c=240){try{if(this.getGraphicsEngine()||this.initializeGraphicsEngine(),!this.slides[a])return this.createFallbackThumbnail(a,b,c);let d=this.slides[a],e=this.getSlideDimensions();e.cx,e.cy;let f=e.cx/914400*96,g=e.cy/914400*96,h=b/f,i=c/g,j=Math.min(h,i),k=f*j,l=g*j;k=Math.max(k,100),l=Math.max(l,75);let m=document.createElement("canvas");if(this.setupHighResolutionCanvas(m,k,l),!this.drawingDocument)return this.createFallbackThumbnail(a,k,l);this.drawingDocument.init(m,this);try{return await this.drawingDocument.drawSlide(d,a),m}catch(b){return this.createFallbackThumbnail(a,k,l)}}catch(d){return this.createFallbackThumbnail(a,b,c)}}createFallbackThumbnail(a,b,c){let d=document.createElement("canvas");this.setupHighResolutionCanvas(d,b,c);let e=d.getContext("2d");e.fillStyle="#f0f0f0",e.fillRect(0,0,b,c),e.fillStyle="#666",e.font="16px Arial",e.textAlign="center",e.fillText(`Slide ${a+1}`,b/2,c/2);try{let a=this.getSlideDimensions(),d=a.cx/a.cy;e.font="12px Arial",e.fillText(`${d.toFixed(2)}:1`,b/2,c/2+20)}catch(a){}return d}inferLayoutTypeFromPlaceholders(a){let b=a.querySelector("cSld, p\\:cSld");if(!b)return"blank";let c=b.querySelector("spTree, p\\:spTree");if(!c)return"blank";let d=[],e=c.children;for(let a=0;a<e.length;a++){let b=e[a],c=this.extractPlaceholderInfo(b);c&&d.push(c.type)}return d.includes("title")&&d.includes("body")?"titleAndContent":d.includes("title")?"titleOnly":d.includes("body")?"contentOnly":0===d.length?"blank":"custom"}extractPlaceholderInfo(a){let b=a.querySelector("nvSpPr, p\\:nvSpPr")||a.querySelector("nvPicPr, p\\:nvPicPr")||a.querySelector("nvGrpSpPr, p\\:nvGrpSpPr");if(!b)return null;let c=b.querySelector("nvPr, p\\:nvPr");if(!c)return null;let d=c.querySelector("ph, p\\:ph");return d?{type:d.getAttribute("type")||"obj",idx:d.getAttribute("idx"),orient:d.getAttribute("orient"),sz:d.getAttribute("sz")}:null}parsePlaceholder(a){let b=a.getAttribute("idx"),c=null==b||isNaN(parseInt(b,10))?void 0:parseInt(b,10),d={type:a.getAttribute("type")||"obj",orient:a.getAttribute("orient")||"horz",sz:a.getAttribute("sz")||"full",idx:c},e=a.querySelector("extLst, p\\:extLst");if(e){let a=e.querySelector("ext, p\\:ext");if(a){let b=a.querySelector("phTxt, p\\:phTxt");b&&(d.text=b.textContent)}}return d}parseBackground(a){let b=a.querySelector("bg, p\\:bg");if(!b)return null;let c=b.querySelector("bgPr, p\\:bgPr");if(c)return{type:"bgPr",fill:this.parseFill(c)};let d=b.querySelector("bgRef, p\\:bgRef");return d?{type:"bgRef",idx:d.getAttribute("idx")}:null}parseTextStyleElement(a){return a?{element:a,parsed:!1}:null}parseColorMapElement(a){if(!a)return null;let b={},c=a.attributes;for(let a=0;a<c.length;a++){let d=c[a];b[d.name]=d.value}return b}parseColorMapOverride(a){if(!a)return null;let b=a.querySelector("masterClrMapping, p\\:masterClrMapping");if(b)return this.parseColorMapElement(b);let c=a.querySelector("overrideClrMapping, p\\:overrideClrMapping");return c?this.parseColorMapElement(c):null}calculateCanvasRect(a,b){let c,d,e=b.cx/914400*96,f=b.cy/914400*96;a.style.width&&a.style.height?(c=parseFloat(a.style.width),d=parseFloat(a.style.height)):(c=a.width/(window.devicePixelRatio||1),d=a.height/(window.devicePixelRatio||1));let g=Math.min(c/e,d/f),h=e*g,i=f*g,j=(c-h)/2,k=(d-i)/2,l=Math.round(h),m=Math.round(i),n=Math.round(j),o=Math.round(k);return 1>=Math.abs(l-c)&&1>=Math.abs(m-d)&&(l=Math.round(c),m=Math.round(d),n=0,o=0),g=Math.min(l/e,m/f),{widthPx:Math.round(c),heightPx:Math.round(d),slideWidthPx:e,slideHeightPx:f,scale:g,offsetX:n,offsetY:o,scaledWidth:l,scaledHeight:m,widthMM:b.cx/914400*25.4,heightMM:b.cy/914400*25.4}}calculateShapeBounds(a,b){if(!a||!a.bounds)return{x:0,y:0,w:100,h:100};let c=this.getSlideDimensions(),d=c.cx,e=c.cy,f=b.slideWidthPx,g=b.slideHeightPx,h={x:(a.bounds.l||0)/d*f,y:(a.bounds.t||0)/e*g,w:((a.bounds.r||0)-(a.bounds.l||0))/d*f,h:((a.bounds.b||0)-(a.bounds.t||0))/e*g},i=b.offsetX+h.x*b.scale,j=b.offsetY+h.y*b.scale,k=h.w*b.scale,l=h.h*b.scale,m=this.getShapeRotation(a);return m&&0!==m?this.calculateRotatedBounds({x:i,y:j,w:k,h:l},m):{x:i,y:j,w:k,h:l}}getShapeBounds(a,b){if(!a||!a.bounds)return{x:0,y:0,w:100,h:100};let c=this.getSlideDimensions(),d=c.cx,e=c.cy,f=b.slideWidthPx,g=b.slideHeightPx,h={x:(a.bounds.l||0)/d*f,y:(a.bounds.t||0)/e*g,w:((a.bounds.r||0)-(a.bounds.l||0))/d*f,h:((a.bounds.b||0)-(a.bounds.t||0))/e*g},i=b.offsetX+h.x*b.scale,j=b.offsetY+h.y*b.scale;return{x:i,y:j,w:h.w*b.scale,h:h.h*b.scale}}calculateShapeTransform(a,b){if(!a||!a.properties||!a.properties.transform)return null;let c=a.properties.transform,d=new CMatrix,e=this.getSlideDimensions(),f=e.cx,g=e.cy,h=b.slideWidthPx,i=b.slideHeightPx;if(void 0!==c.x&&void 0!==c.y){let a=c.x/f*h,e=c.y/g*i;d.tx=b.offsetX+a*b.scale,d.ty=b.offsetY+e*b.scale}if(void 0!==c.rot){let a=c.rot*Math.PI/180,e=Math.cos(a),f=Math.sin(a);d.sx=e*b.scale,d.sy=e*b.scale,d.shx=-f*b.scale,d.shy=f*b.scale}else d.sx=b.scale,d.sy=b.scale;return d}drawSlideBackground(a,b,c){b.backgroundFill&&this.renderBackgroundFill(a,b.backgroundFill,c)}renderBackgroundFill(a,b,c){if(!b||!b.fill)return;let d=b.fill;switch(d.type){case"solid":this.renderSolidBackground(a,d,c);break;case"gradient":this.renderGradientBackground(a,d,c);break;case"image":this.renderImageBackground(a,d,c);break;case"pattern":this.renderPatternBackground(a,d,c)}}renderSolidBackground(a,b,c){if(b.color){let d=this.rgbToHex(b.color);a.fillRect(0,0,c.widthPx,c.heightPx,d)}}renderGradientBackground(a,b,c){let d;if(!b.gradient||!b.gradient.stops||0===b.gradient.stops.length){let d=b.gradient?.stops?.[0]?.color||{r:255,g:255,b:255,a:255};a.fillRect(0,0,c.widthPx,c.heightPx,this.rgbToHex(d));return}let e=a.context,{widthPx:f,heightPx:g}=c;if("radial"===b.gradient.type){let a=f/2,b=g/2,c=Math.max(f,g)/2;d=e.createRadialGradient(a,b,0,a,b,c)}else{let a=(b.gradient.angle||0)*Math.PI/180/6e4,c=Math.sqrt(f*f+g*g),h=f/2-Math.cos(a)*c/2,i=g/2-Math.sin(a)*c/2,j=f/2+Math.cos(a)*c/2,k=g/2+Math.sin(a)*c/2;d=e.createLinearGradient(h,i,j,k)}b.gradient.stops.forEach(a=>{let b=this.rgbToHex(a.color);d.addColorStop(a.position,b)}),e.fillStyle=d,e.fillRect(0,0,f,g)}renderImageBackground(a,b,c){if(!b.imageData||!b.imageData.relationshipId)return void a.fillRect(0,0,c.widthPx,c.heightPx,"#f0f0f0");let d=b.imageData.relationshipId,e=this.imageCache.get(d);if(e&&e.image)this.drawBackgroundImage(a,e.image,b.imageData,c);else{a.fillRect(0,0,c.widthPx,c.heightPx,"#f8f9fa");let b=a.context;b.fillStyle="#6c757d",b.font="14px Arial",b.textAlign="center",b.fillText("Loading background...",c.widthPx/2,c.heightPx/2),this.loadImageAsync(d)}}drawBackgroundImage(a,b,c,d){let e=a.context,{widthMM:f,heightMM:g}=d;e.save();try{if("tile"===c.fillMode)this.drawTiledBackgroundImage(e,b,c.tileProperties,f,g);else{let d=0,e=0,h=f,i=g;if(c.fillRect){let a=c.fillRect;d=f*a.l/1e5,e=g*a.t/1e5,h=f*(1e5-a.l-a.r)/1e5,i=g*(1e5-a.t-a.b)/1e5}if(c.sourceRect){let f=c.sourceRect,g=b.naturalWidth*f.l/1e5,j=b.naturalHeight*f.t/1e5,k=b.naturalWidth*(1e5-f.l-f.r)/1e5,l=b.naturalHeight*(1e5-f.t-f.b)/1e5;a.drawImageHighRes(b,g,j,k,l,d,e,h,i)}else a.drawImageHighRes(b,d,e,h,i)}c.effects&&this.applyImageEffects(a,c.effects)}catch(a){e.fillStyle="#f0f0f0",e.fillRect(0,0,f,g)}finally{e.restore()}}drawTiledBackgroundImage(a,b,c,d,e){if(!c)return;let f=c.sx/1e5,g=c.sy/1e5,h=c.tx/914400*25.4,i=c.ty/914400*25.4,j=b.naturalWidth*f,k=b.naturalHeight*g,l=document.createElement("canvas");l.width=j,l.height=k;let m=l.getContext("2d");m.imageSmoothingEnabled=!0,m.imageSmoothingQuality="high",m.drawImage(b,0,0,j,k);let n=a.createPattern(l,"repeat");a.save(),a.translate(h,i),a.fillStyle=n,a.fillRect(-h,-i,d,e),a.restore()}renderPatternBackground(a,b,c){let d=b.pattern?.foregroundColor||{r:128,g:128,b:128,a:255},e=this.rgbToHex(d);a.fillRect(0,0,c.widthMM,c.heightMM,e)}getShapeFillColor(a){let b;if(this._currentProcessingShape=a,a&&("Rectangle 3"===a.name||a.name?.includes("Rectangle 3")),a.fill){if("solid"===a.fill.type&&a.fill.color){let b=this.processShapeColor(a.fill.color);return this._currentProcessingShape=null,b}if("gradient"===a.fill.type&&a.fill.gradient)return this._currentProcessingShape=null,this.processGradientFill(a.fill.gradient);if("none"===a.fill.type)return this._currentProcessingShape=null,null}if(a.properties&&a.properties.fill){if("solid"===a.properties.fill.type&&a.properties.fill.color){let b=this.processShapeColor(a.properties.fill.color);return this._currentProcessingShape=null,b}if("gradient"===a.properties.fill.type&&a.properties.fill.gradient)return this.processGradientFill(a.properties.fill.gradient);if("none"===a.properties.fill.type)return null}if("sp"===a.type&&a.placeholder&&a.placeholder.type)return a.placeholder.type,this._currentProcessingShape=null,null;let c=a.preservedStyle||a.style;if(c&&c.fillRef){this._currentProcessingShape=a;let b=this.resolveStyleFillColor(c.fillRef);if(b)return this._currentProcessingShape=null,b}if("pic"===a.type)return this._currentProcessingShape=null,null;if(a.name&&a.name.includes("Rectangle")){let c=a.name.match(/\d+/);c&&parseInt(c[0]),b=null}else b=null;return this._currentProcessingShape=null,b}_normalizeColorDescriptor(a){if(!a)return null;if("object"==typeof a&&void 0!==a.r||"string"==typeof a)return a;if("object"==typeof a&&a.type&&a.value){if("scheme"===a.type)return{scheme:a.value,alpha:a.alpha};if("srgb"===a.type)return`#${a.value}`}return a}resolveStyleStrokeColor(a){try{if(!a)return null;let b=this._normalizeColorDescriptor(a.color||a);return this.processShapeColor(b)}catch(a){return null}}getShapeStrokeColor(a){try{if(a?.properties?.stroke?.noFill||a?.stroke?.noFill)return null;if(a?.properties?.stroke?.color){let b=this._normalizeColorDescriptor(a.properties.stroke.color);return this.processShapeColor(b)}if(a?.stroke?.color){let b=this._normalizeColorDescriptor(a.stroke.color);return this.processShapeColor(b)}let b=a?.preservedStyle||a?.style;if(b?.lnRef){let a=this.resolveStyleStrokeColor(b.lnRef);if(a)return a}}catch(a){}return a&&("cxnSp"===a.type||"connector"===a.type)?{r:80,g:80,b:80,a:255}:null}getShapeLineWidth(a){try{let b=(a?.properties?.stroke?.width!==void 0?parseInt(a.properties.stroke.width)||12700:a?.stroke?.width!==void 0&&parseInt(a.stroke.width)||12700)/914400*25.4;return Math.max(b,50.8/96)}catch(a){return .75}}resolveInheritedFillColor(a){try{let b=this.slides[this.getCurrentSlideIndex()];if(!b||!a.placeholder||!a.placeholder.type)return null;let c=a.placeholder.type,d=a.placeholder.idx||0;if(b.layout&&b.layout.cSld&&b.layout.cSld.spTree){for(let a of b.layout.cSld.spTree)if(this.isMatchingPlaceholder(a,c,d)){let b=this.extractShapeFillColor(a);if(b)return b}}if(b.layout&&b.layout.master&&b.layout.master.cSld&&b.layout.master.cSld.spTree){for(let a of b.layout.master.cSld.spTree)if(this.isMatchingPlaceholder(a,c,d)){let b=this.extractShapeFillColor(a);if(b)return b}}let e=this.getThemeColorForPlaceholder(c);if(e)return e;return null}catch(a){return null}}isMatchingPlaceholder(a,b,c){return!!a.placeholder&&(a.placeholder.type===b?void 0===c||void 0===a.placeholder.idx||a.placeholder.idx===c:"title"===b&&"ctrTitle"===a.placeholder.type||"ctrTitle"===b&&"title"===a.placeholder.type)}inheritShapeStyles(a,b){try{if(b.spPr&&(a.spPr||(a.spPr={}),b.spPr.solidFill&&!a.spPr.solidFill&&(a.spPr.solidFill=b.spPr.solidFill),b.spPr.gradFill&&!a.spPr.gradFill&&(a.spPr.gradFill=b.spPr.gradFill),b.spPr.pattFill&&!a.spPr.pattFill&&(a.spPr.pattFill=b.spPr.pattFill),b.spPr.blipFill&&!a.spPr.blipFill&&(a.spPr.blipFill=b.spPr.blipFill),b.spPr.noFill&&!a.spPr.noFill&&(a.spPr.noFill=b.spPr.noFill),b.spPr.ln&&!a.spPr.ln&&(a.spPr.ln=b.spPr.ln),b.spPr.effectLst&&!a.spPr.effectLst&&(a.spPr.effectLst=b.spPr.effectLst),!b.spPr.geometry||a.spPr.geometry||this.isTextPlaceholder(a)||(a.spPr.geometry=b.spPr.geometry),b.spPr.xfrm&&!a.spPr.xfrm&&(a.spPr.xfrm=b.spPr.xfrm)),b.style&&(a.style||(a.style={}),b.style.fillRef&&!a.style.fillRef&&(a.style.fillRef=b.style.fillRef),b.style.lnRef&&!a.style.lnRef&&(a.style.lnRef=b.style.lnRef),b.style.effectRef&&!a.style.effectRef&&(a.style.effectRef=b.style.effectRef),b.style.fontRef&&!a.style.fontRef&&(a.style.fontRef=b.style.fontRef)),(this.isTextPlaceholder(a)||a.textBody)&&this.inheritTextProperties(a,b),b.effects&&!a.effects&&(a.effects=b.effects),b.fill&&(!a.fill||null===a.fill)&&(a.fill=b.fill),b.properties&&b.properties.fill&&(a.properties||(a.properties={}),a.properties.fill&&null!==a.properties.fill||(a.properties.fill=b.properties.fill)),b.properties&&b.properties.transform&&(a.properties||(a.properties={}),a.properties.transform||(a.properties.transform=JSON.parse(JSON.stringify(b.properties.transform)))),(!a.properties||!a.properties.transform)&&a.spPr&&a.spPr.xfrm){let b=a.spPr.xfrm,c=void 0!==b.x?b.x:(b.off&&b.off.x)!==void 0?b.off.x:0,d=void 0!==b.y?b.y:(b.off&&b.off.y)!==void 0?b.off.y:0,e=void 0!==b.width?b.width:void 0!==b.cx?b.cx:(b.ext&&b.ext.cx)!==void 0?b.ext.cx:void 0,f=void 0!==b.height?b.height:void 0!==b.cy?b.cy:(b.ext&&b.ext.cy)!==void 0?b.ext.cy:void 0;void 0!==e&&void 0!==f&&(a.properties||(a.properties={}),a.properties.transform={x:c,y:d,width:e,height:f})}}catch(a){}}inheritTextProperties(a,b){try{if(b.textBody){a.textBody||(a.textBody={paragraphs:[]});let c=b.textBody.bodyProperties||b.textBody.bodyPr;if(a.textBody.bodyProperties){if(c){let b=a.textBody.bodyProperties;(b.anchor||b.verticalAlign)&&"top"!==b.verticalAlign&&"t"!==b.verticalAlign||(c.anchor?b.anchor=c.anchor:c.verticalAlign&&(b.verticalAlign=c.verticalAlign)),void 0===b.leftMargin&&void 0!==c.leftMargin&&(b.leftMargin=c.leftMargin),void 0===b.rightMargin&&void 0!==c.rightMargin&&(b.rightMargin=c.rightMargin),void 0===b.topMargin&&void 0!==c.topMargin&&(b.topMargin=c.topMargin),void 0===b.bottomMargin&&void 0!==c.bottomMargin&&(b.bottomMargin=c.bottomMargin)}}else c&&(a.textBody.bodyProperties=JSON.parse(JSON.stringify(c)));b.textBody.lstStyle&&!a.textBody.lstStyle&&(a.textBody.lstStyle=b.textBody.lstStyle)}b.txBody&&!a.txBody&&(a.txBody=b.txBody)}catch(a){}}isTextPlaceholder(a){let b=a?.placeholder?.type||a.nvSpPr&&a.nvSpPr.nvPr&&a.nvSpPr.nvPr.ph&&a.nvSpPr.nvPr.ph.type;return!!b&&["title","body","ctrTitle","subTitle","dt","ftr","hdr","sldNum"].includes(b)}applyPropertyInheritance(a,b=null){try{let c=b||this.currentSlide;if(!c)return;if(c.layout&&c.layout.cSld&&c.layout.cSld.spTree){let b=this.findMatchingShapeInTemplate(a,c.layout.cSld.spTree);b&&this.inheritShapeStyles(a,b)}if(c.layout&&c.layout.master&&c.layout.master.cSld&&c.layout.master.cSld.spTree){let b=this.findMatchingShapeInTemplate(a,c.layout.master.cSld.spTree);b&&this.inheritShapeStyles(a,b)}}catch(a){}}findMatchingShapeInTemplate(a,b){if(!b||!Array.isArray(b))return null;if(a.placeholder){for(let c of b)if(this.isMatchingPlaceholder(c,a.placeholder.type,a.placeholder.idx))return c}if(a.name){for(let c of b)if(c.name===a.name)return c}if(a.name&&a.name.includes("Text Placeholder")&&a.textBody){for(let a of b)if(a.name&&a.name.includes("Text Placeholder")&&a.textBody)return a}if(a.bounds&&!a.placeholder){for(let c of b)if(this.isShapeAtSimilarPosition(a,c))return c}return null}isShapeAtSimilarPosition(a,b){if(!a.bounds||!b.bounds)return!1;let c=91440>=Math.abs(a.bounds.l-b.bounds.l),d=91440>=Math.abs(a.bounds.t-b.bounds.t);return c&&d}extractShapeGeometry(a){return a.spPr&&a.spPr.geometry?a.spPr.geometry:a.geometry?a.geometry:a.properties&&a.properties.geometry?a.properties.geometry:null}extractShapeFillColor(a){return a.fill&&a.fill.color?this.processShapeColor(a.fill.color):a.properties&&a.properties.fill&&a.properties.fill.color?this.processShapeColor(a.properties.fill.color):a.style&&a.style.fillRef?this.resolveStyleFillColor(a.style.fillRef):null}getThemeColorForPlaceholder(a){let b=this.presentation?.theme;if(!b||!b.colors)return null;switch(a){case"title":case"ctrTitle":case"body":case"obj":default:return null;case"subTitle":return{r:245,g:245,b:245,a:255}}}processShapeColor(a){if(!a)return null;if(void 0!==a.r&&void 0!==a.g&&void 0!==a.b)return a;if("string"==typeof a&&a.startsWith("#"))return this.hexToRgb(a);if(a.scheme){let b=this.resolveThemeColor(a.scheme);if(b)return this.applyColorModifications(b,a)}if("srgb"===a.type&&a.value){let b=a.value,c=parseInt(b.substring(0,2),16)||0,d=parseInt(b.substring(2,4),16)||0;return{r:c,g:d,b:parseInt(b.substring(4,6),16)||0,a:void 0!==a.alpha&&null!==a.alpha?Math.round(255*a.alpha):255}}if("scheme"===a.type&&a.value){let b=this.resolveThemeColor(a.value);if(b)return this.applyColorModifications(b,a)}return a}processGradientFill(a){return a&&a.stops&&0!==a.stops.length?{type:a.type||"linear",angle:a.angle||0,stops:a.stops.map(a=>({position:a.position,color:this.processShapeColor(a.color)}))}:null}resolveThemeColor(a){if(this.presentation&&this.presentation.theme&&this.presentation.theme.colors){let b=this.presentation.theme.colors[a];if(b){let a=this.parseColorFromHex(b);if(a)return a}}return({})[a]||null}resolvePlaceholderColor(a,b=null){if(!a||"placeholder"!==a.type)return a;let c=b;if(!c&&this.presentation&&this.presentation.theme&&this.presentation.theme.colors){let a=this.presentation.theme.colors.accent1;a&&(c=this.parseColorFromHex(a))}return c?(a.modifications&&a.modifications.length>0&&(c=this.applyColorModifications(c,a.modifications)),c):null}rgbToHsl(a,b,c){a/=255,b/=255,c/=255;let d=Math.max(a,b,c),e=Math.min(a,b,c),f,g,h=(d+e)/2;if(d===e)f=g=0;else{let i=d-e;switch(g=h>.5?i/(2-d-e):i/(d+e),d){case a:f=(b-c)/i+6*(b<c);break;case b:f=(c-a)/i+2;break;case c:f=(a-b)/i+4}f/=6}return{h:360*f,s:g,l:h}}hslToRgb(a,b,c){let d,e,f;a/=360;let g=(a,b,c)=>(c<0&&(c+=1),c>1&&(c-=1),c<1/6)?a+(b-a)*6*c:c<.5?b:c<2/3?a+(b-a)*(2/3-c)*6:a;if(0===b)d=e=f=c;else{let h=c<.5?c*(1+b):c+b-c*b,i=2*c-h;d=g(i,h,a+1/3),e=g(i,h,a),f=g(i,h,a-1/3)}return{r:Math.round(255*d),g:Math.round(255*e),b:Math.round(255*f)}}parseColorFromHex(a){if(!a||"string"!=typeof a)return null;let b=a.replace("#","");return 6===b.length?{r:parseInt(b.substr(0,2),16),g:parseInt(b.substr(2,2),16),b:parseInt(b.substr(4,2),16),a:255}:null}applyColorModifications(a,b){if(!a||!b||0===b.length)return a;let c={...a},{h:d,s:e,l:f}=this.rgbToHsl(c.r,c.g,c.b);for(let a of b){let b=a.value;switch(a.type){case"tint":let g=b/1e5;f+=(1-f)*g;break;case"shade":f*=1-b/1e5;break;case"lummod":case"lumMod":f*=b/1e5;break;case"lumoff":case"lumOff":f=Math.min(1,Math.max(0,f+b/1e5));break;case"satmod":case"satMod":e*=b/1e5;break;case"satoff":case"satOff":e=Math.min(1,Math.max(0,e+b/1e5));break;case"hue":d=b/6e4%360;break;case"hueoff":case"hueOff":d=(d+b/6e4)%360;break;case"huemod":case"hueMod":d=b/1e5*d%360;break;case"alpha":c.a=Math.round(b/1e5*255);break;case"alphamod":case"alphaMod":let h=b/1e5;c.a=Math.round(c.a*h);break;case"alphaoff":case"alphaOff":let i=b/1e5;c.a=Math.min(255,Math.max(0,Math.round(c.a+255*i)))}}let g=this.hslToRgb(d,e,f);return c.r=g.r,c.g=g.g,c.b=g.b,c.r=Math.min(255,Math.max(0,Math.round(c.r))),c.g=Math.min(255,Math.max(0,Math.round(c.g))),c.b=Math.min(255,Math.max(0,Math.round(c.b))),c.a=Math.min(255,Math.max(0,Math.round(c.a||255))),c}rgbToHsl(a,b,c){a/=255,b/=255,c/=255;let d=Math.max(a,b,c),e=Math.min(a,b,c),f,g,h=(d+e)/2;if(d===e)f=g=0;else{let i=d-e;switch(g=h>.5?i/(2-d-e):i/(d+e),d){case a:f=(b-c)/i+6*(b<c);break;case b:f=(c-a)/i+2;break;case c:f=(a-b)/i+4}f/=6}return{h:f,s:g,l:h}}hslToRgb(a,b,c){let d,e,f;if(0===b)d=e=f=c;else{let g=(a,b,c)=>(c<0&&(c+=1),c>1&&(c-=1),c<1/6)?a+(b-a)*6*c:c<.5?b:c<2/3?a+(b-a)*(2/3-c)*6:a,h=c<.5?c*(1+b):c+b-c*b,i=2*c-h;d=g(i,h,a+1/3),e=g(i,h,a),f=g(i,h,a-1/3)}return{r:Math.round(255*d),g:Math.round(255*e),b:Math.round(255*f)}}parseColorFromHex(a){if(!a||"string"!=typeof a)return null;let b=a.replace("#","");return 6===b.length?{r:parseInt(b.substr(0,2),16),g:parseInt(b.substr(2,2),16),b:parseInt(b.substr(4,2),16),a:255}:null}applyColorModifications(a,b){let c={...a};if(void 0!==b.tint){let a=b.tint/1e5;c.r=Math.round(c.r+(255-c.r)*a),c.g=Math.round(c.g+(255-c.g)*a),c.b=Math.round(c.b+(255-c.b)*a)}if(void 0!==b.shade){let a=b.shade/1e5;c.r=Math.round(c.r*(1-a)),c.g=Math.round(c.g*(1-a)),c.b=Math.round(c.b*(1-a))}if(void 0!==b.sat){let a=b.sat/1e5,d=.299*c.r+.587*c.g+.114*c.b;c.r=Math.round(d+(c.r-d)*a),c.g=Math.round(d+(c.g-d)*a),c.b=Math.round(d+(c.b-d)*a)}return void 0!==b.alpha&&(c.a=Math.round(255*(b.alpha/1e5))),c.r=Math.max(0,Math.min(255,c.r)),c.g=Math.max(0,Math.min(255,c.g)),c.b=Math.max(0,Math.min(255,c.b)),c.a=Math.max(0,Math.min(255,c.a)),c}getAllShapesFromTree(a){let b=[],c=a=>{a&&(Array.isArray(a)?a.forEach(c):"object"==typeof a&&((a.nvSpPr||a.nvPicPr||a.nvGrpSpPr)&&b.push(a),Object.values(a).forEach(a=>{a&&"object"==typeof a&&c(a)})))};return c(a),b}resolveStyleFillColor(a){try{if(!a)return null;let b=this._currentProcessingShape,c=b&&("Rectangle 3"===b.name||b.name?.includes("Rectangle 3")),d=a.idx||0;if(a.color){let b=this.processShapeColor(a.color);return b&&void 0!==b.r?(b.r,b.g,b.b,b.a):JSON.stringify(b),b}let e=this.presentation?.theme;if(c&&e&&e.colors&&e.colors.accent6&&this.parseColorFromHex(e.colors.accent6),e&&e.formatScheme){if(c&&e.formatScheme.fillStyles&&e.formatScheme.fillStyles.forEach((a,b)=>{}),d<1e3){let b=d-1;if(b>=0&&e.formatScheme.fillStyles&&b<e.formatScheme.fillStyles.length){let c=e.formatScheme.fillStyles[b];if(c.color&&"solid"===c.type)return c.color;if(c.gradient&&"gradient"===c.type)return this.processGradientFill(c.gradient);let d=this.processFillStyleToColor(c,a.color);if(d)return d}}else if(d>=1001){let b=d-1001;if(b>=0&&e.formatScheme.backgroundFills&&b<e.formatScheme.backgroundFills.length){let c=e.formatScheme.backgroundFills[b];if(c.color&&"solid"===c.type)return c.color;let d=this.processFillStyleToColor(c,a.color);if(d)return d}}}return null}catch(a){return null}}processFillStyleToColor(a,b=null){if(!a)return null;try{if("solid"===a.type&&a.color){if("placeholder"===a.color.type&&"phClr"===a.color.scheme){let c=this._currentProcessingShape;if(c&&!c.placeholder)return null;let d=b?this.processShapeColor(b):null;return this.resolvePlaceholderColor(a.color,d)}if(b)return this.processShapeColor(b);return this.processShapeColor(a.color)}if("gradient"===a.type){let c=null;if(a.stops&&a.stops.length>0?c=a.stops[0].color:a.gradient&&a.gradient.colors&&a.gradient.colors.length>0&&(c=a.gradient.colors[0]),c){if("placeholder"===c.type&&"phClr"===c.value){let a=this._currentProcessingShape;if(a&&!a.placeholder)return null;let d=b?this.processShapeColor(b):null,e=this.resolvePlaceholderColor(c,d);return c.modifications&&c.modifications.length>0&&(e=this.applyColorModifications(e,c.modifications)),e}if("scheme"===c.type){let a=this.getThemeColor(c.value);if(a){let b=a;return c.modifications&&c.modifications.length>0&&(b=this.applyColorModifications(b,c.modifications)),b}}if(b)return this.processShapeColor(b);return this.processShapeColor(c)}}if("pattern"===a.type&&a.fgColor){if(b)return this.processShapeColor(b);return this.processShapeColor(a.fgColor)}if("blip"===a.type||"image"===a.type)return null;"none"===a.type||a.type}catch(a){}return null}isImageLoading(a){return!this.imageCache.has(a)&&this.imageMap.has(a)}triggerSlideRerender(){"u">typeof window&&window.dispatchEvent(new Event("slideImageLoaded",{detail:{slideIndex:this.currentSlideIndex}}))}logSlideImageStatus(a,b){if(a.backgroundFill&&a.backgroundFill.fill){let b=a.backgroundFill.fill;if("image"===b.type&&b.imageData){let a=b.imageData.relationshipId;this.imageCache.has(a)}}if(a.commonSlideData&&a.commonSlideData.shapeTree)for(let b of a.commonSlideData.shapeTree)"pic"===b.type&&b.imageRelId&&this.imageCache.has(b.imageRelId)}async drawGroupShapeGeometry(a,b,c,d,e,f,g,h,i,j){a.SaveGrState();try{if(b.transform){if(b.transform.rotation&&0!==b.transform.rotation){let g=c+e/2,h=d+f/2;a.transform(Math.cos(b.transform.rotation*Math.PI/180),Math.sin(b.transform.rotation*Math.PI/180),-Math.sin(b.transform.rotation*Math.PI/180),Math.cos(b.transform.rotation*Math.PI/180),g-g*Math.cos(b.transform.rotation*Math.PI/180)+h*Math.sin(b.transform.rotation*Math.PI/180),h-g*Math.sin(b.transform.rotation*Math.PI/180)-h*Math.cos(b.transform.rotation*Math.PI/180))}if(b.transform.flipH||b.transform.flipV){let g=b.transform.flipH?-1:1,h=b.transform.flipV?-1:1,i=c+e/2,j=d+f/2;a.transform(g,0,0,h,i-i*g,j-j*h)}}if(g)if("object"==typeof g&&"linear"===g.type)a.fillRect(c,d,e,f,g);else{let b=null;"string"==typeof g?b=this.hexToRgb(g):void 0!==g.r&&(b=g),b&&a.drawRectangle(c,d,e,f,b,null,0)}if(h&&i>0){let b=null;"string"==typeof h?b=this.hexToRgb(h):void 0!==h.r&&(b=h),b&&a.drawRectangle(c,d,e,f,null,b,i)}if(b.shapeTree&&b.shapeTree.length>0){let c=this.sortShapesByRenderOrder(b.shapeTree);for(let b=0;b<c.length;b++){let d=c[b];try{await this.renderShape(a,d,j)}catch(a){}}}}catch(a){}finally{a.RestoreGrState()}}drawConnectorShapeGeometry(a,b,c,d,e,f,g,h){a.drawLine(c,d,c+e,d+f,g,h)}drawGraphicFrameGeometry(a,b,c,d,e,f,g,h,i){a.drawRectangle(c,d,e,f,null,"#a0a0a0",1)}drawDefaultShapeGeometry(a,b,c,d,e,f,g,h,i){a.drawRectangle(c,d,e,f,g,"#ff0000",i)}rgbToHex(a){if(!a)return null;let b=a=>{let b=Math.max(0,Math.min(255,Math.round(a))).toString(16);return 1===b.length?"0"+b:b};return`#${b(a.r||a.R||0)}${b(a.g||a.G||0)}${b(a.b||a.B||0)}`}createRotationMatrix(a,b,c){let d=a*Math.PI/180,e=Math.cos(d),f=Math.sin(d);return{a:e,b:f,c:-f,d:e,e:b-b*e+c*f,f:c-b*f-c*e}}applyRotationTransform(a,b,c,d,e,f){let g=this.getShapeRotation(b);if(!g||0===g)return!1;let h=this.createRotationMatrix(g,c+e/2,d+f/2),i={sx:h.a,sy:h.d,shx:h.c,shy:h.b,tx:h.e,ty:h.f,createDuplicate(){return{sx:this.sx,sy:this.sy,shx:this.shx,shy:this.shy,tx:this.tx,ty:this.ty,createDuplicate:this.createDuplicate}}};return a.transform3?a.transform3(i):a.transform&&a.transform(h.a,h.b,h.c,h.d,h.e,h.f),!0}getShapeRotation(a){return a.properties?.transform?.rot!==void 0?a.properties.transform.rot:a.transform?.rotation!==void 0?a.transform.rotation:a.spPr?.transform?.rot!==void 0?a.spPr.transform.rot:0}calculateRotatedBounds(a,b){if(!b||0===b)return a;let{x:c,y:d,w:e,h:f}=a,g=c+e/2,h=d+f/2,i=b*Math.PI/180,j=Math.cos(i),k=Math.sin(i),l=[{x:c,y:d},{x:c+e,y:d},{x:c+e,y:d+f},{x:c,y:d+f}].map(a=>{let b=a.x-g,c=a.y-h;return{x:g+b*j-c*k,y:h+b*k+c*j}}),m=Math.min(...l.map(a=>a.x)),n=Math.min(...l.map(a=>a.y));return{x:m,y:n,w:Math.max(...l.map(a=>a.x))-m,h:Math.max(...l.map(a=>a.y))-n}}getDefaultTextColor(a){if(this.presentation?.theme?.colors)if(a.placeholder?.type!=="title"&&a.placeholder?.type!=="ctrTitle")return this.presentation.theme.colors.tx1||this.presentation.theme.colors.tx2||{r:0,g:0,b:0,a:255};else{let a=this.resolveThemeColor("dk2");if(a)return a;let b=this.resolveThemeColor("dk1");return b||this.presentation.theme.colors.tx1||{r:0,g:0,b:0,a:255}}return{r:0,g:0,b:0,a:255}}async extractPartMediaRelationships(a){try{let b=await a.getRelationships();for(let[a,c]of Object.entries(b))if(c.type===fg.image.relationType||c.type.includes("video")||c.type.includes("audio")){let b=c.target;if(b.startsWith("../")?b=b.replace("../","ppt/"):b.startsWith("/")||(b=`/ppt/${b}`),this.mediaMap.set(a,{path:b,type:c.type}),this.isImageFile(b)){let c=this.imageMap.get(a);!c||this.isSVGFile(b)&&!this.isSVGFile(c)?(this.imageMap.set(a,b),this.isSVGFile(b)):!this.isSVGFile(b)&&this.isSVGFile(c)||this.imageMap.set(a,b)}}}catch(a){}}isMediaFile(a){let b=a.toLowerCase();return[".png",".jpg",".jpeg",".gif",".bmp",".svg",".webp",".tiff",".mp4",".mov",".avi",".mp3",".wav",".ogg"].some(a=>b.endsWith(a))}isSVGFile(a){return a&&a.toLowerCase().endsWith(".svg")}extractSVGRelationshipId(a){try{let b=a.getElementsByTagName("*");for(let a=0;a<b.length;a++){let c=b[a];if("svgBlip"===c.localName){let a=c.getAttribute("r:embed")||c.getAttribute("r:id")||c.getAttributeNS("http://schemas.openxmlformats.org/officeDocument/2006/relationships","embed");if(a)return a}}return null}catch(a){return console.warn("[WARN] Slide Renderer: Error extracting SVG relationship ID:",a),null}}buildSVGRelationshipMapping(){let a=new Map,b=new Map;for(let[c,d]of this.imageMap.entries()){let e=d.split("/").pop().replace(/\.[^.]+$/,"");this.isSVGFile(d)?b.set(e,c):d.toLowerCase().endsWith(".png")&&a.set(e,c)}for(let[c,d]of a.entries()){let a=b.get(c);if(!a){let d=c.match(/^(image-\d+-)(\d+)$/);if(d){let c=d[1]+(parseInt(d[2])+1);a=b.get(c)}}a&&this.svgRelationshipMap.set(d,a)}}async loadAndDrawImage(a,b,c,d,e,f,g){try{if(this.isSVGFile(c.path)&&this.svgRenderer)return void await this.loadAndDrawSVGImage(a,b,c,d,e,f,g);this.isSVGFile(c.path)&&this.logger.log("warn",this.constructor.name,`SVG detected but no SVG renderer available: ${c.path}`);let h=this.imageCache.get(b.imageRelId);if(!h){let a=await this.zip.getFileData(c.path);if(!a)throw Error("Image file not found in ZIP");let d=this.getMimeType(c.path),e=new Blob([a],{type:d}),f=URL.createObjectURL(e),g=new Image;g.crossOrigin="anonymous",await new Promise((a,c)=>{g.onload=()=>{h={image:g,width:g.naturalWidth,height:g.naturalHeight,url:f},this.imageCache.set(b.imageRelId,h),a()},g.onerror=()=>{c(Error("Failed to load image"))},g.src=f})}this.drawActualImage(a,b,h,d,e,f,g)}catch(c){this.drawImagePlaceholder(a,b,d,e,f,g)}}async loadAndDrawSVGImage(a,b,c,d,e,f,g){try{let a=this.imageCache.get(b.imageRelId);if(!a){let d=await this.zip.getFileData(c.path);if(!d)throw Error("SVG file not found in ZIP");a={content:new TextDecoder("utf-8").decode(d),type:"svg",path:c.path,width:100,height:100},this.imageCache.set(b.imageRelId,a)}await this.svgRenderer.renderSVG(a.content,d,e,f,g,{preserveAspectRatio:!0})}catch(h){this.logger.logError(this.constructor.name,`Failed to load/render SVG: ${c.path}`,h);try{let h=await this.zip.getFileData(c.path);if(h){let c=new Blob([h],{type:"image/svg+xml"}),i=URL.createObjectURL(c),j=new Image;j.crossOrigin="anonymous",await new Promise((c,h)=>{j.onload=()=>{let h={image:j,width:j.naturalWidth,height:j.naturalHeight,url:i};this.drawActualImage(a,b,h,d,e,f,g),c()},j.onerror=h,j.src=i})}}catch(c){this.logger.log("warn",this.constructor.name,"SVG fallback also failed, showing placeholder"),this.drawImagePlaceholder(a,b,d,e,f,g)}}}drawFilePlaceholder(a,b,c,d,e,f,g){let h=a.getContext();h.save(),h.fillStyle="#e9ecef",h.fillRect(d,e,f,g),h.strokeStyle="#adb5bd",h.lineWidth=1,h.strokeRect(d,e,f,g);let i="❓";c.includes("video")?i="\uD83C\uDFAC":c.includes("audio")&&(i="\uD83C\uDFB5"),h.fillStyle="#495057",h.font=`${.5*Math.min(f,g)}px Arial`,h.textAlign="center",h.textBaseline="middle",h.fillText(i,d+f/2,e+g/2),h.restore()}async renderShape(a,b,c){try{if(!b)return;let d=this.getShapeBounds(b,c);if(!d||d.w<=0||d.h<=0)return;let{x:e,y:f,w:g,h}=d;if(b.groupTransform){a.SaveGrState();let d=this.createTransformMatrix(b,c);a.transform3(d)}switch(b.graphicData&&b.graphicData.uri,b.type){case"sp":this.renderRegularShape(a,b,e,f,g,h);break;case"pic":await this.renderPictureShape(a,b,e,f,g,h);break;case"grpSp":this.renderGroupShape(a,b);break;case"cxnSp":this.renderConnectorShape(a,b,e,f,g,h);break;case"graphicFrame":await this.renderGraphicFrame(a,b,e,f,g,h);break;default:this.renderDefaultShape(a,b,e,f,g,h)}b.groupTransform&&a.RestoreGrState()}catch(a){}}renderRegularShape(a,b,c,d,e,f){let g=this.getShapeRotation(b);0!==g&&a.SaveGrState(),this.applyRotationTransform(a,b,c,d,e,f);let h=this.getShapeFillColor(b),i=this.getShapeStrokeColor(b),j=this.getShapeLineWidth(b),k=this.getShapeStrokeInfo(b),l=this.getShapePresetGeometry(b),m=this.extractShapeAdjustments(b),n=null,o=null;h&&("object"==typeof h&&h.type&&h.stops?n=h:"string"==typeof h?n=this.hexToRgb(h):void 0!==h.r&&(n=h)),i&&("string"==typeof i?o=this.hexToRgb(i):void 0!==i.r&&(o=i)),l?a.drawPresetGeometry(l,c,d,e,f,n,o,j,k,m):a.drawRectangle(c,d,e,f,n,o,j||2,k),0!==g&&a.RestoreGrState()}extractShapeAdjustments(a){let b={};try{if(a.geometry){if(a.geometry.avLst)for(let[c,d]of Object.entries(a.geometry.avLst))"object"==typeof d&&void 0!==d.val?b[c]=d.val:"number"==typeof d&&(b[c]=d);if(a.geometry.adjLst)for(let[c,d]of Object.entries(a.geometry.adjLst))"object"==typeof d&&void 0!==d.val?b[c]=d.val:"number"==typeof d&&(b[c]=d);if(a.geometry.preset&&a.geometry.adjustments)for(let[c,d]of Object.entries(a.geometry.adjustments))b[c]=d}if(a.spPr&&a.spPr.geometry){let c=a.spPr.geometry;if(c.avLst){for(let a of c.avLst)if(a.name&&void 0!==a.fmla){let c=this.parseAdjustmentValue(a.fmla);null!==c&&(b[a.name]=c)}}}a.adjustments&&Object.assign(b,a.adjustments),a.commonSlideData&&a.commonSlideData.adjustments&&Object.assign(b,a.commonSlideData.adjustments)}catch(a){}return b}parseAdjustmentValue(a){if("number"==typeof a)return a;if("string"==typeof a){let b=parseFloat(a);if(!isNaN(b))return b;let c=a.match(/val\s+(-?\d+)/);if(c)return parseInt(c[1],10);let d=a.match(/(-?\d+)%/);if(d)return 1e3*parseInt(d[1],10)}return null}getShapePresetGeometry(a){return a.geometry&&a.geometry.preset?a.geometry.preset:a.properties&&a.properties.geometry&&a.properties.geometry.preset?a.properties.geometry.preset:a.spPr&&a.spPr.geometry&&a.spPr.geometry.preset?a.spPr.geometry.preset:a.spPr&&a.spPr.prstGeom&&a.spPr.prstGeom.prst?a.spPr.prstGeom.prst:null}getShapeStrokeInfo(a){let b={},c=a.properties?.line||a.properties?.stroke;if(c){if(c.dashArray&&c.dashArray.length>0&&(b.dashArray=c.dashArray),(c.lineCap||c.cap)&&(b.lineCap=c.lineCap||c.cap),(c.lineJoin||c.join)&&(b.lineJoin=c.lineJoin||c.join),c.miterLimit&&(b.miterLimit=c.miterLimit),c.headEnd){let a=c.headEnd;b.headEnd={type:a.type||a.val||"none",w:a.w||a.width,len:a.len||a.length}}if(c.tailEnd){let a=c.tailEnd;b.tailEnd={type:a.type||a.val||"none",w:a.w||a.width,len:a.len||a.length}}}if(a.spPr&&a.spPr.ln){let c=a.spPr.ln;c.prstDash&&(b.dashArray=this.convertstandardDashPattern(c.prstDash)),c.cap&&(b.lineCap=this.convertstandardLineCap(c.cap)),c.join&&(b.lineJoin=this.convertstandardLineJoin(c.join)),this._mapArrowSize.bind(this);let d=a=>a?a.toString():"none";c.headEnd&&(b.headEnd={type:d(c.headEnd.type),w:c.headEnd.w,len:c.headEnd.len}),c.tailEnd&&(b.tailEnd={type:d(c.tailEnd.type),w:c.tailEnd.w,len:c.tailEnd.len})}return Object.keys(b).length>0?b:null}_mapArrowSize(a){switch((a||"").toString()){case"sm":case"small":default:return 1;case"med":case"medium":return 1.5;case"lg":case"large":return 2}}convertstandardDashPattern(a){return({solid:[],dot:[2,2],dash:[8,4],dashDot:[8,4,2,4],dashDotDot:[8,4,2,4,2,4],lgDash:[16,8],lgDashDot:[16,8,4,8],lgDashDotDot:[16,8,4,8,4,8],sysDash:[6,3],sysDashDot:[6,3,2,3],sysDashDotDot:[6,3,2,3,2,3],sysDot:[1,1]})[a]||[]}convertstandardLineCap(a){return({rnd:"round",sq:"square",flat:"butt"})[a]||"round"}convertstandardLineJoin(a){return({round:"round",bevel:"bevel",miter:"miter"})[a]||"round"}async renderPictureShape(a,b,c,d,e,f){let g=this.getShapeRotation(b),h=g&&0!==g;h&&(a.SaveGrState(),this.applyRotationTransform(a,b,c,d,e,f));let i=this.getShapePresetGeometry(b);if(i&&"rect"!==i){let g=this.getShapeStrokeColor(b),h=this.getShapeLineWidth(b),j=this.getShapeStrokeInfo(b);a.drawPresetGeometry(i,c,d,e,f,null,g,h,j)}let j=this.getShapeFillColor(b),k=this.getShapeStrokeColor(b),l=this.getShapeLineWidth(b);try{await this.drawPictureShapeGeometry(a,b,c,d,e,f,j,k,l)}catch(g){this.drawImagePlaceholder(a,b,c,d,e,f)}h&&a.RestoreGrState()}renderConnectorShape(a,b,c,d,e,f){let g=this.getShapeRotation(b),h=g&&0!==g;h&&(a.SaveGrState(),this.applyRotationTransform(a,b,c,d,e,f));let i=this.getShapeStrokeColor(b),j=this.getShapeLineWidth(b),k=this.getShapeStrokeInfo(b),l=this.getConnectorType(b);try{this.logger?.log("info",this.constructor.name,"[Connector Render] start",{connectorType:l,bounds:{x:c,y:d,w:e,h:f},strokeColor:i,lineWidth:j,strokeInfo:k})}catch(a){}switch(l){case"straight":"function"==typeof a.drawLineWithArrows?a.drawLineWithArrows(c,d,c+e,d+f,i,j,k):a.drawLine(c,d,c+e,d+f,i,j);break;case"elbow":this.drawElbowConnector(a,c,d,e,f,i,j,k);break;case"curved":this.drawCurvedConnector(a,c,d,e,f,i,j,k);break;default:a.drawLine(c,d,c+e,d+f,i,j)}h&&a.RestoreGrState();try{this.logger?.log("info",this.constructor.name,"[Connector Render] done")}catch(a){}}getConnectorType(a){if(a.properties&&a.properties.connector)return a.properties.connector.type||"straight";if(a.spPr&&a.spPr.connector)return a.spPr.connector.type||"straight";let b=this.getShapePresetGeometry(a);if(b&&b.includes("Connector")){if(b.includes("bent"))return"elbow";else if(b.includes("curved"))return"curved"}return"straight"}drawElbowConnector(a,b,c,d,e,f,g,h){if(!a.m_oContext)return;a.m_oContext.save(),a.m_oContext.beginPath();let i=b+.5*d,j=c+.5*e;a.m_oContext.moveTo(b,c),a.m_oContext.lineTo(i,c),a.m_oContext.lineTo(i,j),a.m_oContext.lineTo(b+d,j),a.m_oContext.lineTo(b+d,c+e),f&&(a.m_oContext.strokeStyle=a.colorToRgb(f),a.m_oContext.lineWidth=g||1,h&&a.applyStrokeInfo(h),a.m_oContext.stroke()),a.m_oContext.restore()}drawCurvedConnector(a,b,c,d,e,f,g,h){a.m_oContext&&(a.m_oContext.save(),a.m_oContext.beginPath(),a.m_oContext.moveTo(b,c),a.m_oContext.bezierCurveTo(b+.3*d,c,b+.7*d,c+e,b+d,c+e),f&&(a.m_oContext.strokeStyle=a.colorToRgb(f),a.m_oContext.lineWidth=g||1,h&&a.applyStrokeInfo(h),a.m_oContext.stroke()),a.m_oContext.restore())}async renderGraphicFrame(a,b,c,d,e,f){let g=this.getShapeRotation(b),h=g&&0!==g;h&&(a.SaveGrState(),this.applyRotationTransform(a,b,c,d,e,f));let i=this.getShapeStrokeColor(b),j=this.getShapeLineWidth(b)||1,k=this.getShapeStrokeInfo(b);if(a.drawRectangle(c,d,e,f,null,i,j,k),b.graphicData)switch(b.graphicData.uri){case"http://schemas.openxmlformats.org/drawingml/2006/table":this.renderTableFrame(a,b,c,d,e,f);break;case"http://schemas.openxmlformats.org/drawingml/2006/chart":await this.renderChartFrame(a,b,c,d,e,f);break;case"http://schemas.openxmlformats.org/drawingml/2006/diagram":this.renderDiagramFrame(a,b,c,d,e,f);break;default:this.renderGenericFrame(a,b,c,d,e,f)}else this.renderGenericFrame(a,b,c,d,e,f);h&&a.RestoreGrState()}renderTableFrame(a,b,c,d,e,f){let g=this.getTableInstance(b);if(!g)return void this.drawTablePlaceholder(a,c,d,e,f);a.SaveGrState();try{this.drawTableBackgroundAndOuterBorder(a,g,c,d,e,f),this.drawCellsBackground(a,g,c,d,e,f),this.drawCellsContent(a,g,c,d,e,f),this.drawCellsBorders(a,g,c,d,e,f)}catch(b){this.drawTablePlaceholder(a,c,d,e,f)}finally{a.RestoreGrState()}}getTableInstance(a){if(a.table&&a.table instanceof CTable)return a.table;if(a.graphicData&&a.graphicData.tableXml)try{let b=this.parseTableFromXML(a.graphicData.tableXml);if(b)return a.table=b,b}catch(a){console.error("[GetTableInstance] Error parsing table:",a.message),console.error("[GetTableInstance] Error stack:",a.stack)}return null}drawTableBackgroundAndOuterBorder(a,b,c,d,e,f){b.getTableProperties();let g=b.getTableBorders(),h=b.getTableShading();if(h&&h.fill){let b=this.resolveTableBackgroundColor(h);a.b_color1(b.r,b.g,b.b,b.a||255),a.TableRect(c,d,e,f)}g&&this.drawTableOuterBorder(a,g,c,d,e,f)}drawCellsBackground(a,b,c,d,e,f){let g=b.getRowCount(),h=b.getColumnCount(),i=this.calculateCellWidths(b,e),j=this.calculateCellHeights(b,f),k=d;for(let d=0;d<g;d++){let e=c,f=j[d];for(let c=0;c<h;c++){let f=b.getCell(d,c);if(!f)continue;let g=i[c],h=f.getGridSpan()||1,l=f.getRowSpan()||1,m=this.calculateMergedCellWidth(i,c,h),n=this.calculateMergedCellHeight(j,d,l);this.isStartingCellOfMerge(f,d,c)&&this.drawCellBackground(a,f,e,k,m,n),e+=g}k+=f}}drawCellsContent(a,b,c,d,e,f){let g=b.getRowCount(),h=b.getColumnCount(),i=this.calculateCellWidths(b,e),j=this.calculateCellHeights(b,f),k=d;for(let d=0;d<g;d++){let e=c,f=j[d];for(let c=0;c<h;c++){let f=b.getCell(d,c);if(!f)continue;let g=i[c];if(this.isStartingCellOfMerge(f,d,c)){let b=f.getGridSpan()||1,g=f.getRowSpan()||1,h=this.calculateMergedCellWidth(i,c,b),l=this.calculateMergedCellHeight(j,d,g);this.drawCellContent(a,f,e,k,h,l)}e+=g}k+=f}}drawCellsBorders(a,b,c,d,e,f){let g=b.getRowCount(),h=b.getColumnCount(),i=this.calculateCellWidths(b,e),j=this.calculateCellHeights(b,f);for(let e=0;e<g;e++)for(let f=h-1;f>=0;f--){let g=b.getCell(e,f);if(!g)continue;let h=i[f],k=j[e],l=c+this.calculateCellXOffset(i,f),m=d+this.calculateCellYOffset(j,e);this.drawCellBorders(a,g,l,m,h,k,e,f,b)}}drawTablePlaceholder(a,b,c,d,e){let f=d/3,g=e/3;for(let d=0;d<3;d++)for(let e=0;e<3;e++){let h=b+e*f,i=c+d*g;a.drawRectangle(h,i,f,g,null,{r:128,g:128,b:128,a:255},1)}this.drawCenteredText(a,"Table",b,c,d,e)}drawTableOuterBorder(a,b,c,d,e,f){["top","right","bottom","left"].forEach(g=>{let h=b[g];if(h&&"none"!==h.style){let b=this.resolveBorderColor(h),i=h.width||1;switch(a.p_color(b.r,b.g,b.b,b.a||255),a.p_width(i),g){case"top":a.drawHorLine(c,d,c+e,d,i);break;case"right":a.drawVerLine(c+e,d,d+f,i);break;case"bottom":a.drawHorLine(c,d+f,c+e,d+f,i);break;case"left":a.drawVerLine(c,d,d+f,i)}}})}drawCellBackground(a,b,c,d,e,f){let g=b.getCellShading();if(g&&g.fill){let b=this.resolveCellBackgroundColor(g);a.b_color1(b.r,b.g,b.b,b.a||255),a.TableRect(c,d,e,f)}}drawCellContent(a,b,c,d,e,f){let g=b.getTextBody();g&&g.paragraphs&&this.renderCellTextContent(a,g,c+5,d+5,e-10,f-10)}drawCellBorders(a,b,c,d,e,f,g,h,i){let j=b.getCellBorders();j&&["top","right","bottom","left"].forEach(b=>{let k=j[b];if(k&&"none"!==k.style&&this.shouldDrawBorder(b,g,h,i)){let g=this.resolveBorderColor(k),h=k.width||1;switch(a.p_color(g.r,g.g,g.b,g.a||255),a.p_width(h),b){case"top":a.drawHorLine(c,d,c+e,d,h);break;case"right":a.drawVerLine(c+e,d,d+f,h);break;case"bottom":a.drawHorLine(c,d+f,c+e,d+f,h);break;case"left":a.drawVerLine(c,d,d+f,h)}}})}shouldDrawBorder(a,b,c,d){let e=d.getRowCount(),f=d.getColumnCount();switch(a){case"top":return 0===b;case"right":return c===f-1;case"bottom":return b===e-1;case"left":return 0===c;default:return!0}}calculateCellWidths(a,b){let c=a.getTableGrid();if(!c||0===c.length){let c=a.getColumnCount();return Array(c).fill(b/c)}let d=c.reduce((a,b)=>a+(b.width||0),0);return c.map(a=>(a.width||0)/d*b)}calculateCellHeights(a,b){let c=a.getRowCount(),d=[],e=!1;for(let b=0;b<c;b++){let c=a.getRow(b);c&&c.height?(d.push(c.height),e=!0):d.push(0)}if(!e)return d.map(()=>b/c);let f=d.reduce((a,b)=>a+b,0),g=d.filter(a=>0===a).length,h=g<c?f/(c-g):b/c,i=d.map(a=>0===a?h:a),j=i.reduce((a,b)=>a+b,0);return i.map(a=>a/j*b)}isStartingCellOfMerge(a,b,c){return!a.isMergedContinue}calculateMergedCellWidth(a,b,c){let d=0;for(let e=0;e<c;e++)b+e<a.length&&(d+=a[b+e]);return d}calculateMergedCellHeight(a,b,c){let d=0;for(let e=0;e<c;e++)b+e<a.length&&(d+=a[b+e]);return d}calculateCellXOffset(a,b){let c=0;for(let d=0;d<b;d++)c+=a[d];return c}calculateCellYOffset(a,b){let c=0;for(let d=0;d<b;d++)c+=a[d];return c}resolveTableBackgroundColor(a){return{r:255,g:255,b:255,a:255}}resolveCellBackgroundColor(a){return{r:255,g:255,b:255,a:255}}resolveBorderColor(a){return{r:0,g:0,b:0,a:255}}renderCellTextContent(a,b,c,d,e,f){if(!b.paragraphs||0===b.paragraphs.length)return;let g=d;b.paragraphs.forEach(b=>{if(!b.runs||0===b.runs.length){g+=16;return}let d=b.runs.map(a=>a.text||"").join("");if(!d.trim()){g+=16;return}let e=b.properties||{},f=e.fontSize||12,h=e.fontFamily||"Arial",i=e.bold||!1,j=e.italic||!1;a.font(h,f,i?"bold":"normal",j?"italic":"normal");let k=this.resolveTextColor(b);a.b_color1(k.r,k.g,k.b,k.a||255),a.FillText(c,g,d),g+=16})}resolveTextColor(a){return{r:0,g:0,b:0,a:255}}parseTableFromXML(a){if(!a)return null;try{let b=new DOMParser().parseFromString(a,"text/xml");if("parsererror"===b.documentElement.nodeName)return console.error("[ParseTableXML] XML parsing error"),null;let c=new CTable;if(this.parseTableProperties(b,c),this.parseTableGrid(b,c),this.parseTableRows(b,c),this.processTableMerges(c),!this.validateTableStructure(c))return null;return c}catch(a){return console.error("[ParseTableXML] Exception during table parsing:",a.message),console.error("[ParseTableXML] Error stack:",a.stack),null}}parseTableProperties(a,b){let c=a.querySelector("tblPr");if(c||(c=a.querySelector("a\\:tblPr")),c){let a={},d=c.querySelector("tblStyle");d||(d=c.querySelector("a\\:tblStyle")),d&&(a.style=d.getAttribute("val"));let e=c.querySelector("tblBorders");e||(e=c.querySelector("a\\:tblBorders")),e&&(a.borders=this.parseTableBorders(e));let f=c.querySelector("tblShading");f||(f=c.querySelector("a\\:tblShading")),f&&(a.shading=this.parseTableShading(f));let g=c.querySelector("tblLayout");g||(g=c.querySelector("a\\:tblLayout")),g&&(a.layout=g.getAttribute("type")||"autofit");let h=c.querySelector("tblW");if(h||(h=c.querySelector("a\\:tblW")),h){let b=h.getAttribute("w"),c=h.getAttribute("type")||h.getAttribute("wtype")||"auto";b?a.preferredWidth={value:parseInt(b)||0,type:c.toLowerCase()}:a.preferredWidth={value:0,type:c.toLowerCase()}}b.setTableProperties(a)}}parseTableGrid(a,b){let c=a.querySelector("tblGrid");if(c||(c=a.querySelector("a\\:tblGrid")),c){let a=c.querySelectorAll("gridCol");0===a.length&&(a=c.querySelectorAll("a\\:gridCol"));let d=[];a.forEach(a=>{let b=a.getAttribute("w"),c={width:b?parseInt(b):914400,type:a.getAttribute("type")||"auto"};d.push(c)}),b.setTableGrid(d)}}parseTableRows(a,b){let c=a.querySelectorAll("tr");0===c.length&&(c=a.querySelectorAll("a\\:tr")),c.forEach((a,c)=>{let d=new CTableRow;this.parseRowProperties(a,d),this.parseRowCells(a,d,c),b.addRow(d)})}parseRowProperties(a,b){let c=a.querySelector("trPr");if(c||(c=a.querySelector("a\\:trPr")),c){let a=c.querySelector("trHeight");if(a||(a=c.querySelector("a\\:trHeight")),a){let c=parseInt(a.getAttribute("val"),10);Number.isNaN(c)||(b.height=c),b.heightRule=a.getAttribute("hRule")||"auto"}let d=c.querySelector("tblHeader");d||(d=c.querySelector("a\\:tblHeader")),d&&(b.isHeader=!0)}if((!b.height||b.height<=0)&&a){let c=a.getAttribute("h");if(null!==c){let a=parseInt(c,10);!Number.isNaN(a)&&a>0&&(b.height=a,b.heightRule||(b.heightRule="auto"))}}}parseRowCells(a,b,c){let d=a.querySelectorAll("tc");0===d.length&&(d=a.querySelectorAll("a\\:tc")),d.forEach((a,d)=>{let e=new CTableCell;this.parseCellProperties(a,e,c,d),this.parseCellContent(a,e),b.addCell(e)})}parseCellProperties(a,b,c,d){let e=a.getAttribute("gridSpan"),f=a.getAttribute("rowSpan"),g=a.getAttribute("vMerge"),h=a.getAttribute("hMerge");if(e){let a=parseInt(e);a>1&&(b.gridSpan=a)}if(f){let a=parseInt(f);a>1&&(b.rowSpan=a)}("1"===g||"true"===g||"continue"===g)&&(b.isMergedContinue=!0),("1"===h||"true"===h)&&(b.isMergedContinue=!0);let i=a.querySelector("tcPr");if(i||(i=a.querySelector("a\\:tcPr")),i){let a=i.querySelector("gridSpan");if(a||(a=i.querySelector("a\\:gridSpan")),a){let c=parseInt(a.getAttribute("val"))||1;c>1&&(b.gridSpan=c)}let c=i.querySelector("rowSpan");if(c||(c=i.querySelector("a\\:rowSpan")),c){let a=parseInt(c.getAttribute("val"))||1;a>1&&(b.rowSpan=a)}let d=i.querySelector("vMerge");d||(d=i.querySelector("a\\:vMerge")),d&&"restart"!==d.getAttribute("val")&&(b.isMergedContinue=!0);let e=i.querySelector("tcBorders");e||(e=i.querySelector("a\\:tcBorders")),e&&(b.borders=this.parseCellBorders(e));let f=i.querySelector("tcShading");f||(f=i.querySelector("a\\:tcShading")),f&&(b.shading=this.parseCellShading(f));let g=i.querySelector("tcMar");g||(g=i.querySelector("a\\:tcMar")),g&&(b.margins=this.parseCellMargins(g))}}parseCellContent(a,b){let c=this.parseTextBodyFromElement(a);c&&b.setTextBody(c)}processTableMerges(a){let b=a.getRows();for(let c=0;c<b.length;c++){let d=b[c].getCells();for(let b=0;b<d.length;b++){let e=d[b];e.gridSpan>1&&this.processHorizontalMerge(a,c,b,e.gridSpan),e.rowSpan>1&&this.processVerticalMerge(a,c,b,e.rowSpan)}}}processHorizontalMerge(a,b,c,d){for(let e=1;e<d;e++){let d=a.getCell(b,c+e);d&&(d.isMergedContinue=!0,d.mergeParent={row:b,col:c})}}processVerticalMerge(a,b,c,d){for(let e=1;e<d;e++){let d=a.getCell(b+e,c);d&&(d.isMergedContinue=!0,d.mergeParent={row:b,col:c})}}validateTableStructure(a){let b=a.getRows();if(0===b.length)return!1;let c=a.getTableGrid().length;if(0===c)return!1;for(let a of b){let b=a.getCells();b.length!==c&&console.warn("[Table Validation] Row has",b.length,"cells, expected",c,"- allowing due to merges")}return!0}parseTableBorders(a){let b={};return["top","left","bottom","right","insideH","insideV"].forEach(c=>{let d=a.querySelector(c);d||(d=a.querySelector(`a\\:${c}`)),d&&(b[c]=this.parseBorderProperties(d))}),b}parseCellBorders(a){return this.parseTableBorders(a)}parseBorderProperties(a){return{style:a.getAttribute("val")||"single",size:parseInt(a.getAttribute("sz"))||4,color:this.parseColor(a),space:parseInt(a.getAttribute("space"))||0}}parseTableShading(a){return this.parseCellShading(a)}parseCellShading(a){let b=a.getAttribute("fill"),c=a.getAttribute("color");return{fill:b,color:c?this.parseColorFromHex(c):null}}parseCellMargins(a){let b={};return["top","left","bottom","right"].forEach(c=>{let d=a.querySelector(c);d||(d=a.querySelector(`a\\:${c}`)),d&&(b[c]=parseInt(d.getAttribute("w"))||0)}),b}async renderChartFrame(a,b,c,d,e,f){try{let g=b.chartData;if(g&&"DEFERRED_CHART"===g.type&&(g=null,b.chartData=null),!g&&b.graphicData&&window.ChartProcessor){let a=new ChartProcessor(this.context);if(b.graphicData.chartRef){let c={slideIndex:this.currentSlideIndex,slideName:this.currentSlide?.name||`slide${this.currentSlideIndex+1}`,slide:this.currentSlide};try{let d=await a.loadChartFromRelationship(b.graphicData.chartRef,c);d&&(b.chartData=d,g=d)}catch(a){}}else g=b.graphicData.element?a.parseEmbeddedChartData(b.graphicData.element):a.createPlaceholderChart();g&&(b.chartData=g)}if(g&&ChartRenderer){let b=new ChartRenderer(a);await b.renderChart(g,c,d,e,f);return}this.renderEnhancedChartPlaceholder(a,b,c,d,e,f)}catch(g){console.error("[Chart Debug] Error in renderChartFrame:",g),this.renderSimpleChartPlaceholder(a,b,c,d,e,f)}}renderEnhancedChartPlaceholder(a,b,c,d,e,f){try{a.fillRect(c,d,e,f,{r:248,g:249,b:250}),a.strokeRect(c,d,e,f,{r:200,g:200,b:200},1);let b=c+40,g=d+30,h=e-80,i=f-60,j=[4500,5200,4800,6100,5900],k=g+i-20;a.drawLine(b,g,b,k,{r:68,g:68,b:68},1);for(let c=0;c<=7;c++){let d=1e3*c,e=k-d/7e3*(i-40);c>0&&a.drawLine(b,e,b+h,e,{r:200,g:200,b:200},1)}a.drawLine(b,k,b+h,k,{r:68,g:68,b:68},1);let l=h/(j.length-1),m={r:91,g:155,b:213};for(let c=0;c<j.length;c++){let d=b+c*l,e=(j[c]-0)/7e3,f=k-e*(i-40);if(c<j.length-1){let e=b+(c+1)*l,g=(j[c+1]-0)/7e3,h=k-g*(i-40);a.drawLine(d,f,e,h,m,2)}a.fillCircle(d,f,4,m)}let n=k+40,o=b+h/2;a.drawLine(o-30,n,o-10,n,m,2),a.fillCircle(o-20,n,3,m)}catch(g){console.error("[Chart Debug] Error rendering enhanced placeholder:",g),this.renderSimpleChartPlaceholder(a,b,c,d,e,f)}}renderSimpleChartPlaceholder(a,b,c,d,e,f){let g=e/5,h=.8*f,i=d+f-20;for(let b=0;b<4;b++){let d=c+20+b*g,e=h*(.3+.7*Math.random()),f=i-e;a.drawRectangle(d,f,.8*g,e,{r:100,g:150,b:200,a:255},null,0)}}drawValueLabel(a,b,c,d){a.m_oContext&&(a.m_oContext.save(),a.m_oContext.fillStyle="rgba(80, 80, 80, 1)",a.m_oContext.font="10px Calibri",a.m_oContext.textAlign="center",a.m_oContext.textBaseline="bottom",a.m_oContext.fillText(b,c,d),a.m_oContext.restore())}drawCategoryLabel(a,b,c,d){a.m_oContext&&(a.m_oContext.save(),a.m_oContext.fillStyle="rgba(68, 68, 68, 1)",a.m_oContext.font="10px Calibri",a.m_oContext.textAlign="center",a.m_oContext.textBaseline="top",a.m_oContext.fillText(b,c,d),a.m_oContext.restore())}drawChartTitle(a,b,c,d){a.m_oContext&&(a.m_oContext.save(),a.m_oContext.fillStyle="rgba(0, 0, 0, 1)",a.m_oContext.font="bold 14px Calibri",a.m_oContext.textAlign="center",a.m_oContext.textBaseline="middle",a.m_oContext.fillText(b,c,d),a.m_oContext.restore())}renderDiagramFrame(a,b,c,d,e,f){let g=c+e/2,h=d+f/2,i=Math.min(e,f)/4,j=[{x:g,y:h-i},{x:g+i,y:h},{x:g,y:h+i},{x:g-i,y:h}];for(let b=0;b<j.length;b++){let c=(b+1)%j.length;a.drawLine(j[b].x,j[b].y,j[c].x,j[c].y,{r:128,g:128,b:128,a:255},2)}j.forEach(b=>{a.drawEllipse(b.x-15,b.y-15,30,30,{r:200,g:200,b:200,a:255},{r:128,g:128,b:128,a:255},2)})}renderGenericFrame(a,b,c,d,e,f){a.drawRectangle(c,d,e,f,null,"#a0a0a0",1)}drawCenteredText(a,b,c,d,e,f){}renderDefaultShape(a,b,c,d,e,f){let g=this.getShapeRotation(b),h=g&&0!==g;h&&(a.SaveGrState(),this.applyRotationTransform(a,b,c,d,e,f));let i=this.getShapeFillColor(b),j=this.getShapeStrokeColor(b),k=this.getShapeLineWidth(b)||1,l=this.getShapeStrokeInfo(b);a.drawRectangle(c,d,e,f,i,j,k,l),this.drawCenteredText(a,b.type||"Shape",c,d,e,f),h&&a.RestoreGrState()}processShapeColor(a){let b;if(!a)return null;if("string"==typeof a)if(!a.startsWith("#"))return null;else b=this.hexToRgb(a);else{if("object"!=typeof a||void 0===a.r)return null;b=a}b.r,b.g,b.b,b.a;let c={...b};if(void 0!==a.tint){let b=a.tint/1e5;c.r=Math.round(c.r+(255-c.r)*b),c.g=Math.round(c.g+(255-c.g)*b),c.b=Math.round(c.b+(255-c.b)*b)}if(void 0!==a.shade){let b=1-a.shade/1e5;c.r=Math.round(c.r*b),c.g=Math.round(c.g*b),c.b=Math.round(c.b*b)}if(void 0!==a.satMod){let b=this.rgbToHsl(c.r,c.g,c.b);b.s*=a.satMod/1e5;let d=this.hslToRgb(b.h,b.s,b.l);c.r=d.r,c.g=d.g,c.b=d.b}return c.r,c.g,c.b,c.a,c}rgbToHsl(a,b,c){a/=255,b/=255,c/=255;let d=Math.max(a,b,c),e=Math.min(a,b,c),f,g,h=(d+e)/2;if(d===e)f=g=0;else{let i=d-e;switch(g=h>.5?i/(2-d-e):i/(d+e),d){case a:f=(b-c)/i+6*(b<c);break;case b:f=(c-a)/i+2;break;case c:f=(a-b)/i+4}f/=6}return{h:f,s:g,l:h}}hslToRgb(a,b,c){let d,e,f;if(0===b)d=e=f=c;else{let g=(a,b,c)=>(c<0&&(c+=1),c>1&&(c-=1),c<1/6)?a+(b-a)*6*c:c<.5?b:c<2/3?a+(b-a)*(2/3-c)*6:a,h=c<.5?c*(1+b):c+b-c*b,i=2*c-h;d=g(i,h,a+1/3),e=g(i,h,a),f=g(i,h,a-1/3)}return{r:Math.round(255*d),g:Math.round(255*e),b:Math.round(255*f)}}sortShapesByRenderOrder(a){if(!a||0===a.length)return[];let b=[...a];return b.sort((b,c)=>{let d=b.order||b.zOrder||b.index||0,e=c.order||c.zOrder||c.index||0;return d!==e?d-e:a.indexOf(b)-a.indexOf(c)}),b}}class fj{constructor(){this.loadingImages=new Set,this.logger=new Logger("ImageLoader")}async loadImageFromUrl(a){return new Promise((b,c)=>{let d=new Image;d.onload=()=>{b(d)},d.onerror=a=>{c(Error(`Failed to load image: ${a.message||"Unknown error"}`))},a.startsWith("blob:")&&(d.crossOrigin="anonymous"),d.src=a})}async loadImageFromData(a,b="image/png"){try{let c=new Blob([a],{type:b}),d=URL.createObjectURL(c);return await this.loadImageFromUrl(d)}catch(a){throw a}}async preloadImages(a){let b=a.map(a=>this.loadImageFromUrl(a).catch(a=>null));return(await Promise.allSettled(b)).map(a=>"fulfilled"===a.status?a.value:null)}async getImageDimensions(a){return new Promise((b,c)=>{let d=new Image;d.onload=()=>{b({width:d.naturalWidth,height:d.naturalHeight,aspectRatio:d.naturalWidth/d.naturalHeight})},d.onerror=()=>{c(Error("Failed to load image for dimension check"))},d.src=a})}createThumbnail(a,b=150,c=150){let d,e,f=document.createElement("canvas"),g=f.getContext("2d"),h=a.naturalWidth/a.naturalHeight;return h>1?e=(d=Math.min(b,a.naturalWidth))/h:d=(e=Math.min(c,a.naturalHeight))*h,f.width=d,f.height=e,g.imageSmoothingEnabled=!0,g.imageSmoothingQuality="high",g.drawImage(a,0,0,d,e),f}getTableData(a){for(let b=0;b<this.slides.length;b++){let c=this.slides[b];if(c&&c.shapes){for(let b of c.shapes)if((b.id===a||b.name===a)&&b.graphicData&&"http://schemas.openxmlformats.org/drawingml/2006/table"===b.graphicData.uri)return this.extractTableStructure(b)}}return null}getAllTableData(){let a=[];for(let b=0;b<this.slides.length;b++){let c=this.slides[b];if(c&&c.shapes){for(let d of c.shapes)if(d.graphicData&&"http://schemas.openxmlformats.org/drawingml/2006/table"===d.graphicData.uri){let c=this.extractTableStructure(d);c&&(c.slideIndex=b,c.shapeId=d.id,c.shapeName=d.name,a.push(c))}}}return a}extractTableStructure(a){if(!a.graphicData||!a.graphicData.tableXml)return null;try{let b=this.parseTableFromXML(a.graphicData.tableXml);if(!b)return null;return{id:a.id,name:a.name,type:"table",properties:this.extractTableProperties(b),structure:this.extractTableStructureData(b),content:this.extractTableContent(b),styling:this.extractTableStyling(b),position:a.bounds||a.properties?.transform,metadata:{rowCount:b.getRowCount(),columnCount:b.getColumnCount(),hasMergedCells:this.hasMergedCells(b),tableStyle:b.getTableProperties()?.style||"TableGrid"}}}catch(a){return null}}extractTableProperties(a){let b=a.getTableProperties()||{};return{style:b.style||"TableGrid",layout:b.layout||"autofit",width:b.width||"auto",alignment:b.alignment||"left",borders:b.borders||{},shading:b.shading||{},spacing:{before:b.spacing?.before||0,after:b.spacing?.after||0,line:b.spacing?.line||240}}}extractTableStructureData(a){let b=a.getRows();return{grid:a.getTableGrid().map((a,b)=>({index:b,width:a.width,type:a.type||"auto"})),rows:b.map((a,b)=>({index:b,height:a.height,heightRule:a.heightRule||"auto",isHeader:a.isHeader||!1,cells:a.getCells().map((a,b)=>({index:b,gridSpan:a.gridSpan||1,rowSpan:a.rowSpan||1,vMerge:a.vMerge||null,isMergedContinue:a.isMergedContinue||!1,mergeParent:a.mergeParent||null}))}))}}extractTableContent(a){return{cells:a.getRows().map((a,b)=>a.getCells().map((a,c)=>({rowIndex:b,cellIndex:c,text:this.extractCellText(a),textBody:this.extractCellTextBody(a),content:this.extractCellContent(a)})))}}extractTableStyling(a){let b=a.getRows();return{table:{borders:a.getTableProperties()?.borders||{},shading:a.getTableProperties()?.shading||{},style:a.getTableProperties()?.style||"TableGrid"},rows:b.map((a,b)=>({index:b,height:a.height,heightRule:a.heightRule||"auto",isHeader:a.isHeader||!1})),cells:b.map((a,b)=>a.getCells().map((a,c)=>({rowIndex:b,cellIndex:c,borders:a.borders||{},shading:a.shading||{},margins:a.margins||{},verticalAlignment:a.verticalAlignment||"top",textDirection:a.textDirection||"lr"})))}}hasMergedCells(a){for(let b of a.getRows())for(let a of b.getCells())if(a.gridSpan>1||a.rowSpan>1||a.isMergedContinue)return!0;return!1}extractCellTextBody(a){let b=a.getTextBody();return b&&b.paragraphs?{paragraphs:b.paragraphs.map(a=>({properties:a.properties||{},runs:a.runs?.map(a=>({text:a.text||"",properties:a.properties||{}}))||[]}))}:null}extractCellContent(a){let b={type:"text",data:null},c=a.getTextBody();return c&&c.paragraphs&&(b.type="text",b.data=this.extractCellTextBody(a)),b}extractCellText(a){return a.textBody&&a.textBody.paragraphs?a.textBody.paragraphs.map(a=>a.runs?a.runs.map(a=>a.text||"").join(""):"").join("\n"):""}cleanup(){this.loadingImages.clear()}}"u">typeof globalThis&&(globalThis.PPTXSlideRenderer=fi,globalThis.ImageLoader=fj),"u">typeof window&&(window.PPTXSlideRenderer||(window.PPTXSlideRenderer=fi),window.ImageLoader||(window.ImageLoader=fj));class fk{constructor(a={}){this._getValidator();const b=this._validateConstructorOptions(a);this.errorBoundary=new(this._getErrorBoundary())({context:"PPTXProcessor",enableLogging:!1!==b.enableLogging,errorHandler:b.errorHandler}),this.processor=null,this.presentation=null,this.isInitialized=!1,this.config={maxFileSize:b.maxFileSize||0x6400000,timeout:b.timeout||8e4,enableValidation:!1!==b.enableValidation,strictMode:!0===b.strictMode,retryOptions:{maxAttempts:b.maxRetryAttempts||3,baseDelay:b.retryDelay||1e3},...b},this.performanceMarks=new Map,this.memoryUsage={peak:0,current:0},this.processingState="idle",this.lastError=null,this.currentSlideIndex=0,this._initializeMonitoring()}async initialize(){if(!this.isInitialized)return this.errorBoundary.wrap(async()=>{this._markPerformance("initialize_start");try{this._validateEnvironment(),await this._initializeWithRetry(),this.isInitialized=!0,this.processingState="idle",this._markPerformance("initialize_end"),window.logger&&window.logger.info("PPTXProcessor","Processor initialized successfully")}catch(a){throw this.processingState="error",this.lastError=a,this._enhanceError(a,"initialization")}},{context:"initialize"})()}async _ensureInitialized(){if(this.isInitialized||await this.initialize(),!this.processor)throw this._createError("Failed to initialize PPTX processor",{name:"ProcessingError",code:"INITIALIZATION_FAILED",recoverable:!0})}async processFile(a,b={}){let c=this._validateFileInput(a,b);if(!c.valid)throw this._createValidationError("Invalid file input",c.errors);return this.errorBoundary.wrap(async()=>{this._markPerformance("processFile_start"),this.processingState="processing";try{if(await this._ensureInitialized(),this._updateMemoryUsage(),await this._processWithTimeout(()=>this.processor.processFile(a),this.config.timeout),this.presentation=this.processor.presentation,this.processingState="completed",this._markPerformance("processFile_end"),this.config.enableValidation&&this._validateProcessingResult(this.presentation),window.logger){let a=this._getPerformanceTiming("processFile_start","processFile_end");window.logger.info("PPTXProcessor",`File processed successfully in ${a}ms`)}return this.presentation}catch(b){throw this.processingState="error",this.lastError=b,this._enhanceError(b,"file_processing",{arrayBufferSize:a.byteLength})}},{context:"processFile"})()}async loadFromArrayBuffer(a){return this.processFile(a)}async renderSlide(a,b,c={}){let d=this._validateRenderInput(a,b,c);if(!d.valid)throw this._createValidationError("Invalid render input",d.errors);return this.errorBoundary.wrap(async()=>{this._markPerformance("renderSlide_start");try{await this._ensureInitialized();let d=this.getSlidesCount();if(b<0||b>=d)throw this._createError(`Slide index ${b} out of bounds (0-${d-1})`,{name:"ValidationError",code:"INVALID_SLIDE_INDEX"});this._updateMemoryUsage();let e=await this._processWithTimeout(()=>this.processor.renderSlide(a,b),c.timeout||this.config.timeout);if(this.currentSlideIndex=b,this._markPerformance("renderSlide_end"),window.logger){let a=this._getPerformanceTiming("renderSlide_start","renderSlide_end");window.logger.trace("PPTXProcessor",`Slide ${b} rendered in ${a}ms`)}return e}catch(c){throw this._enhanceError(c,"slide_rendering",{slideIndex:b,canvasSize:`${a.width}x${a.height}`})}},{context:"renderSlide"})()}getSlidesCount(){return this.processor&&this.processor.slides?this.processor.slides.length:0}getCurrentSlideIndex(){return void 0!==this.currentSlideIndex?this.currentSlideIndex:0}getCurrentSlide(a=null){if(!this.processor||!this.processor.slides)return null;let b=null!==a?a:this.getCurrentSlideIndex();return this.processor.slides[b]||null}getSlideDimensions(){return this.processor?"function"==typeof this.processor.getSlideDimensions?this.processor.getSlideDimensions():this.processor.presentation&&this.processor.presentation.slideSize?this.processor.presentation.slideSize:{cx:9144e3,cy:6858e3}:{cx:9144e3,cy:6858e3}}clearCaches(){if(this._ensureInitialized(),this.processor){if(this.processor.imageCache){for(let[a,b]of this.processor.imageCache)b.url&&b.url.startsWith("blob:")&&URL.revokeObjectURL(b.url);this.processor.imageCache.clear()}this.processor.imageMap&&this.processor.imageMap.clear(),this.processor.mediaMap&&this.processor.mediaMap.clear(),this.processor.clearCaches&&"function"==typeof this.processor.clearCaches&&this.processor.clearCaches(),this.processor.drawingDocument&&this.processor.drawingDocument.graphics&&this.processor.drawingDocument.graphics.resetState(),this.processor.presentation&&(this.processor.presentation=null)}this.presentation=null}getPresentation(){if(!this.presentation&&this.config.strictMode)throw this._createError("No presentation loaded",{name:"ProcessingError",code:"NO_PRESENTATION_LOADED"});return this.presentation}getProcessingStats(){return{state:this.processingState,isInitialized:this.isInitialized,slidesCount:this.getSlidesCount(),memoryUsage:{...this.memoryUsage},lastError:this.lastError?{name:this.lastError.name,message:this.lastError.message,timestamp:this.lastError.timestamp}:null,performanceMarks:Array.from(this.performanceMarks.entries())}}_getValidator(){return"u">typeof window&&window.DataValidator?window.DataValidator:class{validate(){return{valid:!0,errors:[]}}}}_getErrorBoundary(){return"u">typeof window&&window.ErrorBoundary?window.ErrorBoundary:class{wrap(a){return a}}}_validateConstructorOptions(a){let b=this._getValidator();try{let c=new b({throwOnError:!1}).validate(a,{type:"object",properties:{maxFileSize:{type:"number",minimum:1024,maximum:524288e3},timeout:{type:"number",minimum:1e3,maximum:3e5},enableLogging:{type:"boolean"},enableValidation:{type:"boolean"},strictMode:{type:"boolean"},maxRetryAttempts:{type:"number",minimum:0,maximum:10},retryDelay:{type:"number",minimum:100,maximum:1e4}}});!c.valid&&window.logger&&window.logger.warn("PPTXProcessor","Invalid constructor options:",c.errors)}catch(a){}return a}_validateEnvironment(){let a=["Logger","PPTXSlideRenderer"].filter(a=>void 0===globalThis[a]);if(a.length>0)throw this._createError(`Missing required dependencies: ${a.join(", ")}`,{name:"ProcessingError",code:"MISSING_DEPENDENCIES",details:{missingDependencies:a}})}async _initializeWithRetry(){let{maxAttempts:a,baseDelay:b}=this.config.retryOptions;return("u">typeof window&&window.ErrorRecovery?window.ErrorRecovery:{retry:async(a,b)=>{let c;for(let d=0;d<b.maxAttempts;d++)try{return await a(d+1)}catch(a){c=a,d<b.maxAttempts-1&&await new Promise(a=>setTimeout(a,b.baseDelay))}throw c}}).retry(async a=>{if(window.logger&&window.logger.trace("PPTXProcessor",`Initialization attempt ${a}`),this.processor=new globalThis.PPTXSlideRenderer,!this.processor||"function"!=typeof this.processor.processFile)throw Error("PPTXSlideRenderer instance is invalid");return this.processor},{maxAttempts:a,baseDelay:b})}_validateFileInput(a,b){let c=[];if(a instanceof ArrayBuffer){0===a.byteLength&&c.push("ArrayBuffer cannot be empty"),a.byteLength>this.config.maxFileSize&&c.push(`File size ${a.byteLength} exceeds maximum ${this.config.maxFileSize}`);let b=new Uint8Array(a,0,Math.min(4,a.byteLength));b.length>=2&&(80!==b[0]||75!==b[1])&&c.push("File does not appear to be a valid ZIP/PPTX file")}else c.push("Input must be an ArrayBuffer");return b&&"object"!=typeof b&&c.push("Options must be an object"),{valid:0===c.length,errors:c}}_validateRenderInput(a,b,c){let d=[];return a?a instanceof HTMLCanvasElement?(a.width<=0||a.height<=0)&&d.push("Canvas must have positive dimensions"):d.push("Canvas must be an HTMLCanvasElement"):d.push("Canvas is required"),"number"==typeof b&&Number.isInteger(b)||d.push("Slide index must be an integer"),c&&"object"!=typeof c&&d.push("Options must be an object"),{valid:0===d.length,errors:d}}_validateProcessingResult(a){if(!a)throw this._createError("Processing completed but no presentation was created",{name:"ProcessingError",code:"NO_PRESENTATION_RESULT"});this.config.strictMode&&(!this.processor.slides||0===this.processor.slides.length)&&window.logger?.warn("PPTXProcessor","No slides found in presentation")}async _processWithTimeout(a,b){return new Promise((c,d)=>{let e=setTimeout(()=>{d(this._createError(`Operation timed out after ${b}ms`,{name:"TimeoutError",code:"OPERATION_TIMEOUT"}))},b);Promise.resolve(a()).then(a=>{clearTimeout(e),c(a)}).catch(a=>{clearTimeout(e),d(a)})})}_initializeMonitoring(){"u">typeof performance&&performance.mark&&(this.performanceEnabled=!0),"u">typeof performance&&performance.memory&&(this.memoryMonitoringEnabled=!0)}_markPerformance(a){if(this.performanceEnabled)try{performance.mark(a),this.performanceMarks.set(a,performance.now())}catch(a){}else this.performanceMarks.set(a,Date.now())}_getPerformanceTiming(a,b){let c=this.performanceMarks.get(a),d=this.performanceMarks.get(b);return c&&d?Math.round(d-c):0}_updateMemoryUsage(){if(this.memoryMonitoringEnabled&&performance.memory)try{let a=performance.memory.usedJSHeapSize;this.memoryUsage.current=a,this.memoryUsage.peak=Math.max(this.memoryUsage.peak,a)}catch(a){}}_createError(a,b={}){"u">typeof window&&window.ErrorHandlerFactory&&window.ErrorHandlerFactory;let c=Error(a);return c.name=b.name||"ProcessingError",c.code=b.code||null,c.context="PPTXProcessor",c.timestamp=new Date().toISOString(),c.recoverable=!1!==b.recoverable,b.details&&(c.details=b.details),c}_createValidationError(a,b){let c=this._createError(a,{name:"ValidationError",code:"INPUT_VALIDATION_FAILED"});return c.validationErrors=b,c}_enhanceError(a,b,c={}){if(a.enhanced)return a;let d=a instanceof Error?a:Error(String(a));return d.operation=b,d.processorContext=c,d.timestamp=new Date().toISOString(),d.memoryUsage={...this.memoryUsage},d.enhanced=!0,d}}(f="u">typeof globalThis?globalThis:"u">typeof window?window:null)&&(f.createPPTXProcessor||(f.createPPTXProcessor=(a={})=>{try{return new fk(a)}catch(a){try{(f.logger||window?.logger)?.error?.("PPTXProcessor","Failed to create processor:",a)}catch(a){}throw a}}),f.PPTXProcessor||(f.PPTXProcessor=fk));let fl="1.1.8";try{"u">typeof process&&process.env&&process.env.npm_package_version&&(fl=process.env.npm_package_version)}catch(a){}let fm=(a,b)=>{if(a)return a;if("u">typeof globalThis&&globalThis[b])return globalThis[b];if("u">typeof window&&window[b])return window[b];throw Error(`${b} is required but was not found. Install and import "${"Chart"===b?"chart.js":"jszip"}" in your application.`)},fn=fm(dN,"Chart"),fo=fm(e4(),"JSZip");if("u">typeof globalThis){if(!globalThis.Logger){class a{log(){}info(){}warn(){}error(){}debug(){}trace(){}logError(){}markTiming(){}measureTiming(){}}globalThis.Logger=a}!globalThis.PPTXSlideRenderer&&"u">typeof window&&window.PPTXSlideRenderer&&(globalThis.PPTXSlideRenderer=window.PPTXSlideRenderer),"u">typeof window&&!window.PPTXSlideRenderer&&globalThis.PPTXSlideRenderer&&(window.PPTXSlideRenderer=globalThis.PPTXSlideRenderer),!globalThis.FontEngine&&"u">typeof window&&window.FontEngine&&(globalThis.FontEngine=window.FontEngine),!globalThis.SimplifiedFontManager&&"u">typeof window&&window.SimplifiedFontManager&&(globalThis.SimplifiedFontManager=window.SimplifiedFontManager),!globalThis.ZLib&&"u">typeof window&&window.ZLib&&(globalThis.ZLib=window.ZLib),!globalThis.OpenXmlPackage&&"u">typeof window&&window.OpenXmlPackage&&(globalThis.OpenXmlPackage=window.OpenXmlPackage),!globalThis.OpenXmlPart&&"u">typeof window&&window.OpenXmlPart&&(globalThis.OpenXmlPart=window.OpenXmlPart),!globalThis.OpenXmlTypes&&"u">typeof window&&window.OpenXmlTypes&&(globalThis.OpenXmlTypes=window.OpenXmlTypes),!globalThis.SVGRenderer&&"u">typeof window&&window.SVGRenderer&&(globalThis.SVGRenderer=window.SVGRenderer),!globalThis.XmlParserContext&&"u">typeof window&&window.XmlParserContext&&(globalThis.XmlParserContext=window.XmlParserContext),!globalThis.StaxParser&&"u">typeof window&&window.StaxParser&&(globalThis.StaxParser=window.StaxParser),!globalThis.CPresentation&&"u">typeof window&&window.CPresentation&&(globalThis.CPresentation=window.CPresentation),!globalThis.CSlide&&"u">typeof window&&window.CSlide&&(globalThis.CSlide=window.CSlide),!globalThis.CSld&&"u">typeof window&&window.CSld&&(globalThis.CSld=window.CSld),!globalThis.CShape&&"u">typeof window&&window.CShape&&(globalThis.CShape=window.CShape),!globalThis.CGroupShape&&"u">typeof window&&window.CGroupShape&&(globalThis.CGroupShape=window.CGroupShape),!globalThis.CSlideMaster&&"u">typeof window&&window.CSlideMaster&&(globalThis.CSlideMaster=window.CSlideMaster),!globalThis.CSlideLayout&&"u">typeof window&&window.CSlideLayout&&(globalThis.CSlideLayout=window.CSlideLayout),!globalThis.CTheme&&"u">typeof window&&window.CTheme&&(globalThis.CTheme=window.CTheme),!globalThis.CTable&&"u">typeof window&&window.CTable&&(globalThis.CTable=window.CTable),globalThis.JSZip||void 0===fo||(globalThis.JSZip=fo),globalThis.PPTXProcessor||(globalThis.PPTXProcessor=fk),globalThis.createPPTXProcessor||(globalThis.createPPTXProcessor=(a={})=>new fk(a))}"u">typeof globalThis&&("u">typeof window&&(window.CGraphics=window.CGraphics||globalThis.CGraphics||void 0,window.Chart||void 0===fn||(window.Chart=fn),window.PPTXSlideRenderer||void 0===globalThis.PPTXSlideRenderer||(window.PPTXSlideRenderer=globalThis.PPTXSlideRenderer),window.PPTXProcessor||void 0===globalThis.PPTXProcessor||(window.PPTXProcessor=globalThis.PPTXProcessor),window.createPPTXProcessor||void 0===globalThis.createPPTXProcessor||(window.createPPTXProcessor=globalThis.createPPTXProcessor)),!globalThis.CGraphics&&"u">typeof window&&window.CGraphics&&(globalThis.CGraphics=window.CGraphics));class fp{constructor(a={}){const b=a||{};this.options={canvas:b.canvas??null,debug:b.debug??!1,enableThumbnails:b.enableThumbnails??!0,slideSizeMode:b.slideSizeMode??"fit",backgroundColor:b.backgroundColor??"#ffffff",autoRenderFirstSlide:b.autoRenderFirstSlide??!0,logger:b.logger??("u">typeof window?window.console:console),autoExposeGlobals:b.autoExposeGlobals??!0,autoChartRerenderDelayMs:b.autoChartRerenderDelayMs??200},Object.assign(this.options,b),this.processor=null,this.presentation=null,this.currentSlideIndex=0,this.slideCount=0,this.isLoaded=!1,this.eventListeners={},this._initPromise=null,this._scheduledPostLoadRerender=!1}async _initializeProcessor(){return this._initPromise||(this._initPromise=(async()=>{let a="u">typeof globalThis?globalThis:"u">typeof window?window:null,b=()=>({ctor:a&&a.PPTXProcessor||null,factory:a&&a.createPPTXProcessor||null});try{let a=0,c=b();for(;!c.ctor&&!c.factory&&a<100;)await new Promise(a=>setTimeout(a,20)),a+=1,c=b();if(c.ctor&&"function"==typeof c.ctor?this.processor=new c.ctor:c.factory&&"function"==typeof c.factory?this.processor=c.factory():this.processor=null,!this.processor)throw Error("PPTXProcessor is not available. Ensure processors are loaded.");return"function"==typeof this.processor.initialize&&await this.processor.initialize(),this.emit("processorReady"),this.processor}catch(a){throw this.emit("initError",a),a}})()),this._initPromise}async loadFile(a,b={}){if(this.isLoaded&&this.processor){try{"function"==typeof this.processor.destroy?this.processor.destroy():"function"==typeof this.processor.reset&&this.processor.reset()}catch(a){}this.processor=null,this._initPromise=null}await this._initializeProcessor();try{let c;if(this.emit("loadStart"),"u">typeof File&&a instanceof File)c=await a.arrayBuffer();else if(a instanceof ArrayBuffer)c=a;else if(a instanceof Uint8Array)c=a.buffer.slice(a.byteOffset,a.byteOffset+a.byteLength);else throw Error("Input must be File, ArrayBuffer, or Uint8Array");if(await this.processor.processFile(c,b),this.presentation=this.processor.presentation,this.slideCount=this.processor.getSlidesCount(),this.currentSlideIndex=0,this.isLoaded=!0,this._scheduledPostLoadRerender=!1,this.options.autoExposeGlobals)try{this._exposeGlobalsForCharts()}catch(a){}return this.emit("loadComplete",{slideCount:this.slideCount,presentation:this.presentation}),this}catch(a){throw this.emit("loadError",a),a}}async loadFromUrl(a){this.emit("loadStart");try{let b=await fetch(a);if(!b.ok)throw Error(`Failed to fetch PPTX: ${b.status} ${b.statusText}`);let c=await b.arrayBuffer();return this.loadFile(c)}catch(a){throw this.emit("loadError",a),a}}async render(a,b={}){if(!this.isLoaded)throw Error("No PPTX loaded. Call loadFile() first.");let c=a||this.options.canvas;if(!c)throw Error("Canvas element required. Provide canvas parameter or set in constructor.");let d=void 0!==b.slideIndex?b.slideIndex:this.currentSlideIndex;if(d<0||d>=this.slideCount)throw Error(`Invalid slide index: ${d}.`);try{if(this.emit("renderStart",d),await this.processor.renderSlide(c,d,b),this.currentSlideIndex=d,this.emit("renderComplete",d),this.emit("slideChanged",d),this.options.autoChartRerenderDelayMs>0&&!this._scheduledPostLoadRerender){this._scheduledPostLoadRerender=!0;let a=this.options.autoChartRerenderDelayMs;setTimeout(()=>{try{this.render(c,{...b,slideIndex:d})}catch(a){}},a)}return this}catch(a){throw this.emit("renderError",a),a}}async renderSlide(a,b=null,c={}){return this.render(b,{...c,slideIndex:a})}async nextSlide(a=null){return this.currentSlideIndex<this.slideCount-1&&await this.render(a,{slideIndex:this.currentSlideIndex+1}),this}async previousSlide(a=null){return this.currentSlideIndex>0&&await this.render(a,{slideIndex:this.currentSlideIndex-1}),this}async goToSlide(a,b=null){return this.render(b,{slideIndex:a})}getSlideCount(){return this.slideCount}getCurrentSlideIndex(){return this.currentSlideIndex}setCanvas(a){return this.options.canvas=a,this}on(a,b){this.eventListeners[a]||(this.eventListeners[a]=[]),this.eventListeners[a].push(b)}off(a,b){if(!this.eventListeners[a])return;let c=this.eventListeners[a].indexOf(b);c>-1&&this.eventListeners[a].splice(c,1)}emit(a,...b){this.eventListeners[a]&&this.eventListeners[a].forEach(a=>{try{a(...b)}catch(a){}})}destroy(){this.processor=null,this.eventListeners={},this.isLoaded=!1,this.currentSlideIndex=0,this.slideCount=0}_exposeGlobalsForCharts(){try{let a=this.processor;if(!a)return;let b=a.zip||a.processor?.zip||a.zipProcessor?.zip||null,c=a.package||a.processor?.package||a.zipProcessor?.package||null,d=()=>{let a="function"==typeof this.getCurrentSlideIndex?this.getCurrentSlideIndex():this.currentSlideIndex||0,b=this.options.canvas;b&&this.render(b,{slideIndex:a}).catch(()=>{})},e={processor:a,zip:b,package:c,reRenderShape:d};if("u">typeof window){if(window.currentProcessor=e,b&&(window.currentZipData=b),window.PPTXSlideRenderer&&b)try{window.PPTXSlideRenderer.currentZip=e.zip}catch(a){}try{window.currentProcessor&&window.currentProcessor.processor&&(!window.currentProcessor.processor.zip&&b&&(window.currentProcessor.processor.zip=b),!window.currentProcessor.processor.package&&c&&(window.currentProcessor.processor.package=c),window.currentProcessor.processor.zipProcessor||(window.currentProcessor.processor.zipProcessor={}),b&&!window.currentProcessor.processor.zipProcessor.zip&&(window.currentProcessor.processor.zipProcessor.zip=b),c&&!window.currentProcessor.processor.zipProcessor.package&&(window.currentProcessor.processor.zipProcessor.package=c))}catch(a){}}}catch(a){}}}let fq={PPTXViewer:fp,version:fl,mountSimpleViewer:function({canvas:a,fileInput:b,prevBtn:c,nextBtn:d,statusEl:e,options:f={}}={}){if(!a)throw Error("canvas is required");let g=new fp({canvas:a,...f}),h=()=>{try{let a=g.getSlideCount(),b="function"==typeof g.getCurrentSlideIndex?g.getCurrentSlideIndex():0;c&&(c.disabled=!(b>0)),d&&(d.disabled=!(b<a-1)),e&&(e.textContent=a?`Slide ${b+1} / ${a}`:"")}catch(a){}};return g.on("renderComplete",()=>h()),g.on("loadComplete",()=>{try{if(g&&g.processor&&!1!==f.autoExposeGlobals){let b=g.processor,c={processor:b,zip:b.zip,package:b.package,reRenderShape:()=>{let b="function"==typeof g.getCurrentSlideIndex?g.getCurrentSlideIndex():0;g.render(a,{slideIndex:b}).catch(()=>{})}};if("u">typeof window&&(window.currentProcessor=c,b.zip&&(window.currentZipData=b.zip),window.PPTXSlideRenderer&&c.zip))try{window.PPTXSlideRenderer.currentZip=c.zip}catch(a){}}}catch(a){}h()}),b&&b.addEventListener("change",async()=>{let c=b.files&&b.files[0];if(c){e&&(e.textContent="Loading...");try{await g.loadFile(c);try{if(g&&g.processor&&!1!==f.autoExposeGlobals){let b=g.processor,c=b.zip||b.processor?.zip||b.zipProcessor?.zip||null,d=b.package||b.processor?.package||b.zipProcessor?.package||null;if("u">typeof window){window.currentProcessor={processor:b,zip:c,package:d,reRenderShape:()=>{let b="function"==typeof g.getCurrentSlideIndex?g.getCurrentSlideIndex():0;g.render(a,{slideIndex:b}).catch(()=>{})}},c&&(window.currentZipData=c);try{window.currentProcessor&&window.currentProcessor.processor&&(!window.currentProcessor.processor.zip&&c&&(window.currentProcessor.processor.zip=c),!window.currentProcessor.processor.package&&d&&(window.currentProcessor.processor.package=d),window.currentProcessor.processor.zipProcessor||(window.currentProcessor.processor.zipProcessor={}),c&&!window.currentProcessor.processor.zipProcessor.zip&&(window.currentProcessor.processor.zipProcessor.zip=c),d&&!window.currentProcessor.processor.zipProcessor.package&&(window.currentProcessor.processor.zipProcessor.package=d))}catch(a){}}}}catch(a){}await g.render(a,{slideIndex:0});let b="number"==typeof f.autoChartRerenderDelayMs?f.autoChartRerenderDelayMs:200;b>0&&setTimeout(()=>{let b="function"==typeof g.getCurrentSlideIndex?g.getCurrentSlideIndex():0;g.render(a,{slideIndex:b}).catch(()=>{})},b)}catch(a){e&&(e.textContent="Error: "+(a?.message||"Failed to load"))}}}),c&&c.addEventListener("click",async()=>{await g.previousSlide(a)}),d&&d.addEventListener("click",async()=>{await g.nextSlide(a)}),"u">typeof window&&window.addEventListener("chartRenderingComplete",()=>{if(!g.isLoaded)return;let b="function"==typeof g.getCurrentSlideIndex?g.getCurrentSlideIndex():0;g.render(a,{slideIndex:b}).catch(()=>{})}),g}};["CGraphics","FontEngine","SimplifiedFontManager","ZLib","OpenXmlPackage","OpenXmlPart","OpenXmlTypes","SVGRenderer","XmlParserContext","StaxParser","CPresentation","CSlide","CSld","CShape","CGroupShape","CSlideMaster","CSlideLayout","CTheme","CTable","PPTXProcessor","PPTXSlideRenderer","Chart","JSZip"].forEach(a=>{try{"u">typeof globalThis&&globalThis[a]&&!fq[a]&&(fq[a]=globalThis[a])}catch(a){}}),"u">typeof globalThis&&(globalThis.PptxViewJS=fq,globalThis.PPTXProcessor||(globalThis.PPTXProcessor=fk),globalThis.createPPTXProcessor||(globalThis.createPPTXProcessor=(a={})=>new fk(a))),globalThis.PPTXSlideRenderer||(globalThis.PPTXSlideRenderer=fi)},77890:(a,b,c)=>{"use strict";function d(){if(!(this instanceof d))return new d;if(arguments.length)throw Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.");this.files=Object.create(null),this.comment=null,this.root="",this.clone=function(){var a=new d;for(var b in this)"function"!=typeof this[b]&&(a[b]=this[b]);return a}}d.prototype=c(53303),d.prototype.loadAsync=c(65212),d.support=c(44581),d.defaults=c(53102),d.version="3.10.1",d.loadAsync=function(a,b){return new d().loadAsync(a,b)},d.external=c(95951),a.exports=d},85493:(a,b,c)=>{"use strict";a.exports=g;var d=c(55927),e=Object.create(c(3085));function f(a,b){var c=this._transformState;c.transforming=!1;var d=c.writecb;if(!d)return this.emit("error",Error("write callback called multiple times"));c.writechunk=null,c.writecb=null,null!=b&&this.push(b),d(a);var e=this._readableState;e.reading=!1,(e.needReadable||e.length<e.highWaterMark)&&this._read(e.highWaterMark)}function g(a){if(!(this instanceof g))return new g(a);d.call(this,a),this._transformState={afterTransform:f.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,a&&("function"==typeof a.transform&&(this._transform=a.transform),"function"==typeof a.flush&&(this._flush=a.flush)),this.on("prefinish",h)}function h(){var a=this;"function"==typeof this._flush?this._flush(function(b,c){i(a,b,c)}):i(this,null,null)}function i(a,b,c){if(b)return a.emit("error",b);if(null!=c&&a.push(c),a._writableState.length)throw Error("Calling transform done when ws.length != 0");if(a._transformState.transforming)throw Error("Calling transform done when still transforming");return a.push(null)}e.inherits=c(2862),e.inherits(g,d),g.prototype.push=function(a,b){return this._transformState.needTransform=!1,d.prototype.push.call(this,a,b)},g.prototype._transform=function(a,b,c){throw Error("_transform() is not implemented")},g.prototype._write=function(a,b,c){var d=this._transformState;if(d.writecb=c,d.writechunk=a,d.writeencoding=b,!d.transforming){var e=this._readableState;(d.needTransform||e.needReadable||e.length<e.highWaterMark)&&this._read(e.highWaterMark)}},g.prototype._read=function(a){var b=this._transformState;null!==b.writechunk&&b.writecb&&!b.transforming?(b.transforming=!0,this._transform(b.writechunk,b.writeencoding,b.afterTransform)):b.needTransform=!0},g.prototype._destroy=function(a,b){var c=this;d.prototype._destroy.call(this,a,function(a){b(a),c.emit("close")})}},85641:(a,b,c)=>{"use strict";var d,e,f=c(11648);a.exports=s;var g=c(38349);s.ReadableState=r,c(94735).EventEmitter;var h=function(a,b){return a.listeners(b).length},i=c(75723),j=c(69523).Buffer,k=("u">typeof global?global:"u">typeof window?window:"u">typeof self?self:{}).Uint8Array||function(){},l=Object.create(c(3085));l.inherits=c(2862);var m=c(28354),n=void 0;n=m&&m.debuglog?m.debuglog("stream"):function(){};var o=c(17217),p=c(73229);l.inherits(s,i);var q=["error","close","destroy","pause","resume"];function r(a,b){d=d||c(55927),a=a||{};var f=b instanceof d;this.objectMode=!!a.objectMode,f&&(this.objectMode=this.objectMode||!!a.readableObjectMode);var g=a.highWaterMark,h=a.readableHighWaterMark,i=this.objectMode?16:16384;g||0===g?this.highWaterMark=g:f&&(h||0===h)?this.highWaterMark=h:this.highWaterMark=i,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new o,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=a.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,a.encoding&&(e||(e=c(5474).I),this.decoder=new e(a.encoding),this.encoding=a.encoding)}function s(a){if(d=d||c(55927),!(this instanceof s))return new s(a);this._readableState=new r(a,this),this.readable=!0,a&&("function"==typeof a.read&&(this._read=a.read),"function"==typeof a.destroy&&(this._destroy=a.destroy)),i.call(this)}function t(a,b,c,d,e){var f,g,h,i=a._readableState;return null===b?(i.reading=!1,function(a,b){if(!b.ended){if(b.decoder){var c=b.decoder.end();c&&c.length&&(b.buffer.push(c),b.length+=b.objectMode?1:c.length)}b.ended=!0,w(a)}}(a,i)):(e||(h=function(a,b){var c;return j.isBuffer(b)||b instanceof k||"string"==typeof b||void 0===b||a.objectMode||(c=TypeError("Invalid non-string/buffer chunk")),c}(i,b)),h)?a.emit("error",h):i.objectMode||b&&b.length>0?("string"==typeof b||i.objectMode||Object.getPrototypeOf(b)===j.prototype||(g=b,b=j.from(g)),d?i.endEmitted?a.emit("error",Error("stream.unshift() after end event")):u(a,i,b,!0):i.ended?a.emit("error",Error("stream.push() after EOF")):(i.reading=!1,i.decoder&&!c?(b=i.decoder.write(b),i.objectMode||0!==b.length?u(a,i,b,!1):y(a,i)):u(a,i,b,!1))):d||(i.reading=!1),!(f=i).ended&&(f.needReadable||f.length<f.highWaterMark||0===f.length)}function u(a,b,c,d){b.flowing&&0===b.length&&!b.sync?(a.emit("data",c),a.read(0)):(b.length+=b.objectMode?1:c.length,d?b.buffer.unshift(c):b.buffer.push(c),b.needReadable&&w(a)),y(a,b)}function v(a,b){var c;if(a<=0||0===b.length&&b.ended)return 0;if(b.objectMode)return 1;if(a!=a)if(b.flowing&&b.length)return b.buffer.head.data.length;else return b.length;return(a>b.highWaterMark&&((c=a)>=8388608?c=8388608:(c--,c|=c>>>1,c|=c>>>2,c|=c>>>4,c|=c>>>8,c|=c>>>16,c++),b.highWaterMark=c),a<=b.length)?a:b.ended?b.length:(b.needReadable=!0,0)}function w(a){var b=a._readableState;b.needReadable=!1,b.emittedReadable||(n("emitReadable",b.flowing),b.emittedReadable=!0,b.sync?f.nextTick(x,a):x(a))}function x(a){n("emit readable"),a.emit("readable"),C(a)}function y(a,b){b.readingMore||(b.readingMore=!0,f.nextTick(z,a,b))}function z(a,b){for(var c=b.length;!b.reading&&!b.flowing&&!b.ended&&b.length<b.highWaterMark&&(n("maybeReadMore read 0"),a.read(0),c!==b.length);)c=b.length;b.readingMore=!1}function A(a){n("readable nexttick read 0"),a.read(0)}function B(a,b){b.reading||(n("resume read 0"),a.read(0)),b.resumeScheduled=!1,b.awaitDrain=0,a.emit("resume"),C(a),b.flowing&&!b.reading&&a.read(0)}function C(a){var b=a._readableState;for(n("flow",b.flowing);b.flowing&&null!==a.read(););}function D(a,b){var c,d,e,f,g;return 0===b.length?null:(b.objectMode?c=b.buffer.shift():!a||a>=b.length?(c=b.decoder?b.buffer.join(""):1===b.buffer.length?b.buffer.head.data:b.buffer.concat(b.length),b.buffer.clear()):(d=a,e=b.buffer,f=b.decoder,d<e.head.data.length?(g=e.head.data.slice(0,d),e.head.data=e.head.data.slice(d)):g=d===e.head.data.length?e.shift():f?function(a,b){var c=b.head,d=1,e=c.data;for(a-=e.length;c=c.next;){var f=c.data,g=a>f.length?f.length:a;if(g===f.length?e+=f:e+=f.slice(0,a),0==(a-=g)){g===f.length?(++d,c.next?b.head=c.next:b.head=b.tail=null):(b.head=c,c.data=f.slice(g));break}++d}return b.length-=d,e}(d,e):function(a,b){var c=j.allocUnsafe(a),d=b.head,e=1;for(d.data.copy(c),a-=d.data.length;d=d.next;){var f=d.data,g=a>f.length?f.length:a;if(f.copy(c,c.length-a,0,g),0==(a-=g)){g===f.length?(++e,d.next?b.head=d.next:b.head=b.tail=null):(b.head=d,d.data=f.slice(g));break}++e}return b.length-=e,c}(d,e),c=g),c)}function E(a){var b=a._readableState;if(b.length>0)throw Error('"endReadable()" called on non-empty stream');b.endEmitted||(b.ended=!0,f.nextTick(F,b,a))}function F(a,b){a.endEmitted||0!==a.length||(a.endEmitted=!0,b.readable=!1,b.emit("end"))}function G(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]===b)return c;return -1}Object.defineProperty(s.prototype,"destroyed",{get:function(){return void 0!==this._readableState&&this._readableState.destroyed},set:function(a){this._readableState&&(this._readableState.destroyed=a)}}),s.prototype.destroy=p.destroy,s.prototype._undestroy=p.undestroy,s.prototype._destroy=function(a,b){this.push(null),b(a)},s.prototype.push=function(a,b){var c,d=this._readableState;return d.objectMode?c=!0:"string"==typeof a&&((b=b||d.defaultEncoding)!==d.encoding&&(a=j.from(a,b),b=""),c=!0),t(this,a,b,!1,c)},s.prototype.unshift=function(a){return t(this,a,null,!0,!1)},s.prototype.isPaused=function(){return!1===this._readableState.flowing},s.prototype.setEncoding=function(a){return e||(e=c(5474).I),this._readableState.decoder=new e(a),this._readableState.encoding=a,this},s.prototype.read=function(a){n("read",a),a=parseInt(a,10);var b,c=this._readableState,d=a;if(0!==a&&(c.emittedReadable=!1),0===a&&c.needReadable&&(c.length>=c.highWaterMark||c.ended))return n("read: emitReadable",c.length,c.ended),0===c.length&&c.ended?E(this):w(this),null;if(0===(a=v(a,c))&&c.ended)return 0===c.length&&E(this),null;var e=c.needReadable;return n("need readable",e),(0===c.length||c.length-a<c.highWaterMark)&&n("length less than watermark",e=!0),c.ended||c.reading?n("reading or ended",e=!1):e&&(n("do read"),c.reading=!0,c.sync=!0,0===c.length&&(c.needReadable=!0),this._read(c.highWaterMark),c.sync=!1,c.reading||(a=v(d,c))),null===(b=a>0?D(a,c):null)?(c.needReadable=!0,a=0):c.length-=a,0===c.length&&(c.ended||(c.needReadable=!0),d!==a&&c.ended&&E(this)),null!==b&&this.emit("data",b),b},s.prototype._read=function(a){this.emit("error",Error("_read() is not implemented"))},s.prototype.pipe=function(a,b){var c,d=this,e=this._readableState;switch(e.pipesCount){case 0:e.pipes=a;break;case 1:e.pipes=[e.pipes,a];break;default:e.pipes.push(a)}e.pipesCount+=1,n("pipe count=%d opts=%j",e.pipesCount,b);var i=b&&!1===b.end||a===process.stdout||a===process.stderr?s:j;function j(){n("onend"),a.end()}e.endEmitted?f.nextTick(i):d.once("end",i),a.on("unpipe",function b(c,f){n("onunpipe"),c===d&&f&&!1===f.hasUnpiped&&(f.hasUnpiped=!0,n("cleanup"),a.removeListener("close",q),a.removeListener("finish",r),a.removeListener("drain",k),a.removeListener("error",p),a.removeListener("unpipe",b),d.removeListener("end",j),d.removeListener("end",s),d.removeListener("data",o),l=!0,e.awaitDrain&&(!a._writableState||a._writableState.needDrain)&&k())});var k=(c=d,function(){var a=c._readableState;n("pipeOnDrain",a.awaitDrain),a.awaitDrain&&a.awaitDrain--,0===a.awaitDrain&&h(c,"data")&&(a.flowing=!0,C(c))});a.on("drain",k);var l=!1,m=!1;function o(b){n("ondata"),m=!1,!1!==a.write(b)||m||((1===e.pipesCount&&e.pipes===a||e.pipesCount>1&&-1!==G(e.pipes,a))&&!l&&(n("false write response, pause",e.awaitDrain),e.awaitDrain++,m=!0),d.pause())}function p(b){n("onerror",b),s(),a.removeListener("error",p),0===h(a,"error")&&a.emit("error",b)}function q(){a.removeListener("finish",r),s()}function r(){n("onfinish"),a.removeListener("close",q),s()}function s(){n("unpipe"),d.unpipe(a)}return d.on("data",o),!function(a,b,c){if("function"==typeof a.prependListener)return a.prependListener(b,c);a._events&&a._events[b]?g(a._events[b])?a._events[b].unshift(c):a._events[b]=[c,a._events[b]]:a.on(b,c)}(a,"error",p),a.once("close",q),a.once("finish",r),a.emit("pipe",d),e.flowing||(n("pipe resume"),d.resume()),a},s.prototype.unpipe=function(a){var b=this._readableState,c={hasUnpiped:!1};if(0===b.pipesCount)return this;if(1===b.pipesCount)return a&&a!==b.pipes||(a||(a=b.pipes),b.pipes=null,b.pipesCount=0,b.flowing=!1,a&&a.emit("unpipe",this,c)),this;if(!a){var d=b.pipes,e=b.pipesCount;b.pipes=null,b.pipesCount=0,b.flowing=!1;for(var f=0;f<e;f++)d[f].emit("unpipe",this,{hasUnpiped:!1});return this}var g=G(b.pipes,a);return -1===g||(b.pipes.splice(g,1),b.pipesCount-=1,1===b.pipesCount&&(b.pipes=b.pipes[0]),a.emit("unpipe",this,c)),this},s.prototype.on=function(a,b){var c=i.prototype.on.call(this,a,b);if("data"===a)!1!==this._readableState.flowing&&this.resume();else if("readable"===a){var d=this._readableState;d.endEmitted||d.readableListening||(d.readableListening=d.needReadable=!0,d.emittedReadable=!1,d.reading?d.length&&w(this):f.nextTick(A,this))}return c},s.prototype.addListener=s.prototype.on,s.prototype.resume=function(){var a,b,c=this._readableState;return c.flowing||(n("resume"),c.flowing=!0,a=this,(b=c).resumeScheduled||(b.resumeScheduled=!0,f.nextTick(B,a,b))),this},s.prototype.pause=function(){return n("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(n("pause"),this._readableState.flowing=!1,this.emit("pause")),this},s.prototype.wrap=function(a){var b=this,c=this._readableState,d=!1;for(var e in a.on("end",function(){if(n("wrapped end"),c.decoder&&!c.ended){var a=c.decoder.end();a&&a.length&&b.push(a)}b.push(null)}),a.on("data",function(e){n("wrapped data"),c.decoder&&(e=c.decoder.write(e)),c.objectMode&&null==e||(c.objectMode||e&&e.length)&&(b.push(e)||(d=!0,a.pause()))}),a)void 0===this[e]&&"function"==typeof a[e]&&(this[e]=function(b){return function(){return a[b].apply(a,arguments)}}(e));for(var f=0;f<q.length;f++)a.on(q[f],this.emit.bind(this,q[f]));return this._read=function(b){n("wrapped _read",b),d&&(d=!1,a.resume())},this},Object.defineProperty(s.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),s._fromList=D},88191:(a,b,c)=>{"use strict";var d=c(60852);b.STORE={magic:"\0\0",compressWorker:function(){return new d("STORE compression")},uncompressWorker:function(){return new d("STORE decompression")}},b.DEFLATE=c(42508)},88488:(a,b,c)=>{var d=c(79428),e=d.Buffer;function f(a,b){for(var c in a)b[c]=a[c]}function g(a,b,c){return e(a,b,c)}e.from&&e.alloc&&e.allocUnsafe&&e.allocUnsafeSlow?a.exports=d:(f(d,b),b.Buffer=g),f(e,g),g.from=function(a,b,c){if("number"==typeof a)throw TypeError("Argument must not be a number");return e(a,b,c)},g.alloc=function(a,b,c){if("number"!=typeof a)throw TypeError("Argument must be a number");var d=e(a);return void 0!==b?"string"==typeof c?d.fill(b,c):d.fill(b):d.fill(0),d},g.allocUnsafe=function(a){if("number"!=typeof a)throw TypeError("Argument must be a number");return e(a)},g.allocUnsafeSlow=function(a){if("number"!=typeof a)throw TypeError("Argument must be a number");return d.SlowBuffer(a)}},91673:a=>{"function"==typeof Object.create?a.exports=function(a,b){b&&(a.super_=b,a.prototype=Object.create(b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}))}:a.exports=function(a,b){if(b){a.super_=b;var c=function(){};c.prototype=b.prototype,a.prototype=new c,a.prototype.constructor=a}}},91691:(a,b,c)=>{"use strict";a.exports=f;var d=c(85493),e=Object.create(c(3085));function f(a){if(!(this instanceof f))return new f(a);d.call(this,a)}e.inherits=c(2862),e.inherits(f,d),f.prototype._transform=function(a,b,c){c(null,a)}},93496:(a,b,c)=>{"use strict";var d=c(16793);function e(a){d.call(this,a)}c(60731).inherits(e,d),e.prototype.byteAt=function(a){return this.data.charCodeAt(this.zero+a)},e.prototype.lastIndexOfSignature=function(a){return this.data.lastIndexOf(a)-this.zero},e.prototype.readAndCheckSignature=function(a){return a===this.readData(4)},e.prototype.readData=function(a){this.checkOffset(a);var b=this.data.slice(this.zero+this.index,this.zero+this.index+a);return this.index+=a,b},a.exports=e},95951:(a,b,c)=>{"use strict";a.exports={Promise:"u">typeof Promise?Promise:c(14314)}},97625:(a,b,c)=>{"use strict";var d=c(60731),e=c(60852);function f(a){e.call(this,"DataLengthProbe for "+a),this.propName=a,this.withStreamInfo(a,0)}d.inherits(f,e),f.prototype.processChunk=function(a){if(a){var b=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=b+a.data.length}e.prototype.processChunk.call(this,a)},a.exports=f}};