@itwin/core-frontend 5.1.1 → 5.1.3-experimental.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -1
- package/lib/cjs/AccuDraw.js.map +1 -1
- package/lib/cjs/AccuSnap.js.map +1 -1
- package/lib/cjs/ApproximateTerrainHeights.js.map +1 -1
- package/lib/cjs/ApproximateTerrainHeightsProps.js.map +1 -1
- package/lib/cjs/AuxCoordSys.js.map +1 -1
- package/lib/cjs/BackgroundMapGeometry.js.map +1 -1
- package/lib/cjs/BingLocation.js.map +1 -1
- package/lib/cjs/BriefcaseConnection.js.map +1 -1
- package/lib/cjs/BriefcaseTxns.js.map +1 -1
- package/lib/cjs/CatalogConnection.js.map +1 -1
- package/lib/cjs/CategorySelectorState.js.map +1 -1
- package/lib/cjs/ChangeFlags.js.map +1 -1
- package/lib/cjs/CheckpointConnection.js.map +1 -1
- package/lib/cjs/ContextRealityModelState.js.map +1 -1
- package/lib/cjs/CoordSystem.js.map +1 -1
- package/lib/cjs/DecorationsCache.js.map +1 -1
- package/lib/cjs/DevTools.js.map +1 -1
- package/lib/cjs/DisplayStyleState.js.map +1 -1
- package/lib/cjs/DrawingViewState.js.map +1 -1
- package/lib/cjs/ElementLocateManager.js.map +1 -1
- package/lib/cjs/EmphasizeElements.js.map +1 -1
- package/lib/cjs/EntityState.js.map +1 -1
- package/lib/cjs/EnvironmentDecorations.js.map +1 -1
- package/lib/cjs/FeatureOverrideProvider.js.map +1 -1
- package/lib/cjs/FlashSettings.js.map +1 -1
- package/lib/cjs/FrontendHubAccess.js.map +1 -1
- package/lib/cjs/Frustum2d.js.map +1 -1
- package/lib/cjs/FrustumAnimator.js.map +1 -1
- package/lib/cjs/FuzzySearch.js.map +1 -1
- package/lib/cjs/GeoServices.js.map +1 -1
- package/lib/cjs/GlobeAnimator.js.map +1 -1
- package/lib/cjs/GraphicalEditingScope.js.map +1 -1
- package/lib/cjs/HitDetail.js.map +1 -1
- package/lib/cjs/IModelApp.js.map +1 -1
- package/lib/cjs/IModelConnection.js.map +1 -1
- package/lib/cjs/IModelRoutingContext.js.map +1 -1
- package/lib/cjs/IModeljs-css.js.map +1 -1
- package/lib/cjs/IpcApp.js.map +1 -1
- package/lib/cjs/LinePlaneIntersect.js.map +1 -1
- package/lib/cjs/LocalhostIpcApp.js.map +1 -1
- package/lib/cjs/MarginPercent.js.map +1 -1
- package/lib/cjs/Marker.js.map +1 -1
- package/lib/cjs/ModelSelectorState.js.map +1 -1
- package/lib/cjs/ModelState.js.map +1 -1
- package/lib/cjs/NativeApp.js.map +1 -1
- package/lib/cjs/NativeAppLogger.js.map +1 -1
- package/lib/cjs/NoRenderApp.js.map +1 -1
- package/lib/cjs/NotificationManager.js.map +1 -1
- package/lib/cjs/PerModelCategoryVisibility.js.map +1 -1
- package/lib/cjs/PlanarClipMaskState.js.map +1 -1
- package/lib/cjs/RealityDataSource.js.map +1 -1
- package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.js.map +1 -1
- package/lib/cjs/RealityDataSourceContextShareImpl.js.map +1 -1
- package/lib/cjs/RealityDataSourceTilesetUrlImpl.js.map +1 -1
- package/lib/cjs/SelectionSet.js.map +1 -1
- package/lib/cjs/SheetViewState.js.map +1 -1
- package/lib/cjs/SpatialClassifiersState.js.map +1 -1
- package/lib/cjs/SpatialViewState.js.map +1 -1
- package/lib/cjs/Sprites.js.map +1 -1
- package/lib/cjs/StandardView.js.map +1 -1
- package/lib/cjs/SubCategoriesCache.js.map +1 -1
- package/lib/cjs/TentativePoint.js.map +1 -1
- package/lib/cjs/Tiles.js.map +1 -1
- package/lib/cjs/TxnEntityChanges.js.map +1 -1
- package/lib/cjs/UserPreferences.js.map +1 -1
- package/lib/cjs/ViewAnimation.js.map +1 -1
- package/lib/cjs/ViewContext.js.map +1 -1
- package/lib/cjs/ViewCreator2d.js.map +1 -1
- package/lib/cjs/ViewCreator3d.js.map +1 -1
- package/lib/cjs/ViewGlobalLocation.js.map +1 -1
- package/lib/cjs/ViewManager.js.map +1 -1
- package/lib/cjs/ViewPose.js.map +1 -1
- package/lib/cjs/ViewState.js.map +1 -1
- package/lib/cjs/ViewStatus.js.map +1 -1
- package/lib/cjs/ViewingSpace.js.map +1 -1
- package/lib/cjs/Viewport.js.map +1 -1
- package/lib/cjs/ViewportSync.js.map +1 -1
- package/lib/cjs/common/FrontendLoggerCategory.js.map +1 -1
- package/lib/cjs/common/ImageUtil.js.map +1 -1
- package/lib/cjs/common/ViewRect.js.map +1 -1
- package/lib/cjs/common/WorkerProxy.js.map +1 -1
- package/lib/cjs/common/gltf/GltfModel.js.map +1 -1
- package/lib/cjs/common/gltf/GltfParser.js.map +1 -1
- package/lib/cjs/common/gltf/GltfSchema.js.map +1 -1
- package/lib/cjs/common/imdl/CompactEdges.js.map +1 -1
- package/lib/cjs/common/imdl/ImdlModel.js.map +1 -1
- package/lib/cjs/common/imdl/ImdlSchema.js.map +1 -1
- package/lib/cjs/common/imdl/ParseImdlDocument.js.map +1 -1
- package/lib/cjs/common/internal/Symbols.js.map +1 -1
- package/lib/cjs/common/internal/render/AnimationNodeId.js.map +1 -1
- package/lib/cjs/common/internal/render/AuxChannelTable.js.map +1 -1
- package/lib/cjs/common/internal/render/ColorMap.js.map +1 -1
- package/lib/cjs/common/internal/render/DisplayParams.js.map +1 -1
- package/lib/cjs/common/internal/render/EdgeParams.js.map +1 -1
- package/lib/cjs/common/internal/render/GeometryAccumulator.js.map +1 -1
- package/lib/cjs/common/internal/render/GeometryList.js.map +1 -1
- package/lib/cjs/common/internal/render/GeometryPrimitives.js.map +1 -1
- package/lib/cjs/common/internal/render/GraphicDescriptionBuilderImpl.js.map +1 -1
- package/lib/cjs/common/internal/render/GraphicDescriptionContextImpl.js.map +1 -1
- package/lib/cjs/common/internal/render/InstancedGraphicPropsBuilder.js.map +1 -1
- package/lib/cjs/common/internal/render/LineCode.js.map +1 -1
- package/lib/cjs/common/internal/render/MeshBuilder.js.map +1 -1
- package/lib/cjs/common/internal/render/MeshBuilderMap.js.map +1 -1
- package/lib/cjs/common/internal/render/MeshParams.js.map +1 -1
- package/lib/cjs/common/internal/render/MeshPrimitive.js.map +1 -1
- package/lib/cjs/common/internal/render/MeshPrimitives.js.map +1 -1
- package/lib/cjs/common/internal/render/OvrFlags.js.map +1 -1
- package/lib/cjs/common/internal/render/PointCloudPrimitive.js.map +1 -1
- package/lib/cjs/common/internal/render/PointStringParams.js.map +1 -1
- package/lib/cjs/common/internal/render/Polyface.js.map +1 -1
- package/lib/cjs/common/internal/render/PolylineParams.js.map +1 -1
- package/lib/cjs/common/internal/render/Primitives.js.map +1 -1
- package/lib/cjs/common/internal/render/Strokes.js.map +1 -1
- package/lib/cjs/common/internal/render/SurfaceParams.js.map +1 -1
- package/lib/cjs/common/internal/render/VertexIndices.js.map +1 -1
- package/lib/cjs/common/internal/render/VertexKey.js.map +1 -1
- package/lib/cjs/common/internal/render/VertexTable.js.map +1 -1
- package/lib/cjs/common/internal/render/VertexTableBuilder.js.map +1 -1
- package/lib/cjs/common/internal/render/VertexTableSplitter.js.map +1 -1
- package/lib/cjs/common/render/BatchOptions.js.map +1 -1
- package/lib/cjs/common/render/GraphicAssembler.js.map +1 -1
- package/lib/cjs/common/render/GraphicDescriptionBuilder.js.map +1 -1
- package/lib/cjs/common/render/GraphicDescriptionContext.js.map +1 -1
- package/lib/cjs/common/render/GraphicPrimitive.js.map +1 -1
- package/lib/cjs/common/render/GraphicType.js.map +1 -1
- package/lib/cjs/common/render/InstancedGraphicParams.js.map +1 -1
- package/lib/cjs/common/render/MaterialParams.js.map +1 -1
- package/lib/cjs/common/render/RenderInstancesParams.js.map +1 -1
- package/lib/cjs/common/render/TextureParams.js.map +1 -1
- package/lib/cjs/common.js.map +1 -1
- package/lib/cjs/core-frontend.js.map +1 -1
- package/lib/cjs/extension/Extension.js.map +1 -1
- package/lib/cjs/extension/ExtensionAdmin.js.map +1 -1
- package/lib/cjs/extension/ExtensionHost.js.map +1 -1
- package/lib/cjs/extension/ExtensionRuntime.js.map +1 -1
- package/lib/cjs/extension/providers/ExtensionLoadScript.js.map +1 -1
- package/lib/cjs/extension/providers/LocalExtensionProvider.js.map +1 -1
- package/lib/cjs/extension/providers/RemoteExtensionProvider.js.map +1 -1
- package/lib/cjs/internal/GoogleMapsDecorator.js.map +1 -1
- package/lib/cjs/internal/RealityDataSourceGoogle3dTilesImpl.js.map +1 -1
- package/lib/cjs/internal/ScriptUtils.js.map +1 -1
- package/lib/cjs/internal/cross-package.js.map +1 -1
- package/lib/cjs/internal/render/AnimationBranchState.js.map +1 -1
- package/lib/cjs/internal/render/FrameStatsCollector.js.map +1 -1
- package/lib/cjs/internal/render/GraphicBranchFrustum.js.map +1 -1
- package/lib/cjs/internal/render/GraphicTemplateImpl.js.map +1 -1
- package/lib/cjs/internal/render/MeshMapLayerGraphicParams.js.map +1 -1
- package/lib/cjs/internal/render/MockRender.js.map +1 -1
- package/lib/cjs/internal/render/PrimitiveBuilder.js.map +1 -1
- package/lib/cjs/internal/render/QueryVisibileFeatures.js.map +1 -1
- package/lib/cjs/internal/render/RenderAreaPattern.js.map +1 -1
- package/lib/cjs/internal/render/RenderGeometry.js.map +1 -1
- package/lib/cjs/internal/render/RenderInstancesParamsImpl.js.map +1 -1
- package/lib/cjs/internal/render/RenderMaterialSource.js.map +1 -1
- package/lib/cjs/internal/render/RenderPlan.js.map +1 -1
- package/lib/cjs/internal/render/RenderPlanarClassifier.js.map +1 -1
- package/lib/cjs/internal/render/RenderSkyBoxParams.js.map +1 -1
- package/lib/cjs/internal/render/RenderSystemDebugControl.js.map +1 -1
- package/lib/cjs/internal/render/RenderTargetDebugControl.js.map +1 -1
- package/lib/cjs/internal/render/RenderTerrain.js.map +1 -1
- package/lib/cjs/internal/render/RenderTextureDrape.js.map +1 -1
- package/lib/cjs/internal/render/SceneVolumeClassifier.js.map +1 -1
- package/lib/cjs/internal/render/UpsampleRealityMeshParams.js.map +1 -1
- package/lib/cjs/internal/render/webgl/AtmosphereUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/AttributeBuffers.js.map +1 -1
- package/lib/cjs/internal/render/webgl/AttributeMap.js.map +1 -1
- package/lib/cjs/internal/render/webgl/BackgroundMapDrape.js +1 -1
- package/lib/cjs/internal/render/webgl/BackgroundMapDrape.js.map +1 -1
- package/lib/cjs/internal/render/webgl/BatchState.js.map +1 -1
- package/lib/cjs/internal/render/webgl/BatchUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/BranchStack.js.map +1 -1
- package/lib/cjs/internal/render/webgl/BranchState.js.map +1 -1
- package/lib/cjs/internal/render/webgl/BranchUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/CachedGeometry.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ClipStack.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ClipVolume.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ClippingProgram.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ColorInfo.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ContourUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Contours.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Diagnostics.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Disposable.js.map +1 -1
- package/lib/cjs/internal/render/webgl/DrawCommand.js.map +1 -1
- package/lib/cjs/internal/render/webgl/EDL.js.map +1 -1
- package/lib/cjs/internal/render/webgl/EdgeGeometry.js.map +1 -1
- package/lib/cjs/internal/render/webgl/EdgeSettings.js.map +1 -1
- package/lib/cjs/internal/render/webgl/FeatureOverrides.js.map +1 -1
- package/lib/cjs/internal/render/webgl/FloatRGBA.js.map +1 -1
- package/lib/cjs/internal/render/webgl/FrameBuffer.js.map +1 -1
- package/lib/cjs/internal/render/webgl/FrustumUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/GL.js.map +1 -1
- package/lib/cjs/internal/render/webgl/GLTimer.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Graphic.js.map +1 -1
- package/lib/cjs/internal/render/webgl/HiliteUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/IModelFrameLifecycle.js.map +1 -1
- package/lib/cjs/internal/render/webgl/IndexedEdgeGeometry.js.map +1 -1
- package/lib/cjs/internal/render/webgl/InstancedGeometry.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Layer.js.map +1 -1
- package/lib/cjs/internal/render/webgl/LayerCommands.js.map +1 -1
- package/lib/cjs/internal/render/webgl/LightingUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/LineCode.js.map +1 -1
- package/lib/cjs/internal/render/webgl/MapLayerParams.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Material.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Matrix.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Mesh.js.map +1 -1
- package/lib/cjs/internal/render/webgl/MeshData.js.map +1 -1
- package/lib/cjs/internal/render/webgl/MeshGeometry.js.map +1 -1
- package/lib/cjs/internal/render/webgl/PerformanceMetrics.js.map +1 -1
- package/lib/cjs/internal/render/webgl/PlanarClassifier.js +1 -1
- package/lib/cjs/internal/render/webgl/PlanarClassifier.js.map +1 -1
- package/lib/cjs/internal/render/webgl/PlanarGrid.js.map +1 -1
- package/lib/cjs/internal/render/webgl/PlanarTextureProjection.js.map +1 -1
- package/lib/cjs/internal/render/webgl/PointCloud.js.map +1 -1
- package/lib/cjs/internal/render/webgl/PointString.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Polyline.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Primitive.js.map +1 -1
- package/lib/cjs/internal/render/webgl/RealityMesh.js.map +1 -1
- package/lib/cjs/internal/render/webgl/RealityModelUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/RenderBuffer.js.map +1 -1
- package/lib/cjs/internal/render/webgl/RenderCommands.js.map +1 -1
- package/lib/cjs/internal/render/webgl/RenderFlags.js.map +1 -1
- package/lib/cjs/internal/render/webgl/RenderState.js.map +1 -1
- package/lib/cjs/internal/render/webgl/SceneCompositor.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ScratchDrawParams.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ScreenSpaceEffect.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ShaderBuilder.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ShaderProgram.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ShadowUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/SolarShadowMap.js.map +1 -1
- package/lib/cjs/internal/render/webgl/StyleUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/SurfaceGeometry.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Sync.js.map +1 -1
- package/lib/cjs/internal/render/webgl/System.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Target.js.map +1 -1
- package/lib/cjs/internal/render/webgl/TargetGraphics.js.map +1 -1
- package/lib/cjs/internal/render/webgl/TargetUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Technique.js.map +1 -1
- package/lib/cjs/internal/render/webgl/TechniqueFlags.js.map +1 -1
- package/lib/cjs/internal/render/webgl/TechniqueId.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Texture.js.map +1 -1
- package/lib/cjs/internal/render/webgl/TextureDrape.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ThematicSensors.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ThematicUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/UniformHandle.js.map +1 -1
- package/lib/cjs/internal/render/webgl/VertexLUT.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ViewRectUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/VisibleTileFeatures.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Animation.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Atmosphere.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Blur.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/ClearPickAndColor.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/ClearTranslucent.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Clipping.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Color.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Combine3Textures.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/CombineTextures.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Common.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Composite.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Contours.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/CopyColor.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/CopyPickBuffers.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/CopyStencil.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Decode.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/EDL.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/EVSMFromDepth.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Edge.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/FeatureSymbology.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Fragment.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Instancing.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Lighting.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/LogarithmicDepthBuffer.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/LookupTable.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/MaplayerDraping.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Monochrome.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/PlanarClassification.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/PlanarGrid.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/PointCloud.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/PointString.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Polyline.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/RealityMesh.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/RenderPass.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/ScreenSpaceEffect.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/SkyBox.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/SkySphere.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/SolarShadowMapping.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Surface.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Thematic.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Translucency.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Vertex.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Viewport.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/ViewportQuad.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Wiremesh.js.map +1 -1
- package/lib/cjs/internal/tile/B3dmReader.js.map +1 -1
- package/lib/cjs/internal/tile/BatchedTileIdMap.js.map +1 -1
- package/lib/cjs/internal/tile/CesiumAssetProvider.js.map +1 -1
- package/lib/cjs/internal/tile/ClassifierTileTree.js.map +1 -1
- package/lib/cjs/internal/tile/ContextShareProvider.js.map +1 -1
- package/lib/cjs/internal/tile/DynamicIModelTile.js +1 -0
- package/lib/cjs/internal/tile/DynamicIModelTile.js.map +1 -1
- package/lib/cjs/internal/tile/FetchCloudStorage.js.map +1 -1
- package/lib/cjs/internal/tile/GraphicsCollector.js.map +1 -1
- package/lib/cjs/internal/tile/I3dmReader.js.map +1 -1
- package/lib/cjs/internal/tile/IModelTile.js.map +1 -1
- package/lib/cjs/internal/tile/IModelTileRequestChannels.js.map +1 -1
- package/lib/cjs/internal/tile/IModelTileTree.js.map +1 -1
- package/lib/cjs/internal/tile/ImdlDecoder.js.map +1 -1
- package/lib/cjs/internal/tile/ImdlGraphicsCreator.js.map +1 -1
- package/lib/cjs/internal/tile/ImdlParser.js.map +1 -1
- package/lib/cjs/internal/tile/LRUTileList.js.map +1 -1
- package/lib/cjs/internal/tile/LayerTileTreeHandler.js.map +1 -1
- package/lib/cjs/internal/tile/LayerTileTreeReferenceHandler.js.map +1 -1
- package/lib/cjs/internal/tile/MeshoptCompression.js.map +1 -1
- package/lib/cjs/internal/tile/OPCFormatInterpreter.js.map +1 -1
- package/lib/cjs/internal/tile/OrbitGtTileTree.js.map +1 -1
- package/lib/cjs/internal/tile/PntsReader.js.map +1 -1
- package/lib/cjs/internal/tile/PrimaryTileTree.js.map +1 -1
- package/lib/cjs/internal/tile/RealityModelTileTree.js.map +1 -1
- package/lib/cjs/internal/tile/RealityTileDrawArgs.js.map +1 -1
- package/lib/cjs/internal/tile/RealityTileLoader.js.map +1 -1
- package/lib/cjs/internal/tile/ThreeDTileFormatInterpreter.js.map +1 -1
- package/lib/cjs/internal/tile/TileUserSet.js.map +1 -1
- package/lib/cjs/internal/tile/ViewFlagOverrides.js.map +1 -1
- package/lib/cjs/internal/tile/map/ArcGISTileMap.js.map +1 -1
- package/lib/cjs/internal/tile/map/ArcGisUtilities.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/CoordinatesUtils.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/FeatureAttributeDrivenSymbology.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/FeatureGeometryRenderer.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/FeatureGraphicsRenderer.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/FeatureSymbologyRenderer.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/TileUrlImageryProvider.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/WebMercator.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/internal/tile/map/MapTileAvailability.js.map +1 -1
- package/lib/cjs/internal/tile/map/MapTileLoader.js.map +1 -1
- package/lib/cjs/internal/tile/map/UrlUtils.js.map +1 -1
- package/lib/cjs/internal/tile/map/WmsCapabilities.js.map +1 -1
- package/lib/cjs/internal/tile/map/WmsUtilities.js.map +1 -1
- package/lib/cjs/internal/tile/map/WmtsCapabilities.js.map +1 -1
- package/lib/cjs/internal/webgl.js.map +1 -1
- package/lib/cjs/properties/AngleDescription.js.map +1 -1
- package/lib/cjs/properties/FormattedQuantityDescription.js.map +1 -1
- package/lib/cjs/properties/LengthDescription.js.map +1 -1
- package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.js.map +1 -1
- package/lib/cjs/quantity-formatting/BasicUnitsProvider.js.map +1 -1
- package/lib/cjs/quantity-formatting/LocalUnitFormatProvider.js.map +1 -1
- package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
- package/lib/cjs/quantity-formatting/QuantityTypesEditorSpecs.js.map +1 -1
- package/lib/cjs/quantity-formatting/UnitsData.js.map +1 -1
- package/lib/cjs/render/CanvasDecoration.js.map +1 -1
- package/lib/cjs/render/CreateRenderMaterialArgs.js.map +1 -1
- package/lib/cjs/render/CreateTextureArgs.js.map +1 -1
- package/lib/cjs/render/Decorations.js.map +1 -1
- package/lib/cjs/render/FeatureSymbology.js.map +1 -1
- package/lib/cjs/render/FrameStats.js.map +1 -1
- package/lib/cjs/render/GraphicBranch.js.map +1 -1
- package/lib/cjs/render/GraphicBuilder.js.map +1 -1
- package/lib/cjs/render/GraphicTemplate.js.map +1 -1
- package/lib/cjs/render/MeshArgs.js.map +1 -1
- package/lib/cjs/render/ParticleCollectionBuilder.js.map +1 -1
- package/lib/cjs/render/Pixel.js.map +1 -1
- package/lib/cjs/render/PolylineArgs.js.map +1 -1
- package/lib/cjs/render/RealityMeshParams.js.map +1 -1
- package/lib/cjs/render/RenderClipVolume.js.map +1 -1
- package/lib/cjs/render/RenderGraphic.js.map +1 -1
- package/lib/cjs/render/RenderMemory.js.map +1 -1
- package/lib/cjs/render/RenderSystem.js.map +1 -1
- package/lib/cjs/render/RenderTarget.js.map +1 -1
- package/lib/cjs/render/Scene.js.map +1 -1
- package/lib/cjs/render/ScreenSpaceEffectBuilder.js.map +1 -1
- package/lib/cjs/render/VisibleFeature.js.map +1 -1
- package/lib/cjs/request/Request.js.map +1 -1
- package/lib/cjs/request/utils.js.map +1 -1
- package/lib/cjs/tile/DisclosedTileTreeSet.js.map +1 -1
- package/lib/cjs/tile/GltfReader.js.map +1 -1
- package/lib/cjs/tile/ImdlReader.js.map +1 -1
- package/lib/cjs/tile/RealityTile.js.map +1 -1
- package/lib/cjs/tile/RealityTileTree.js.map +1 -1
- package/lib/cjs/tile/RenderGraphicTileTree.js.map +1 -1
- package/lib/cjs/tile/Tile.js.map +1 -1
- package/lib/cjs/tile/TileAdmin.js.map +1 -1
- package/lib/cjs/tile/TileContent.js.map +1 -1
- package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
- package/lib/cjs/tile/TileGeometryCollector.js.map +1 -1
- package/lib/cjs/tile/TileParams.js.map +1 -1
- package/lib/cjs/tile/TileRequest.js.map +1 -1
- package/lib/cjs/tile/TileRequestChannel.js.map +1 -1
- package/lib/cjs/tile/TileRequestChannels.js.map +1 -1
- package/lib/cjs/tile/TileStorage.js.map +1 -1
- package/lib/cjs/tile/TileTree.js.map +1 -1
- package/lib/cjs/tile/TileTreeOwner.js.map +1 -1
- package/lib/cjs/tile/TileTreeParams.js.map +1 -1
- package/lib/cjs/tile/TileTreeReference.js.map +1 -1
- package/lib/cjs/tile/TileTreeSupplier.js.map +1 -1
- package/lib/cjs/tile/TileUsageMarker.js.map +1 -1
- package/lib/cjs/tile/TileUser.js.map +1 -1
- package/lib/cjs/tile/TiledGraphicsProvider.js.map +1 -1
- package/lib/cjs/tile/internal.js.map +1 -1
- package/lib/cjs/tile/map/BingElevation.js.map +1 -1
- package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
- package/lib/cjs/tile/map/EllipsoidTerrainProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
- package/lib/cjs/tile/map/MapCartoRectangle.js.map +1 -1
- package/lib/cjs/tile/map/MapFeatureInfo.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerAuthentication.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerFormatRegistry.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryFormats.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerTileTreeReference.js.map +1 -1
- package/lib/cjs/tile/map/MapTile.js.map +1 -1
- package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
- package/lib/cjs/tile/map/MapTiledGraphicsProvider.js.map +1 -1
- package/lib/cjs/tile/map/MapTilingScheme.js.map +1 -1
- package/lib/cjs/tile/map/QuadId.js.map +1 -1
- package/lib/cjs/tile/map/TerrainMeshProvider.js.map +1 -1
- package/lib/cjs/tile/map/TerrainProvider.js.map +1 -1
- package/lib/cjs/tools/AccuDrawTool.js.map +1 -1
- package/lib/cjs/tools/AccuDrawViewportUI.js.map +1 -1
- package/lib/cjs/tools/ClipViewTool.js.map +1 -1
- package/lib/cjs/tools/EditManipulator.js.map +1 -1
- package/lib/cjs/tools/ElementSetTool.js.map +1 -1
- package/lib/cjs/tools/EventController.js.map +1 -1
- package/lib/cjs/tools/IdleTool.js.map +1 -1
- package/lib/cjs/tools/MeasureTool.js.map +1 -1
- package/lib/cjs/tools/PrimitiveTool.js.map +1 -1
- package/lib/cjs/tools/SelectTool.js.map +1 -1
- package/lib/cjs/tools/Tool.js.map +1 -1
- package/lib/cjs/tools/ToolAdmin.js.map +1 -1
- package/lib/cjs/tools/ToolAssistance.js.map +1 -1
- package/lib/cjs/tools/ToolSettings.js.map +1 -1
- package/lib/cjs/tools/ViewTool.js.map +1 -1
- package/lib/cjs/workers/ImdlParser/Worker.js.map +1 -1
- package/lib/cjs/workers/RegisterWorker.js.map +1 -1
- package/lib/esm/AccuDraw.js.map +1 -1
- package/lib/esm/AccuSnap.js.map +1 -1
- package/lib/esm/ApproximateTerrainHeights.js.map +1 -1
- package/lib/esm/ApproximateTerrainHeightsProps.js.map +1 -1
- package/lib/esm/AuxCoordSys.js.map +1 -1
- package/lib/esm/BackgroundMapGeometry.js.map +1 -1
- package/lib/esm/BingLocation.js.map +1 -1
- package/lib/esm/BriefcaseConnection.js.map +1 -1
- package/lib/esm/BriefcaseTxns.js.map +1 -1
- package/lib/esm/CatalogConnection.js.map +1 -1
- package/lib/esm/CategorySelectorState.js.map +1 -1
- package/lib/esm/ChangeFlags.js.map +1 -1
- package/lib/esm/CheckpointConnection.js.map +1 -1
- package/lib/esm/ContextRealityModelState.js.map +1 -1
- package/lib/esm/CoordSystem.js.map +1 -1
- package/lib/esm/DecorationsCache.js.map +1 -1
- package/lib/esm/DevTools.js.map +1 -1
- package/lib/esm/DisplayStyleState.js.map +1 -1
- package/lib/esm/DrawingViewState.js.map +1 -1
- package/lib/esm/ElementLocateManager.js.map +1 -1
- package/lib/esm/EmphasizeElements.js.map +1 -1
- package/lib/esm/EntityState.js.map +1 -1
- package/lib/esm/EnvironmentDecorations.js.map +1 -1
- package/lib/esm/FeatureOverrideProvider.js.map +1 -1
- package/lib/esm/FlashSettings.js.map +1 -1
- package/lib/esm/FrontendHubAccess.js.map +1 -1
- package/lib/esm/Frustum2d.js.map +1 -1
- package/lib/esm/FrustumAnimator.js.map +1 -1
- package/lib/esm/FuzzySearch.js.map +1 -1
- package/lib/esm/GeoServices.js.map +1 -1
- package/lib/esm/GlobeAnimator.js.map +1 -1
- package/lib/esm/GraphicalEditingScope.js.map +1 -1
- package/lib/esm/HitDetail.js.map +1 -1
- package/lib/esm/IModelApp.js.map +1 -1
- package/lib/esm/IModelConnection.js.map +1 -1
- package/lib/esm/IModelRoutingContext.js.map +1 -1
- package/lib/esm/IModeljs-css.js.map +1 -1
- package/lib/esm/IpcApp.js.map +1 -1
- package/lib/esm/LinePlaneIntersect.js.map +1 -1
- package/lib/esm/LocalhostIpcApp.js.map +1 -1
- package/lib/esm/MarginPercent.js.map +1 -1
- package/lib/esm/Marker.js.map +1 -1
- package/lib/esm/ModelSelectorState.js.map +1 -1
- package/lib/esm/ModelState.js.map +1 -1
- package/lib/esm/NativeApp.js.map +1 -1
- package/lib/esm/NativeAppLogger.js.map +1 -1
- package/lib/esm/NoRenderApp.js.map +1 -1
- package/lib/esm/NotificationManager.js.map +1 -1
- package/lib/esm/PerModelCategoryVisibility.js.map +1 -1
- package/lib/esm/PlanarClipMaskState.js.map +1 -1
- package/lib/esm/RealityDataSource.js.map +1 -1
- package/lib/esm/RealityDataSourceCesiumIonAssetImpl.js.map +1 -1
- package/lib/esm/RealityDataSourceContextShareImpl.js.map +1 -1
- package/lib/esm/RealityDataSourceTilesetUrlImpl.js.map +1 -1
- package/lib/esm/SelectionSet.js.map +1 -1
- package/lib/esm/SheetViewState.js.map +1 -1
- package/lib/esm/SpatialClassifiersState.js.map +1 -1
- package/lib/esm/SpatialViewState.js.map +1 -1
- package/lib/esm/Sprites.js.map +1 -1
- package/lib/esm/StandardView.js.map +1 -1
- package/lib/esm/SubCategoriesCache.js.map +1 -1
- package/lib/esm/TentativePoint.js.map +1 -1
- package/lib/esm/Tiles.js.map +1 -1
- package/lib/esm/TxnEntityChanges.js.map +1 -1
- package/lib/esm/UserPreferences.js.map +1 -1
- package/lib/esm/ViewAnimation.js.map +1 -1
- package/lib/esm/ViewContext.js.map +1 -1
- package/lib/esm/ViewCreator2d.js.map +1 -1
- package/lib/esm/ViewCreator3d.js.map +1 -1
- package/lib/esm/ViewGlobalLocation.js.map +1 -1
- package/lib/esm/ViewManager.js.map +1 -1
- package/lib/esm/ViewPose.js.map +1 -1
- package/lib/esm/ViewState.js.map +1 -1
- package/lib/esm/ViewStatus.js.map +1 -1
- package/lib/esm/ViewingSpace.js.map +1 -1
- package/lib/esm/Viewport.js.map +1 -1
- package/lib/esm/ViewportSync.js.map +1 -1
- package/lib/esm/common/FrontendLoggerCategory.js.map +1 -1
- package/lib/esm/common/ImageUtil.js.map +1 -1
- package/lib/esm/common/ViewRect.js.map +1 -1
- package/lib/esm/common/WorkerProxy.js.map +1 -1
- package/lib/esm/common/gltf/GltfModel.js.map +1 -1
- package/lib/esm/common/gltf/GltfParser.js.map +1 -1
- package/lib/esm/common/gltf/GltfSchema.js.map +1 -1
- package/lib/esm/common/imdl/CompactEdges.js.map +1 -1
- package/lib/esm/common/imdl/ImdlModel.js.map +1 -1
- package/lib/esm/common/imdl/ImdlSchema.js.map +1 -1
- package/lib/esm/common/imdl/ParseImdlDocument.js.map +1 -1
- package/lib/esm/common/internal/Symbols.js.map +1 -1
- package/lib/esm/common/internal/render/AnimationNodeId.js.map +1 -1
- package/lib/esm/common/internal/render/AuxChannelTable.js.map +1 -1
- package/lib/esm/common/internal/render/ColorMap.js.map +1 -1
- package/lib/esm/common/internal/render/DisplayParams.js.map +1 -1
- package/lib/esm/common/internal/render/EdgeParams.js.map +1 -1
- package/lib/esm/common/internal/render/GeometryAccumulator.js.map +1 -1
- package/lib/esm/common/internal/render/GeometryList.js.map +1 -1
- package/lib/esm/common/internal/render/GeometryPrimitives.js.map +1 -1
- package/lib/esm/common/internal/render/GraphicDescriptionBuilderImpl.js.map +1 -1
- package/lib/esm/common/internal/render/GraphicDescriptionContextImpl.js.map +1 -1
- package/lib/esm/common/internal/render/InstancedGraphicPropsBuilder.js.map +1 -1
- package/lib/esm/common/internal/render/LineCode.js.map +1 -1
- package/lib/esm/common/internal/render/MeshBuilder.js.map +1 -1
- package/lib/esm/common/internal/render/MeshBuilderMap.js.map +1 -1
- package/lib/esm/common/internal/render/MeshParams.js.map +1 -1
- package/lib/esm/common/internal/render/MeshPrimitive.js.map +1 -1
- package/lib/esm/common/internal/render/MeshPrimitives.js.map +1 -1
- package/lib/esm/common/internal/render/OvrFlags.js.map +1 -1
- package/lib/esm/common/internal/render/PointCloudPrimitive.js.map +1 -1
- package/lib/esm/common/internal/render/PointStringParams.js.map +1 -1
- package/lib/esm/common/internal/render/Polyface.js.map +1 -1
- package/lib/esm/common/internal/render/PolylineParams.js.map +1 -1
- package/lib/esm/common/internal/render/Primitives.js.map +1 -1
- package/lib/esm/common/internal/render/Strokes.js.map +1 -1
- package/lib/esm/common/internal/render/SurfaceParams.js.map +1 -1
- package/lib/esm/common/internal/render/VertexIndices.js.map +1 -1
- package/lib/esm/common/internal/render/VertexKey.js.map +1 -1
- package/lib/esm/common/internal/render/VertexTable.js.map +1 -1
- package/lib/esm/common/internal/render/VertexTableBuilder.js.map +1 -1
- package/lib/esm/common/internal/render/VertexTableSplitter.js.map +1 -1
- package/lib/esm/common/render/BatchOptions.js.map +1 -1
- package/lib/esm/common/render/GraphicAssembler.js.map +1 -1
- package/lib/esm/common/render/GraphicDescriptionBuilder.js.map +1 -1
- package/lib/esm/common/render/GraphicDescriptionContext.js.map +1 -1
- package/lib/esm/common/render/GraphicPrimitive.js.map +1 -1
- package/lib/esm/common/render/GraphicType.js.map +1 -1
- package/lib/esm/common/render/InstancedGraphicParams.js.map +1 -1
- package/lib/esm/common/render/MaterialParams.js.map +1 -1
- package/lib/esm/common/render/RenderInstancesParams.js.map +1 -1
- package/lib/esm/common/render/TextureParams.js.map +1 -1
- package/lib/esm/common.js.map +1 -1
- package/lib/esm/core-frontend.js.map +1 -1
- package/lib/esm/extension/Extension.js.map +1 -1
- package/lib/esm/extension/ExtensionAdmin.js.map +1 -1
- package/lib/esm/extension/ExtensionHost.js.map +1 -1
- package/lib/esm/extension/ExtensionRuntime.js.map +1 -1
- package/lib/esm/extension/providers/ExtensionLoadScript.js.map +1 -1
- package/lib/esm/extension/providers/LocalExtensionProvider.js.map +1 -1
- package/lib/esm/extension/providers/RemoteExtensionProvider.js.map +1 -1
- package/lib/esm/internal/GoogleMapsDecorator.js.map +1 -1
- package/lib/esm/internal/RealityDataSourceGoogle3dTilesImpl.js.map +1 -1
- package/lib/esm/internal/ScriptUtils.js.map +1 -1
- package/lib/esm/internal/cross-package.js.map +1 -1
- package/lib/esm/internal/render/AnimationBranchState.js.map +1 -1
- package/lib/esm/internal/render/FrameStatsCollector.js.map +1 -1
- package/lib/esm/internal/render/GraphicBranchFrustum.js.map +1 -1
- package/lib/esm/internal/render/GraphicTemplateImpl.js.map +1 -1
- package/lib/esm/internal/render/MeshMapLayerGraphicParams.js.map +1 -1
- package/lib/esm/internal/render/MockRender.js.map +1 -1
- package/lib/esm/internal/render/PrimitiveBuilder.js.map +1 -1
- package/lib/esm/internal/render/QueryVisibileFeatures.js.map +1 -1
- package/lib/esm/internal/render/RenderAreaPattern.js.map +1 -1
- package/lib/esm/internal/render/RenderGeometry.js.map +1 -1
- package/lib/esm/internal/render/RenderInstancesParamsImpl.js.map +1 -1
- package/lib/esm/internal/render/RenderMaterialSource.js.map +1 -1
- package/lib/esm/internal/render/RenderPlan.js.map +1 -1
- package/lib/esm/internal/render/RenderPlanarClassifier.js.map +1 -1
- package/lib/esm/internal/render/RenderSkyBoxParams.js.map +1 -1
- package/lib/esm/internal/render/RenderSystemDebugControl.js.map +1 -1
- package/lib/esm/internal/render/RenderTargetDebugControl.js.map +1 -1
- package/lib/esm/internal/render/RenderTerrain.js.map +1 -1
- package/lib/esm/internal/render/RenderTextureDrape.js.map +1 -1
- package/lib/esm/internal/render/SceneVolumeClassifier.js.map +1 -1
- package/lib/esm/internal/render/UpsampleRealityMeshParams.js.map +1 -1
- package/lib/esm/internal/render/webgl/AtmosphereUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/AttributeBuffers.js.map +1 -1
- package/lib/esm/internal/render/webgl/AttributeMap.js.map +1 -1
- package/lib/esm/internal/render/webgl/BackgroundMapDrape.js +1 -1
- package/lib/esm/internal/render/webgl/BackgroundMapDrape.js.map +1 -1
- package/lib/esm/internal/render/webgl/BatchState.js.map +1 -1
- package/lib/esm/internal/render/webgl/BatchUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/BranchStack.js.map +1 -1
- package/lib/esm/internal/render/webgl/BranchState.js.map +1 -1
- package/lib/esm/internal/render/webgl/BranchUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/CachedGeometry.js.map +1 -1
- package/lib/esm/internal/render/webgl/ClipStack.js.map +1 -1
- package/lib/esm/internal/render/webgl/ClipVolume.js.map +1 -1
- package/lib/esm/internal/render/webgl/ClippingProgram.js.map +1 -1
- package/lib/esm/internal/render/webgl/ColorInfo.js.map +1 -1
- package/lib/esm/internal/render/webgl/ContourUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/Contours.js.map +1 -1
- package/lib/esm/internal/render/webgl/Diagnostics.js.map +1 -1
- package/lib/esm/internal/render/webgl/Disposable.js.map +1 -1
- package/lib/esm/internal/render/webgl/DrawCommand.js.map +1 -1
- package/lib/esm/internal/render/webgl/EDL.js.map +1 -1
- package/lib/esm/internal/render/webgl/EdgeGeometry.js.map +1 -1
- package/lib/esm/internal/render/webgl/EdgeSettings.js.map +1 -1
- package/lib/esm/internal/render/webgl/FeatureOverrides.js.map +1 -1
- package/lib/esm/internal/render/webgl/FloatRGBA.js.map +1 -1
- package/lib/esm/internal/render/webgl/FrameBuffer.js.map +1 -1
- package/lib/esm/internal/render/webgl/FrustumUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/GL.js.map +1 -1
- package/lib/esm/internal/render/webgl/GLTimer.js.map +1 -1
- package/lib/esm/internal/render/webgl/Graphic.js.map +1 -1
- package/lib/esm/internal/render/webgl/HiliteUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/IModelFrameLifecycle.js.map +1 -1
- package/lib/esm/internal/render/webgl/IndexedEdgeGeometry.js.map +1 -1
- package/lib/esm/internal/render/webgl/InstancedGeometry.js.map +1 -1
- package/lib/esm/internal/render/webgl/Layer.js.map +1 -1
- package/lib/esm/internal/render/webgl/LayerCommands.js.map +1 -1
- package/lib/esm/internal/render/webgl/LightingUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/LineCode.js.map +1 -1
- package/lib/esm/internal/render/webgl/MapLayerParams.js.map +1 -1
- package/lib/esm/internal/render/webgl/Material.js.map +1 -1
- package/lib/esm/internal/render/webgl/Matrix.js.map +1 -1
- package/lib/esm/internal/render/webgl/Mesh.js.map +1 -1
- package/lib/esm/internal/render/webgl/MeshData.js.map +1 -1
- package/lib/esm/internal/render/webgl/MeshGeometry.js.map +1 -1
- package/lib/esm/internal/render/webgl/PerformanceMetrics.js.map +1 -1
- package/lib/esm/internal/render/webgl/PlanarClassifier.js +1 -1
- package/lib/esm/internal/render/webgl/PlanarClassifier.js.map +1 -1
- package/lib/esm/internal/render/webgl/PlanarGrid.js.map +1 -1
- package/lib/esm/internal/render/webgl/PlanarTextureProjection.js.map +1 -1
- package/lib/esm/internal/render/webgl/PointCloud.js.map +1 -1
- package/lib/esm/internal/render/webgl/PointString.js.map +1 -1
- package/lib/esm/internal/render/webgl/Polyline.js.map +1 -1
- package/lib/esm/internal/render/webgl/Primitive.js.map +1 -1
- package/lib/esm/internal/render/webgl/RealityMesh.js.map +1 -1
- package/lib/esm/internal/render/webgl/RealityModelUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/RenderBuffer.js.map +1 -1
- package/lib/esm/internal/render/webgl/RenderCommands.js.map +1 -1
- package/lib/esm/internal/render/webgl/RenderFlags.js.map +1 -1
- package/lib/esm/internal/render/webgl/RenderState.js.map +1 -1
- package/lib/esm/internal/render/webgl/SceneCompositor.js.map +1 -1
- package/lib/esm/internal/render/webgl/ScratchDrawParams.js.map +1 -1
- package/lib/esm/internal/render/webgl/ScreenSpaceEffect.js.map +1 -1
- package/lib/esm/internal/render/webgl/ShaderBuilder.js.map +1 -1
- package/lib/esm/internal/render/webgl/ShaderProgram.js.map +1 -1
- package/lib/esm/internal/render/webgl/ShadowUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/SolarShadowMap.js.map +1 -1
- package/lib/esm/internal/render/webgl/StyleUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/SurfaceGeometry.js.map +1 -1
- package/lib/esm/internal/render/webgl/Sync.js.map +1 -1
- package/lib/esm/internal/render/webgl/System.js.map +1 -1
- package/lib/esm/internal/render/webgl/Target.js.map +1 -1
- package/lib/esm/internal/render/webgl/TargetGraphics.js.map +1 -1
- package/lib/esm/internal/render/webgl/TargetUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/Technique.js.map +1 -1
- package/lib/esm/internal/render/webgl/TechniqueFlags.js.map +1 -1
- package/lib/esm/internal/render/webgl/TechniqueId.js.map +1 -1
- package/lib/esm/internal/render/webgl/Texture.js.map +1 -1
- package/lib/esm/internal/render/webgl/TextureDrape.js.map +1 -1
- package/lib/esm/internal/render/webgl/ThematicSensors.js.map +1 -1
- package/lib/esm/internal/render/webgl/ThematicUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/UniformHandle.js.map +1 -1
- package/lib/esm/internal/render/webgl/VertexLUT.js.map +1 -1
- package/lib/esm/internal/render/webgl/ViewRectUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/VisibleTileFeatures.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Animation.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Atmosphere.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Blur.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/ClearPickAndColor.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/ClearTranslucent.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Clipping.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Color.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Combine3Textures.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/CombineTextures.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Common.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Composite.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Contours.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/CopyColor.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/CopyPickBuffers.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/CopyStencil.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Decode.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/EDL.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/EVSMFromDepth.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Edge.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/FeatureSymbology.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Fragment.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Instancing.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Lighting.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/LogarithmicDepthBuffer.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/LookupTable.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/MaplayerDraping.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Monochrome.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/PlanarClassification.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/PlanarGrid.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/PointCloud.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/PointString.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Polyline.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/RealityMesh.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/RenderPass.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/ScreenSpaceEffect.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/SkyBox.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/SkySphere.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/SolarShadowMapping.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Surface.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Thematic.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Translucency.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Vertex.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Viewport.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/ViewportQuad.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Wiremesh.js.map +1 -1
- package/lib/esm/internal/tile/B3dmReader.js.map +1 -1
- package/lib/esm/internal/tile/BatchedTileIdMap.js.map +1 -1
- package/lib/esm/internal/tile/CesiumAssetProvider.js.map +1 -1
- package/lib/esm/internal/tile/ClassifierTileTree.js.map +1 -1
- package/lib/esm/internal/tile/ContextShareProvider.js.map +1 -1
- package/lib/esm/internal/tile/DynamicIModelTile.js +1 -0
- package/lib/esm/internal/tile/DynamicIModelTile.js.map +1 -1
- package/lib/esm/internal/tile/FetchCloudStorage.js.map +1 -1
- package/lib/esm/internal/tile/GraphicsCollector.js.map +1 -1
- package/lib/esm/internal/tile/I3dmReader.js.map +1 -1
- package/lib/esm/internal/tile/IModelTile.js.map +1 -1
- package/lib/esm/internal/tile/IModelTileRequestChannels.js.map +1 -1
- package/lib/esm/internal/tile/IModelTileTree.js.map +1 -1
- package/lib/esm/internal/tile/ImdlDecoder.js.map +1 -1
- package/lib/esm/internal/tile/ImdlGraphicsCreator.js.map +1 -1
- package/lib/esm/internal/tile/ImdlParser.js.map +1 -1
- package/lib/esm/internal/tile/LRUTileList.js.map +1 -1
- package/lib/esm/internal/tile/LayerTileTreeHandler.js.map +1 -1
- package/lib/esm/internal/tile/LayerTileTreeReferenceHandler.js.map +1 -1
- package/lib/esm/internal/tile/MeshoptCompression.js.map +1 -1
- package/lib/esm/internal/tile/OPCFormatInterpreter.js.map +1 -1
- package/lib/esm/internal/tile/OrbitGtTileTree.js.map +1 -1
- package/lib/esm/internal/tile/PntsReader.js.map +1 -1
- package/lib/esm/internal/tile/PrimaryTileTree.js.map +1 -1
- package/lib/esm/internal/tile/RealityModelTileTree.js.map +1 -1
- package/lib/esm/internal/tile/RealityTileDrawArgs.js.map +1 -1
- package/lib/esm/internal/tile/RealityTileLoader.js.map +1 -1
- package/lib/esm/internal/tile/ThreeDTileFormatInterpreter.js.map +1 -1
- package/lib/esm/internal/tile/TileUserSet.js.map +1 -1
- package/lib/esm/internal/tile/ViewFlagOverrides.js.map +1 -1
- package/lib/esm/internal/tile/map/ArcGISTileMap.js.map +1 -1
- package/lib/esm/internal/tile/map/ArcGisUtilities.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/CoordinatesUtils.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/FeatureAttributeDrivenSymbology.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/FeatureGeometryRenderer.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/FeatureGraphicsRenderer.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/FeatureSymbologyRenderer.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/TileUrlImageryProvider.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/WebMercator.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/internal/tile/map/MapTileAvailability.js.map +1 -1
- package/lib/esm/internal/tile/map/MapTileLoader.js.map +1 -1
- package/lib/esm/internal/tile/map/UrlUtils.js.map +1 -1
- package/lib/esm/internal/tile/map/WmsCapabilities.js.map +1 -1
- package/lib/esm/internal/tile/map/WmsUtilities.js.map +1 -1
- package/lib/esm/internal/tile/map/WmtsCapabilities.js.map +1 -1
- package/lib/esm/internal/webgl.js.map +1 -1
- package/lib/esm/properties/AngleDescription.js.map +1 -1
- package/lib/esm/properties/FormattedQuantityDescription.js.map +1 -1
- package/lib/esm/properties/LengthDescription.js.map +1 -1
- package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.js.map +1 -1
- package/lib/esm/quantity-formatting/BasicUnitsProvider.js.map +1 -1
- package/lib/esm/quantity-formatting/LocalUnitFormatProvider.js.map +1 -1
- package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
- package/lib/esm/quantity-formatting/QuantityTypesEditorSpecs.js.map +1 -1
- package/lib/esm/quantity-formatting/UnitsData.js.map +1 -1
- package/lib/esm/render/CanvasDecoration.js.map +1 -1
- package/lib/esm/render/CreateRenderMaterialArgs.js.map +1 -1
- package/lib/esm/render/CreateTextureArgs.js.map +1 -1
- package/lib/esm/render/Decorations.js.map +1 -1
- package/lib/esm/render/FeatureSymbology.js.map +1 -1
- package/lib/esm/render/FrameStats.js.map +1 -1
- package/lib/esm/render/GraphicBranch.js.map +1 -1
- package/lib/esm/render/GraphicBuilder.js.map +1 -1
- package/lib/esm/render/GraphicTemplate.js.map +1 -1
- package/lib/esm/render/MeshArgs.js.map +1 -1
- package/lib/esm/render/ParticleCollectionBuilder.js.map +1 -1
- package/lib/esm/render/Pixel.js.map +1 -1
- package/lib/esm/render/PolylineArgs.js.map +1 -1
- package/lib/esm/render/RealityMeshParams.js.map +1 -1
- package/lib/esm/render/RenderClipVolume.js.map +1 -1
- package/lib/esm/render/RenderGraphic.js.map +1 -1
- package/lib/esm/render/RenderMemory.js.map +1 -1
- package/lib/esm/render/RenderSystem.js.map +1 -1
- package/lib/esm/render/RenderTarget.js.map +1 -1
- package/lib/esm/render/Scene.js.map +1 -1
- package/lib/esm/render/ScreenSpaceEffectBuilder.js.map +1 -1
- package/lib/esm/render/VisibleFeature.js.map +1 -1
- package/lib/esm/request/Request.js.map +1 -1
- package/lib/esm/request/utils.js.map +1 -1
- package/lib/esm/tile/DisclosedTileTreeSet.js.map +1 -1
- package/lib/esm/tile/GltfReader.js.map +1 -1
- package/lib/esm/tile/ImdlReader.js.map +1 -1
- package/lib/esm/tile/RealityTile.js.map +1 -1
- package/lib/esm/tile/RealityTileTree.js.map +1 -1
- package/lib/esm/tile/RenderGraphicTileTree.js.map +1 -1
- package/lib/esm/tile/Tile.js.map +1 -1
- package/lib/esm/tile/TileAdmin.js.map +1 -1
- package/lib/esm/tile/TileContent.js.map +1 -1
- package/lib/esm/tile/TileDrawArgs.js.map +1 -1
- package/lib/esm/tile/TileGeometryCollector.js.map +1 -1
- package/lib/esm/tile/TileParams.js.map +1 -1
- package/lib/esm/tile/TileRequest.js.map +1 -1
- package/lib/esm/tile/TileRequestChannel.js.map +1 -1
- package/lib/esm/tile/TileRequestChannels.js.map +1 -1
- package/lib/esm/tile/TileStorage.js.map +1 -1
- package/lib/esm/tile/TileTree.js.map +1 -1
- package/lib/esm/tile/TileTreeOwner.js.map +1 -1
- package/lib/esm/tile/TileTreeParams.js.map +1 -1
- package/lib/esm/tile/TileTreeReference.js.map +1 -1
- package/lib/esm/tile/TileTreeSupplier.js.map +1 -1
- package/lib/esm/tile/TileUsageMarker.js.map +1 -1
- package/lib/esm/tile/TileUser.js.map +1 -1
- package/lib/esm/tile/TiledGraphicsProvider.js.map +1 -1
- package/lib/esm/tile/internal.js.map +1 -1
- package/lib/esm/tile/map/BingElevation.js.map +1 -1
- package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
- package/lib/esm/tile/map/EllipsoidTerrainProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
- package/lib/esm/tile/map/MapCartoRectangle.js.map +1 -1
- package/lib/esm/tile/map/MapFeatureInfo.js.map +1 -1
- package/lib/esm/tile/map/MapLayerAuthentication.js.map +1 -1
- package/lib/esm/tile/map/MapLayerFormatRegistry.js.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryFormats.js.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
- package/lib/esm/tile/map/MapLayerTileTreeReference.js.map +1 -1
- package/lib/esm/tile/map/MapTile.js.map +1 -1
- package/lib/esm/tile/map/MapTileTree.js.map +1 -1
- package/lib/esm/tile/map/MapTiledGraphicsProvider.js.map +1 -1
- package/lib/esm/tile/map/MapTilingScheme.js.map +1 -1
- package/lib/esm/tile/map/QuadId.js.map +1 -1
- package/lib/esm/tile/map/TerrainMeshProvider.js.map +1 -1
- package/lib/esm/tile/map/TerrainProvider.js.map +1 -1
- package/lib/esm/tools/AccuDrawTool.js.map +1 -1
- package/lib/esm/tools/AccuDrawViewportUI.js.map +1 -1
- package/lib/esm/tools/ClipViewTool.js.map +1 -1
- package/lib/esm/tools/EditManipulator.js.map +1 -1
- package/lib/esm/tools/ElementSetTool.js.map +1 -1
- package/lib/esm/tools/EventController.js.map +1 -1
- package/lib/esm/tools/IdleTool.js.map +1 -1
- package/lib/esm/tools/MeasureTool.js.map +1 -1
- package/lib/esm/tools/PrimitiveTool.js.map +1 -1
- package/lib/esm/tools/SelectTool.js.map +1 -1
- package/lib/esm/tools/Tool.js.map +1 -1
- package/lib/esm/tools/ToolAdmin.js.map +1 -1
- package/lib/esm/tools/ToolAssistance.js.map +1 -1
- package/lib/esm/tools/ToolSettings.js.map +1 -1
- package/lib/esm/tools/ViewTool.js.map +1 -1
- package/lib/esm/workers/ImdlParser/Worker.js.map +1 -1
- package/lib/esm/workers/RegisterWorker.js.map +1 -1
- package/package.json +20 -20
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClipViewTool.js","sourceRoot":"","sources":["../../../src/tools/ClipViewTool.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tools\r\n */\r\n\r\nimport { BeEvent, Id64, Id64Arg, Id64String } from \"@itwin/core-bentley\";\r\nimport {\r\n AxisOrder, ClipMaskXYZRangePlanes, ClipPlane, ClipPrimitive, ClipShape, ClipUtilities, ClipVector, ConvexClipPlaneSet, FrameBuilder, Geometry, GeometryQuery,\r\n GrowableXYZArray, LineString3d, Loop, Matrix3d, Path, Plane3dByOriginAndUnitNormal, Point3d, PolygonOps, PolylineOps, Range1d, Range3d, Ray3d,\r\n Transform, Vector3d,\r\n} from \"@itwin/core-geometry\";\r\nimport { ClipStyle, ColorDef, LinePixels, Placement2d } from \"@itwin/core-common\";\r\nimport { DialogItem, DialogItemValue, DialogPropertySyncItem, PropertyDescription } from \"@itwin/appui-abstract\";\r\nimport { AccuDrawHintBuilder, ContextRotationId } from \"../AccuDraw\";\r\nimport { CoordSystem } from \"../CoordSystem\";\r\nimport { LocateResponse } from \"../ElementLocateManager\";\r\nimport { HitDetail } from \"../HitDetail\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { GraphicBuilder } from \"../render/GraphicBuilder\";\r\nimport { DecorateContext } from \"../ViewContext\";\r\nimport { ScreenViewport, Viewport } from \"../Viewport\";\r\nimport { EditManipulator } from \"./EditManipulator\";\r\nimport { PrimitiveTool } from \"./PrimitiveTool\";\r\nimport { BeButtonEvent, CoordinateLockOverrides, CoreTools, EventHandled } from \"./Tool\";\r\nimport { ToolAssistance, ToolAssistanceImage, ToolAssistanceInputMethod, ToolAssistanceInstruction, ToolAssistanceSection } from \"./ToolAssistance\";\r\nimport { GraphicType } from \"../common/render/GraphicType\";\r\n\r\n// cSpell:ignore geti\r\n\r\n/** An object that can react to a view's clip being changed by tools or modify handles.\r\n * @public\r\n * @extensions\r\n */\r\nexport interface ViewClipEventHandler {\r\n /** Add newly created clip geometry to selection set and show modify controls. */\r\n selectOnCreate(): boolean;\r\n /** Stop displaying clip geometry when clip is removed from the selection set. */\r\n clearOnDeselect(): boolean;\r\n /** Called by tools that set or replace the existing view clip with a new clip. */\r\n onNewClip(viewport: Viewport): void;\r\n /** Called by tools that add a single plane to the view clip. When there is more than one plane, the new plane is always last. */\r\n onNewClipPlane(viewport: Viewport): void;\r\n /** Called by tools after modifying the view clip. */\r\n onModifyClip(viewport: Viewport): void;\r\n /** Called when the view clip is cleared from the view. */\r\n onClearClip(viewport: Viewport): void;\r\n /** Called when user right clicks on clip geometry or clip modify handle. Return true if event handled. */\r\n onRightClick(hit: HitDetail, ev: BeButtonEvent): boolean;\r\n}\r\n\r\n/** @internal Options to control display for ViewClipTool.drawClip */\r\nexport interface DrawClipOptions {\r\n /** Color to use for clip edges, uses white adjusted for background color if not specified. */\r\n color?: ColorDef;\r\n /** Color to use for clip plane fill, uses transparent cyan adjusted for background color if not specified. */\r\n fill?: ColorDef;\r\n /** Width for visible clip edges, uses 3 if not specified. */\r\n visibleWidth?: number;\r\n /** Width for hidden clip edges, uses 1 if not specified. */\r\n hiddenWidth?: number;\r\n /** Style for hidden clip edges, uses LinePixels.Code2 if not specified. */\r\n hiddenStyle?: LinePixels;\r\n /** Whether to draw filled clip planes. */\r\n fillClipPlanes?: boolean;\r\n /** Whether clip represents a single section plane with additional planes for xy and back clipping. Fill will only apply to the primary plane. */\r\n hasPrimaryPlane?: boolean;\r\n /** Unique id to allow clip edges to be pickable. */\r\n id?: string;\r\n}\r\n\r\n/** A tool to define a clip volume for a view\r\n * @public @extensions\r\n */\r\nexport class ViewClipTool extends PrimitiveTool {\r\n constructor(protected _clipEventHandler?: ViewClipEventHandler) { super(); }\r\n\r\n /** @internal */\r\n protected static _orientationName = \"enumAsOrientation\";\r\n /** @internal */\r\n protected static enumAsOrientationMessage(str: string) { return CoreTools.translate(`Settings.Orientation.${str}`); }\r\n /** @internal */\r\n protected static _getEnumAsOrientationDescription = (): PropertyDescription => {\r\n return {\r\n name: ViewClipTool._orientationName,\r\n displayLabel: CoreTools.translate(\"Settings.Orientation.Label\"),\r\n typename: \"enum\",\r\n enum: {\r\n choices: [\r\n { label: ViewClipTool.enumAsOrientationMessage(\"Top\"), value: ContextRotationId.Top },\r\n { label: ViewClipTool.enumAsOrientationMessage(\"Front\"), value: ContextRotationId.Front },\r\n { label: ViewClipTool.enumAsOrientationMessage(\"Left\"), value: ContextRotationId.Left },\r\n { label: ViewClipTool.enumAsOrientationMessage(\"Bottom\"), value: ContextRotationId.Bottom },\r\n { label: ViewClipTool.enumAsOrientationMessage(\"Back\"), value: ContextRotationId.Back },\r\n { label: ViewClipTool.enumAsOrientationMessage(\"Right\"), value: ContextRotationId.Right },\r\n { label: ViewClipTool.enumAsOrientationMessage(\"View\"), value: ContextRotationId.View },\r\n { label: ViewClipTool.enumAsOrientationMessage(\"Face\"), value: ContextRotationId.Face },\r\n ],\r\n },\r\n };\r\n };\r\n\r\n /** @internal */\r\n public override requireWriteableTarget(): boolean { return false; }\r\n /** @internal */\r\n public override isCompatibleViewport(vp: Viewport | undefined, isSelectedViewChange: boolean): boolean { return (super.isCompatibleViewport(vp, isSelectedViewChange) && undefined !== vp && vp.view.allow3dManipulations()); }\r\n\r\n /** @internal */\r\n public override async onPostInstall() {\r\n await super.onPostInstall();\r\n this.setupAndPromptForNextAction();\r\n }\r\n\r\n /** @internal */\r\n public override async onUnsuspend() { this.showPrompt(); }\r\n /** @internal */\r\n public async onRestartTool(): Promise<void> { return this.exitTool(); }\r\n /** @internal */\r\n protected showPrompt(): void { }\r\n /** @internal */\r\n protected setupAndPromptForNextAction(): void { this.showPrompt(); }\r\n /** @internal */\r\n public override async onResetButtonUp(_ev: BeButtonEvent): Promise<EventHandled> {\r\n await this.onReinitialize();\r\n return EventHandled.No;\r\n }\r\n\r\n /** @internal */\r\n public static getPlaneInwardNormal(orientation: ContextRotationId, viewport: Viewport): Vector3d | undefined {\r\n const matrix = AccuDrawHintBuilder.getContextRotation(orientation, viewport);\r\n if (undefined === matrix)\r\n return undefined;\r\n return matrix.getColumn(2).negate();\r\n }\r\n\r\n public static enableClipVolume(viewport: Viewport): boolean {\r\n if (viewport.viewFlags.clipVolume)\r\n return false;\r\n\r\n viewport.viewFlags = viewport.viewFlags.with(\"clipVolume\", true);\r\n return true;\r\n }\r\n\r\n public static setViewClip(viewport: Viewport, clip?: ClipVector): boolean {\r\n viewport.view.setViewClip(clip);\r\n viewport.setupFromView();\r\n return true;\r\n }\r\n\r\n public static doClipToConvexClipPlaneSet(viewport: Viewport, planes: ConvexClipPlaneSet): boolean {\r\n const prim = ClipPrimitive.createCapture(planes);\r\n const clip = ClipVector.createEmpty();\r\n clip.appendReference(prim);\r\n return this.setViewClip(viewport, clip);\r\n }\r\n\r\n public static doClipToPlane(viewport: Viewport, origin: Point3d, normal: Vector3d, clearExistingPlanes: boolean): boolean {\r\n const plane = Plane3dByOriginAndUnitNormal.create(origin, normal);\r\n if (undefined === plane)\r\n return false;\r\n let planeSet: ConvexClipPlaneSet | undefined;\r\n if (!clearExistingPlanes) {\r\n const existingClip = viewport.view.getViewClip();\r\n if (undefined !== existingClip && 1 === existingClip.clips.length) {\r\n const existingPrim = existingClip.clips[0];\r\n if (!(existingPrim instanceof ClipShape)) {\r\n const existingPlaneSets = existingPrim.fetchClipPlanesRef();\r\n if (undefined !== existingPlaneSets && 1 === existingPlaneSets.convexSets.length)\r\n planeSet = existingPlaneSets.convexSets[0];\r\n }\r\n }\r\n }\r\n if (undefined === planeSet)\r\n planeSet = ConvexClipPlaneSet.createEmpty();\r\n planeSet.addPlaneToConvexSet(ClipPlane.createPlane(plane));\r\n return this.doClipToConvexClipPlaneSet(viewport, planeSet);\r\n }\r\n\r\n public static doClipToShape(viewport: Viewport, xyPoints: Point3d[], transform?: Transform, zLow?: number, zHigh?: number): boolean {\r\n const clip = ClipVector.createEmpty();\r\n clip.appendShape(xyPoints, zLow, zHigh, transform);\r\n return this.setViewClip(viewport, clip);\r\n }\r\n\r\n public static doClipToRange(viewport: Viewport, range: Range3d, transform?: Transform): boolean {\r\n if (range.isNull || range.isAlmostZeroX || range.isAlmostZeroY)\r\n return false;\r\n const clip = ClipVector.createEmpty();\r\n const block = ClipShape.createBlock(range, range.isAlmostZeroZ ? ClipMaskXYZRangePlanes.XAndY : ClipMaskXYZRangePlanes.All, false, false, transform);\r\n clip.appendReference(block);\r\n return this.setViewClip(viewport, clip);\r\n }\r\n\r\n public static doClipClear(viewport: Viewport): boolean {\r\n if (!ViewClipTool.hasClip(viewport))\r\n return false;\r\n return this.setViewClip(viewport);\r\n }\r\n\r\n /** @internal */\r\n public static getClipRayTransformed(origin: Point3d, direction: Vector3d, transform?: Transform): Ray3d {\r\n const facePt = origin.clone();\r\n const faceDir = direction.clone();\r\n\r\n if (undefined !== transform) {\r\n transform.multiplyPoint3d(facePt, facePt);\r\n transform.multiplyVector(faceDir, faceDir);\r\n faceDir.normalizeInPlace();\r\n }\r\n\r\n return Ray3d.createCapture(facePt, faceDir);\r\n }\r\n\r\n /** @internal */\r\n public static getOffsetValueTransformed(offset: number, transform?: Transform) {\r\n if (undefined === transform)\r\n return offset;\r\n const lengthVec = Vector3d.create(offset);\r\n transform.multiplyVector(lengthVec, lengthVec);\r\n const localOffset = lengthVec.magnitude();\r\n return (offset < 0 ? -localOffset : localOffset);\r\n }\r\n\r\n /** @internal */\r\n public static addClipPlanesLoops(builder: GraphicBuilder, loops: GeometryQuery[], outline: boolean): void {\r\n for (const geom of loops) {\r\n if (!(geom instanceof Loop))\r\n continue;\r\n if (outline)\r\n builder.addPath(Path.createArray(geom.children));\r\n else\r\n builder.addLoop(geom);\r\n }\r\n }\r\n\r\n /** @internal */\r\n private static addClipShape(builder: GraphicBuilder, shape: ClipShape, extents: Range1d): void {\r\n const shapePtsLo = ViewClipTool.getClipShapePoints(shape, extents.low);\r\n const shapePtsHi = ViewClipTool.getClipShapePoints(shape, extents.high);\r\n for (let i: number = 0; i < shapePtsLo.length; i++)\r\n builder.addLineString([shapePtsLo[i].clone(), shapePtsHi[i].clone()]);\r\n builder.addLineString(shapePtsLo);\r\n builder.addLineString(shapePtsHi);\r\n }\r\n\r\n /** @internal */\r\n public static drawClip(context: DecorateContext, clip: ClipVector, viewExtents?: Range3d, options?: DrawClipOptions): void {\r\n const clipShape = ViewClipTool.isSingleClipShape(clip);\r\n const clipPlanes = (undefined === clipShape ? ViewClipTool.isSingleConvexClipPlaneSet(clip) : undefined);\r\n if (undefined === clipShape && undefined === clipPlanes)\r\n return;\r\n\r\n const viewRange = (viewExtents ? viewExtents : context.viewport.computeViewRange());\r\n const clipPlanesLoops = (undefined !== clipPlanes ? ClipUtilities.loopsOfConvexClipPlaneIntersectionWithRange(clipPlanes, viewRange) : undefined);\r\n if (undefined === clipShape && (undefined === clipPlanesLoops || 0 === clipPlanesLoops.length))\r\n return;\r\n\r\n const color = (options && options.color ? options.color : EditManipulator.HandleUtils.adjustForBackgroundColor(ColorDef.white, context.viewport));\r\n const builderVis = context.createGraphicBuilder(GraphicType.WorldDecoration, clipShape ? clipShape.transformFromClip : undefined, (options ? options.id : undefined));\r\n const builderHid = context.createGraphicBuilder(GraphicType.WorldOverlay, clipShape ? clipShape.transformFromClip : undefined);\r\n builderVis.setSymbology(color, ColorDef.black, (options && options.visibleWidth ? options.visibleWidth : 3));\r\n builderHid.setSymbology(color, ColorDef.black, (options && options.hiddenWidth ? options.hiddenWidth : 1), (options && options.hiddenStyle ? options.hiddenStyle : LinePixels.Code2));\r\n\r\n if (undefined !== clipPlanesLoops) {\r\n ViewClipTool.addClipPlanesLoops(builderVis, clipPlanesLoops, true);\r\n ViewClipTool.addClipPlanesLoops(builderHid, clipPlanesLoops, true);\r\n if (options && options.fillClipPlanes) {\r\n const fill = (options.fill ? options.fill : EditManipulator.HandleUtils.adjustForBackgroundColor(ColorDef.from(0, 255, 255, 225), context.viewport));\r\n const builderFill = context.createGraphicBuilder(GraphicType.WorldDecoration);\r\n builderFill.setSymbology(fill, fill, 0);\r\n ViewClipTool.addClipPlanesLoops(builderFill, (options.hasPrimaryPlane ? [clipPlanesLoops[0]] : clipPlanesLoops), false);\r\n context.addDecorationFromBuilder(builderFill);\r\n }\r\n } else if (undefined !== clipShape) {\r\n const clipExtents = ViewClipTool.getClipShapeExtents(clipShape, viewRange);\r\n ViewClipTool.addClipShape(builderVis, clipShape, clipExtents);\r\n ViewClipTool.addClipShape(builderHid, clipShape, clipExtents);\r\n }\r\n\r\n context.addDecorationFromBuilder(builderVis);\r\n context.addDecorationFromBuilder(builderHid);\r\n }\r\n\r\n private static isHilited(vp: Viewport, id?: string): boolean {\r\n return (undefined !== id ? vp.iModel.hilited.elements.has(Id64.getLowerUint32(id), Id64.getUpperUint32(id)) : false);\r\n }\r\n\r\n private static isFlashed(vp: Viewport, id?: string): boolean {\r\n return (undefined !== id ? vp.lastFlashedElementId === id : false);\r\n }\r\n\r\n public static drawClipShape(context: DecorateContext, shape: ClipShape, extents: Range1d, color: ColorDef, weight: number, id?: string): void {\r\n const builder = context.createGraphicBuilder(GraphicType.WorldDecoration, shape.transformFromClip, id); // Use WorldDecoration not WorldOverlay to make sure handles have priority...\r\n builder.setSymbology(color, ColorDef.black, weight);\r\n ViewClipTool.addClipShape(builder, shape, extents);\r\n context.addDecorationFromBuilder(builder);\r\n\r\n // NOTE: We want to display hidden edges when clip decoration isn't hilited (not selected or drawn in dynamics).\r\n // This isn't required and is messy looking when the clip is being drawn hilited.\r\n // If the clip decoration is being flashed, draw using the hilite color to match the pickable world decoration display.\r\n if (!this.isHilited(context.viewport, id)) {\r\n const builderHid = context.createGraphicBuilder(GraphicType.WorldOverlay, shape.transformFromClip);\r\n builderHid.setSymbology(this.isFlashed(context.viewport, id) ? context.viewport.hilite.color : color, ColorDef.black, 1, LinePixels.Code2);\r\n ViewClipTool.addClipShape(builderHid, shape, extents);\r\n context.addDecorationFromBuilder(builderHid);\r\n }\r\n }\r\n\r\n /** @internal */\r\n public static getClipShapePoints(shape: ClipShape, z: number): Point3d[] {\r\n const points: Point3d[] = [];\r\n for (const pt of shape.polygon)\r\n points.push(Point3d.create(pt.x, pt.y, z));\r\n return points;\r\n }\r\n\r\n /** @internal */\r\n public static getClipShapeExtents(shape: ClipShape, viewRange: Range3d): Range1d {\r\n let zLow = shape.zLow;\r\n let zHigh = shape.zHigh;\r\n if (undefined === zLow || undefined === zHigh) {\r\n const zVec = Vector3d.unitZ();\r\n const origin = shape.polygon[0];\r\n const corners = viewRange.corners();\r\n if (undefined !== shape.transformToClip)\r\n shape.transformToClip.multiplyPoint3dArrayInPlace(corners);\r\n for (const corner of corners) {\r\n const delta = Vector3d.createStartEnd(origin, corner);\r\n const projection = delta.dotProduct(zVec);\r\n if (undefined === shape.zLow && (undefined === zLow || projection < zLow))\r\n zLow = projection;\r\n if (undefined === shape.zHigh && (undefined === zHigh || projection > zHigh))\r\n zHigh = projection;\r\n }\r\n }\r\n\r\n if (undefined === zLow || undefined === zHigh)\r\n return Range1d.createNull();\r\n return Range1d.createXX(zLow, zHigh);\r\n }\r\n\r\n /** @internal */\r\n public static isSingleClipShape(clip: ClipVector): ClipShape | undefined {\r\n if (1 !== clip.clips.length)\r\n return undefined;\r\n const prim = clip.clips[0];\r\n if (!(prim instanceof ClipShape))\r\n return undefined;\r\n if (!prim.isValidPolygon)\r\n return undefined;\r\n return prim;\r\n }\r\n\r\n public static drawClipPlanesLoops(context: DecorateContext, loops: GeometryQuery[], color: ColorDef, weight: number, dashed?: boolean, fill?: ColorDef, id?: string): void {\r\n if (loops.length < 1)\r\n return;\r\n\r\n const builderEdge = context.createGraphicBuilder(GraphicType.WorldDecoration, undefined, id); // Use WorldDecoration not WorldOverlay to make sure handles have priority...\r\n builderEdge.setSymbology(color, ColorDef.black, weight, dashed ? LinePixels.Code2 : undefined);\r\n ViewClipTool.addClipPlanesLoops(builderEdge, loops, true);\r\n context.addDecorationFromBuilder(builderEdge);\r\n\r\n // NOTE: We want to display hidden edges when clip decoration isn't hilited (not selected or drawn in dynamics).\r\n // This isn't required and is messy looking when the clip is being drawn hilited.\r\n // If the clip decoration is being flashed, draw using the hilite color to match the pickable world decoration display.\r\n if (!this.isHilited(context.viewport, id)) {\r\n const builderEdgeHid = context.createGraphicBuilder(GraphicType.WorldOverlay);\r\n builderEdgeHid.setSymbology(this.isFlashed(context.viewport, id) ? context.viewport.hilite.color : color, ColorDef.black, 1, LinePixels.Code2);\r\n ViewClipTool.addClipPlanesLoops(builderEdgeHid, loops, true);\r\n context.addDecorationFromBuilder(builderEdgeHid);\r\n }\r\n\r\n if (undefined === fill)\r\n return;\r\n\r\n const builderFace = context.createGraphicBuilder(GraphicType.WorldDecoration, undefined);\r\n builderFace.setSymbology(fill, fill, 0);\r\n ViewClipTool.addClipPlanesLoops(builderFace, loops, false);\r\n context.addDecorationFromBuilder(builderFace);\r\n }\r\n\r\n /** @internal */\r\n public static isSingleConvexClipPlaneSet(clip: ClipVector): ConvexClipPlaneSet | undefined {\r\n if (1 !== clip.clips.length)\r\n return undefined;\r\n const prim = clip.clips[0];\r\n if (prim instanceof ClipShape)\r\n return undefined;\r\n const planeSets = prim.fetchClipPlanesRef();\r\n return (undefined !== planeSets && 1 === planeSets.convexSets.length) ? planeSets.convexSets[0] : undefined;\r\n }\r\n\r\n /** @internal */\r\n public static isSingleClipPlane(clip: ClipVector): ClipPlane | undefined {\r\n const clipPlanes = ViewClipTool.isSingleConvexClipPlaneSet(clip);\r\n if (undefined === clipPlanes || 1 !== clipPlanes.planes.length)\r\n return undefined;\r\n return clipPlanes.planes[0];\r\n }\r\n\r\n public static areClipsEqual(clipA: ClipVector, clipB: ClipVector): boolean {\r\n if (clipA === clipB)\r\n return true;\r\n if (clipA.clips.length !== clipB.clips.length)\r\n return false;\r\n for (let iPrim = 0; iPrim < clipA.clips.length; iPrim++) {\r\n const primA = clipA.clips[iPrim];\r\n const primB = clipB.clips[iPrim];\r\n const planesA = primA.fetchClipPlanesRef();\r\n const planesB = primB.fetchClipPlanesRef();\r\n if (undefined !== planesA && undefined !== planesB) {\r\n if (planesA.convexSets.length !== planesB.convexSets.length)\r\n return false;\r\n for (let iPlane = 0; iPlane < planesA.convexSets.length; iPlane++) {\r\n const planeSetA = planesA.convexSets[iPlane];\r\n const planeSetB = planesB.convexSets[iPlane];\r\n if (planeSetA.planes.length !== planeSetB.planes.length)\r\n return false;\r\n for (let iClipPlane = 0; iClipPlane < planeSetA.planes.length; iClipPlane++) {\r\n const planeA = planeSetA.planes[iClipPlane];\r\n const planeB = planeSetB.planes[iClipPlane];\r\n if (!planeA.isAlmostEqual(planeB))\r\n return false;\r\n }\r\n }\r\n } else if (undefined === planesA && undefined === planesB) {\r\n continue;\r\n } else {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n public static hasClip(viewport: Viewport) {\r\n return (undefined !== viewport.view.getViewClip());\r\n }\r\n}\r\n\r\n/** A tool to remove a clip volume for a view\r\n * @public @extensions\r\n */\r\nexport class ViewClipClearTool extends ViewClipTool {\r\n public static override toolId = \"ViewClip.Clear\";\r\n public static override iconSpec = \"icon-section-tool\";\r\n /** @internal */\r\n public override isCompatibleViewport(vp: Viewport | undefined, isSelectedViewChange: boolean): boolean { return (super.isCompatibleViewport(vp, isSelectedViewChange) && undefined !== vp && ViewClipTool.hasClip(vp)); }\r\n /** @internal */\r\n protected override showPrompt(): void {\r\n const mainInstruction = ToolAssistance.createInstruction(this.iconSpec, CoreTools.translate(\"ViewClip.Clear.Prompts.FirstPoint\"));\r\n IModelApp.notifications.setToolAssistance(ToolAssistance.createInstructions(mainInstruction));\r\n }\r\n\r\n protected async doClipClear(viewport: Viewport): Promise<boolean> {\r\n if (!ViewClipTool.doClipClear(viewport))\r\n return false;\r\n if (undefined !== this._clipEventHandler)\r\n this._clipEventHandler.onClearClip(viewport);\r\n await this.onReinitialize();\r\n return true;\r\n }\r\n\r\n /** @internal */\r\n public override async onPostInstall(): Promise<void> {\r\n await super.onPostInstall();\r\n if (undefined !== this.targetView)\r\n await this.doClipClear(this.targetView);\r\n }\r\n\r\n /** @internal */\r\n public override async onDataButtonDown(_ev: BeButtonEvent): Promise<EventHandled> {\r\n if (undefined === this.targetView)\r\n return EventHandled.No;\r\n return await this.doClipClear(this.targetView) ? EventHandled.Yes : EventHandled.No;\r\n }\r\n}\r\n\r\n/** A tool to define a clip volume for a view by specifying a plane\r\n * @public\r\n */\r\nexport class ViewClipByPlaneTool extends ViewClipTool {\r\n public static override toolId = \"ViewClip.ByPlane\";\r\n public static override iconSpec = \"icon-section-plane\";\r\n /** @internal */\r\n private _orientationValue: DialogItemValue = { value: ContextRotationId.Face };\r\n\r\n constructor(clipEventHandler?: ViewClipEventHandler, protected _clearExistingPlanes: boolean = false) { super(clipEventHandler); }\r\n\r\n /** @internal */\r\n public get orientation(): ContextRotationId { return this._orientationValue.value as ContextRotationId; }\r\n public set orientation(option: ContextRotationId) { this._orientationValue.value = option; }\r\n\r\n /** @internal */\r\n public override supplyToolSettingsProperties(): DialogItem[] | undefined {\r\n const initialValue = IModelApp.toolAdmin.toolSettingsState.getInitialToolSettingValue(this.toolId, ViewClipTool._orientationName);\r\n initialValue && (this._orientationValue = initialValue);\r\n const toolSettings = new Array<DialogItem>();\r\n const settingsItem: DialogItem = { value: this._orientationValue, property: ViewClipTool._getEnumAsOrientationDescription(), editorPosition: { rowPriority: 0, columnIndex: 2 } };\r\n toolSettings.push(settingsItem);\r\n return toolSettings;\r\n }\r\n\r\n /** @internal */\r\n public override async applyToolSettingPropertyChange(updatedValue: DialogPropertySyncItem): Promise<boolean> {\r\n if (updatedValue.propertyName === ViewClipTool._orientationName) {\r\n this._orientationValue = updatedValue.value;\r\n if (this._orientationValue) {\r\n IModelApp.toolAdmin.toolSettingsState.saveToolSettingProperty(this.toolId, { propertyName: ViewClipTool._orientationName, value: this._orientationValue });\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n /** @internal */\r\n protected override showPrompt(): void {\r\n const mainInstruction = ToolAssistance.createInstruction(this.iconSpec, CoreTools.translate(\"ViewClip.ByPlane.Prompts.FirstPoint\"));\r\n const mouseInstructions: ToolAssistanceInstruction[] = [];\r\n const touchInstructions: ToolAssistanceInstruction[] = [];\r\n\r\n if (!ToolAssistance.createTouchCursorInstructions(touchInstructions))\r\n touchInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.OneTouchTap, CoreTools.translate(\"ElementSet.Inputs.AcceptPoint\"), false, ToolAssistanceInputMethod.Touch));\r\n mouseInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.LeftClick, CoreTools.translate(\"ElementSet.Inputs.AcceptPoint\"), false, ToolAssistanceInputMethod.Mouse));\r\n\r\n touchInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.TwoTouchTap, CoreTools.translate(\"ElementSet.Inputs.Exit\"), false, ToolAssistanceInputMethod.Touch));\r\n mouseInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.RightClick, CoreTools.translate(\"ElementSet.Inputs.Exit\"), false, ToolAssistanceInputMethod.Mouse));\r\n\r\n const sections: ToolAssistanceSection[] = [];\r\n sections.push(ToolAssistance.createSection(mouseInstructions, ToolAssistance.inputsLabel));\r\n sections.push(ToolAssistance.createSection(touchInstructions, ToolAssistance.inputsLabel));\r\n\r\n const instructions = ToolAssistance.createInstructions(mainInstruction, sections);\r\n IModelApp.notifications.setToolAssistance(instructions);\r\n }\r\n\r\n /** @internal */\r\n protected override setupAndPromptForNextAction(): void {\r\n IModelApp.accuSnap.enableSnap(true);\r\n super.setupAndPromptForNextAction();\r\n }\r\n\r\n /** @internal */\r\n public override async onDataButtonDown(ev: BeButtonEvent): Promise<EventHandled> {\r\n if (undefined === this.targetView)\r\n return EventHandled.No;\r\n const normal = ViewClipTool.getPlaneInwardNormal(this.orientation, this.targetView);\r\n if (undefined === normal)\r\n return EventHandled.No;\r\n ViewClipTool.enableClipVolume(this.targetView);\r\n if (!ViewClipTool.doClipToPlane(this.targetView, ev.point, normal, this._clearExistingPlanes))\r\n return EventHandled.No;\r\n if (undefined !== this._clipEventHandler)\r\n this._clipEventHandler.onNewClipPlane(this.targetView);\r\n await this.onReinitialize();\r\n return EventHandled.Yes;\r\n }\r\n}\r\n\r\n/** A tool to define a clip volume for a view by specifying a shape\r\n * @public\r\n */\r\nexport class ViewClipByShapeTool extends ViewClipTool {\r\n public static override toolId = \"ViewClip.ByShape\";\r\n public static override iconSpec = \"icon-section-shape\";\r\n /** @internal */\r\n private _orientationValue: DialogItemValue = { value: ContextRotationId.Top };\r\n /** @internal */\r\n protected readonly _points: Point3d[] = [];\r\n /** @internal */\r\n protected _matrix?: Matrix3d;\r\n /** @internal */\r\n protected _zLow?: number;\r\n /** @internal */\r\n protected _zHigh?: number;\r\n\r\n /** @internal */\r\n public get orientation(): ContextRotationId { return this._orientationValue.value as ContextRotationId; }\r\n public set orientation(option: ContextRotationId) { this._orientationValue.value = option; }\r\n\r\n /** @internal */\r\n public override supplyToolSettingsProperties(): DialogItem[] | undefined {\r\n const initialValue = IModelApp.toolAdmin.toolSettingsState.getInitialToolSettingValue(this.toolId, ViewClipTool._orientationName);\r\n initialValue && (this._orientationValue = initialValue);\r\n const toolSettings = new Array<DialogItem>();\r\n toolSettings.push({ value: this._orientationValue, property: ViewClipTool._getEnumAsOrientationDescription(), editorPosition: { rowPriority: 0, columnIndex: 2 } });\r\n return toolSettings;\r\n }\r\n\r\n /** @internal */\r\n public override async applyToolSettingPropertyChange(updatedValue: DialogPropertySyncItem): Promise<boolean> {\r\n if (updatedValue.propertyName === ViewClipTool._orientationName) {\r\n this._orientationValue = updatedValue.value;\r\n if (!this._orientationValue)\r\n return false;\r\n this._points.length = 0;\r\n this._matrix = undefined;\r\n AccuDrawHintBuilder.deactivate();\r\n this.setupAndPromptForNextAction();\r\n IModelApp.toolAdmin.toolSettingsState.saveToolSettingProperty(this.toolId, { propertyName: ViewClipTool._orientationName, value: this._orientationValue });\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /** @internal */\r\n protected override showPrompt(): void {\r\n let mainMsg = \"ViewClip.ByShape.Prompts.\";\r\n switch (this._points.length) {\r\n case 0:\r\n mainMsg += \"FirstPoint\";\r\n break;\r\n case 1:\r\n mainMsg += \"SecondPoint\";\r\n break;\r\n case 2:\r\n mainMsg += \"ThirdPoint\";\r\n break;\r\n default:\r\n mainMsg += \"NextPoint\";\r\n break;\r\n }\r\n const mainInstruction = ToolAssistance.createInstruction(this.iconSpec, CoreTools.translate(mainMsg));\r\n const mouseInstructions: ToolAssistanceInstruction[] = [];\r\n const touchInstructions: ToolAssistanceInstruction[] = [];\r\n\r\n if (!ToolAssistance.createTouchCursorInstructions(touchInstructions))\r\n touchInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.OneTouchTap, CoreTools.translate(\"ElementSet.Inputs.AcceptPoint\"), false, ToolAssistanceInputMethod.Touch));\r\n mouseInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.LeftClick, CoreTools.translate(\"ElementSet.Inputs.AcceptPoint\"), false, ToolAssistanceInputMethod.Mouse));\r\n\r\n touchInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.TwoTouchTap, CoreTools.translate(\"ElementSet.Inputs.Exit\"), false, ToolAssistanceInputMethod.Touch));\r\n mouseInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.RightClick, CoreTools.translate(\"ElementSet.Inputs.Exit\"), false, ToolAssistanceInputMethod.Mouse));\r\n\r\n if (this._points.length > 1)\r\n mouseInstructions.push(ToolAssistance.createModifierKeyInstruction(ToolAssistance.ctrlKey, ToolAssistanceImage.LeftClick, CoreTools.translate(\"ElementSet.Inputs.AdditionalPoint\"), false, ToolAssistanceInputMethod.Mouse));\r\n if (0 !== this._points.length)\r\n mouseInstructions.push(ToolAssistance.createKeyboardInstruction(ToolAssistance.createKeyboardInfo([ToolAssistance.ctrlKey, \"Z\"]), CoreTools.translate(\"ElementSet.Inputs.UndoLastPoint\"), false, ToolAssistanceInputMethod.Mouse));\r\n\r\n const sections: ToolAssistanceSection[] = [];\r\n sections.push(ToolAssistance.createSection(mouseInstructions, ToolAssistance.inputsLabel));\r\n sections.push(ToolAssistance.createSection(touchInstructions, ToolAssistance.inputsLabel));\r\n\r\n const instructions = ToolAssistance.createInstructions(mainInstruction, sections);\r\n IModelApp.notifications.setToolAssistance(instructions);\r\n }\r\n\r\n /** @internal */\r\n protected override setupAndPromptForNextAction(): void {\r\n IModelApp.accuSnap.enableSnap(true);\r\n super.setupAndPromptForNextAction();\r\n if (0 === this._points.length)\r\n return;\r\n\r\n if (undefined === this._matrix)\r\n return;\r\n\r\n const hints = new AccuDrawHintBuilder();\r\n hints.setOrigin(this._points[this._points.length - 1]);\r\n if (1 === this._points.length) {\r\n hints.setMatrix(this._matrix);\r\n hints.setModeRectangular();\r\n } else if (this._points.length > 1 && !(this._points[this._points.length - 1].isAlmostEqual(this._points[this._points.length - 2]))) {\r\n const xVec = Vector3d.createStartEnd(this._points[this._points.length - 2], this._points[this._points.length - 1]);\r\n const zVec = this._matrix.getColumn(2);\r\n const matrix = Matrix3d.createRigidFromColumns(xVec, zVec, AxisOrder.XZY);\r\n if (undefined !== matrix)\r\n hints.setMatrix(matrix); // Rotate AccuDraw x axis to last segment preserving current up vector...\r\n }\r\n hints.setLockZ = true;\r\n hints.sendHints();\r\n }\r\n\r\n protected getClipPoints(ev: BeButtonEvent): Point3d[] {\r\n const points: Point3d[] = [];\r\n if (undefined === this.targetView || this._points.length < 1)\r\n return points;\r\n for (const pt of this._points)\r\n points.push(pt.clone());\r\n\r\n if (undefined === this._matrix)\r\n return points;\r\n\r\n const vp = ev.viewport;\r\n if (undefined === vp)\r\n return points;\r\n\r\n const normal = this._matrix.getColumn(2);\r\n let currentPt = AccuDrawHintBuilder.projectPointToPlaneInView(ev.point, points[0], normal, vp, true);\r\n if (undefined === currentPt)\r\n currentPt = ev.point.clone();\r\n if (2 === points.length && !ev.isControlKey) {\r\n const xDir = Vector3d.createStartEnd(points[0], points[1]);\r\n const xLen = xDir.magnitude();\r\n xDir.normalizeInPlace();\r\n const yDir = xDir.crossProduct(normal);\r\n yDir.normalizeInPlace();\r\n const cornerPt = AccuDrawHintBuilder.projectPointToLineInView(currentPt, points[1], yDir, vp, true);\r\n if (undefined !== cornerPt) {\r\n points.push(cornerPt);\r\n cornerPt.plusScaled(xDir, -xLen, currentPt);\r\n }\r\n }\r\n points.push(currentPt);\r\n if (points.length > 2)\r\n points.push(points[0].clone());\r\n\r\n return points;\r\n }\r\n\r\n /** @internal */\r\n public override isValidLocation(ev: BeButtonEvent, isButtonEvent: boolean): boolean {\r\n return (this._points.length > 0 ? true : super.isValidLocation(ev, isButtonEvent));\r\n }\r\n\r\n /** @internal */\r\n public override decorate(context: DecorateContext): void {\r\n if (context.viewport !== this.targetView)\r\n return;\r\n\r\n const ev = new BeButtonEvent();\r\n IModelApp.toolAdmin.fillEventFromCursorLocation(ev);\r\n if (undefined === ev.viewport)\r\n return;\r\n const points = this.getClipPoints(ev);\r\n if (points.length < 2)\r\n return;\r\n\r\n const builderAccVis = context.createGraphicBuilder(GraphicType.WorldDecoration);\r\n const builderAccHid = context.createGraphicBuilder(GraphicType.WorldOverlay);\r\n const colorAccVis = EditManipulator.HandleUtils.adjustForBackgroundColor(ColorDef.white, context.viewport);\r\n const colorAccHid = colorAccVis.withAlpha(100);\r\n const fillAccVis = context.viewport.hilite.color.withAlpha(25);\r\n\r\n builderAccVis.setSymbology(colorAccVis, fillAccVis, 3);\r\n builderAccHid.setSymbology(colorAccHid, fillAccVis, 1, LinePixels.Code2);\r\n\r\n if (points.length > 2)\r\n builderAccHid.addShape(points);\r\n\r\n builderAccVis.addLineString(points);\r\n builderAccHid.addLineString(points);\r\n\r\n context.addDecorationFromBuilder(builderAccVis);\r\n context.addDecorationFromBuilder(builderAccHid);\r\n }\r\n\r\n /** @internal */\r\n public override async onMouseMotion(ev: BeButtonEvent): Promise<void> {\r\n if (this._points.length > 0 && undefined !== ev.viewport)\r\n ev.viewport.invalidateDecorations();\r\n }\r\n\r\n /** @internal */\r\n public override async onDataButtonDown(ev: BeButtonEvent): Promise<EventHandled> {\r\n if (undefined === this.targetView)\r\n return EventHandled.No;\r\n\r\n if (this._points.length > 1 && !ev.isControlKey) {\r\n const points = this.getClipPoints(ev);\r\n if (points.length < 3)\r\n return EventHandled.No;\r\n\r\n const transform = Transform.createOriginAndMatrix(points[0], this._matrix);\r\n transform.multiplyInversePoint3dArrayInPlace(points);\r\n ViewClipTool.enableClipVolume(this.targetView);\r\n if (!ViewClipTool.doClipToShape(this.targetView, points, transform, this._zLow, this._zHigh))\r\n return EventHandled.No;\r\n if (undefined !== this._clipEventHandler)\r\n this._clipEventHandler.onNewClip(this.targetView);\r\n await this.onReinitialize();\r\n return EventHandled.Yes;\r\n }\r\n\r\n if (undefined === this._matrix && undefined === (this._matrix = AccuDrawHintBuilder.getContextRotation(this.orientation, this.targetView)))\r\n return EventHandled.No;\r\n\r\n const currPt = ev.point.clone();\r\n if (this._points.length > 0) {\r\n const vp = ev.viewport;\r\n const planePt = (vp ? AccuDrawHintBuilder.projectPointToPlaneInView(currPt, this._points[0], this._matrix.getColumn(2), vp, true) : undefined);\r\n if (undefined !== planePt)\r\n currPt.setFrom(planePt);\r\n }\r\n\r\n this._points.push(currPt);\r\n this.setupAndPromptForNextAction();\r\n return EventHandled.No;\r\n }\r\n\r\n /** @internal */\r\n public override async onUndoPreviousStep(): Promise<boolean> {\r\n if (0 === this._points.length)\r\n return false;\r\n\r\n this._points.pop();\r\n this.setupAndPromptForNextAction();\r\n return true;\r\n }\r\n}\r\n\r\n/** A tool to define a clip volume for a view by specifying range corners\r\n * @public\r\n */\r\nexport class ViewClipByRangeTool extends ViewClipTool {\r\n public static override toolId = \"ViewClip.ByRange\";\r\n public static override iconSpec = \"icon-section-range\";\r\n /** @internal */\r\n protected _corner?: Point3d;\r\n\r\n /** @internal */\r\n protected override showPrompt(): void {\r\n const mainInstruction = ToolAssistance.createInstruction(this.iconSpec, CoreTools.translate(undefined === this._corner ? \"ViewClip.ByRange.Prompts.FirstPoint\" : \"ViewClip.ByRange.Prompts.NextPoint\"));\r\n const mouseInstructions: ToolAssistanceInstruction[] = [];\r\n const touchInstructions: ToolAssistanceInstruction[] = [];\r\n\r\n if (!ToolAssistance.createTouchCursorInstructions(touchInstructions))\r\n touchInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.OneTouchTap, CoreTools.translate(\"ElementSet.Inputs.AcceptPoint\"), false, ToolAssistanceInputMethod.Touch));\r\n mouseInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.LeftClick, CoreTools.translate(\"ElementSet.Inputs.AcceptPoint\"), false, ToolAssistanceInputMethod.Mouse));\r\n touchInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.TwoTouchTap, CoreTools.translate(\"ElementSet.Inputs.Exit\"), false, ToolAssistanceInputMethod.Touch));\r\n mouseInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.RightClick, CoreTools.translate(\"ElementSet.Inputs.Exit\"), false, ToolAssistanceInputMethod.Mouse));\r\n if (undefined !== this._corner)\r\n mouseInstructions.push(ToolAssistance.createKeyboardInstruction(ToolAssistance.createKeyboardInfo([ToolAssistance.ctrlKey, \"Z\"]), CoreTools.translate(\"ElementSet.Inputs.UndoLastPoint\"), false, ToolAssistanceInputMethod.Mouse));\r\n\r\n const sections: ToolAssistanceSection[] = [];\r\n sections.push(ToolAssistance.createSection(mouseInstructions, ToolAssistance.inputsLabel));\r\n sections.push(ToolAssistance.createSection(touchInstructions, ToolAssistance.inputsLabel));\r\n\r\n const instructions = ToolAssistance.createInstructions(mainInstruction, sections);\r\n IModelApp.notifications.setToolAssistance(instructions);\r\n }\r\n\r\n /** @internal */\r\n protected override setupAndPromptForNextAction(): void {\r\n IModelApp.accuSnap.enableSnap(true);\r\n super.setupAndPromptForNextAction();\r\n }\r\n\r\n protected getClipRange(range: Range3d, transform: Transform, ev: BeButtonEvent): boolean {\r\n if (undefined === this.targetView || undefined === this._corner)\r\n return false;\r\n // Creating clip aligned with ACS when ACS context lock is enabled...\r\n const matrix = AccuDrawHintBuilder.getContextRotation(ContextRotationId.Top, this.targetView);\r\n Transform.createOriginAndMatrix(this._corner, matrix, transform);\r\n const pt1 = transform.multiplyInversePoint3d(this._corner);\r\n const pt2 = transform.multiplyInversePoint3d(ev.point);\r\n if (undefined === pt1 || undefined === pt2)\r\n return false;\r\n range.setFrom(Range3d.create(pt1, pt2));\r\n return true;\r\n }\r\n\r\n /** @internal */\r\n public override decorate(context: DecorateContext): void {\r\n if (context.viewport !== this.targetView || undefined === this._corner)\r\n return;\r\n\r\n const ev = new BeButtonEvent();\r\n IModelApp.toolAdmin.fillEventFromCursorLocation(ev);\r\n if (undefined === ev.viewport)\r\n return;\r\n const range = Range3d.create();\r\n const transform = Transform.createIdentity();\r\n if (!this.getClipRange(range, transform, ev))\r\n return;\r\n\r\n const builderAccVis = context.createGraphicBuilder(GraphicType.WorldDecoration, transform);\r\n const builderAccHid = context.createGraphicBuilder(GraphicType.WorldOverlay, transform);\r\n const colorAccVis = EditManipulator.HandleUtils.adjustForBackgroundColor(ColorDef.white, context.viewport);\r\n const colorAccHid = colorAccVis.withAlpha(100);\r\n\r\n builderAccVis.setSymbology(colorAccVis, ColorDef.black, 3);\r\n builderAccHid.setSymbology(colorAccHid, ColorDef.black, 1, LinePixels.Code2);\r\n\r\n builderAccVis.addRangeBox(range);\r\n builderAccHid.addRangeBox(range);\r\n\r\n context.addDecorationFromBuilder(builderAccVis);\r\n context.addDecorationFromBuilder(builderAccHid);\r\n }\r\n\r\n /** @internal */\r\n public override async onMouseMotion(ev: BeButtonEvent): Promise<void> {\r\n if (undefined !== this._corner && undefined !== ev.viewport)\r\n ev.viewport.invalidateDecorations();\r\n }\r\n\r\n /** @internal */\r\n public override async onDataButtonDown(ev: BeButtonEvent): Promise<EventHandled> {\r\n if (undefined === this.targetView)\r\n return EventHandled.No;\r\n\r\n if (undefined !== this._corner) {\r\n const range = Range3d.create();\r\n const transform = Transform.createIdentity();\r\n if (!this.getClipRange(range, transform, ev))\r\n return EventHandled.No;\r\n ViewClipTool.enableClipVolume(this.targetView);\r\n if (!ViewClipTool.doClipToRange(this.targetView, range, transform))\r\n return EventHandled.No;\r\n if (undefined !== this._clipEventHandler)\r\n this._clipEventHandler.onNewClip(this.targetView);\r\n await this.onReinitialize();\r\n return EventHandled.Yes;\r\n }\r\n\r\n this._corner = ev.point.clone();\r\n this.setupAndPromptForNextAction();\r\n return EventHandled.No;\r\n }\r\n\r\n /** @internal */\r\n public override async onUndoPreviousStep(): Promise<boolean> {\r\n if (undefined === this._corner)\r\n return false;\r\n this._corner = undefined;\r\n this.setupAndPromptForNextAction();\r\n return true;\r\n }\r\n}\r\n\r\n/** A tool to define a clip volume for a view using the element aligned box or axis aligned box.\r\n * @public\r\n */\r\nexport class ViewClipByElementTool extends ViewClipTool {\r\n public static override toolId = \"ViewClip.ByElement\";\r\n public static override iconSpec = \"icon-section-element\";\r\n\r\n constructor(clipEventHandler?: ViewClipEventHandler, protected _alwaysUseRange: boolean = false) { super(clipEventHandler); }\r\n\r\n /** @internal */\r\n protected override showPrompt(): void {\r\n const mainInstruction = ToolAssistance.createInstruction(this.iconSpec, CoreTools.translate(\"ViewClip.ByElement.Prompts.FirstPoint\"));\r\n const mouseInstructions: ToolAssistanceInstruction[] = [];\r\n const touchInstructions: ToolAssistanceInstruction[] = [];\r\n\r\n touchInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.OneTouchTap, CoreTools.translate(\"ElementSet.Inputs.AcceptElement\"), false, ToolAssistanceInputMethod.Touch));\r\n mouseInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.LeftClick, CoreTools.translate(\"ElementSet.Inputs.AcceptElement\"), false, ToolAssistanceInputMethod.Mouse));\r\n\r\n touchInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.TwoTouchTap, CoreTools.translate(\"ElementSet.Inputs.Exit\"), false, ToolAssistanceInputMethod.Touch));\r\n mouseInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.RightClick, CoreTools.translate(\"ElementSet.Inputs.Exit\"), false, ToolAssistanceInputMethod.Mouse));\r\n\r\n const sections: ToolAssistanceSection[] = [];\r\n sections.push(ToolAssistance.createSection(mouseInstructions, ToolAssistance.inputsLabel));\r\n sections.push(ToolAssistance.createSection(touchInstructions, ToolAssistance.inputsLabel));\r\n\r\n const instructions = ToolAssistance.createInstructions(mainInstruction, sections);\r\n IModelApp.notifications.setToolAssistance(instructions);\r\n }\r\n\r\n /** @internal */\r\n public override async onPostInstall() {\r\n await super.onPostInstall();\r\n if (undefined !== this.targetView && this.targetView.iModel.selectionSet.isActive) {\r\n let useSelection = true;\r\n this.targetView.iModel.selectionSet.elements.forEach((val) => {\r\n if (Id64.isInvalid(val) || Id64.isTransient(val))\r\n useSelection = false;\r\n });\r\n\r\n if (useSelection) {\r\n await this.doClipToSelectedElements(this.targetView);\r\n return;\r\n }\r\n }\r\n this.initLocateElements(true, false, \"default\", CoordinateLockOverrides.All);\r\n }\r\n\r\n /** @internal */\r\n public async doClipToSelectedElements(viewport: Viewport): Promise<boolean> {\r\n if (await this.doClipToElements(viewport, viewport.iModel.selectionSet.elements, this._alwaysUseRange))\r\n return true;\r\n await this.exitTool();\r\n return false;\r\n }\r\n\r\n protected async doClipToElements(viewport: Viewport, ids: Id64Arg, alwaysUseRange: boolean = false, modelId?: Id64String): Promise<boolean> {\r\n try {\r\n const placements = await viewport.iModel.elements.getPlacements(ids, { type: viewport.view.is3d() ? \"3d\" : \"2d\" });\r\n if (0 === placements.length)\r\n return false;\r\n\r\n const displayTransform = modelId && 1 === placements.length ? viewport.view.computeDisplayTransform({ modelId, elementId: placements[0].elementId }) : undefined;\r\n const range = new Range3d();\r\n const transform = Transform.createIdentity();\r\n if (!alwaysUseRange && 1 === placements.length) {\r\n const placement = placements[0];\r\n range.setFrom(placement instanceof Placement2d ? Range3d.createRange2d(placement.bbox, 0) : placement.bbox);\r\n transform.setFrom(placement.transform); // Use ElementAlignedBox for single selection...\r\n displayTransform?.multiplyTransformTransform(transform, transform);\r\n } else {\r\n for (const placement of placements)\r\n range.extendRange(placement.calculateRange());\r\n\r\n if (displayTransform)\r\n transform.setFrom(displayTransform);\r\n }\r\n\r\n if (range.isNull)\r\n return false;\r\n\r\n range.scaleAboutCenterInPlace(1.001); // pad range slightly...\r\n if (range.isAlmostZeroX || range.isAlmostZeroY) {\r\n if (range.isAlmostZeroZ)\r\n return false;\r\n\r\n // Invalid XY range for clip, see if XZ or YZ can be used instead...\r\n const canUseXZ = !range.isAlmostZeroX;\r\n const canUseYZ = !canUseXZ && !range.isAlmostZeroY;\r\n if (!canUseXZ && !canUseYZ)\r\n return false;\r\n\r\n const zDir = canUseXZ ? Vector3d.unitY() : Vector3d.unitX();\r\n const indices = Range3d.faceCornerIndices(canUseXZ ? 3 : 1);\r\n const corners = range.corners();\r\n const points: Point3d[] = [];\r\n for (const index of indices)\r\n points.push(corners[index]);\r\n\r\n transform.multiplyPoint3dArrayInPlace(points);\r\n transform.multiplyVector(zDir, zDir);\r\n transform.setFrom(Transform.createOriginAndMatrix(points[0], Matrix3d.createRigidHeadsUp(zDir)));\r\n transform.multiplyInversePoint3dArrayInPlace(points);\r\n ViewClipTool.enableClipVolume(viewport);\r\n if (!ViewClipTool.doClipToShape(viewport, points, transform))\r\n return false;\r\n\r\n if (undefined !== this._clipEventHandler)\r\n this._clipEventHandler.onNewClip(viewport);\r\n\r\n await this.onReinitialize();\r\n return true;\r\n }\r\n ViewClipTool.enableClipVolume(viewport);\r\n if (!ViewClipTool.doClipToRange(viewport, range, transform))\r\n return false;\r\n\r\n if (undefined !== this._clipEventHandler)\r\n this._clipEventHandler.onNewClip(viewport);\r\n\r\n await this.onReinitialize();\r\n return true;\r\n } catch {\r\n return false;\r\n }\r\n }\r\n\r\n /** @internal */\r\n public override async onDataButtonDown(ev: BeButtonEvent): Promise<EventHandled> {\r\n if (undefined === this.targetView)\r\n return EventHandled.No;\r\n const hit = await IModelApp.locateManager.doLocate(new LocateResponse(), true, ev.point, ev.viewport, ev.inputSource);\r\n if (undefined === hit || !hit.isElementHit)\r\n return EventHandled.No;\r\n return await this.doClipToElements(this.targetView, hit.sourceId, this._alwaysUseRange, hit.modelId) ? EventHandled.Yes : EventHandled.No;\r\n }\r\n}\r\n\r\n/** @internal Interactive tool base class to modify a view's clip */\r\nexport abstract class ViewClipModifyTool extends EditManipulator.HandleTool {\r\n protected _anchorIndex: number;\r\n protected _ids: string[];\r\n protected _controls: ViewClipControlArrow[];\r\n protected _clipView: Viewport;\r\n protected _clip: ClipVector;\r\n protected _viewRange: Range3d;\r\n protected _restoreClip = true;\r\n protected _currentDistance: number = 0.0;\r\n private readonly _clipStyle: ClipStyle;\r\n\r\n public constructor(manipulator: EditManipulator.HandleProvider, clip: ClipVector, vp: Viewport, hitId: string, ids: string[], controls: ViewClipControlArrow[]) {\r\n super(manipulator);\r\n this._anchorIndex = ids.indexOf(hitId);\r\n this._ids = ids;\r\n this._controls = controls;\r\n this._clipView = vp;\r\n this._clip = clip;\r\n this._viewRange = vp.computeViewRange();\r\n\r\n // Don't request section-cut graphics while the user is modifying the clip. We'll restore this when the tool exits.\r\n this._clipStyle = vp.clipStyle;\r\n if (this._clipStyle.produceCutGeometry) {\r\n vp.clipStyle = ClipStyle.fromJSON({\r\n ...this._clipStyle.toJSON(),\r\n produceCutGeometry: false,\r\n });\r\n }\r\n }\r\n\r\n protected override get wantAccuSnap(): boolean { return false; }\r\n\r\n protected override init(): void {\r\n super.init();\r\n AccuDrawHintBuilder.deactivate();\r\n }\r\n\r\n protected abstract updateViewClip(ev: BeButtonEvent, isAccept: boolean): boolean;\r\n protected abstract drawViewClip(context: DecorateContext): void;\r\n\r\n protected getOffsetValue(ev: BeButtonEvent, transformFromClip?: Transform): number | undefined {\r\n if (-1 === this._anchorIndex || undefined === ev.viewport || ev.viewport !== this._clipView)\r\n return undefined;\r\n\r\n // NOTE: Use AccuDraw z instead of view z if AccuDraw is explicitly enabled...\r\n const anchorRay = ViewClipTool.getClipRayTransformed(this._controls[this._anchorIndex].origin, this._controls[this._anchorIndex].direction, transformFromClip);\r\n const projectedPt = AccuDrawHintBuilder.projectPointToLineInView(ev.point, anchorRay.origin, anchorRay.direction, ev.viewport, true);\r\n if (undefined === projectedPt)\r\n return undefined;\r\n\r\n const offsetVec = Vector3d.createStartEnd(anchorRay.origin, projectedPt);\r\n let offset = offsetVec.normalizeWithLength(offsetVec).mag;\r\n if (offset < Geometry.smallMetricDistance)\r\n return undefined;\r\n if (offsetVec.dotProduct(anchorRay.direction) < 0.0)\r\n offset *= -1.0;\r\n\r\n this._currentDistance = offset;\r\n return offset;\r\n }\r\n\r\n protected drawAnchorOffset(context: DecorateContext, color: ColorDef, weight: number, transformFromClip?: Transform): void {\r\n if (-1 === this._anchorIndex || Math.abs(this._currentDistance) < Geometry.smallMetricDistance)\r\n return;\r\n\r\n const anchorRay = ViewClipTool.getClipRayTransformed(this._controls[this._anchorIndex].origin, this._controls[this._anchorIndex].direction, transformFromClip);\r\n anchorRay.direction.scaleToLength(this._currentDistance, anchorRay.direction);\r\n const pt1 = anchorRay.fractionToPoint(0.0);\r\n const pt2 = anchorRay.fractionToPoint(1.0);\r\n const builder = context.createGraphicBuilder(GraphicType.ViewOverlay);\r\n\r\n context.viewport.worldToView(pt1, pt1);\r\n pt1.z = 0.0;\r\n context.viewport.worldToView(pt2, pt2);\r\n pt2.z = 0.0;\r\n\r\n builder.setSymbology(color, ColorDef.black, weight, LinePixels.Code5);\r\n builder.addLineString([pt1, pt2]);\r\n builder.setSymbology(color, ColorDef.black, weight + 7);\r\n builder.addPointString([pt1, pt2]);\r\n\r\n context.addDecorationFromBuilder(builder);\r\n }\r\n\r\n public override decorate(context: DecorateContext): void {\r\n if (-1 === this._anchorIndex || context.viewport !== this._clipView)\r\n return;\r\n this.drawViewClip(context);\r\n }\r\n\r\n public override async onMouseMotion(ev: BeButtonEvent): Promise<void> {\r\n if (!this.updateViewClip(ev, false))\r\n return;\r\n this._clipView.invalidateDecorations();\r\n }\r\n\r\n protected accept(ev: BeButtonEvent): boolean {\r\n if (!this.updateViewClip(ev, true))\r\n return false;\r\n this._restoreClip = false;\r\n return true;\r\n }\r\n\r\n public override async onCleanup() {\r\n if (this._restoreClip && ViewClipTool.hasClip(this._clipView))\r\n ViewClipTool.setViewClip(this._clipView, this._clip);\r\n\r\n this._clipView.clipStyle = this._clipStyle;\r\n }\r\n}\r\n\r\n/** @internal Interactive tool to modify a view's clip defined by a ClipShape */\r\nexport class ViewClipShapeModifyTool extends ViewClipModifyTool {\r\n protected updateViewClip(ev: BeButtonEvent, _isAccept: boolean): boolean {\r\n const clipShape = ViewClipTool.isSingleClipShape(this._clip);\r\n if (undefined === clipShape)\r\n return false;\r\n\r\n const offset = this.getOffsetValue(ev, clipShape.transformFromClip);\r\n if (undefined === offset)\r\n return false;\r\n\r\n const offsetAll = ev.isShiftKey;\r\n const localOffset = ViewClipTool.getOffsetValueTransformed(offset, clipShape.transformToClip);\r\n const shapePts = ViewClipTool.getClipShapePoints(clipShape, 0.0);\r\n const adjustedPts: Point3d[] = [];\r\n for (let i = 0; i < shapePts.length; i++) {\r\n const prevFace = (0 === i ? shapePts.length - 2 : i - 1);\r\n const nextFace = (shapePts.length - 1 === i ? 0 : i);\r\n const prevSelected = offsetAll || (prevFace === this._anchorIndex || this.manipulator.iModel.selectionSet.elements.has(this._ids[prevFace]));\r\n const nextSelected = offsetAll || (nextFace === this._anchorIndex || this.manipulator.iModel.selectionSet.elements.has(this._ids[nextFace]));\r\n if (prevSelected && nextSelected) {\r\n const prevPt = shapePts[i].plusScaled(this._controls[prevFace].direction, localOffset);\r\n const nextPt = shapePts[i].plusScaled(this._controls[nextFace].direction, localOffset);\r\n const prevRay = Ray3d.create(prevPt, Vector3d.createStartEnd(shapePts[i === 0 ? shapePts.length - 2 : i - 1], shapePts[i]));\r\n const nextPlane = Plane3dByOriginAndUnitNormal.create(nextPt, this._controls[nextFace].direction);\r\n if (undefined === nextPlane || undefined === prevRay.intersectionWithPlane(nextPlane, prevPt))\r\n return false;\r\n adjustedPts[i] = prevPt;\r\n } else if (prevSelected) {\r\n adjustedPts[i] = shapePts[i].plusScaled(this._controls[prevFace].direction, localOffset);\r\n } else if (nextSelected) {\r\n adjustedPts[i] = shapePts[i].plusScaled(this._controls[nextFace].direction, localOffset);\r\n } else {\r\n adjustedPts[i] = shapePts[i];\r\n }\r\n }\r\n\r\n let zLow = clipShape.zLow;\r\n let zHigh = clipShape.zHigh;\r\n const zLowIndex = this._controls.length - 2;\r\n const zHighIndex = this._controls.length - 1;\r\n const zLowSelected = offsetAll || (zLowIndex === this._anchorIndex || this.manipulator.iModel.selectionSet.elements.has(this._ids[zLowIndex]));\r\n const zHighSelected = offsetAll || (zHighIndex === this._anchorIndex || this.manipulator.iModel.selectionSet.elements.has(this._ids[zHighIndex]));\r\n\r\n if (zLowSelected || zHighSelected) {\r\n const clipExtents = ViewClipTool.getClipShapeExtents(clipShape, this._viewRange);\r\n if (zLowSelected)\r\n zLow = clipExtents.low - localOffset;\r\n if (zHighSelected)\r\n zHigh = clipExtents.high + localOffset;\r\n const realZLow = (undefined === zLow ? clipExtents.low : zLow);\r\n const realZHigh = (undefined === zHigh ? clipExtents.high : zHigh);\r\n if (realZLow > realZHigh) {\r\n zLow = realZHigh;\r\n zHigh = realZLow;\r\n }\r\n }\r\n\r\n return ViewClipTool.doClipToShape(this._clipView, adjustedPts, clipShape.transformFromClip, zLow, zHigh);\r\n }\r\n\r\n protected drawViewClip(context: DecorateContext): void {\r\n const clip = this._clipView.view.getViewClip();\r\n if (undefined === clip)\r\n return;\r\n const clipShape = ViewClipTool.isSingleClipShape(clip);\r\n if (undefined === clipShape)\r\n return;\r\n const clipExtents = ViewClipTool.getClipShapeExtents(clipShape, this._viewRange);\r\n const color = EditManipulator.HandleUtils.adjustForBackgroundColor(ColorDef.white, context.viewport);\r\n ViewClipTool.drawClipShape(context, clipShape, clipExtents, color, 1);\r\n this.drawAnchorOffset(context, color, 1, clipShape.transformFromClip);\r\n }\r\n}\r\n\r\n/** @internal Interactive tool to modify a view's clip defined by a ConvexClipPlaneSet */\r\nexport class ViewClipPlanesModifyTool extends ViewClipModifyTool {\r\n protected updateViewClip(ev: BeButtonEvent, _isAccept: boolean): boolean {\r\n const offset = this.getOffsetValue(ev);\r\n if (undefined === offset)\r\n return false;\r\n\r\n const offsetAll = ev.isShiftKey;\r\n const planeSet = ConvexClipPlaneSet.createEmpty();\r\n for (let i: number = 0; i < this._controls.length; i++) {\r\n const selected = offsetAll || (i === this._anchorIndex || this.manipulator.iModel.selectionSet.elements.has(this._ids[i]));\r\n const origin = this._controls[i].origin.clone();\r\n const direction = this._controls[i].direction;\r\n if (selected)\r\n origin.plusScaled(direction, offset, origin);\r\n planeSet.addPlaneToConvexSet(ClipPlane.createNormalAndPoint(direction.negate(), origin));\r\n }\r\n\r\n return ViewClipTool.doClipToConvexClipPlaneSet(this._clipView, planeSet);\r\n }\r\n\r\n protected drawViewClip(context: DecorateContext): void {\r\n const clip = this._clipView.view.getViewClip();\r\n if (undefined === clip)\r\n return;\r\n const clipPlanes = ViewClipTool.isSingleConvexClipPlaneSet(clip);\r\n if (undefined === clipPlanes)\r\n return;\r\n const clipPlanesLoops = ClipUtilities.loopsOfConvexClipPlaneIntersectionWithRange(clipPlanes, this._viewRange, true, false, true);\r\n if (undefined === clipPlanesLoops)\r\n return;\r\n const color = EditManipulator.HandleUtils.adjustForBackgroundColor(ColorDef.white, context.viewport);\r\n ViewClipTool.drawClipPlanesLoops(context, clipPlanesLoops, color, 1);\r\n this.drawAnchorOffset(context, color, 1);\r\n }\r\n}\r\n\r\n/** @internal Modify handle data to modify a view's clip */\r\nexport class ViewClipControlArrow {\r\n public origin: Point3d;\r\n public direction: Vector3d;\r\n public sizeInches: number;\r\n public fill?: ColorDef;\r\n public outline?: ColorDef;\r\n public name?: string;\r\n public floatingOrigin?: Point3d;\r\n\r\n public constructor(origin: Point3d, direction: Vector3d, sizeInches: number, fill?: ColorDef, outline?: ColorDef, name?: string) {\r\n this.origin = origin;\r\n this.direction = direction;\r\n this.sizeInches = sizeInches;\r\n this.fill = fill;\r\n this.outline = outline;\r\n this.name = name;\r\n }\r\n}\r\n\r\n/** A pickable decoration managed by ViewClipDecorationProvider used to visualize a view's clip and present modification handles.\r\n * This class is public to facilitate customization of view clip events by type or selected controls.\r\n * @see [[ViewClipDecorationProvider]]\r\n * @public\r\n * @extensions\r\n */\r\nexport class ViewClipDecoration extends EditManipulator.HandleProvider {\r\n private static _decorator?: ViewClipDecoration;\r\n /** @internal */\r\n protected _clip?: ClipVector;\r\n /** @internal */\r\n protected _clipId?: string;\r\n /** @internal */\r\n protected _clipShape?: ClipShape;\r\n /** @internal */\r\n protected _clipShapeExtents?: Range1d;\r\n /** @internal */\r\n protected _clipPlanes?: ConvexClipPlaneSet;\r\n /** @internal */\r\n protected _clipPlanesLoops?: GeometryQuery[];\r\n /** @internal */\r\n protected _clipPlanesLoopsNoncontributing?: GeometryQuery[];\r\n /** @internal */\r\n protected _controlIds: string[] = [];\r\n /** @internal */\r\n protected _controls: ViewClipControlArrow[] = [];\r\n /** @internal */\r\n protected _suspendDecorator = false;\r\n /** @internal */\r\n protected _removeViewCloseListener?: () => void;\r\n\r\n public constructor(protected _clipView: ScreenViewport, protected _clipEventHandler?: ViewClipEventHandler) {\r\n super(_clipView.iModel);\r\n if (!this.getClipData())\r\n return;\r\n this._clipId = this.iModel.transientIds.getNext();\r\n this.updateDecorationListener(true);\r\n this._removeViewCloseListener = IModelApp.viewManager.onViewClose.addListener(this.onViewClose, this); // eslint-disable-line @typescript-eslint/unbound-method\r\n if (undefined !== this._clipEventHandler && this._clipEventHandler.selectOnCreate())\r\n this.iModel.selectionSet.replace(this._clipId);\r\n }\r\n\r\n public get clipId(): string | undefined { return this._clipId; }\r\n public get clipShape(): ClipShape | undefined { return this._clipShape; }\r\n public get clipPlaneSet(): ConvexClipPlaneSet | undefined { return this._clipPlanes; }\r\n public getControlIndex(id: string): number { return this._controlIds.indexOf(id); }\r\n\r\n protected override stop(): void {\r\n const selectedId = (undefined !== this._clipId && this.iModel.selectionSet.elements.has(this._clipId)) ? this._clipId : undefined;\r\n this._clipId = undefined; // Invalidate id so that decorator will be dropped...\r\n super.stop();\r\n if (undefined !== selectedId)\r\n this.iModel.selectionSet.remove(selectedId); // Don't leave decorator id in selection set...\r\n if (undefined !== this._removeViewCloseListener) {\r\n this._removeViewCloseListener();\r\n this._removeViewCloseListener = undefined;\r\n }\r\n }\r\n\r\n public onViewClose(vp: ScreenViewport): void {\r\n if (this._clipView === vp)\r\n ViewClipDecoration.clear();\r\n }\r\n\r\n private getClipData(): boolean {\r\n this._clip = this._clipShape = this._clipShapeExtents = this._clipPlanes = this._clipPlanesLoops = this._clipPlanesLoopsNoncontributing = undefined;\r\n let clip = this._clipView.view.getViewClip();\r\n if (undefined === clip)\r\n return false;\r\n let clipShape = ViewClipTool.isSingleClipShape(clip);\r\n if (undefined !== clipShape) {\r\n if (clipShape.polygon.length > 5) {\r\n const compressed = PolylineOps.compressByChordError(clipShape.polygon, 1.0e-5);\r\n if (compressed.length < clipShape.polygon.length) {\r\n clip = clip.clone();\r\n clipShape = ViewClipTool.isSingleClipShape(clip);\r\n if (undefined === clipShape)\r\n return false;\r\n clipShape.setPolygon(compressed);\r\n this._clipView.view.setViewClip(clip);\r\n }\r\n }\r\n this._clipShapeExtents = ViewClipTool.getClipShapeExtents(clipShape, this._clipView.computeViewRange());\r\n this._clipShape = clipShape;\r\n } else {\r\n const clipPlanes = ViewClipTool.isSingleConvexClipPlaneSet(clip);\r\n if (undefined === clipPlanes || clipPlanes.planes.length > 12) {\r\n // Show visual representation for ClipVectors that are not supported for modification...\r\n const viewRange = this._clipView.computeViewRange();\r\n\r\n for (const primitive of clip.clips) {\r\n const union = primitive.fetchClipPlanesRef();\r\n if (undefined === union)\r\n continue;\r\n\r\n for (const convexSet of union.convexSets) {\r\n const convexSetLoops = ClipUtilities.loopsOfConvexClipPlaneIntersectionWithRange(convexSet, viewRange, true, false, true);\r\n if (undefined === convexSetLoops)\r\n continue;\r\n\r\n if (undefined === this._clipPlanesLoops)\r\n this._clipPlanesLoops = convexSetLoops;\r\n else\r\n this._clipPlanesLoops.push(...convexSetLoops);\r\n }\r\n }\r\n\r\n if (undefined === this._clipPlanesLoops)\r\n return false;\r\n\r\n this._clip = clip;\r\n return true;\r\n }\r\n const clipPlanesLoops = ClipUtilities.loopsOfConvexClipPlaneIntersectionWithRange(clipPlanes, this._clipView.computeViewRange(), true, false, true);\r\n if (undefined !== clipPlanesLoops && clipPlanesLoops.length > clipPlanes.planes.length)\r\n return false;\r\n this._clipPlanesLoops = clipPlanesLoops;\r\n this._clipPlanes = clipPlanes;\r\n }\r\n this._clip = clip;\r\n return true;\r\n }\r\n\r\n private ensureNumControls(numReqControls: number): void {\r\n const numCurrent = this._controlIds.length;\r\n if (numCurrent < numReqControls) {\r\n const transientIds = this.iModel.transientIds;\r\n for (let i: number = numCurrent; i < numReqControls; i++)\r\n this._controlIds[i] = transientIds.getNext();\r\n } else if (numCurrent > numReqControls) {\r\n this._controlIds.length = numReqControls;\r\n }\r\n }\r\n\r\n private createClipShapeControls(): boolean {\r\n if (undefined === this._clipShape || undefined === this._clipShapeExtents)\r\n return false;\r\n\r\n const shapePtsLo = ViewClipTool.getClipShapePoints(this._clipShape, this._clipShapeExtents.low);\r\n const shapePtsHi = ViewClipTool.getClipShapePoints(this._clipShape, this._clipShapeExtents.high);\r\n const shapeArea = PolygonOps.centroidAreaNormal(shapePtsLo);\r\n if (undefined === shapeArea)\r\n return false;\r\n\r\n const numControls = shapePtsLo.length + 1; // Number of edge midpoints plus zLow and zHigh...\r\n this.ensureNumControls(numControls);\r\n\r\n for (let i: number = 0; i < numControls - 2; i++) {\r\n const midPtLo = shapePtsLo[i].interpolate(0.5, shapePtsLo[i + 1]);\r\n const midPtHi = shapePtsHi[i].interpolate(0.5, shapePtsHi[i + 1]);\r\n const faceCenter = midPtLo.interpolate(0.5, midPtHi);\r\n const edgeTangent = Vector3d.createStartEnd(shapePtsLo[i], shapePtsLo[i + 1]);\r\n const faceNormal = edgeTangent.crossProduct(shapeArea.direction);\r\n faceNormal.normalizeInPlace();\r\n this._controls[i] = new ViewClipControlArrow(faceCenter, faceNormal, shapePtsLo.length > 5 ? 0.5 : 0.75);\r\n }\r\n\r\n const zFillColor = ColorDef.from(150, 150, 250);\r\n this._controls[numControls - 2] = new ViewClipControlArrow(shapeArea.origin, Vector3d.unitZ(-1.0), 0.75, zFillColor, undefined, \"zLow\");\r\n this._controls[numControls - 1] = new ViewClipControlArrow(shapeArea.origin.plusScaled(Vector3d.unitZ(), shapePtsLo[0].distance(shapePtsHi[0])), Vector3d.unitZ(), 0.75, zFillColor, undefined, \"zHigh\");\r\n\r\n return true;\r\n }\r\n\r\n private getLoopCentroidAreaNormal(geom: GeometryQuery): Ray3d | undefined {\r\n if (!(geom instanceof Loop) || geom.children.length > 1)\r\n return undefined;\r\n const child = geom.getChild(0);\r\n if (!(child instanceof LineString3d))\r\n return undefined;\r\n return PolygonOps.centroidAreaNormal(child.points);\r\n }\r\n\r\n private createClipPlanesControls(): boolean {\r\n if (undefined === this._clipPlanes)\r\n return false;\r\n\r\n const loopData: Ray3d[] = [];\r\n if (undefined !== this._clipPlanesLoops) {\r\n for (const geom of this._clipPlanesLoops) {\r\n const loopArea = this.getLoopCentroidAreaNormal(geom);\r\n if (undefined !== loopArea)\r\n loopData.push(loopArea);\r\n }\r\n }\r\n\r\n const numControls = this._clipPlanes.planes.length;\r\n this.ensureNumControls(numControls);\r\n\r\n let viewRange;\r\n let iLoop: number = 0;\r\n for (let i: number = 0; i < this._clipPlanes.planes.length; i++) {\r\n const plane = this._clipPlanes.planes[i].getPlane3d();\r\n if (iLoop < loopData.length) {\r\n if (Math.abs(loopData[iLoop].direction.dotProduct(plane.getNormalRef())) > 0.9999 && plane.isPointInPlane(loopData[iLoop].origin)) {\r\n const outwardNormal = loopData[iLoop].direction.negate();\r\n this._controls[i] = new ViewClipControlArrow(loopData[iLoop].origin, outwardNormal, 0.75);\r\n iLoop++;\r\n continue;\r\n }\r\n }\r\n\r\n if (undefined === viewRange)\r\n viewRange = this._clipView.computeViewRange();\r\n\r\n const defaultOrigin = plane.projectPointToPlane(viewRange.center);\r\n const defaultOutwardNormal = plane.getNormalRef().negate();\r\n const expandedRange = viewRange.clone();\r\n expandedRange.extend(defaultOrigin);\r\n const nonContribLoops = ClipUtilities.loopsOfConvexClipPlaneIntersectionWithRange(ConvexClipPlaneSet.createPlanes([this._clipPlanes.planes[i]]), expandedRange, true, false, true);\r\n const nonContribColor = ColorDef.from(250, 100, 100);\r\n\r\n if (undefined !== nonContribLoops && nonContribLoops.length > 0) {\r\n if (undefined === this._clipPlanesLoopsNoncontributing)\r\n this._clipPlanesLoopsNoncontributing = nonContribLoops;\r\n else\r\n this._clipPlanesLoopsNoncontributing = this._clipPlanesLoopsNoncontributing.concat(nonContribLoops);\r\n const loopArea = this.getLoopCentroidAreaNormal(nonContribLoops[0]);\r\n if (undefined !== loopArea) {\r\n const outwardNormal = loopArea.direction.negate();\r\n this._controls[i] = new ViewClipControlArrow(loopArea.origin, outwardNormal, 0.5, nonContribColor);\r\n continue;\r\n }\r\n }\r\n\r\n this._controls[i] = new ViewClipControlArrow(defaultOrigin, defaultOutwardNormal, 0.5, nonContribColor); // Just show arrow for right-click menu options...\r\n }\r\n\r\n return true;\r\n }\r\n\r\n protected async createControls(): Promise<boolean> {\r\n // Always update to current view clip to handle post-modify, etc.\r\n if (undefined === this._clipId || !this.getClipData())\r\n return false;\r\n\r\n // Show controls if only range box and it's controls are selected, selection set doesn't include any other elements...\r\n let showControls = false;\r\n if (this.iModel.selectionSet.size <= this._controlIds.length + 1 && this.iModel.selectionSet.elements.has(this._clipId)) {\r\n showControls = true;\r\n if (this.iModel.selectionSet.size > 1) {\r\n this.iModel.selectionSet.elements.forEach((val) => {\r\n if (this._clipId !== val && !this._controlIds.includes(val))\r\n showControls = false;\r\n });\r\n }\r\n }\r\n\r\n if (!showControls) {\r\n if (undefined !== this._clipEventHandler && this._clipEventHandler.clearOnDeselect())\r\n ViewClipDecoration.clear();\r\n return false;\r\n }\r\n\r\n if (undefined !== this._clipShape)\r\n return this.createClipShapeControls();\r\n else if (undefined !== this._clipPlanes)\r\n return this.createClipPlanesControls();\r\n\r\n return false;\r\n }\r\n\r\n protected override clearControls(): void {\r\n this.iModel.selectionSet.remove(this._controlIds); // Remove any selected controls as they won't continue to be displayed...\r\n super.clearControls();\r\n }\r\n\r\n protected async modifyControls(hit: HitDetail, _ev: BeButtonEvent): Promise<boolean> {\r\n if (undefined === this._clip || hit.sourceId === this._clipId)\r\n return false;\r\n const saveQualifiers = IModelApp.toolAdmin.currentInputState.qualifiers;\r\n if (undefined !== this._clipShape) {\r\n const clipShapeModifyTool = new ViewClipShapeModifyTool(this, this._clip, this._clipView, hit.sourceId, this._controlIds, this._controls);\r\n this._suspendDecorator = await clipShapeModifyTool.run();\r\n } else if (undefined !== this._clipPlanes) {\r\n const clipPlanesModifyTool = new ViewClipPlanesModifyTool(this, this._clip, this._clipView, hit.sourceId, this._controlIds, this._controls);\r\n this._suspendDecorator = await clipPlanesModifyTool.run();\r\n }\r\n if (this._suspendDecorator)\r\n IModelApp.toolAdmin.currentInputState.qualifiers = saveQualifiers; // onInstallTool cleared qualifiers, preserve for \"modify all\" behavior when shift was held and drag started...\r\n return this._suspendDecorator;\r\n }\r\n\r\n public doClipPlaneNegate(index: number): boolean {\r\n if (undefined === this._clipPlanes)\r\n return false;\r\n\r\n if (index < 0 || index >= this._clipPlanes.planes.length)\r\n return false;\r\n\r\n const planeSet = ConvexClipPlaneSet.createEmpty();\r\n for (let i: number = 0; i < this._clipPlanes.planes.length; i++) {\r\n const plane = (i === index ? this._clipPlanes.planes[i].cloneNegated() : this._clipPlanes.planes[i]);\r\n planeSet.addPlaneToConvexSet(plane);\r\n }\r\n\r\n if (!ViewClipTool.doClipToConvexClipPlaneSet(this._clipView, planeSet))\r\n return false;\r\n\r\n this.onManipulatorEvent(EditManipulator.EventType.Accept);\r\n return true;\r\n }\r\n\r\n public doClipPlaneClear(index: number): boolean {\r\n if (undefined === this._clipPlanes)\r\n return false;\r\n\r\n if (index < 0 || index >= this._clipPlanes.planes.length)\r\n return false;\r\n\r\n if (1 === this._clipPlanes.planes.length) {\r\n if (!ViewClipTool.doClipClear(this._clipView))\r\n return false;\r\n if (undefined !== this._clipEventHandler)\r\n this._clipEventHandler.onClearClip(this._clipView);\r\n ViewClipDecoration.clear();\r\n return true;\r\n }\r\n\r\n const planeSet = ConvexClipPlaneSet.createEmpty();\r\n for (let i: number = 0; i < this._clipPlanes.planes.length; i++) {\r\n if (i === index)\r\n continue;\r\n const plane = this._clipPlanes.planes[i];\r\n planeSet.addPlaneToConvexSet(plane);\r\n }\r\n\r\n if (!ViewClipTool.doClipToConvexClipPlaneSet(this._clipView, planeSet))\r\n return false;\r\n\r\n this.onManipulatorEvent(EditManipulator.EventType.Accept);\r\n return true;\r\n }\r\n\r\n private getClipShapeFaceLoops(): GeometryQuery[] | undefined {\r\n if (undefined === this._clipShape || undefined === this._clipShapeExtents)\r\n return undefined;\r\n\r\n const shapePtsLo = ViewClipTool.getClipShapePoints(this._clipShape, this._clipShapeExtents.low);\r\n const shapePtsHi = ViewClipTool.getClipShapePoints(this._clipShape, this._clipShapeExtents.high);\r\n\r\n if (undefined !== this._clipShape.transformFromClip) {\r\n this._clipShape.transformFromClip.multiplyPoint3dArrayInPlace(shapePtsLo);\r\n this._clipShape.transformFromClip.multiplyPoint3dArrayInPlace(shapePtsHi);\r\n }\r\n\r\n const cap0 = Loop.createPolygon(shapePtsLo);\r\n const cap1 = Loop.createPolygon(shapePtsHi);\r\n const faces: GeometryQuery[] = [];\r\n\r\n faces.push(cap0);\r\n faces.push(cap1);\r\n\r\n for (let i: number = 0; i < shapePtsLo.length; i++) {\r\n const next = (i === shapePtsLo.length - 1 ? 0 : i + 1);\r\n const side = Loop.createPolygon([shapePtsLo[i].clone(), shapePtsLo[next].clone(), shapePtsHi[next].clone(), shapePtsHi[i].clone()]);\r\n faces.push(side);\r\n }\r\n\r\n return faces;\r\n }\r\n\r\n private getMatchingLoop(loops: GeometryQuery[], ray: Ray3d): GeometryQuery | undefined {\r\n for (const geom of loops) {\r\n const loopArea = this.getLoopCentroidAreaNormal(geom);\r\n if (undefined === loopArea)\r\n continue;\r\n\r\n if (!loopArea.direction.isParallelTo(ray.direction, true)) // don't assume outward normal for clip plane loops...\r\n continue;\r\n\r\n const plane = Plane3dByOriginAndUnitNormal.create(loopArea.origin, loopArea.direction);\r\n if (undefined === plane || !plane.isPointInPlane(ray.origin))\r\n continue;\r\n\r\n return geom;\r\n }\r\n return undefined;\r\n }\r\n\r\n private getLoopPreferredX(loop: GeometryQuery, outwardNormal: Vector3d): Vector3d | undefined {\r\n const localToWorld = FrameBuilder.createRightHandedFrame(undefined, loop);\r\n if (undefined === localToWorld)\r\n return undefined;\r\n\r\n let vectorX;\r\n const dirX = localToWorld.matrix.getColumn(0);\r\n const dirY = localToWorld.matrix.getColumn(1);\r\n const dirZ = localToWorld.matrix.getColumn(2);\r\n const unitX = Vector3d.unitX();\r\n const unitZ = Vector3d.unitZ();\r\n\r\n if (dirZ.isParallelTo(unitZ, true)) {\r\n // For clip in xy plane, choose direction closest to world x...\r\n vectorX = Math.abs(dirX.dotProduct(unitX)) > Math.abs(dirY.dotProduct(unitX)) ? dirX : dirY;\r\n\r\n if (vectorX.dotProduct(unitX) < 0.0)\r\n vectorX.negate(vectorX); // prefer positive x...\r\n } else {\r\n // For clip in arbitrary plane, choose direction closest to being in xy plane...\r\n let vectorY;\r\n const crossX = outwardNormal.unitCrossProduct(dirY);\r\n const crossY = outwardNormal.unitCrossProduct(dirX);\r\n\r\n if (crossX && crossY) {\r\n if (Math.abs(crossY.dotProduct(unitZ)) > Math.abs(crossX.dotProduct(unitZ))) {\r\n vectorX = dirX;\r\n vectorY = crossY;\r\n } else {\r\n vectorX = dirY;\r\n vectorY = crossX;\r\n }\r\n } else {\r\n vectorX = crossX ? dirY : dirX;\r\n }\r\n\r\n if (vectorY && vectorY.dotProduct(unitZ) < 0.0)\r\n vectorX.negate(vectorX); // prefer positive z...\r\n }\r\n\r\n return vectorX;\r\n }\r\n\r\n public doClipPlaneOrientView(index: number): boolean {\r\n if (index < 0 || index >= this._controlIds.length)\r\n return false;\r\n\r\n const vp = this._clipView;\r\n const anchorRay = ViewClipTool.getClipRayTransformed(this._controls[index].origin, this._controls[index].direction, undefined !== this._clipShape ? this._clipShape.transformFromClip : undefined);\r\n\r\n // Try to align x direction with clip plane loop...\r\n const loops = (undefined !== this._clipPlanesLoops ? this._clipPlanesLoops : this.getClipShapeFaceLoops());\r\n const loop = (loops ? (1 === loops.length ? loops[0] : this.getMatchingLoop(loops, anchorRay)) : undefined);\r\n const vectorX = (loop ? this.getLoopPreferredX(loop, anchorRay.direction) : undefined);\r\n\r\n const matrix = Matrix3d.createIdentity();\r\n if (undefined === vectorX || undefined === Matrix3d.createRigidFromColumns(anchorRay.direction, vectorX, AxisOrder.ZXY, matrix))\r\n Matrix3d.createRigidHeadsUp(anchorRay.direction, AxisOrder.ZXY, matrix);\r\n\r\n const targetMatrix = matrix.multiplyMatrixMatrix(vp.rotation);\r\n const rotateTransform = Transform.createFixedPointAndMatrix(anchorRay.origin, targetMatrix);\r\n const newFrustum = vp.getFrustum();\r\n newFrustum.multiply(rotateTransform);\r\n vp.view.setupFromFrustum(newFrustum);\r\n vp.synchWithView();\r\n vp.animateFrustumChange();\r\n return true;\r\n }\r\n\r\n private getWorldUpPlane(viewport: Viewport): Plane3dByOriginAndUnitNormal | undefined {\r\n const matrix = AccuDrawHintBuilder.getContextRotation(ContextRotationId.Top, viewport);\r\n if (undefined === matrix)\r\n return undefined;\r\n const worldUp = matrix.getColumn(2);\r\n const planePt = (viewport.isContextRotationRequired ? viewport.getAuxCoordOrigin() : (viewport.view.isSpatialView() ? viewport.view.iModel.globalOrigin : Point3d.createZero()));\r\n return Plane3dByOriginAndUnitNormal.create(planePt, worldUp);\r\n }\r\n\r\n private isAlignedToWorldUpPlane(plane: Plane3dByOriginAndUnitNormal, transformFromClip?: Transform): boolean {\r\n const normal = (undefined !== transformFromClip ? transformFromClip.multiplyVector(Vector3d.unitZ()) : Vector3d.unitZ());\r\n return plane.getNormalRef().isParallelTo(normal, true);\r\n }\r\n\r\n public isClipShapeAlignedWithWorldUp(extents?: Range1d): boolean {\r\n if (undefined === this._clipShape || undefined === this._clipShapeExtents)\r\n return false;\r\n\r\n const plane = this.getWorldUpPlane(this._clipView);\r\n if (undefined === plane || !this.isAlignedToWorldUpPlane(plane, this._clipShape.transformFromClip))\r\n return false;\r\n\r\n if (undefined === extents)\r\n return true;\r\n\r\n const zLow = Point3d.create(0.0, 0.0, this._clipShapeExtents.low);\r\n const zHigh = Point3d.create(0.0, 0.0, this._clipShapeExtents.high);\r\n\r\n if (undefined !== this._clipShape.transformFromClip) {\r\n this._clipShape.transformFromClip.multiplyPoint3d(zLow, zLow);\r\n this._clipShape.transformFromClip.multiplyPoint3d(zHigh, zHigh);\r\n }\r\n\r\n const lowDir = Vector3d.createStartEnd(plane.projectPointToPlane(zLow), zLow);\r\n const highDir = Vector3d.createStartEnd(plane.projectPointToPlane(zHigh), zHigh);\r\n let zLowWorld = lowDir.magnitude();\r\n let zHighWorld = highDir.magnitude();\r\n\r\n if (lowDir.dotProduct(plane.getNormalRef()) < 0.0)\r\n zLowWorld = -zLowWorld;\r\n if (highDir.dotProduct(plane.getNormalRef()) < 0.0)\r\n zHighWorld = -zHighWorld;\r\n\r\n Range1d.createXX(zLowWorld, zHighWorld, extents);\r\n return true;\r\n }\r\n\r\n public doClipShapeSetZExtents(extents: Range1d): boolean {\r\n if (extents.low > extents.high)\r\n return false;\r\n if (undefined === this._clipShape)\r\n return false;\r\n const plane = this.getWorldUpPlane(this._clipView);\r\n if (undefined === plane || !this.isAlignedToWorldUpPlane(plane, this._clipShape.transformFromClip))\r\n return false;\r\n\r\n const zLow = plane.getOriginRef().plusScaled(plane.getNormalRef(), extents.low);\r\n const zHigh = plane.getOriginRef().plusScaled(plane.getNormalRef(), extents.high);\r\n\r\n if (undefined !== this._clipShape.transformToClip) {\r\n this._clipShape.transformToClip.multiplyPoint3d(zLow, zLow);\r\n this._clipShape.transformToClip.multiplyPoint3d(zHigh, zHigh);\r\n }\r\n\r\n const reversed = (zLow.z > zHigh.z);\r\n const shape = ClipShape.createFrom(this._clipShape);\r\n shape.initSecondaryProps(shape.isMask, reversed ? zHigh.z : zLow.z, reversed ? zLow.z : zHigh.z, this._clipShape.transformFromClip);\r\n\r\n const clip = ClipVector.createEmpty();\r\n clip.appendReference(shape);\r\n\r\n if (!ViewClipTool.setViewClip(this._clipView, clip))\r\n return false;\r\n\r\n this.onManipulatorEvent(EditManipulator.EventType.Accept);\r\n return true;\r\n }\r\n\r\n protected override async onRightClick(hit: HitDetail, ev: BeButtonEvent): Promise<EventHandled> {\r\n if (undefined === this._clipEventHandler)\r\n return EventHandled.No;\r\n return (this._clipEventHandler.onRightClick(hit, ev) ? EventHandled.Yes : EventHandled.No);\r\n }\r\n\r\n protected override async onTouchTap(hit: HitDetail, ev: BeButtonEvent): Promise<EventHandled> { return (hit.sourceId === this._clipId ? EventHandled.No : super.onTouchTap(hit, ev)); }\r\n\r\n public override onManipulatorEvent(eventType: EditManipulator.EventType): void {\r\n this._suspendDecorator = false;\r\n super.onManipulatorEvent(eventType);\r\n if (EditManipulator.EventType.Accept === eventType && undefined !== this._clipEventHandler)\r\n this._clipEventHandler.onModifyClip(this._clipView);\r\n }\r\n\r\n public testDecorationHit(id: string): boolean { return (id === this._clipId || this._controlIds.includes(id)); }\r\n public async getDecorationToolTip(hit: HitDetail): Promise<HTMLElement | string> {\r\n if (hit.sourceId === this._clipId)\r\n return CoreTools.translate(\"ViewClip.Message.Clip\");\r\n return CoreTools.translate(\"ViewClip.Message.ModifyClip\");\r\n }\r\n protected override updateDecorationListener(_add: boolean): void { super.updateDecorationListener(undefined !== this._clipId); } // Decorator isn't just for resize controls...\r\n\r\n public override decorate(context: DecorateContext): void {\r\n if (this._suspendDecorator)\r\n return;\r\n\r\n if (undefined === this._clipId || undefined === this._clip)\r\n return;\r\n\r\n const vp = context.viewport;\r\n if (this._clipView !== vp)\r\n return;\r\n\r\n if (undefined !== this._clipShape) {\r\n ViewClipTool.drawClipShape(context, this._clipShape, this._clipShapeExtents ?? Range1d.createNull(), EditManipulator.HandleUtils.adjustForBackgroundColor(ColorDef.white, vp), 3, this._clipId);\r\n } else if (undefined !== this._clipPlanes) {\r\n if (undefined !== this._clipPlanesLoops)\r\n ViewClipTool.drawClipPlanesLoops(context, this._clipPlanesLoops, EditManipulator.HandleUtils.adjustForBackgroundColor(ColorDef.white, vp), 3, false, EditManipulator.HandleUtils.adjustForBackgroundColor(ColorDef.from(0, 255, 255, 225), vp), this._clipId);\r\n if (undefined !== this._clipPlanesLoopsNoncontributing)\r\n ViewClipTool.drawClipPlanesLoops(context, this._clipPlanesLoopsNoncontributing, EditManipulator.HandleUtils.adjustForBackgroundColor(ColorDef.red, vp), 1, true);\r\n } else if (undefined !== this._clipPlanesLoops) {\r\n ViewClipTool.drawClipPlanesLoops(context, this._clipPlanesLoops, EditManipulator.HandleUtils.adjustForBackgroundColor(ColorDef.white, vp), 3, false, EditManipulator.HandleUtils.adjustForBackgroundColor(ColorDef.from(0, 255, 255, 225), vp), this._clipId);\r\n }\r\n\r\n if (!this._isActive)\r\n return;\r\n\r\n const outlineColor = EditManipulator.HandleUtils.adjustForBackgroundColor(ColorDef.from(0, 0, 0, 50), vp);\r\n const fillVisColor = EditManipulator.HandleUtils.adjustForBackgroundColor(ColorDef.from(150, 250, 200, 175), vp);\r\n const fillHidColor = fillVisColor.withAlpha(225);\r\n const fillSelColor = fillVisColor.inverse().withAlpha(75);\r\n const shapePts = EditManipulator.HandleUtils.getArrowShape(0.0, 0.15, 0.55, 1.0, 0.3, 0.5, 0.1);\r\n\r\n for (let iFace = 0; iFace < this._controlIds.length; iFace++) {\r\n const sizeInches = this._controls[iFace].sizeInches;\r\n if (0.0 === sizeInches)\r\n continue;\r\n\r\n // For single plane clip, choose location for handle that's visible in the current view...\r\n if (1 === this._controls.length && undefined !== this._clipPlanes && undefined !== this._clipPlanesLoops && this._clipPlanesLoops.length > 0) {\r\n if (!vp.isPointVisibleXY(this._controls[iFace].origin, CoordSystem.World, 0.05)) {\r\n const geom = this._clipPlanesLoops[0];\r\n if (geom instanceof Loop && geom.children.length > 0) {\r\n const child = geom.getChild(0);\r\n if (child instanceof LineString3d) {\r\n const work = new GrowableXYZArray();\r\n const finalPoints = new GrowableXYZArray();\r\n const lineString = child.points;\r\n const convexSet = vp.getFrustum().getRangePlanes(false, false, 0);\r\n convexSet.polygonClip(lineString, finalPoints, work);\r\n if (finalPoints.length > 0) {\r\n const loopArea = PolygonOps.centroidAreaNormal(finalPoints.getPoint3dArray());\r\n if (undefined !== loopArea) {\r\n if (undefined === this._controls[iFace].floatingOrigin)\r\n this._controls[iFace].floatingOrigin = this._controls[iFace].origin.clone();\r\n this._controls[iFace].origin.setFrom(loopArea.origin);\r\n }\r\n }\r\n }\r\n }\r\n } else {\r\n const floatingOrigin = this._controls[iFace].floatingOrigin;\r\n if (undefined !== floatingOrigin && vp.isPointVisibleXY(floatingOrigin, CoordSystem.World, 0.1)) {\r\n this._controls[iFace].origin.setFrom(this._controls[iFace].floatingOrigin);\r\n this._controls[iFace].floatingOrigin = undefined;\r\n }\r\n }\r\n }\r\n\r\n const anchorRay = ViewClipTool.getClipRayTransformed(this._controls[iFace].origin, this._controls[iFace].direction, undefined !== this._clipShape ? this._clipShape.transformFromClip : undefined);\r\n const transform = EditManipulator.HandleUtils.getArrowTransform(vp, anchorRay.origin, anchorRay.direction, sizeInches);\r\n if (undefined === transform)\r\n continue;\r\n\r\n // deep copy because we're using a builder transform w/addLineString...\r\n const visPts = shapePts.map((pt) => pt.clone());\r\n const hidPts = shapePts.map((pt) => pt.clone());\r\n\r\n const arrowVisBuilder = context.createGraphicBuilder(GraphicType.WorldOverlay, transform, this._controlIds[iFace]);\r\n const arrowHidBuilder = context.createGraphicBuilder(GraphicType.WorldDecoration, transform);\r\n const isSelected = this.iModel.selectionSet.elements.has(this._controlIds[iFace]);\r\n\r\n let outlineColorOvr = this._controls[iFace].outline;\r\n if (undefined !== outlineColorOvr) {\r\n outlineColorOvr = EditManipulator.HandleUtils.adjustForBackgroundColor(outlineColorOvr, vp);\r\n outlineColorOvr = outlineColorOvr.withAlpha(outlineColor.getAlpha());\r\n } else {\r\n outlineColorOvr = outlineColor;\r\n }\r\n\r\n let fillVisColorOvr = this._controls[iFace].fill;\r\n let fillHidColorOvr = fillHidColor;\r\n let fillSelColorOvr = fillSelColor;\r\n if (undefined !== fillVisColorOvr) {\r\n fillVisColorOvr = EditManipulator.HandleUtils.adjustForBackgroundColor(fillVisColorOvr, vp);\r\n fillVisColorOvr = fillVisColorOvr.withAlpha(fillVisColor.getAlpha());\r\n fillHidColorOvr = fillVisColorOvr.withAlpha(fillHidColor.getAlpha());\r\n fillSelColorOvr = fillVisColorOvr.inverse().withAlpha(fillSelColor.getAlpha());\r\n } else {\r\n fillVisColorOvr = fillVisColor;\r\n }\r\n\r\n arrowVisBuilder.setSymbology(outlineColorOvr, outlineColorOvr, isSelected ? 4 : 2);\r\n arrowVisBuilder.addLineString(visPts);\r\n arrowVisBuilder.setBlankingFill(isSelected ? fillSelColorOvr : fillVisColorOvr);\r\n arrowVisBuilder.addShape(visPts);\r\n context.addDecorationFromBuilder(arrowVisBuilder);\r\n\r\n arrowHidBuilder.setSymbology(fillHidColorOvr, fillHidColorOvr, 1);\r\n arrowHidBuilder.addShape(hidPts);\r\n context.addDecorationFromBuilder(arrowHidBuilder);\r\n }\r\n }\r\n\r\n public static get(vp: ScreenViewport): ViewClipDecoration | undefined {\r\n if (undefined === ViewClipDecoration._decorator || vp !== ViewClipDecoration._decorator._clipView)\r\n return undefined;\r\n return ViewClipDecoration._decorator;\r\n }\r\n\r\n public static create(vp: ScreenViewport, clipEventHandler?: ViewClipEventHandler): string | undefined {\r\n if (undefined !== ViewClipDecoration._decorator)\r\n ViewClipDecoration.clear();\r\n if (!ViewClipTool.hasClip(vp))\r\n return undefined;\r\n ViewClipDecoration._decorator = new ViewClipDecoration(vp, clipEventHandler);\r\n return ViewClipDecoration._decorator.clipId;\r\n }\r\n\r\n public static clear(): void {\r\n if (undefined === ViewClipDecoration._decorator)\r\n return;\r\n ViewClipDecoration._decorator.stop();\r\n ViewClipDecoration._decorator = undefined;\r\n }\r\n\r\n public static async toggle(vp: ScreenViewport, clipEventHandler?: ViewClipEventHandler): Promise<string | undefined> {\r\n let clipId: string | undefined;\r\n if (undefined === ViewClipDecoration._decorator)\r\n clipId = ViewClipDecoration.create(vp, clipEventHandler);\r\n else\r\n ViewClipDecoration.clear();\r\n await IModelApp.toolAdmin.startDefaultTool();\r\n return clipId;\r\n }\r\n}\r\n\r\n/** Event types for ViewClipDecorationProvider.onActiveClipChanged \\\r\n * @public\r\n * @extensions\r\n */\r\nexport enum ClipEventType { New, NewPlane, Modify, Clear }\r\n\r\n/** An implementation of ViewClipEventHandler that responds to new clips by presenting clip modification handles\r\n * @public @extensions\r\n */\r\nexport class ViewClipDecorationProvider implements ViewClipEventHandler {\r\n private static _provider?: ViewClipDecorationProvider;\r\n public selectDecorationOnCreate = true;\r\n public clearDecorationOnDeselect = true;\r\n\r\n /** Called when the active clip for a view is changed */\r\n public readonly onActiveClipChanged = new BeEvent<(viewport: Viewport, eventType: ClipEventType, provider: ViewClipDecorationProvider) => void>();\r\n\r\n /** Called on a right click over the clip geometry or clip modify handle. ViewClipDecoration provides methods for the following possible menu actions:\r\n * For ClipPlanes (undefined !== clipPlaneSet): Flip (doClipPlaneNegate), Clear (doClipPlaneClear), and Orient View (doClipPlaneOrientView)\r\n * For ClipShapes (undefined === clipPlaneSet): Orient View (doClipPlaneOrientView) and input fields to set world zLow/zHigh (doClipShapeSetZExtents provided isClipShapeAlignedWithWorldUp returns true)\r\n */\r\n public readonly onActiveClipRightClick = new BeEvent<(hit: HitDetail, ev: BeButtonEvent, provider: ViewClipDecorationProvider) => void>();\r\n\r\n public selectOnCreate(): boolean { return this.selectDecorationOnCreate; }\r\n public clearOnDeselect(): boolean { return this.clearDecorationOnDeselect; }\r\n\r\n public onNewClip(viewport: ScreenViewport): void {\r\n ViewClipDecoration.create(viewport, this);\r\n this.onActiveClipChanged.raiseEvent(viewport, ClipEventType.New, this);\r\n }\r\n\r\n public onNewClipPlane(viewport: ScreenViewport): void {\r\n ViewClipDecoration.create(viewport, this);\r\n this.onActiveClipChanged.raiseEvent(viewport, ClipEventType.NewPlane, this);\r\n }\r\n\r\n public onModifyClip(viewport: ScreenViewport): void {\r\n this.onActiveClipChanged.raiseEvent(viewport, ClipEventType.Modify, this);\r\n }\r\n\r\n public onClearClip(viewport: ScreenViewport): void {\r\n ViewClipDecoration.clear();\r\n this.onActiveClipChanged.raiseEvent(viewport, ClipEventType.Clear, this);\r\n }\r\n\r\n public onRightClick(hit: HitDetail, ev: BeButtonEvent): boolean {\r\n const decoration = (undefined !== ev.viewport ? ViewClipDecoration.get(ev.viewport) : undefined);\r\n if (undefined === decoration)\r\n return false;\r\n if (0 === this.onActiveClipRightClick.numberOfListeners)\r\n return decoration.doClipPlaneNegate(decoration.getControlIndex(hit.sourceId));\r\n this.onActiveClipRightClick.raiseEvent(hit, ev, this);\r\n return true;\r\n }\r\n\r\n public showDecoration(vp: ScreenViewport): void { ViewClipDecoration.create(vp, this); }\r\n public hideDecoration(): void { ViewClipDecoration.clear(); }\r\n public async toggleDecoration(vp: ScreenViewport) { return ViewClipDecoration.toggle(vp, this); }\r\n public isDecorationActive(vp: ScreenViewport): boolean { return (undefined !== ViewClipDecoration.get(vp)); }\r\n\r\n public static create(): ViewClipDecorationProvider {\r\n if (undefined === ViewClipDecorationProvider._provider) {\r\n ViewClipDecoration.clear();\r\n ViewClipDecorationProvider._provider = new ViewClipDecorationProvider();\r\n }\r\n return ViewClipDecorationProvider._provider;\r\n }\r\n\r\n public static clear(): void {\r\n if (undefined === ViewClipDecorationProvider._provider)\r\n return;\r\n ViewClipDecoration.clear();\r\n ViewClipDecorationProvider._provider = undefined;\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"ClipViewTool.js","sourceRoot":"","sources":["../../../src/tools/ClipViewTool.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,sDAAyE;AACzE,wDAI8B;AAC9B,oDAAkF;AAElF,0CAAqE;AACrE,gDAA6C;AAC7C,kEAAyD;AAEzD,4CAAyC;AAIzC,uDAAoD;AACpD,mDAAgD;AAChD,iCAAyF;AACzF,qDAAoJ;AACpJ,8DAA2D;AA6C3D;;GAEG;AACH,MAAa,YAAa,SAAQ,6BAAa;IACvB;IAAtB,YAAsB,iBAAwC;QAAI,KAAK,EAAE,CAAC;QAApD,sBAAiB,GAAjB,iBAAiB,CAAuB;IAAa,CAAC;IAE5E,gBAAgB;IACN,MAAM,CAAC,gBAAgB,GAAG,mBAAmB,CAAC;IACxD,gBAAgB;IACN,MAAM,CAAC,wBAAwB,CAAC,GAAW,IAAI,OAAO,gBAAS,CAAC,SAAS,CAAC,wBAAwB,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IACrH,gBAAgB;IACN,MAAM,CAAC,gCAAgC,GAAG,GAAwB,EAAE;QAC5E,OAAO;YACL,IAAI,EAAE,YAAY,CAAC,gBAAgB;YACnC,YAAY,EAAE,gBAAS,CAAC,SAAS,CAAC,4BAA4B,CAAC;YAC/D,QAAQ,EAAE,MAAM;YAChB,IAAI,EAAE;gBACJ,OAAO,EAAE;oBACP,EAAE,KAAK,EAAE,YAAY,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,4BAAiB,CAAC,GAAG,EAAE;oBACrF,EAAE,KAAK,EAAE,YAAY,CAAC,wBAAwB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,4BAAiB,CAAC,KAAK,EAAE;oBACzF,EAAE,KAAK,EAAE,YAAY,CAAC,wBAAwB,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,4BAAiB,CAAC,IAAI,EAAE;oBACvF,EAAE,KAAK,EAAE,YAAY,CAAC,wBAAwB,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,4BAAiB,CAAC,MAAM,EAAE;oBAC3F,EAAE,KAAK,EAAE,YAAY,CAAC,wBAAwB,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,4BAAiB,CAAC,IAAI,EAAE;oBACvF,EAAE,KAAK,EAAE,YAAY,CAAC,wBAAwB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,4BAAiB,CAAC,KAAK,EAAE;oBACzF,EAAE,KAAK,EAAE,YAAY,CAAC,wBAAwB,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,4BAAiB,CAAC,IAAI,EAAE;oBACvF,EAAE,KAAK,EAAE,YAAY,CAAC,wBAAwB,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,4BAAiB,CAAC,IAAI,EAAE;iBACxF;aACF;SACF,CAAC;IACJ,CAAC,CAAC;IAEF,gBAAgB;IACA,sBAAsB,KAAc,OAAO,KAAK,CAAC,CAAC,CAAC;IACnE,gBAAgB;IACA,oBAAoB,CAAC,EAAwB,EAAE,oBAA6B,IAAa,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE,EAAE,oBAAoB,CAAC,IAAI,SAAS,KAAK,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,CAAC;IAE/N,gBAAgB;IACA,KAAK,CAAC,aAAa;QACjC,MAAM,KAAK,CAAC,aAAa,EAAE,CAAC;QAC5B,IAAI,CAAC,2BAA2B,EAAE,CAAC;IACrC,CAAC;IAED,gBAAgB;IACA,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAC1D,gBAAgB;IACT,KAAK,CAAC,aAAa,KAAoB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACvE,gBAAgB;IACN,UAAU,KAAW,CAAC;IAChC,gBAAgB;IACN,2BAA2B,KAAW,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACpE,gBAAgB;IACA,KAAK,CAAC,eAAe,CAAC,GAAkB;QACtD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,OAAO,mBAAY,CAAC,EAAE,CAAC;IACzB,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,oBAAoB,CAAC,WAA8B,EAAE,QAAkB;QACnF,MAAM,MAAM,GAAG,8BAAmB,CAAC,kBAAkB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC7E,IAAI,SAAS,KAAK,MAAM;YACtB,OAAO,SAAS,CAAC;QACnB,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACtC,CAAC;IAEM,MAAM,CAAC,gBAAgB,CAAC,QAAkB;QAC/C,IAAI,QAAQ,CAAC,SAAS,CAAC,UAAU;YAC/B,OAAO,KAAK,CAAC;QAEf,QAAQ,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,QAAkB,EAAE,IAAiB;QAC7D,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAChC,QAAQ,CAAC,aAAa,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,0BAA0B,CAAC,QAAkB,EAAE,MAA0B;QACrF,MAAM,IAAI,GAAG,6BAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,0BAAU,CAAC,WAAW,EAAE,CAAC;QACtC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,QAAkB,EAAE,MAAe,EAAE,MAAgB,EAAE,mBAA4B;QAC7G,MAAM,KAAK,GAAG,4CAA4B,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAClE,IAAI,SAAS,KAAK,KAAK;YACrB,OAAO,KAAK,CAAC;QACf,IAAI,QAAwC,CAAC;QAC7C,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACjD,IAAI,SAAS,KAAK,YAAY,IAAI,CAAC,KAAK,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBAClE,MAAM,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC3C,IAAI,CAAC,CAAC,YAAY,YAAY,yBAAS,CAAC,EAAE,CAAC;oBACzC,MAAM,iBAAiB,GAAG,YAAY,CAAC,kBAAkB,EAAE,CAAC;oBAC5D,IAAI,SAAS,KAAK,iBAAiB,IAAI,CAAC,KAAK,iBAAiB,CAAC,UAAU,CAAC,MAAM;wBAC9E,QAAQ,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC/C,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,SAAS,KAAK,QAAQ;YACxB,QAAQ,GAAG,kCAAkB,CAAC,WAAW,EAAE,CAAC;QAC9C,QAAQ,CAAC,mBAAmB,CAAC,yBAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC7D,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,QAAkB,EAAE,QAAmB,EAAE,SAAqB,EAAE,IAAa,EAAE,KAAc;QACvH,MAAM,IAAI,GAAG,0BAAU,CAAC,WAAW,EAAE,CAAC;QACtC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,QAAkB,EAAE,KAAc,EAAE,SAAqB;QACnF,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa;YAC5D,OAAO,KAAK,CAAC;QACf,MAAM,IAAI,GAAG,0BAAU,CAAC,WAAW,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,yBAAS,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,sCAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,sCAAsB,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;QACrJ,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,QAAkB;QAC1C,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC;YACjC,OAAO,KAAK,CAAC;QACf,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,qBAAqB,CAAC,MAAe,EAAE,SAAmB,EAAE,SAAqB;QAC7F,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;QAElC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC1C,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC3C,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAC7B,CAAC;QAED,OAAO,qBAAK,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,yBAAyB,CAAC,MAAc,EAAE,SAAqB;QAC3E,IAAI,SAAS,KAAK,SAAS;YACzB,OAAO,MAAM,CAAC;QAChB,MAAM,SAAS,GAAG,wBAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC1C,SAAS,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC/C,MAAM,WAAW,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC;QAC1C,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IACnD,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,kBAAkB,CAAC,OAAuB,EAAE,KAAsB,EAAE,OAAgB;QAChG,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,CAAC,IAAI,YAAY,oBAAI,CAAC;gBACzB,SAAS;YACX,IAAI,OAAO;gBACT,OAAO,CAAC,OAAO,CAAC,oBAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;;gBAEjD,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,gBAAgB;IACR,MAAM,CAAC,YAAY,CAAC,OAAuB,EAAE,KAAgB,EAAE,OAAgB;QACrF,MAAM,UAAU,GAAG,YAAY,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QACvE,MAAM,UAAU,GAAG,YAAY,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QACxE,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE;YAChD,OAAO,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACxE,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAClC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,QAAQ,CAAC,OAAwB,EAAE,IAAgB,EAAE,WAAqB,EAAE,OAAyB;QACjH,MAAM,SAAS,GAAG,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACvD,MAAM,UAAU,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACzG,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,UAAU;YACrD,OAAO;QAET,MAAM,SAAS,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACpF,MAAM,eAAe,GAAG,CAAC,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,6BAAa,CAAC,2CAA2C,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAClJ,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,SAAS,KAAK,eAAe,IAAI,CAAC,KAAK,eAAe,CAAC,MAAM,CAAC;YAC5F,OAAO;QAET,MAAM,KAAK,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,iCAAe,CAAC,WAAW,CAAC,wBAAwB,CAAC,sBAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QAClJ,MAAM,UAAU,GAAG,OAAO,CAAC,oBAAoB,CAAC,yBAAW,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QACtK,MAAM,UAAU,GAAG,OAAO,CAAC,oBAAoB,CAAC,yBAAW,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC/H,UAAU,CAAC,YAAY,CAAC,KAAK,EAAE,sBAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7G,UAAU,CAAC,YAAY,CAAC,KAAK,EAAE,sBAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,wBAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QAEtL,IAAI,SAAS,KAAK,eAAe,EAAE,CAAC;YAClC,YAAY,CAAC,kBAAkB,CAAC,UAAU,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;YACnE,YAAY,CAAC,kBAAkB,CAAC,UAAU,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;YACnE,IAAI,OAAO,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;gBACtC,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,iCAAe,CAAC,WAAW,CAAC,wBAAwB,CAAC,sBAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACrJ,MAAM,WAAW,GAAG,OAAO,CAAC,oBAAoB,CAAC,yBAAW,CAAC,eAAe,CAAC,CAAC;gBAC9E,WAAW,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBACxC,YAAY,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,CAAC;gBACxH,OAAO,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;aAAM,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YACnC,MAAM,WAAW,GAAG,YAAY,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAC3E,YAAY,CAAC,YAAY,CAAC,UAAU,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;YAC9D,YAAY,CAAC,YAAY,CAAC,UAAU,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAChE,CAAC;QAED,OAAO,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC;QAC7C,OAAO,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC;IAC/C,CAAC;IAEO,MAAM,CAAC,SAAS,CAAC,EAAY,EAAE,EAAW;QAChD,OAAO,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,mBAAI,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,mBAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACvH,CAAC;IAEO,MAAM,CAAC,SAAS,CAAC,EAAY,EAAE,EAAW;QAChD,OAAO,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,oBAAoB,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACrE,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,OAAwB,EAAE,KAAgB,EAAE,OAAgB,EAAE,KAAe,EAAE,MAAc,EAAE,EAAW;QACpI,MAAM,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC,yBAAW,CAAC,eAAe,EAAE,KAAK,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,6EAA6E;QACrL,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,sBAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACpD,YAAY,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACnD,OAAO,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;QAE1C,gHAAgH;QAChH,iFAAiF;QACjF,uHAAuH;QACvH,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC;YAC1C,MAAM,UAAU,GAAG,OAAO,CAAC,oBAAoB,CAAC,yBAAW,CAAC,YAAY,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACnG,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,sBAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,wBAAU,CAAC,KAAK,CAAC,CAAC;YAC3I,YAAY,CAAC,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YACtD,OAAO,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,kBAAkB,CAAC,KAAgB,EAAE,CAAS;QAC1D,MAAM,MAAM,GAAc,EAAE,CAAC;QAC7B,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,OAAO;YAC5B,MAAM,CAAC,IAAI,CAAC,uBAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,mBAAmB,CAAC,KAAgB,EAAE,SAAkB;QACpE,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACtB,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QACxB,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;YAC9C,MAAM,IAAI,GAAG,wBAAQ,CAAC,KAAK,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;YACpC,IAAI,SAAS,KAAK,KAAK,CAAC,eAAe;gBACrC,KAAK,CAAC,eAAe,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC;YAC7D,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,MAAM,KAAK,GAAG,wBAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBACtD,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAC1C,IAAI,SAAS,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,UAAU,GAAG,IAAI,CAAC;oBACvE,IAAI,GAAG,UAAU,CAAC;gBACpB,IAAI,SAAS,KAAK,KAAK,CAAC,KAAK,IAAI,CAAC,SAAS,KAAK,KAAK,IAAI,UAAU,GAAG,KAAK,CAAC;oBAC1E,KAAK,GAAG,UAAU,CAAC;YACvB,CAAC;QACH,CAAC;QAED,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,KAAK;YAC3C,OAAO,uBAAO,CAAC,UAAU,EAAE,CAAC;QAC9B,OAAO,uBAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,iBAAiB,CAAC,IAAgB;QAC9C,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM;YACzB,OAAO,SAAS,CAAC;QACnB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,CAAC,CAAC,IAAI,YAAY,yBAAS,CAAC;YAC9B,OAAO,SAAS,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,cAAc;YACtB,OAAO,SAAS,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,mBAAmB,CAAC,OAAwB,EAAE,KAAsB,EAAE,KAAe,EAAE,MAAc,EAAE,MAAgB,EAAE,IAAe,EAAE,EAAW;QACjK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAClB,OAAO;QAET,MAAM,WAAW,GAAG,OAAO,CAAC,oBAAoB,CAAC,yBAAW,CAAC,eAAe,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,6EAA6E;QAC3K,WAAW,CAAC,YAAY,CAAC,KAAK,EAAE,sBAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,wBAAU,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC/F,YAAY,CAAC,kBAAkB,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC1D,OAAO,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC;QAE9C,gHAAgH;QAChH,iFAAiF;QACjF,uHAAuH;QACvH,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC;YAC1C,MAAM,cAAc,GAAG,OAAO,CAAC,oBAAoB,CAAC,yBAAW,CAAC,YAAY,CAAC,CAAC;YAC9E,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,sBAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,wBAAU,CAAC,KAAK,CAAC,CAAC;YAC/I,YAAY,CAAC,kBAAkB,CAAC,cAAc,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAC7D,OAAO,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,SAAS,KAAK,IAAI;YACpB,OAAO;QAET,MAAM,WAAW,GAAG,OAAO,CAAC,oBAAoB,CAAC,yBAAW,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;QACzF,WAAW,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACxC,YAAY,CAAC,kBAAkB,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC3D,OAAO,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC;IAChD,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,0BAA0B,CAAC,IAAgB;QACvD,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM;YACzB,OAAO,SAAS,CAAC;QACnB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,IAAI,YAAY,yBAAS;YAC3B,OAAO,SAAS,CAAC;QACnB,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5C,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9G,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,iBAAiB,CAAC,IAAgB;QAC9C,MAAM,UAAU,GAAG,YAAY,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC;QACjE,IAAI,SAAS,KAAK,UAAU,IAAI,CAAC,KAAK,UAAU,CAAC,MAAM,CAAC,MAAM;YAC5D,OAAO,SAAS,CAAC;QACnB,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,KAAiB,EAAE,KAAiB;QAC9D,IAAI,KAAK,KAAK,KAAK;YACjB,OAAO,IAAI,CAAC;QACd,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,KAAK,CAAC,MAAM;YAC3C,OAAO,KAAK,CAAC;QACf,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YACxD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACjC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACjC,MAAM,OAAO,GAAG,KAAK,CAAC,kBAAkB,EAAE,CAAC;YAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,kBAAkB,EAAE,CAAC;YAC3C,IAAI,SAAS,KAAK,OAAO,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;gBACnD,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,MAAM;oBACzD,OAAO,KAAK,CAAC;gBACf,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC;oBAClE,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBAC7C,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBAC7C,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM,CAAC,MAAM;wBACrD,OAAO,KAAK,CAAC;oBACf,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC;wBAC5E,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;wBAC5C,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;wBAC5C,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;4BAC/B,OAAO,KAAK,CAAC;oBACjB,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,IAAI,SAAS,KAAK,OAAO,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;gBAC1D,SAAS;YACX,CAAC;iBAAM,CAAC;gBACN,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,OAAO,CAAC,QAAkB;QACtC,OAAO,CAAC,SAAS,KAAK,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IACrD,CAAC;;AA1WH,oCA2WC;AAED;;GAEG;AACH,MAAa,iBAAkB,SAAQ,YAAY;IAC1C,MAAM,CAAU,MAAM,GAAG,gBAAgB,CAAC;IAC1C,MAAM,CAAU,QAAQ,GAAG,mBAAmB,CAAC;IACtD,gBAAgB;IACA,oBAAoB,CAAC,EAAwB,EAAE,oBAA6B,IAAa,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE,EAAE,oBAAoB,CAAC,IAAI,SAAS,KAAK,EAAE,IAAI,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACzN,gBAAgB;IACG,UAAU;QAC3B,MAAM,eAAe,GAAG,+BAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAS,CAAC,SAAS,CAAC,mCAAmC,CAAC,CAAC,CAAC;QAClI,qBAAS,CAAC,aAAa,CAAC,iBAAiB,CAAC,+BAAc,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC,CAAC;IAChG,CAAC;IAES,KAAK,CAAC,WAAW,CAAC,QAAkB;QAC5C,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,QAAQ,CAAC;YACrC,OAAO,KAAK,CAAC;QACf,IAAI,SAAS,KAAK,IAAI,CAAC,iBAAiB;YACtC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB;IACA,KAAK,CAAC,aAAa;QACjC,MAAM,KAAK,CAAC,aAAa,EAAE,CAAC;QAC5B,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU;YAC/B,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5C,CAAC;IAED,gBAAgB;IACA,KAAK,CAAC,gBAAgB,CAAC,GAAkB;QACvD,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU;YAC/B,OAAO,mBAAY,CAAC,EAAE,CAAC;QACzB,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,mBAAY,CAAC,GAAG,CAAC,CAAC,CAAC,mBAAY,CAAC,EAAE,CAAC;IACtF,CAAC;;AAhCH,8CAiCC;AAED;;GAEG;AACH,MAAa,mBAAoB,SAAQ,YAAY;IAMY;IALxD,MAAM,CAAU,MAAM,GAAG,kBAAkB,CAAC;IAC5C,MAAM,CAAU,QAAQ,GAAG,oBAAoB,CAAC;IACvD,gBAAgB;IACR,iBAAiB,GAAoB,EAAE,KAAK,EAAE,4BAAiB,CAAC,IAAI,EAAE,CAAC;IAE/E,YAAY,gBAAuC,EAAY,uBAAgC,KAAK;QAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAAjE,yBAAoB,GAApB,oBAAoB,CAAiB;IAA6B,CAAC;IAElI,gBAAgB;IAChB,IAAW,WAAW,KAAwB,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAA0B,CAAC,CAAC,CAAC;IACzG,IAAW,WAAW,CAAC,MAAyB,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC;IAE5F,gBAAgB;IACA,4BAA4B;QAC1C,MAAM,YAAY,GAAG,qBAAS,CAAC,SAAS,CAAC,iBAAiB,CAAC,0BAA0B,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,gBAAgB,CAAC,CAAC;QAClI,YAAY,IAAI,CAAC,IAAI,CAAC,iBAAiB,GAAG,YAAY,CAAC,CAAC;QACxD,MAAM,YAAY,GAAG,IAAI,KAAK,EAAc,CAAC;QAC7C,MAAM,YAAY,GAAe,EAAE,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE,QAAQ,EAAE,YAAY,CAAC,gCAAgC,EAAE,EAAE,cAAc,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;QAClL,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAChC,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,gBAAgB;IACA,KAAK,CAAC,8BAA8B,CAAC,YAAoC;QACvF,IAAI,YAAY,CAAC,YAAY,KAAK,YAAY,CAAC,gBAAgB,EAAE,CAAC;YAChE,IAAI,CAAC,iBAAiB,GAAG,YAAY,CAAC,KAAK,CAAC;YAC5C,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC3B,qBAAS,CAAC,SAAS,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,YAAY,EAAE,YAAY,CAAC,gBAAgB,EAAE,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;gBAC3J,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,gBAAgB;IACG,UAAU;QAC3B,MAAM,eAAe,GAAG,+BAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAS,CAAC,SAAS,CAAC,qCAAqC,CAAC,CAAC,CAAC;QACpI,MAAM,iBAAiB,GAAgC,EAAE,CAAC;QAC1D,MAAM,iBAAiB,GAAgC,EAAE,CAAC;QAE1D,IAAI,CAAC,+BAAc,CAAC,6BAA6B,CAAC,iBAAiB,CAAC;YAClE,iBAAiB,CAAC,IAAI,CAAC,+BAAc,CAAC,iBAAiB,CAAC,oCAAmB,CAAC,WAAW,EAAE,gBAAS,CAAC,SAAS,CAAC,+BAA+B,CAAC,EAAE,KAAK,EAAE,0CAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1L,iBAAiB,CAAC,IAAI,CAAC,+BAAc,CAAC,iBAAiB,CAAC,oCAAmB,CAAC,SAAS,EAAE,gBAAS,CAAC,SAAS,CAAC,+BAA+B,CAAC,EAAE,KAAK,EAAE,0CAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;QAEtL,iBAAiB,CAAC,IAAI,CAAC,+BAAc,CAAC,iBAAiB,CAAC,oCAAmB,CAAC,WAAW,EAAE,gBAAS,CAAC,SAAS,CAAC,wBAAwB,CAAC,EAAE,KAAK,EAAE,0CAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;QACjL,iBAAiB,CAAC,IAAI,CAAC,+BAAc,CAAC,iBAAiB,CAAC,oCAAmB,CAAC,UAAU,EAAE,gBAAS,CAAC,SAAS,CAAC,wBAAwB,CAAC,EAAE,KAAK,EAAE,0CAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;QAEhL,MAAM,QAAQ,GAA4B,EAAE,CAAC;QAC7C,QAAQ,CAAC,IAAI,CAAC,+BAAc,CAAC,aAAa,CAAC,iBAAiB,EAAE,+BAAc,CAAC,WAAW,CAAC,CAAC,CAAC;QAC3F,QAAQ,CAAC,IAAI,CAAC,+BAAc,CAAC,aAAa,CAAC,iBAAiB,EAAE,+BAAc,CAAC,WAAW,CAAC,CAAC,CAAC;QAE3F,MAAM,YAAY,GAAG,+BAAc,CAAC,kBAAkB,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QAClF,qBAAS,CAAC,aAAa,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAC1D,CAAC;IAED,gBAAgB;IACG,2BAA2B;QAC5C,qBAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACpC,KAAK,CAAC,2BAA2B,EAAE,CAAC;IACtC,CAAC;IAED,gBAAgB;IACA,KAAK,CAAC,gBAAgB,CAAC,EAAiB;QACtD,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU;YAC/B,OAAO,mBAAY,CAAC,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,YAAY,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACpF,IAAI,SAAS,KAAK,MAAM;YACtB,OAAO,mBAAY,CAAC,EAAE,CAAC;QACzB,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,oBAAoB,CAAC;YAC3F,OAAO,mBAAY,CAAC,EAAE,CAAC;QACzB,IAAI,SAAS,KAAK,IAAI,CAAC,iBAAiB;YACtC,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,OAAO,mBAAY,CAAC,GAAG,CAAC;IAC1B,CAAC;;AA3EH,kDA4EC;AAED;;GAEG;AACH,MAAa,mBAAoB,SAAQ,YAAY;IAC5C,MAAM,CAAU,MAAM,GAAG,kBAAkB,CAAC;IAC5C,MAAM,CAAU,QAAQ,GAAG,oBAAoB,CAAC;IACvD,gBAAgB;IACR,iBAAiB,GAAoB,EAAE,KAAK,EAAE,4BAAiB,CAAC,GAAG,EAAE,CAAC;IAC9E,gBAAgB;IACG,OAAO,GAAc,EAAE,CAAC;IAC3C,gBAAgB;IACN,OAAO,CAAY;IAC7B,gBAAgB;IACN,KAAK,CAAU;IACzB,gBAAgB;IACN,MAAM,CAAU;IAE1B,gBAAgB;IAChB,IAAW,WAAW,KAAwB,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAA0B,CAAC,CAAC,CAAC;IACzG,IAAW,WAAW,CAAC,MAAyB,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC;IAE5F,gBAAgB;IACA,4BAA4B;QAC1C,MAAM,YAAY,GAAG,qBAAS,CAAC,SAAS,CAAC,iBAAiB,CAAC,0BAA0B,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,gBAAgB,CAAC,CAAC;QAClI,YAAY,IAAI,CAAC,IAAI,CAAC,iBAAiB,GAAG,YAAY,CAAC,CAAC;QACxD,MAAM,YAAY,GAAG,IAAI,KAAK,EAAc,CAAC;QAC7C,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE,QAAQ,EAAE,YAAY,CAAC,gCAAgC,EAAE,EAAE,cAAc,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACpK,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,gBAAgB;IACA,KAAK,CAAC,8BAA8B,CAAC,YAAoC;QACvF,IAAI,YAAY,CAAC,YAAY,KAAK,YAAY,CAAC,gBAAgB,EAAE,CAAC;YAChE,IAAI,CAAC,iBAAiB,GAAG,YAAY,CAAC,KAAK,CAAC;YAC5C,IAAI,CAAC,IAAI,CAAC,iBAAiB;gBACzB,OAAO,KAAK,CAAC;YACf,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YACxB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;YACzB,8BAAmB,CAAC,UAAU,EAAE,CAAC;YACjC,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACnC,qBAAS,CAAC,SAAS,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,YAAY,EAAE,YAAY,CAAC,gBAAgB,EAAE,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;YAC3J,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,gBAAgB;IACG,UAAU;QAC3B,IAAI,OAAO,GAAG,2BAA2B,CAAC;QAC1C,QAAQ,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAC5B,KAAK,CAAC;gBACJ,OAAO,IAAI,YAAY,CAAC;gBACxB,MAAM;YACR,KAAK,CAAC;gBACJ,OAAO,IAAI,aAAa,CAAC;gBACzB,MAAM;YACR,KAAK,CAAC;gBACJ,OAAO,IAAI,YAAY,CAAC;gBACxB,MAAM;YACR;gBACE,OAAO,IAAI,WAAW,CAAC;gBACvB,MAAM;QACV,CAAC;QACD,MAAM,eAAe,GAAG,+BAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QACtG,MAAM,iBAAiB,GAAgC,EAAE,CAAC;QAC1D,MAAM,iBAAiB,GAAgC,EAAE,CAAC;QAE1D,IAAI,CAAC,+BAAc,CAAC,6BAA6B,CAAC,iBAAiB,CAAC;YAClE,iBAAiB,CAAC,IAAI,CAAC,+BAAc,CAAC,iBAAiB,CAAC,oCAAmB,CAAC,WAAW,EAAE,gBAAS,CAAC,SAAS,CAAC,+BAA+B,CAAC,EAAE,KAAK,EAAE,0CAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1L,iBAAiB,CAAC,IAAI,CAAC,+BAAc,CAAC,iBAAiB,CAAC,oCAAmB,CAAC,SAAS,EAAE,gBAAS,CAAC,SAAS,CAAC,+BAA+B,CAAC,EAAE,KAAK,EAAE,0CAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;QAEtL,iBAAiB,CAAC,IAAI,CAAC,+BAAc,CAAC,iBAAiB,CAAC,oCAAmB,CAAC,WAAW,EAAE,gBAAS,CAAC,SAAS,CAAC,wBAAwB,CAAC,EAAE,KAAK,EAAE,0CAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;QACjL,iBAAiB,CAAC,IAAI,CAAC,+BAAc,CAAC,iBAAiB,CAAC,oCAAmB,CAAC,UAAU,EAAE,gBAAS,CAAC,SAAS,CAAC,wBAAwB,CAAC,EAAE,KAAK,EAAE,0CAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;QAEhL,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YACzB,iBAAiB,CAAC,IAAI,CAAC,+BAAc,CAAC,4BAA4B,CAAC,+BAAc,CAAC,OAAO,EAAE,oCAAmB,CAAC,SAAS,EAAE,gBAAS,CAAC,SAAS,CAAC,mCAAmC,CAAC,EAAE,KAAK,EAAE,0CAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/N,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM;YAC3B,iBAAiB,CAAC,IAAI,CAAC,+BAAc,CAAC,yBAAyB,CAAC,+BAAc,CAAC,kBAAkB,CAAC,CAAC,+BAAc,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,EAAE,gBAAS,CAAC,SAAS,CAAC,iCAAiC,CAAC,EAAE,KAAK,EAAE,0CAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;QAErO,MAAM,QAAQ,GAA4B,EAAE,CAAC;QAC7C,QAAQ,CAAC,IAAI,CAAC,+BAAc,CAAC,aAAa,CAAC,iBAAiB,EAAE,+BAAc,CAAC,WAAW,CAAC,CAAC,CAAC;QAC3F,QAAQ,CAAC,IAAI,CAAC,+BAAc,CAAC,aAAa,CAAC,iBAAiB,EAAE,+BAAc,CAAC,WAAW,CAAC,CAAC,CAAC;QAE3F,MAAM,YAAY,GAAG,+BAAc,CAAC,kBAAkB,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QAClF,qBAAS,CAAC,aAAa,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAC1D,CAAC;IAED,gBAAgB;IACG,2BAA2B;QAC5C,qBAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACpC,KAAK,CAAC,2BAA2B,EAAE,CAAC;QACpC,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM;YAC3B,OAAO;QAET,IAAI,SAAS,KAAK,IAAI,CAAC,OAAO;YAC5B,OAAO;QAET,MAAM,KAAK,GAAG,IAAI,8BAAmB,EAAE,CAAC;QACxC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QACvD,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAC9B,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9B,KAAK,CAAC,kBAAkB,EAAE,CAAC;QAC7B,CAAC;aAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACpI,MAAM,IAAI,GAAG,wBAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;YACnH,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,MAAM,GAAG,wBAAQ,CAAC,sBAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,yBAAS,CAAC,GAAG,CAAC,CAAC;YAC1E,IAAI,SAAS,KAAK,MAAM;gBACtB,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,yEAAyE;QACtG,CAAC;QACD,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;QACtB,KAAK,CAAC,SAAS,EAAE,CAAC;IACpB,CAAC;IAES,aAAa,CAAC,EAAiB;QACvC,MAAM,MAAM,GAAc,EAAE,CAAC;QAC7B,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YAC1D,OAAO,MAAM,CAAC;QAChB,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,OAAO;YAC3B,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;QAE1B,IAAI,SAAS,KAAK,IAAI,CAAC,OAAO;YAC5B,OAAO,MAAM,CAAC;QAEhB,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC;QACvB,IAAI,SAAS,KAAK,EAAE;YAClB,OAAO,MAAM,CAAC;QAEhB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACzC,IAAI,SAAS,GAAG,8BAAmB,CAAC,yBAAyB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QACrG,IAAI,SAAS,KAAK,SAAS;YACzB,SAAS,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,CAAC,KAAK,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;YAC5C,MAAM,IAAI,GAAG,wBAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACvC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,8BAAmB,CAAC,wBAAwB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;YACpG,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAC3B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACtB,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QAEjC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,gBAAgB;IACA,eAAe,CAAC,EAAiB,EAAE,aAAsB;QACvE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC;IACrF,CAAC;IAED,gBAAgB;IACA,QAAQ,CAAC,OAAwB;QAC/C,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,UAAU;YACtC,OAAO;QAET,MAAM,EAAE,GAAG,IAAI,oBAAa,EAAE,CAAC;QAC/B,qBAAS,CAAC,SAAS,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAC;QACpD,IAAI,SAAS,KAAK,EAAE,CAAC,QAAQ;YAC3B,OAAO;QACT,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACtC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YACnB,OAAO;QAET,MAAM,aAAa,GAAG,OAAO,CAAC,oBAAoB,CAAC,yBAAW,CAAC,eAAe,CAAC,CAAC;QAChF,MAAM,aAAa,GAAG,OAAO,CAAC,oBAAoB,CAAC,yBAAW,CAAC,YAAY,CAAC,CAAC;QAC7E,MAAM,WAAW,GAAG,iCAAe,CAAC,WAAW,CAAC,wBAAwB,CAAC,sBAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC3G,MAAM,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAE/D,aAAa,CAAC,YAAY,CAAC,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;QACvD,aAAa,CAAC,YAAY,CAAC,WAAW,EAAE,UAAU,EAAE,CAAC,EAAE,wBAAU,CAAC,KAAK,CAAC,CAAC;QAEzE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YACnB,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAEjC,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACpC,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAEpC,OAAO,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC;QAChD,OAAO,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC;IAClD,CAAC;IAED,gBAAgB;IACA,KAAK,CAAC,aAAa,CAAC,EAAiB;QACnD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,KAAK,EAAE,CAAC,QAAQ;YACtD,EAAE,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;IACxC,CAAC;IAED,gBAAgB;IACA,KAAK,CAAC,gBAAgB,CAAC,EAAiB;QACtD,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU;YAC/B,OAAO,mBAAY,CAAC,EAAE,CAAC;QAEzB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;YAChD,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YACtC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;gBACnB,OAAO,mBAAY,CAAC,EAAE,CAAC;YAEzB,MAAM,SAAS,GAAG,yBAAS,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3E,SAAS,CAAC,kCAAkC,CAAC,MAAM,CAAC,CAAC;YACrD,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/C,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC;gBAC1F,OAAO,mBAAY,CAAC,EAAE,CAAC;YACzB,IAAI,SAAS,KAAK,IAAI,CAAC,iBAAiB;gBACtC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACpD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAC5B,OAAO,mBAAY,CAAC,GAAG,CAAC;QAC1B,CAAC;QAED,IAAI,SAAS,KAAK,IAAI,CAAC,OAAO,IAAI,SAAS,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,8BAAmB,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACxI,OAAO,mBAAY,CAAC,EAAE,CAAC;QAEzB,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC;YACvB,MAAM,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,8BAAmB,CAAC,yBAAyB,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC/I,IAAI,SAAS,KAAK,OAAO;gBACvB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACnC,OAAO,mBAAY,CAAC,EAAE,CAAC;IACzB,CAAC;IAED,gBAAgB;IACA,KAAK,CAAC,kBAAkB;QACtC,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM;YAC3B,OAAO,KAAK,CAAC;QAEf,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;;AA3OH,kDA4OC;AAED;;GAEG;AACH,MAAa,mBAAoB,SAAQ,YAAY;IAC5C,MAAM,CAAU,MAAM,GAAG,kBAAkB,CAAC;IAC5C,MAAM,CAAU,QAAQ,GAAG,oBAAoB,CAAC;IACvD,gBAAgB;IACN,OAAO,CAAW;IAE5B,gBAAgB;IACG,UAAU;QAC3B,MAAM,eAAe,GAAG,+BAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAS,CAAC,SAAS,CAAC,SAAS,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC;QACxM,MAAM,iBAAiB,GAAgC,EAAE,CAAC;QAC1D,MAAM,iBAAiB,GAAgC,EAAE,CAAC;QAE1D,IAAI,CAAC,+BAAc,CAAC,6BAA6B,CAAC,iBAAiB,CAAC;YAClE,iBAAiB,CAAC,IAAI,CAAC,+BAAc,CAAC,iBAAiB,CAAC,oCAAmB,CAAC,WAAW,EAAE,gBAAS,CAAC,SAAS,CAAC,+BAA+B,CAAC,EAAE,KAAK,EAAE,0CAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1L,iBAAiB,CAAC,IAAI,CAAC,+BAAc,CAAC,iBAAiB,CAAC,oCAAmB,CAAC,SAAS,EAAE,gBAAS,CAAC,SAAS,CAAC,+BAA+B,CAAC,EAAE,KAAK,EAAE,0CAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;QACtL,iBAAiB,CAAC,IAAI,CAAC,+BAAc,CAAC,iBAAiB,CAAC,oCAAmB,CAAC,WAAW,EAAE,gBAAS,CAAC,SAAS,CAAC,wBAAwB,CAAC,EAAE,KAAK,EAAE,0CAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;QACjL,iBAAiB,CAAC,IAAI,CAAC,+BAAc,CAAC,iBAAiB,CAAC,oCAAmB,CAAC,UAAU,EAAE,gBAAS,CAAC,SAAS,CAAC,wBAAwB,CAAC,EAAE,KAAK,EAAE,0CAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;QAChL,IAAI,SAAS,KAAK,IAAI,CAAC,OAAO;YAC5B,iBAAiB,CAAC,IAAI,CAAC,+BAAc,CAAC,yBAAyB,CAAC,+BAAc,CAAC,kBAAkB,CAAC,CAAC,+BAAc,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,EAAE,gBAAS,CAAC,SAAS,CAAC,iCAAiC,CAAC,EAAE,KAAK,EAAE,0CAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;QAErO,MAAM,QAAQ,GAA4B,EAAE,CAAC;QAC7C,QAAQ,CAAC,IAAI,CAAC,+BAAc,CAAC,aAAa,CAAC,iBAAiB,EAAE,+BAAc,CAAC,WAAW,CAAC,CAAC,CAAC;QAC3F,QAAQ,CAAC,IAAI,CAAC,+BAAc,CAAC,aAAa,CAAC,iBAAiB,EAAE,+BAAc,CAAC,WAAW,CAAC,CAAC,CAAC;QAE3F,MAAM,YAAY,GAAG,+BAAc,CAAC,kBAAkB,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QAClF,qBAAS,CAAC,aAAa,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAC1D,CAAC;IAED,gBAAgB;IACG,2BAA2B;QAC5C,qBAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACpC,KAAK,CAAC,2BAA2B,EAAE,CAAC;IACtC,CAAC;IAES,YAAY,CAAC,KAAc,EAAE,SAAoB,EAAE,EAAiB;QAC5E,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU,IAAI,SAAS,KAAK,IAAI,CAAC,OAAO;YAC7D,OAAO,KAAK,CAAC;QACf,qEAAqE;QACrE,MAAM,MAAM,GAAG,8BAAmB,CAAC,kBAAkB,CAAC,4BAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9F,yBAAS,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QACjE,MAAM,GAAG,GAAG,SAAS,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3D,MAAM,GAAG,GAAG,SAAS,CAAC,sBAAsB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QACvD,IAAI,SAAS,KAAK,GAAG,IAAI,SAAS,KAAK,GAAG;YACxC,OAAO,KAAK,CAAC;QACf,KAAK,CAAC,OAAO,CAAC,uBAAO,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB;IACA,QAAQ,CAAC,OAAwB;QAC/C,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,UAAU,IAAI,SAAS,KAAK,IAAI,CAAC,OAAO;YACpE,OAAO;QAET,MAAM,EAAE,GAAG,IAAI,oBAAa,EAAE,CAAC;QAC/B,qBAAS,CAAC,SAAS,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAC;QACpD,IAAI,SAAS,KAAK,EAAE,CAAC,QAAQ;YAC3B,OAAO;QACT,MAAM,KAAK,GAAG,uBAAO,CAAC,MAAM,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,yBAAS,CAAC,cAAc,EAAE,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC;YAC1C,OAAO;QAET,MAAM,aAAa,GAAG,OAAO,CAAC,oBAAoB,CAAC,yBAAW,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;QAC3F,MAAM,aAAa,GAAG,OAAO,CAAC,oBAAoB,CAAC,yBAAW,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QACxF,MAAM,WAAW,GAAG,iCAAe,CAAC,WAAW,CAAC,wBAAwB,CAAC,sBAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC3G,MAAM,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAE/C,aAAa,CAAC,YAAY,CAAC,WAAW,EAAE,sBAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC3D,aAAa,CAAC,YAAY,CAAC,WAAW,EAAE,sBAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,wBAAU,CAAC,KAAK,CAAC,CAAC;QAE7E,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACjC,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAEjC,OAAO,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC;QAChD,OAAO,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC;IAClD,CAAC;IAED,gBAAgB;IACA,KAAK,CAAC,aAAa,CAAC,EAAiB;QACnD,IAAI,SAAS,KAAK,IAAI,CAAC,OAAO,IAAI,SAAS,KAAK,EAAE,CAAC,QAAQ;YACzD,EAAE,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;IACxC,CAAC;IAED,gBAAgB;IACA,KAAK,CAAC,gBAAgB,CAAC,EAAiB;QACtD,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU;YAC/B,OAAO,mBAAY,CAAC,EAAE,CAAC;QAEzB,IAAI,SAAS,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,uBAAO,CAAC,MAAM,EAAE,CAAC;YAC/B,MAAM,SAAS,GAAG,yBAAS,CAAC,cAAc,EAAE,CAAC;YAC7C,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC;gBAC1C,OAAO,mBAAY,CAAC,EAAE,CAAC;YACzB,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/C,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,CAAC;gBAChE,OAAO,mBAAY,CAAC,EAAE,CAAC;YACzB,IAAI,SAAS,KAAK,IAAI,CAAC,iBAAiB;gBACtC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACpD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAC5B,OAAO,mBAAY,CAAC,GAAG,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACnC,OAAO,mBAAY,CAAC,EAAE,CAAC;IACzB,CAAC;IAED,gBAAgB;IACA,KAAK,CAAC,kBAAkB;QACtC,IAAI,SAAS,KAAK,IAAI,CAAC,OAAO;YAC5B,OAAO,KAAK,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;;AAlHH,kDAmHC;AAED;;GAEG;AACH,MAAa,qBAAsB,SAAQ,YAAY;IAIU;IAHxD,MAAM,CAAU,MAAM,GAAG,oBAAoB,CAAC;IAC9C,MAAM,CAAU,QAAQ,GAAG,sBAAsB,CAAC;IAEzD,YAAY,gBAAuC,EAAY,kBAA2B,KAAK;QAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAA5D,oBAAe,GAAf,eAAe,CAAiB;IAA6B,CAAC;IAE7H,gBAAgB;IACG,UAAU;QAC3B,MAAM,eAAe,GAAG,+BAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAS,CAAC,SAAS,CAAC,uCAAuC,CAAC,CAAC,CAAC;QACtI,MAAM,iBAAiB,GAAgC,EAAE,CAAC;QAC1D,MAAM,iBAAiB,GAAgC,EAAE,CAAC;QAE1D,iBAAiB,CAAC,IAAI,CAAC,+BAAc,CAAC,iBAAiB,CAAC,oCAAmB,CAAC,WAAW,EAAE,gBAAS,CAAC,SAAS,CAAC,iCAAiC,CAAC,EAAE,KAAK,EAAE,0CAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1L,iBAAiB,CAAC,IAAI,CAAC,+BAAc,CAAC,iBAAiB,CAAC,oCAAmB,CAAC,SAAS,EAAE,gBAAS,CAAC,SAAS,CAAC,iCAAiC,CAAC,EAAE,KAAK,EAAE,0CAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;QAExL,iBAAiB,CAAC,IAAI,CAAC,+BAAc,CAAC,iBAAiB,CAAC,oCAAmB,CAAC,WAAW,EAAE,gBAAS,CAAC,SAAS,CAAC,wBAAwB,CAAC,EAAE,KAAK,EAAE,0CAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;QACjL,iBAAiB,CAAC,IAAI,CAAC,+BAAc,CAAC,iBAAiB,CAAC,oCAAmB,CAAC,UAAU,EAAE,gBAAS,CAAC,SAAS,CAAC,wBAAwB,CAAC,EAAE,KAAK,EAAE,0CAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;QAEhL,MAAM,QAAQ,GAA4B,EAAE,CAAC;QAC7C,QAAQ,CAAC,IAAI,CAAC,+BAAc,CAAC,aAAa,CAAC,iBAAiB,EAAE,+BAAc,CAAC,WAAW,CAAC,CAAC,CAAC;QAC3F,QAAQ,CAAC,IAAI,CAAC,+BAAc,CAAC,aAAa,CAAC,iBAAiB,EAAE,+BAAc,CAAC,WAAW,CAAC,CAAC,CAAC;QAE3F,MAAM,YAAY,GAAG,+BAAc,CAAC,kBAAkB,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QAClF,qBAAS,CAAC,aAAa,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAC1D,CAAC;IAED,gBAAgB;IACA,KAAK,CAAC,aAAa;QACjC,MAAM,KAAK,CAAC,aAAa,EAAE,CAAC;QAC5B,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;YAClF,IAAI,YAAY,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC3D,IAAI,mBAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,mBAAI,CAAC,WAAW,CAAC,GAAG,CAAC;oBAC9C,YAAY,GAAG,KAAK,CAAC;YACzB,CAAC,CAAC,CAAC;YAEH,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACrD,OAAO;YACT,CAAC;QACH,CAAC;QACD,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,8BAAuB,CAAC,GAAG,CAAC,CAAC;IAC/E,CAAC;IAED,gBAAgB;IACT,KAAK,CAAC,wBAAwB,CAAC,QAAkB;QACtD,IAAI,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC;YACpG,OAAO,IAAI,CAAC;QACd,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC;IACf,CAAC;IAES,KAAK,CAAC,gBAAgB,CAAC,QAAkB,EAAE,GAAY,EAAE,iBAA0B,KAAK,EAAE,OAAoB;QACtH,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACnH,IAAI,CAAC,KAAK,UAAU,CAAC,MAAM;gBACzB,OAAO,KAAK,CAAC;YAEf,MAAM,gBAAgB,GAAG,OAAO,IAAI,CAAC,KAAK,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACjK,MAAM,KAAK,GAAG,IAAI,uBAAO,EAAE,CAAC;YAC5B,MAAM,SAAS,GAAG,yBAAS,CAAC,cAAc,EAAE,CAAC;YAC7C,IAAI,CAAC,cAAc,IAAI,CAAC,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;gBAC/C,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBAChC,KAAK,CAAC,OAAO,CAAC,SAAS,YAAY,yBAAW,CAAC,CAAC,CAAC,uBAAO,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAC5G,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,gDAAgD;gBACxF,gBAAgB,EAAE,0BAA0B,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACrE,CAAC;iBAAM,CAAC;gBACN,KAAK,MAAM,SAAS,IAAI,UAAU;oBAChC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,CAAC;gBAEhD,IAAI,gBAAgB;oBAClB,SAAS,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;YACxC,CAAC;YAED,IAAI,KAAK,CAAC,MAAM;gBACd,OAAO,KAAK,CAAC;YAEf,KAAK,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC,wBAAwB;YAC9D,IAAI,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;gBAC/C,IAAI,KAAK,CAAC,aAAa;oBACrB,OAAO,KAAK,CAAC;gBAEf,oEAAoE;gBACpE,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC;gBACtC,MAAM,QAAQ,GAAG,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;gBACnD,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ;oBACxB,OAAO,KAAK,CAAC;gBAEf,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,wBAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,wBAAQ,CAAC,KAAK,EAAE,CAAC;gBAC5D,MAAM,OAAO,GAAG,uBAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5D,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;gBAChC,MAAM,MAAM,GAAc,EAAE,CAAC;gBAC7B,KAAK,MAAM,KAAK,IAAI,OAAO;oBACzB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;gBAE9B,SAAS,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC;gBAC9C,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACrC,SAAS,CAAC,OAAO,CAAC,yBAAS,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,wBAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACjG,SAAS,CAAC,kCAAkC,CAAC,MAAM,CAAC,CAAC;gBACrD,YAAY,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;gBACxC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC;oBAC1D,OAAO,KAAK,CAAC;gBAEf,IAAI,SAAS,KAAK,IAAI,CAAC,iBAAiB;oBACtC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBAE7C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC5B,OAAO,IAAI,CAAC;YACd,CAAC;YACD,YAAY,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YACxC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC;gBACzD,OAAO,KAAK,CAAC;YAEf,IAAI,SAAS,KAAK,IAAI,CAAC,iBAAiB;gBACtC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAE7C,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,gBAAgB;IACA,KAAK,CAAC,gBAAgB,CAAC,EAAiB;QACtD,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU;YAC/B,OAAO,mBAAY,CAAC,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,MAAM,qBAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,qCAAc,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC;QACtH,IAAI,SAAS,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY;YACxC,OAAO,mBAAY,CAAC,EAAE,CAAC;QACzB,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,mBAAY,CAAC,GAAG,CAAC,CAAC,CAAC,mBAAY,CAAC,EAAE,CAAC;IAC5I,CAAC;;AAnIH,sDAoIC;AAED,oEAAoE;AACpE,MAAsB,kBAAmB,SAAQ,iCAAe,CAAC,UAAU;IAC/D,YAAY,CAAS;IACrB,IAAI,CAAW;IACf,SAAS,CAAyB;IAClC,SAAS,CAAW;IACpB,KAAK,CAAa;IAClB,UAAU,CAAU;IACpB,YAAY,GAAG,IAAI,CAAC;IACpB,gBAAgB,GAAW,GAAG,CAAC;IACxB,UAAU,CAAY;IAEvC,YAAmB,WAA2C,EAAE,IAAgB,EAAE,EAAY,EAAE,KAAa,EAAE,GAAa,EAAE,QAAgC;QAC5J,KAAK,CAAC,WAAW,CAAC,CAAC;QACnB,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,gBAAgB,EAAE,CAAC;QAExC,mHAAmH;QACnH,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,SAAS,CAAC;QAC/B,IAAI,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC;YACvC,EAAE,CAAC,SAAS,GAAG,uBAAS,CAAC,QAAQ,CAAC;gBAChC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;gBAC3B,kBAAkB,EAAE,KAAK;aAC1B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,IAAuB,YAAY,KAAc,OAAO,KAAK,CAAC,CAAC,CAAC;IAE7C,IAAI;QACrB,KAAK,CAAC,IAAI,EAAE,CAAC;QACb,8BAAmB,CAAC,UAAU,EAAE,CAAC;IACnC,CAAC;IAKS,cAAc,CAAC,EAAiB,EAAE,iBAA6B;QACvE,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,YAAY,IAAI,SAAS,KAAK,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,KAAK,IAAI,CAAC,SAAS;YACzF,OAAO,SAAS,CAAC;QAEnB,8EAA8E;QAC9E,MAAM,SAAS,GAAG,YAAY,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;QAC/J,MAAM,WAAW,GAAG,8BAAmB,CAAC,wBAAwB,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACrI,IAAI,SAAS,KAAK,WAAW;YAC3B,OAAO,SAAS,CAAC;QAEnB,MAAM,SAAS,GAAG,wBAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACzE,IAAI,MAAM,GAAG,SAAS,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC;QAC1D,IAAI,MAAM,GAAG,wBAAQ,CAAC,mBAAmB;YACvC,OAAO,SAAS,CAAC;QACnB,IAAI,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,GAAG;YACjD,MAAM,IAAI,CAAC,GAAG,CAAC;QAEjB,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC;QAC/B,OAAO,MAAM,CAAC;IAChB,CAAC;IAES,gBAAgB,CAAC,OAAwB,EAAE,KAAe,EAAE,MAAc,EAAE,iBAA6B;QACjH,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,wBAAQ,CAAC,mBAAmB;YAC5F,OAAO;QAET,MAAM,SAAS,GAAG,YAAY,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;QAC/J,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAC9E,MAAM,GAAG,GAAG,SAAS,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,SAAS,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC,yBAAW,CAAC,WAAW,CAAC,CAAC;QAEtE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACvC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;QACZ,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACvC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;QAEZ,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,sBAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,wBAAU,CAAC,KAAK,CAAC,CAAC;QACtE,OAAO,CAAC,aAAa,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAClC,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,sBAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;QACxD,OAAO,CAAC,cAAc,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAEnC,OAAO,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAEe,QAAQ,CAAC,OAAwB;QAC/C,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,YAAY,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,SAAS;YACjE,OAAO;QACT,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAEe,KAAK,CAAC,aAAa,CAAC,EAAiB;QACnD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC;YACjC,OAAO;QACT,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE,CAAC;IACzC,CAAC;IAES,MAAM,CAAC,EAAiB;QAChC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC;YAChC,OAAO,KAAK,CAAC;QACf,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAEe,KAAK,CAAC,SAAS;QAC7B,IAAI,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;YAC3D,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAEvD,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;IAC7C,CAAC;CACF;AA7GD,gDA6GC;AAED,gFAAgF;AAChF,MAAa,uBAAwB,SAAQ,kBAAkB;IACnD,cAAc,CAAC,EAAiB,EAAE,SAAkB;QAC5D,MAAM,SAAS,GAAG,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7D,IAAI,SAAS,KAAK,SAAS;YACzB,OAAO,KAAK,CAAC;QAEf,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,SAAS,CAAC,iBAAiB,CAAC,CAAC;QACpE,IAAI,SAAS,KAAK,MAAM;YACtB,OAAO,KAAK,CAAC;QAEf,MAAM,SAAS,GAAG,EAAE,CAAC,UAAU,CAAC;QAChC,MAAM,WAAW,GAAG,YAAY,CAAC,yBAAyB,CAAC,MAAM,EAAE,SAAS,CAAC,eAAe,CAAC,CAAC;QAC9F,MAAM,QAAQ,GAAG,YAAY,CAAC,kBAAkB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QACjE,MAAM,WAAW,GAAc,EAAE,CAAC;QAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACzD,MAAM,QAAQ,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrD,MAAM,YAAY,GAAG,SAAS,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC7I,MAAM,YAAY,GAAG,SAAS,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC7I,IAAI,YAAY,IAAI,YAAY,EAAE,CAAC;gBACjC,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;gBACvF,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;gBACvF,MAAM,OAAO,GAAG,qBAAK,CAAC,MAAM,CAAC,MAAM,EAAE,wBAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5H,MAAM,SAAS,GAAG,4CAA4B,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC;gBAClG,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,OAAO,CAAC,qBAAqB,CAAC,SAAS,EAAE,MAAM,CAAC;oBAC3F,OAAO,KAAK,CAAC;gBACf,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;YAC1B,CAAC;iBAAM,IAAI,YAAY,EAAE,CAAC;gBACxB,WAAW,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;YAC3F,CAAC;iBAAM,IAAI,YAAY,EAAE,CAAC;gBACxB,WAAW,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;YAC3F,CAAC;iBAAM,CAAC;gBACN,WAAW,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,IAAI,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;QAC1B,IAAI,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;QAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QAC7C,MAAM,YAAY,GAAG,SAAS,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC/I,MAAM,aAAa,GAAG,SAAS,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAElJ,IAAI,YAAY,IAAI,aAAa,EAAE,CAAC;YAClC,MAAM,WAAW,GAAG,YAAY,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACjF,IAAI,YAAY;gBACd,IAAI,GAAG,WAAW,CAAC,GAAG,GAAG,WAAW,CAAC;YACvC,IAAI,aAAa;gBACf,KAAK,GAAG,WAAW,CAAC,IAAI,GAAG,WAAW,CAAC;YACzC,MAAM,QAAQ,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/D,MAAM,SAAS,GAAG,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACnE,IAAI,QAAQ,GAAG,SAAS,EAAE,CAAC;gBACzB,IAAI,GAAG,SAAS,CAAC;gBACjB,KAAK,GAAG,QAAQ,CAAC;YACnB,CAAC;QACH,CAAC;QAED,OAAO,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC,iBAAiB,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAC3G,CAAC;IAES,YAAY,CAAC,OAAwB;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC/C,IAAI,SAAS,KAAK,IAAI;YACpB,OAAO;QACT,MAAM,SAAS,GAAG,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACvD,IAAI,SAAS,KAAK,SAAS;YACzB,OAAO;QACT,MAAM,WAAW,GAAG,YAAY,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACjF,MAAM,KAAK,GAAG,iCAAe,CAAC,WAAW,CAAC,wBAAwB,CAAC,sBAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QACrG,YAAY,CAAC,aAAa,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QACtE,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,CAAC,iBAAiB,CAAC,CAAC;IACxE,CAAC;CACF;AAxED,0DAwEC;AAED,yFAAyF;AACzF,MAAa,wBAAyB,SAAQ,kBAAkB;IACpD,cAAc,CAAC,EAAiB,EAAE,SAAkB;QAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QACvC,IAAI,SAAS,KAAK,MAAM;YACtB,OAAO,KAAK,CAAC;QAEf,MAAM,SAAS,GAAG,EAAE,CAAC,UAAU,CAAC;QAChC,MAAM,QAAQ,GAAG,kCAAkB,CAAC,WAAW,EAAE,CAAC;QAClD,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvD,MAAM,QAAQ,GAAG,SAAS,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3H,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAChD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9C,IAAI,QAAQ;gBACV,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAC/C,QAAQ,CAAC,mBAAmB,CAAC,yBAAS,CAAC,oBAAoB,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;QAC3F,CAAC;QAED,OAAO,YAAY,CAAC,0BAA0B,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC3E,CAAC;IAES,YAAY,CAAC,OAAwB;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC/C,IAAI,SAAS,KAAK,IAAI;YACpB,OAAO;QACT,MAAM,UAAU,GAAG,YAAY,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC;QACjE,IAAI,SAAS,KAAK,UAAU;YAC1B,OAAO;QACT,MAAM,eAAe,GAAG,6BAAa,CAAC,2CAA2C,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAClI,IAAI,SAAS,KAAK,eAAe;YAC/B,OAAO;QACT,MAAM,KAAK,GAAG,iCAAe,CAAC,WAAW,CAAC,wBAAwB,CAAC,sBAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QACrG,YAAY,CAAC,mBAAmB,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAC3C,CAAC;CACF;AAlCD,4DAkCC;AAED,2DAA2D;AAC3D,MAAa,oBAAoB;IACxB,MAAM,CAAU;IAChB,SAAS,CAAW;IACpB,UAAU,CAAS;IACnB,IAAI,CAAY;IAChB,OAAO,CAAY;IACnB,IAAI,CAAU;IACd,cAAc,CAAW;IAEhC,YAAmB,MAAe,EAAE,SAAmB,EAAE,UAAkB,EAAE,IAAe,EAAE,OAAkB,EAAE,IAAa;QAC7H,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAjBD,oDAiBC;AAED;;;;;GAKG;AACH,MAAa,kBAAmB,SAAQ,iCAAe,CAAC,cAAc;IAyBvC;IAAqC;IAxB1D,MAAM,CAAC,UAAU,CAAsB;IAC/C,gBAAgB;IACN,KAAK,CAAc;IAC7B,gBAAgB;IACN,OAAO,CAAU;IAC3B,gBAAgB;IACN,UAAU,CAAa;IACjC,gBAAgB;IACN,iBAAiB,CAAW;IACtC,gBAAgB;IACN,WAAW,CAAsB;IAC3C,gBAAgB;IACN,gBAAgB,CAAmB;IAC7C,gBAAgB;IACN,+BAA+B,CAAmB;IAC5D,gBAAgB;IACN,WAAW,GAAa,EAAE,CAAC;IACrC,gBAAgB;IACN,SAAS,GAA2B,EAAE,CAAC;IACjD,gBAAgB;IACN,iBAAiB,GAAG,KAAK,CAAC;IACpC,gBAAgB;IACN,wBAAwB,CAAc;IAEhD,YAA6B,SAAyB,EAAY,iBAAwC;QACxG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QADG,cAAS,GAAT,SAAS,CAAgB;QAAY,sBAAiB,GAAjB,iBAAiB,CAAuB;QAExG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACrB,OAAO;QACT,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAClD,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,wBAAwB,GAAG,qBAAS,CAAC,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,wDAAwD;QAC/J,IAAI,SAAS,KAAK,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE;YACjF,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC;IAED,IAAW,MAAM,KAAyB,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAChE,IAAW,SAAS,KAA4B,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACzE,IAAW,YAAY,KAAqC,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC/E,eAAe,CAAC,EAAU,IAAY,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAEhE,IAAI;QACrB,MAAM,UAAU,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAClI,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC,qDAAqD;QAC/E,KAAK,CAAC,IAAI,EAAE,CAAC;QACb,IAAI,SAAS,KAAK,UAAU;YAC1B,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,+CAA+C;QAC9F,IAAI,SAAS,KAAK,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAChD,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAChC,IAAI,CAAC,wBAAwB,GAAG,SAAS,CAAC;QAC5C,CAAC;IACH,CAAC;IAEM,WAAW,CAAC,EAAkB;QACnC,IAAI,IAAI,CAAC,SAAS,KAAK,EAAE;YACvB,kBAAkB,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;IAEO,WAAW;QACjB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,+BAA+B,GAAG,SAAS,CAAC;QACpJ,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC7C,IAAI,SAAS,KAAK,IAAI;YACpB,OAAO,KAAK,CAAC;QACf,IAAI,SAAS,GAAG,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjC,MAAM,UAAU,GAAG,2BAAW,CAAC,oBAAoB,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC/E,IAAI,UAAU,CAAC,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;oBACjD,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;oBACpB,SAAS,GAAG,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;oBACjD,IAAI,SAAS,KAAK,SAAS;wBACzB,OAAO,KAAK,CAAC;oBACf,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;oBACjC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBACxC,CAAC;YACH,CAAC;YACD,IAAI,CAAC,iBAAiB,GAAG,YAAY,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,CAAC;YACxG,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,MAAM,UAAU,GAAG,YAAY,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC;YACjE,IAAI,SAAS,KAAK,UAAU,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;gBAC9D,wFAAwF;gBACxF,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC;gBAEpD,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACnC,MAAM,KAAK,GAAG,SAAS,CAAC,kBAAkB,EAAE,CAAC;oBAC7C,IAAI,SAAS,KAAK,KAAK;wBACrB,SAAS;oBAEX,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;wBACzC,MAAM,cAAc,GAAG,6BAAa,CAAC,2CAA2C,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;wBAC1H,IAAI,SAAS,KAAK,cAAc;4BAC9B,SAAS;wBAEX,IAAI,SAAS,KAAK,IAAI,CAAC,gBAAgB;4BACrC,IAAI,CAAC,gBAAgB,GAAG,cAAc,CAAC;;4BAEvC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC;oBAClD,CAAC;gBACH,CAAC;gBAED,IAAI,SAAS,KAAK,IAAI,CAAC,gBAAgB;oBACrC,OAAO,KAAK,CAAC;gBAEf,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;gBAClB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,eAAe,GAAG,6BAAa,CAAC,2CAA2C,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YACpJ,IAAI,SAAS,KAAK,eAAe,IAAI,eAAe,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM;gBACpF,OAAO,KAAK,CAAC;YACf,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;YACxC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAChC,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,iBAAiB,CAAC,cAAsB;QAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;QAC3C,IAAI,UAAU,GAAG,cAAc,EAAE,CAAC;YAChC,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;YAC9C,KAAK,IAAI,CAAC,GAAW,UAAU,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE;gBACtD,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC;QACjD,CAAC;aAAM,IAAI,UAAU,GAAG,cAAc,EAAE,CAAC;YACvC,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,cAAc,CAAC;QAC3C,CAAC;IACH,CAAC;IAEO,uBAAuB;QAC7B,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU,IAAI,SAAS,KAAK,IAAI,CAAC,iBAAiB;YACvE,OAAO,KAAK,CAAC;QAEf,MAAM,UAAU,GAAG,YAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAChG,MAAM,UAAU,GAAG,YAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACjG,MAAM,SAAS,GAAG,0BAAU,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAC5D,IAAI,SAAS,KAAK,SAAS;YACzB,OAAO,KAAK,CAAC;QAEf,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,kDAAkD;QAC7F,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAEpC,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACjD,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAClE,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAClE,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACrD,MAAM,WAAW,GAAG,wBAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9E,MAAM,UAAU,GAAG,WAAW,CAAC,YAAY,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YACjE,UAAU,CAAC,gBAAgB,EAAE,CAAC;YAC9B,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,oBAAoB,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3G,CAAC;QAED,MAAM,UAAU,GAAG,sBAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAChD,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,IAAI,oBAAoB,CAAC,SAAS,CAAC,MAAM,EAAE,wBAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QACxI,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,IAAI,oBAAoB,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,wBAAQ,CAAC,KAAK,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,wBAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAEzM,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,yBAAyB,CAAC,IAAmB;QACnD,IAAI,CAAC,CAAC,IAAI,YAAY,oBAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YACrD,OAAO,SAAS,CAAC;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,CAAC,CAAC,KAAK,YAAY,4BAAY,CAAC;YAClC,OAAO,SAAS,CAAC;QACnB,OAAO,0BAAU,CAAC,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACrD,CAAC;IAEO,wBAAwB;QAC9B,IAAI,SAAS,KAAK,IAAI,CAAC,WAAW;YAChC,OAAO,KAAK,CAAC;QAEf,MAAM,QAAQ,GAAY,EAAE,CAAC;QAC7B,IAAI,SAAS,KAAK,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;gBACtD,IAAI,SAAS,KAAK,QAAQ;oBACxB,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;QACnD,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAEpC,IAAI,SAAS,CAAC;QACd,IAAI,KAAK,GAAW,CAAC,CAAC;QACtB,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChE,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;YACtD,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;gBAC5B,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;oBAClI,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;oBACzD,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;oBAC1F,KAAK,EAAE,CAAC;oBACR,SAAS;gBACX,CAAC;YACH,CAAC;YAED,IAAI,SAAS,KAAK,SAAS;gBACzB,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC;YAEhD,MAAM,aAAa,GAAG,KAAK,CAAC,mBAAmB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAClE,MAAM,oBAAoB,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,CAAC;YAC3D,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC;YACxC,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YACpC,MAAM,eAAe,GAAG,6BAAa,CAAC,2CAA2C,CAAC,kCAAkB,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YACnL,MAAM,eAAe,GAAG,sBAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YAErD,IAAI,SAAS,KAAK,eAAe,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChE,IAAI,SAAS,KAAK,IAAI,CAAC,+BAA+B;oBACpD,IAAI,CAAC,+BAA+B,GAAG,eAAe,CAAC;;oBAEvD,IAAI,CAAC,+BAA+B,GAAG,IAAI,CAAC,+BAA+B,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;gBACtG,MAAM,QAAQ,GAAG,IAAI,CAAC,yBAAyB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpE,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;oBAC3B,MAAM,aAAa,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;oBAClD,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,oBAAoB,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC;oBACnG,SAAS;gBACX,CAAC;YACH,CAAC;YAED,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,oBAAoB,CAAC,aAAa,EAAE,oBAAoB,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC,kDAAkD;QAC7J,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAES,KAAK,CAAC,cAAc;QAC5B,iEAAiE;QACjE,IAAI,SAAS,KAAK,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACnD,OAAO,KAAK,CAAC;QAEf,sHAAsH;QACtH,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACxH,YAAY,GAAG,IAAI,CAAC;YACpB,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACtC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;oBAChD,IAAI,IAAI,CAAC,OAAO,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC;wBACzD,YAAY,GAAG,KAAK,CAAC;gBACzB,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,IAAI,SAAS,KAAK,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE;gBAClF,kBAAkB,CAAC,KAAK,EAAE,CAAC;YAC7B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU;YAC/B,OAAO,IAAI,CAAC,uBAAuB,EAAE,CAAC;aACnC,IAAI,SAAS,KAAK,IAAI,CAAC,WAAW;YACrC,OAAO,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAEzC,OAAO,KAAK,CAAC;IACf,CAAC;IAEkB,aAAa;QAC9B,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,yEAAyE;QAC5H,KAAK,CAAC,aAAa,EAAE,CAAC;IACxB,CAAC;IAES,KAAK,CAAC,cAAc,CAAC,GAAc,EAAE,GAAkB;QAC/D,IAAI,SAAS,KAAK,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC,OAAO;YAC3D,OAAO,KAAK,CAAC;QACf,MAAM,cAAc,GAAG,qBAAS,CAAC,SAAS,CAAC,iBAAiB,CAAC,UAAU,CAAC;QACxE,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;YAClC,MAAM,mBAAmB,GAAG,IAAI,uBAAuB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1I,IAAI,CAAC,iBAAiB,GAAG,MAAM,mBAAmB,CAAC,GAAG,EAAE,CAAC;QAC3D,CAAC;aAAM,IAAI,SAAS,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;YAC1C,MAAM,oBAAoB,GAAG,IAAI,wBAAwB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAC5I,IAAI,CAAC,iBAAiB,GAAG,MAAM,oBAAoB,CAAC,GAAG,EAAE,CAAC;QAC5D,CAAC;QACD,IAAI,IAAI,CAAC,iBAAiB;YACxB,qBAAS,CAAC,SAAS,CAAC,iBAAiB,CAAC,UAAU,GAAG,cAAc,CAAC,CAAC,+GAA+G;QACpL,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAEM,iBAAiB,CAAC,KAAa;QACpC,IAAI,SAAS,KAAK,IAAI,CAAC,WAAW;YAChC,OAAO,KAAK,CAAC;QAEf,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM;YACtD,OAAO,KAAK,CAAC;QAEf,MAAM,QAAQ,GAAG,kCAAkB,CAAC,WAAW,EAAE,CAAC;QAClD,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChE,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACrG,QAAQ,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,0BAA0B,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC;YACpE,OAAO,KAAK,CAAC;QAEf,IAAI,CAAC,kBAAkB,CAAC,iCAAe,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,gBAAgB,CAAC,KAAa;QACnC,IAAI,SAAS,KAAK,IAAI,CAAC,WAAW;YAChC,OAAO,KAAK,CAAC;QAEf,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM;YACtD,OAAO,KAAK,CAAC;QAEf,IAAI,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACzC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC;gBAC3C,OAAO,KAAK,CAAC;YACf,IAAI,SAAS,KAAK,IAAI,CAAC,iBAAiB;gBACtC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACrD,kBAAkB,CAAC,KAAK,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,QAAQ,GAAG,kCAAkB,CAAC,WAAW,EAAE,CAAC;QAClD,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChE,IAAI,CAAC,KAAK,KAAK;gBACb,SAAS;YACX,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACzC,QAAQ,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,0BAA0B,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC;YACpE,OAAO,KAAK,CAAC;QAEf,IAAI,CAAC,kBAAkB,CAAC,iCAAe,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,qBAAqB;QAC3B,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU,IAAI,SAAS,KAAK,IAAI,CAAC,iBAAiB;YACvE,OAAO,SAAS,CAAC;QAEnB,MAAM,UAAU,GAAG,YAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAChG,MAAM,UAAU,GAAG,YAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAEjG,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;YACpD,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,UAAU,CAAC,CAAC;YAC1E,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,UAAU,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,IAAI,GAAG,oBAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,oBAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAoB,EAAE,CAAC;QAElC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEjB,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACnD,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACvD,MAAM,IAAI,GAAG,oBAAI,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACpI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,eAAe,CAAC,KAAsB,EAAE,GAAU;QACxD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;YACtD,IAAI,SAAS,KAAK,QAAQ;gBACxB,SAAS;YAEX,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,sDAAsD;gBAC/G,SAAS;YAEX,MAAM,KAAK,GAAG,4CAA4B,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;YACvF,IAAI,SAAS,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC;gBAC1D,SAAS;YAEX,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,iBAAiB,CAAC,IAAmB,EAAE,aAAuB;QACpE,MAAM,YAAY,GAAG,4BAAY,CAAC,sBAAsB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC1E,IAAI,SAAS,KAAK,YAAY;YAC5B,OAAO,SAAS,CAAC;QAEnB,IAAI,OAAO,CAAC;QACZ,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,wBAAQ,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,wBAAQ,CAAC,KAAK,EAAE,CAAC;QAE/B,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;YACnC,+DAA+D;YAC/D,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YAE5F,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,GAAG;gBACjC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB;QACpD,CAAC;aAAM,CAAC;YACN,gFAAgF;YAChF,IAAI,OAAO,CAAC;YACZ,MAAM,MAAM,GAAG,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAEpD,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;gBACrB,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;oBAC5E,OAAO,GAAG,IAAI,CAAC;oBACf,OAAO,GAAG,MAAM,CAAC;gBACnB,CAAC;qBAAM,CAAC;oBACN,OAAO,GAAG,IAAI,CAAC;oBACf,OAAO,GAAG,MAAM,CAAC;gBACnB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YACjC,CAAC;YAED,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,GAAG;gBAC5C,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB;QACpD,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEM,qBAAqB,CAAC,KAAa;QACxC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM;YAC/C,OAAO,KAAK,CAAC;QAEf,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;QAC1B,MAAM,SAAS,GAAG,YAAY,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAEnM,mDAAmD;QACnD,MAAM,KAAK,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;QAC3G,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC5G,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAEvF,MAAM,MAAM,GAAG,wBAAQ,CAAC,cAAc,EAAE,CAAC;QACzC,IAAI,SAAS,KAAK,OAAO,IAAI,SAAS,KAAK,wBAAQ,CAAC,sBAAsB,CAAC,SAAS,CAAC,SAAS,EAAE,OAAO,EAAE,yBAAS,CAAC,GAAG,EAAE,MAAM,CAAC;YAC7H,wBAAQ,CAAC,kBAAkB,CAAC,SAAS,CAAC,SAAS,EAAE,yBAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAE1E,MAAM,YAAY,GAAG,MAAM,CAAC,oBAAoB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;QAC9D,MAAM,eAAe,GAAG,yBAAS,CAAC,yBAAyB,CAAC,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC5F,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC;QACnC,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QACrC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QACrC,EAAE,CAAC,aAAa,EAAE,CAAC;QACnB,EAAE,CAAC,oBAAoB,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,eAAe,CAAC,QAAkB;QACxC,MAAM,MAAM,GAAG,8BAAmB,CAAC,kBAAkB,CAAC,4BAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACvF,IAAI,SAAS,KAAK,MAAM;YACtB,OAAO,SAAS,CAAC;QACnB,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,OAAO,GAAG,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,uBAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QACjL,OAAO,4CAA4B,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/D,CAAC;IAEO,uBAAuB,CAAC,KAAmC,EAAE,iBAA6B;QAChG,MAAM,MAAM,GAAG,CAAC,SAAS,KAAK,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,cAAc,CAAC,wBAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,wBAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;QACzH,OAAO,KAAK,CAAC,YAAY,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACzD,CAAC;IAEM,6BAA6B,CAAC,OAAiB;QACpD,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU,IAAI,SAAS,KAAK,IAAI,CAAC,iBAAiB;YACvE,OAAO,KAAK,CAAC;QAEf,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACnD,IAAI,SAAS,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC;YAChG,OAAO,KAAK,CAAC;QAEf,IAAI,SAAS,KAAK,OAAO;YACvB,OAAO,IAAI,CAAC;QAEd,MAAM,IAAI,GAAG,uBAAO,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAClE,MAAM,KAAK,GAAG,uBAAO,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAEpE,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;YACpD,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC9D,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,MAAM,GAAG,wBAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;QAC9E,MAAM,OAAO,GAAG,wBAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;QACjF,IAAI,SAAS,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QACnC,IAAI,UAAU,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;QAErC,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,GAAG,GAAG;YAC/C,SAAS,GAAG,CAAC,SAAS,CAAC;QACzB,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,GAAG,GAAG;YAChD,UAAU,GAAG,CAAC,UAAU,CAAC;QAE3B,uBAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,sBAAsB,CAAC,OAAgB;QAC5C,IAAI,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,IAAI;YAC5B,OAAO,KAAK,CAAC;QACf,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU;YAC/B,OAAO,KAAK,CAAC;QACf,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACnD,IAAI,SAAS,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC;YAChG,OAAO,KAAK,CAAC;QAEf,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QAChF,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAElF,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC;YAClD,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC5D,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,yBAAS,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpD,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;QAEpI,MAAM,IAAI,GAAG,0BAAU,CAAC,WAAW,EAAE,CAAC;QACtC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAE5B,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC;YACjD,OAAO,KAAK,CAAC;QAEf,IAAI,CAAC,kBAAkB,CAAC,iCAAe,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC;IACd,CAAC;IAEkB,KAAK,CAAC,YAAY,CAAC,GAAc,EAAE,EAAiB;QACrE,IAAI,SAAS,KAAK,IAAI,CAAC,iBAAiB;YACtC,OAAO,mBAAY,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,mBAAY,CAAC,GAAG,CAAC,CAAC,CAAC,mBAAY,CAAC,EAAE,CAAC,CAAC;IAC7F,CAAC;IAEkB,KAAK,CAAC,UAAU,CAAC,GAAc,EAAE,EAAiB,IAA2B,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAY,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAEvK,kBAAkB,CAAC,SAAoC;QACrE,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAC/B,KAAK,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QACpC,IAAI,iCAAe,CAAC,SAAS,CAAC,MAAM,KAAK,SAAS,IAAI,SAAS,KAAK,IAAI,CAAC,iBAAiB;YACxF,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxD,CAAC;IAEM,iBAAiB,CAAC,EAAU,IAAa,OAAO,CAAC,EAAE,KAAK,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACzG,KAAK,CAAC,oBAAoB,CAAC,GAAc;QAC9C,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC,OAAO;YAC/B,OAAO,gBAAS,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;QACtD,OAAO,gBAAS,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;IAC5D,CAAC;IACkB,wBAAwB,CAAC,IAAa,IAAU,KAAK,CAAC,wBAAwB,CAAC,SAAS,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,8CAA8C;IAE/J,QAAQ,CAAC,OAAwB;QAC/C,IAAI,IAAI,CAAC,iBAAiB;YACxB,OAAO;QAET,IAAI,SAAS,KAAK,IAAI,CAAC,OAAO,IAAI,SAAS,KAAK,IAAI,CAAC,KAAK;YACxD,OAAO;QAET,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC;QAC5B,IAAI,IAAI,CAAC,SAAS,KAAK,EAAE;YACvB,OAAO;QAET,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;YAClC,YAAY,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,iBAAiB,IAAI,uBAAO,CAAC,UAAU,EAAE,EAAE,iCAAe,CAAC,WAAW,CAAC,wBAAwB,CAAC,sBAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAClM,CAAC;aAAM,IAAI,SAAS,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;YAC1C,IAAI,SAAS,KAAK,IAAI,CAAC,gBAAgB;gBACrC,YAAY,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,iCAAe,CAAC,WAAW,CAAC,wBAAwB,CAAC,sBAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,iCAAe,CAAC,WAAW,CAAC,wBAAwB,CAAC,sBAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAChQ,IAAI,SAAS,KAAK,IAAI,CAAC,+BAA+B;gBACpD,YAAY,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,+BAA+B,EAAE,iCAAe,CAAC,WAAW,CAAC,wBAAwB,CAAC,sBAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QACrK,CAAC;aAAM,IAAI,SAAS,KAAK,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC/C,YAAY,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,iCAAe,CAAC,WAAW,CAAC,wBAAwB,CAAC,sBAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,iCAAe,CAAC,WAAW,CAAC,wBAAwB,CAAC,sBAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAChQ,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,SAAS;YACjB,OAAO;QAET,MAAM,YAAY,GAAG,iCAAe,CAAC,WAAW,CAAC,wBAAwB,CAAC,sBAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1G,MAAM,YAAY,GAAG,iCAAe,CAAC,WAAW,CAAC,wBAAwB,CAAC,sBAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QACjH,MAAM,YAAY,GAAG,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACjD,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,iCAAe,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAEhG,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC;YACpD,IAAI,GAAG,KAAK,UAAU;gBACpB,SAAS;YAEX,0FAA0F;YAC1F,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,SAAS,KAAK,IAAI,CAAC,WAAW,IAAI,SAAS,KAAK,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7I,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,yBAAW,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;oBAChF,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;oBACtC,IAAI,IAAI,YAAY,oBAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACrD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;wBAC/B,IAAI,KAAK,YAAY,4BAAY,EAAE,CAAC;4BAClC,MAAM,IAAI,GAAG,IAAI,gCAAgB,EAAE,CAAC;4BACpC,MAAM,WAAW,GAAG,IAAI,gCAAgB,EAAE,CAAC;4BAC3C,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;4BAChC,MAAM,SAAS,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;4BAClE,SAAS,CAAC,WAAW,CAAC,UAAU,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;4BACrD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gCAC3B,MAAM,QAAQ,GAAG,0BAAU,CAAC,kBAAkB,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,CAAC;gCAC9E,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;oCAC3B,IAAI,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,cAAc;wCACpD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;oCAC9E,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gCACxD,CAAC;4BACH,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC;oBAC5D,IAAI,SAAS,KAAK,cAAc,IAAI,EAAE,CAAC,gBAAgB,CAAC,cAAc,EAAE,yBAAW,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;wBAChG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,CAAC;wBAC3E,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,cAAc,GAAG,SAAS,CAAC;oBACnD,CAAC;gBACH,CAAC;YACH,CAAC;YAED,MAAM,SAAS,GAAG,YAAY,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACnM,MAAM,SAAS,GAAG,iCAAe,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAE,EAAE,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YACvH,IAAI,SAAS,KAAK,SAAS;gBACzB,SAAS;YAEX,uEAAuE;YACvE,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;YAChD,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;YAEhD,MAAM,eAAe,GAAG,OAAO,CAAC,oBAAoB,CAAC,yBAAW,CAAC,YAAY,EAAE,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;YACnH,MAAM,eAAe,GAAG,OAAO,CAAC,oBAAoB,CAAC,yBAAW,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;YAC7F,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;YAElF,IAAI,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;YACpD,IAAI,SAAS,KAAK,eAAe,EAAE,CAAC;gBAClC,eAAe,GAAG,iCAAe,CAAC,WAAW,CAAC,wBAAwB,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;gBAC5F,eAAe,GAAG,eAAe,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;YACvE,CAAC;iBAAM,CAAC;gBACN,eAAe,GAAG,YAAY,CAAC;YACjC,CAAC;YAED,IAAI,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;YACjD,IAAI,eAAe,GAAG,YAAY,CAAC;YACnC,IAAI,eAAe,GAAG,YAAY,CAAC;YACnC,IAAI,SAAS,KAAK,eAAe,EAAE,CAAC;gBAClC,eAAe,GAAG,iCAAe,CAAC,WAAW,CAAC,wBAAwB,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;gBAC5F,eAAe,GAAG,eAAe,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACrE,eAAe,GAAG,eAAe,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACrE,eAAe,GAAG,eAAe,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;YACjF,CAAC;iBAAM,CAAC;gBACN,eAAe,GAAG,YAAY,CAAC;YACjC,CAAC;YAED,eAAe,CAAC,YAAY,CAAC,eAAe,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnF,eAAe,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YACtC,eAAe,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;YAChF,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACjC,OAAO,CAAC,wBAAwB,CAAC,eAAe,CAAC,CAAC;YAElD,eAAe,CAAC,YAAY,CAAC,eAAe,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;YAClE,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACjC,OAAO,CAAC,wBAAwB,CAAC,eAAe,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAEM,MAAM,CAAC,GAAG,CAAC,EAAkB;QAClC,IAAI,SAAS,KAAK,kBAAkB,CAAC,UAAU,IAAI,EAAE,KAAK,kBAAkB,CAAC,UAAU,CAAC,SAAS;YAC/F,OAAO,SAAS,CAAC;QACnB,OAAO,kBAAkB,CAAC,UAAU,CAAC;IACvC,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,EAAkB,EAAE,gBAAuC;QAC9E,IAAI,SAAS,KAAK,kBAAkB,CAAC,UAAU;YAC7C,kBAAkB,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,OAAO,SAAS,CAAC;QACnB,kBAAkB,CAAC,UAAU,GAAG,IAAI,kBAAkB,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;QAC7E,OAAO,kBAAkB,CAAC,UAAU,CAAC,MAAM,CAAC;IAC9C,CAAC;IAEM,MAAM,CAAC,KAAK;QACjB,IAAI,SAAS,KAAK,kBAAkB,CAAC,UAAU;YAC7C,OAAO;QACT,kBAAkB,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACrC,kBAAkB,CAAC,UAAU,GAAG,SAAS,CAAC;IAC5C,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAkB,EAAE,gBAAuC;QACpF,IAAI,MAA0B,CAAC;QAC/B,IAAI,SAAS,KAAK,kBAAkB,CAAC,UAAU;YAC7C,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;;YAEzD,kBAAkB,CAAC,KAAK,EAAE,CAAC;QAC7B,MAAM,qBAAS,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC;QAC7C,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AA/qBD,gDA+qBC;AAED;;;GAGG;AACH,IAAY,aAA8C;AAA1D,WAAY,aAAa;IAAG,+CAAG,CAAA;IAAE,yDAAQ,CAAA;IAAE,qDAAM,CAAA;IAAE,mDAAK,CAAA;AAAC,CAAC,EAA9C,aAAa,6BAAb,aAAa,QAAiC;AAE1D;;GAEG;AACH,MAAa,0BAA0B;IAC7B,MAAM,CAAC,SAAS,CAA8B;IAC/C,wBAAwB,GAAG,IAAI,CAAC;IAChC,yBAAyB,GAAG,IAAI,CAAC;IAExC,wDAAwD;IACxC,mBAAmB,GAAG,IAAI,sBAAO,EAAgG,CAAC;IAElJ;;;OAGG;IACa,sBAAsB,GAAG,IAAI,sBAAO,EAAqF,CAAC;IAEnI,cAAc,KAAc,OAAO,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;IACnE,eAAe,KAAc,OAAO,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC;IAErE,SAAS,CAAC,QAAwB;QACvC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,QAAQ,EAAE,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACzE,CAAC;IAEM,cAAc,CAAC,QAAwB;QAC5C,kBAAkB,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,QAAQ,EAAE,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC9E,CAAC;IAEM,YAAY,CAAC,QAAwB;QAC1C,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,QAAQ,EAAE,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5E,CAAC;IAEM,WAAW,CAAC,QAAwB;QACzC,kBAAkB,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,QAAQ,EAAE,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC3E,CAAC;IAEM,YAAY,CAAC,GAAc,EAAE,EAAiB;QACnD,MAAM,UAAU,GAAG,CAAC,SAAS,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACjG,IAAI,SAAS,KAAK,UAAU;YAC1B,OAAO,KAAK,CAAC;QACf,IAAI,CAAC,KAAK,IAAI,CAAC,sBAAsB,CAAC,iBAAiB;YACrD,OAAO,UAAU,CAAC,iBAAiB,CAAC,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QAChF,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,cAAc,CAAC,EAAkB,IAAU,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACjF,cAAc,KAAW,kBAAkB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACtD,KAAK,CAAC,gBAAgB,CAAC,EAAkB,IAAI,OAAO,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1F,kBAAkB,CAAC,EAAkB,IAAa,OAAO,CAAC,SAAS,KAAK,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAEtG,MAAM,CAAC,MAAM;QAClB,IAAI,SAAS,KAAK,0BAA0B,CAAC,SAAS,EAAE,CAAC;YACvD,kBAAkB,CAAC,KAAK,EAAE,CAAC;YAC3B,0BAA0B,CAAC,SAAS,GAAG,IAAI,0BAA0B,EAAE,CAAC;QAC1E,CAAC;QACD,OAAO,0BAA0B,CAAC,SAAS,CAAC;IAC9C,CAAC;IAEM,MAAM,CAAC,KAAK;QACjB,IAAI,SAAS,KAAK,0BAA0B,CAAC,SAAS;YACpD,OAAO;QACT,kBAAkB,CAAC,KAAK,EAAE,CAAC;QAC3B,0BAA0B,CAAC,SAAS,GAAG,SAAS,CAAC;IACnD,CAAC;CACF;AAjED,gEAiEC"}
|