810195da270dc018575523eb93ab65acc4dca48b0566d13fd2ea8bbf243a2d85.json 24 KB

1
  1. {"ast":null,"code":"import { NodeMaterialBlock } from \"../../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { PointLight } from \"../../../../Lights/pointLight.js\";\n/**\n * Block used to get data information from a light\n */\nexport class LightInformationBlock extends NodeMaterialBlock {\n /**\n * Creates a new LightInformationBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Vertex);\n this.registerInput(\"worldPosition\", NodeMaterialBlockConnectionPointTypes.Vector4, false, NodeMaterialBlockTargets.Vertex);\n this.registerOutput(\"direction\", NodeMaterialBlockConnectionPointTypes.Vector3);\n this.registerOutput(\"color\", NodeMaterialBlockConnectionPointTypes.Color3);\n this.registerOutput(\"intensity\", NodeMaterialBlockConnectionPointTypes.Float);\n this.registerOutput(\"shadowBias\", NodeMaterialBlockConnectionPointTypes.Float);\n this.registerOutput(\"shadowNormalBias\", NodeMaterialBlockConnectionPointTypes.Float);\n this.registerOutput(\"shadowDepthScale\", NodeMaterialBlockConnectionPointTypes.Float);\n this.registerOutput(\"shadowDepthRange\", NodeMaterialBlockConnectionPointTypes.Vector2);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"LightInformationBlock\";\n }\n /**\n * Gets the world position input component\n */\n get worldPosition() {\n return this._inputs[0];\n }\n /**\n * Gets the direction output component\n */\n get direction() {\n return this._outputs[0];\n }\n /**\n * Gets the direction output component\n */\n get color() {\n return this._outputs[1];\n }\n /**\n * Gets the direction output component\n */\n get intensity() {\n return this._outputs[2];\n }\n /**\n * Gets the shadow bias output component\n */\n get shadowBias() {\n return this._outputs[3];\n }\n /**\n * Gets the shadow normal bias output component\n */\n get shadowNormalBias() {\n return this._outputs[4];\n }\n /**\n * Gets the shadow depth scale component\n */\n get shadowDepthScale() {\n return this._outputs[5];\n }\n /**\n * Gets the shadow depth range component\n */\n get shadowDepthRange() {\n return this._outputs[6];\n }\n bind(effect, nodeMaterial, mesh) {\n if (!mesh) {\n return;\n }\n if (this.light && this.light.isDisposed()) {\n this.light = null;\n }\n let light = this.light;\n const scene = nodeMaterial.getScene();\n if (!light && scene.lights.length) {\n light = this.light = scene.lights[0];\n this._forcePrepareDefines = true;\n }\n if (!light || !light.isEnabled) {\n effect.setFloat3(this._lightDataUniformName, 0, 0, 0);\n effect.setFloat4(this._lightColorUniformName, 0, 0, 0, 0);\n return;\n }\n light.transferToNodeMaterialEffect(effect, this._lightDataUniformName);\n effect.setColor4(this._lightColorUniformName, light.diffuse, light.intensity);\n const generator = light.getShadowGenerator();\n if (this.shadowBias.hasEndpoints || this.shadowNormalBias.hasEndpoints || this.shadowDepthScale.hasEndpoints) {\n if (generator) {\n effect.setFloat3(this._lightShadowUniformName, generator.bias, generator.normalBias, generator.depthScale);\n } else {\n effect.setFloat3(this._lightShadowUniformName, 0, 0, 0);\n }\n }\n if (this.shadowDepthRange) {\n if (generator && scene.activeCamera) {\n const shadowLight = light;\n effect.setFloat2(this._lightShadowExtraUniformName, shadowLight.getDepthMinZ(scene.activeCamera), shadowLight.getDepthMinZ(scene.activeCamera) + shadowLight.getDepthMaxZ(scene.activeCamera));\n } else {\n effect.setFloat2(this._lightShadowExtraUniformName, 0, 0);\n }\n }\n }\n prepareDefines(mesh, nodeMaterial, defines) {\n if (!defines._areLightsDirty && !this._forcePrepareDefines) {\n return;\n }\n this._forcePrepareDefines = false;\n const light = this.light;\n defines.setValue(this._lightTypeDefineName, light && light instanceof PointLight ? true : false, true);\n }\n _buildBlock(state) {\n super._buildBlock(state);\n state.sharedData.bindableBlocks.push(this);\n state.sharedData.blocksWithDefines.push(this);\n const direction = this.direction;\n const color = this.color;\n const intensity = this.intensity;\n const shadowBias = this.shadowBias;\n const shadowNormalBias = this.shadowNormalBias;\n const shadowDepthScale = this.shadowDepthScale;\n const shadowDepthRange = this.shadowDepthRange;\n this._lightDataUniformName = state._getFreeVariableName(\"lightData\");\n this._lightColorUniformName = state._getFreeVariableName(\"lightColor\");\n this._lightShadowUniformName = state._getFreeVariableName(\"shadowData\");\n this._lightShadowExtraUniformName = state._getFreeVariableName(\"shadowExtraData\");\n this._lightTypeDefineName = state._getFreeDefineName(\"LIGHTPOINTTYPE\");\n const uniformAdd = state.shaderLanguage === 1 /* ShaderLanguage.WGSL */ ? \"uniforms.\" : \"\";\n state._emitUniformFromString(this._lightDataUniformName, NodeMaterialBlockConnectionPointTypes.Vector3);\n state._emitUniformFromString(this._lightColorUniformName, NodeMaterialBlockConnectionPointTypes.Vector4);\n state.compilationString += `#ifdef ${this._lightTypeDefineName}\\n`;\n state.compilationString += state._declareOutput(direction) + ` = normalize(${this.worldPosition.associatedVariableName}.xyz - ${uniformAdd}${this._lightDataUniformName});\\n`;\n state.compilationString += `#else\\n`;\n state.compilationString += state._declareOutput(direction) + ` = ${uniformAdd}${this._lightDataUniformName};\\n`;\n state.compilationString += `#endif\\n`;\n state.compilationString += state._declareOutput(color) + ` = ${uniformAdd}${this._lightColorUniformName}.rgb;\\n`;\n state.compilationString += state._declareOutput(intensity) + ` = ${uniformAdd}${this._lightColorUniformName}.a;\\n`;\n if (shadowBias.hasEndpoints || shadowNormalBias.hasEndpoints || shadowDepthScale.hasEndpoints) {\n state._emitUniformFromString(this._lightShadowUniformName, NodeMaterialBlockConnectionPointTypes.Vector3);\n if (shadowBias.hasEndpoints) {\n state.compilationString += state._declareOutput(shadowBias) + ` = ${uniformAdd}${this._lightShadowUniformName}.x;\\n`;\n }\n if (shadowNormalBias.hasEndpoints) {\n state.compilationString += state._declareOutput(shadowNormalBias) + ` = ${uniformAdd}${this._lightShadowUniformName}.y;\\n`;\n }\n if (shadowDepthScale.hasEndpoints) {\n state.compilationString += state._declareOutput(shadowDepthScale) + ` = ${uniformAdd}${this._lightShadowUniformName}.z;\\n`;\n }\n }\n if (shadowDepthRange.hasEndpoints) {\n state._emitUniformFromString(this._lightShadowExtraUniformName, NodeMaterialBlockConnectionPointTypes.Vector2);\n state.compilationString += state._declareOutput(shadowDepthRange) + ` = ${this._lightShadowUniformName};\\n`;\n }\n return this;\n }\n serialize() {\n const serializationObject = super.serialize();\n if (this.light) {\n serializationObject.lightId = this.light.id;\n }\n return serializationObject;\n }\n _deserialize(serializationObject, scene, rootUrl) {\n super._deserialize(serializationObject, scene, rootUrl);\n if (serializationObject.lightId) {\n this.light = scene.getLightById(serializationObject.lightId);\n }\n }\n}\nRegisterClass(\"BABYLON.LightInformationBlock\", LightInformationBlock);","map":{"version":3,"names":["NodeMaterialBlock","NodeMaterialBlockConnectionPointTypes","NodeMaterialBlockTargets","RegisterClass","PointLight","LightInformationBlock","constructor","name","Vertex","registerInput","Vector4","registerOutput","Vector3","Color3","Float","Vector2","getClassName","worldPosition","_inputs","direction","_outputs","color","intensity","shadowBias","shadowNormalBias","shadowDepthScale","shadowDepthRange","bind","effect","nodeMaterial","mesh","light","isDisposed","scene","getScene","lights","length","_forcePrepareDefines","isEnabled","setFloat3","_lightDataUniformName","setFloat4","_lightColorUniformName","transferToNodeMaterialEffect","setColor4","diffuse","generator","getShadowGenerator","hasEndpoints","_lightShadowUniformName","bias","normalBias","depthScale","activeCamera","shadowLight","setFloat2","_lightShadowExtraUniformName","getDepthMinZ","getDepthMaxZ","prepareDefines","defines","_areLightsDirty","setValue","_lightTypeDefineName","_buildBlock","state","sharedData","bindableBlocks","push","blocksWithDefines","_getFreeVariableName","_getFreeDefineName","uniformAdd","shaderLanguage","_emitUniformFromString","compilationString","_declareOutput","associatedVariableName","serialize","serializationObject","lightId","id","_deserialize","rootUrl","getLightById"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Materials/Node/Blocks/Vertex/lightInformationBlock.js"],"sourcesContent":["import { NodeMaterialBlock } from \"../../nodeMaterialBlock.js\";\nimport { NodeMaterialBlockConnectionPointTypes } from \"../../Enums/nodeMaterialBlockConnectionPointTypes.js\";\nimport { NodeMaterialBlockTargets } from \"../../Enums/nodeMaterialBlockTargets.js\";\nimport { RegisterClass } from \"../../../../Misc/typeStore.js\";\nimport { PointLight } from \"../../../../Lights/pointLight.js\";\n/**\n * Block used to get data information from a light\n */\nexport class LightInformationBlock extends NodeMaterialBlock {\n /**\n * Creates a new LightInformationBlock\n * @param name defines the block name\n */\n constructor(name) {\n super(name, NodeMaterialBlockTargets.Vertex);\n this.registerInput(\"worldPosition\", NodeMaterialBlockConnectionPointTypes.Vector4, false, NodeMaterialBlockTargets.Vertex);\n this.registerOutput(\"direction\", NodeMaterialBlockConnectionPointTypes.Vector3);\n this.registerOutput(\"color\", NodeMaterialBlockConnectionPointTypes.Color3);\n this.registerOutput(\"intensity\", NodeMaterialBlockConnectionPointTypes.Float);\n this.registerOutput(\"shadowBias\", NodeMaterialBlockConnectionPointTypes.Float);\n this.registerOutput(\"shadowNormalBias\", NodeMaterialBlockConnectionPointTypes.Float);\n this.registerOutput(\"shadowDepthScale\", NodeMaterialBlockConnectionPointTypes.Float);\n this.registerOutput(\"shadowDepthRange\", NodeMaterialBlockConnectionPointTypes.Vector2);\n }\n /**\n * Gets the current class name\n * @returns the class name\n */\n getClassName() {\n return \"LightInformationBlock\";\n }\n /**\n * Gets the world position input component\n */\n get worldPosition() {\n return this._inputs[0];\n }\n /**\n * Gets the direction output component\n */\n get direction() {\n return this._outputs[0];\n }\n /**\n * Gets the direction output component\n */\n get color() {\n return this._outputs[1];\n }\n /**\n * Gets the direction output component\n */\n get intensity() {\n return this._outputs[2];\n }\n /**\n * Gets the shadow bias output component\n */\n get shadowBias() {\n return this._outputs[3];\n }\n /**\n * Gets the shadow normal bias output component\n */\n get shadowNormalBias() {\n return this._outputs[4];\n }\n /**\n * Gets the shadow depth scale component\n */\n get shadowDepthScale() {\n return this._outputs[5];\n }\n /**\n * Gets the shadow depth range component\n */\n get shadowDepthRange() {\n return this._outputs[6];\n }\n bind(effect, nodeMaterial, mesh) {\n if (!mesh) {\n return;\n }\n if (this.light && this.light.isDisposed()) {\n this.light = null;\n }\n let light = this.light;\n const scene = nodeMaterial.getScene();\n if (!light && scene.lights.length) {\n light = this.light = scene.lights[0];\n this._forcePrepareDefines = true;\n }\n if (!light || !light.isEnabled) {\n effect.setFloat3(this._lightDataUniformName, 0, 0, 0);\n effect.setFloat4(this._lightColorUniformName, 0, 0, 0, 0);\n return;\n }\n light.transferToNodeMaterialEffect(effect, this._lightDataUniformName);\n effect.setColor4(this._lightColorUniformName, light.diffuse, light.intensity);\n const generator = light.getShadowGenerator();\n if (this.shadowBias.hasEndpoints || this.shadowNormalBias.hasEndpoints || this.shadowDepthScale.hasEndpoints) {\n if (generator) {\n effect.setFloat3(this._lightShadowUniformName, generator.bias, generator.normalBias, generator.depthScale);\n }\n else {\n effect.setFloat3(this._lightShadowUniformName, 0, 0, 0);\n }\n }\n if (this.shadowDepthRange) {\n if (generator && scene.activeCamera) {\n const shadowLight = light;\n effect.setFloat2(this._lightShadowExtraUniformName, shadowLight.getDepthMinZ(scene.activeCamera), shadowLight.getDepthMinZ(scene.activeCamera) + shadowLight.getDepthMaxZ(scene.activeCamera));\n }\n else {\n effect.setFloat2(this._lightShadowExtraUniformName, 0, 0);\n }\n }\n }\n prepareDefines(mesh, nodeMaterial, defines) {\n if (!defines._areLightsDirty && !this._forcePrepareDefines) {\n return;\n }\n this._forcePrepareDefines = false;\n const light = this.light;\n defines.setValue(this._lightTypeDefineName, light && light instanceof PointLight ? true : false, true);\n }\n _buildBlock(state) {\n super._buildBlock(state);\n state.sharedData.bindableBlocks.push(this);\n state.sharedData.blocksWithDefines.push(this);\n const direction = this.direction;\n const color = this.color;\n const intensity = this.intensity;\n const shadowBias = this.shadowBias;\n const shadowNormalBias = this.shadowNormalBias;\n const shadowDepthScale = this.shadowDepthScale;\n const shadowDepthRange = this.shadowDepthRange;\n this._lightDataUniformName = state._getFreeVariableName(\"lightData\");\n this._lightColorUniformName = state._getFreeVariableName(\"lightColor\");\n this._lightShadowUniformName = state._getFreeVariableName(\"shadowData\");\n this._lightShadowExtraUniformName = state._getFreeVariableName(\"shadowExtraData\");\n this._lightTypeDefineName = state._getFreeDefineName(\"LIGHTPOINTTYPE\");\n const uniformAdd = state.shaderLanguage === 1 /* ShaderLanguage.WGSL */ ? \"uniforms.\" : \"\";\n state._emitUniformFromString(this._lightDataUniformName, NodeMaterialBlockConnectionPointTypes.Vector3);\n state._emitUniformFromString(this._lightColorUniformName, NodeMaterialBlockConnectionPointTypes.Vector4);\n state.compilationString += `#ifdef ${this._lightTypeDefineName}\\n`;\n state.compilationString +=\n state._declareOutput(direction) + ` = normalize(${this.worldPosition.associatedVariableName}.xyz - ${uniformAdd}${this._lightDataUniformName});\\n`;\n state.compilationString += `#else\\n`;\n state.compilationString += state._declareOutput(direction) + ` = ${uniformAdd}${this._lightDataUniformName};\\n`;\n state.compilationString += `#endif\\n`;\n state.compilationString += state._declareOutput(color) + ` = ${uniformAdd}${this._lightColorUniformName}.rgb;\\n`;\n state.compilationString += state._declareOutput(intensity) + ` = ${uniformAdd}${this._lightColorUniformName}.a;\\n`;\n if (shadowBias.hasEndpoints || shadowNormalBias.hasEndpoints || shadowDepthScale.hasEndpoints) {\n state._emitUniformFromString(this._lightShadowUniformName, NodeMaterialBlockConnectionPointTypes.Vector3);\n if (shadowBias.hasEndpoints) {\n state.compilationString += state._declareOutput(shadowBias) + ` = ${uniformAdd}${this._lightShadowUniformName}.x;\\n`;\n }\n if (shadowNormalBias.hasEndpoints) {\n state.compilationString += state._declareOutput(shadowNormalBias) + ` = ${uniformAdd}${this._lightShadowUniformName}.y;\\n`;\n }\n if (shadowDepthScale.hasEndpoints) {\n state.compilationString += state._declareOutput(shadowDepthScale) + ` = ${uniformAdd}${this._lightShadowUniformName}.z;\\n`;\n }\n }\n if (shadowDepthRange.hasEndpoints) {\n state._emitUniformFromString(this._lightShadowExtraUniformName, NodeMaterialBlockConnectionPointTypes.Vector2);\n state.compilationString += state._declareOutput(shadowDepthRange) + ` = ${this._lightShadowUniformName};\\n`;\n }\n return this;\n }\n serialize() {\n const serializationObject = super.serialize();\n if (this.light) {\n serializationObject.lightId = this.light.id;\n }\n return serializationObject;\n }\n _deserialize(serializationObject, scene, rootUrl) {\n super._deserialize(serializationObject, scene, rootUrl);\n if (serializationObject.lightId) {\n this.light = scene.getLightById(serializationObject.lightId);\n }\n }\n}\nRegisterClass(\"BABYLON.LightInformationBlock\", LightInformationBlock);\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,4BAA4B;AAC9D,SAASC,qCAAqC,QAAQ,sDAAsD;AAC5G,SAASC,wBAAwB,QAAQ,yCAAyC;AAClF,SAASC,aAAa,QAAQ,+BAA+B;AAC7D,SAASC,UAAU,QAAQ,kCAAkC;AAC7D;AACA;AACA;AACA,OAAO,MAAMC,qBAAqB,SAASL,iBAAiB,CAAC;EACzD;AACJ;AACA;AACA;EACIM,WAAWA,CAACC,IAAI,EAAE;IACd,KAAK,CAACA,IAAI,EAAEL,wBAAwB,CAACM,MAAM,CAAC;IAC5C,IAAI,CAACC,aAAa,CAAC,eAAe,EAAER,qCAAqC,CAACS,OAAO,EAAE,KAAK,EAAER,wBAAwB,CAACM,MAAM,CAAC;IAC1H,IAAI,CAACG,cAAc,CAAC,WAAW,EAAEV,qCAAqC,CAACW,OAAO,CAAC;IAC/E,IAAI,CAACD,cAAc,CAAC,OAAO,EAAEV,qCAAqC,CAACY,MAAM,CAAC;IAC1E,IAAI,CAACF,cAAc,CAAC,WAAW,EAAEV,qCAAqC,CAACa,KAAK,CAAC;IAC7E,IAAI,CAACH,cAAc,CAAC,YAAY,EAAEV,qCAAqC,CAACa,KAAK,CAAC;IAC9E,IAAI,CAACH,cAAc,CAAC,kBAAkB,EAAEV,qCAAqC,CAACa,KAAK,CAAC;IACpF,IAAI,CAACH,cAAc,CAAC,kBAAkB,EAAEV,qCAAqC,CAACa,KAAK,CAAC;IACpF,IAAI,CAACH,cAAc,CAAC,kBAAkB,EAAEV,qCAAqC,CAACc,OAAO,CAAC;EAC1F;EACA;AACJ;AACA;AACA;EACIC,YAAYA,CAAA,EAAG;IACX,OAAO,uBAAuB;EAClC;EACA;AACJ;AACA;EACI,IAAIC,aAAaA,CAAA,EAAG;IAChB,OAAO,IAAI,CAACC,OAAO,CAAC,CAAC,CAAC;EAC1B;EACA;AACJ;AACA;EACI,IAAIC,SAASA,CAAA,EAAG;IACZ,OAAO,IAAI,CAACC,QAAQ,CAAC,CAAC,CAAC;EAC3B;EACA;AACJ;AACA;EACI,IAAIC,KAAKA,CAAA,EAAG;IACR,OAAO,IAAI,CAACD,QAAQ,CAAC,CAAC,CAAC;EAC3B;EACA;AACJ;AACA;EACI,IAAIE,SAASA,CAAA,EAAG;IACZ,OAAO,IAAI,CAACF,QAAQ,CAAC,CAAC,CAAC;EAC3B;EACA;AACJ;AACA;EACI,IAAIG,UAAUA,CAAA,EAAG;IACb,OAAO,IAAI,CAACH,QAAQ,CAAC,CAAC,CAAC;EAC3B;EACA;AACJ;AACA;EACI,IAAII,gBAAgBA,CAAA,EAAG;IACnB,OAAO,IAAI,CAACJ,QAAQ,CAAC,CAAC,CAAC;EAC3B;EACA;AACJ;AACA;EACI,IAAIK,gBAAgBA,CAAA,EAAG;IACnB,OAAO,IAAI,CAACL,QAAQ,CAAC,CAAC,CAAC;EAC3B;EACA;AACJ;AACA;EACI,IAAIM,gBAAgBA,CAAA,EAAG;IACnB,OAAO,IAAI,CAACN,QAAQ,CAAC,CAAC,CAAC;EAC3B;EACAO,IAAIA,CAACC,MAAM,EAAEC,YAAY,EAAEC,IAAI,EAAE;IAC7B,IAAI,CAACA,IAAI,EAAE;MACP;IACJ;IACA,IAAI,IAAI,CAACC,KAAK,IAAI,IAAI,CAACA,KAAK,CAACC,UAAU,CAAC,CAAC,EAAE;MACvC,IAAI,CAACD,KAAK,GAAG,IAAI;IACrB;IACA,IAAIA,KAAK,GAAG,IAAI,CAACA,KAAK;IACtB,MAAME,KAAK,GAAGJ,YAAY,CAACK,QAAQ,CAAC,CAAC;IACrC,IAAI,CAACH,KAAK,IAAIE,KAAK,CAACE,MAAM,CAACC,MAAM,EAAE;MAC/BL,KAAK,GAAG,IAAI,CAACA,KAAK,GAAGE,KAAK,CAACE,MAAM,CAAC,CAAC,CAAC;MACpC,IAAI,CAACE,oBAAoB,GAAG,IAAI;IACpC;IACA,IAAI,CAACN,KAAK,IAAI,CAACA,KAAK,CAACO,SAAS,EAAE;MAC5BV,MAAM,CAACW,SAAS,CAAC,IAAI,CAACC,qBAAqB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;MACrDZ,MAAM,CAACa,SAAS,CAAC,IAAI,CAACC,sBAAsB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;MACzD;IACJ;IACAX,KAAK,CAACY,4BAA4B,CAACf,MAAM,EAAE,IAAI,CAACY,qBAAqB,CAAC;IACtEZ,MAAM,CAACgB,SAAS,CAAC,IAAI,CAACF,sBAAsB,EAAEX,KAAK,CAACc,OAAO,EAAEd,KAAK,CAACT,SAAS,CAAC;IAC7E,MAAMwB,SAAS,GAAGf,KAAK,CAACgB,kBAAkB,CAAC,CAAC;IAC5C,IAAI,IAAI,CAACxB,UAAU,CAACyB,YAAY,IAAI,IAAI,CAACxB,gBAAgB,CAACwB,YAAY,IAAI,IAAI,CAACvB,gBAAgB,CAACuB,YAAY,EAAE;MAC1G,IAAIF,SAAS,EAAE;QACXlB,MAAM,CAACW,SAAS,CAAC,IAAI,CAACU,uBAAuB,EAAEH,SAAS,CAACI,IAAI,EAAEJ,SAAS,CAACK,UAAU,EAAEL,SAAS,CAACM,UAAU,CAAC;MAC9G,CAAC,MACI;QACDxB,MAAM,CAACW,SAAS,CAAC,IAAI,CAACU,uBAAuB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;MAC3D;IACJ;IACA,IAAI,IAAI,CAACvB,gBAAgB,EAAE;MACvB,IAAIoB,SAAS,IAAIb,KAAK,CAACoB,YAAY,EAAE;QACjC,MAAMC,WAAW,GAAGvB,KAAK;QACzBH,MAAM,CAAC2B,SAAS,CAAC,IAAI,CAACC,4BAA4B,EAAEF,WAAW,CAACG,YAAY,CAACxB,KAAK,CAACoB,YAAY,CAAC,EAAEC,WAAW,CAACG,YAAY,CAACxB,KAAK,CAACoB,YAAY,CAAC,GAAGC,WAAW,CAACI,YAAY,CAACzB,KAAK,CAACoB,YAAY,CAAC,CAAC;MAClM,CAAC,MACI;QACDzB,MAAM,CAAC2B,SAAS,CAAC,IAAI,CAACC,4BAA4B,EAAE,CAAC,EAAE,CAAC,CAAC;MAC7D;IACJ;EACJ;EACAG,cAAcA,CAAC7B,IAAI,EAAED,YAAY,EAAE+B,OAAO,EAAE;IACxC,IAAI,CAACA,OAAO,CAACC,eAAe,IAAI,CAAC,IAAI,CAACxB,oBAAoB,EAAE;MACxD;IACJ;IACA,IAAI,CAACA,oBAAoB,GAAG,KAAK;IACjC,MAAMN,KAAK,GAAG,IAAI,CAACA,KAAK;IACxB6B,OAAO,CAACE,QAAQ,CAAC,IAAI,CAACC,oBAAoB,EAAEhC,KAAK,IAAIA,KAAK,YAAY3B,UAAU,GAAG,IAAI,GAAG,KAAK,EAAE,IAAI,CAAC;EAC1G;EACA4D,WAAWA,CAACC,KAAK,EAAE;IACf,KAAK,CAACD,WAAW,CAACC,KAAK,CAAC;IACxBA,KAAK,CAACC,UAAU,CAACC,cAAc,CAACC,IAAI,CAAC,IAAI,CAAC;IAC1CH,KAAK,CAACC,UAAU,CAACG,iBAAiB,CAACD,IAAI,CAAC,IAAI,CAAC;IAC7C,MAAMjD,SAAS,GAAG,IAAI,CAACA,SAAS;IAChC,MAAME,KAAK,GAAG,IAAI,CAACA,KAAK;IACxB,MAAMC,SAAS,GAAG,IAAI,CAACA,SAAS;IAChC,MAAMC,UAAU,GAAG,IAAI,CAACA,UAAU;IAClC,MAAMC,gBAAgB,GAAG,IAAI,CAACA,gBAAgB;IAC9C,MAAMC,gBAAgB,GAAG,IAAI,CAACA,gBAAgB;IAC9C,MAAMC,gBAAgB,GAAG,IAAI,CAACA,gBAAgB;IAC9C,IAAI,CAACc,qBAAqB,GAAGyB,KAAK,CAACK,oBAAoB,CAAC,WAAW,CAAC;IACpE,IAAI,CAAC5B,sBAAsB,GAAGuB,KAAK,CAACK,oBAAoB,CAAC,YAAY,CAAC;IACtE,IAAI,CAACrB,uBAAuB,GAAGgB,KAAK,CAACK,oBAAoB,CAAC,YAAY,CAAC;IACvE,IAAI,CAACd,4BAA4B,GAAGS,KAAK,CAACK,oBAAoB,CAAC,iBAAiB,CAAC;IACjF,IAAI,CAACP,oBAAoB,GAAGE,KAAK,CAACM,kBAAkB,CAAC,gBAAgB,CAAC;IACtE,MAAMC,UAAU,GAAGP,KAAK,CAACQ,cAAc,KAAK,CAAC,CAAC,4BAA4B,WAAW,GAAG,EAAE;IAC1FR,KAAK,CAACS,sBAAsB,CAAC,IAAI,CAAClC,qBAAqB,EAAEvC,qCAAqC,CAACW,OAAO,CAAC;IACvGqD,KAAK,CAACS,sBAAsB,CAAC,IAAI,CAAChC,sBAAsB,EAAEzC,qCAAqC,CAACS,OAAO,CAAC;IACxGuD,KAAK,CAACU,iBAAiB,IAAI,UAAU,IAAI,CAACZ,oBAAoB,IAAI;IAClEE,KAAK,CAACU,iBAAiB,IACnBV,KAAK,CAACW,cAAc,CAACzD,SAAS,CAAC,GAAG,gBAAgB,IAAI,CAACF,aAAa,CAAC4D,sBAAsB,UAAUL,UAAU,GAAG,IAAI,CAAChC,qBAAqB,MAAM;IACtJyB,KAAK,CAACU,iBAAiB,IAAI,SAAS;IACpCV,KAAK,CAACU,iBAAiB,IAAIV,KAAK,CAACW,cAAc,CAACzD,SAAS,CAAC,GAAG,MAAMqD,UAAU,GAAG,IAAI,CAAChC,qBAAqB,KAAK;IAC/GyB,KAAK,CAACU,iBAAiB,IAAI,UAAU;IACrCV,KAAK,CAACU,iBAAiB,IAAIV,KAAK,CAACW,cAAc,CAACvD,KAAK,CAAC,GAAG,MAAMmD,UAAU,GAAG,IAAI,CAAC9B,sBAAsB,SAAS;IAChHuB,KAAK,CAACU,iBAAiB,IAAIV,KAAK,CAACW,cAAc,CAACtD,SAAS,CAAC,GAAG,MAAMkD,UAAU,GAAG,IAAI,CAAC9B,sBAAsB,OAAO;IAClH,IAAInB,UAAU,CAACyB,YAAY,IAAIxB,gBAAgB,CAACwB,YAAY,IAAIvB,gBAAgB,CAACuB,YAAY,EAAE;MAC3FiB,KAAK,CAACS,sBAAsB,CAAC,IAAI,CAACzB,uBAAuB,EAAEhD,qCAAqC,CAACW,OAAO,CAAC;MACzG,IAAIW,UAAU,CAACyB,YAAY,EAAE;QACzBiB,KAAK,CAACU,iBAAiB,IAAIV,KAAK,CAACW,cAAc,CAACrD,UAAU,CAAC,GAAG,MAAMiD,UAAU,GAAG,IAAI,CAACvB,uBAAuB,OAAO;MACxH;MACA,IAAIzB,gBAAgB,CAACwB,YAAY,EAAE;QAC/BiB,KAAK,CAACU,iBAAiB,IAAIV,KAAK,CAACW,cAAc,CAACpD,gBAAgB,CAAC,GAAG,MAAMgD,UAAU,GAAG,IAAI,CAACvB,uBAAuB,OAAO;MAC9H;MACA,IAAIxB,gBAAgB,CAACuB,YAAY,EAAE;QAC/BiB,KAAK,CAACU,iBAAiB,IAAIV,KAAK,CAACW,cAAc,CAACnD,gBAAgB,CAAC,GAAG,MAAM+C,UAAU,GAAG,IAAI,CAACvB,uBAAuB,OAAO;MAC9H;IACJ;IACA,IAAIvB,gBAAgB,CAACsB,YAAY,EAAE;MAC/BiB,KAAK,CAACS,sBAAsB,CAAC,IAAI,CAAClB,4BAA4B,EAAEvD,qCAAqC,CAACc,OAAO,CAAC;MAC9GkD,KAAK,CAACU,iBAAiB,IAAIV,KAAK,CAACW,cAAc,CAAClD,gBAAgB,CAAC,GAAG,MAAM,IAAI,CAACuB,uBAAuB,KAAK;IAC/G;IACA,OAAO,IAAI;EACf;EACA6B,SAASA,CAAA,EAAG;IACR,MAAMC,mBAAmB,GAAG,KAAK,CAACD,SAAS,CAAC,CAAC;IAC7C,IAAI,IAAI,CAAC/C,KAAK,EAAE;MACZgD,mBAAmB,CAACC,OAAO,GAAG,IAAI,CAACjD,KAAK,CAACkD,EAAE;IAC/C;IACA,OAAOF,mBAAmB;EAC9B;EACAG,YAAYA,CAACH,mBAAmB,EAAE9C,KAAK,EAAEkD,OAAO,EAAE;IAC9C,KAAK,CAACD,YAAY,CAACH,mBAAmB,EAAE9C,KAAK,EAAEkD,OAAO,CAAC;IACvD,IAAIJ,mBAAmB,CAACC,OAAO,EAAE;MAC7B,IAAI,CAACjD,KAAK,GAAGE,KAAK,CAACmD,YAAY,CAACL,mBAAmB,CAACC,OAAO,CAAC;IAChE;EACJ;AACJ;AACA7E,aAAa,CAAC,+BAA+B,EAAEE,qBAAqB,CAAC","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}