@solidtv/renderer 1.6.0 → 1.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/src/core/CoreTextureManager.d.ts +31 -0
  2. package/dist/src/core/CoreTextureManager.js +87 -6
  3. package/dist/src/core/CoreTextureManager.js.map +1 -1
  4. package/dist/src/core/Stage.js +2 -1
  5. package/dist/src/core/Stage.js.map +1 -1
  6. package/dist/src/core/lib/ImageWorker.js +29 -20
  7. package/dist/src/core/lib/ImageWorker.js.map +1 -1
  8. package/dist/src/core/lib/validateImageBitmap.d.ts +13 -7
  9. package/dist/src/core/lib/validateImageBitmap.js +31 -10
  10. package/dist/src/core/lib/validateImageBitmap.js.map +1 -1
  11. package/dist/src/core/text-rendering/CanvasFontHandler.js +30 -15
  12. package/dist/src/core/text-rendering/CanvasFontHandler.js.map +1 -1
  13. package/dist/src/core/text-rendering/SdfFontHandler.js +52 -23
  14. package/dist/src/core/text-rendering/SdfFontHandler.js.map +1 -1
  15. package/dist/src/core/text-rendering/TextRenderer.d.ts +10 -1
  16. package/dist/src/core/textures/ImageTexture.js +4 -2
  17. package/dist/src/core/textures/ImageTexture.js.map +1 -1
  18. package/dist/src/main-api/Renderer.d.ts +37 -10
  19. package/dist/src/main-api/Renderer.js +8 -4
  20. package/dist/src/main-api/Renderer.js.map +1 -1
  21. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  22. package/package.json +1 -1
  23. package/src/core/CoreTextureManager.test.ts +147 -0
  24. package/src/core/CoreTextureManager.ts +97 -8
  25. package/src/core/Stage.ts +2 -0
  26. package/src/core/lib/ImageWorker.test.ts +19 -0
  27. package/src/core/lib/ImageWorker.ts +34 -40
  28. package/src/core/lib/validateImageBitmap.test.ts +17 -10
  29. package/src/core/lib/validateImageBitmap.ts +32 -14
  30. package/src/core/text-rendering/CanvasFontHandler.ts +36 -16
  31. package/src/core/text-rendering/SdfFontHandler.ts +55 -25
  32. package/src/core/text-rendering/TextRenderer.ts +10 -1
  33. package/src/core/text-rendering/tests/SdfFontHandler.test.ts +65 -1
  34. package/src/core/textures/ImageTexture.test.ts +94 -26
  35. package/src/core/textures/ImageTexture.ts +4 -2
  36. package/src/main-api/Renderer.ts +47 -14
@@ -1 +1 @@
1
- {"fileNames":["../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es5.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.dom.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../src/env.d.ts","../src/core/lib/contextspy.ts","../src/utils.ts","../src/common/ianimationcontroller.ts","../src/core/utils.ts","../src/core/animations/animationmanager.ts","../src/core/renderers/coreshadernode.ts","../src/core/renderers/coreshaderprogram.ts","../src/core/coreshadermanager.ts","../src/core/lib/webglcontextwrapper.ts","../src/core/renderers/webgl/internal/shaderutils.ts","../src/core/lib/utils.ts","../src/core/lib/texturecompression.ts","../src/core/lib/texturesvg.ts","../src/core/textures/imagetexture.ts","../src/core/textures/subtexture.ts","../src/common/ieventemitter.ts","../src/common/eventemitter.ts","../src/core/texturememorymanager.ts","../src/core/renderers/corecontexttexture.ts","../src/core/textureerror.ts","../src/core/textures/texture.ts","../src/core/renderers/corerenderer.ts","../src/core/lib/matrix3d.ts","../src/core/coretextnode.ts","../src/core/renderers/corerenderop.ts","../src/core/renderers/webgl/internal/rendererutils.ts","../src/core/renderers/webgl/webglctxtexture.ts","../src/core/renderers/webgl/webglctxsubtexture.ts","../src/core/renderers/webgl/internal/buffercollection.ts","../src/core/renderers/webgl/webglshadernode.ts","../src/core/shaders/webgl/default.ts","../src/core/renderers/webgl/webglshaderprogram.ts","../src/core/textures/rendertexture.ts","../src/core/renderers/webgl/webglctxrendertexture.ts","../src/core/renderers/webgl/webglrenderer.ts","../src/core/renderers/webgl/sdfrenderop.ts","../src/core/text-rendering/textrenderer.ts","../src/core/text-rendering/textlayoutengine.ts","../src/main-api/utils.ts","../src/core/textures/colortexture.ts","../src/core/platforms/web/webplatform.ts","../src/core/animations/coreanimation.ts","../src/main-api/inode.ts","../src/core/lib/colorparser.ts","../src/core/renderers/canvas/canvastexture.ts","../src/core/lib/colorcache.ts","../src/core/renderers/canvas/canvasshadernode.ts","../src/core/renderers/canvas/canvasrenderer.ts","../src/main-api/inspector.ts","../src/main-api/renderer.ts","../src/core/stage.ts","../src/core/platforms/platform.ts","../src/core/lib/validateimagebitmap.ts","../src/core/lib/imageworker.ts","../src/core/textures/noisetexture.ts","../src/core/coretexturemanager.ts","../src/core/lib/rendercoords.ts","../src/core/autosizer.ts","../src/core/lib/collectionutils.ts","../src/core/corenode.ts","../src/common/commontypes.ts","../src/core/shaders/utils.ts","../src/core/shaders/templates/blurtemplate.ts","../src/core/shaders/canvas/blur.ts","../src/core/shaders/templates/bordertemplate.ts","../src/core/shaders/canvas/border.ts","../src/core/shaders/templates/edgefadetemplate.ts","../src/core/shaders/canvas/edgefade.ts","../src/core/shaders/templates/holepunchtemplate.ts","../src/core/shaders/canvas/utils/render.ts","../src/core/shaders/canvas/holepunch.ts","../src/core/shaders/templates/lineargradienttemplate.ts","../src/core/shaders/canvas/lineargradient.ts","../src/core/shaders/templates/radialgradienttemplate.ts","../src/core/shaders/canvas/radialgradient.ts","../src/core/shaders/templates/radialprogresstemplate.ts","../src/core/shaders/canvas/radialprogress.ts","../src/core/shaders/templates/roundedtemplate.ts","../src/core/shaders/canvas/rounded.ts","../src/core/shaders/templates/roundedwithbordertemplate.ts","../src/core/shaders/canvas/roundedwithborder.ts","../src/core/shaders/templates/shadowtemplate.ts","../src/core/shaders/templates/roundedwithborderandshadowtemplate.ts","../src/core/shaders/canvas/shadow.ts","../src/core/shaders/canvas/roundedwithborderandshadow.ts","../src/core/shaders/templates/roundedwithshadowtemplate.ts","../src/core/shaders/canvas/roundedwithshadow.ts","../src/core/shaders/webgl/blur.ts","../src/core/shaders/webgl/border.ts","../src/core/shaders/webgl/edgefade.ts","../src/core/shaders/webgl/holepunch.ts","../src/core/shaders/webgl/lineargradient.ts","../src/core/shaders/webgl/radialgradient.ts","../src/core/shaders/webgl/radialprogress.ts","../src/core/shaders/webgl/rounded.ts","../src/core/shaders/webgl/roundedwithborder.ts","../src/core/shaders/webgl/roundedwithborderandshadow.ts","../src/core/shaders/webgl/roundedwithshadow.ts","../src/core/shaders/webgl/sdfshader.ts","../src/core/shaders/webgl/shadow.ts","../src/core/text-rendering/utils.ts","../src/core/text-rendering/canvasfonthandler.ts","../src/core/text-rendering/canvastextrenderer.ts","../src/core/text-rendering/sdffonthandler.ts","../src/core/text-rendering/sdftextrenderer.ts","../exports/canvas-shaders.ts","../exports/canvas.ts","../exports/index.ts","../exports/inspector.ts","../exports/utils.ts","../exports/webgl-shaders.ts","../exports/webgl.ts"],"fileIdsList":[[106,123,125,127,130,132,134,136,138,140,143,144,146],[104,106,107,162],[62,63,65,69,73,77,79,80,86,91,94,101,102,108,109,110,115,119,120,124,126,128,131,133,137,141],[108],[61,63,70,76],[89,90,147,148,149,150,151,152,153,154,155,156,157,159],[86,89,94,164,170],[79,81,119],[75],[61,62,63,119],[63,64,119],[70,119],[61,62,64,65,70,76,80,81,82,86,88,94,101,110,115,116,117,118,120],[61,65,66,110],[61,70,80,81,82,96,110,119,120],[73,74,76,79,80,81,92,99,110,111,112,113,114],[119],[103],[80,112],[68,80],[61,70,80],[69],[111],[110],[110,111],[74,78,80,81,103,104,105,106,119,120],[65,105,110,119],[61,78,80,103,120],[77,80],[60,65,66,78,80,110,119],[61,110,119],[68],[61,70,84,86,88,89,94,110,120],[68,70,77,86,92,120],[61,68,74,77,80,86,120],[61,68,70,71,77,78,80,85,120],[61,68,70,74,78,80,81,85,86,87,88,89,90,91,92,93,95,119,120],[65,69,70,91,94,110,119],[61,66,68,69,86,88,89,90,94,119],[106,122],[69,70,103,106,124],[106,107,126],[69,70,106,128,129],[106,131],[106,133],[106,135],[69,70,106,129,137],[69,70,106,125,129,138,139],[69,70,106,129,140,142,143],[69,70,106,129,138,143,145],[69,106,129,141],[65],[65,69,121],[65,121],[65,121,124,137,141],[65,121,124,137],[65,121,137,141],[61,69],[89,122],[69,89,124],[89],[89,126],[69,70,89,128],[69,70,89,94,119,131],[69,70,89,94,119,133],[69,70,89,94,119,135],[69,70,89,119,137],[69,70,89,119,139],[69,70,89,119,142],[69,70,89,119,145],[89,141],[60,61,64,65,67,70,76,77,80,81,82,83,96,97,98,99,100,109,111,115,119,120],[83,96,97,110,119,160],[61,83,96,97,110,160,161],[61,73,79,83,96,97,110,119,160],[61,70,81,83,86,89,94,96,97,110,120,158,160,163],[96],[70,81,83,95,110,120],[61,63,80,110],[80,115],[61,70,71,72,80,111,115],[61,73,80,115],[70,74,76,78,79,115,120],[62,65,83,101,119],[61,62,80,83,101,109,119],[61,65,67,76,77,81,83,94,96,100,102,107,108,110,111,115,119],[60]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"5ba0a094f93834bf1d227ddfb621d45ffe5b37e4dfe0b8518cdb769713f86633","affectsGlobalScope":true,"impliedFormat":99},{"version":"0fb789e71544b33050f556c483b82704450a1f5ed8277c35674891aaaa6a95ef","signature":"826d87ec474ecd59c827441df44d49f420dbe099333c3344e31dfada8cc39902","impliedFormat":99},{"version":"ef121487db615bde0a350484d99c0282ab686d8c9c42bb58ebab26222fcb5d7d","signature":"f881a1a2b219f636190a264c5e6c61c8860b5f4c8a803d76d3729cfd97072d13","impliedFormat":99},{"version":"725cf9cb38ff2000cd2156e28dc06fb265cb6fc79f3a9d83141940b502f0fca6","signature":"fa40725ac8d2fe1f3e11590e2f2bd0ac523256d9f6805bc425c2286c7c93f894","impliedFormat":99},{"version":"0dcf0b8b29a5e0a4f5a592adea458990b22354a1a4c2766d0b024df0aebd71ff","signature":"ee40f42d658eb673fa53ff333ab90b838d3d4397fcf6a4ce49cfba5202f7c4ab","impliedFormat":99},{"version":"eea8be5c1eea68d449669b540be53f89e6cb749871fd8c13f2ae7869e167dbed","signature":"8d84c9cf16816327dc926a3b63fb8eb67ad6b2bb632f524154189b7320c30863","impliedFormat":99},{"version":"26fbcaad253a32731dbd9defa3203585dd37484b79e0588406dfe4466fad2520","signature":"82bf95c1d5594c8bccf0ae18f7c16116df3534239a00284ddf96759da3602812","impliedFormat":99},{"version":"26eee6d5475b7bf6ab5b0e8ee2cbefddd6c4d34a6b80ca12ee6511c943c7bb43","signature":"97326a2f5f0fce22509018fe77795cb2313d61f1ef71eff134612c81ec2ac600","impliedFormat":99},{"version":"b1c72510b9beb69a582283ea61e70021319ab7892f8f254f9b7a8fd0468f02f9","signature":"6dde36af67f486d0925af4ba0339e7a66b7f71fd36f1a4d928869ccbf4dfdda0","impliedFormat":99},{"version":"1a0bed4785a29f19dc764fcc593aafe7bf074a360b40a46a7ad1dd5b589d15ba","signature":"2b6f52be39d4fb3e626fb1d1b03b22339de9ae3c2afb46867731e15e856c4da9","impliedFormat":99},{"version":"88b7f66a548fba6db4f38b62bbe7ab1a134d40ae82fab1bf2f2d4da012f55e52","signature":"5ada2f98956abecf861f20250b0778e9c83ccecdfb48d24cd8aa5ffc3600266d","impliedFormat":99},{"version":"93478a22db5f8686e1c0c656798ed2409baab75dd1ccfffad0b29d1af36fbaf8","signature":"384cb58c372f77df67101837debb690eb5a3fa21e7867db2a5e9cfa428189a6e","impliedFormat":99},{"version":"6770f6304c5b8c0cb3467fd397966007669ea7d3b1b19e3510a89094ef3e6da7","signature":"afcf49d3e0bfb93f7ba0802ac21a8cdee4cb9f08e66aeef6dd7de60e5db2754b","impliedFormat":99},{"version":"83d66848c8099c9fa05d49999db1dc0ee07072bdbd98675055a0ee8e48c61431","signature":"4fe26dc4bac065bdc055fd26f9ab411f282f020052ef557761cd96160810f442","impliedFormat":99},{"version":"930068e057c0eea363c8814710eb5713ab946b977b74770be16f238928d87236","signature":"9aa36325cd99649318217f9f9a87ad3cf4951520cfae47869cebc1e7d80820f4","impliedFormat":99},{"version":"18151b50888ab1d36f978ac79f62736ca8cd9b112e41e36ad504316a90bacee2","signature":"046cf1637a30f54c247748ec08c64cedaa5b498a109268514922f2e86234002d","impliedFormat":99},{"version":"e73d693dbc420ea2f5525275bf48a1a958c00c14f4d310938c6ff562171084b4","signature":"11f10eef6b087b59bd9e527db506274380a36587a1bff3450e220ad7ec2ce45e","impliedFormat":99},{"version":"1775968f6dc2a28607890c46c3dfd1a593d770e0953ac0163b95d9d1f981588c","signature":"30a3967a5b741981ecbc92f0f0508cb35eae8a21377641ee2e5d7cb305eb0a81","impliedFormat":99},{"version":"410f52eb5078bc0512f148d470430b6596f4268a3e2a21f66f3a76bdfcf679a7","signature":"a0a444a047bcb663ca7b7ef2a2470c122b6843fbc1147b7cad99de6ea0945d43","impliedFormat":99},{"version":"b1aa12a696499aec7886bad670c0d61ab1bbfb7010f509aad0a33976a43bb7a7","signature":"7fa0036a92ef198a2140758b695b615596e7860cde2f8f50dc8772f1ae23fde0","impliedFormat":99},{"version":"8751c170b7d20979afe81c6848afa318cd65c3d9026a4addb68b5f3271d21844","signature":"5fbb8d7443bd5a5b303f62cef8ce4b65cd729647d59916fb69f202c60db3f562","impliedFormat":99},{"version":"09615b6559ce03fc49689f9f196d6cd598953bf49aeaeb0c1a4146c192266ccb","signature":"e5b8bf7a69409d81d17c83f1c8fabe83531252723bb783719855d56a72c2c2ac","impliedFormat":99},{"version":"d16286157d6af05710bd28cbfd6b3620b3f2dd38a18ae7c93cd7cbdeac2f2d35","signature":"692f243d410c1f895484e69c9e2fd39d32d985a104f13f6420e75df68269e566","impliedFormat":99},{"version":"619f7047ca3a1ec65a3398cd2d71717f6ecb3a579a46268366854142afad55a5","signature":"5a652125462bca72ea748d3bc73c458a9776fb3ad492674336f6d83df791c42d","impliedFormat":99},{"version":"81f8bf212ea85fb171a14f2330dcf966c74a67690d37ff51e63e795275aab8b7","signature":"ed16135617242f809c2200d4c4b18610b4d0d7b7043903373da1f7cb27e394e8","impliedFormat":99},{"version":"03eb47e1e2969c3fc52fa7fdbd5c5841ffc3f7139fffc30d771d2b87e855b2fe","signature":"21248172fdb4c3ce859fa761a360940384895116a845e10fb20812ef4d29431c","impliedFormat":99},{"version":"278b2121aa5e49d2da7c6fa8e97e5fe522879de7b8bb5798d4eb1ec0c254078c","signature":"4c31e651822192e7f40bd3c13394d10fed932d6517b3d6fa44130bc4064efd82","impliedFormat":99},{"version":"667d8560d1c9eae8787aec99cd87d80e573ed6bf733bee465646b130c7ff0393","signature":"655c31a1722747d229233819701c97a0d0eb45de1c402d2af099ef6209823228","impliedFormat":99},{"version":"35a18cb45a375acffd7fd9924694a0fe490aff7e0456eaecfd8f06967b9b75a5","signature":"4d678bf8cab921c2d080b75126762897254dcc9424dd4527d9ed232a69258b11","impliedFormat":99},{"version":"412a870bb718eb9415faec7bc11ec73e104ded0dd8bacd66184ac0474dc806e8","signature":"c71fac303272beaa89b727174d0aa688665f420a8fbfdbdabd70d37ff1306ec2","impliedFormat":99},{"version":"d337e75063dafde8652b9fdcc652a392b9743bea5951ebc8f7ff4b0cbc93f8a4","signature":"4d8b4828eff7f5c832473b74466fb23d74a386d9b44efc842e5222f26c7a5de0","impliedFormat":99},{"version":"e1c1814eeb96c78e2437e92b81bdf82840424b0a4b22b600fd80c0c4ea936069","signature":"11d90ddf914600d7cdba80dc93576c8e4b9590b42542a4e4db56e36af1c3c341","impliedFormat":99},{"version":"fdcab99c0580b6daac1633629937710c230d0f68a04575e888de68599118f62d","signature":"c928f43ed43feba1901537b3f8dbb5396452c085cb625c35e06b8cb0b79b3004","impliedFormat":99},{"version":"b63eef02fb6f5bc004aeb338f6cb4fb6648cafcf9841396432738f2f3cfecf07","signature":"8adbddff6d8303fdf5de01602f8c2b9a28efc3bf60530eeba3857aa7f550f655","impliedFormat":99},{"version":"309b37dd89c078c27286180d57ef951f21363d029e475d9f8d6b436e2a31a62e","signature":"babf579da841813feb2c91dcd842f39537eb0371fb903b24eda3cdecba2bf14f","impliedFormat":99},{"version":"60935851a41634d4d92b8a88a837ba79a750cdac15abd7127d79632f8fcf0578","signature":"9c6680d8af256a49696b14f3c53d1bd5f54f047cbcbbc10e4ca724440814f550","impliedFormat":99},{"version":"c8f7af6e18410ec4fbc3b33f78affb0da09868ce34af9f087d29a487f2e81182","signature":"31f1e85b7793907da145a21c1b8a4b197c4e83ca8071c41f866224d5c85a34e1","impliedFormat":99},{"version":"c062cba77512f53efd4623537ddedc89605eda6abcfd3f74d3b5245b4653c7be","signature":"6706bda959cff733c53a50b9715f00471f3b691d40964483b372b406c6e89b71","impliedFormat":99},{"version":"ab73636014e29a7e35c6ac6053c26346b827565a006fbd091ac6db0f9ae627fb","signature":"3eaee23f112a80139af770d0a6b7623f33675966ec3dca3cdab74a0ea071064b","impliedFormat":99},{"version":"7f6e6e6104931e7907c74e53d336094350978646d9c02c2a205ffcea90b58e61","signature":"f02942f8ae408270e572fa4c23aca8f42b496b83a836bfc8cec4f559e8ce1125","impliedFormat":99},{"version":"45a3d03cb79677851a1597d31d0936c706cb80d3731b68677012520d555de2e6","signature":"68cfd7feb1396181cc75d8cfbd95ae5e76e2ffee3c99aeb04e4d3175737c7a97","impliedFormat":99},{"version":"26bacd8b95dc8d6362085130b922d691a1b1223efd95bf160bb3bd1f980b5037","signature":"4efda82c758514a08d950cbc7079752d18f74223fd28014d62a9009694c019dd","impliedFormat":99},{"version":"7381e02deaa54cca84fd5829a7abe72b9aea79739cef50d2ef45e7133e46a245","signature":"bdfe37f9178a0c445385afef820471496de4d62381ceab44090e1d2f7cbf9d57","impliedFormat":99},{"version":"d41aef2354b7b9bbbd538909867a16826b1111f88d82b3db7669904d88f01938","signature":"378b818788219a531c09232dc8246ed3d0b70113a75770eb1d2847084edc7eae","impliedFormat":99},{"version":"0e4cc781e7d725b36b08e599fa522b59390e9af2b3f968c24898d711c1d43c20","signature":"ed1bce3569c23d16ea1421a0d84ac59970cf40c6edb60ed933c63a406d039dd7","impliedFormat":99},{"version":"26c6f7db0180070206eb2449c0c5fa0189fdfc0a258af7f60762b14c5908ec7e","signature":"f6b7f82e188e0e7d18bfa9cf1dc3ae29b31eae9950b495772537815380c7a573","impliedFormat":99},{"version":"f309bd228e2982f60f7ed817323e80d1187c1520248ae02059bd93d23eaa1acf","signature":"2885b4f117dd1d518624b16d3993749c17042fe5d799b60a46d9654d45fc1be1","impliedFormat":99},{"version":"548e85be54e3dd4dba937ac994f77dd79c7bb24f23bc8a0ce088ef7d41887ea7","signature":"f517fe6b9594b6bc1939368aec01eb109e47e51250a3f836c2aa32baed7b8523","impliedFormat":99},{"version":"74f792bba6c21bb95ccc1858f2b957d27a2661b5739883ad5e9e73112673a839","signature":"ba0487147be7109d3c222c88d8e88e1915a84025790bba5f5fbb6b47dcd91c41","impliedFormat":99},{"version":"1c802ef16e4f78b03ad399b8df8083b110b43a9885f0e66081378a8ab41b38f3","signature":"1d8e5d8f1f509ebacf09e733e4784fb0e0ea05e02a0a21e1668c5105a6883d35","impliedFormat":99},{"version":"8460ed5ac99ba3243d07c824995c73022b8a7131de946319d88f5ea7e7008298","signature":"0fad3ae2e9382b515c0dd2cb2a4dea3290addeaa9a9450a0b6e95398ad117d52","impliedFormat":99},{"version":"0d1f9577a9008b5cdb26c3f9122f1e6d18ab027df9f1fac5ee9dd12a97b327ef","signature":"2e71aaad37b0a76d8d705ad15d94898a3c9a6bd781b24dd7127fe02afb0b4dbf","impliedFormat":99},{"version":"9fd52944f4d0748affc7601ddcd21af6e8c622d2e2855c9a5ad215ca3e09a7ae","signature":"1bc91777d9c68f9f46697b1859f11ea39e6c51e1eb135336d81289eb25c97623","impliedFormat":99},{"version":"d62ebdb436b76d3d33ef7be0a8acf6727d322e1a54ad72d49586229663fa061b","signature":"9b5e43a8d86d0bd41f3efb075e415d1f239702b02afb90e34abb868d82a0f5d6","impliedFormat":99},{"version":"8ab097d44a126a00b1b8ae02d98f6458346d3324dc379d241ac040ed4220edb3","signature":"50a6aa824772162e168c9859f53b17a42a312be6b3c5346866e0354fc7d2c61b","impliedFormat":99},{"version":"5bc4d797c4c00430b4e7cea2ca1ffa7d8e3223fb526997bb4a3b73b556b344f5","signature":"46d6995fa6153325dae9fcaf8eb7fdc183936a42a3fb851efcda43cc0bf7edef","impliedFormat":99},{"version":"843d4cfeaddcbabf3b6ff8e4d7b93f15d89ac6a293aa28c656255a52212386f5","signature":"57c859c9ec91924b955fb91e915cd871c2e43977d1316292429e51d6b62fb075","impliedFormat":99},{"version":"1e434b5f963ca54162c007922a664c33c058045e1f8258bc47ca7b10b0df25a3","signature":"9b47d61d6e847112cf7e9f2fb1631d36e81d966b79b46ede120eaf85058f6a97","impliedFormat":99},{"version":"d1781b3d8835d839ae6ca22406684cd188cf41c36507e0c6ad7cb1d12b2ae0f0","signature":"3ea67cb40367de619dc4addce96f4d5e80160ea305c6afe526d44a1b7988a3ea","impliedFormat":99},{"version":"a3e04cbb9c244d5c8bd33920045de269fb7162894aafe0367e91e6cc13577e95","signature":"55a86ef2a9418a10b936be9d9a388c55c9c327d7b8c7a4bec3bae3bff90226ea","impliedFormat":99},{"version":"b5ef8c1d3da6d34f09455d5c33eefa1644090f564d8a61bf6d9f85db835c4244","signature":"2751341c749bd80117748ecf137b460f6f62ee347191ba0e704ec247d1d6095a","impliedFormat":99},{"version":"9c4a7f7c843b9ec89f839e78d32f3a73502614b56bbc72daba7e8993b4fed0d1","signature":"2d262bb6e4c1943ab022f32e8849eb67ef098ecba39f7025e064a1cbcafc57bf","impliedFormat":99},{"version":"ef58c75d40fb4394e68971549eb3351058cb0b275db2738ae67df13ffc150cc8","signature":"6b38678a012f8055e5f0a8aa9c1ca13d8a6d60110541d60e244a132b31f1fec2","impliedFormat":99},{"version":"387288e860f965c2862d17c155ad361b1c2ceaff5f97761d179262336b88580d","signature":"872937c6cd92ad2ca1548878c5c2325dc0ba3339a93a31ed1947884908dd8aa8","impliedFormat":99},{"version":"f47ba4df2de5c263e2a7c95464685602b0db64ad88bc1f62a477dc98311f88ab","signature":"98a1f2a3ec600dc06f82c4fe120b7d2ef6aa8ec258b1c4fb77e44a913cc6e233","impliedFormat":99},{"version":"4c92257cc7c9b722720be143ed2b5b8387267854c67017372b09e2bcbbea6063","signature":"c0e70bcea10f408ecc8833d2aa2c3af825d13e470d74990ba538d0a81cf56a7b","impliedFormat":99},{"version":"c3c7389b117ec2f370d63fd673a8fc379b335b73666ea9c481848043d27e85d3","signature":"47e1b725b6d55b6284e63568e9074f195005f8b79e066b28449663aef9aed95c","impliedFormat":99},{"version":"2562891204d51c22c9f363e89bf5f7fc18e4a40050ae0ff8ef025ac319c78bf3","signature":"165aa5926af1b2f55b8f3fe9b760823a9929f79835ceb25bd276a07b60ec8e60","impliedFormat":99},{"version":"35c182acdcd162697b878067f3ada4c94ec7f2cd6380fd6ecb45d6f0c7c8fecf","signature":"f5e100aa3e93dc49f367b01fd11367cef5d365d7cf2a71e8a5386629337e15fb","impliedFormat":99},{"version":"3c0e1904a08a9f573980fc9cabc22e76657990ee395bac9a6bb50a6c102e52bd","signature":"42e936ecc3b9b7ad5a489eeaea7c25af8d7b71162a08e00ad638648e87a7ee51","impliedFormat":99},{"version":"f048cd019df6b704e70af0223667ced2c8c6088126af9acd750db564418e3a34","signature":"e6f972dc162ead1d86897a3488316aab8b034472695d40eac74b6557e184919d","impliedFormat":99},{"version":"ea4c2e9deca942ae568c64e85d74cd5eb67c40b827956fd9a82e81d70e70585c","signature":"d91415fa00b3eef01ae2e08e8ffaf7cef9fa568515c83ac1474a22cc55bb3718","impliedFormat":99},{"version":"137618331aa4f4dd38c93e26a20b43dc8dc25a95485cdfd496f1a104b1b07c3b","signature":"912202a19d5e8972357af639e5e65d06c9171e30d4bf077fcdfe184c30effc7c","impliedFormat":99},{"version":"0bb005bd34cf33aebb3aef3a23ac5277a93fc62a92b99010d15aebaf770003eb","signature":"16ea4109bf543dd521c2e9cd4ff0f8c498250ce26f6fe55739e077e0761c8807","impliedFormat":99},{"version":"8130e89488ac70797bd1737f59ab9d4ca43805a6886ec3e600eb29cfd681c96e","signature":"9ab0406e79c8ae7a4f552c6609b8ce436242d74abbeebd1f4303a63c53ccb56a","impliedFormat":99},{"version":"0d2f8deb225e2cb7c3a818ff1a6e2aaaaf2104a0af8104d8c3e112cb9856f3ae","signature":"76fdce1e19f5cf3a2243a37f1778f534dc527e73c25100a14d63994c2f0b8760","impliedFormat":99},{"version":"df3b85e40aa11deae5e4e9094927c0ddc7a768c10f8d2e4f793558d7c832337c","signature":"dca314f637b4d88b884e8a6d76fb82cbf2b896e28f69feae8da56046045cf278","impliedFormat":99},{"version":"484cf35592b2c8be3608d937a5238c1fef88315cedc853cc817c1333ad316e35","signature":"e7181fa8e23ed61baefe346d52c8e0eaa94ab0c495c50933f3d0b1de1f949230","impliedFormat":99},{"version":"79604b209f32f23345daab19964a53d8dc9488d1ed7e23bad0ff08fc2c772da8","signature":"4dcaec244d4486f21fa7800fd6853c914df66154d4ca6b7cf0aa0370c5e6a656","impliedFormat":99},{"version":"96b089770d2f3711db9d58c671df98ee792dead4dca0ce3739f4ab83859d3442","signature":"5111e2e2ffb1264243951a0c15fa3498e2c0c23e74599f535ad2227a16d8c503","impliedFormat":99},{"version":"8a6aecc7b7cd01b03424ea5e4755f8abceb433c7cac3c4cc74aea2df676ca32a","signature":"2c6c2e2996661a1558d5ce4040ec63a12913ea0c52fd071adc079fb1f3fc125c","impliedFormat":99},{"version":"3e87e6d2e51b392e59034bf46547bd13ffbf54301ccf98cada6692eec7261860","signature":"b6c5cb675d41673f3d27982b79d6b96033d9f0976ff9c62a49b4d61bbfc71b1f","impliedFormat":99},{"version":"950cb741daec5e63de1500aa3db70f9879fa16164fbb8cbc100437a258643f84","signature":"db5ff6f8ae2b0a4ff8cb16b43646b5561304b219fcc10ab1c470965743fe7662","impliedFormat":99},{"version":"f6ce18c4659b7e933d0e0289ee01d20eabc88543587ba71e3ee59ea2560e8294","signature":"e4bf9388266333a7b08b77dfc53f0bd5cc25da0e148c7a896aaac443c6becb47","impliedFormat":99},{"version":"d316f795ecc284e4a91622cd71635ba3964cd3ee5fa4bcca828173767520113e","signature":"986c6fa0b20de6185466d165274d7896f8734b92302b70ffccf4614be069db61","impliedFormat":99},{"version":"c5da010a38dec8e8569cf895d9dfaf1432e1d29d7f9f73644eb01f33f097e89d","signature":"02fad959da0f7217696defb6dead5557228c3ef9791e4cbb28164d4bea2a8245","impliedFormat":99},{"version":"85f4bc1f1eea3a08f8abc20c7dc41671a8c4ba35860c9e948ef7ca39eff18dc2","signature":"43065306646acc1b02890238154e075cb4e2a6cbc73e213e1f56fcc6ad568d37","impliedFormat":99},{"version":"f7e6a561941091c6b719421fd97f5b063555080bc770ea17ce8ed7c06971f7a5","signature":"ccd53c52eddd8eaa19baaf4ac4224f18b3c9ee90cbdb62001f1477e59c5006be","impliedFormat":99},{"version":"7a55412506f0f9dc36fb71e3cc6e6781526deb1a759038ff8fd08c45d99326f4","signature":"e83ecc19d67e55848641650aa73755b88b0085d526fefdace51ddb11da8a4e92","impliedFormat":99},{"version":"d396435b20f0519b57e61846d68e750c6339af6101acb3f85bfbeeb52be27213","signature":"fc4560cb792ceead9e3fea2f6af6cfc1f6c3ae85091f1857c7d268a11c01b948","impliedFormat":99},{"version":"ae52e8c6c00fa2793806580115457439d815c487ce05b74ab4e50e9a32456078","signature":"be87e1fe0936272f4939e0fa1f55852ba93434026013c40dc05a2a884634b01c","impliedFormat":99},{"version":"679a0a57dde194689fe96133fb376bc345c882df2a40210bfe02a0f79f019548","signature":"e7f707dc443bc70c46576168b519c3ba5479373575af4399855ca8b0b3013a02","impliedFormat":99},{"version":"fa0f75f09203c7c8376a067811fcd17f3bce6148e044ee242378ad0541af7857","signature":"8b97d49f33fb21b2b6616c0600cb2e3968deede70049dd50e38e7d5e60258e48","impliedFormat":99},{"version":"4d88d3991065b6deba1f344fbffec6b53c9be5ed6c985c024cbd366eefcb4ef4","signature":"a61270eb38bce478ba85ad3126a149e7d178fdfc02d91d901ec450ca2a08a3c9","impliedFormat":99},{"version":"e41e2d517cc76d37abb944e404dbbdcb51c6601d7bd25460f7be7582298eac51","signature":"5be8d9fadb8846ec9529a9a0839940b7ed8667d9473d37fcaddf5a5407046bb8","impliedFormat":99},{"version":"1029ff8709b714292e9e06f2c7a61ef03249cd622dc0a14b9ef090eb4f5440e3","signature":"b02e020e0ad1378e97a9e1d26795695ac5527087e5c174e8aea70ec0d00192e9","impliedFormat":99},{"version":"279ca7d5069ce14a8b3b3d654878282c481f8b837ba4b3832cbefb008da8da94","signature":"b34ecdba664a2ec3b8dbf9e941b6dbe316902ba0e406a7c31299e7eb959fb7e9","impliedFormat":99},{"version":"8799f2e2fe06cbface134abc396b54fd91bdd0888a3cf21a2be7678891c4597c","signature":"66fc58d212375c49354827feb93cf399644bddf49c6d5aa7cd716cd81cf5b691","impliedFormat":99},{"version":"1bda31e81d8e9211341da96c57ab693bcdc9e9d425ba17f7967050a3bcea8ed5","signature":"0c184d4bfd1585aefffd168cf5f09cd420bebc653e912e418c24cab332f186e3","impliedFormat":99},{"version":"582dc809d8b93a8fc16c77e1ffc53850f3f84b40f8cb2a3cdf1996f79f1b3088","signature":"5ba57c948c9666d17638efae14ac47877ede75629fe17a412e5d6d1a4c505fd1","impliedFormat":99},{"version":"61de2a4cec798c8c5a75a3040d996968e2f2d8214052b7aafa46371cdf61f8ea","signature":"5cf4cc52274a28bd8ab9406ed3e98fa53551f4b4cf1a34bd65b78b5e1439414f","impliedFormat":99},{"version":"b9108c4d92c7ffe8546ebd753ef6901b2abd197367e64f6826c3897ac541c3ae","signature":"48706ca10c8d5d293d1546c75598d177ec2e218aadc913c0c0e22d140788e167","impliedFormat":99},{"version":"87f39774f98ef561e0b3801981dbf7b9bb906a51d42af257a22f82a95e1c7602","signature":"9ea3d311a1dd736d63c38632d4a4af2019f41fcec61243ebf8e9f5a9ffaf2cbe","impliedFormat":99},{"version":"6d55ba1191a52297542ccc25f3fb7b5f551db0ba6794358a69e57f0dd5d24f88","signature":"a03ba7ec376ee4f7053cc8948e003e6e0cf9aa4c7aa65faf61e76ab153554cc7","impliedFormat":99},{"version":"c4a3aca9b606f3e847bb3302362acf37120f6513587314fe0647a6929ddc2516","signature":"273225bca0660ee56e597bdccc238539357d790920710960d10d07d5ce388020","impliedFormat":99},{"version":"0f2926a08c7d3cfda78844d13e5d9cb3272b356f6bd4ab06075145c296aea7b8","signature":"5cc44328b5fa4bfbe7f0a0fb660d46b6de824e565e8079471b6961e20e12d939","impliedFormat":99},{"version":"0685efaf535d9abf2e8a9cd5204ec5fb15eeca03e70e3344c4ee0797cf7cfc02","signature":"18e379806ef687bb50ab57e26b656c8b0c2f3f5ff825cd887423c2efbfd80ed0","impliedFormat":99},{"version":"96dba49c7ca675ef31b5e4fbfb040472e1399e7579756cbe75bc467fd818b725","signature":"a34189c39e64e75e77d978d1c1705f53c585e7598705ffb45487f46c26b2cae1","impliedFormat":99},{"version":"4e29810600ceda1a91b739dd96562bf7943b44cf43cc9ba8cf805e4181bf2ec8","signature":"14a029fc47ad86ef6b6d78963a8a56ec4678f1ee8d7a925af474548ffa75751d","impliedFormat":99},{"version":"7ab5ea0a0fee1f29e1fac8686e28f007d043ba95d7e3b632f8cc7301c37e6811","signature":"db959774546bdddc7101c53894e3138cd245b33175f7c9377f9343eec1a8d680","impliedFormat":99},{"version":"c27b65f34815f9448a64c605dd63f6e03af85ccb2ad4bdcd0cf5332b645c9705","signature":"8c826192b6757cbc3ffc140a36dc8ada7957796bd2242467287ae231450b4f99","impliedFormat":99},{"version":"0a831a6931e36d06b844cce87e704de1f5cc5ba7479f8e27bc8f59165ce91286","signature":"42b2b1c56d60b28f963c6af444555c1f6b47bfc4210b4caca2cbfdb6ff1e3d73","impliedFormat":99},{"version":"eb54d8688792ecc441056d4150a5da1dba8815050829d8cf74d08d50aa40b8a9","signature":"10c7bdc6518b5f312287ce56e2ad08318c9c6a205f70fc51138764c9f0579ccd","impliedFormat":99}],"root":[[59,171]],"options":{"allowJs":true,"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"experimentalDecorators":true,"module":100,"noImplicitAny":false,"noImplicitOverride":true,"noUncheckedIndexedAccess":true,"outDir":"./","rootDir":"..","sourceMap":true,"strict":true,"target":9,"verbatimModuleSyntax":true},"referencedMap":[[165,1],[166,2],[167,3],[168,4],[169,5],[170,6],[171,7],[120,8],[76,9],[64,10],[101,11],[117,12],[119,13],[67,14],[83,15],[115,16],[118,17],[105,18],[113,19],[71,20],[72,21],[70,22],[112,23],[68,22],[111,24],[100,25],[107,26],[106,27],[104,28],[78,29],[81,30],[65,31],[88,22],[85,32],[69,32],[95,33],[93,34],[87,35],[86,36],[94,37],[89,38],[91,39],[123,40],[125,41],[127,42],[130,43],[132,44],[134,45],[136,46],[138,47],[140,48],[144,49],[146,50],[143,51],[129,22],[122,52],[124,53],[126,52],[128,54],[131,52],[133,52],[135,52],[137,53],[142,55],[139,56],[145,57],[141,54],[121,58],[147,59],[148,60],[90,61],[149,62],[150,63],[151,64],[152,65],[153,66],[154,67],[155,68],[156,69],[157,70],[158,61],[159,71],[110,72],[161,73],[162,74],[163,75],[164,76],[97,77],[96,78],[77,79],[99,80],[73,81],[114,80],[92,80],[74,82],[80,83],[102,84],[108,85],[109,86],[98,17],[61,87]],"latestChangedDtsFile":"./src/core/renderers/canvas/CanvasRenderer.d.ts","version":"5.9.3"}
1
+ {"fileNames":["../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es5.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.dom.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../src/env.d.ts","../src/core/lib/contextspy.ts","../src/utils.ts","../src/common/ianimationcontroller.ts","../src/core/utils.ts","../src/core/animations/animationmanager.ts","../src/core/renderers/coreshadernode.ts","../src/core/renderers/coreshaderprogram.ts","../src/core/coreshadermanager.ts","../src/core/lib/webglcontextwrapper.ts","../src/core/renderers/webgl/internal/shaderutils.ts","../src/core/lib/utils.ts","../src/core/lib/texturecompression.ts","../src/core/lib/texturesvg.ts","../src/core/textures/imagetexture.ts","../src/core/textures/subtexture.ts","../src/common/ieventemitter.ts","../src/common/eventemitter.ts","../src/core/texturememorymanager.ts","../src/core/renderers/corecontexttexture.ts","../src/core/textureerror.ts","../src/core/textures/texture.ts","../src/core/renderers/corerenderer.ts","../src/core/lib/matrix3d.ts","../src/core/coretextnode.ts","../src/core/renderers/corerenderop.ts","../src/core/renderers/webgl/internal/rendererutils.ts","../src/core/renderers/webgl/webglctxtexture.ts","../src/core/renderers/webgl/webglctxsubtexture.ts","../src/core/renderers/webgl/internal/buffercollection.ts","../src/core/renderers/webgl/webglshadernode.ts","../src/core/shaders/webgl/default.ts","../src/core/renderers/webgl/webglshaderprogram.ts","../src/core/textures/rendertexture.ts","../src/core/renderers/webgl/webglctxrendertexture.ts","../src/core/renderers/webgl/webglrenderer.ts","../src/core/renderers/webgl/sdfrenderop.ts","../src/core/text-rendering/textrenderer.ts","../src/core/text-rendering/textlayoutengine.ts","../src/main-api/utils.ts","../src/core/textures/colortexture.ts","../src/core/platforms/web/webplatform.ts","../src/core/animations/coreanimation.ts","../src/main-api/inode.ts","../src/core/lib/colorparser.ts","../src/core/renderers/canvas/canvastexture.ts","../src/core/lib/colorcache.ts","../src/core/renderers/canvas/canvasshadernode.ts","../src/core/renderers/canvas/canvasrenderer.ts","../src/main-api/inspector.ts","../src/main-api/renderer.ts","../src/core/stage.ts","../src/core/platforms/platform.ts","../src/core/lib/validateimagebitmap.ts","../src/core/lib/imageworker.ts","../src/core/textures/noisetexture.ts","../src/core/coretexturemanager.ts","../src/core/lib/rendercoords.ts","../src/core/autosizer.ts","../src/core/lib/collectionutils.ts","../src/core/corenode.ts","../src/common/commontypes.ts","../src/core/shaders/utils.ts","../src/core/shaders/templates/blurtemplate.ts","../src/core/shaders/canvas/blur.ts","../src/core/shaders/templates/bordertemplate.ts","../src/core/shaders/canvas/border.ts","../src/core/shaders/templates/edgefadetemplate.ts","../src/core/shaders/canvas/edgefade.ts","../src/core/shaders/templates/holepunchtemplate.ts","../src/core/shaders/canvas/utils/render.ts","../src/core/shaders/canvas/holepunch.ts","../src/core/shaders/templates/lineargradienttemplate.ts","../src/core/shaders/canvas/lineargradient.ts","../src/core/shaders/templates/radialgradienttemplate.ts","../src/core/shaders/canvas/radialgradient.ts","../src/core/shaders/templates/radialprogresstemplate.ts","../src/core/shaders/canvas/radialprogress.ts","../src/core/shaders/templates/roundedtemplate.ts","../src/core/shaders/canvas/rounded.ts","../src/core/shaders/templates/roundedwithbordertemplate.ts","../src/core/shaders/canvas/roundedwithborder.ts","../src/core/shaders/templates/shadowtemplate.ts","../src/core/shaders/templates/roundedwithborderandshadowtemplate.ts","../src/core/shaders/canvas/shadow.ts","../src/core/shaders/canvas/roundedwithborderandshadow.ts","../src/core/shaders/templates/roundedwithshadowtemplate.ts","../src/core/shaders/canvas/roundedwithshadow.ts","../src/core/shaders/webgl/blur.ts","../src/core/shaders/webgl/border.ts","../src/core/shaders/webgl/edgefade.ts","../src/core/shaders/webgl/holepunch.ts","../src/core/shaders/webgl/lineargradient.ts","../src/core/shaders/webgl/radialgradient.ts","../src/core/shaders/webgl/radialprogress.ts","../src/core/shaders/webgl/rounded.ts","../src/core/shaders/webgl/roundedwithborder.ts","../src/core/shaders/webgl/roundedwithborderandshadow.ts","../src/core/shaders/webgl/roundedwithshadow.ts","../src/core/shaders/webgl/sdfshader.ts","../src/core/shaders/webgl/shadow.ts","../src/core/text-rendering/utils.ts","../src/core/text-rendering/canvasfonthandler.ts","../src/core/text-rendering/canvastextrenderer.ts","../src/core/text-rendering/sdffonthandler.ts","../src/core/text-rendering/sdftextrenderer.ts","../exports/canvas-shaders.ts","../exports/canvas.ts","../exports/index.ts","../exports/inspector.ts","../exports/utils.ts","../exports/webgl-shaders.ts","../exports/webgl.ts"],"fileIdsList":[[106,123,125,127,130,132,134,136,138,140,143,144,146],[104,106,107,162],[62,63,65,69,73,77,79,80,86,91,94,101,102,108,109,110,115,119,120,124,126,128,131,133,137,141],[108],[61,63,70,76],[89,90,147,148,149,150,151,152,153,154,155,156,157,159],[86,89,94,164,170],[79,81,119],[75],[61,62,63,119],[63,64,119],[70,119],[61,62,64,65,70,76,80,81,82,86,88,94,101,110,115,116,117,118,120],[61,65,66,110],[61,70,80,81,82,96,110,119,120],[73,74,76,79,80,81,92,99,110,111,112,113,114],[119],[103],[80,112],[68,80],[61,70,80],[69],[111],[110],[110,111],[74,78,80,81,103,104,105,106,119,120],[65,105,110,119],[61,78,80,103,120],[77,80],[60,65,66,78,80,110,119],[61,110,119],[68],[61,70,84,86,88,89,94,110,120],[68,70,77,86,92,120],[61,68,74,77,80,86,120],[61,68,70,71,77,78,80,85,120],[61,68,70,74,78,80,81,85,86,87,88,89,90,91,92,93,95,119,120],[65,69,70,91,94,110,119],[61,66,68,69,86,88,89,90,94,119],[106,122],[69,70,103,106,124],[106,107,126],[69,70,106,128,129],[106,131],[106,133],[106,135],[69,70,106,129,137],[69,70,106,125,129,138,139],[69,70,106,129,140,142,143],[69,70,106,129,138,143,145],[69,106,129,141],[65],[65,69,121],[65,121],[65,121,124,137,141],[65,121,124,137],[65,121,137,141],[61,69],[89,122],[69,89,124],[89],[89,126],[69,70,89,128],[69,70,89,94,119,131],[69,70,89,94,119,133],[69,70,89,94,119,135],[69,70,89,119,137],[69,70,89,119,139],[69,70,89,119,142],[69,70,89,119,145],[89,141],[60,61,64,65,67,70,76,77,80,81,82,83,96,97,98,99,100,109,111,115,119,120],[83,96,97,110,119,160],[61,83,96,97,110,160,161],[61,73,79,83,96,97,110,119,160],[61,70,81,83,86,89,94,96,97,110,120,158,160,163],[96],[70,81,83,95,110,120],[61,63,80,110],[80,115],[61,70,71,72,80,111,115],[61,73,80,115],[70,74,76,78,79,115,120],[62,65,83,101,119],[61,62,80,83,101,109,119],[61,65,67,76,77,81,83,94,96,100,102,107,108,110,111,115,119],[60]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"5ba0a094f93834bf1d227ddfb621d45ffe5b37e4dfe0b8518cdb769713f86633","affectsGlobalScope":true,"impliedFormat":99},{"version":"0fb789e71544b33050f556c483b82704450a1f5ed8277c35674891aaaa6a95ef","signature":"826d87ec474ecd59c827441df44d49f420dbe099333c3344e31dfada8cc39902","impliedFormat":99},{"version":"ef121487db615bde0a350484d99c0282ab686d8c9c42bb58ebab26222fcb5d7d","signature":"f881a1a2b219f636190a264c5e6c61c8860b5f4c8a803d76d3729cfd97072d13","impliedFormat":99},{"version":"725cf9cb38ff2000cd2156e28dc06fb265cb6fc79f3a9d83141940b502f0fca6","signature":"fa40725ac8d2fe1f3e11590e2f2bd0ac523256d9f6805bc425c2286c7c93f894","impliedFormat":99},{"version":"0dcf0b8b29a5e0a4f5a592adea458990b22354a1a4c2766d0b024df0aebd71ff","signature":"ee40f42d658eb673fa53ff333ab90b838d3d4397fcf6a4ce49cfba5202f7c4ab","impliedFormat":99},{"version":"eea8be5c1eea68d449669b540be53f89e6cb749871fd8c13f2ae7869e167dbed","signature":"8d84c9cf16816327dc926a3b63fb8eb67ad6b2bb632f524154189b7320c30863","impliedFormat":99},{"version":"26fbcaad253a32731dbd9defa3203585dd37484b79e0588406dfe4466fad2520","signature":"82bf95c1d5594c8bccf0ae18f7c16116df3534239a00284ddf96759da3602812","impliedFormat":99},{"version":"26eee6d5475b7bf6ab5b0e8ee2cbefddd6c4d34a6b80ca12ee6511c943c7bb43","signature":"97326a2f5f0fce22509018fe77795cb2313d61f1ef71eff134612c81ec2ac600","impliedFormat":99},{"version":"b1c72510b9beb69a582283ea61e70021319ab7892f8f254f9b7a8fd0468f02f9","signature":"6dde36af67f486d0925af4ba0339e7a66b7f71fd36f1a4d928869ccbf4dfdda0","impliedFormat":99},{"version":"1a0bed4785a29f19dc764fcc593aafe7bf074a360b40a46a7ad1dd5b589d15ba","signature":"2b6f52be39d4fb3e626fb1d1b03b22339de9ae3c2afb46867731e15e856c4da9","impliedFormat":99},{"version":"88b7f66a548fba6db4f38b62bbe7ab1a134d40ae82fab1bf2f2d4da012f55e52","signature":"5ada2f98956abecf861f20250b0778e9c83ccecdfb48d24cd8aa5ffc3600266d","impliedFormat":99},{"version":"93478a22db5f8686e1c0c656798ed2409baab75dd1ccfffad0b29d1af36fbaf8","signature":"384cb58c372f77df67101837debb690eb5a3fa21e7867db2a5e9cfa428189a6e","impliedFormat":99},{"version":"6770f6304c5b8c0cb3467fd397966007669ea7d3b1b19e3510a89094ef3e6da7","signature":"afcf49d3e0bfb93f7ba0802ac21a8cdee4cb9f08e66aeef6dd7de60e5db2754b","impliedFormat":99},{"version":"83d66848c8099c9fa05d49999db1dc0ee07072bdbd98675055a0ee8e48c61431","signature":"4fe26dc4bac065bdc055fd26f9ab411f282f020052ef557761cd96160810f442","impliedFormat":99},{"version":"1529b99843f7e684e3eb5c4e3878cd3dd9c963ab58c3d69d2e3e4dd4d19d430d","signature":"9aa36325cd99649318217f9f9a87ad3cf4951520cfae47869cebc1e7d80820f4","impliedFormat":99},{"version":"18151b50888ab1d36f978ac79f62736ca8cd9b112e41e36ad504316a90bacee2","signature":"046cf1637a30f54c247748ec08c64cedaa5b498a109268514922f2e86234002d","impliedFormat":99},{"version":"e73d693dbc420ea2f5525275bf48a1a958c00c14f4d310938c6ff562171084b4","signature":"11f10eef6b087b59bd9e527db506274380a36587a1bff3450e220ad7ec2ce45e","impliedFormat":99},{"version":"1775968f6dc2a28607890c46c3dfd1a593d770e0953ac0163b95d9d1f981588c","signature":"30a3967a5b741981ecbc92f0f0508cb35eae8a21377641ee2e5d7cb305eb0a81","impliedFormat":99},{"version":"410f52eb5078bc0512f148d470430b6596f4268a3e2a21f66f3a76bdfcf679a7","signature":"a0a444a047bcb663ca7b7ef2a2470c122b6843fbc1147b7cad99de6ea0945d43","impliedFormat":99},{"version":"b1aa12a696499aec7886bad670c0d61ab1bbfb7010f509aad0a33976a43bb7a7","signature":"7fa0036a92ef198a2140758b695b615596e7860cde2f8f50dc8772f1ae23fde0","impliedFormat":99},{"version":"8751c170b7d20979afe81c6848afa318cd65c3d9026a4addb68b5f3271d21844","signature":"5fbb8d7443bd5a5b303f62cef8ce4b65cd729647d59916fb69f202c60db3f562","impliedFormat":99},{"version":"09615b6559ce03fc49689f9f196d6cd598953bf49aeaeb0c1a4146c192266ccb","signature":"e5b8bf7a69409d81d17c83f1c8fabe83531252723bb783719855d56a72c2c2ac","impliedFormat":99},{"version":"d16286157d6af05710bd28cbfd6b3620b3f2dd38a18ae7c93cd7cbdeac2f2d35","signature":"692f243d410c1f895484e69c9e2fd39d32d985a104f13f6420e75df68269e566","impliedFormat":99},{"version":"619f7047ca3a1ec65a3398cd2d71717f6ecb3a579a46268366854142afad55a5","signature":"5a652125462bca72ea748d3bc73c458a9776fb3ad492674336f6d83df791c42d","impliedFormat":99},{"version":"81f8bf212ea85fb171a14f2330dcf966c74a67690d37ff51e63e795275aab8b7","signature":"ed16135617242f809c2200d4c4b18610b4d0d7b7043903373da1f7cb27e394e8","impliedFormat":99},{"version":"03eb47e1e2969c3fc52fa7fdbd5c5841ffc3f7139fffc30d771d2b87e855b2fe","signature":"21248172fdb4c3ce859fa761a360940384895116a845e10fb20812ef4d29431c","impliedFormat":99},{"version":"278b2121aa5e49d2da7c6fa8e97e5fe522879de7b8bb5798d4eb1ec0c254078c","signature":"4c31e651822192e7f40bd3c13394d10fed932d6517b3d6fa44130bc4064efd82","impliedFormat":99},{"version":"667d8560d1c9eae8787aec99cd87d80e573ed6bf733bee465646b130c7ff0393","signature":"655c31a1722747d229233819701c97a0d0eb45de1c402d2af099ef6209823228","impliedFormat":99},{"version":"35a18cb45a375acffd7fd9924694a0fe490aff7e0456eaecfd8f06967b9b75a5","signature":"4d678bf8cab921c2d080b75126762897254dcc9424dd4527d9ed232a69258b11","impliedFormat":99},{"version":"412a870bb718eb9415faec7bc11ec73e104ded0dd8bacd66184ac0474dc806e8","signature":"c71fac303272beaa89b727174d0aa688665f420a8fbfdbdabd70d37ff1306ec2","impliedFormat":99},{"version":"d337e75063dafde8652b9fdcc652a392b9743bea5951ebc8f7ff4b0cbc93f8a4","signature":"4d8b4828eff7f5c832473b74466fb23d74a386d9b44efc842e5222f26c7a5de0","impliedFormat":99},{"version":"e1c1814eeb96c78e2437e92b81bdf82840424b0a4b22b600fd80c0c4ea936069","signature":"11d90ddf914600d7cdba80dc93576c8e4b9590b42542a4e4db56e36af1c3c341","impliedFormat":99},{"version":"fdcab99c0580b6daac1633629937710c230d0f68a04575e888de68599118f62d","signature":"c928f43ed43feba1901537b3f8dbb5396452c085cb625c35e06b8cb0b79b3004","impliedFormat":99},{"version":"b63eef02fb6f5bc004aeb338f6cb4fb6648cafcf9841396432738f2f3cfecf07","signature":"8adbddff6d8303fdf5de01602f8c2b9a28efc3bf60530eeba3857aa7f550f655","impliedFormat":99},{"version":"309b37dd89c078c27286180d57ef951f21363d029e475d9f8d6b436e2a31a62e","signature":"babf579da841813feb2c91dcd842f39537eb0371fb903b24eda3cdecba2bf14f","impliedFormat":99},{"version":"60935851a41634d4d92b8a88a837ba79a750cdac15abd7127d79632f8fcf0578","signature":"9c6680d8af256a49696b14f3c53d1bd5f54f047cbcbbc10e4ca724440814f550","impliedFormat":99},{"version":"c8f7af6e18410ec4fbc3b33f78affb0da09868ce34af9f087d29a487f2e81182","signature":"31f1e85b7793907da145a21c1b8a4b197c4e83ca8071c41f866224d5c85a34e1","impliedFormat":99},{"version":"0e1c557f79bf8cc75cb6bff4f88a299999dc61ffe8c1d880ae2fe759ed7078e0","signature":"f1a6bf0cb925e9d8b29b4bf2b245a1c608c3ea340beebeb3d0e3f54964a409a3","impliedFormat":99},{"version":"ab73636014e29a7e35c6ac6053c26346b827565a006fbd091ac6db0f9ae627fb","signature":"3eaee23f112a80139af770d0a6b7623f33675966ec3dca3cdab74a0ea071064b","impliedFormat":99},{"version":"7f6e6e6104931e7907c74e53d336094350978646d9c02c2a205ffcea90b58e61","signature":"f02942f8ae408270e572fa4c23aca8f42b496b83a836bfc8cec4f559e8ce1125","impliedFormat":99},{"version":"45a3d03cb79677851a1597d31d0936c706cb80d3731b68677012520d555de2e6","signature":"68cfd7feb1396181cc75d8cfbd95ae5e76e2ffee3c99aeb04e4d3175737c7a97","impliedFormat":99},{"version":"26bacd8b95dc8d6362085130b922d691a1b1223efd95bf160bb3bd1f980b5037","signature":"4efda82c758514a08d950cbc7079752d18f74223fd28014d62a9009694c019dd","impliedFormat":99},{"version":"7381e02deaa54cca84fd5829a7abe72b9aea79739cef50d2ef45e7133e46a245","signature":"bdfe37f9178a0c445385afef820471496de4d62381ceab44090e1d2f7cbf9d57","impliedFormat":99},{"version":"d41aef2354b7b9bbbd538909867a16826b1111f88d82b3db7669904d88f01938","signature":"378b818788219a531c09232dc8246ed3d0b70113a75770eb1d2847084edc7eae","impliedFormat":99},{"version":"0e4cc781e7d725b36b08e599fa522b59390e9af2b3f968c24898d711c1d43c20","signature":"ed1bce3569c23d16ea1421a0d84ac59970cf40c6edb60ed933c63a406d039dd7","impliedFormat":99},{"version":"26c6f7db0180070206eb2449c0c5fa0189fdfc0a258af7f60762b14c5908ec7e","signature":"f6b7f82e188e0e7d18bfa9cf1dc3ae29b31eae9950b495772537815380c7a573","impliedFormat":99},{"version":"f309bd228e2982f60f7ed817323e80d1187c1520248ae02059bd93d23eaa1acf","signature":"2885b4f117dd1d518624b16d3993749c17042fe5d799b60a46d9654d45fc1be1","impliedFormat":99},{"version":"548e85be54e3dd4dba937ac994f77dd79c7bb24f23bc8a0ce088ef7d41887ea7","signature":"f517fe6b9594b6bc1939368aec01eb109e47e51250a3f836c2aa32baed7b8523","impliedFormat":99},{"version":"74f792bba6c21bb95ccc1858f2b957d27a2661b5739883ad5e9e73112673a839","signature":"ba0487147be7109d3c222c88d8e88e1915a84025790bba5f5fbb6b47dcd91c41","impliedFormat":99},{"version":"1c802ef16e4f78b03ad399b8df8083b110b43a9885f0e66081378a8ab41b38f3","signature":"1d8e5d8f1f509ebacf09e733e4784fb0e0ea05e02a0a21e1668c5105a6883d35","impliedFormat":99},{"version":"394fed85baced3ab4a54217e55318971747c89468f83ff6b0c32655452941e43","signature":"746f2ab5d3d74f6c668361434e17958a307d82f87580b9fafc913c9f666c88e2","impliedFormat":99},{"version":"5428ab4e7072a054913e96927150d4cc218f19e940bf76f8f96eca2bc67268cb","signature":"2e71aaad37b0a76d8d705ad15d94898a3c9a6bd781b24dd7127fe02afb0b4dbf","impliedFormat":99},{"version":"9fd52944f4d0748affc7601ddcd21af6e8c622d2e2855c9a5ad215ca3e09a7ae","signature":"1bc91777d9c68f9f46697b1859f11ea39e6c51e1eb135336d81289eb25c97623","impliedFormat":99},{"version":"6f0f3db92f6a8a932d288f1cee05a74f68e3d2b6390c6f3d66e4f905a176265c","signature":"e5f6dc794b3c6d6b4b47e4b19ec057485efe97f34ceea97853b37206804641ac","impliedFormat":99},{"version":"3c11432335735177a710bbb848d6aa1ca0303c6f033b3967631cdcf42bdd47c8","signature":"50a6aa824772162e168c9859f53b17a42a312be6b3c5346866e0354fc7d2c61b","impliedFormat":99},{"version":"5bc4d797c4c00430b4e7cea2ca1ffa7d8e3223fb526997bb4a3b73b556b344f5","signature":"46d6995fa6153325dae9fcaf8eb7fdc183936a42a3fb851efcda43cc0bf7edef","impliedFormat":99},{"version":"efb15632edb37a849daa6cfaa57fd4ca0b81b7f34b3cfa883d9f9484cffb2159","signature":"4e6c8aa181698e19c785017b529e289167cb63c7f31b589c045ea895c6d4b072","impliedFormat":99},{"version":"1e434b5f963ca54162c007922a664c33c058045e1f8258bc47ca7b10b0df25a3","signature":"9b47d61d6e847112cf7e9f2fb1631d36e81d966b79b46ede120eaf85058f6a97","impliedFormat":99},{"version":"d1781b3d8835d839ae6ca22406684cd188cf41c36507e0c6ad7cb1d12b2ae0f0","signature":"3ea67cb40367de619dc4addce96f4d5e80160ea305c6afe526d44a1b7988a3ea","impliedFormat":99},{"version":"a3e04cbb9c244d5c8bd33920045de269fb7162894aafe0367e91e6cc13577e95","signature":"55a86ef2a9418a10b936be9d9a388c55c9c327d7b8c7a4bec3bae3bff90226ea","impliedFormat":99},{"version":"b5ef8c1d3da6d34f09455d5c33eefa1644090f564d8a61bf6d9f85db835c4244","signature":"2751341c749bd80117748ecf137b460f6f62ee347191ba0e704ec247d1d6095a","impliedFormat":99},{"version":"9c4a7f7c843b9ec89f839e78d32f3a73502614b56bbc72daba7e8993b4fed0d1","signature":"2d262bb6e4c1943ab022f32e8849eb67ef098ecba39f7025e064a1cbcafc57bf","impliedFormat":99},{"version":"ef58c75d40fb4394e68971549eb3351058cb0b275db2738ae67df13ffc150cc8","signature":"6b38678a012f8055e5f0a8aa9c1ca13d8a6d60110541d60e244a132b31f1fec2","impliedFormat":99},{"version":"387288e860f965c2862d17c155ad361b1c2ceaff5f97761d179262336b88580d","signature":"872937c6cd92ad2ca1548878c5c2325dc0ba3339a93a31ed1947884908dd8aa8","impliedFormat":99},{"version":"f47ba4df2de5c263e2a7c95464685602b0db64ad88bc1f62a477dc98311f88ab","signature":"98a1f2a3ec600dc06f82c4fe120b7d2ef6aa8ec258b1c4fb77e44a913cc6e233","impliedFormat":99},{"version":"4c92257cc7c9b722720be143ed2b5b8387267854c67017372b09e2bcbbea6063","signature":"c0e70bcea10f408ecc8833d2aa2c3af825d13e470d74990ba538d0a81cf56a7b","impliedFormat":99},{"version":"c3c7389b117ec2f370d63fd673a8fc379b335b73666ea9c481848043d27e85d3","signature":"47e1b725b6d55b6284e63568e9074f195005f8b79e066b28449663aef9aed95c","impliedFormat":99},{"version":"2562891204d51c22c9f363e89bf5f7fc18e4a40050ae0ff8ef025ac319c78bf3","signature":"165aa5926af1b2f55b8f3fe9b760823a9929f79835ceb25bd276a07b60ec8e60","impliedFormat":99},{"version":"35c182acdcd162697b878067f3ada4c94ec7f2cd6380fd6ecb45d6f0c7c8fecf","signature":"f5e100aa3e93dc49f367b01fd11367cef5d365d7cf2a71e8a5386629337e15fb","impliedFormat":99},{"version":"3c0e1904a08a9f573980fc9cabc22e76657990ee395bac9a6bb50a6c102e52bd","signature":"42e936ecc3b9b7ad5a489eeaea7c25af8d7b71162a08e00ad638648e87a7ee51","impliedFormat":99},{"version":"f048cd019df6b704e70af0223667ced2c8c6088126af9acd750db564418e3a34","signature":"e6f972dc162ead1d86897a3488316aab8b034472695d40eac74b6557e184919d","impliedFormat":99},{"version":"ea4c2e9deca942ae568c64e85d74cd5eb67c40b827956fd9a82e81d70e70585c","signature":"d91415fa00b3eef01ae2e08e8ffaf7cef9fa568515c83ac1474a22cc55bb3718","impliedFormat":99},{"version":"137618331aa4f4dd38c93e26a20b43dc8dc25a95485cdfd496f1a104b1b07c3b","signature":"912202a19d5e8972357af639e5e65d06c9171e30d4bf077fcdfe184c30effc7c","impliedFormat":99},{"version":"0bb005bd34cf33aebb3aef3a23ac5277a93fc62a92b99010d15aebaf770003eb","signature":"16ea4109bf543dd521c2e9cd4ff0f8c498250ce26f6fe55739e077e0761c8807","impliedFormat":99},{"version":"8130e89488ac70797bd1737f59ab9d4ca43805a6886ec3e600eb29cfd681c96e","signature":"9ab0406e79c8ae7a4f552c6609b8ce436242d74abbeebd1f4303a63c53ccb56a","impliedFormat":99},{"version":"0d2f8deb225e2cb7c3a818ff1a6e2aaaaf2104a0af8104d8c3e112cb9856f3ae","signature":"76fdce1e19f5cf3a2243a37f1778f534dc527e73c25100a14d63994c2f0b8760","impliedFormat":99},{"version":"df3b85e40aa11deae5e4e9094927c0ddc7a768c10f8d2e4f793558d7c832337c","signature":"dca314f637b4d88b884e8a6d76fb82cbf2b896e28f69feae8da56046045cf278","impliedFormat":99},{"version":"484cf35592b2c8be3608d937a5238c1fef88315cedc853cc817c1333ad316e35","signature":"e7181fa8e23ed61baefe346d52c8e0eaa94ab0c495c50933f3d0b1de1f949230","impliedFormat":99},{"version":"79604b209f32f23345daab19964a53d8dc9488d1ed7e23bad0ff08fc2c772da8","signature":"4dcaec244d4486f21fa7800fd6853c914df66154d4ca6b7cf0aa0370c5e6a656","impliedFormat":99},{"version":"96b089770d2f3711db9d58c671df98ee792dead4dca0ce3739f4ab83859d3442","signature":"5111e2e2ffb1264243951a0c15fa3498e2c0c23e74599f535ad2227a16d8c503","impliedFormat":99},{"version":"8a6aecc7b7cd01b03424ea5e4755f8abceb433c7cac3c4cc74aea2df676ca32a","signature":"2c6c2e2996661a1558d5ce4040ec63a12913ea0c52fd071adc079fb1f3fc125c","impliedFormat":99},{"version":"3e87e6d2e51b392e59034bf46547bd13ffbf54301ccf98cada6692eec7261860","signature":"b6c5cb675d41673f3d27982b79d6b96033d9f0976ff9c62a49b4d61bbfc71b1f","impliedFormat":99},{"version":"950cb741daec5e63de1500aa3db70f9879fa16164fbb8cbc100437a258643f84","signature":"db5ff6f8ae2b0a4ff8cb16b43646b5561304b219fcc10ab1c470965743fe7662","impliedFormat":99},{"version":"f6ce18c4659b7e933d0e0289ee01d20eabc88543587ba71e3ee59ea2560e8294","signature":"e4bf9388266333a7b08b77dfc53f0bd5cc25da0e148c7a896aaac443c6becb47","impliedFormat":99},{"version":"d316f795ecc284e4a91622cd71635ba3964cd3ee5fa4bcca828173767520113e","signature":"986c6fa0b20de6185466d165274d7896f8734b92302b70ffccf4614be069db61","impliedFormat":99},{"version":"c5da010a38dec8e8569cf895d9dfaf1432e1d29d7f9f73644eb01f33f097e89d","signature":"02fad959da0f7217696defb6dead5557228c3ef9791e4cbb28164d4bea2a8245","impliedFormat":99},{"version":"85f4bc1f1eea3a08f8abc20c7dc41671a8c4ba35860c9e948ef7ca39eff18dc2","signature":"43065306646acc1b02890238154e075cb4e2a6cbc73e213e1f56fcc6ad568d37","impliedFormat":99},{"version":"f7e6a561941091c6b719421fd97f5b063555080bc770ea17ce8ed7c06971f7a5","signature":"ccd53c52eddd8eaa19baaf4ac4224f18b3c9ee90cbdb62001f1477e59c5006be","impliedFormat":99},{"version":"7a55412506f0f9dc36fb71e3cc6e6781526deb1a759038ff8fd08c45d99326f4","signature":"e83ecc19d67e55848641650aa73755b88b0085d526fefdace51ddb11da8a4e92","impliedFormat":99},{"version":"d396435b20f0519b57e61846d68e750c6339af6101acb3f85bfbeeb52be27213","signature":"fc4560cb792ceead9e3fea2f6af6cfc1f6c3ae85091f1857c7d268a11c01b948","impliedFormat":99},{"version":"ae52e8c6c00fa2793806580115457439d815c487ce05b74ab4e50e9a32456078","signature":"be87e1fe0936272f4939e0fa1f55852ba93434026013c40dc05a2a884634b01c","impliedFormat":99},{"version":"679a0a57dde194689fe96133fb376bc345c882df2a40210bfe02a0f79f019548","signature":"e7f707dc443bc70c46576168b519c3ba5479373575af4399855ca8b0b3013a02","impliedFormat":99},{"version":"fa0f75f09203c7c8376a067811fcd17f3bce6148e044ee242378ad0541af7857","signature":"8b97d49f33fb21b2b6616c0600cb2e3968deede70049dd50e38e7d5e60258e48","impliedFormat":99},{"version":"4d88d3991065b6deba1f344fbffec6b53c9be5ed6c985c024cbd366eefcb4ef4","signature":"a61270eb38bce478ba85ad3126a149e7d178fdfc02d91d901ec450ca2a08a3c9","impliedFormat":99},{"version":"e41e2d517cc76d37abb944e404dbbdcb51c6601d7bd25460f7be7582298eac51","signature":"5be8d9fadb8846ec9529a9a0839940b7ed8667d9473d37fcaddf5a5407046bb8","impliedFormat":99},{"version":"1029ff8709b714292e9e06f2c7a61ef03249cd622dc0a14b9ef090eb4f5440e3","signature":"b02e020e0ad1378e97a9e1d26795695ac5527087e5c174e8aea70ec0d00192e9","impliedFormat":99},{"version":"279ca7d5069ce14a8b3b3d654878282c481f8b837ba4b3832cbefb008da8da94","signature":"b34ecdba664a2ec3b8dbf9e941b6dbe316902ba0e406a7c31299e7eb959fb7e9","impliedFormat":99},{"version":"8799f2e2fe06cbface134abc396b54fd91bdd0888a3cf21a2be7678891c4597c","signature":"66fc58d212375c49354827feb93cf399644bddf49c6d5aa7cd716cd81cf5b691","impliedFormat":99},{"version":"1bda31e81d8e9211341da96c57ab693bcdc9e9d425ba17f7967050a3bcea8ed5","signature":"0c184d4bfd1585aefffd168cf5f09cd420bebc653e912e418c24cab332f186e3","impliedFormat":99},{"version":"582dc809d8b93a8fc16c77e1ffc53850f3f84b40f8cb2a3cdf1996f79f1b3088","signature":"5ba57c948c9666d17638efae14ac47877ede75629fe17a412e5d6d1a4c505fd1","impliedFormat":99},{"version":"61de2a4cec798c8c5a75a3040d996968e2f2d8214052b7aafa46371cdf61f8ea","signature":"5cf4cc52274a28bd8ab9406ed3e98fa53551f4b4cf1a34bd65b78b5e1439414f","impliedFormat":99},{"version":"b9108c4d92c7ffe8546ebd753ef6901b2abd197367e64f6826c3897ac541c3ae","signature":"48706ca10c8d5d293d1546c75598d177ec2e218aadc913c0c0e22d140788e167","impliedFormat":99},{"version":"8deb00d88c030f7f42e16147edda1aaefcafbab4013dd7a7a72f977b971db8f9","signature":"9ea3d311a1dd736d63c38632d4a4af2019f41fcec61243ebf8e9f5a9ffaf2cbe","impliedFormat":99},{"version":"6d55ba1191a52297542ccc25f3fb7b5f551db0ba6794358a69e57f0dd5d24f88","signature":"a03ba7ec376ee4f7053cc8948e003e6e0cf9aa4c7aa65faf61e76ab153554cc7","impliedFormat":99},{"version":"be42ad4f35f13847b388a6eb457648a50c7a5a87781aa05998df8a4617a87b52","signature":"273225bca0660ee56e597bdccc238539357d790920710960d10d07d5ce388020","impliedFormat":99},{"version":"0f2926a08c7d3cfda78844d13e5d9cb3272b356f6bd4ab06075145c296aea7b8","signature":"5cc44328b5fa4bfbe7f0a0fb660d46b6de824e565e8079471b6961e20e12d939","impliedFormat":99},{"version":"0685efaf535d9abf2e8a9cd5204ec5fb15eeca03e70e3344c4ee0797cf7cfc02","signature":"18e379806ef687bb50ab57e26b656c8b0c2f3f5ff825cd887423c2efbfd80ed0","impliedFormat":99},{"version":"96dba49c7ca675ef31b5e4fbfb040472e1399e7579756cbe75bc467fd818b725","signature":"a34189c39e64e75e77d978d1c1705f53c585e7598705ffb45487f46c26b2cae1","impliedFormat":99},{"version":"4e29810600ceda1a91b739dd96562bf7943b44cf43cc9ba8cf805e4181bf2ec8","signature":"14a029fc47ad86ef6b6d78963a8a56ec4678f1ee8d7a925af474548ffa75751d","impliedFormat":99},{"version":"7ab5ea0a0fee1f29e1fac8686e28f007d043ba95d7e3b632f8cc7301c37e6811","signature":"db959774546bdddc7101c53894e3138cd245b33175f7c9377f9343eec1a8d680","impliedFormat":99},{"version":"c27b65f34815f9448a64c605dd63f6e03af85ccb2ad4bdcd0cf5332b645c9705","signature":"8c826192b6757cbc3ffc140a36dc8ada7957796bd2242467287ae231450b4f99","impliedFormat":99},{"version":"0a831a6931e36d06b844cce87e704de1f5cc5ba7479f8e27bc8f59165ce91286","signature":"42b2b1c56d60b28f963c6af444555c1f6b47bfc4210b4caca2cbfdb6ff1e3d73","impliedFormat":99},{"version":"eb54d8688792ecc441056d4150a5da1dba8815050829d8cf74d08d50aa40b8a9","signature":"10c7bdc6518b5f312287ce56e2ad08318c9c6a205f70fc51138764c9f0579ccd","impliedFormat":99}],"root":[[59,171]],"options":{"allowJs":true,"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"experimentalDecorators":true,"module":100,"noImplicitAny":false,"noImplicitOverride":true,"noUncheckedIndexedAccess":true,"outDir":"./","rootDir":"..","sourceMap":true,"strict":true,"target":9,"verbatimModuleSyntax":true},"referencedMap":[[165,1],[166,2],[167,3],[168,4],[169,5],[170,6],[171,7],[120,8],[76,9],[64,10],[101,11],[117,12],[119,13],[67,14],[83,15],[115,16],[118,17],[105,18],[113,19],[71,20],[72,21],[70,22],[112,23],[68,22],[111,24],[100,25],[107,26],[106,27],[104,28],[78,29],[81,30],[65,31],[88,22],[85,32],[69,32],[95,33],[93,34],[87,35],[86,36],[94,37],[89,38],[91,39],[123,40],[125,41],[127,42],[130,43],[132,44],[134,45],[136,46],[138,47],[140,48],[144,49],[146,50],[143,51],[129,22],[122,52],[124,53],[126,52],[128,54],[131,52],[133,52],[135,52],[137,53],[142,55],[139,56],[145,57],[141,54],[121,58],[147,59],[148,60],[90,61],[149,62],[150,63],[151,64],[152,65],[153,66],[154,67],[155,68],[156,69],[157,70],[158,61],[159,71],[110,72],[161,73],[162,74],[163,75],[164,76],[97,77],[96,78],[77,79],[99,80],[73,81],[114,80],[92,80],[74,82],[80,83],[102,84],[108,85],[109,86],[98,17],[61,87]],"latestChangedDtsFile":"./src/core/lib/validateImageBitmap.d.ts","version":"5.9.3"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@solidtv/renderer",
3
- "version": "1.6.0",
3
+ "version": "1.6.2",
4
4
  "description": "SolidTV Renderer",
5
5
  "type": "module",
6
6
  "main": "./dist/exports/index.js",
@@ -0,0 +1,147 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { ConcurrencyGate } from './CoreTextureManager.js';
3
+
4
+ /**
5
+ * Flush the microtask queue a few times so acquire()/release() continuations
6
+ * (which resolve across several `await` hops) have all settled before we
7
+ * assert. Deliberately microtask-only — no timers.
8
+ */
9
+ const tick = async (): Promise<void> => {
10
+ for (let i = 0; i < 5; i++) {
11
+ await Promise.resolve();
12
+ }
13
+ };
14
+
15
+ describe('ConcurrencyGate', () => {
16
+ it('resolves acquisitions immediately up to the limit', async () => {
17
+ const gate = new ConcurrencyGate(2);
18
+ let resolved = 0;
19
+
20
+ void gate.acquire().then(() => {
21
+ resolved++;
22
+ });
23
+ void gate.acquire().then(() => {
24
+ resolved++;
25
+ });
26
+
27
+ await tick();
28
+ expect(resolved).toBe(2);
29
+ });
30
+
31
+ it('blocks acquisitions beyond the limit until a slot is released', async () => {
32
+ const gate = new ConcurrencyGate(1);
33
+ let secondResolved = false;
34
+
35
+ // Fast path takes the only slot.
36
+ await gate.acquire();
37
+
38
+ void gate.acquire().then(() => {
39
+ secondResolved = true;
40
+ });
41
+
42
+ await tick();
43
+ expect(secondResolved).toBe(false);
44
+
45
+ gate.release();
46
+ await tick();
47
+ expect(secondResolved).toBe(true);
48
+ });
49
+
50
+ it('hands released slots to waiters in FIFO order', async () => {
51
+ const gate = new ConcurrencyGate(1);
52
+ const order: number[] = [];
53
+
54
+ // Hold the only slot, then queue three waiters.
55
+ await gate.acquire();
56
+ void gate.acquire().then(() => order.push(1));
57
+ void gate.acquire().then(() => order.push(2));
58
+ void gate.acquire().then(() => order.push(3));
59
+
60
+ await tick();
61
+ expect(order).toEqual([]);
62
+
63
+ gate.release();
64
+ await tick();
65
+ expect(order).toEqual([1]);
66
+
67
+ gate.release();
68
+ await tick();
69
+ expect(order).toEqual([1, 2]);
70
+
71
+ gate.release();
72
+ await tick();
73
+ expect(order).toEqual([1, 2, 3]);
74
+ });
75
+
76
+ it('frees a slot when releasing with no waiters queued', async () => {
77
+ const gate = new ConcurrencyGate(1);
78
+ let resolved = false;
79
+
80
+ await gate.acquire();
81
+ gate.release();
82
+
83
+ void gate.acquire().then(() => {
84
+ resolved = true;
85
+ });
86
+
87
+ await tick();
88
+ expect(resolved).toBe(true);
89
+ });
90
+
91
+ it('never runs more than the limit concurrently under a burst', async () => {
92
+ const limit = 3;
93
+ const gate = new ConcurrencyGate(limit);
94
+ const holds: Array<() => void> = [];
95
+ let active = 0;
96
+ let peak = 0;
97
+
98
+ const run = async (): Promise<void> => {
99
+ await gate.acquire();
100
+ active++;
101
+ if (active > peak) {
102
+ peak = active;
103
+ }
104
+ // Hold the slot until externally released.
105
+ await new Promise<void>((resolve) => {
106
+ holds.push(resolve);
107
+ });
108
+ active--;
109
+ gate.release();
110
+ };
111
+
112
+ const tasks: Array<Promise<void>> = [];
113
+ for (let i = 0; i < 10; i++) {
114
+ tasks.push(run());
115
+ }
116
+
117
+ await tick();
118
+ expect(active).toBe(limit);
119
+ expect(peak).toBe(limit);
120
+
121
+ // Drain holds one at a time; each release lets exactly one waiter in.
122
+ while (holds.length > 0) {
123
+ const releaseHold = holds.shift()!;
124
+ releaseHold();
125
+ await tick();
126
+ expect(active).toBeLessThanOrEqual(limit);
127
+ }
128
+
129
+ await Promise.all(tasks);
130
+ expect(peak).toBe(limit);
131
+ expect(active).toBe(0);
132
+ });
133
+
134
+ it('applies no ceiling below its limit', async () => {
135
+ const gate = new ConcurrencyGate(4);
136
+ let resolved = 0;
137
+
138
+ for (let i = 0; i < 4; i++) {
139
+ void gate.acquire().then(() => {
140
+ resolved++;
141
+ });
142
+ }
143
+
144
+ await tick();
145
+ expect(resolved).toBe(4);
146
+ });
147
+ });
@@ -6,6 +6,7 @@ import { NoiseTexture } from './textures/NoiseTexture.js';
6
6
  import { SubTexture } from './textures/SubTexture.js';
7
7
  import { RenderTexture } from './textures/RenderTexture.js';
8
8
  import { Texture, TextureType } from './textures/Texture.js';
9
+ import type { TextureData } from './textures/Texture.js';
9
10
  import { EventEmitter } from '../common/EventEmitter.js';
10
11
  import type { Stage } from './Stage.js';
11
12
  import {
@@ -51,6 +52,10 @@ export interface TextureManagerSettings {
51
52
  // 'auto' = detect via probe; boolean = force the value and skip the probe.
52
53
  premultiplyAlphaHonored: boolean | 'auto';
53
54
  maxRetryCount: number;
55
+ // Upper bound on concurrent main-thread fetch+decode operations when no
56
+ // image worker manager exists (numImageWorkers === 0). See CoreTextureManager
57
+ // for how the gate is applied. `0` disables the gate (unbounded).
58
+ imageDecodeConcurrency: number;
54
59
  }
55
60
 
56
61
  export type ResizeModeOptions =
@@ -230,6 +235,49 @@ class TextureUploadQueue {
230
235
  }
231
236
  }
232
237
 
238
+ /**
239
+ * Bounds how many async operations run concurrently.
240
+ *
241
+ * Used to cap main-thread fetch+decode (`getTextureData`) when there are no
242
+ * image workers: on such devices every `createImageBitmap`/decode runs on the
243
+ * main thread, so a scroll that makes dozens of image nodes renderable at once
244
+ * would otherwise fire dozens of decodes back-to-back and starve the render
245
+ * loop. A caller `await`s {@link acquire} before the work and calls
246
+ * {@link release} in a `finally` after it.
247
+ *
248
+ * The in-flight slot is handed straight from a releaser to the next waiter, so
249
+ * the active count never dips below `limit` while work is pending.
250
+ *
251
+ * Exported for unit testing; not part of the public renderer surface.
252
+ */
253
+ export class ConcurrencyGate {
254
+ private inFlight = 0;
255
+ private readonly waiters: Array<() => void> = [];
256
+
257
+ constructor(private readonly limit: number) {}
258
+
259
+ acquire(): Promise<void> {
260
+ if (this.inFlight < this.limit) {
261
+ this.inFlight++;
262
+ return Promise.resolve();
263
+ }
264
+ return new Promise<void>((resolve) => {
265
+ this.waiters.push(resolve);
266
+ });
267
+ }
268
+
269
+ release(): void {
270
+ const next = this.waiters.shift();
271
+ if (next !== undefined) {
272
+ // Transfer the slot to the next waiter without touching the count —
273
+ // one operation left, one is starting, so `inFlight` is unchanged.
274
+ next();
275
+ return;
276
+ }
277
+ this.inFlight--;
278
+ }
279
+ }
280
+
233
281
  export class CoreTextureManager extends EventEmitter {
234
282
  /**
235
283
  * Map of textures by cache key
@@ -246,6 +294,13 @@ export class CoreTextureManager extends EventEmitter {
246
294
  private initialized = false;
247
295
  private stage: Stage;
248
296
  private numImageWorkers: number;
297
+ private imageDecodeConcurrency: number;
298
+ /**
299
+ * Caps concurrent main-thread fetch+decode. Non-null only when there is no
300
+ * image worker manager (workers already bound concurrency by pool size).
301
+ * Assigned in {@link initialize} once worker availability is known.
302
+ */
303
+ private decodeGate: ConcurrencyGate | null = null;
249
304
 
250
305
  public platform: Platform;
251
306
 
@@ -291,12 +346,14 @@ export class CoreTextureManager extends EventEmitter {
291
346
  createImageBitmapSupport,
292
347
  premultiplyAlphaHonored,
293
348
  maxRetryCount,
349
+ imageDecodeConcurrency,
294
350
  } = settings;
295
351
 
296
352
  this.stage = stage;
297
353
  this.platform = stage.platform;
298
354
  this.numImageWorkers = numImageWorkers;
299
355
  this.maxRetryCount = maxRetryCount;
356
+ this.imageDecodeConcurrency = imageDecodeConcurrency;
300
357
 
301
358
  if (createImageBitmapSupport === 'auto') {
302
359
  validateCreateImageBitmap(this.platform)
@@ -404,6 +461,23 @@ export class CoreTextureManager extends EventEmitter {
404
461
  );
405
462
  }
406
463
 
464
+ // Without an image worker manager, every fetch+decode runs on the main
465
+ // thread. Bound how many run at once so a burst (e.g. a scroll that makes
466
+ // many image nodes renderable in one tick) can't serialize dozens of
467
+ // decodes and starve the render loop. With workers, the pool already caps
468
+ // concurrency, so the gate stays null (no main-thread ceiling needed).
469
+ //
470
+ // Scope: this bounds the `createImageBitmap` decode, which happens inside
471
+ // `getTextureData` (see `loadTexture`). On the `<img>` fallback path
472
+ // (`hasCreateImageBitmap === false`) the image decodes lazily and the real
473
+ // main-thread cost is the synchronous `texImage2D` at upload, which the
474
+ // gate does not cover — the per-frame upload budget (`processUntil`) paces
475
+ // that instead. The gate is therefore most effective on the
476
+ // createImageBitmap(-polyfill) path.
477
+ if (this.imageWorkerManager === null && this.imageDecodeConcurrency > 0) {
478
+ this.decodeGate = new ConcurrencyGate(this.imageDecodeConcurrency);
479
+ }
480
+
407
481
  this.initialized = true;
408
482
  this.emit('initialized');
409
483
 
@@ -494,15 +568,30 @@ export class CoreTextureManager extends EventEmitter {
494
568
 
495
569
  texture.setState('loading');
496
570
 
571
+ // Bound concurrent main-thread fetch+decode. Priority (on-screen) textures
572
+ // bypass the gate so they never wait behind off-screen prefetch decodes.
573
+ // `decodeGate` is null when image workers handle decoding off-thread.
574
+ const gate = priority === true ? null : this.decodeGate;
575
+ if (gate !== null) {
576
+ await gate.acquire();
577
+ }
578
+
497
579
  // Get texture data - early return on failure
498
- const textureDataResult = await texture.getTextureData().catch((err) => {
499
- console.error(err);
500
- texture.setState(
501
- 'failed',
502
- new TextureError(TextureErrorCode.TEXTURE_DATA_NULL),
503
- );
504
- return null;
505
- });
580
+ let textureDataResult: TextureData | null;
581
+ try {
582
+ textureDataResult = await texture.getTextureData().catch((err) => {
583
+ console.error(err);
584
+ texture.setState(
585
+ 'failed',
586
+ new TextureError(TextureErrorCode.TEXTURE_DATA_NULL),
587
+ );
588
+ return null;
589
+ });
590
+ } finally {
591
+ if (gate !== null) {
592
+ gate.release();
593
+ }
594
+ }
506
595
 
507
596
  // Early return if texture data fetch failed
508
597
  if (textureDataResult === null || texture.state === 'failed') {
package/src/core/Stage.ts CHANGED
@@ -200,6 +200,7 @@ export class Stage {
200
200
  premultiplyAlphaHonored,
201
201
  platform,
202
202
  maxRetryCount,
203
+ imageDecodeConcurrency,
203
204
  } = options;
204
205
 
205
206
  assertTruthy(
@@ -229,6 +230,7 @@ export class Stage {
229
230
  // undefined -> true (default: assume honored, no probe)
230
231
  premultiplyAlphaHonored: premultiplyAlphaHonored ?? true,
231
232
  maxRetryCount,
233
+ imageDecodeConcurrency,
232
234
  });
233
235
 
234
236
  // Wait for the Texture Manager to initialize
@@ -103,4 +103,23 @@ describe('ImageWorkerManager pool spawning', () => {
103
103
  load(mgr);
104
104
  expect(FakeWorker.instances[0]!.postMessage).toHaveBeenCalledTimes(1);
105
105
  });
106
+
107
+ it('sends createImageBitmap capability flags as message data, not baked into the worker source', () => {
108
+ // Regression test: capability flags used to be injected by pattern-matching
109
+ // `createImageWorker.toString()` against literal variable-name strings and
110
+ // rewriting them. That silently breaks under any minifier that renames
111
+ // locals (guaranteed in a real production bundle) - the worker would be
112
+ // permanently stuck on hardcoded defaults regardless of actual device
113
+ // support. Flags must instead travel as plain postMessage data, which
114
+ // survives minification untouched.
115
+ const mgr = new ImageWorkerManager(1, support);
116
+ load(mgr);
117
+ expect(FakeWorker.instances[0]!.postMessage).toHaveBeenCalledWith(
118
+ expect.objectContaining({
119
+ supportsOptionsCreateImageBitmap: support.options,
120
+ supportsFullCreateImageBitmap: support.full,
121
+ premultiplyAlphaHonored: support.premultiplyHonored,
122
+ }),
123
+ );
124
+ });
106
125
  });