03562b4848151c74cae51e5db92d53059690fb42aff23b0f924fe833386d8cea.json 23 KB

1
  1. {"ast":null,"code":"import { __decorate } from \"../../tslib.es6.js\";\n/* eslint-disable @typescript-eslint/naming-convention */\nimport { serialize, expandToProperty, serializeAsVector2, serializeAsTexture } from \"../../Misc/decorators.js\";\nimport { VertexBuffer } from \"../../Buffers/buffer.js\";\nimport { Vector2 } from \"../../Maths/math.vector.js\";\nimport { MaterialFlags } from \"../../Materials/materialFlags.js\";\nimport { MaterialPluginBase } from \"../materialPluginBase.js\";\nimport { MaterialDefines } from \"../materialDefines.js\";\nimport { BindTextureMatrix, PrepareDefinesForMergedUV } from \"../materialHelper.functions.js\";\n/**\n * @internal\n */\nexport class MaterialAnisotropicDefines extends MaterialDefines {\n constructor() {\n super(...arguments);\n this.ANISOTROPIC = false;\n this.ANISOTROPIC_TEXTURE = false;\n this.ANISOTROPIC_TEXTUREDIRECTUV = 0;\n this.ANISOTROPIC_LEGACY = false;\n this.MAINUV1 = false;\n }\n}\n/**\n * Plugin that implements the anisotropic component of the PBR material\n */\nexport class PBRAnisotropicConfiguration extends MaterialPluginBase {\n /**\n * Sets the anisotropy direction as an angle.\n */\n set angle(value) {\n this.direction.x = Math.cos(value);\n this.direction.y = Math.sin(value);\n }\n /**\n * Gets the anisotropy angle value in radians.\n * @returns the anisotropy angle value in radians.\n */\n get angle() {\n return Math.atan2(this.direction.y, this.direction.x);\n }\n /** @internal */\n _markAllSubMeshesAsTexturesDirty() {\n this._enable(this._isEnabled);\n this._internalMarkAllSubMeshesAsTexturesDirty();\n }\n /** @internal */\n _markAllSubMeshesAsMiscDirty() {\n this._enable(this._isEnabled);\n this._internalMarkAllSubMeshesAsMiscDirty();\n }\n /**\n * Gets a boolean indicating that the plugin is compatible with a given shader language.\n * @returns true if the plugin is compatible with the shader language\n */\n isCompatible() {\n return true;\n }\n constructor(material, addToPluginList = true) {\n super(material, \"PBRAnisotropic\", 110, new MaterialAnisotropicDefines(), addToPluginList);\n this._isEnabled = false;\n /**\n * Defines if the anisotropy is enabled in the material.\n */\n this.isEnabled = false;\n /**\n * Defines the anisotropy strength (between 0 and 1) it defaults to 1.\n */\n this.intensity = 1;\n /**\n * Defines if the effect is along the tangents, bitangents or in between.\n * By default, the effect is \"stretching\" the highlights along the tangents.\n */\n this.direction = new Vector2(1, 0);\n this._texture = null;\n /**\n * Stores the anisotropy values in a texture.\n * rg is direction (like normal from -1 to 1)\n * b is a intensity\n */\n this.texture = null;\n this._legacy = false;\n /**\n * Defines if the anisotropy is in legacy mode for backwards compatibility before 6.4.0.\n */\n this.legacy = false;\n this._internalMarkAllSubMeshesAsTexturesDirty = material._dirtyCallbacks[1];\n this._internalMarkAllSubMeshesAsMiscDirty = material._dirtyCallbacks[16];\n }\n isReadyForSubMesh(defines, scene) {\n if (!this._isEnabled) {\n return true;\n }\n if (defines._areTexturesDirty) {\n if (scene.texturesEnabled) {\n if (this._texture && MaterialFlags.AnisotropicTextureEnabled) {\n if (!this._texture.isReadyOrNotBlocking()) {\n return false;\n }\n }\n }\n }\n return true;\n }\n prepareDefinesBeforeAttributes(defines, scene, mesh) {\n if (this._isEnabled) {\n defines.ANISOTROPIC = this._isEnabled;\n if (this._isEnabled && !mesh.isVerticesDataPresent(VertexBuffer.TangentKind)) {\n defines._needUVs = true;\n defines.MAINUV1 = true;\n }\n if (defines._areTexturesDirty) {\n if (scene.texturesEnabled) {\n if (this._texture && MaterialFlags.AnisotropicTextureEnabled) {\n PrepareDefinesForMergedUV(this._texture, defines, \"ANISOTROPIC_TEXTURE\");\n } else {\n defines.ANISOTROPIC_TEXTURE = false;\n }\n }\n }\n if (defines._areMiscDirty) {\n defines.ANISOTROPIC_LEGACY = this._legacy;\n }\n } else {\n defines.ANISOTROPIC = false;\n defines.ANISOTROPIC_TEXTURE = false;\n defines.ANISOTROPIC_TEXTUREDIRECTUV = 0;\n defines.ANISOTROPIC_LEGACY = false;\n }\n }\n bindForSubMesh(uniformBuffer, scene) {\n if (!this._isEnabled) {\n return;\n }\n const isFrozen = this._material.isFrozen;\n if (!uniformBuffer.useUbo || !isFrozen || !uniformBuffer.isSync) {\n if (this._texture && MaterialFlags.AnisotropicTextureEnabled) {\n uniformBuffer.updateFloat2(\"vAnisotropyInfos\", this._texture.coordinatesIndex, this._texture.level);\n BindTextureMatrix(this._texture, uniformBuffer, \"anisotropy\");\n }\n // Anisotropy\n uniformBuffer.updateFloat3(\"vAnisotropy\", this.direction.x, this.direction.y, this.intensity);\n }\n // Textures\n if (scene.texturesEnabled) {\n if (this._texture && MaterialFlags.AnisotropicTextureEnabled) {\n uniformBuffer.setTexture(\"anisotropySampler\", this._texture);\n }\n }\n }\n hasTexture(texture) {\n if (this._texture === texture) {\n return true;\n }\n return false;\n }\n getActiveTextures(activeTextures) {\n if (this._texture) {\n activeTextures.push(this._texture);\n }\n }\n getAnimatables(animatables) {\n if (this._texture && this._texture.animations && this._texture.animations.length > 0) {\n animatables.push(this._texture);\n }\n }\n dispose(forceDisposeTextures) {\n if (forceDisposeTextures) {\n if (this._texture) {\n this._texture.dispose();\n }\n }\n }\n getClassName() {\n return \"PBRAnisotropicConfiguration\";\n }\n addFallbacks(defines, fallbacks, currentRank) {\n if (defines.ANISOTROPIC) {\n fallbacks.addFallback(currentRank++, \"ANISOTROPIC\");\n }\n return currentRank;\n }\n getSamplers(samplers) {\n samplers.push(\"anisotropySampler\");\n }\n getUniforms() {\n return {\n ubo: [{\n name: \"vAnisotropy\",\n size: 3,\n type: \"vec3\"\n }, {\n name: \"vAnisotropyInfos\",\n size: 2,\n type: \"vec2\"\n }, {\n name: \"anisotropyMatrix\",\n size: 16,\n type: \"mat4\"\n }]\n };\n }\n /**\n * Parses a anisotropy Configuration from a serialized object.\n * @param source - Serialized object.\n * @param scene Defines the scene we are parsing for\n * @param rootUrl Defines the rootUrl to load from\n */\n parse(source, scene, rootUrl) {\n super.parse(source, scene, rootUrl);\n // Backward compatibility\n if (source.legacy === undefined) {\n this.legacy = true;\n }\n }\n}\n__decorate([serialize(), expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")], PBRAnisotropicConfiguration.prototype, \"isEnabled\", void 0);\n__decorate([serialize()], PBRAnisotropicConfiguration.prototype, \"intensity\", void 0);\n__decorate([serializeAsVector2()], PBRAnisotropicConfiguration.prototype, \"direction\", void 0);\n__decorate([serializeAsTexture(), expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")], PBRAnisotropicConfiguration.prototype, \"texture\", void 0);\n__decorate([serialize(), expandToProperty(\"_markAllSubMeshesAsMiscDirty\")], PBRAnisotropicConfiguration.prototype, \"legacy\", void 0);","map":{"version":3,"names":["__decorate","serialize","expandToProperty","serializeAsVector2","serializeAsTexture","VertexBuffer","Vector2","MaterialFlags","MaterialPluginBase","MaterialDefines","BindTextureMatrix","PrepareDefinesForMergedUV","MaterialAnisotropicDefines","constructor","arguments","ANISOTROPIC","ANISOTROPIC_TEXTURE","ANISOTROPIC_TEXTUREDIRECTUV","ANISOTROPIC_LEGACY","MAINUV1","PBRAnisotropicConfiguration","angle","value","direction","x","Math","cos","y","sin","atan2","_markAllSubMeshesAsTexturesDirty","_enable","_isEnabled","_internalMarkAllSubMeshesAsTexturesDirty","_markAllSubMeshesAsMiscDirty","_internalMarkAllSubMeshesAsMiscDirty","isCompatible","material","addToPluginList","isEnabled","intensity","_texture","texture","_legacy","legacy","_dirtyCallbacks","isReadyForSubMesh","defines","scene","_areTexturesDirty","texturesEnabled","AnisotropicTextureEnabled","isReadyOrNotBlocking","prepareDefinesBeforeAttributes","mesh","isVerticesDataPresent","TangentKind","_needUVs","_areMiscDirty","bindForSubMesh","uniformBuffer","isFrozen","_material","useUbo","isSync","updateFloat2","coordinatesIndex","level","updateFloat3","setTexture","hasTexture","getActiveTextures","activeTextures","push","getAnimatables","animatables","animations","length","dispose","forceDisposeTextures","getClassName","addFallbacks","fallbacks","currentRank","addFallback","getSamplers","samplers","getUniforms","ubo","name","size","type","parse","source","rootUrl","undefined","prototype"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Materials/PBR/pbrAnisotropicConfiguration.js"],"sourcesContent":["import { __decorate } from \"../../tslib.es6.js\";\n/* eslint-disable @typescript-eslint/naming-convention */\nimport { serialize, expandToProperty, serializeAsVector2, serializeAsTexture } from \"../../Misc/decorators.js\";\nimport { VertexBuffer } from \"../../Buffers/buffer.js\";\nimport { Vector2 } from \"../../Maths/math.vector.js\";\nimport { MaterialFlags } from \"../../Materials/materialFlags.js\";\nimport { MaterialPluginBase } from \"../materialPluginBase.js\";\n\nimport { MaterialDefines } from \"../materialDefines.js\";\nimport { BindTextureMatrix, PrepareDefinesForMergedUV } from \"../materialHelper.functions.js\";\n/**\n * @internal\n */\nexport class MaterialAnisotropicDefines extends MaterialDefines {\n constructor() {\n super(...arguments);\n this.ANISOTROPIC = false;\n this.ANISOTROPIC_TEXTURE = false;\n this.ANISOTROPIC_TEXTUREDIRECTUV = 0;\n this.ANISOTROPIC_LEGACY = false;\n this.MAINUV1 = false;\n }\n}\n/**\n * Plugin that implements the anisotropic component of the PBR material\n */\nexport class PBRAnisotropicConfiguration extends MaterialPluginBase {\n /**\n * Sets the anisotropy direction as an angle.\n */\n set angle(value) {\n this.direction.x = Math.cos(value);\n this.direction.y = Math.sin(value);\n }\n /**\n * Gets the anisotropy angle value in radians.\n * @returns the anisotropy angle value in radians.\n */\n get angle() {\n return Math.atan2(this.direction.y, this.direction.x);\n }\n /** @internal */\n _markAllSubMeshesAsTexturesDirty() {\n this._enable(this._isEnabled);\n this._internalMarkAllSubMeshesAsTexturesDirty();\n }\n /** @internal */\n _markAllSubMeshesAsMiscDirty() {\n this._enable(this._isEnabled);\n this._internalMarkAllSubMeshesAsMiscDirty();\n }\n /**\n * Gets a boolean indicating that the plugin is compatible with a given shader language.\n * @returns true if the plugin is compatible with the shader language\n */\n isCompatible() {\n return true;\n }\n constructor(material, addToPluginList = true) {\n super(material, \"PBRAnisotropic\", 110, new MaterialAnisotropicDefines(), addToPluginList);\n this._isEnabled = false;\n /**\n * Defines if the anisotropy is enabled in the material.\n */\n this.isEnabled = false;\n /**\n * Defines the anisotropy strength (between 0 and 1) it defaults to 1.\n */\n this.intensity = 1;\n /**\n * Defines if the effect is along the tangents, bitangents or in between.\n * By default, the effect is \"stretching\" the highlights along the tangents.\n */\n this.direction = new Vector2(1, 0);\n this._texture = null;\n /**\n * Stores the anisotropy values in a texture.\n * rg is direction (like normal from -1 to 1)\n * b is a intensity\n */\n this.texture = null;\n this._legacy = false;\n /**\n * Defines if the anisotropy is in legacy mode for backwards compatibility before 6.4.0.\n */\n this.legacy = false;\n this._internalMarkAllSubMeshesAsTexturesDirty = material._dirtyCallbacks[1];\n this._internalMarkAllSubMeshesAsMiscDirty = material._dirtyCallbacks[16];\n }\n isReadyForSubMesh(defines, scene) {\n if (!this._isEnabled) {\n return true;\n }\n if (defines._areTexturesDirty) {\n if (scene.texturesEnabled) {\n if (this._texture && MaterialFlags.AnisotropicTextureEnabled) {\n if (!this._texture.isReadyOrNotBlocking()) {\n return false;\n }\n }\n }\n }\n return true;\n }\n prepareDefinesBeforeAttributes(defines, scene, mesh) {\n if (this._isEnabled) {\n defines.ANISOTROPIC = this._isEnabled;\n if (this._isEnabled && !mesh.isVerticesDataPresent(VertexBuffer.TangentKind)) {\n defines._needUVs = true;\n defines.MAINUV1 = true;\n }\n if (defines._areTexturesDirty) {\n if (scene.texturesEnabled) {\n if (this._texture && MaterialFlags.AnisotropicTextureEnabled) {\n PrepareDefinesForMergedUV(this._texture, defines, \"ANISOTROPIC_TEXTURE\");\n }\n else {\n defines.ANISOTROPIC_TEXTURE = false;\n }\n }\n }\n if (defines._areMiscDirty) {\n defines.ANISOTROPIC_LEGACY = this._legacy;\n }\n }\n else {\n defines.ANISOTROPIC = false;\n defines.ANISOTROPIC_TEXTURE = false;\n defines.ANISOTROPIC_TEXTUREDIRECTUV = 0;\n defines.ANISOTROPIC_LEGACY = false;\n }\n }\n bindForSubMesh(uniformBuffer, scene) {\n if (!this._isEnabled) {\n return;\n }\n const isFrozen = this._material.isFrozen;\n if (!uniformBuffer.useUbo || !isFrozen || !uniformBuffer.isSync) {\n if (this._texture && MaterialFlags.AnisotropicTextureEnabled) {\n uniformBuffer.updateFloat2(\"vAnisotropyInfos\", this._texture.coordinatesIndex, this._texture.level);\n BindTextureMatrix(this._texture, uniformBuffer, \"anisotropy\");\n }\n // Anisotropy\n uniformBuffer.updateFloat3(\"vAnisotropy\", this.direction.x, this.direction.y, this.intensity);\n }\n // Textures\n if (scene.texturesEnabled) {\n if (this._texture && MaterialFlags.AnisotropicTextureEnabled) {\n uniformBuffer.setTexture(\"anisotropySampler\", this._texture);\n }\n }\n }\n hasTexture(texture) {\n if (this._texture === texture) {\n return true;\n }\n return false;\n }\n getActiveTextures(activeTextures) {\n if (this._texture) {\n activeTextures.push(this._texture);\n }\n }\n getAnimatables(animatables) {\n if (this._texture && this._texture.animations && this._texture.animations.length > 0) {\n animatables.push(this._texture);\n }\n }\n dispose(forceDisposeTextures) {\n if (forceDisposeTextures) {\n if (this._texture) {\n this._texture.dispose();\n }\n }\n }\n getClassName() {\n return \"PBRAnisotropicConfiguration\";\n }\n addFallbacks(defines, fallbacks, currentRank) {\n if (defines.ANISOTROPIC) {\n fallbacks.addFallback(currentRank++, \"ANISOTROPIC\");\n }\n return currentRank;\n }\n getSamplers(samplers) {\n samplers.push(\"anisotropySampler\");\n }\n getUniforms() {\n return {\n ubo: [\n { name: \"vAnisotropy\", size: 3, type: \"vec3\" },\n { name: \"vAnisotropyInfos\", size: 2, type: \"vec2\" },\n { name: \"anisotropyMatrix\", size: 16, type: \"mat4\" },\n ],\n };\n }\n /**\n * Parses a anisotropy Configuration from a serialized object.\n * @param source - Serialized object.\n * @param scene Defines the scene we are parsing for\n * @param rootUrl Defines the rootUrl to load from\n */\n parse(source, scene, rootUrl) {\n super.parse(source, scene, rootUrl);\n // Backward compatibility\n if (source.legacy === undefined) {\n this.legacy = true;\n }\n }\n}\n__decorate([\n serialize(),\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], PBRAnisotropicConfiguration.prototype, \"isEnabled\", void 0);\n__decorate([\n serialize()\n], PBRAnisotropicConfiguration.prototype, \"intensity\", void 0);\n__decorate([\n serializeAsVector2()\n], PBRAnisotropicConfiguration.prototype, \"direction\", void 0);\n__decorate([\n serializeAsTexture(),\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], PBRAnisotropicConfiguration.prototype, \"texture\", void 0);\n__decorate([\n serialize(),\n expandToProperty(\"_markAllSubMeshesAsMiscDirty\")\n], PBRAnisotropicConfiguration.prototype, \"legacy\", void 0);\n"],"mappings":"AAAA,SAASA,UAAU,QAAQ,oBAAoB;AAC/C;AACA,SAASC,SAAS,EAAEC,gBAAgB,EAAEC,kBAAkB,EAAEC,kBAAkB,QAAQ,0BAA0B;AAC9G,SAASC,YAAY,QAAQ,yBAAyB;AACtD,SAASC,OAAO,QAAQ,4BAA4B;AACpD,SAASC,aAAa,QAAQ,kCAAkC;AAChE,SAASC,kBAAkB,QAAQ,0BAA0B;AAE7D,SAASC,eAAe,QAAQ,uBAAuB;AACvD,SAASC,iBAAiB,EAAEC,yBAAyB,QAAQ,gCAAgC;AAC7F;AACA;AACA;AACA,OAAO,MAAMC,0BAA0B,SAASH,eAAe,CAAC;EAC5DI,WAAWA,CAAA,EAAG;IACV,KAAK,CAAC,GAAGC,SAAS,CAAC;IACnB,IAAI,CAACC,WAAW,GAAG,KAAK;IACxB,IAAI,CAACC,mBAAmB,GAAG,KAAK;IAChC,IAAI,CAACC,2BAA2B,GAAG,CAAC;IACpC,IAAI,CAACC,kBAAkB,GAAG,KAAK;IAC/B,IAAI,CAACC,OAAO,GAAG,KAAK;EACxB;AACJ;AACA;AACA;AACA;AACA,OAAO,MAAMC,2BAA2B,SAASZ,kBAAkB,CAAC;EAChE;AACJ;AACA;EACI,IAAIa,KAAKA,CAACC,KAAK,EAAE;IACb,IAAI,CAACC,SAAS,CAACC,CAAC,GAAGC,IAAI,CAACC,GAAG,CAACJ,KAAK,CAAC;IAClC,IAAI,CAACC,SAAS,CAACI,CAAC,GAAGF,IAAI,CAACG,GAAG,CAACN,KAAK,CAAC;EACtC;EACA;AACJ;AACA;AACA;EACI,IAAID,KAAKA,CAAA,EAAG;IACR,OAAOI,IAAI,CAACI,KAAK,CAAC,IAAI,CAACN,SAAS,CAACI,CAAC,EAAE,IAAI,CAACJ,SAAS,CAACC,CAAC,CAAC;EACzD;EACA;EACAM,gCAAgCA,CAAA,EAAG;IAC/B,IAAI,CAACC,OAAO,CAAC,IAAI,CAACC,UAAU,CAAC;IAC7B,IAAI,CAACC,wCAAwC,CAAC,CAAC;EACnD;EACA;EACAC,4BAA4BA,CAAA,EAAG;IAC3B,IAAI,CAACH,OAAO,CAAC,IAAI,CAACC,UAAU,CAAC;IAC7B,IAAI,CAACG,oCAAoC,CAAC,CAAC;EAC/C;EACA;AACJ;AACA;AACA;EACIC,YAAYA,CAAA,EAAG;IACX,OAAO,IAAI;EACf;EACAvB,WAAWA,CAACwB,QAAQ,EAAEC,eAAe,GAAG,IAAI,EAAE;IAC1C,KAAK,CAACD,QAAQ,EAAE,gBAAgB,EAAE,GAAG,EAAE,IAAIzB,0BAA0B,CAAC,CAAC,EAAE0B,eAAe,CAAC;IACzF,IAAI,CAACN,UAAU,GAAG,KAAK;IACvB;AACR;AACA;IACQ,IAAI,CAACO,SAAS,GAAG,KAAK;IACtB;AACR;AACA;IACQ,IAAI,CAACC,SAAS,GAAG,CAAC;IAClB;AACR;AACA;AACA;IACQ,IAAI,CAACjB,SAAS,GAAG,IAAIjB,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IAClC,IAAI,CAACmC,QAAQ,GAAG,IAAI;IACpB;AACR;AACA;AACA;AACA;IACQ,IAAI,CAACC,OAAO,GAAG,IAAI;IACnB,IAAI,CAACC,OAAO,GAAG,KAAK;IACpB;AACR;AACA;IACQ,IAAI,CAACC,MAAM,GAAG,KAAK;IACnB,IAAI,CAACX,wCAAwC,GAAGI,QAAQ,CAACQ,eAAe,CAAC,CAAC,CAAC;IAC3E,IAAI,CAACV,oCAAoC,GAAGE,QAAQ,CAACQ,eAAe,CAAC,EAAE,CAAC;EAC5E;EACAC,iBAAiBA,CAACC,OAAO,EAAEC,KAAK,EAAE;IAC9B,IAAI,CAAC,IAAI,CAAChB,UAAU,EAAE;MAClB,OAAO,IAAI;IACf;IACA,IAAIe,OAAO,CAACE,iBAAiB,EAAE;MAC3B,IAAID,KAAK,CAACE,eAAe,EAAE;QACvB,IAAI,IAAI,CAACT,QAAQ,IAAIlC,aAAa,CAAC4C,yBAAyB,EAAE;UAC1D,IAAI,CAAC,IAAI,CAACV,QAAQ,CAACW,oBAAoB,CAAC,CAAC,EAAE;YACvC,OAAO,KAAK;UAChB;QACJ;MACJ;IACJ;IACA,OAAO,IAAI;EACf;EACAC,8BAA8BA,CAACN,OAAO,EAAEC,KAAK,EAAEM,IAAI,EAAE;IACjD,IAAI,IAAI,CAACtB,UAAU,EAAE;MACjBe,OAAO,CAAChC,WAAW,GAAG,IAAI,CAACiB,UAAU;MACrC,IAAI,IAAI,CAACA,UAAU,IAAI,CAACsB,IAAI,CAACC,qBAAqB,CAAClD,YAAY,CAACmD,WAAW,CAAC,EAAE;QAC1ET,OAAO,CAACU,QAAQ,GAAG,IAAI;QACvBV,OAAO,CAAC5B,OAAO,GAAG,IAAI;MAC1B;MACA,IAAI4B,OAAO,CAACE,iBAAiB,EAAE;QAC3B,IAAID,KAAK,CAACE,eAAe,EAAE;UACvB,IAAI,IAAI,CAACT,QAAQ,IAAIlC,aAAa,CAAC4C,yBAAyB,EAAE;YAC1DxC,yBAAyB,CAAC,IAAI,CAAC8B,QAAQ,EAAEM,OAAO,EAAE,qBAAqB,CAAC;UAC5E,CAAC,MACI;YACDA,OAAO,CAAC/B,mBAAmB,GAAG,KAAK;UACvC;QACJ;MACJ;MACA,IAAI+B,OAAO,CAACW,aAAa,EAAE;QACvBX,OAAO,CAAC7B,kBAAkB,GAAG,IAAI,CAACyB,OAAO;MAC7C;IACJ,CAAC,MACI;MACDI,OAAO,CAAChC,WAAW,GAAG,KAAK;MAC3BgC,OAAO,CAAC/B,mBAAmB,GAAG,KAAK;MACnC+B,OAAO,CAAC9B,2BAA2B,GAAG,CAAC;MACvC8B,OAAO,CAAC7B,kBAAkB,GAAG,KAAK;IACtC;EACJ;EACAyC,cAAcA,CAACC,aAAa,EAAEZ,KAAK,EAAE;IACjC,IAAI,CAAC,IAAI,CAAChB,UAAU,EAAE;MAClB;IACJ;IACA,MAAM6B,QAAQ,GAAG,IAAI,CAACC,SAAS,CAACD,QAAQ;IACxC,IAAI,CAACD,aAAa,CAACG,MAAM,IAAI,CAACF,QAAQ,IAAI,CAACD,aAAa,CAACI,MAAM,EAAE;MAC7D,IAAI,IAAI,CAACvB,QAAQ,IAAIlC,aAAa,CAAC4C,yBAAyB,EAAE;QAC1DS,aAAa,CAACK,YAAY,CAAC,kBAAkB,EAAE,IAAI,CAACxB,QAAQ,CAACyB,gBAAgB,EAAE,IAAI,CAACzB,QAAQ,CAAC0B,KAAK,CAAC;QACnGzD,iBAAiB,CAAC,IAAI,CAAC+B,QAAQ,EAAEmB,aAAa,EAAE,YAAY,CAAC;MACjE;MACA;MACAA,aAAa,CAACQ,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC7C,SAAS,CAACC,CAAC,EAAE,IAAI,CAACD,SAAS,CAACI,CAAC,EAAE,IAAI,CAACa,SAAS,CAAC;IACjG;IACA;IACA,IAAIQ,KAAK,CAACE,eAAe,EAAE;MACvB,IAAI,IAAI,CAACT,QAAQ,IAAIlC,aAAa,CAAC4C,yBAAyB,EAAE;QAC1DS,aAAa,CAACS,UAAU,CAAC,mBAAmB,EAAE,IAAI,CAAC5B,QAAQ,CAAC;MAChE;IACJ;EACJ;EACA6B,UAAUA,CAAC5B,OAAO,EAAE;IAChB,IAAI,IAAI,CAACD,QAAQ,KAAKC,OAAO,EAAE;MAC3B,OAAO,IAAI;IACf;IACA,OAAO,KAAK;EAChB;EACA6B,iBAAiBA,CAACC,cAAc,EAAE;IAC9B,IAAI,IAAI,CAAC/B,QAAQ,EAAE;MACf+B,cAAc,CAACC,IAAI,CAAC,IAAI,CAAChC,QAAQ,CAAC;IACtC;EACJ;EACAiC,cAAcA,CAACC,WAAW,EAAE;IACxB,IAAI,IAAI,CAAClC,QAAQ,IAAI,IAAI,CAACA,QAAQ,CAACmC,UAAU,IAAI,IAAI,CAACnC,QAAQ,CAACmC,UAAU,CAACC,MAAM,GAAG,CAAC,EAAE;MAClFF,WAAW,CAACF,IAAI,CAAC,IAAI,CAAChC,QAAQ,CAAC;IACnC;EACJ;EACAqC,OAAOA,CAACC,oBAAoB,EAAE;IAC1B,IAAIA,oBAAoB,EAAE;MACtB,IAAI,IAAI,CAACtC,QAAQ,EAAE;QACf,IAAI,CAACA,QAAQ,CAACqC,OAAO,CAAC,CAAC;MAC3B;IACJ;EACJ;EACAE,YAAYA,CAAA,EAAG;IACX,OAAO,6BAA6B;EACxC;EACAC,YAAYA,CAAClC,OAAO,EAAEmC,SAAS,EAAEC,WAAW,EAAE;IAC1C,IAAIpC,OAAO,CAAChC,WAAW,EAAE;MACrBmE,SAAS,CAACE,WAAW,CAACD,WAAW,EAAE,EAAE,aAAa,CAAC;IACvD;IACA,OAAOA,WAAW;EACtB;EACAE,WAAWA,CAACC,QAAQ,EAAE;IAClBA,QAAQ,CAACb,IAAI,CAAC,mBAAmB,CAAC;EACtC;EACAc,WAAWA,CAAA,EAAG;IACV,OAAO;MACHC,GAAG,EAAE,CACD;QAAEC,IAAI,EAAE,aAAa;QAAEC,IAAI,EAAE,CAAC;QAAEC,IAAI,EAAE;MAAO,CAAC,EAC9C;QAAEF,IAAI,EAAE,kBAAkB;QAAEC,IAAI,EAAE,CAAC;QAAEC,IAAI,EAAE;MAAO,CAAC,EACnD;QAAEF,IAAI,EAAE,kBAAkB;QAAEC,IAAI,EAAE,EAAE;QAAEC,IAAI,EAAE;MAAO,CAAC;IAE5D,CAAC;EACL;EACA;AACJ;AACA;AACA;AACA;AACA;EACIC,KAAKA,CAACC,MAAM,EAAE7C,KAAK,EAAE8C,OAAO,EAAE;IAC1B,KAAK,CAACF,KAAK,CAACC,MAAM,EAAE7C,KAAK,EAAE8C,OAAO,CAAC;IACnC;IACA,IAAID,MAAM,CAACjD,MAAM,KAAKmD,SAAS,EAAE;MAC7B,IAAI,CAACnD,MAAM,GAAG,IAAI;IACtB;EACJ;AACJ;AACA5C,UAAU,CAAC,CACPC,SAAS,CAAC,CAAC,EACXC,gBAAgB,CAAC,kCAAkC,CAAC,CACvD,EAAEkB,2BAA2B,CAAC4E,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;AAC9DhG,UAAU,CAAC,CACPC,SAAS,CAAC,CAAC,CACd,EAAEmB,2BAA2B,CAAC4E,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;AAC9DhG,UAAU,CAAC,CACPG,kBAAkB,CAAC,CAAC,CACvB,EAAEiB,2BAA2B,CAAC4E,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;AAC9DhG,UAAU,CAAC,CACPI,kBAAkB,CAAC,CAAC,EACpBF,gBAAgB,CAAC,kCAAkC,CAAC,CACvD,EAAEkB,2BAA2B,CAAC4E,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AAC5DhG,UAAU,CAAC,CACPC,SAAS,CAAC,CAAC,EACXC,gBAAgB,CAAC,8BAA8B,CAAC,CACnD,EAAEkB,2BAA2B,CAAC4E,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}